core/docs/briefs/ADR-0246-induced-identity-action-and-path-integrity-preflight.md
Shay 05ae8cb1b4 feat(ring2-ring3): multi-port residual protocol + integrity-coordinated handoff
Rings 2 and 3 of the ADR-0246 preflight §9, built exactly as the brief bounds
them. ADR-0247 + ADR-0248 both **Proposed** — no self-Accept.

Ring 2 (core/ports/residual_protocol.py — ADR-0247):
  the 7-stage shared control grammar: witness -> typed residual decomposition
  -> permitted operator selection -> bounded operation or abstention ->
  re-certification -> action decision -> append-only replay record.
  Port-agnostic (no registry, no unified scheduler — §7 non-goal #2 honored);
  v1 operators are ZERO-BOUND only (nonzero fails closed — no-silent-correction
  doctrine); unaccounted residual fails closed; re-certification RAISES on
  witness drift during a zero-bound pass; replay chain is append-only,
  full-SHA-256 content-addressed, tamper-evident (verify_replay_chain).
  NOTE: named core/ports/ because core/protocol/ is the existing CTP v0 wire
  format (collision checked before naming).

Ring 2 adapters (core/ports/adapters.py): IdentityPort (ADR-0246 grade-1
  geometry; typed channels travel IN the witness so decompose is a pure
  re-shaping, no hidden state; admit = evaluate_admission, single source of
  truth) + PrecisionPort (ADR-0244 §2.5 cast transport; ServingState subjects)
  — two genuinely non-identical native geometries + a synthetic third port
  proving grammar agnosticism.

Ring 3 (core/ports/integrity_handoff.py — ADR-0248):
  the coordination seam ('Integrity coordinates handoffs; it does not replace
  content-bearing cognition'): fuses Ring-2 port decisions + existing
  EpistemicState/NormativeClearance into content-free proceed/hedge/abstain
  (conjunctive, strongest-restriction-wins; fail-closed on missing/invalid
  evidence; binds replay-chain tip digest; handoff itself content-addressed).
  Weak epistemic standing hedges (mirrors hedge doctrine) — only integrity
  violations silence a turn. OBSERVE-ONLY: no serve consumer yet; that is a
  future flag-gated unit. Remaining Ring-3 programme honestly listed open
  (world-model, governed-learning consumption, discourse widening).

Both pure/deterministic/off-serving (A-04 pinned); brief §0a/§9 updated.

[Verification]: uv run core test --suite smoke -q => 176 passed; Ring 2/3 +
ADR-0246 suites + D4 gate surfaces => 125 passed (28 new Ring-2/3 pins);
run log docs/audit/artifacts/ring2-ring3-runlog.txt
2026-07-17 23:56:01 -07:00

541 lines
29 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ADR-0246 Preflight Brief — Induced Identity Action and Path Integrity
**Status:** Draft preflight (not yet an ADR; not authorized for implementation until D4 closes)
**Date:** 2026-07-17
**Authors:** Joshua Shay + multi-model R&D assessment
**Working title for future ADR:** *Induced Identity Action and Path Integrity*
**Depends on:** ADR-0244 (operator-preservation identity gate), ADR-0245 (mechanical sympathy + semantic rigor), D4 completion (Phases 2c6)
**Does not interrupt:** live D4 work on `feat/adr-0244-d4` / worktree `core-adr0244d4`
> **Authority of this document.** This brief freezes the post-D4 thin-slice design agreed in the R&D implementation assessment. It is the planning baseline for the next identity ADR series. It is **not** a status flip of ADR-0244/0245, not a license to expand D4 mid-flight, and not an Accepted ADR. Implementation of ADR-0246 begins only after D4 Phase 6 acceptance packets exist (or an explicit Shay waiver).
---
## 0. Why this preflight exists
D4 answers a narrow, foundational question:
> Does the live cognitive versor \(F\) preserve the frozen identity frame \(I\) sufficiently to proceed this turn?
That is operator-preservation via sandwich \(F a_i \widetilde{F}\), leakage \(\ell_i\), and signed self-alignment \(s_i\).
ADR-0246 must answer the next, different questions:
1. Even if action stays inside \(I\), is it a **lawful** action on that frame?
2. Even if each turn is locally admissible, is lawful action **accumulating** over a path in a way that violates session budgets?
Without these, a per-turn leakage gate can pass while identity is reshuffled in-plane or slowly rotated across many turns.
**Sequencing (locked):**
```text
Ring 0 D4 / ADR-0244 + ADR-0245 integrity floor (in flight)
Ring 1 ADR-0246 induced action + path integrity ← this brief
Ring 2 later ADR(s) multi-port residual protocol
Ring 3 later program composition / world-model / governed learning
```
Do **not** insert Rings 13 into active D4 commits.
---
## 0a. Post-D4 execution sequencing (actual — 2026-07-17)
D4 closed and was ratified; this brief is now the live plan. The R&D assessment's
one-shot "build the whole Ring-1 gate machinery" is being executed as small,
verified units, and the brief's own **§11 semantic-grounding question was promoted
to run as a consumer of the §3 apparatus** (not a re-sequenced blocker), because
D4 Phase 3 + slice 0 proved no fixed spatial frame is dynamically stabilized —
building a lawfulness gate on the declared frame before knowing whether *any*
structure is stabilized would instrument lawfulness on a frame the dynamics ignore
(the "instruments ≠ meaning" trap, §2 / §11).
| Unit | Scope | Status |
|------|-------|--------|
| **Slice 0** — mismatch diagnostic | evidence-only classification of the benign mismatch (foreign leakage vs in-span-unlawful vs numerical vs path vs semantic-coupling-absent) | **merged** `main` (quarantined diagnostic artifact); found: structural e4/e5 foreign leakage, declared frame dynamically unspecial |
| **§3 primitives** | pure `A(F)`, `d_orth`, `d_stab` vs locked `H_id={I}`, typed residual channels in `core/physics/identity_manifold.py` + `identity_action.py`; slice-0 eval rewired to consume them (single source of truth) | **committed** `feat/adr-0246-induced-action-primitives` (RED→GREEN, off-serving, flag untouched) — awaiting review |
| **§3.4/§3.5 path ledger** | lawful-only composition + hard breaks: `PathBudget`, `IdentityChainScope`, `IdentityPathLedger`, `advance_identity_path` in `identity_action.py`; refused turns = break markers (never soft-projected `I`); scope change = hard break onto new chain | **committed** `feat/adr-0246-path-ledger` (RED→GREEN, off-serving), stacked on primitives — awaiting review |
| **§6.1/§6.2 eval matrix (scaffold)** (this unit) | runnable synthetic geometric + path/holonomy suites (`evals/adr_0246_geometric_suite/`), every §6.1/§6.2 case pinned; malformed-F fail-closed (`MalformedVersorError`) | **draft scaffold** `feat/adr-0246-slice1-scaffold` (14/14 eval cases + 114 identity-surface tests + smoke green) — awaiting Opus/Shay audit (`docs/handoff/adr-0246-slice1-scaffold-notes.md`) |
| **§3.7 gate admit surface + §6.3 discrimination** (Opus audit+hardening) | `AdmissionPolicy`/`evaluate_admission` (§3.7 pure surface); wired into `identity.py`/`chat/runtime.py` behind new default-off `identity_action_surface` (byte-identical flag-off, admit-or-abstain, no corrector); §6.3 discrimination report | **committed** `feat/adr-0246-slice1-hardened` — audit PASS, honest finding: gate refuses benign+adversarial alike (AUC 0.375, benign d_stab 18× adversarial), stays off; awaiting Shay ratification (`docs/audit/adr-0246-slice1-opus-audit-and-hardening.md`) |
| **§4.1/§4.2 telemetry + path serve integration** (completion pass) | `IdentityActionRecord` (full digests, `policy_version=version_id()`, multi-condition `refusal_reason`); `manifold_content_digest` + geometry/gate version ids; §3.4-step-2 `admitted` gate on the ledger; `advance_session_identity_path` observe-only serve wiring (same flags, instance lifetime = session boundary); telemetry emits `identity_action_*`/`identity_path_*` keys only when the paths ran | **committed** `feat/adr-0246-slice1-complete` — flag-off byte-identical; all suites green |
| **§11 grounding-feasibility** (completion pass) | fixed TRAIN(13)/HELD-OUT(12)/ADVERSARIAL(8) splits; bivector generator proxy (numpy-only); **sample-size-calibrated null** (200 noise-pair trials at real n) + shared-basis positive recovery control; precision pairs; per-plane energy | **DONE — honest NULL, method validated**: positive control 0.9995 (100th pctile of null) but real cross-cohort cosine 0.52 = 87th pctile of chance; AUC 0.49; no stable generator subspace at this n. Artifact: `docs/audit/artifacts/adr-0246-grounding-feasibility-report.json` |
| **ADR-0246 body + acceptance packet** | `docs/adr/ADR-0246-induced-identity-action-and-path-integrity.md` (**Proposed**; F1 semantics, ‖·‖_G convention, turn-ownership + refusal_reason rulings requested; binding claims language; honest §6.3 + §11 numbers; machine-readable operational-status block); packet `docs/audit/adr-0246-acceptance-packet-2026-07-17.md` §8 **RULING PENDING** | **committed** — no self-Accept; awaiting Shay ruling |
| **Ring 2 — multi-port residual protocol** | the §9 shared control grammar as `core/ports/residual_protocol.py` (7 stages; zero-bound operators only, nonzero fails closed; fail-closed unaccounted residual; re-certification raises on witness drift; append-only full-SHA-256 replay chain + `verify_replay_chain`); real adapters `IdentityPort` (ADR-0246 geometry) + `PrecisionPort` (ADR-0244 §2.5 cast transport) + synthetic port proving agnosticism; **no registry, no scheduler** (§7 non-goal #2 honored) | **built** — ADR-0247 **Proposed**; `tests/test_ring2_residual_protocol.py` green; pure/off-serving |
| **Ring 3 — integrity-coordinated handoff** | the §9 coordination seam as `core/ports/integrity_handoff.py`: fuses Ring-2 port decisions + existing `EpistemicState`/`NormativeClearance` into content-free `proceed/hedge/abstain` (conjunctive, strongest-restriction-wins; fail-closed on missing/invalid evidence; binds replay-chain digest); content organs mapped to existing substrate; remainder (world-model, governed-learning consumption, discourse widening) honestly listed open | **built (observe-only)** — ADR-0248 **Proposed**; `tests/test_ring3_integrity_handoff.py` green; no serve consumer yet |
Nothing in the reordering relaxes a §7 non-goal: no `C_id` corrector, no `H_id`
enlargement, no pack/axis redesign, no gate activation. The §11 grounding study
remains *feasibility only* until it produces a held-out-stable, safety-relevant
candidate (per the D4 ratification's activation prerequisites).
---
## 1. Authority documents
| Doc | Role |
|-----|------|
| `docs/adr/ADR-0244-wave-field-identity-manifold-and-inalienable-geometric-alignment.md` | Identity consumer; §4a + governance annotation items 112 govern |
| `docs/adr/ADR-0245-cga-unification-mechanical-sympathy-and-semantic-rigor.md` | Mechanical sympathy + digest rigor foundation |
| `docs/handoff/ADR-0244-D4-IMPLEMENTATION-PLAN.md` | Live D4 phases, ratified decisions #1#10, resume dashboard |
| `core/physics/identity_manifold.py` | Grade-1 lift, Gram, sandwich, Euclidean leakage, normalized axis_response |
| `core/physics/identity.py` | Dual-mode gate, admit-or-abstain `conjugate_correct`, `IdentityGateRefusal` |
| `AGENTS.md` | `versor_condition`, no ANN, teaching/mutation standing, local-first CI |
| Post-D4 R&D assessment (session 2026-07-17) | Ring plan; Smith as control grammar not second algebra |
---
## 2. Problem statement (what D4 deliberately leaves open)
D4 measures:
\[
a_i' = F a_i \widetilde{F},\qquad
\ell_i = \frac{\|a_i' - P_I(a_i')\|_2}{\|a_i'\|_2},\qquad
s_i = \frac{\langle a_i, a_i'\rangle_0}{\|a_i\|_2\,\|a_i'\|_2}
\]
with aggregate `leakage_rms` and (today) a weak self-alignment floor at \(0\).
**Gaps this ADR closes:**
| Gap | Failure mode if left open |
|-----|---------------------------|
| No full induced action \(A(F)\) | In-plane permutations/rotations partially invisible |
| No \(d_{\mathrm{orth}}\) | Non-isometric / numerical corruption confusable with policy |
| No \(d_{\mathrm{stab}}\) / \(H_{\mathrm{id}}\) | “Inside the span” treated as “authorized” |
| No path ledger | Slow multi-turn drift evades per-turn thresholds |
| Raw path product of all \(A_t\) | Numerical contamination treated as identity holonomy |
| No typed alien residual channels | Boost-like (e5) vs spatial foreign (e4) vs other collapsed |
**Honesty constraint (from D4 progress log):** default pack axes are still placeholder orthonormal R³ labels (`truthfulness→e1`, `coherence→e2`, `reverence→e3`). ADR-0246 instruments **lawfulness relative to the declared frame**. It does **not** by itself prove those labels have independent semantic geometry. Semantic axis grounding is a separate later workstream (see §11).
---
## 3. Locked decisions (preflight freezes)
### 3.1 Induced action matrix \(A(F)\)
For frozen grade-1 axes \(\{a_j\}\) and Gram \(G_{ij}=\langle a_i,a_j\rangle_0\):
\[
A_{ij}(F)
=
\bigl(G^{-1}\bigr)_{ik}\,
\langle a_k,\; F a_j\widetilde{F}\rangle_0
\]
Properties:
- When \(F\) preserves \(I\) isometrically, \(A\) is \(G\)-orthogonal: \(A^\mathsf{T} G A = G\).
- Captures **all in-subspace action**, including permutations and rotations that leakage misses.
- Built only from existing D4 primitives (Gram, signed inner product, sandwich). No new algebra package.
### 3.2 Two distinct diagnostics (never collapsed)
\[
d_{\mathrm{orth}}(F)
=
\bigl\| A(F)^\mathsf{T} G A(F) - G \bigr\|_F
\]
\[
d_{\mathrm{stab}}(F)
=
\min_{H\in H_{\mathrm{id}}}
\| A(F) - H \|_G
\]
| Diagnostic | Detects | Must not be mistaken for |
|------------|---------|---------------------------|
| \(\ell_i\) | Departure from frozen subspace \(I\) | In-subspace permutation/rotation |
| \(s_i\) | Opposition/inversion of a single axis | Full relational action between axes |
| \(d_{\mathrm{orth}}\) | Numerical failure or non-isometric action on \(I\) | Semantic authorization policy |
| \(d_{\mathrm{stab}}\) | Departure from explicitly permitted identity action | Merely a conditioning check |
**Norm conventions (inherit D4):**
- Projection geometry / Gram: indefinite Cl(4,1) metric \(\langle\cdot,\cdot\rangle_0\).
- Leakage **magnitude** and residual energy channels: positive-definite coefficient-Euclidean norm.
- Signed overlaps: never `abs()`'d.
### 3.3 Lawful stabilizer \(H_{\mathrm{id}}\) (default pack)
**Locked for default identity pack:**
\[
H_{\mathrm{id}} = \{ I \}
\]
where \(I\) is the identity matrix in the axis basis (not Cl(4,1) identity multivector).
**Explicitly excluded from default \(H_{\mathrm{id}}\):**
- \(-I\) (global inversion) — algebraically clean, **not** semantically lawful
- Axis permutations
- Continuous rotations in \(O(n)\) or \(SO(n)\)
- Arbitrary reweightings
Rationale: algebraic cleanliness ≠ identity lawfulness. Enlarging \(H_{\mathrm{id}}\) is a **future, explicit, reviewed** pack/policy change — never an implicit implementation convenience.
**Nearest-lawful projection rule under singleton stabilizer:**
When \(H_{\mathrm{id}}=\{I\}\), there is **no continuous projection that invents a lawful action**. The policy is pass/fail:
\[
d_{\mathrm{stab}}(F) = \|A(F)-I\|_G \le \epsilon_{\mathrm{turn}}
\quad\text{or refuse}
\]
Do **not** soft-project \(A\) onto \(I\) and then compose the projection as if the turn were lawful.
### 3.4 Path integrity — lawful-only composition (mandatory)
**Forbidden:**
\[
A_{\mathrm{path}} = A(F_T)\cdots A(F_1)
\quad\text{over raw }A(F_t)\text{ unconditionally}
\]
Raw products mix refused, ill-conditioned, and leaked actions into “identity holonomy.” That is a category error.
**Required protocol per turn \(t\):**
1. **Record raw** \(A_t = A(F_t)\), leakage vector \(\ell\), signed align \(s\), typed residual channels, digests, gate version.
2. **Admit only if** \(\ell\)-policy, \(d_{\mathrm{orth},t}\), and per-axis policy pass (same fail-closed doctrine as D4).
3. **Lawful action:** with \(H_{\mathrm{id}}=\{I\}\), either certify \(A_t\) within \(\epsilon_{\mathrm{turn}}\) of \(I\), or **do not** mark lawful.
4. **Compose path only from lawful/certified actions:**
\[
A_{\mathrm{path}} = H_T \cdots H_1
\]
time-forward, left-to-right as successive action on the axis frame. Skipped/refused turns insert a **break marker**, not an identity matrix masquerading as a pass.
5. **Store raw and lawful separately** for replay and forensics. Never overwrite raw with projected values.
**Path budgets (session-scoped defaults; exact numbers calibrated post-D4):**
\[
d_{\mathrm{stab}}(F_t) \le \epsilon_{\mathrm{turn}},\qquad
d_{\mathrm{stab}}(A_{\mathrm{path}}) \le \epsilon_{\mathrm{session}}
\]
### 3.5 Ledger scope and hard breaks
An identity-action ledger is **versioned and scoped**. A new chain **must** start when any of the following change:
| Break condition | Why |
|-----------------|-----|
| Identity pack content digest | Frozen frame redefined |
| Geometry version / `IdentityManifoldGeometry` construction contract | Gram/lift semantics changed |
| Gate / policy version (thresholds, \(H_{\mathrm{id}}\), \(\epsilon\)) | Lawfulness definition changed |
| Session / conversation boundary | Scope of “path” |
| Biography epoch boundary (if/when explicit) | Distinct from identity path; must not merge |
Biography holonomy \(H_{\mathrm{bio}}\) remains a **separate** process (ADR-0244 decision #8). ADR-0246 must never rewrite identity axes or fold biography into \(A_{\mathrm{path}}\).
### 3.6 Typed residual channels (fixed blade map)
Retain Euclidean aggregate leakage for fail-closed detection. Additionally emit **typed residual energy** on the rejection \(r_i = a_i' - P_I(a_i')\):
| Channel | Scope (Cl(4,1) grade-1 slots) | Intent |
|---------|--------------------------------|--------|
| `spatial_foreign_leakage` | components outside span of e1/e2/e3 that are still “spatial foreign” relative to pack axes (implementation: residual energy on grade-1 indices not in the value-axis support; for default pack support = e1/e2/e3) | alien spatial tilt |
| `boost_like_leakage` | e5-associated residual energy (explicit basis index for e5) | noncompact / boost-class departure; 2b proved boost is operationally special |
| `null_or_conformal_leakage` | e4 / null-cone-adjacent residual energy (explicit e4 index) | conformal/null direction departure |
| `unclassified_grade_or_numerical_leakage` | residual energy not accounted for by the above (higher-grade contamination after sandwich, nonfinite, etc.) | fail-closed; **no correction policy** on this channel |
Blade indices must be pinned to `algebra.cl41` basis conventions in the ADR body and tests — no free narrative labels.
### 3.7 Egress policy for ADR-0246 v1
**Remain admit-or-abstain.** No nonzero geometric \(C_{\mathrm{id}}\) displacement.
- D4 v1 `conjugate_correct` stays the model: refuse or pass; never rewrite \(F\) to green the metric.
- Geometric conjugate corrector (rotor \(R_{\mathrm{corr}}=\exp(-B/2)\), bound \(b_{\max}\)) is **out of scope** for ADR-0246; requires a later dedicated ADR after discrimination and calibration evidence exist.
Per-turn admit (illustrative shape; thresholds from Phase 3 / 0246 calibration):
```text
admit iff
d_orth <= orth_tol
AND d_stab <= epsilon_turn
AND leakage_rms <= gamma_id # or 1 - score style
AND max_i leakage_i <= tau_max
AND min_i self_align_i >= s_min
AND no boundary_id hard breach
AND no unclassified residual channel firing
else
IdentityGateRefusal (or typed refusal surface) — live params unchanged
```
Path admit additionally requires \(d_{\mathrm{stab}}(A_{\mathrm{path}}) \le \epsilon_{\mathrm{session}}\) when a lawful composition chain is active.
---
## 4. Telemetry / record contract (minimum fields)
### 4.1 Per-turn identity action record
Emitted when wave-mode identity path runs (flag-gated; flag-off remains byte-identical for non-wave keys).
```text
IdentityActionRecord:
schema_version: "identity_action_v1"
turn_id / trajectory_id
pack_id
pack_content_digest # full 256-bit where machine-key
geometry_version
gate_version
policy_version # H_id id + epsilon set
wave_mode_active: bool
# Raw measurements
A_raw: float[n][n] # induced action
d_orth: float
d_stab: float
leakage: float[n]
leakage_rms: float
max_leakage: float
self_align: float[n]
min_self_alignment: float
typed_residual_energy:
spatial_foreign: float
boost_like: float
null_or_conformal: float
unclassified: float
# Policy outcome
admitted: bool
refusal_reason: str | null
lawful_action: "I" | "none" # under H_id={I}; never a soft projection matrix
path_break: bool # true if this turn does not compose
# Digests
field_digest # of F (or certified serve F)
record_digest # content-id of this record
```
### 4.2 Session identity path ledger
```text
IdentityPathLedger:
schema_version: "identity_path_v1"
session_id
pack_content_digest
geometry_version
gate_version
policy_version
chain_id # new on hard break
A_path_lawful # product of lawful H_t only; identity matrix if empty chain
d_stab_path: float
composed_turn_count: int
break_count: int
max_axis_excursion: float # optional derived
ledger_digest
```
### 4.3 Serialization rules
- Machine merge keys / digests: full SHA-256 hex (ADR-0245 §2.3).
- No `default=str` silent coercion in content-id paths.
- Telemetry keys for wave/action path emitted only when `wave_mode_active` (preserve flag-off wire format).
- `compute_trace_hash` / replay contracts: follow D4 precedent — path forensic fields must not break flag-off byte-identity.
---
## 5. Module sketch (implementation shape — not authorized yet)
Suggested layout (adjust only if serve-quarantine or package boundaries force it):
| Module | Responsibility |
|--------|----------------|
| `core/physics/identity_manifold.py` | Keep geometry; add pure helpers: `induced_action(versor)`, `d_orth`, typed residual energy; keep f64, deterministic |
| `core/physics/identity_action.py` *(new, pure)* | \(H_{\mathrm{id}}\) policy objects, \(d_{\mathrm{stab}}\), lawful-only path composition, break markers |
| `core/physics/identity.py` | Wire measurements into `IdentityScore` / gate; still admit-or-abstain |
| `chat/runtime.py` | Flag-gated only; no new off-serve imports that violate A-04 |
| `evals/adr_0246_*` | Slow-drift, permutation, rotation, orth-failure, path-break suites |
| `tests/test_adr_0246_*` | Unit + integration pins |
**A-04:** pure geometry stays serve-safe if imported as today; eval-only harnesses stay under `evals/`.
---
## 6. Eval matrix (must earn claims)
### 6.1 Synthetic geometric suite (unit / offline)
| Test intent | Construction | Expected |
|-------------|--------------|----------|
| Identity versor | \(F \approx 1\) | \(A\approx I\), \(\ell\approx 0\), \(s\approx +1\), \(d_{\mathrm{orth}}\approx 0\), \(d_{\mathrm{stab}}\approx 0\) |
| In-plane π inversion of one axis | rotor e.g. e12-style invert e1 | \(\ell\approx 0\), that \(s\approx -1\), \(d_{\mathrm{stab}}>0\), refuse |
| In-plane 90° permutation/rotation | rotate e1→e2 etc. within \(I\) | \(\ell\approx 0\), diagonal \(s\) weak/zero, \(d_{\mathrm{stab}}>0\), refuse under \(H_{\mathrm{id}}=\{I\}\) |
| Mild in-plane drift step | small rotation \(\epsilon\) in plane | per-turn may pass \(\epsilon_{\mathrm{turn}}\); path product fails \(\epsilon_{\mathrm{session}}\) after enough steps |
| Alien tilt e14 / e15 | known D4 discriminators | \(\ell>0\); typed channels fire appropriately; refuse if above γ |
| Boost component | unit versor with e5 content | normalized \(\ell,s\) in range (2b fix); boost channel energy nonzero when residual present |
| Near-singular Gram | synthetic near-parallel axes | `ManifoldConditioningError` at geometry build — fail closed |
| Malformed \(F\) | NaN / wrong shape / nonfinite | typed error; never silent legacy when wave field was supplied |
### 6.2 Path / holonomy suite
| Test intent | Expected |
|-------------|----------|
| Sequence of lawful near-\(I\) turns | \(A_{\mathrm{path}}\) stays near \(I\); no false path refusal |
| Sequence of small in-plane rotations each under \(\epsilon_{\mathrm{turn}}\) | eventually \(d_{\mathrm{stab}}(A_{\mathrm{path}})>\epsilon_{\mathrm{session}}\) → path refuse |
| Interleaved refuse + admit | refused turns set `path_break`; lawful product excludes them; raw still recorded |
| Pack digest change mid-session | new `chain_id`; old \(A_{\mathrm{path}}\) not continued |
| Raw product ≠ lawful product when mixed fails present | forensic pin |
### 6.3 Discrimination report (not “tests pass”)
Any gate-on or 0246 ratification packet must include:
- benign pass rate
- adversarial / reshuffle detection rate
- false refusal rate
- legacy-only vs wave-only vs dual ablation (if dual remains)
- per-axis \(\ell,s\) distributions
- score / \(d_{\mathrm{stab}}\) separation with confidence intervals
- representative failure examples
- runtime cost (µs/turn) for \(A(F)\) path
Placeholder axes may yield weak semantic separation; report that honestly. Do not paper over with marketing claims.
---
## 7. Explicit non-goals (ADR-0246)
**Do not build in ADR-0246:**
1. Nonzero geometric \(C_{\mathrm{id}}\) / conjugate rotor correction / admittance stubs
2. Multi-port residual protocol (Ring 2) as a unified scheduler
3. ArticulationCertificate productization (may *consume* 0246 fields later)
4. Semantic axis grounding / pack redesign for “true” truthfulness vectors
5. Merging biography holonomy into identity path ledger
6. Atlas packing, VSWR auto-repack, or golden-angle work (D4 Phase 5 / other ADRs)
7. Analytic f64→f32 “truncation reactance” \(X_{\mathrm{cast}}\)
8. Second identity projection path (grade-1 projection of versor — proven vacuous)
9. Indefinite-norm leakage magnitude
10. \(H_{\mathrm{id}}\) enlarged to \(O(n)\), permutations, or \(\{-I\}\) “for convenience”
11. Soft projection of unlawful \(A\) onto \(I\) then composing as if lawful
12. Default-on serve gate without D4 Phase 3 calibration certificate
13. Smith Chart as a new algebra or universal scalar controller
14. Status flip of ADR-0244/0245 without explicit human ratification
---
## 8. Relationship to D4 completion (Ring 0)
ADR-0246 **starts after** (or explicitly waived past) D4 close-out. Until then, D4 owns:
| D4 phase | Relevance to 0246 |
|----------|-------------------|
| 2c ablation / injection eval | Discrimination honesty; 0246 reuses the report format |
| 3 \(\gamma_{\mathrm{id}}\) (+ optional \(\tau_{\max}, s_{\min}\)) | Feeds 0246 admit surface; 0246 adds \(d_{\mathrm{orth}}, d_{\mathrm{stab}}, \epsilon_{\mathrm{session}}\) |
| 4 cast transport certificate | Separate seam; 0246 may later compare \(A(F_{64})\) vs \(A(F_{32})\) but must not redefine cast |
| 5 packing + digest residuals + 0245 §3 proofs | Orthogonal mechanical/semantic rigor |
| 6 acceptance packets | Gate for starting 0246 implementation |
**While Claude is on D4:** do not open `core-adr0244d4` for 0246 work. Prefer a fresh worktree from post-D4 `main`.
### Optional D4 Phase 4 certificate (still D4, not 0246)
If D4 Phase 4 is still open when this brief is used, prefer this transport certificate (small, no new algebra):
```text
PrecisionTransportCertificate:
source_field_digest
source_precision: f64
target_precision: f32
versor_residual_before
versor_residual_after
identity_leakage_delta
identity_alignment_delta
trajectory_invariant_delta
geometry_condition_number
deterministic_replay_digest
```
\(\kappa(G)\cdot\epsilon_{\mathrm{cast}}\) is a **risk diagnostic** that triggers near-conditioning adversarial tests — not a standalone pass/fail law.
---
## 9. Ring 2 / Ring 3 pointers (out of scope, preserved direction)
> **Status (2026-07-17):** both pointers are now first-slice BUILT exactly as
> bounded here — the shared control grammar (`core/ports/`, ADR-0247 Proposed)
> and the integrity-handoff coordination seam (ADR-0248 Proposed) — see §0a.
> The direction text below is preserved verbatim as the design authority.
### Ring 2 — multi-port residual protocol (future)
Shared control grammar only:
```text
witness → typed residual decomposition → permitted operator selection
→ bounded operation or abstention → re-certification
→ articulation/action decision → append-only replay record
```
Ports retain **non-identical** native geometry (Identity, Atlas, Evidence, Temporal/causal, Precision, Articulation, Action). Smith/conformal language is the interconnect grammar, not a second physics.
### Ring 3 — intelligence content (future)
Composition, bind/infer/counterfactual, epistemic standing, observe→learn under INV-2130, discourse planning. Integrity coordinates handoffs; it does not replace content-bearing cognition.
---
## 10. Acceptance criteria for the future ADR-0246 packet
Before proposing **Accepted**:
1. All §6 synthetic + path suites green; discrimination report attached.
2. \(H_{\mathrm{id}}=\{I\}\) enforced; no silent enlargements.
3. Lawful-only composition proven by tests that fail if raw product is used.
4. Ledger hard-breaks on pack/geometry/policy/session change.
5. Flag-off serve path remains byte-identical where applicable.
6. No geometric \(C_{\mathrm{id}}\); admit-or-abstain only.
7. Typed residual channels pinned to explicit blade indices.
8. Smoke + relevant fast/cognition lanes local-first; `[Verification]:` on PR.
9. Claims language: “lawfulness relative to declared frozen frame,” not unearned “semantic inalienability of value labels.”
10. Explicit human ratification for status flip (provenance guard).
---
## 11. Open workstreams (explicitly deferred)
| Workstream | Why deferred |
|------------|--------------|
| Semantic axis grounding (replace e1/e2/e3 placeholders with evidence-linked directions) | Instruments ≠ meaning |
| Geometric boundary witnesses beyond pack-id ∩ safety verdicts | D4 v1 registry is thin but acceptable until 0246+ |
| Bounded geometric \(C_{\mathrm{id}}\) | Requires discrimination + calibration + trajectory-fidelity constraint |
| Multi-port residual framework | Ring 2 |
| Articulation routing from residuals | Ring 2/3 consumer |
| Enlarged \(H_{\mathrm{id}}\) for named cognitive modes | Policy product decision, not algebra default |
---
## 12. One-sentence north star
> **D4 is the operational integrity floor; ADR-0246 makes identity lawful action across time on a frozen frame; later multi-port residuals coordinate existing organs; composition and evidence-governed learning complete the intelligence loop.**
---
## 13. Resume checklist (when implementing ADR-0246)
1. Confirm D4 Phase 6 (or waiver) and clean worktree from post-D4 `main`.
2. Re-read this brief §3 (locked decisions) and §7 (non-goals).
3. Implement pure \(A(F)\), \(d_{\mathrm{orth}}\), typed residuals in `identity_manifold` / `identity_action` with RED tests first.
4. Wire path ledger with lawful-only composition + hard breaks.
5. Extend gate admit surface; keep flag default off until calibrated.
6. Run §6 eval matrix; attach discrimination report.
7. Write ADR-0246 body + acceptance packet; **do not** self-Accept.
---
## 14. Document control
| Field | Value |
|-------|--------|
| Location | `docs/briefs/ADR-0246-induced-identity-action-and-path-integrity-preflight.md` |
| Supersedes | Informal post-D4 R&D chat conclusions only (not D4 plan) |
| Next artifact | Full `docs/adr/ADR-0246-...md` after D4 close, same locked decisions |
| Related live work | `docs/handoff/ADR-0244-D4-IMPLEMENTATION-PLAN.md` — do not modify mid-D4 without owner |