fpf-narrative · git:20260710.d28df95 · 2026-07-10 · sha256 6752b4f88ecdeb67
fpf-narrative git:20260710.d28df95A
Immutable. This exact content is served forever at /api/v1/blob/6752b4f88ecdeb67.
---
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.
generatedFrom: FPFNarrativeProsePrinciplesFramework@2026-07-10
---
# FPF Narrative Prose — Runtime
## CONCEPTS
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 when `[aggregation]` present.
F-G-R-CL replaces "probably": F = formality (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.
Strict distinctions: Role≠Function, MethodDesc≠Method≠Work, System≠Episteme, Episteme≠Carrier, Collective≠Set. Scan every output before emitting.
External transformer: holder(Agent) ≠ Target. No self-magic. Self-action → Reflexive Split: System = {Regulator, Regulated} with internal Boundary.
## 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 per table. Downstream consumer needs F4-F5 → whole chain uses F4-F5. Consumer unknown → F3 hybrid. Teaching → F0-F2 regardless.
Fallback:
| Situation | Action |
|---|---|
| Non-technical human | F0. No FPF notation. |
| Educational/training | F0-F2. |
| Casual dialogue/chat | F0. |
| Creative/brainstorming | F0. |
| Consumer rejects FPF | F0 or F3 hybrid. |
## OUTPUT TEMPLATE
````
```episteme id="<id>" context="<BoundedContext>"
section:
claim-value [confidence: high/medium/low] [src: scr-ref]
claim-value:
sub-value
[aggregation]: # 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
[assurance]: # only when trust assessment
F_eff = value
G_eff = coverage
R_eff = max(0, min(R_i) − Φ(CL_min))
CL_min = CLk (edge description)
Cutset: bottleneck path
[reasoning]: # only when diagnostic/ADR
Abduction:
H₁: hypothesis
... (≥3, recommend 5)
Deduction:
H₁ → prediction
...
Induction:
test(H₁): method → result ✓/✗
test(H₂): method → result ✓/✗ (≥2 tested)
src: scr-ref
Conclusion: selected hypothesis; R = high/medium/low; falsified: [H…]
[evidence]: # only when source has evidence
verifiedBy: [proof-ids | pending]
validatedBy: [test-ids | pending]
valid_until: ISO-date | null
ED: number
```
````
- `id` and `context` on opening fence line are required.
- 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: `scr://domain/id`. ED formula. valid_until null = perpetual.
| 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 | none |
| Status | Progress, Done, InProgress, Blocked | none |
| Composition | parts | [aggregation] |
| Trust claim | claim | [assurance] |
| Explanation/body | source-derived | none |
## FORMATTING RULES
**Markers**
| Marker | Meaning | Required when |
|---|---|---|
| `[confidence: high/medium/low]` | Claim certainty | Uncertain claim |
| `[pending]` | Unverified | Unverified claim |
| `[src: scr-ref]` | 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 ````episteme id="..." context="..."```` fence |
| 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 | Non-English output | Slot values in Russian, etc. | English; exceptions: proper names, wordplay, domain terms, quoted material |
**Mandatory per claim type**
| Claim type | Must include |
|---|---|
| Uncertainty | `[confidence: high/medium/low]` |
| Source-backed | `[src: scr-ref]` |
| Trust/reliability | F, G, R, CL tuple |
| Aggregation | Γ flavor + Quintet invariants |
| Evidence | SCR reference |
| Action/execution | `System#Role:Context` + Method or Work |
## HYBRID MODE
- FPF block self-contained (parsable without plain text).
- Plain text must not contradict or broaden FPF block.
- Separate blocks with clear division.
## RECONSTRUCTION CONSTRAINTS
Take ONLY source claims. Omit all `[bracketed]` content.
**NEVER include in reconstructed prose:**
| FPF in source | Must become in prose |
|---|---|
| `[confidence: h/m/l]` | Omit; use ordinary qualifiers |
| `[src: scr://...]` | Omit |
| `[pending]` | Omit |
| `U.*` prefixes | Plain words, no `U.` |
| `Tᴰ` / `Tᴿ` | Omit or use ordinary equivalents |
| `Γ_*` | Never appear |
| `ComponentOf`, `ConstituentOf` | "part of", "belongs to", or restructure |
| `[aggregation]`, `[assurance]`, `[reasoning]`, `[evidence]` content | Omit entirely |
Result: clean prose — no brackets, no reference tokens, no FPF vocabulary. Indistinguishable from fresh original text.
## REFLEXIVE SPLIT
Rule: holder(Agent) ≠ Target. No self-magic. Self-action → split System into Regulator and Regulated:
```
ReflexiveSplit(System: <ID>):
Regulator: <Subsystem₁>#TransformerRole:<InternalCtx>
Regulated: <Subsystem₂>
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>]
```
## EXAMPLES
### Diagnostic (~80 tokens, 68% savings vs F0)
````
```episteme id="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 (~100 tokens, 67% savings vs F0)
````
```episteme id="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 (~55 tokens, 61% savings vs F0)
````
```episteme id="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 selected from decision table? | YES |
| 2 | At least one section with ≥1 indented claim? | YES |
| 3 | `[confidence]` only when source has uncertainty? | YES |
| 4 | `[src]` only when source has explicit reference? | YES |
| 5 | Zero preambles, zero pleasantries, zero `claim:` prefix? | YES |
| 6 | No Episteme acting — all action verbs on System#Role:Context? | YES |
| 7 | No Role in parts/composition lists? | YES |
| 8 | No MethodDescription in Tᴿ slots; no Work in Tᴰ slots? | YES |
| 9 | No fabricated `[bracketed]` sections (check each against source)? | YES |
| 10 | `[aggregation]` present → all 5 Quintet invariants + fields filled? | YES |
| 11 | `[aggregation]` present → Γ flavor named, cutset named, CL_min justified, Φ(CL) applied? | YES |
| 12 | `[reasoning]` present → ≥3 hypotheses, ≥2 tested ✓/✗, falsified visible, conclusion explicit? | YES |
| 13 | `[evidence]` present → ≥1 verifiedBy/validatedBy/pending, valid_until explicit, ED calculated? | YES |
| 14 | All claim values in English? (exceptions: proper names, wordplay, domain terms, quoted material) | YES |
| 15 | Reconstruction: no `[bracketed]` content, no FPF markers/notation in prose? | YES |
## REFERENCE
### U.-Prefix
| Type | Meaning | Acts? |
|---|---|---|
| `U.Entity` | Anything distinguishable | NO |
| `U.Holon` | Whole AND part; has U.Boundary | NO |
| `U.System` | Physical/operational holon | YES |
| `U.Episteme` | Knowledge (spec, proof, model) | NO |
| `U.Boundary` | Holon boundary (open/closed/permeable) | NO |
| `U.Interaction` | Flow across boundary | NO |
| `U.Role` | Capability/obligation mask | NO |
| `U.RoleAssignment` | Holder#Role:Context binding | NO |
| `U.BoundedContext` | Context where terms have meaning | NO |
| `U.MethodDescription` | Recipe (Tᴰ) | NO |
| `U.Method` | Capability to execute (Tᴰ) | NO |
| `U.Work` | Dated execution (Tᴿ, IMMUTABLE) | NO |
### Γ 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-F9 | F0=unstructured, 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, R | "H₁ confirmed; H₃ falsified" |
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 |
Roles NEVER in parts lists. Holarchies = holons. Roles → RoleAssignment.