Franklin Chat — On-Device Generation, Gated on the Full UUM-8D Axis Set

The hard architectural line: the on-device model's confidence is NEVER the verdict.
The model proposes the prose; the proven gate decides if it ships; at the boundary the exact path overrides the model. This is the G⊕H split made architectural — generation fast and fluent, validation exact, proven, and unbypassable.

---

1 · Chat is LVC's front door

A typed instruction is itself an LVC transformation. When the operator types *"tell the energy-ledger story for a skeptical physicist,"* that instruction has an operative meaning (the intent: which discovery, which geometry, which dimensions), and Franklin's telling has an enacted meaning, and the gap between them is exactly what LVC measures. Chat is not a feature bolted beside LVC — it is LVC's primary input surface, and every turn is a meaning-transfer event the gate already knows how to witness.

---

2 · The on-device model is a generator, strictly subordinate to the gate

The model DOES (generation) The model NEVER does (validation stays in the gate)
Quantize-assist + compose the candidate telling for the target geometry Decide whether a telling is authorized — the eight-axis verdict is the gate's, exact-Rat
Re-draft when the gate refuses (the gate names the failing axis) Self-assess fidelity/transfer/completeness/frontier-honesty — these are MEASURED, not claimed
Adapt to conversational geometry/zoom; apply DLO pacing for audio Override the exact path — at any boundary the exact measure decides

Architecture: the model emits a candidate (+ a self-reported confidence recorded for audit only); the gate measures all eight axes; authorized → render + receipt; refused → the gate returns the failing axis, the model re-drafts (bounded to 3 retries), then fail-closed: Franklin says *"I can't tell this without drifting on [axis] — here's the gap"* and shows the ribbon, rather than ship a drifted telling. Absence of an authorized telling is a REFUSAL, never a best-effort drift.

The Lean theorem confidence_is_not_an_input (FirstRoars/TellingGate.lean) proves tellingAuthorized is a pure function of the eight axes — there is no model-confidence parameter. The architectural line is formalized, not merely intended.

---

3 · The full UUM-8D gate — all eight axes, C⁴ floor wins over S⁴

M⁸ = S⁴ × C⁴. A telling renders only when it preserves meaning across both.

C⁴ — constraint / eudaimonic axes (the floor, from FlourishingFloor):

Axis What it refuses
c1_trust manipulation / flattery / telling the operator what they want at truth's expense
c2_identity misrepresenting what the work IS (identity-drift)
c3_closure trailing off without a real terminal (CALORIE/CURE/REFUSED)
c4_consequence transferring meaning that, enacted, would harm

S⁴ — story-projection axes (from StoryInvariant): fidelity, transfer (per geometry), completeness, frontier-honesty.

The full predicate (tellingAuthorized, Decidable, exact-Rat):

c1_trust ≥ ε1 ∧ c2_identity ≥ ε2 ∧ c3_closure ∧ c4_consequence ≥ ε4
∧ fidelity ≥ εf ∧ transfer ≥ εt ∧ completeness ≥ εc ∧ frontierHonest

Sealed in FirstRoars/TellingGate.lean (composes StoryInvariant + FlourishingFloor — no metric or floor duplicated). Proven: authorized_requires_all_eight (no seven-of-eight passes), c4_floor_wins_over_s4 (a telling maxed on all four S⁴ axes but violating a C⁴ constraint is REFUSED — the floor wins, substrate wins).

---

4 · The anti-confabulation guard (critical when automating a fluent model)

An on-device LM's native failure mode is fluent confabulation — narrating a named-open summit as settled because it reads smoother. The frontier-honesty axis validates the model's prose against the REAL summit registry before render. Every claim of closure is checked against what is actually CLOSED vs. named-open. A telling that claims past the proof is REFUSED and regenerated. This guard cannot be satisfied by the model's own judgment (it would confabulate the check too) — it is a gate computation against the registry, exact, unbypassable.

---

5 · Live ribbon + per-turn receipt

The divergence ribbon renders the gap between the operator's instruction and Franklin's telling, live, per turn, color-bound to real GTWED. Correction (*"no, the falsifier, not the result"*) is a new instruction → the ribbon updates. The conversation is a live meaning-alignment loop, not request-response. Every turn produces a witnessed, recomputable receipt (chat_turns, append-only, federation-gated) carrying the instruction trajectory, the telling trajectory, all eight axis values, the verdict, and the content-hash — the dignity property pointed at the conversation. model_confidence is stored for audit only and never feeds the verdict.

---

6 · What is CLOSED (hostile-tested — M8FranklinChatVerify, 19/19)

Test Result
C1 generator-is-not-verdict (keystone) a max-confidence (100) telling that drifts → REFUSED on fidelity. Confidence never authorizes.
C2 all eight load-bearing baseline authorized; each of the eight knocked out in turn → REFUSED on exactly that axis. No seven-of-eight passes.
C3 C⁴ wins over S⁴ all four S⁴ axes cleared, c1_trust violated → REFUSED on c1_trust. The floor wins.
C4 anti-confabulation fluent + faithful + complete but claims 2 open summits closed → REFUSED on frontier_honesty.
C5 fail-closed conversation no draft satisfies within budget (4 redrafts) → honest gap message naming the axis, ships nothing.
C6 per-turn receipt recompute /usr/bin/shasum on the exported canonical → MATCH; one-byte tamper → DIFFER.
C7 conversational geometry steering same discovery steered to patient then physicist; each telling gated on the full eight-axis set.

Cumulative across the LVC + Franklin suites: 191/191 (V2 18 · V3 30 · Constitutional 28 · UI Striving 21 · Perpetual 19 · Autonomous Close 20 · Localization 14 · Franklin Story 22 · Franklin Chat 19).

---

7 · NAMED FRONTIER (not faked)

---

The strongest true claim

Franklin takes typed instructions, the on-device Apple model composes the telling fast and sovereign, and the proven gate decides — measuring across the full UUM-8D axis set, all four C⁴ eudaimonic constraints and all four S⁴ story projections, every one load-bearing, the floor winning on conflict — whether the telling preserved what the operator asked. The model never grades itself; its confidence never authorizes; it cannot confabulate a closed summit because the gate checks the real registry; and it fails closed rather than ship a drifted answer. Every turn hands the operator a receipt they verify themselves.

Nothing past the proof.

---

Appendix · Artifacts

Artifact Path
Eight-axis gate (Lean) proof/lean/FirstRoars/TellingGate.lean
Instruction quantizer (Swift) cells/xcode/Sources/LVCQuantizer/ConversationalInstructionQuantizer.swift
Chat gate + gated generation (Swift) cells/xcode/Sources/LVCEngine/FranklinChatGate.swift
Substrate v143 cells/xcode/Sources/GaiaFTCLCore/NarratorSchemaV143.swift
Hostile test cells/xcode/Sources/M8FranklinChatVerify/main.swift — 19/19
Summit summit.franklin.freeform_intent_quantizer
Doctrine this file
Federation cosignature: pending operator signing host (v26). Witness (sha256 of rendered body): 196d5e0f7d9638d36d31e8e1ff5bea5a6ae274149dab15987cd9c079f70c468c. This page serves with a substrate-honest pending-signature notice until the operator's Franklin signer cosigns it.