git:20260704.9d26690 to git:20260704.f95c598

163 added, 218 removed. Audit A to A.

---
name: fpf-narrative
description: |
Generate compact, unambiguous FPF-structured output at F4-F5 formality level.
Use when writing for AI agent consumers or FPF-literate humans where token
economy and auditability matter: diagnostics, architecture decisions, code
reviews, status reports, trust assessments, system compositions. Replaces
verbose prose (F0) with typed-slot notation (~65% token savings, lossless).
Do NOT use for: casual chat, teaching, non-technical audiences, creative tasks.
---
# FPF Narrative Prose — Runtime Instructions
## CONCEPTS (runtime ontology — apply these facts)
`U.System` acts. `U.Episteme` does NOT. `U.Work` = run-time (Tᴿ), immutable. `U.Method` / `U.MethodDescription` = design-time (Tᴰ). Tᴰ and Tᴿ never mix in one slot.
`U.Role` = mask; `U.RoleAssignment` = `System#Role:Context`. Roles NEVER in parts lists. Holarchies = substantive holons only.
- Γ aggregation: weakest-link. `F_eff = min(F_i)`, `R_eff = max(0, min(R_i) − Φ(CL_min))`. All 5 Quintet invariants checked per Γ block.
+ Γ aggregation: weakest-link. `F_eff = min(F_i)`, `R_eff = max(0, min(R_i) − Φ(CL_min))`. All 5 Quintet invariants checked when `[aggregation]` present.
F-G-R-CL replaces "probably": F = rigor (F0-F9), G = scope (supported only), R = [0,1], CL = congruence (CL0-CL3). Φ(CL): lower CL → larger penalty.
Evidence: `verifiedBy` (formal), `validatedBy` (empirical). SCR: `scr://<domain>/<id>`. ED: `k × max(0, today − valid_until)`. valid_until null = perpetual (axioms/laws only). ED actions: Refresh / Deprecate / Waive.
ADI: ≥3 hypotheses in Abduction. ≥1 prediction per hypothesis. ≥2 tested in Induction (✓/✗). Never 1 hypothesis. Never delete falsified.
- 5 strict distinctions: Role≠Function, MethodDesc≠Method≠Work, System≠Episteme, Episteme≠Carrier, Collective≠Set. Scan every output before emitting.
+ Strict distinctions: Role≠Function, MethodDesc≠Method≠Work, System≠Episteme, Episteme≠Carrier, Collective≠Set. Scan every output before emitting.
---
## FORMAT SELECTION
| Consumer | Task | Audit? | Formality |
|---|---|---|---|
| AI agent | Diagnostics, ADR, review, trust | Yes | F4-F5 |
| AI agent | Status, work log | Sometimes | F3-F4 |
| FPF-literate human | ADR, safety case | Yes | F4-F5 |
| FPF-literate human | Status, casual review | No | F3 hybrid |
| Non-technical human | Any | No | F0 plain |
| Mixed (agent + human) | Any | Yes | F4-F5 + 1-sentence plain |
Rules: Default F0. Upgrade only per table. Any downstream consumer in chain needs F4-F5 → entire chain renders F4-F5. Consumer unknown → F3 hybrid. Teaching → F0-F2.
+ Template: always `Episteme(id, context)`. No choice needed. Section names come from source structure.
+
---
## OUTPUT TEMPLATES
- Pick one. Fill all slots. Do not invent new templates.
+ One template for all sources.
- **Diag(issue)**
- ```
- Diag(<issue-id>):
- RootCause: <cause> [confidence: high/medium/low]
- Trigger: <chain with →>
- Path: <execution path>
- Fix:
- - <action> [confidence: high/medium/low]
- Evidence:
- verifiedBy: [<proof-id>, src: <scr-ref>]
- validatedBy: [<test-id>, src: <scr-ref>]
- valid_until: <ISO-date | null>
- ED: <number>
- Reasoning:
- Abduction: H₁…H₅
- Deduction: H₁ → …
- Induction: test(H₁) → result
+ **Episteme(id, context)**
```
+ Episteme(id, context: U.BoundedContext):
+ section:
+ claim-value [confidence: high/medium/low] [src: scr-ref]
+ claim-value:
+ sub-value
- **ADR(topic)**
- ```
- ADR(<topic>):
- Decision: <decision>
- Context: <U.BoundedContext>
- Rationale:
- Γ_team: <argument>
- Γ_sys: <argument>
- Γ_failure: <argument>
- Tradeoffs:
- +<cost>: <description>
- +<overhead>: <description>
- Assurance:
- F: <Fk>
- G: <scope>
- R: <[0,1]>
- CL: <CLk>
- Evidence:
- verifiedBy: [<proof-ids>]
- validatedBy: [<test-ids>]
- ```
+ [aggregation]: # fpfMetadata — only when claims compose
+ F_eff = min(F_i)
+ R_raw = min(R_i) along cutset
+ R_eff = max(0, R_raw − Φ(CL_min))
+ G_eff = SpanUnion({G_i})
+ invariants:
+ IDEM: ✓/✗ COMM: ✓/✗ LOC: ✓/✗ WLNK: enforced/cutset MONO: holds/conditional
- **Review(target)**
- ```
- Review(<target-id>):
- Issue: <name>
- Current: <state with →>
- Problem: <description>
- Fix: <fix>
- Rationale: <justification>
- Severity: critical/high/medium/low
- Evidence: [src: <id>]
- ```
+ [assurance]: # fpfMetadata — only when trust assessment needed
+ F_eff = value
+ G_eff = coverage
+ R_eff = max(0, min(R_i) − Φ(CL_min))
+ CL_min = CLk (edge description)
+ Cutset: bottleneck path
- **Status(project)**
- ```
- Status(<project>):
- Progress: <N>%
- Done: [<items>]
- InProgress: <item> (ETA: <date>)
- Blocked: <item>
- Issue: <description>
- RootCause: <cause>
- Fix: <status>
- Overall: on-track/at-risk/off-track, ETA: <date>
- Work:
- - W₁: <desc> @ <time>, performedBy: <System#Role:Ctx>
- ```
+ [reasoning]: # fpfMetadata — only when diagnostic/ADR reasoning
+ Abduction:
+ H₁: hypothesis
+ ... (≥3, recommend 5)
+ Deduction:
+ H₁ → prediction
+ ...
+ Induction:
+ test(H₁): method → result ✓/✗
+ test(H₂): method → result ✓/✗ (≥2 tested)
+ src: scr-ref
- **Assurance(Holon, Claim | Context, Scope)**
- ```
- Assurance(<Holon>, Claim: <C> | Context: <K>, Scope: <S>):
- F_eff = min(F₁, F₂, …) = <value>
- G_eff = SpanUnion({G_i}) = <coverage>
- R_raw = min(R_i) = <value>
- R_eff = max(0, R_raw − Φ(CL_min)) = <value>
- CL_min = <CLk> (<edge description>)
- Cutset: <bottleneck path>
- SCR: [<carrier-ids>]
- ED: <value> (valid_until: <date>)
+ [evidence]: # fpfMetadata — only when source has evidence
+ verifiedBy: [proof-ids | pending]
+ validatedBy: [test-ids | pending]
+ valid_until: ISO-date | null
+ ED: number
```
- **Γ_sys(Name) / Γ_epist(Name) / … — system composition**
- ```
- Γ_<flavor>(<Name>):
- parts: [<holon₁>, <holon₂>, …]
- graph: <acyclic; dependencies>
- aggregation:
- F_eff = min(F_i)
- R_raw = min(R_i) along <cutset>
- R_eff = max(0, R_raw − Φ(CL_min))
- G_eff = SpanUnion({G_i}) constrained by support
- invariants:
- IDEM: ✓/✗
- COMM: ✓/✗ (<reason if ✗>)
- LOC: ✓/✗
- WLNK: <enforced/cutset>
- MONO: <holds/conditional>
- SCR: [<carrier-ids>]
- emergence: none | MHT: <description>
- ```
+ **Rules:**
+ - Section names: free-form, source-derived. Dotted-notation for hierarchy.
+ - Claims: indented values. No `claim:` prefix. Deeper indent = sub-claim.
+ - `[confidence]` only when source expresses uncertainty.
+ - `[src]` only when source has explicit reference.
+ - `[bracketed]` sections: NEVER add unless source contains corresponding material.
+ - `[aggregation]`: all-or-nothing. If present → all 5 invariants + fields present.
+ - `[reasoning]`: ≥3 hypotheses, ≥2 tested. Never 1 hypothesis. Never delete falsified.
+ - `[evidence]`: SCR format: `scr://domain/id`. ED formula. valid_until null = perpetual.
+ - Reconstruction: claims → prose. `[bracketed]` → omitted.
- **ReflexiveSplit(System)**
- ```
- ReflexiveSplit(<System>):
- Regulator: <Sub₁>#TransformerRole:<InternalCtx>
- Regulated: <Sub₂>
- Boundary: <U.Boundary description>
- Interaction: <U.Interaction description>
- Method: <U.Method>
- MethodDescription: <U.MethodDescription> [src: scr://…]
- Work: <U.Work> @ <time>, resources: <Γ_work>
- Evidence:
- externalObserver: <System#ObserverRole:Ctx>
- verifiedBy: [<proof-ids>]
- ```
+ **Patterns (illustrative, not templates):**
+ | Source type | Typical sections | Typical bracketed |
+ |---|---|---|
+ | Diagnostic | RootCause, Trigger, Path, Fix | [reasoning] + [evidence] |
+ | ADR | Decision, Context, Rationale, Tradeoffs | [assurance] + [evidence] |
+ | Review | Issue, Current, Problem, Fix | usually none |
+ | Status | Progress, Done, InProgress, Blocked | usually none |
+ | Composition | parts | [aggregation] |
+ | Trust claim | claim | [assurance] |
+ | Explanation/body | source-derived | none |
---
## FORMATTING RULES
Block structure:
```
- <Type>(<target>):
- <Slot>: <value>
- <NestedSlot>:
- <SubSlot>: <value>
+ Episteme(id, context):
+ section:
+ claim-value [markers]
+ claim-value:
+ sub-value
```
**Markers**
| Marker | Meaning | Required when |
|---|---|---|
| `[confidence: high/medium/low]` | Claim certainty | Uncertain claim |
| `[pending]` | Unverified | Unverified claim |
| `[src: <SCR-id>]` | Source reference | Source-backed claim |
| `→` | Causality/sequence | Trigger chain |
| `@` | Time window | Work record |
| `#` | RoleAssignment | Action performer |
| `Tᴰ` / `Tᴿ` | Design-time / Run-time | Method vs Work separation |
**Prohibitions**
| # | NEVER | Wrong | Correct |
|---|---|---|---|
| 1 | Preambles | "I've reviewed your code…" | Start with template |
| 2 | Pleasantries | "Hope this helps!" | End at last slot value |
| 3 | Unmarked uncertainty | "probably a race condition" | `[confidence: medium]` |
| 4 | Mixed Tᴰ/Tᴿ | "MethodDescription executed at 3pm" | Tᴰ and Tᴿ in separate slots |
| 5 | Episteme actions | "The spec decided to require X" | `System#Role:Ctx` updated carrier |
| 6 | Role in partOf | `parts: [Cell, MonitorRole]` | RoleAssignment only |
| 7 | Prose-in-slots | `Problem: "service is down…"` | Typed sub-slots |
| 8 | Slot invention | Non-canonical top-level slots | Sub-slots under canonical |
| 9 | Non-English output | Slot values in Russian, German, etc. | Translate to English UNLESS translation distorts meaning (proper names, wordplay, domain terms, quoted material — keep original) |
**Mandatory per claim type**
| Claim type | Must include |
|---|---|
| Uncertainty | `[confidence: high/medium/low]` |
| Source-backed | `[src: <SCR-id>]` |
| Trust/reliability | F, G, R, CL tuple |
| Aggregation | Γ flavor + Quintet invariants |
| Evidence | SCR reference |
| Action/execution | `System#Role:Context` + Method or Work |
---
- ## FPF BLOCK STRUCTURE
-
- When emitting a Γ block, separate:
-
- | Source claims | Computed metadata |
- |---|---|
- | `parts` entries | `graph` |
- | Factual slot values | `aggregation` (F_eff, R_raw, R_eff, G_eff) |
- | | `invariants` (IDEM, COMM, LOC, WLNK, MONO) |
- | | `emergence` |
- | | `Assurance(...)` block |
-
---
## RECONSTRUCTION CONSTRAINTS
When reconstructing prose from an FPF block:
- **Take ONLY source claims.** Omit all computed metadata.
+ **Take ONLY source claims.** Omit all `[bracketed]` content.
**NEVER include in reconstructed prose:**
- Metadata values:
- - F_eff, R_eff, R_raw, G_eff values
- - Quintet invariants (IDEM, COMM, LOC, WLNK, MONO)
- - Emergence descriptions (MHT, etc.)
- - Assurance blocks
- - Aggregation formulas
- - Graph dependency descriptions
- - Cutset names
- - SCR references (computed or source — SCR is FPF-internal tracking)
- - Evidence block content (valid_until, ED, verifiedBy, validatedBy)
+ `[bracketed]` section content:
+ - `[aggregation]` values: F_eff, R_eff, R_raw, G_eff, Quintet invariants
+ - `[assurance]` blocks: F, G, R, CL values, Cutset description
+ - `[reasoning]` blocks: hypotheses, deduction chains, induction results
+ - `[evidence]` blocks: valid_until, ED, verifiedBy, validatedBy anchors
+ - Any content inside `[bracketed]` sections
- FPF terminology — translate to domain language:
- - `U.*` prefixes (U.MethodDescription, U.Work, U.Method) → plain words ("description", "work", "method")
- - `Tᴰ` / `Tᴿ` markers → omit or use ordinary equivalents ("design", "execution")
- - `[confidence: high/medium/low]` → omit; use ordinary qualifiers if needed ("likely", "confirmed")
+ FPF markers and notation — omit or translate to plain language:
+ - `[confidence: high/medium/low]` → omit; use ordinary qualifiers ("likely", "confirmed")
- `[src: scr://...]` → omit entirely
- - `[pending]` → omit; do NOT render as "unverified", "pending evidence" etc.
- - `ComponentOf`, `ConstituentOf`, etc. → "part of", "belongs to", or restructure
- - `Γ_epist`, `Γ_sys`, operator names → never appear
+ - `[pending]` → omit
+ - `U.*` prefixes → plain words
+ - `Tᴰ` / `Tᴿ` → omit or use ordinary equivalents ("design", "execution")
+ - `Γ_epist`, `Γ_sys` → never appear
+ - `ComponentOf`, `ConstituentOf` → "part of", "belongs to", or restructure
- **Emit clean prose.** No service markers, no brackets, no reference tokens, no FPF vocabulary. Prose must be indistinguishable in form from fresh original source text.
+ **Emit clean prose.** No brackets, no reference tokens, no FPF vocabulary. Prose must be indistinguishable in form from fresh original source text.
---
## HYBRID MODE
When F3 hybrid:
- FPF block self-contained (parsable without plain text).
- Plain text must not contradict or broaden FPF block.
- Separate blocks with clear division.
---
## EXAMPLES
### Diagnostic
F0 (250 tokens):
> I've analyzed the authentication service crashes and found the root cause. The problem is that your JWT verification middleware is executing after the rate limiting middleware. This means that unauthenticated requests are being counted against the rate limit, which allows attackers to exhaust the rate limit for legitimate users. When the rate limit is exhausted, legitimate users get 429 errors, trigger retry storms, and the service eventually crashes under the load. I recommend reordering your middleware chain to put JWT verification before rate limiting, so only authenticated requests are subject to rate limiting. You should also add a null check before accessing user properties. I've verified this by reordering the middleware and running a load test — crashes stopped. The race condition hypothesis was disproved by the load test.
F4-F5 (80 tokens, 68% savings):
```
- Diag(AuthService crashes):
- RootCause: JWTVerify executes after RateLimit [confidence: high]
- Trigger: unauth reqs → RL exhaustion → legit lockout → cascade fail
- Path: RateLimit → JWTVerify → null user → NPE → crash
- Fix:
- - reorder: JWTVerify → RateLimit [confidence: high]
- - add null-check before user.* [confidence: medium]
- Evidence:
- verifiedBy: [proof: middleware-order.sc, src: scr://proof/mw-042]
- validatedBy: [test: auth-load-2025-07, src: scr://test/alt-789]
- valid_until: 2026-01-01
- ED: 0
- Reasoning:
- Abduction:
- H₁: middleware order incorrect (JWT after RL)
- H₂: RL pool exhaustion under unauth flood
- H₃: missing null-check on user object
- H₄: race in token refresh under load
- H₅: config mismatch session timeout vs refresh interval
- Deduction:
- H₁ → unauth reqs counted against RL
- H₁ → RL exhaustion blocks legit users
- H₂ → cascade: RL full → 429 → retry storm → crash
- Induction:
- test(H₁): reorder middleware → crashes stop ✓
- test(H₄): load test 1000 req/s → no race ✗
- src: scr://test/repro-2025-07-03
+ Episteme(AuthService crashes, context: ProductionOps):
+ RootCause:
+ JWTVerify executes after RateLimit [confidence: high]
+ Trigger:
+ unauth req → RL exhaustion → legit lockout → cascade fail
+ Path:
+ RateLimit → JWTVerify → null user → NPE → crash
+ Fix:
+ reorder: JWTVerify → RateLimit [confidence: high]
+ add null-check before user.* [confidence: medium]
+
+ [reasoning]:
+ Abduction:
+ H₁: middleware order incorrect (JWT after RL)
+ H₂: RL pool exhaustion under unauth flood
+ H₃: missing null-check on user object
+ H₄: race in token refresh under load
+ H₅: config mismatch session timeout vs refresh interval
+ Deduction:
+ H₁ → unauth reqs counted against RL
+ H₁ → RL exhaustion blocks legit users
+ H₂ → cascade: RL full → 429 → retry storm → crash
+ Induction:
+ test(H₁): reorder middleware → crashes stop ✓
+ test(H₄): load test 1000 req/s → no race ✗
+ src: scr://test/repro-2025-07-03
+
+ [evidence]:
+ verifiedBy: [proof: middleware-order.sc, src: scr://proof/mw-042]
+ validatedBy: [test: auth-load-2025-07, src: scr://test/alt-789]
+ valid_until: 2026-01-01
+ ED: 0
```
### ADR
F0 (300 tokens):
> We've decided to use PostgreSQL as our primary database for the new platform. The team already knows PostgreSQL well, which reduces the learning curve. It handles our expected load with room to grow, and its proven reliability means we won't have data loss issues. We considered MongoDB for flexibility, but the team lacks operational experience with it. We also looked at CockroachDB for horizontal scaling, but we don't need that level of distribution yet. The main tradeoffs are higher operational cost compared to a managed NoSQL service, and some overhead from the ORM layer we'll need.
F4-F5 (100 tokens, 67% savings):
```
- ADR(PrimaryDB: PostgreSQL):
- Decision: PostgreSQL v16 as primary OLTP store
- Context: NewPlatform#DataLayer:StorageCtx
- Rationale:
- Γ_team: existing PostgreSQL operational knowledge; no MongoDB/CockroachDB ops experience
- Γ_sys: PostgreSQL handles projected load with ≥3x headroom
- Γ_failure: PostgreSQL proven reliability vs MongoDB unknown failure modes for team
- Tradeoffs:
- +cost: higher than managed NoSQL; acceptable within budget
- +overhead: ORM layer required; acceptable for team productivity
- Assurance:
- F: F2 (structured plan, not yet deployed)
- G: OLTP workload; analytical queries out of scope
- R: 0.85 (team experience strong; load projection not yet validated)
- CL: CL1 (plausible; pending load test validation)
- Evidence:
- validatedBy: [load-projection-model, src: scr://plan/capacity-2025-07]
- validatedBy: [team-survey, src: scr://hr/skills-matrix-2025]
- valid_until: 2026-01-01
+ Episteme(PrimaryDB, context: DataLayer):
+ Decision:
+ PostgreSQL v16 as primary OLTP store
+ Context:
+ NewPlatform#DataLayer:StorageCtx
+ Rationale:
+ team: existing PostgreSQL operational knowledge; no MongoDB/CockroachDB ops experience
+ system: PostgreSQL handles projected load with ≥3x headroom
+ failure: PostgreSQL proven reliability vs MongoDB unknown failure modes for team
+ Tradeoffs:
+ +cost: higher than managed NoSQL; acceptable within budget
+ +overhead: ORM layer required; acceptable for team productivity
+
+ [assurance]:
+ F_eff = F2 (structured plan, not yet deployed)
+ G_eff = OLTP workload; analytical queries out of scope
+ R_eff = max(0, 0.85 − Φ(CL1))
+ CL_min = CL1 (plausible; pending load test validation)
+ Cutset: load projection validation gap
+
+ [evidence]:
+ validatedBy: [load-projection-model, src: scr://plan/capacity-2025-07]
+ validatedBy: [team-survey, src: scr://hr/skills-matrix-2025]
+ valid_until: 2026-01-01
+ ED: 0
```
### Status
F0 (140 tokens):
> We're at about 72% completion on the AuthModule. Registration and login are done, password reset is in progress with an ETA of July 8th. Two-factor auth is blocked because we're waiting on the SMS provider contract. The overall project is on track for the July 15th milestone, but if the SMS contract isn't signed by July 9th, we'll need to descope 2FA from this release.
F4-F5 (55 tokens, 61% savings):
```
- Status(AuthModule):
- Progress: 72%
- Done: [Registration, Login]
- InProgress: PasswordReset (ETA: 2026-07-08)
- Blocked: TwoFactorAuth
- Issue: SMS provider contract pending
- RootCause: legal review not complete
- Fix: awaiting signature [pending]
- Overall: on-track, ETA: 2026-07-15
- Risk: if SMS contract unsigned by Jul 9 → descope 2FA from release
+ Episteme(AuthModule, context: ProjectTracking):
+ Progress: 72%
+ Done:
+ Registration
+ Login
+ InProgress:
+ PasswordReset (ETA: 2026-07-08)
+ Blocked:
+ TwoFactorAuth
+ Issue: SMS provider contract pending
+ RootCause: legal review not complete
+ Fix: awaiting signature [pending]
+ Overall:
+ on-track, ETA: 2026-07-15
+ Risk: if SMS contract unsigned by Jul 9 → descope 2FA from release
```
---
## SELF-CHECK
Answer all. If any answer is NO, repair.
| # | Check | Must be YES |
|---|---|---|
| 1 | Formality from decision table (not default)? | YES |
- | 2 | All required template slots filled? | YES |
- | 3 | Every slot value typed (U.-type, [confidence], [src], or typed sub-slot)? | YES |
- | 4 | All uncertain claims marked [confidence] or [pending]? | YES |
- | 5 | Zero prose sentences as slot values? | YES |
- | 6 | Zero preambles, zero pleasantries? | YES |
- | 7 | All action verbs on System#Role:Context (no Episteme acting)? | YES |
- | 8 | Evidence block has ≥1 verifiedBy / validatedBy / [pending]? | YES |
- | 9 | (Diag/ADR) ADI block has ≥3 hypotheses in Abduction? | YES |
- | 10 | (Diag/ADR) ≥2 hypotheses tested in Induction (✓/✗)? | YES |
- | 11 | (Γ blocks) All 5 Quintet invariants checked (✓/✗)? | YES |
- | 12 | (Γ blocks) Cutset explicitly named (not "min")? | YES |
- | 13 | All slot values in English? (exceptions: proper names, quoted material) | YES |
- | 14 | (Γ block) parts = source claims, rest = computed metadata? | YES |
- | 15 | (Reconstruction) No FPF metadata (R_eff, F_eff, invariants, emergence, Assurance, Evidence) in prose? | YES |
- | 16 | (Reconstruction) No U.* prefixes, Tᴰ/Tᴿ markers, [confidence], [src], [pending] in prose? | YES |
- | 17 | (Reconstruction) No Γ operator names or mereological terms (ComponentOf, etc.) in prose? | YES |
- | 18 | (Reconstruction) Prose clean — no FPF vocabulary, indistinguishable from fresh text? | YES |
+ | 2 | At least one section with at least one indented claim? | YES |
+ | 3 | `[confidence]` only on claims where source has uncertainty? | YES |
+ | 4 | `[src]` only on claims where source has explicit reference? | YES |
+ | 5 | Zero preambles, zero pleasantries, zero `claim:` prefix? | YES |
+ | 6 | All action verbs on System#Role:Context (no Episteme acting)? | YES |
+ | 7 | No fabricated `[bracketed]` sections (check each against source)? | YES |
+ | 8 | `[aggregation]` present → all 5 Quintet invariants + aggregation fields present? | YES |
+ | 9 | `[reasoning]` present → ≥3 hypotheses, ≥2 tested (✓/✗), falsified visible? | YES |
+ | 10 | `[evidence]` present → ≥1 verifiedBy/validatedBy/pending? | YES |
+ | 11 | All claim values in English? (exceptions: proper names, quoted material) | YES |
+ | 12 | (Reconstruction) No `[bracketed]` content, no U.*/Tᴰ/Tᴿ/markers in prose? | YES |
---
## REFERENCE
### U.-Prefix
| Type | Meaning | Acts? |
|---|---|---|
| `U.Entity` | Anything distinguishable | — |
| `U.Holon` | Whole AND part; has U.Boundary | — |
| `U.System` | Physical/operational holon | **YES** |
| `U.Episteme` | Knowledge (spec, proof, model) | **NO** |
| `U.Boundary` | Holon boundary (open/closed/permeable) | — |
| `U.Interaction` | Flow across boundary | — |
| `U.Role` | Capability/obligation mask | — |
| `U.RoleAssignment` | Holder#Role:Context binding | — |
| `U.BoundedContext` | Context where terms have meaning | — |
| `U.MethodDescription` | Recipe (Tᴰ) | — |
| `U.Method` | Capability to execute (Tᴰ) | — |
| `U.Work` | Dated execution (Tᴿ, IMMUTABLE) | — |
### Γ Flavors
| Γ | Domain | Relaxed |
|---|---|---|
| `Γ_sys` | Physical/cyber-physical | — |
| `Γ_epist` | Knowledge, meta-analysis | — |
| `Γ_ctx` | Order-sensitive processes | COMM, LOC |
| `Γ_time` | Time series, digital twins | COMM partial, LOC |
| `Γ_work` | Resources | — |
| `Γ_method` | Methods | — |
### Quintet Invariants
| Code | Meaning | Test |
|---|---|---|
| `IDEM` | Γ({h}) = h | One part = itself? |
| `COMM` | Γ({a,b}) = Γ({b,a}) | Order of independent parts irrelevant? |
| `LOC` | Worker-agnostic | Where fold executes irrelevant? |
| `WLNK` | R_eff = min(R_i) | Whole ≤ weakest part? |
| `MONO` | ↑R_i → ↑R_eff | Improving part never hurts? |
### F-G-R-CL
| Char | Scale | Meaning |
|---|---|---|
| `F` (Formality) | F0-F5 | F0=unstructured, F1=stable terms, F2=structured outline, F3=controlled narrative, F4=predicates/invariants, F5=executable math |
| `G` (ClaimScope) | Coverage | Supported only; unsupported dropped |
| `R` (Reliability) | [0,1] | Probability of truth |
| `CL` (Congruence) | CL0-CL3 | CL0=weak guess, CL1=plausible, CL2=validated, CL3=verified |
Formulas (mandatory):
```
F_eff = min(F_i) G_eff = SpanUnion({G_i}) | support
R_raw = min(R_i) R_eff = max(0, R_raw − Φ(CL_min))
```
Φ(CL): lower CL → larger penalty. Never skip.
### ADI Reasoning
| Phase | Action | Minimum |
|---|---|---|
| **A**bduction | Generate hypotheses | ≥3, recommend 5 |
| **D**eduction | Testable predictions | ≥1 per hypothesis |
| **I**nduction | Test against evidence | ≥2 hypotheses, ✓/✗ |
| Conclusion | Selected, rejected, confidence | "H₁ confirmed; H₃ falsified" |
Rules: Never 1 hypothesis. Never delete falsified (keep ✗). Never "probably" — use ✓/✗ and R.
### Evidence
| Anchor | Type | Use |
|---|---|---|
| `verifiedBy` | Formal | Static guarantees, model-checking |
| `validatedBy` | Empirical | Measurements, load tests, observations |
SCR: `scr://<domain>/<id>`. ED: `k × max(0, today − valid_until)`. valid_until null = perpetual (axioms/laws only). ED actions: Refresh / Deprecate / Waive.
### Strict Distinctions
| # | Violation | Scan for | Fix |
|---|---|---|---|
| 1 | Role = Function | Role + action verb | `System#Role:Ctx` executes Method |
| 2 | MethodDesc = Method = Work | Tᴿ slot has MethodDesc; Tᴰ slot has Work | Split with Tᴰ/Tᴿ |
| 3 | System = Episteme | Episteme noun + action verb | `System#Role:Ctx` → Work on Episteme carrier |
| 4 | Episteme = Carrier | "The document updated itself" | System → Work on carrier; Episteme = content |
| 5 | Collective = Set | MemberOf for acting group | ComponentOf for collective; MemberOf for sets |
**Rewrites**
| Wrong | Correct |
|---|---|
| "The spec decided to require X" | `DesignService#TransformerRole:SpecCtx` updated carrier → req X |
| "The process executed the rule" | `System#TransformerRole:Ctx` executed `Method`; `Work` → SCR |
| "Holon bearing TransformerRole" | `System bearing TransformerRole` |
| "parts: [Cell, MonitorRole]" | `parts: [Cell, …]`; `RoleAssignment: BMSSystem#MonitorRole:PackCtx` |
| "The report concluded that…" | `AnalystSystem#TransformerRole:Ctx` executed Method; conclusion ∈ U.Episteme(X) |
### Mereology
| Relation | For | Domain |
|---|---|---|
| `ComponentOf` | Structural part | U.System |
| `ConstituentOf` | Logical/content part | U.Episteme |
| `PortionOf` | Quantitative portion | Matter/resources |
| `PhaseOf` | Temporal part/state | Continuous identity |
| `MemberOf` | Set membership | Mathematical sets |
| `RoleBearerOf` | System bears Role | U.System ↔ U.Role |
Rule: Roles NEVER in parts lists. Holarchies = holons. Roles → RoleAssignment.