diff --git a/docs/adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md b/docs/adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md new file mode 100644 index 00000000..cbd0906c --- /dev/null +++ b/docs/adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md @@ -0,0 +1,140 @@ +# ADR-0238: GoldTether-Modulated Supervised Autonomy + Dynamic Pseudoscalar Floor + +**Status:** Proposed +**Date:** 2026-07-11 +**Branch:** `r&d/generalized-agent` +**Parent tracking:** [#10](https://core-gitquarters.acbcontent.org/core-labs/core/issues/10) · Issue [#11](https://core-gitquarters.acbcontent.org/core-labs/core/issues/11) +**Owners:** CORE Labs / R&D +**Canonical path:** `docs/adr/` (not historical `docs/decisions/`) + +**Related:** + +- ADR-0010 Identity Physics +- ADR-0006 Field Energy (distinct residual namespace) +- ADR-0055 / ADR-0056 / ADR-0080 Contemplation + reviewed promotion +- ADR-0175 Calibrated Attempt-and-Eliminate +- ADR-0199 Cross-Domain Learning Arena (`GoldTether` *protocol* — different contract) +- ADR-0239 Conformal Procrustes + Surprise Dual +- ADR-0240 Analogical Transfer + Biography Holonomy + +**Depends on:** Cl(4,1) closure (`algebra/versor.py`), manifold slerp (`algebra/rotor.py`) + +**Acceptance path:** green `tests/test_adr_0238_goldtether.py` + smoke/algebra lanes + Josh review. + +--- + +## 1. Context + +CORE needs a **coherence tether** that modulates autonomy without violating HITL defaults, one-mutation-path review, or algebraic closure. Issue #10/#11 name this the GoldTether-modulated supervised autonomy envelope with a dynamic grade-5 pseudoscalar floor. + +### Dual ontology (mastery refinement) + +| Name | ADR | Contract | +|---|---|---| +| **Arena GoldTether** | ADR-0199 | `is_correct` / `gold_answer` — independent truth for practice scoring | +| **Coherence GoldTether** | **this ADR** | residual + dynamic floor + practice/serve autonomy bands | + +Shared metaphor (gold as anchor). **Different types, different modules.** Implementation lives in `core/physics/goldtether.py` as `GoldTetherMonitor` / `CoherenceResidual` — never shadows `core.learning_arena.protocols.GoldTether`. + +### Problem + +Without a geometric autonomy envelope, either: + +1. autonomy is premature (unsafe serve-path self-action), or +2. supervision is unstructured (no residual, no floor, no dual-correction blend). + +--- + +## 2. Decision + +### 2.1 Harmonized residual + +```text +drift = |ps(current) − ps(reference)| (grade-5 / magnitude) +geometric_distance = || reverse(ref) * current − 1 ||_F +combined = w_drift * drift + (1 − w_drift) * normalize(geo) +kappa = 1 / (1 + combined / floor) # monotone; scales blend only +``` + +Named config only: `decay_N`, `w_drift`, `floor_init`, `critical_ratio`, `practice_autonomy_enabled`, `serve_supervised_blend_authorized`. + +**Residual namespaces (non-negotiable):** + +- ADR-0006 `EnergyProfile.coherence_residual` — thermodynamic class input +- ADR-0238 `CoherenceResidual.combined` — autonomy tether +- ADR-0239 `procrustes_residual` / surprise residual — structural transfer + +Do not conflate. + +### 2.2 Dynamic pseudoscalar floor + +- Initialized at `floor_init` (primal retained forever under decay). +- Updated **only** on practice successes with residual < current floor. +- Decay window `decay_N` keeps recent residuals; floor never drops below half primal. +- Serve mode never promotes the floor. +- Telemetry schema: `goldtether_coherence_v1` (value, sign, n_samples, recent_residuals, config). + +### 2.3 Autonomy envelope + +| Band | Condition | Practice | Serve | +|---|---|---|---| +| `AUTONOMOUS` | R < floor | only if `practice_autonomy_enabled` | **never** | +| `SUPERVISED_BLEND` | R ≤ critical | default below/mid band | only if `serve_supervised_blend_authorized` | +| `FAIL_CLOSED` | R > critical or serve default | yes | **default** | + +HITL phase-out is a **measured curve**, not a flag flip. Self-review gates are documented; they are not auto-proven by this ADR. + +### 2.4 Supervised blend (dual-correction) + +```text +R = word_transition_rotor(source, target) # = target * reverse(source) +R^α = rotor_power(R, α) +out = R^α * source # Spin left-composition +assert versor_condition(out) < 1e-6 +# α=0 → source; α=1 → target (unit versors) +``` + +**Mastery correction:** sandwich conjugation `R^α * source * reverse(R^α)` is the wrong geodesic for *state* interpolation (it maps the identity to itself). Left composition on the rotor group is the dual-correction surface that lands exactly on the endpoints. + +No Euclidean lerp on multivector coefficients. No hot-path unitize repair. + +### 2.5 Implementation surface + +- Module: `core/physics/goldtether.py` +- Types: `GoldTetherConfig`, `CoherenceResidual`, `AutonomyBand`, `AutonomyDecision`, `PseudoscalarFloorState`, `GoldTetherMonitor`, `OperatingMode` +- Proof tests: `tests/test_adr_0238_goldtether.py` + +--- + +## 3. Consequences + +### Positive + +- Geometry-first autonomy modulation without stochastic fallback. +- Serve remains fail-closed by default (HITL preserved). +- Pseudoscalar floor is a first-class telemetry channel for lifelong coherence curves. +- Explicit dual ontology prevents Arena vs Coherence confusion under review. + +### Risks / mitigations + +| Risk | Mitigation | +|---|---| +| Residual conflation with energy residual | Distinct type names + ADR text + tests | +| Premature autonomy | `practice_autonomy_enabled=False` default; serve never autonomous | +| Drift repair disguised as blend | Blend only via `rotor_power` / transition rotors | + +### Non-goals + +- Auto-promotion of SPECULATIVE → COHERENT +- Replacing ADR-0199 arena GoldTether +- Approximate recall or sampling + +--- + +## 4. Proof obligations + +- **G-1** Replay: identical (current, reference, config, sequence) → identical residual/floor/decision telemetry. +- **G-2** Closure: every `supervised_blend` output has `versor_condition < 1e-6`. +- **G-3** Serve never returns `AUTONOMOUS`. +- **G-4** Floor updates only on practice success below floor. +- **G-5** Arena GoldTether protocol tests remain green unchanged. diff --git a/docs/adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md b/docs/adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md new file mode 100644 index 00000000..fdb39b05 --- /dev/null +++ b/docs/adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md @@ -0,0 +1,109 @@ +# ADR-0239: Conformal Procrustes + Surprise Residual Dual Operator + +**Status:** Proposed +**Date:** 2026-07-11 +**Branch:** `r&d/generalized-agent` +**Parent:** [#10](https://core-gitquarters.acbcontent.org/core-labs/core/issues/10) · Issue [#12](https://core-gitquarters.acbcontent.org/core-labs/core/issues/12) +**Canonical path:** `docs/adr/` + +**Related:** ADR-0013 Sensorium · ADR-0198/0209 Sensorimotor · ADR-0238 Coherence GoldTether · ADR-0240 Transfer Harness · ADR-0237 GeometricDelta ABI + +**Acceptance path:** green `tests/test_adr_0239_*.py` + algebra lane + Josh review. + +--- + +## 1. Context + +Generalized agentic intelligence requires **structural analogy** (transport a solved map into a novel domain) and **boundary sensing** (what is not yet spanned by known structure) without statistical crutches, sampling, or confabulation. + +Issue #12 specifies: + +- Signature-aware Conformal PCA with null-vector classification +- Conformal Procrustes (versor search for structural analogy) +- Surprise Residual `S(x) = x − proj_B(x)` +- Dual: high surprise seeds Procrustes against vault analogs → productive novelty + +### Mastery refinements closed here + +1. **Null vectors never silently skipped** — every axis classified (`SPACELIKE|TIMELIKE|NULL|DEGENERATE`) and counted. +2. **Dedicated `procrustes_residual` norm** — not null-margin, not energy residual, not GoldTether combined residual. +3. **κ from ADR-0238** scales productive threshold only — never invents content. +4. **Cartan–Iwasawa constructive factorization** supplies the dual-correction surface for factor-wise slerp. + +--- + +## 2. Decision + +### 2.1 Signature-aware PCA + +Module: `core/physics/dynamic_manifold.py` → `signature_aware_pca`. + +- Metric on grade-1: Cl(4,1) signature `(+,+,+,+,-)`. +- Higher grades: positive definite on coefficients (classification sense). +- Metric-rescaled covariance + symmetric `eigh` (deterministic order). +- Eigenvector sign convention: first nonzero component positive. +- **All axes returned** including NULL. + +### 2.2 Conformal Procrustes + +`conformal_procrustes(sources, targets) → ConformalProcrustesResult` + +- Single pair: `word_transition_rotor(s, t)`. +- Multi pair: sequential manifold average (equal-weight geodesic midpoints in input order). +- Output versor must satisfy `versor_condition < 1e-6`. +- Residual: `procrustes_residual(s, t, V) = ||V s reverse(V) − t||_F`. + +### 2.3 Cartan–Iwasawa factors + +`cartan_iwasawa_factorize(V) → K, A, N` with reconstruction residual. + +- Simple rotation (`B² < 0`) → K +- Simple boost (`B² > 0`) → A +- Null / residual → N +- `dual_correction_slerp` powers factors independently then recomposes. + +### 2.4 Surprise Residual + dual + +Module: `core/physics/surprise.py` + +```text +S(x) = x − proj_B(x) # orthonormal span of ordered basis +affinity(analog) = |cos|(S, target−source) +dual: best analog → Procrustes; productive iff residual ≤ threshold/κ +``` + +No sampling. Ordered analog list; stable sort by affinity desc, id asc. + +--- + +## 3. Consequences + +### Positive + +- Structural transfer without embeddings-as-truth. +- Explicit null classification closes a long-standing silent-drop hazard. +- Dual operator converts surprise into *proposal-grade* novelty only when residual-proven. + +### Risks + +| Risk | Mitigation | +|---|---| +| PCA treated as memory truth | PCA is analysis/telemetry only; vault recall remains exact CGA | +| Non-simple versor average drift | unitize only at construction boundary; fail residual loudly | +| Confabulated analogy | productive=False → refuse / NOT_YET path (ADR-0240) | + +### Non-goals + +- ANN / cosine vault recall +- Stochastic exploration +- Motor actuation + +--- + +## 4. Proof obligations + +- **P-1** Null axes present in result counts when constructed. +- **P-2** Procrustes output closed. +- **P-3** Surprise residual orthogonal to basis span (within tol). +- **P-4** Dual replay byte-identical for identical inputs. +- **P-5** Cartan–Iwasawa factors each closed. diff --git a/docs/adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md b/docs/adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md new file mode 100644 index 00000000..5d888aee --- /dev/null +++ b/docs/adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md @@ -0,0 +1,102 @@ +# ADR-0240: Analogical Transfer Harness + Biography Holonomy + Temporal Gate + Self-Authorship Miner + +**Status:** Proposed +**Date:** 2026-07-11 +**Branch:** `r&d/generalized-agent` +**Parent:** [#10](https://core-gitquarters.acbcontent.org/core-labs/core/issues/10) · Issue [#13](https://core-gitquarters.acbcontent.org/core-labs/core/issues/13) +**Canonical path:** `docs/adr/` + +**Related:** ADR-0010 Identity · ADR-0055/0080 Contemplation · ADR-0150/0151 Proposal corridor · ADR-0199 Arena · ADR-0238/0239 Third Door operators + +**Acceptance path:** green `tests/test_adr_0240_*.py` + harness wrong=0 on fixture pair + Josh review. + +--- + +## 1. Context + +Operators alone do not prove generalized agency. This ADR lands the **genius layer** that binds them to lifelong identity and safe proposal discipline: + +1. **Analogical Transfer Validation Harness** — solved domain → novel domain under residual measurement + wrong=0 +2. **Biography Holonomy Blade** — forever-lived individuality as reconstructible holonomy +3. **Temporal Admissibility Gate** — wisdom as geometry (`ADMIT` / `NOT_YET` / `REFUSE`) +4. **Self-Authorship Miner** — geometry-guided **proposal-only** extensions + +### Mastery refinements + +- Biography is **recompute-from-trajectory**, not raw experience storage (reconstruction-over-storage). +- Temporal gate never confabulates early — typed `NOT_YET` disclosures. +- Miner emits `epistemic_status=SPECULATIVE` only; zero vault writes; stable proposal_id ordering. +- Harness is pytest-first; Tier-2 CLAIMS pin deferred until green history exists (do not hand-edit `CLAIMS.md`). + +--- + +## 2. Decision + +### 2.1 Analogical transfer harness + +Path: `evals/analogical_transfer/harness.py` + +```text +learn V = conformal_procrustes(source → target) +mapped = V * novel_query * reverse(V) +residual = ||mapped − expected|| +wrong++ if residual > threshold and not refused +``` + +Fixture pair: rotation structural transfer across domains (`make_fixture_pair`). + +### 2.2 Biography Holonomy Blade + +Path: `core/physics/biography.py` + +- `integrate_biography(trajectory)` → `BiographyHolonomyBlade` via `holonomy_encode` +- Order is load-bearing; empty trajectory refused +- Telemetry schema `biography_holonomy_v1` (hash, steps, closure, scalar/pseudoscalar projections) + +### 2.3 Temporal Admissibility Gate + +Path: `core/physics/temporal_gate.py` + +Pure predicate over `TemporalContext` (step, min_step, evidence counts, residual ceiling, prerequisites). Returns typed disclosure payloads suitable for epistemic surfaces. + +### 2.4 Self-Authorship Miner + +Path: `core/physics/self_authorship.py` + +- Inputs: current/reference versors, optional basis + analogs +- Outputs: ordered `AuthorshipProposal` tuples with `drift_residual` + `closure_proof` +- **Never** calls `VaultStore.store`; promotion remains ADR-0151 / review corridor + +--- + +## 3. Consequences + +### Positive + +- Lifelong identity strengthened via reconstructible holonomy. +- Transfer claims become falsifiable (wrong=0 harness). +- Self-extension stays proposal-only (INV-21/22/23 spirit). + +### Risks + +| Risk | Mitigation | +|---|---| +| Biography used as memory dump | hash + holonomy only; no raw transcript storage | +| Miner auto-serve | SPECULATIVE only; no serving path import | +| Premature claim emission | Temporal gate NOT_YET | + +### Non-goals + +- Physical motor decode +- Auto-accept proposals +- CLAIMS Tier-2 pin in this PR + +--- + +## 4. Proof obligations + +- **H-1** Fixture transfer wrong=0 under threshold. +- **H-2** Biography reconstructible and order-sensitive. +- **H-3** Temporal NOT_YET before min_step / insufficient evidence. +- **H-4** Miner proposals all SPECULATIVE; deterministic id order. +- **H-5** No module imports vault store for mutation. diff --git a/docs/decisions/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md b/docs/decisions/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md new file mode 100644 index 00000000..8e1bede3 --- /dev/null +++ b/docs/decisions/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md @@ -0,0 +1,6 @@ +# ADR-0238 — Redirect + +**Canonical location:** [`docs/adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md`](../adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md) + +`docs/decisions/` is historical. All new ADR content lives under `docs/adr/`. +This stub exists so Issue #10/#11 paths resolve without duplicating the decision record. diff --git a/docs/decisions/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md b/docs/decisions/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md new file mode 100644 index 00000000..8e1d7b1d --- /dev/null +++ b/docs/decisions/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md @@ -0,0 +1,6 @@ +# ADR-0239 — Redirect + +**Canonical location:** [`docs/adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md`](../adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md) + +`docs/decisions/` is historical. All new ADR content lives under `docs/adr/`. +This stub exists so Issue #10/#12 paths resolve without duplicating the decision record. diff --git a/docs/decisions/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md b/docs/decisions/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md new file mode 100644 index 00000000..d5ae57ca --- /dev/null +++ b/docs/decisions/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md @@ -0,0 +1,6 @@ +# ADR-0240 — Redirect + +**Canonical location:** [`docs/adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md`](../adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md) + +`docs/decisions/` is historical. All new ADR content lives under `docs/adr/`. +This stub exists so Issue #10/#13 paths resolve without duplicating the decision record. diff --git a/docs/decisions/README.md b/docs/decisions/README.md new file mode 100644 index 00000000..c620bd80 --- /dev/null +++ b/docs/decisions/README.md @@ -0,0 +1,13 @@ +# Historical ADR path + +New ADRs **must** be written under [`docs/adr/`](../adr/README.md). + +This directory remains only for historical links and **redirect stubs** that +point auditors from legacy issue paths (e.g. Third-Door Issues #10–#13) to the +canonical `docs/adr/` files. + +| Legacy / issue path | Canonical | +|---|---| +| `docs/decisions/ADR-0238-…` | [`docs/adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md`](../adr/ADR-0238-GoldTether-Modulated-Supervised-Autonomy.md) | +| `docs/decisions/ADR-0239-…` | [`docs/adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md`](../adr/ADR-0239-Conformal-Procrustes-Surprise-Dual-Operator.md) | +| `docs/decisions/ADR-0240-…` | [`docs/adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md`](../adr/ADR-0240-Analogical-Transfer-Validation-Harness-Biography-Holonomy.md) | diff --git a/docs/research/CORE-ASI-Super-Blueprint-Third-Door-Horizon.md b/docs/research/CORE-ASI-Super-Blueprint-Third-Door-Horizon.md new file mode 100644 index 00000000..2283bc44 --- /dev/null +++ b/docs/research/CORE-ASI-Super-Blueprint-Third-Door-Horizon.md @@ -0,0 +1,155 @@ +# CORE ASI Super-Blueprint — Third-Door Horizon + +**Status:** R&D blueprint (programmatic land on `r&d/generalized-agent`) +**Date:** 2026-07-11 +**Tracking:** Issues #10–#13 · ADR-0238 · ADR-0239 · ADR-0240 +**Mode:** Geometry-first. No statistical crutches. No sampling. No confabulation. + +--- + +## 1. North star + +```text +listen → comprehend → recall → think → articulate → learn (reviewed) → replay +``` + +The Third Door extends this path with **structural analogy**, **coherence-tethered autonomy**, and **lifelong biography holonomy** — without leaving the Cl(4,1) substrate or the review-gated mutation corridor. + +--- + +## 2. Axioms (non-negotiable) + +1. Cl(4,1) multivector versors `[f32|f64; 32]` +2. Algebraic closure: `versor_condition(F) < 1e-6` +3. Dual-correction (factor slerp / transition rotors — not Euclidean lerp) +4. Replay-determinism (byte-identical traces) +5. One-mutation-path + review gates +6. Reconstruction-over-storage +7. Forever-lived single trajectory / biography holonomy + +Pillars: **GoldTether coherence**, **Practice vs Serve risk-reward physics**, **Epistemic elevation only through articulate reason + contemplation**. + +HITL phase-out only after proven safe self-review — not in this land as a flip switch. + +--- + +## 3. Dual GoldTether ontology + +| Sense | Module | Role | +|---|---|---| +| Arena GoldTether (ADR-0199) | `core/learning_arena` | Independent truth for practice scoring | +| Coherence GoldTether (ADR-0238) | `core/physics/goldtether.py` | Residual + dynamic pseudoscalar floor + autonomy bands | + +Do not unify the types. Do not shadow names. + +--- + +## 4. Operator algebra (landed modules) + +### 4.1 Coherence GoldTether — `core/physics/goldtether.py` + +```text +measure → CoherenceResidual(drift, geo, combined, kappa) +update_floor → PseudoscalarFloorState # practice success only +decide → AutonomyBand # serve never AUTONOMOUS by default +supervised_blend → closed versor # rotor_power slerp +telemetry → goldtether_coherence_v1 +``` + +Bands: `AUTONOMOUS | SUPERVISED_BLEND | FAIL_CLOSED` +Critical: `floor * critical_ratio` +Config names only: `decay_N`, `w_drift`, `floor_init`, `critical_ratio`, `practice_autonomy_enabled`, `serve_supervised_blend_authorized`. + +### 4.2 Dynamic manifold — `core/physics/dynamic_manifold.py` + +```text +signature_aware_pca # null axes classified, never dropped +conformal_procrustes # versor map; dedicated residual norm +cartan_iwasawa_factorize # K, A, N dual-correction surface +dual_correction_slerp # factor-wise power then recompose +``` + +### 4.3 Surprise dual — `core/physics/surprise.py` + +```text +S(x) = x − proj_B(x) +analogy_seed → ordered affinities +dual_operator → productive novelty iff residual ≤ threshold/κ +``` + +### 4.4 Genius layer — ADR-0240 + +| Module | Role | +|---|---| +| `core/physics/biography.py` | Biography Holonomy Blade (recompute) | +| `core/physics/temporal_gate.py` | ADMIT / NOT_YET / REFUSE | +| `core/physics/self_authorship.py` | SPECULATIVE proposals only | +| `evals/analogical_transfer/harness.py` | Transfer validation, wrong=0 | + +--- + +## 5. Practice vs Serve physics + +```text +PRACTICE: residual learning + optional autonomy when enabled + floor updates +SERVE: fail-closed default; supervised blend only if explicitly authorized +``` + +Risk-reward: practice earns evidence; serve may not invent authority. + +--- + +## 6. Lifelong coherence telemetry + +Required channels (pure projections; workbench-consumable): + +1. **Pseudoscalar floor** — `GoldTetherMonitor.telemetry()` +2. **Manifold projection** — PCA axis classifications + explained fractions +3. **Biography holonomy** — `biography_telemetry()` + +Do not break existing workbench contracts; additive only. + +--- + +## 7. Sensorimotor note + +Afferent sensorimotor (ADR-0209) and efferent gates (ADR-0198) remain as-is. This land does **not** mount physical decoders. Cartan–Iwasawa paths are zero-fabrication algebraic scaffolds for future trajectory operators. + +Rust parity (`core-rs`) deferred until Python operators are sealed. + +--- + +## 8. Invariants preserved + +- No cosine/ANN/HNSW as runtime memory truth +- No stochastic generation on cognitive path +- No drift-repair unitize outside construction boundaries +- No unreviewed durable mutation +- Arena practice engine unchanged + +--- + +## 9. Validation + +```bash +python -m pytest tests/test_adr_0238_goldtether.py tests/test_adr_0239_*.py tests/test_adr_0240_*.py -q +core test --suite smoke -q +core test --suite algebra -q +``` + +--- + +## 10. Mastery refinements vs original sandbox artifacts + +1. ADR path corrected to `docs/adr/` (canonical); thin redirects under `docs/decisions/` for Issue #10 path compatibility. +2. Dual GoldTether ontology made explicit and non-colliding. +3. Residual namespaces separated (energy / coherence / procrustes / surprise). +4. Null PCA classification mandatory with counts. +5. Serve autonomy hard-blocked; HITL default documented as curve not switch. +6. Biography as reconstructible holonomy only. +7. Miner proposal-only with stable content hashes. +8. Branch rebased onto current Forgejo `main` before land. +9. **Supervised blend / dual-correction slerp use Spin left-composition** + `out = rotor_power(R, α) * source` (not sandwich conjugation). Sandwich maps the identity to itself and is the wrong geodesic for state interpolation; endpoints are exact (α=0→source, α=1→target). + +This is the single right solution for the Third-Door Horizon layer.