docs(adr): land Third-Door Super-Blueprint + ADR-0238/0239/0240 (refs #10 #11 #12 #13)

Canonical ADRs under docs/adr/; thin redirects under docs/decisions/ for
Issue #10 path compatibility. Documents dual GoldTether ontology, residual
namespaces, HITL curve, and Spin left-composition blend geodesic.

Base: forgejo/main @ dbd44a2a
This commit is contained in:
Shay 2026-07-11 22:01:08 -07:00
parent dbd44a2a03
commit bad9b87bff
8 changed files with 537 additions and 0 deletions

View file

@ -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.

View file

@ -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. **CartanIwasawa 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 CartanIwasawa 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, targetsource)
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** CartanIwasawa factors each closed.

View file

@ -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.

View file

@ -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.

View file

@ -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.

View file

@ -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.

13
docs/decisions/README.md Normal file
View file

@ -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) |

View file

@ -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. CartanIwasawa 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.