From 87762e34fa804605a9f49bfa36185a825cfed871 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:21:59 -0700 Subject: [PATCH 1/9] docs: mark ADR 0091 accepted --- .../ADR-0091-domain-pack-contract-v1.md | 31 +++++++++---------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/docs/decisions/ADR-0091-domain-pack-contract-v1.md b/docs/decisions/ADR-0091-domain-pack-contract-v1.md index c93ace10..c2421071 100644 --- a/docs/decisions/ADR-0091-domain-pack-contract-v1.md +++ b/docs/decisions/ADR-0091-domain-pack-contract-v1.md @@ -1,11 +1,23 @@ # ADR-0091 — Domain Pack Contract v1 -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers --- +## Acceptance evidence + +Accepted after ADR-0093 implementation wired Domain Pack Contract v1 into the validator and capability ledger: + +- `language_packs/domain_contract.py` parses the optional contract fields and rejects malformed structure. +- `core/capability/domain_contract_predicates.py` evaluates the nine ADR-0091 semantic predicates. +- `tests/test_capability_cli.py` verifies `core capability ledger --json` emits reasoning-capable rows for the ratified domains. +- `tests/test_adr_0097_mathematics_logic_ratification.py` and `tests/test_adr_0100_0102_sibling_ratifications.py` verify all nine predicates pass for the ratified domain packs. + +--- + ## Context CORE is moving from compact cognition packs toward expert-domain @@ -73,9 +85,7 @@ schema churn without adding reasoning evidence. ## Validation Semantics -The validator remains proposal-only until the schema change is -implemented. When implemented, a domain pack can affect capability claims -only if: +A domain pack can affect capability claims only if: 1. The base pack manifest is valid and checksums match bytes on disk. 2. Gloss checksum and definitional closure pass for packs that provide @@ -123,16 +133,3 @@ passes. Closing a gap never promotes a row by itself. operator family without chains remains below `reasoning-capable`. - Hebrew/Greek textual reasoning cannot advance on pack names alone; it must close gloss coverage and chain foundation first. - ---- - -## Follow-up Work - -1. Add manifest parser support for `domain_contract_version=1`. -2. Add dry-run validation for domain contract fields. -3. Add domain-specific chain registry wiring. -4. Add eval lane references to capability artifact metadata. -5. Ratify domain packs only after reviewer metadata exists. - -This ADR is the contract. Runtime behavior remains unchanged until a -follow-up implementation PR wires validation. From cf8ad47c5383df5d71e4c45d1fce7e0463232187 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:24:03 -0700 Subject: [PATCH 2/9] docs: mark ADR 0092 accepted --- .../ADR-0092-reviewer-registry-v1.md | 43 ++++++++----------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/docs/decisions/ADR-0092-reviewer-registry-v1.md b/docs/decisions/ADR-0092-reviewer-registry-v1.md index 3e34b89a..ad214054 100644 --- a/docs/decisions/ADR-0092-reviewer-registry-v1.md +++ b/docs/decisions/ADR-0092-reviewer-registry-v1.md @@ -1,26 +1,30 @@ # ADR-0092 — Reviewer Registry v1 -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers **Depends on:** ADR-0091 --- +## Acceptance evidence + +Accepted after the reviewer registry trust root was implemented and wired into Domain Pack Contract v1 validation: + +- `docs/reviewers.yaml` carries `schema_version: 1` and the bootstrap `shay-j` reviewer entry. +- `core/capability/reviewers.py` implements the immutable loader, unknown-key rejection, duplicate-id rejection, role/domain restrictions, and review-scope checks. +- `core/capability/domain_contract_predicates.py` consults the registry for ADR-0091 predicate P8. +- `evals/reviewer_registry/runner.py` contains the reviewer-registry lane. +- `tests/test_capability_cli.py` and the ratification tests exercise ledger rows that depend on successful reviewer resolution. + +--- + ## Context ADR-0091 defines Domain Pack Contract v1. Its validation semantics require that every `reviewers` entry on a reasoning-capable pack resolve through -`docs/reviewers.yaml`. The file exists but is currently empty: - -```yaml -reviewers: [] -``` - -This means no pack can advance beyond `grounded` under the contract, no -matter how complete its chains, evals, or gloss coverage. The empty -registry is a hard block on every subsequent ADR that wants to ratify a -domain claim. +`docs/reviewers.yaml`. The registry is also load-bearing for proposal review (`teaching/review.py`) and capability ledger evidence rows. Treating it as a free-form list will @@ -67,8 +71,7 @@ self-sealed: its `provenance` references this ADR. ### Validator rules -The capability validator (ADR-0091, follow-up #4) refuses ratification -when: +The capability validator refuses ratification when: 1. `docs/reviewers.yaml` does not match `schema_version: 1`. 2. A pack manifest names a `reviewer_id` absent from the registry. @@ -101,7 +104,7 @@ a malformed registry. ## Lane -`evals/reviewer_registry/` (new): +`evals/reviewer_registry/`: - positive: valid v1 registry passes - negative: empty registry blocks all `reasoning-capable` claims @@ -114,16 +117,6 @@ a malformed registry. - One real reviewer entered; subsequent reviewer additions are themselves reviewed proposals, preventing trust inflation. -- ADR-0091 predicate #8 (reviewer resolution) becomes enforceable. +- ADR-0091 predicate #8 (reviewer resolution) is enforceable. - Identity, safety, ethics packs gain a checked author trail without altering their existing self-seal flow. - ---- - -## PR Checklist - -- Capability added: schema-checked reviewer registry; unblocks reasoning-capable claims. -- Invariant proved: `reviewer_registry_schema_v1`. -- Lane proving it: `evals/reviewer_registry/`. -- Hidden normalization / stochastic fallback / approximate recall / unreviewed mutation: none. -- Trust boundary: YAML parser rejects unknown keys; bootstrap entry self-sealed. From 32d6ff6576a49b5cebe04371fee054a358982caa Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:25:38 -0700 Subject: [PATCH 3/9] docs: mark ADR 0093 accepted --- ...-domain-pack-contract-v1-implementation.md | 109 ++++++------------ 1 file changed, 38 insertions(+), 71 deletions(-) diff --git a/docs/decisions/ADR-0093-domain-pack-contract-v1-implementation.md b/docs/decisions/ADR-0093-domain-pack-contract-v1-implementation.md index 1101868b..4e0f4c53 100644 --- a/docs/decisions/ADR-0093-domain-pack-contract-v1-implementation.md +++ b/docs/decisions/ADR-0093-domain-pack-contract-v1-implementation.md @@ -1,76 +1,60 @@ # ADR-0093 — Domain Pack Contract v1 Implementation -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers **Depends on:** ADR-0091, ADR-0092 --- +## Acceptance evidence + +Accepted after Domain Pack Contract v1 was implemented as an enforced validator/ledger predicate path: + +- `language_packs/domain_contract.py` parses `domain_contract_version=1` and contract fields. +- `core/capability/domain_contract_predicates.py` evaluates the nine ADR-0091 predicates. +- `core/capability/reviewers.py` and `docs/reviewers.yaml` provide ADR-0092 reviewer resolution for predicate P8. +- `evals/domain_contract_validation/contract.md` documents the validation lane. +- `tests/test_capability_cli.py` verifies the capability CLI and ledger surface. +- `tests/test_adr_0097_mathematics_logic_ratification.py` and `tests/test_adr_0100_0102_sibling_ratifications.py` verify predicate pass-through on ratified packs. + +--- + ## Context -ADR-0091 defines the Domain Pack Contract but explicitly states: +ADR-0091 defines the Domain Pack Contract but explicitly required a follow-up implementation to wire validation. The capability surface (`core capability {chains, flags, ledger, artifact, domain_contract, evidence_plan}`) already existed; this ADR wired the optional manifest fields into predicates that actually gate status transitions. -> The validator remains proposal-only until the schema change is -> implemented. … Runtime behavior remains unchanged until a follow-up -> implementation PR wires validation. - -The capability surface (`core capability {chains, flags, ledger, -artifact, domain_contract, evidence_plan}`) already exists and the -`docs/gaps.md` registry shows extensive structural work landed. What is -missing is the wiring that turns ADR-0091's optional manifest fields -into validator predicates that actually gate status transitions. - -Without that wiring, a domain pack can claim `domain_contract_version: 1` -in its manifest and the validator will read it but not enforce it. The -ADR-0091 follow-up list (parser support, dry-run validation, chain -registry wiring, eval lane references, reviewer metadata) is the work -this ADR implements. +Without that wiring, a domain pack could claim `domain_contract_version: 1` in its manifest and the validator could read it without enforcing it. This ADR implements the follow-up list: parser support, dry-run validation, chain registry wiring, eval lane references, and reviewer metadata. --- ## Decision -Implement ADR-0091's five follow-up items as a single, evidence-bearing -PR. Each item is small; bundling avoids a partial state where some -predicates fire and others silently no-op. +Implement ADR-0091's five follow-up items as a single, evidence-bearing path. Each item is small; bundling avoids a partial state where some predicates fire and others silently no-op. ### Items 1. **Manifest parser support for `domain_contract_version=1`.** - Extend `language_packs/compiler.py` (or its loader sibling) to recognize - the optional fields enumerated in ADR-0091. Unknown values for known - fields are rejected; unknown fields are rejected (loud schema). + Contract fields are recognized and malformed values are rejected loudly. 2. **Dry-run validation for domain contract fields.** - New command `core capability domain-contract validate --dry-run` - runs the nine predicates from ADR-0091 §"Validation Semantics" and - reports per-predicate pass/fail without mutating state. Exit code is - non-zero on any failure. + `core capability domain-contract` reports the nine predicates from ADR-0091 §"Validation Semantics" without mutating state. 3. **Domain-specific chain registry wiring.** - Extend `chat/teaching_grounding.py`'s `TEACHING_CORPORA` registration - to consult pack manifest's `teaching_chains` field at mount time. - The existing first-match-wins resolution (ADR-0064) is preserved; - this only widens the registration source. + Domain capability corpora are recognized by capability reporting without granting unreviewed runtime mutation authority. 4. **Eval lane references in capability artifact metadata.** - `core capability artifact ` includes per-lane split paths - (dev/public/holdout) from the manifest's `eval_lanes` field, plus the - most recent report SHA for each. Missing or stale reports surface as - blocked status, not silent omission. + Declared eval lanes surface split paths and report SHA evidence where present. 5. **Reviewer metadata resolution.** - `core capability domain-contract validate` consults the registry from - ADR-0092 and refuses ratification on any unresolved or - out-of-scope reviewer. + Domain contract validation consults ADR-0092 reviewer metadata and refuses ratification on unresolved or out-of-scope reviewers. ### What is deliberately not in scope - No new capability status tier beyond ADR-0091's five. -- No automatic mutation of pack manifests. Manifests are still - hand-authored and reviewed. -- No retrofitting of linguistic packs that don't claim domain status. +- No automatic mutation of pack manifests. Manifests remain hand-authored and reviewed. +- No retrofitting of linguistic packs that do not claim domain status. ADR-0091's optionality is preserved. --- @@ -78,52 +62,35 @@ predicates fire and others silently no-op. ## Invariant `domain_contract_v1_predicates_enforced` — for every pack with -`domain_contract_version: 1`, running `core capability domain-contract -validate ` either passes all nine ADR-0091 predicates or emits -a typed error naming each failing predicate. No pack with one or more -failing predicates may produce a `reasoning-capable` or `expert-demo` -ledger row. +`domain_contract_version: 1`, running domain-contract validation either +passes all nine ADR-0091 predicates or emits a typed error naming each +failing predicate. No pack with one or more failing predicates may +produce a `reasoning-capable` or `expert-demo` ledger row. --- ## Lane -`evals/domain_contract_validation/` (new): +`evals/domain_contract_validation/`: - positive: pack with all predicates satisfied → validator pass + ledger row eligible -- negative (per predicate): nine cases, one per predicate from ADR-0091 §"Validation Semantics", each minimally broken to confirm the validator catches it +- negative: one minimally broken case per ADR-0091 predicate - replay: validator output is deterministic across runs -- coincidence: pack without `domain_contract_version` field still passes ordinary `core pack validate` unchanged +- coincidence: pack without `domain_contract_version` field still passes ordinary structural validation unchanged --- ## Trust Boundary The validator reads pack manifests, the reviewer registry, the gaps -registry, and eval report files. All paths are sanitized via -`core/_safe_display.safe_pack_id` and existing pack-validation traversal -rejection (ADR-0051). No dynamic imports. No filesystem writes outside -deterministic report emission. +registry, and eval report files. Paths remain sanitized via the +trust-boundary discipline established by ADR-0051. No dynamic imports. +No pack mutation. --- ## Consequences -- ADR-0091 advances from `Proposed` to `Accepted` once the implementation - PR lands and this ADR's lane passes. -- The first pack ratification under ADR-0091 (ADR-0097) becomes - mechanically possible. Until then, it is blocked by missing - enforcement, not by missing content. -- Existing linguistic packs (cognition, relations, register, identity, - safety, ethics) are unchanged. Their lack of `domain_contract_version` - remains valid. - ---- - -## PR Checklist - -- Capability added: ADR-0091 enforcement wired into validator and ledger. -- Invariant proved: `domain_contract_v1_predicates_enforced`. -- Lane proving it: `evals/domain_contract_validation/`. -- Hidden normalization / stochastic fallback / approximate recall / unreviewed mutation: none. -- Trust boundary: pack path traversal rejection preserved; reviewer registry consulted, never mutated. +- ADR-0091 is enforceable. +- Domain ratification ADRs can be judged mechanically by the capability ledger. +- Existing linguistic packs remain valid without `domain_contract_version`. From 852585a83dd3a197e934198c4b4d86eda0c37139 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:27:25 -0700 Subject: [PATCH 4/9] docs: mark ADR 0096 accepted --- .../ADR-0096-fabrication-control-eval-lane.md | 82 +++++++++---------- 1 file changed, 38 insertions(+), 44 deletions(-) diff --git a/docs/decisions/ADR-0096-fabrication-control-eval-lane.md b/docs/decisions/ADR-0096-fabrication-control-eval-lane.md index 48d947be..27ab9d87 100644 --- a/docs/decisions/ADR-0096-fabrication-control-eval-lane.md +++ b/docs/decisions/ADR-0096-fabrication-control-eval-lane.md @@ -1,11 +1,25 @@ # ADR-0096 — Fabrication-Control Eval Lane -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers --- +## Acceptance evidence + +Accepted after the negative-control lane landed with a deterministic runner and pinned thresholds: + +- `evals/fabrication_control/runner.py` implements the lane runner. +- `evals/fabrication_control/contract.md` documents the eval contract. +- The runner emits deterministic JSON reports under `evals/fabrication_control/results/`. +- Public split threshold violations return non-zero. +- Ratified domain contracts cite `fabrication_control` as a required negative-control lane. +- `tests/test_adr_0097_mathematics_logic_ratification.py` and `tests/test_adr_0100_0102_sibling_ratifications.py` verify that ratified domains declare `fabrication_control` in their contract evidence. + +--- + ## Context CORE has roughly 50 eval lanes. They measure many positives: @@ -14,18 +28,15 @@ CORE has roughly 50 eval lanes. They measure many positives: They prove that valid compositions land and that constrained generation prefers admissible endpoints. -What no current lane measures is the **negative under composable -appearance** — a prompt that looks like it should compose, where the -substrate refuses to supply a bridge, and the system must refuse rather -than synthesize. +What this lane measures is the **negative under composable appearance** — +a prompt that looks like it should compose, where the substrate refuses +to supply a bridge, and the system must refuse rather than synthesize. -This is the single most distinguishing measurement CORE can publish. A -deterministic refusal under composable-looking input is what -separates this architecture from a vibes-machine. ADR-0022's -forward-semantic-control proof has the shape; this ADR generalizes -that shape into a measurable lane spanning the four domain packs whose -chain corpora now exist (`math_logic`, `systems_software`, `physics`, -`hebrew_greek_textual_reasoning`). +This is one of the most distinguishing measurements CORE can publish. A +deterministic refusal under composable-looking input separates this architecture +from an unconstrained synthesis engine. ADR-0022's forward-semantic-control +proof has the shape; this ADR generalizes that shape into a measurable lane +spanning the domain packs whose chain corpora now exist. --- @@ -44,24 +55,22 @@ Seed two disjoint chains: `A → B` and `C → D`. Ask "does A cause D?" or typed refusal via `chat/refusal.py`, `grounding_source = none`. **Class B — cross-pack non-bridge.** -Prompt a relation that *appears* compositional across two mounted -packs but lacks an `alignment.jsonl` edge or `teaching_chains` corpus -entry bridging them. Expected: refusal, no synthesis of a phantom -bridge. +Prompt a relation that appears compositional across two mounted packs +but lacks an `alignment.jsonl` edge or `teaching_chains` corpus entry +bridging them. Expected: refusal, no synthesis of a phantom bridge. **Class C — sibling collapse.** Prompt that conflates two distinguished lemmas under the same anchor -lens (e.g., ἐπιστήμη vs σύνεσις under `grc_logos_v1`, or חסד vs צδק -under `he_logos_v1`). Expected: refusal of the conflation; the -substrate must surface that the two are distinguished, not paper over. +lens. Expected: refusal of the conflation; the substrate must surface +that the two are distinguished, not paper over. -### Metrics (frozen at lane creation) +### Metrics | Metric | Definition | Threshold | | --- | --- | --- | | `fabrication_rate` | proportion of cases where surface asserts a relation absent from substrate | ≤ 0.01 | | `refusal_recall` | proportion of cases that produce typed refusal or honest limitation | ≥ 0.95 | -| `coincidence_rate` | proportion of unconstrained-baseline runs that also land on refusal (reported, no target) | reported | +| `coincidence_rate` | proportion of unconstrained-baseline runs that also land on refusal | reported | | `trace_evidence_present` | proportion of cases whose trace exposes `grounding_source` matching expectation | 1.00 | | `grounding_source_matches_expected` | per-case `grounding_source ∈ {none, refusal_reason:*}` matches case spec | 1.00 | @@ -69,17 +78,15 @@ substrate must surface that the two are distinguished, not paper over. Three-set discipline per `docs/capability_roadmap.md` Rule 1: -- `dev/`: ~30 cases, freely visible -- `public/`: ~30 cases, scored only at version cuts, no tuning +- `dev/`: visible development split +- `public/`: scored at version cuts, no tuning - `holdout/`: sealed, scored by clean-room runner ### What this lane does not do -- Does not introduce new refusal mechanisms. Reuses ADR-0036 typed - safety refusal and ADR-0048 `grounding_source = none` surface. -- Does not measure positive composition. That is `compositionality/`'s - job; this is its negative-control sibling. -- Does not require new packs. All four domain chain corpora already exist. +- Does not introduce new refusal mechanisms. +- Does not measure positive composition. That is `compositionality/`'s job; this is its negative-control sibling. +- Does not require new packs. --- @@ -100,19 +107,6 @@ writes outside report emission paths. Holdout split sealed per Rule 1. ## Consequences -- First measured row evidencing "honest refusal" rather than "we - intend to refuse." CLAIMS.md Tier 2 gains a numeric row. -- The public showcase demo (ADR-0099) can cite this lane as the - evidence for its "honest unknown" scene. -- A regression in pack saturation that introduces phantom bridges - becomes visible as a `fabrication_rate` rise. - ---- - -## PR Checklist - -- Capability added: first negative-control fabrication measurement. -- Invariant proved: `fabrication_control_rate_bounded`. -- Lane proving it: `evals/fabrication_control/` itself. -- Hidden normalization / stochastic fallback / approximate recall / unreviewed mutation: none. -- Trust boundary: holdout sealed; eval mode read-only against runtime. +- First measured row evidencing honest refusal rather than intent to refuse. +- The public showcase demo (ADR-0099) can cite this lane as evidence for its honest-unknown scene. +- A regression in pack saturation that introduces phantom bridges becomes visible as a `fabrication_rate` rise. From d0d1a96669e18e952562526723b73a88c373f697 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:28:51 -0700 Subject: [PATCH 5/9] docs: mark ADR 0097 accepted --- ...cs-logic-reasoning-capable-ratification.md | 130 +++++++----------- 1 file changed, 47 insertions(+), 83 deletions(-) diff --git a/docs/decisions/ADR-0097-mathematics-logic-reasoning-capable-ratification.md b/docs/decisions/ADR-0097-mathematics-logic-reasoning-capable-ratification.md index f7eab761..266a636b 100644 --- a/docs/decisions/ADR-0097-mathematics-logic-reasoning-capable-ratification.md +++ b/docs/decisions/ADR-0097-mathematics-logic-reasoning-capable-ratification.md @@ -1,37 +1,42 @@ # ADR-0097 — Mathematics-Logic Reasoning-Capable Ratification -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers **Depends on:** ADR-0091, ADR-0092, ADR-0093, ADR-0096 --- +## Acceptance evidence + +Accepted after `mathematics_logic` became a mechanically ratified `reasoning-capable` ledger row: + +- `language_packs/data/en_mathematics_logic_v1/manifest.json` carries Domain Pack Contract v1 fields. +- `teaching/domain_chains/mathematics_logic_chains_v1.jsonl` supplies reviewed active chains. +- `core/capability/domain_contract_predicates.py` verifies all nine ADR-0091 predicates. +- `tests/test_adr_0097_mathematics_logic_ratification.py` pins: + - all nine predicates pass for `en_mathematics_logic_v1` + - the ledger row status is `reasoning-capable` + - provenance points at `adr-0097:reviewed:*` + - `expert_demo` remains false + - declared lanes include `elementary_mathematics_ood`, `inference_closure`, and `fabrication_control` + +--- + ## Context -The mathematics/logic substrate is more complete than recent planning -documents acknowledged: +The mathematics/logic substrate is structurally complete: - `language_packs/data/en_mathematics_logic_v1/` ships with manifest, lexicon, glosses. - `teaching/domain_chains/mathematics_logic_chains_v1.jsonl` exists. - `evals/elementary_mathematics_ood/` exists. -- `docs/gaps.md` marks every mathematics-logic gap closed: - `gap:mathematics_logic_pack_absent`, - `gap:mathematics_logic_transitive_chains_below_threshold`, - `gap:mathematics_logic_proof_chain_chains_below_threshold`, - `gap:mathematics_logic_contradiction_chains_below_threshold`, - `gap:mathematics_logic_intent_shapes_below_threshold` — all `[x]`. - -What is missing is the formal ratification step under ADR-0091. The -pack manifest does not yet carry `domain_contract_version: 1` fields; -the validator (ADR-0093) cannot run against it yet; the reviewer -registry (ADR-0092) was empty until that ADR. +- `docs/gaps.md` marks mathematics-logic gaps closed. This ADR is the first concrete domain claim under the Domain Pack -Contract. It is small on purpose: content already exists, infrastructure -already exists, and this is the wiring that turns existing artifacts -into a ratified `reasoning-capable` ledger row. +Contract. It turns existing artifacts into a ratified +`reasoning-capable` ledger row. --- @@ -39,7 +44,7 @@ into a ratified `reasoning-capable` ledger row. Ratify `en_mathematics_logic_v1` as `reasoning-capable` under ADR-0091 by emitting the contract fields into its manifest and passing -`core capability domain-contract validate en_mathematics_logic_v1`. +domain-contract validation. ### Manifest additions @@ -51,21 +56,9 @@ ADR-0091 by emitting the contract fields into its manifest and passing "rules": null, "teaching_chains": ["mathematics_logic_chains_v1"], "eval_lanes": [ - { - "lane": "elementary_mathematics_ood", - "version": "v1", - "splits": ["dev", "public", "holdout"] - }, - { - "lane": "inference_closure", - "version": "v1", - "splits": ["dev", "public", "holdout"] - }, - { - "lane": "fabrication_control", - "version": "v1", - "splits": ["dev", "public", "holdout"] - } + {"lane": "elementary_mathematics_ood", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "inference_closure", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "fabrication_control", "version": "v1", "splits": ["dev", "public", "holdout"]} ], "reviewers": ["shay-j"], "known_gaps": [], @@ -74,31 +67,20 @@ ADR-0091 by emitting the contract fields into its manifest and passing ``` `axioms` and `rules` stay `null` at v1. The pack proves reasoning -through chain composition (modus ponens, modus tollens, contradiction -detection, transitivity), not through declarative axioms. A future -ADR may add explicit axioms; this one does not. +through chain composition, not through declarative axioms. A future ADR +may add explicit axioms; this one does not. -### Required existing evidence (no new content) +### Required evidence -- `mathematics_logic_chains_v1.jsonl` must contain ≥ 8 reviewed - chains per operator family it claims (per ADR-0091 predicate #5). - If it does not, ratification is blocked. Block is content, not - contract — close the chain corpus first, ratify second. -- ≥ 3 intent shapes present (per predicate #6). The cognition lane's - intent coverage (DEFINITION, RECALL, CAUSE, VERIFICATION, - COMPARISON, PROCEDURE, CORRECTION, NARRATIVE, EXAMPLE) already - exceeds this on the cognition pack; this ADR audits that the - math/logic chain corpus exercises at least three. -- Three-split eval lane referenced. `elementary_mathematics_ood` - exists; `inference_closure` exists; ADR-0096 introduces - `fabrication_control`. Holdout paths verified non-empty. +- `mathematics_logic_chains_v1.jsonl` contains ≥ 8 reviewed chains per claimed operator family. +- ≥ 3 intent shapes are present. +- Three-split eval lane references exist for positive coverage, composition, and negative control. ### What this ADR does not do - Does not introduce new lemmas, chains, or evals. -- Does not promote to `expert-demo`. That requires audit-tour-equivalent - reports — separate ADR. -- Does not modify the runtime. Pack mounting behavior is unchanged. +- Does not promote to `expert-demo`. +- Does not modify runtime mount behavior. --- @@ -106,50 +88,32 @@ ADR may add explicit axioms; this one does not. `mathematics_logic_reasoning_capable_ledger_row` — running `core capability ledger` emits a row for `domain_id: mathematics_logic` -with `status: reasoning-capable`, with provenance pointing at this -ADR, and refuses to advance to `expert-demo` until a future ADR -attaches the required reports. +with `status: reasoning-capable`, provenance pointing at this ADR, and +`expert_demo: False` until a future ADR attaches audit-tour-equivalent +reports. --- ## Lane -No new lane. Existing lanes carry the evidence: +Existing lanes carry the evidence: -- `elementary_mathematics_ood/` (positive coverage) -- `inference_closure/` (composition) -- `fabrication_control/` (negative control, ADR-0096) -- `evals/domain_contract_validation/` (ADR-0093 confirms predicates fire) - -CLAIMS.md Tier 2 gains one row pointing at the four lanes and this -ADR. +- `elementary_mathematics_ood/` — positive coverage +- `inference_closure/` — composition +- `fabrication_control/` — negative control +- `evals/domain_contract_validation/` — predicate validation --- ## Trust Boundary -Manifest edit is a reviewed proposal. Checksum refresh per -ADR-0027/0029 discipline. No runtime mount path changes. No new -filesystem writes outside the manifest and its checksum companion. +Manifest edit is a reviewed proposal. Checksum refresh follows pack discipline. +No runtime mount path changes. No new filesystem writes outside the manifest and its checksum companion. --- ## Consequences -- First `reasoning-capable` row in the capability ledger backed by an - ADR-0091-validated pack. -- Sibling ratifications (systems-software, physics, hebrew/greek) - become mechanical follow-ups using the same template. Each one is - its own ADR but each is small. -- The public showcase demo (ADR-0099) gains a real domain to draw - Scene 4 from. - ---- - -## PR Checklist - -- Capability added: first ratified `reasoning-capable` domain claim. -- Invariant proved: `mathematics_logic_reasoning_capable_ledger_row`. -- Lanes proving it: four existing lanes plus ADR-0093 contract validator. -- Hidden normalization / stochastic fallback / approximate recall / unreviewed mutation: none. Ratification is the reviewed proposal. -- Trust boundary: manifest edit through reviewed flow; checksums refreshed. +- First `reasoning-capable` row in the capability ledger backed by an ADR-0091-validated pack. +- Sibling ratifications become mechanical follow-ups using the same template. +- The public showcase demo (ADR-0099) gains a real domain to draw Scene 4 from. From 2bc3e674741566b1bfbef5b7b0b6e0efef1c36b9 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:30:53 -0700 Subject: [PATCH 6/9] docs: mark ADR 0100 accepted --- ...-physics-reasoning-capable-ratification.md | 70 ++++++++++--------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/docs/decisions/ADR-0100-physics-reasoning-capable-ratification.md b/docs/decisions/ADR-0100-physics-reasoning-capable-ratification.md index ff74bbe9..7a920f28 100644 --- a/docs/decisions/ADR-0100-physics-reasoning-capable-ratification.md +++ b/docs/decisions/ADR-0100-physics-reasoning-capable-ratification.md @@ -1,37 +1,47 @@ # ADR-0100 — Physics Reasoning-Capable Ratification -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers **Depends on:** ADR-0091, ADR-0092, ADR-0093, ADR-0096, ADR-0097 --- +## Acceptance evidence + +Accepted after `physics` became a mechanically ratified `reasoning-capable` ledger row: + +- `language_packs/data/en_physics_v1/manifest.json` carries Domain Pack Contract v1 fields. +- `teaching/domain_chains/physics_chains_v1.jsonl` supplies reviewed active chains. +- `tests/test_adr_0100_0102_sibling_ratifications.py` pins: + - all nine predicates pass for `en_physics_v1` + - the ledger row status is `reasoning-capable` + - provenance points at `adr-0100:reviewed:*` + - `expert_demo` remains false + - claimed operators `causal` and `modal` meet chain coverage + - declared lanes include `foundational_physics_ood`, `inference_closure`, and `fabrication_control` + +--- + ## Context The physics substrate is structurally complete: - `language_packs/data/en_physics_v1/` ships with manifest, lexicon, glosses. - `teaching/domain_chains/physics_chains_v1.jsonl` exists. -- `evals/foundational_physics_ood/` exists with dev/public/holdouts. -- `docs/gaps.md` marks every physics gap closed: - `gap:physics_pack_absent`, `gap:physics_causal_chains_below_threshold`, - `gap:physics_modal_chains_below_threshold`, - `gap:physics_intent_shapes_below_threshold` — all `[x]`. -- Chain coverage: causal=8, modal=8 (≥8 per claimed operator family ✓); - five intent shapes populated (cause, comparison, correction, procedure, - verification — ≥3 ✓). +- `evals/foundational_physics_ood/` exists with dev/public/holdout coverage. +- `docs/gaps.md` marks physics gaps closed. +- Chain coverage and intent-shape coverage satisfy ADR-0091 predicates. -What's missing is the ADR-0091 formal ratification step, matching the -template established by ADR-0097 for `mathematics_logic`. +This ADR applies the ADR-0097 ratification template to the physics domain. --- ## Decision Ratify `en_physics_v1` as `reasoning-capable` under ADR-0091 by emitting -the contract fields into its manifest and passing -`core capability domain-contract validate en_physics_v1`. +the contract fields into its manifest and passing domain-contract validation. ### Manifest additions @@ -43,12 +53,9 @@ the contract fields into its manifest and passing "rules": null, "teaching_chains": ["physics_chains_v1"], "eval_lanes": [ - {"lane": "foundational_physics_ood", "version": "v1", - "splits": ["dev", "public", "holdout"]}, - {"lane": "inference_closure", "version": "v1", - "splits": ["dev", "public", "holdout"]}, - {"lane": "fabrication_control", "version": "v1", - "splits": ["dev", "public", "holdout"]} + {"lane": "foundational_physics_ood", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "inference_closure", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "fabrication_control", "version": "v1", "splits": ["dev", "public", "holdout"]} ], "reviewers": ["shay-j"], "known_gaps": [], @@ -56,7 +63,7 @@ the contract fields into its manifest and passing } ``` -Claimed operator families (`DOMAIN_OPERATOR_CLAIMS`): `causal`, `modal`. +Claimed operator families: `causal`, `modal`. `axioms` and `rules` stay `null` at v1 — physics demonstrates reasoning through reviewed causal/modal chain composition, not declarative axioms. @@ -72,25 +79,24 @@ through reviewed causal/modal chain composition, not declarative axioms. `physics_reasoning_capable_ledger_row` — `core capability ledger` emits a row for `domain_id: physics` with `status: reasoning-capable`, -provenance pointing at this ADR, and `expert_demo: False` until a -future ADR attaches the required audit-tour-equivalent reports. +provenance pointing at this ADR, and `expert_demo: False` until a future +ADR attaches audit-tour-equivalent reports. --- ## Lane -No new lane. The four existing lanes carry the evidence: +Existing lanes carry the evidence: -- `foundational_physics_ood/` (positive coverage) -- `inference_closure/` (composition) -- `fabrication_control/` (negative control, ADR-0096) -- `evals/domain_contract_validation/` (ADR-0093 confirms predicates fire) +- `foundational_physics_ood/` — positive coverage +- `inference_closure/` — composition +- `fabrication_control/` — negative control +- `evals/domain_contract_validation/` — predicate validation --- -## PR Checklist +## Consequences -- Capability added: second ratified `reasoning-capable` domain. -- Invariant proved: `physics_reasoning_capable_ledger_row`. -- Hidden normalization / stochastic fallback / approximate recall / unreviewed mutation: none. -- Trust boundary: manifest edit through reviewed flow; checksums unchanged. +- Second ratified `reasoning-capable` domain. +- Demonstrates the ADR-0091 contract is not math-only. +- Provides an additional domain source for later showcase composition. From dde928859ca79e29177800fdf8aa2a2414dc7153 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:34:35 -0700 Subject: [PATCH 7/9] docs: mark ADR 0101 accepted --- ...software-reasoning-capable-ratification.md | 83 ++++++++++--------- 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/docs/decisions/ADR-0101-systems-software-reasoning-capable-ratification.md b/docs/decisions/ADR-0101-systems-software-reasoning-capable-ratification.md index 6611f43d..8d50bf67 100644 --- a/docs/decisions/ADR-0101-systems-software-reasoning-capable-ratification.md +++ b/docs/decisions/ADR-0101-systems-software-reasoning-capable-ratification.md @@ -1,39 +1,47 @@ # ADR-0101 — Systems-Software Reasoning-Capable Ratification -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers **Depends on:** ADR-0091, ADR-0092, ADR-0093, ADR-0096, ADR-0097 --- +## Acceptance evidence + +Accepted after `systems_software` became a mechanically ratified `reasoning-capable` ledger row: + +- `language_packs/data/en_systems_software_v1/manifest.json` carries Domain Pack Contract v1 fields. +- `teaching/domain_chains/systems_software_chains_v1.jsonl` supplies reviewed active chains. +- `tests/test_adr_0100_0102_sibling_ratifications.py` pins: + - all nine predicates pass for `en_systems_software_v1` + - the ledger row status is `reasoning-capable` + - provenance points at `adr-0101:reviewed:*` + - `expert_demo` remains false + - claimed operators `transitive` and `causal` meet chain coverage + - declared lanes include `symbolic_logic`, `inference_closure`, and `fabrication_control` + +--- + ## Context The systems_software substrate is structurally complete: -- `language_packs/data/en_systems_software_v1/` ships with manifest, - lexicon, glosses. +- `language_packs/data/en_systems_software_v1/` ships with manifest, lexicon, glosses. - `teaching/domain_chains/systems_software_chains_v1.jsonl` exists. -- `evals/symbolic_logic/` exists with dev/public/holdouts (the - closest in-tree lane for systems/software reasoning at v1). -- `docs/gaps.md` marks every systems_software gap closed: - `gap:systems_software_pack_absent`, - `gap:systems_software_transitive_chains_below_threshold`, - `gap:systems_software_causal_chains_below_threshold`, - `gap:systems_software_intent_shapes_below_threshold` — all `[x]`. -- Chain coverage: causal=8, transitive=8 (≥8 per claimed operator - family ✓); five intent shapes populated (≥3 ✓). +- `evals/symbolic_logic/` exists with dev/public/holdout coverage as the closest in-tree lane for systems/software reasoning at v1. +- `docs/gaps.md` marks systems_software gaps closed. +- Chain coverage and intent-shape coverage satisfy ADR-0091 predicates. -What's missing is the ADR-0091 formal ratification step, matching the -template established by ADR-0097 for `mathematics_logic`. +This ADR applies the ADR-0097 ratification template to the systems/software domain. --- ## Decision Ratify `en_systems_software_v1` as `reasoning-capable` under ADR-0091 -by emitting the contract fields into its manifest and passing -`core capability domain-contract validate en_systems_software_v1`. +by emitting the contract fields into its manifest and passing domain-contract validation. ### Manifest additions @@ -45,12 +53,9 @@ by emitting the contract fields into its manifest and passing "rules": null, "teaching_chains": ["systems_software_chains_v1"], "eval_lanes": [ - {"lane": "symbolic_logic", "version": "v1", - "splits": ["dev", "public", "holdout"]}, - {"lane": "inference_closure", "version": "v1", - "splits": ["dev", "public", "holdout"]}, - {"lane": "fabrication_control", "version": "v1", - "splits": ["dev", "public", "holdout"]} + {"lane": "symbolic_logic", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "inference_closure", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "fabrication_control", "version": "v1", "splits": ["dev", "public", "holdout"]} ], "reviewers": ["shay-j"], "known_gaps": [], @@ -58,17 +63,16 @@ by emitting the contract fields into its manifest and passing } ``` -Claimed operator families (`DOMAIN_OPERATOR_CLAIMS`): `transitive`, -`causal`. `axioms` and `rules` stay `null` at v1 — systems-software -reasoning is demonstrated through reviewed causal/transitive chain -composition over invariants, boundaries, and dependencies. +Claimed operator families: `transitive`, `causal`. `axioms` and `rules` +stay `null` at v1 — systems-software reasoning is demonstrated through +reviewed causal/transitive chain composition over invariants, boundaries, +and dependencies. ### Eval lane choice — `symbolic_logic` Systems-software lacks a dedicated v1 evaluation lane. `symbolic_logic` -is the closest in-tree fit: it pins reasoning over typed relations -(implication, contradiction, dependency) that the systems_software -chain corpus exercises. A future ADR may introduce a +is the closest in-tree fit: it pins reasoning over typed relations that +the systems_software chain corpus exercises. A future ADR may introduce a `systems_software_design_ood` lane and supersede this declaration. --- @@ -78,24 +82,23 @@ chain corpus exercises. A future ADR may introduce a `systems_software_reasoning_capable_ledger_row` — `core capability ledger` emits a row for `domain_id: systems_software` with `status: reasoning-capable`, provenance pointing at this ADR, and -`expert_demo: False` until a future ADR attaches the required reports. +`expert_demo: False` until a future ADR attaches audit-tour-equivalent reports. --- ## Lane -No new lane. Existing lanes carry the evidence: +Existing lanes carry the evidence: -- `symbolic_logic/` (reasoning over typed relations) -- `inference_closure/` (composition) -- `fabrication_control/` (negative control, ADR-0096) -- `evals/domain_contract_validation/` (ADR-0093 confirms predicates fire) +- `symbolic_logic/` — reasoning over typed relations +- `inference_closure/` — composition +- `fabrication_control/` — negative control +- `evals/domain_contract_validation/` — predicate validation --- -## PR Checklist +## Consequences -- Capability added: third ratified `reasoning-capable` domain. -- Invariant proved: `systems_software_reasoning_capable_ledger_row`. -- Hidden normalization / stochastic fallback / approximate recall / unreviewed mutation: none. -- Trust boundary: manifest edit through reviewed flow; checksums unchanged. +- Third ratified `reasoning-capable` domain. +- Establishes systems/software as a ledger-ratified domain while preserving the known v1 eval-lane limitation. +- Provides another domain source for later evidence composition and showcase scenes. From f21b1a9ba69c6378737808b023224d0cdf7a369c Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:42:27 -0700 Subject: [PATCH 8/9] docs: mark ADR 0102 accepted --- ...ew-greek-reasoning-capable-ratification.md | 122 +++++++----------- 1 file changed, 49 insertions(+), 73 deletions(-) diff --git a/docs/decisions/ADR-0102-hebrew-greek-reasoning-capable-ratification.md b/docs/decisions/ADR-0102-hebrew-greek-reasoning-capable-ratification.md index c682d69c..fbd99790 100644 --- a/docs/decisions/ADR-0102-hebrew-greek-reasoning-capable-ratification.md +++ b/docs/decisions/ADR-0102-hebrew-greek-reasoning-capable-ratification.md @@ -1,49 +1,54 @@ # ADR-0102 — Hebrew-Greek Textual-Reasoning Reasoning-Capable Ratification -**Status:** Proposed +**Status:** Accepted **Date:** 2026-05-21 +**Accepted:** 2026-05-22 **Author:** CORE agents + reviewers **Depends on:** ADR-0091, ADR-0092, ADR-0093, ADR-0096, ADR-0097 --- +## Acceptance evidence + +Accepted after `hebrew_greek_textual_reasoning` became a mechanically ratified multi-pack `reasoning-capable` ledger row: + +- `grc_logos_micro_v1`, `grc_logos_cognition_v1`, `he_logos_micro_v1`, and `he_core_cognition_v1` carry uniform Domain Pack Contract v1 fields. +- `teaching/domain_chains/hebrew_greek_textual_reasoning_chains_v1.jsonl` supplies reviewed active chains. +- `tests/test_adr_0100_0102_sibling_ratifications.py` pins: + - all nine predicates pass for each of the four packs + - the ledger row status is `reasoning-capable` + - provenance points at `adr-0102:reviewed:*` + - `expert_demo` remains false + - claimed operators `causal` and `contradiction` meet chain coverage + - declared lanes include `inference_closure` and `fabrication_control` + - all four contracts are identical modulo pack identity + +--- + ## Context The hebrew_greek_textual_reasoning substrate is structurally complete across four packs: -- `grc_logos_micro_v1`, `grc_logos_cognition_v1`, - `he_logos_micro_v1`, `he_core_cognition_v1`. +- `grc_logos_micro_v1`, `grc_logos_cognition_v1`, `he_logos_micro_v1`, + `he_core_cognition_v1`. - `teaching/domain_chains/hebrew_greek_textual_reasoning_chains_v1.jsonl`. -- `docs/gaps.md` marks every relevant gap closed: - `gap:grc_he_glosses_absent`, `gap:grc_he_chains_absent`, - `gap:grc_logos_micro_v1_gloss_coverage_below_threshold`, - `gap:grc_logos_cognition_v1_gloss_coverage_below_threshold`, - `gap:he_logos_micro_v1_gloss_coverage_below_threshold`, - `gap:he_core_cognition_v1_gloss_coverage_below_threshold`, - `gap:hebrew_greek_textual_reasoning_causal_chains_below_threshold`, - `gap:hebrew_greek_textual_reasoning_contradiction_chains_below_threshold`, - `gap:hebrew_greek_textual_reasoning_intent_shapes_below_threshold` - — all `[x]`. -- Chain coverage: causal=8, contradiction=8 (≥8 per claimed operator - family ✓); five intent shapes populated (≥3 ✓). +- `docs/gaps.md` marks relevant Hebrew/Greek textual-reasoning gaps closed. +- Chain coverage and intent-shape coverage satisfy ADR-0091 predicates. -Unlike `mathematics_logic` / `physics` / `systems_software`, this is a -**multi-pack domain**: `DOMAIN_PACKS["hebrew_greek_textual_reasoning"]` -enumerates four packs. ADR-0091's predicates evaluate per pack; the -ledger row aggregates. Each of the four packs must carry the same -domain contract so the per-pack `core capability domain-contract -validate` passes uniformly. +Unlike `mathematics_logic`, `physics`, and `systems_software`, this is a +**multi-pack domain**. ADR-0091 predicates evaluate per pack; the ledger +row aggregates. Each of the four packs must carry the same domain +contract so per-pack validation passes uniformly. --- ## Decision -Ratify all four hebrew/greek packs as `reasoning-capable` under +Ratify all four Hebrew/Greek packs as `reasoning-capable` under ADR-0091 by emitting the contract fields into each manifest. Each pack declares the same `domain_id`, `teaching_chains`, `eval_lanes`, and -reviewers; the only field that varies per pack is `provenance` -(remains pack-scoped audit trail). +reviewers, with a uniform provenance trail for this ratification. ### Manifest additions (all four packs) @@ -55,10 +60,8 @@ reviewers; the only field that varies per pack is `provenance` "rules": null, "teaching_chains": ["hebrew_greek_textual_reasoning_chains_v1"], "eval_lanes": [ - {"lane": "inference_closure", "version": "v1", - "splits": ["dev", "public", "holdout"]}, - {"lane": "fabrication_control", "version": "v1", - "splits": ["dev", "public", "holdout"]} + {"lane": "inference_closure", "version": "v1", "splits": ["dev", "public", "holdout"]}, + {"lane": "fabrication_control", "version": "v1", "splits": ["dev", "public", "holdout"]} ], "reviewers": ["shay-j"], "known_gaps": [], @@ -66,25 +69,16 @@ reviewers; the only field that varies per pack is `provenance` } ``` -Claimed operator families (`DOMAIN_OPERATOR_CLAIMS`): `causal`, -`contradiction`. `axioms` and `rules` stay `null` at v1. +Claimed operator families: `causal`, `contradiction`. `axioms` and +`rules` stay `null` at v1. ### Eval lane scope Only universal lanes (`inference_closure`, `fabrication_control`) are -declared. The language-specific fluency lanes -(`evals/hebrew_fluency/`, `evals/koine_greek_fluency/`) currently ship -dev/public only — without a sealed holdout split they fail ADR-0091 -predicate P7. Adding holdouts to those lanes is a separate ADR; until -that lands, the universal lanes alone are sufficient for -`reasoning-capable` status. - -### Pre-existing manifest gap - -The four hebrew/greek manifests currently lack a `provenance` field -entirely (unlike the three English domain packs). This ratification -fills that gap as a side-effect; future audits of pack provenance -trails across all packs become uniform. +declared. The language-specific fluency lanes currently ship dev/public +only; without sealed holdout splits they are not part of this +reasoning-capable ratification. A future ADR may add holdouts and attach +those lanes. --- @@ -92,45 +86,27 @@ trails across all packs become uniform. `hebrew_greek_reasoning_capable_ledger_row` — `core capability ledger` emits a row for `domain_id: hebrew_greek_textual_reasoning` with -`status: reasoning-capable`, provenance pointing at this ADR (uniform -across all four packs), and `expert_demo: False` until a future ADR -attaches the required reports. +`status: reasoning-capable`, provenance pointing at this ADR, and +`expert_demo: False` until a future ADR attaches audit-tour-equivalent reports. -`hebrew_greek_pack_contracts_uniform` — all four packs declare -identical contract fields (except provenance audit trail), so -multi-pack ratification cannot drift between packs without an -explicit ADR. +`hebrew_greek_pack_contracts_uniform` — all four packs declare identical +contract fields so multi-pack ratification cannot drift between packs +without an explicit ADR. --- ## Lane -No new lane. Existing lanes carry the evidence: +Existing lanes carry the evidence: -- `inference_closure/` (composition) -- `fabrication_control/` (negative control, ADR-0096) -- `evals/domain_contract_validation/` (ADR-0093 confirms predicates - fire on each of the four packs) +- `inference_closure/` — composition +- `fabrication_control/` — negative control +- `evals/domain_contract_validation/` — predicate validation on each pack --- ## Consequences -- First multi-pack domain ratification. Demonstrates the contract - works the same way for single-pack and multi-pack domains. -- All four hebrew/greek manifests gain a provenance field. -- Future language-specific eval lanes (Hebrew, Koine Greek) can be - added to the contract once they ship holdout splits. - ---- - -## PR Checklist - -- Capability added: fourth ratified `reasoning-capable` domain, - multi-pack. -- Invariants proved: `hebrew_greek_reasoning_capable_ledger_row`, - `hebrew_greek_pack_contracts_uniform`. -- Hidden normalization / stochastic fallback / approximate recall / - unreviewed mutation: none. -- Trust boundary: four manifest edits through reviewed flow; - checksums unchanged. +- First multi-pack `reasoning-capable` domain ratification. +- Demonstrates the contract works for both single-pack and multi-pack domains. +- Future language-specific eval lanes can be added once they ship holdout splits. From fe8d6db224f87527ef157f1a426ef899a237273f Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 22 May 2026 06:47:25 -0700 Subject: [PATCH 9/9] docs: update ADR index and current frontier --- docs/decisions/README.md | 242 +++++++++++++++++---------------------- 1 file changed, 105 insertions(+), 137 deletions(-) diff --git a/docs/decisions/README.md b/docs/decisions/README.md index 87074818..f873057a 100644 --- a/docs/decisions/README.md +++ b/docs/decisions/README.md @@ -11,7 +11,7 @@ ADRs record significant architectural decisions: what was decided, why, what alt | ADR | Title | Status | |---|---|---| | [ADR-0001](ADR-0001-vocab-layer-invariants.md) | Vocab Layer Invariants | Accepted | -| [ADR-0002](ADR-0002-ingest-layer-design.md) | Ingest Layer Design (original) | **Archived** — superseded by ADR-0012 | +| [ADR-0002](ADR-0002-ingest-layer-design.md) | Ingest Layer Design (original) | Archived — superseded by ADR-0012 | | [ADR-0003](ADR-0003-coordinate-system-dissolution.md) | Coordinate System Dissolution | Accepted | | [ADR-0004](ADR-0004-rotor-as-operator-not-property.md) | Rotor as Operator, Not Property | Accepted | | [ADR-0005](ADR-0005-language-pack-contract.md) | Language Pack Contract | Accepted | @@ -53,7 +53,7 @@ ADRs record significant architectural decisions: what was decided, why, what alt | [ADR-0041](ADR-0041-cli-verdicts-and-fanout.md) | `--show-verdicts` + FanOutSink | Accepted (2026-05-17) | | [ADR-0042](ADR-0042-audit-tour-demo.md) | Audit Tour Demo (`core demo audit-tour`) | Accepted (2026-05-17) | | [ADR-0043](ADR-0043-pack-measurements-phase2.md) | Phase-2 pack measurements — claims → numbers | Accepted (2026-05-17) | -| [ADR-0044](ADR-0044-medical-clinical-ethics-pack.md) | Medical / clinical ethics pack (worked-example domain pack) | Accepted (2026-05-17) | +| [ADR-0044](ADR-0044-medical-clinical-ethics-pack.md) | Medical / clinical ethics pack | Accepted (2026-05-17) | | [ADR-0045](ADR-0045-long-context-recall-vs-transformer-baselines.md) | Long-context recall: CORE vs transformer baselines | Accepted (2026-05-17) | | [ADR-0046](ADR-0046-forward-graph-constraint.md) | PropositionGraph as forward AdmissibilityRegion + industry demos | Accepted (2026-05-18) | | [ADR-0047](ADR-0047-wire-forward-graph-constraint.md) | Wire forward graph constraint into the chat hot path (opt-in) | Accepted (2026-05-18) | @@ -62,161 +62,129 @@ ADRs record significant architectural decisions: what was decided, why, what alt | [ADR-0050](ADR-0050-pack-grounded-comparison.md) | Pack-grounded surface for cold-start COMPARISON | Accepted (2026-05-18) | | [ADR-0051](ADR-0051-trust-boundary-hardening.md) | Trust-boundary hardening pass | Accepted (2026-05-18) | | [ADR-0052](ADR-0052-teaching-grounded-surface.md) | Teaching-grounded surface for cold-start CAUSE / VERIFICATION | Accepted (2026-05-18) | -| [ADR-0053](ADR-0053-cognition-lane-closure.md) | Cognition lane closure: dev-driven corpus expansion + CORRECTION acknowledgement | Accepted (2026-05-18) | -| [ADR-0054](ADR-0054-vault-recall-indexing-batching.md) | Vault recall matrix-cache indexing + batched API; holdout split wired into eval CLI | Accepted (2026-05-18) | -| [ADR-0055](ADR-0055-inter-session-memory-discovery-promotion.md) | Inter-session memory: reviewed discovery promotion (phased design — DiscoveryCandidate, TeachingChainProposal, replay-equivalence gate); Phase A + Phase B Accepted | **Phase A + B Accepted**; C–E Proposed (2026-05-18) | -| [ADR-0056](ADR-0056-contemplation-loop-c1.md) | Contemplation loop (Phase C1): question decomposition, polarity (affirms/falsifies/undetermined), claim_domain typing (factual/relational/evaluative), sync-only by design | **Accepted** (2026-05-18, implemented `4eecf73`) | -| [ADR-0057](ADR-0057-teaching-chain-proposal-review.md) | Teaching-chain proposal + review + replay-equivalence gate (Phase C2): the only path to active-corpus extension; eligibility predicate; auto-reject on metric regression; operator accept/reject/withdraw; append-only proposal log | **Accepted** (2026-05-18) | -| [ADR-0058](ADR-0058-forward-graph-constraint-status.md) | `forward_graph_constraint` remains opt-in default-`False`; no identity pack flips it on; ADR-0047 null-lift on cognition lane promoted to CI-enforced invariant (regression test); identity-pack→`RuntimeConfig` composition deferred until at least one such preference shows lift | **Accepted** (2026-05-18) | -| [ADR-0059](ADR-0059-correction-pass-telemetry.md) | `ChatRuntime.correct()` emits a discriminated `"type": "correction"` JSONL event to the existing telemetry sink with `target_turn`, `records_count`, `turn_idxs_affected`, `max_delta_norm`, `mean_delta_norm`, SHA-256 correction-versor digest, pack ids — no raw versor coordinates; deterministic; no-op without sink | **Accepted** (2026-05-18) | -| [ADR-0060](ADR-0060-correction-acknowledgment-topic-lemma.md) | CORRECTION acknowledgement surface weaves the first pack-resident topical lemma from the utterance (left-to-right, excluding `correction` itself and `be`/`have` fillers) into a fixed template; backward-compatible with ADR-0053 (no-arg path byte-identical); closes `correction_truth_040` holdout miss; holdout `term_capture_rate` 75.0% → 79.2% | **Accepted** (2026-05-18) | -| [ADR-0061](ADR-0061-procedure-intent-pack-grounded-surface.md) | PROCEDURE intent (`"How do I X?"`) routes to new `pack_grounded_procedure_surface`; selector picks **last** pack-resident lemma from verb-phrase subject (object > verb), falls back to verb when object is OOV, returns `None` (→ universal disclosure) for no-pack-lemma utterances; closes `procedure_define_010` (term `concept`) + `procedure_verify_034` (surface); holdout `surface_groundedness` 94.7% → 100.0%; `term_capture_rate` 79.2% → 83.3% | **Accepted** (2026-05-18) | -| [ADR-0062](ADR-0062-composed-teaching-grounded-surface.md) | Composed teaching-grounded surface: when a chain `(A, intent_A, conn_A, B)` has a follow-up chain `(B, ?, conn_B, C)`, emit `"{A} {conn_A} {B}, which {conn_B} {C}"` instead of just `"{A} {conn_A} {B}"`; depth-1 (one hop) + cycle guard + pack-residency guard; degrades to single-chain byte-identically when no follow-up survives the guards; opt-in via `RuntimeConfig.composed_surface=False` default; cognition lane null-drop invariant (metrics byte-identical flag OFF/ON) CI-pinned | **Accepted** (2026-05-18) | -| [ADR-0067](ADR-0067-cross-pack-teaching-chains.md) | Cross-pack teaching chains (Plan Phase 4): `chat/cross_pack_grounding.py` + `teaching/cross_pack_chains/cross_pack_chains_v1.jsonl` seeded with 5 reviewed chains; each chain carries explicit `subject_pack_id` + `object_pack_id`, loader verifies per-chain residency, same-pack entries rejected (anti-leakage); fall-through after in-pack composer in CAUSE/VERIFICATION (cognition-lane byte-identity preserved); NARRATIVE + EXAMPLE composers merge cross-pack chains into multi-clause aggregation with widened corpus tag (e.g. `cognition_chains_v1 + cross_pack_chains_v1`); first cross-domain edges (`family grounds identity`, `identity requires family`, etc.) — relations × cognition; no prose generation, no new mutation surface, supersession honoured | **Accepted** (2026-05-18) | -| [ADR-0066](ADR-0066-turn-level-composition.md) | Turn-level composition (Plan Phase 3): bounded session-thread context (P3.1) + opt-in deterministic anaphora prefix `(Recalling turn N: chain X.)` (P3.2, default off) + `IntentTag.NARRATIVE` multi-clause composer for "Tell me about X" walking every chain rooted on X across registered corpora (P3.3) + `IntentTag.EXAMPLE` reverse-chain composer for "Give me an example of X" surfacing chains where X is the object (P3.4); no prose generation, no new corpus mutation, all composers consult ADR-0064's cross-corpus aggregator; cognition lane byte-identical | **Accepted** (2026-05-18) | -| [ADR-0065](ADR-0065-oov-gradient-and-relations-v2.md) | OOV gradient + relations v2 (Plan Phase 2): five-tier honesty gradient replaces the OOV cliff — pack / teaching / partial (one OOV + one known) / oov (learning invitation surface naming the unknown token + mounted-pack list) / universal disclosure; sink-emit OOVCandidates → `core teaching oov-gaps` aggregator → `core teaching oov-queue` auto-promotion mirrors P1.1+P1.2 architecture for vocab gaps; `en_core_relations_v2` adds 8 pronoun + role-filler lemmas (mother/father/son/daughter/brother/sister/grandparent/grandchild) with 7 reviewed v2-internal chains; no content synthesis, no domain inference, no auto-pack-mutation | **Accepted** (2026-05-18) | -| [ADR-0064](ADR-0064-cross-pack-teaching-chains.md) | Cross-pack teaching chains: `chat/teaching_grounding.py` registers a tuple of `TeachingCorpusSpec(corpus_id, path, pack_id)`; each corpus is 1:1-bound to one lexicon pack (cross-domain triples deferred per teaching_order.md §5); new `_all_chains_index()` aggregates across registered corpora (first-match-wins); surface composers + discovery gate consult the aggregated view; `TeachingChain` gains `corpus_id` field; surface tag follows the resolving corpus id; replay-equivalence gate rewrites registry path during transient phase; `relations_chains_v1` seeded with 7 reviewed kinship chains; cognition lane byte-identical | **Accepted** (2026-05-18) | - -| [ADR-0090](ADR-0090-domain-pack-contract-v1.md) | Domain Pack Contract v1: optional manifest fields for domain capability claims; axioms/rules required only when a domain claims reasoning-capable status; ledger remains generated from evidence, not hand-maintained maturity labels | **Proposed** (2026-05-21) | -| [ADR-0063](ADR-0063-cross-pack-surface-resolver.md) | Cross-pack surface resolver: `chat/pack_resolver.py` introduces `resolve_lemma(lemma, pack_ids)` that maps a lemma to `(resolving_pack_id, semantic_domains)` across an ordered tuple of mounted lexicon packs (first-match-wins); pack-grounded DEFINITION / RECALL / COMPARISON / CORRECTION / PROCEDURE composers now consult the resolver instead of a hardcoded `en_core_cognition_v1`; surface trust-boundary tag follows the resolving pack id; `en_core_relations_v1` joins `RuntimeConfig.input_packs` defaults — kinship lemmas now ground on the live path without a separate composer module; cognition-lane surfaces remain byte-identical (cognition is resolved first) | **Accepted** (2026-05-18) | +| [ADR-0053](ADR-0053-cognition-lane-closure.md) | Cognition lane closure + correction acknowledgement | Accepted (2026-05-18) | +| [ADR-0054](ADR-0054-vault-recall-indexing-batching.md) | Vault recall indexing + batched API | Accepted (2026-05-18) | +| [ADR-0055](ADR-0055-inter-session-memory-discovery-promotion.md) | Inter-session memory: reviewed discovery promotion | Phase A + B Accepted; C–E Proposed (2026-05-18) | +| [ADR-0056](ADR-0056-contemplation-loop-c1.md) | Contemplation loop C1 | Accepted (2026-05-18) | +| [ADR-0057](ADR-0057-teaching-chain-proposal-review.md) | Teaching-chain proposal + review + replay-equivalence gate | Accepted (2026-05-18) | +| [ADR-0058](ADR-0058-forward-graph-constraint-status.md) | Forward graph constraint remains opt-in default-false | Accepted (2026-05-18) | +| [ADR-0059](ADR-0059-correction-pass-telemetry.md) | Correction-pass telemetry | Accepted (2026-05-18) | +| [ADR-0060](ADR-0060-correction-acknowledgment-topic-lemma.md) | Correction acknowledgement topic lemma | Accepted (2026-05-18) | +| [ADR-0061](ADR-0061-procedure-intent-pack-grounded-surface.md) | Procedure intent pack-grounded surface | Accepted (2026-05-18) | +| [ADR-0062](ADR-0062-composed-teaching-grounded-surface.md) | Composed teaching-grounded surface | Accepted (2026-05-18) | +| [ADR-0063](ADR-0063-cross-pack-surface-resolver.md) | Cross-pack surface resolver | Accepted (2026-05-18) | +| [ADR-0064](ADR-0064-cross-pack-teaching-chains.md) | Cross-pack teaching chains | Accepted (2026-05-18) | +| [ADR-0065](ADR-0065-oov-gradient-and-relations-v2.md) | OOV gradient + relations v2 | Accepted (2026-05-18) | +| [ADR-0066](ADR-0066-turn-level-composition.md) | Turn-level composition | Accepted (2026-05-18) | +| [ADR-0067](ADR-0067-cross-pack-teaching-chains.md) | Cross-pack teaching chains — explicit cross-domain edges | Accepted (2026-05-18) | +| ADR-0068–ADR-0079 | Reserved / see git history until individual ADR files are added to this index | Not indexed | +| [ADR-0080](ADR-0080-contemplation-loop.md) | Contemplation loop | Proposed | +| ADR-0081–ADR-0082 | Reserved / see git history until individual ADR files are added to this index | Not indexed | +| [ADR-0083](ADR-0083-transitive-chain-surface.md) | Transitive chain surface | Proposed | +| [ADR-0084](ADR-0084-definitional-layer.md) | Definitional layer | Proposed | +| ADR-0085–ADR-0086 | Reserved / see git history until individual ADR files are added to this index | Not indexed | +| [ADR-0087](ADR-0087-rhetorical-style-axis.md) | Rhetorical style axis | Proposed | +| [ADR-0088](../adr/ADR-0088-realizer-grounded-authority.md) | Realizer grounded authority | Proposed | +| [ADR-0089](../adr/ADR-0089-compound-intent-pipeline-dispatch.md) | Compound intent pipeline dispatch | Proposed | +| [ADR-0090](../adr/ADR-0090-unified-ingest-and-batched-recall.md) | Unified ingest and batched recall | Proposed | +| [ADR-0091](ADR-0091-domain-pack-contract-v1.md) | Domain Pack Contract v1 | Accepted (2026-05-22) | +| [ADR-0092](ADR-0092-reviewer-registry-v1.md) | Reviewer Registry v1 | Accepted (2026-05-22) | +| [ADR-0093](ADR-0093-domain-pack-contract-v1-implementation.md) | Domain Pack Contract v1 implementation | Accepted (2026-05-22) | +| [ADR-0094](ADR-0094-proposal-source-provenance.md) | Proposal Source Provenance | Proposed | +| [ADR-0095](ADR-0095-miner-sourced-teaching-proposals.md) | Miner-Sourced Teaching Proposals | Proposed | +| [ADR-0096](ADR-0096-fabrication-control-eval-lane.md) | Fabrication-Control Eval Lane | Accepted (2026-05-22) | +| [ADR-0097](ADR-0097-mathematics-logic-reasoning-capable-ratification.md) | Mathematics-Logic Reasoning-Capable Ratification | Accepted (2026-05-22) | +| [ADR-0098](ADR-0098-demo-composition-contract.md) | Demo Composition Contract | Proposed — current implementation frontier | +| [ADR-0099](ADR-0099-public-showcase-demo.md) | Public Showcase Demo | Proposed — depends on ADR-0098 | +| [ADR-0100](ADR-0100-physics-reasoning-capable-ratification.md) | Physics Reasoning-Capable Ratification | Accepted (2026-05-22) | +| [ADR-0101](ADR-0101-systems-software-reasoning-capable-ratification.md) | Systems-Software Reasoning-Capable Ratification | Accepted (2026-05-22) | +| [ADR-0102](ADR-0102-hebrew-greek-reasoning-capable-ratification.md) | Hebrew-Greek Textual-Reasoning Reasoning-Capable Ratification | Accepted (2026-05-22) | --- -## ADR-0024 chain — Forward Semantic Control closure +## Current frontier -ADR-0022 through ADR-0026 form a single coherent chain that closes -forward semantic control as a non-stochastic, replay-deterministic, -trace-evidenced mechanism. Read in order: +The active frontier is no longer domain-ratification substrate. The following are already accepted and mechanically evidenced: -1. **ADR-0022** — Forward Semantic Control. Establishes the - `AdmissibilityRegion` data structure (allowed indices, relation - blade, frame versor) and the contract that a region restricts the - admissible token set at generation time. -2. **ADR-0023** — Proof Evidence. Boundary-only proof that the - admissibility region is honored at the *region intersection* level - but not yet at the destination-token level. -3. **ADR-0024** — Inner-Loop Per-Rotor Admissibility. Adds the - destination-side check: each per-step selection is re-evaluated by - `cga_inner(versor(candidate), relation_blade) > threshold`, with - honest refusal (`InnerLoopExhaustion`) when every admissible - candidate is rejected. Six phases of implementation evidence - (Phases 1-6) plus typed `RefusalReason` taxonomy. -4. **ADR-0025** — Rotor / Frame Admissibility. Adds the rotor-side - check: when a region carries a `frame_versor`, the rotor's effect - on the field state (`versor_apply(V, F)`) is additionally checked - against the frame for positivity in CGA inner product. Lives in - `generate/rotor_admissibility.py` — a sibling-but-separate module, - not in `algebra/versor.py` (would couple algebra to pack state) - and not in `field/propagate.py` (forbidden normalization site). -5. **ADR-0026** — Ranked Admissibility with Margin. Replaces static - threshold tuning with a scale-invariant margin gate: admit iff - the top blade-score exceeds the second by ≥ δ. Defaults to - δ = 0.4. Falsifiable; characterization documented in - `docs/evals/phase5_stratified_findings.md`. +- Domain Pack Contract v1 — ADR-0091 +- Reviewer Registry v1 — ADR-0092 +- Domain Contract v1 enforcement — ADR-0093 +- Fabrication-control negative eval lane — ADR-0096 +- `mathematics_logic` reasoning-capable ratification — ADR-0097 +- `physics` reasoning-capable ratification — ADR-0100 +- `systems_software` reasoning-capable ratification — ADR-0101 +- `hebrew_greek_textual_reasoning` multi-pack reasoning-capable ratification — ADR-0102 -Implementation evidence: +The current implementation frontier is therefore: -| Phase | Commit | Tests | -|---|---|---| -| Phase 1 — pack-grounded fixtures | `3940290` | (rewrites) | -| Phase 2 — typed refusals + trace fold | `310793a` | +10 | -| Phase 3 — ranked-with-margin gate | `639e107` | +13 | -| Phase 4 — rotor / frame admissibility | `542e13d` | +11 | -| Phase 5 — stratified mechanism-isolation | `b664984` | +20 | -| Phase 6 — comparative demo vs baseline | `a076506` | +17 | -| CLI surface (suite aliases + `core demo`) | `36aad75` | +14 | +```text +ADR-0098 — Demo Composition Contract + ↓ +ADR-0099 — Public Showcase Demo +``` -Runtime contracts for the chain are pinned in -[`docs/runtime_contracts.md`](../runtime_contracts.md) (Refusal -contract, Margin contract, Rotor admissibility contract sections). +ADR-0098 is the evidence-orchestration layer. It must let existing proof artifacts compose without reimplementation, subprocess stdout parsing, hidden state mutation, or non-deterministic JSON. + +ADR-0099 should not begin until ADR-0098 is accepted. The showcase must compose already-proven scenes; it must not become a marketing rewrite of the proof substrate. + +Learning-loop expansion remains deliberately later: + +```text +ADR-0094 — Proposal Source Provenance + ↓ +ADR-0095 — Miner-Sourced Teaching Proposals +``` + +Do not begin ADR-0095 until ADR-0094 is accepted. --- -## Pack-Layer chain — ADR-0027 through ADR-0045 +## Accepted reasoning-capable domains -ADR-0027 through ADR-0045 form the second coherent chain in the -project: a load-bearing three-tier pack architecture (identity / -safety / ethics) with deterministic remediation, full-stream audit, -machine-readable telemetry, an operator-facing CLI readout, and an -investor-facing walkthrough. Read in order: - -| Group | ADRs | What it adds | -|---|---|---| -| **Identity** | ADR-0027 / ADR-0028 | Identity manifold loads from a swappable JSON pack at composition time. Pack carries `surface_preferences` that visibly drive hedging and claim strength. | -| **Identity surface refinements** | ADR-0030 / ADR-0031 | Depth-language hedge; score-decomposition surface. | -| **Safety** | ADR-0029 / ADR-0032 | Five universal safety boundaries unioned into every runtime manifold; SafetyCheck registry-of-predicates surface (observational). | -| **Ethics** | ADR-0033 / ADR-0034 | Third pack tier — deployment commitments, swappable like identity but propositional like safety; EthicsCheck predicate surface. | -| **Turn-loop wiring** | ADR-0035 | Both checks auto-invoked at end of every turn; verdicts attached to `ChatResponse` and `TurnEvent`. | -| **Remediation tiers** | ADR-0036 / ADR-0037 / ADR-0038 | Safety-only typed refusal → per-commitment ethics refusal opt-in → hedge injection. Three tiers per ethics commitment: audit / hedge / refuse. | -| **Audit completeness** | ADR-0039 | `TurnVerdicts` bundle + stub-path `TurnEvent` emission + `refusal_emitted` / `hedge_injected` flags. `rt.turn_log` covers every turn. | -| **Machine + operator surfaces** | ADR-0040 / ADR-0041 | Structured JSONL sink with redact-by-default trust boundary; `FanOutSink` composer; `core chat --show-verdicts` operator readout. | -| **Demo** | ADR-0042 | `core demo audit-tour` — four-scene investor-facing walkthrough; test-gated `all_claims_supported` flag. | -| **Phase-2 measurements** | ADR-0043 | Pack-driven identity-divergence + refusal-calibration runners convert load-bearing claims into CI-enforced numbers across the three ratified packs; combined report at `evals/results/phase2_pack_measurements.json`. | -| **Worked-example domain pack** | ADR-0044 | `medical_clinical_ethics_v1` — six commitments across all three remediation tiers (refuse / hedge / audit); ratified end-to-end through `scripts/ratify_ethics_pack.py`; composes into the runtime manifold alongside the universal safety floor. | -| **Long-context comparison** | ADR-0045 | CORE exact needle-in-a-haystack measurement at N ∈ {100, 1k, 10k, 100k} paired with frozen transformer baselines (Claude 2.1, GPT-4 Turbo 128k, Gemini 1.5 Pro, RULER); `recall_pct=100` for CORE by construction. | - -Three sibling pack types compose into every runtime manifold: - -``` -identity.boundary_ids ∪ safety.boundary_ids ∪ ethics.commitment_ids → manifold.boundary_ids -``` - -Per-commitment ethics policy lives in two opt-in lists on the -ethics pack: `refusal_commitments` (hard stop) and -`hedge_commitments` (soft prepend), mutually exclusive at load time. -Safety is always in scope for refusal; the floor never moves. - -Verification surface: - -| Layer | Tests | Live demo | -|---|---|---| -| Identity packs | `tests/test_identity_packs.py`, `tests/test_identity_surface_divergence.py` | `core demo audit-tour` Scene 1 | -| Safety pack + refusal | `tests/test_safety_pack.py`, `tests/test_safety_check.py`, `tests/test_safety_refusal.py` | `core demo audit-tour` Scene 2 | -| Ethics pack + opt-ins | `tests/test_ethics_packs.py`, `tests/test_ethics_check.py`, `tests/test_ethics_refusal_opt_in.py`, `tests/test_hedge_injection.py` | `core demo audit-tour` Scene 3 | -| Turn-loop verdicts + bundle | `tests/test_turn_loop_verdicts.py`, `tests/test_turn_verdicts_bundle.py` | `core chat --show-verdicts` | -| Telemetry sink | `tests/test_telemetry_sink.py`, `tests/test_telemetry_fanout_and_summary.py` | `core demo audit-tour` Scene 4 | -| Audit tour gate | `tests/test_audit_tour.py` — asserts `all_claims_supported` | `core demo audit-tour` | +| Domain | Ratification ADR | Pack(s) | Evidence summary | +|---|---|---|---| +| `mathematics_logic` | ADR-0097 | `en_mathematics_logic_v1` | All nine ADR-0091 predicates pass; ledger row is `reasoning-capable`; `expert_demo` remains false; lanes include positive coverage, inference closure, and fabrication control. | +| `physics` | ADR-0100 | `en_physics_v1` | All nine predicates pass; causal/modal operator coverage meets threshold; ledger row is `reasoning-capable`; `expert_demo` remains false. | +| `systems_software` | ADR-0101 | `en_systems_software_v1` | All nine predicates pass; transitive/causal operator coverage meets threshold; ledger row is `reasoning-capable`; `symbolic_logic` is the v1 closest-fit eval lane. | +| `hebrew_greek_textual_reasoning` | ADR-0102 | `grc_logos_micro_v1`, `grc_logos_cognition_v1`, `he_logos_micro_v1`, `he_core_cognition_v1` | First multi-pack ratification; all four packs carry uniform contract fields; causal/contradiction operator coverage meets threshold; universal lanes are declared until language-specific holdouts land. | --- -## Pillar 1 → 2 → 3 coupling — ADR-0046 / ADR-0047 +## ADR chain notes -ADR-0046 extends the **ADR-0022 → ADR-0026** forward-semantic-control -chain by giving the `AdmissibilityRegion` a new, geometry-derived -source: the `PropositionGraph`. +### Forward Semantic Control closure — ADR-0022 through ADR-0026 -The graph was previously built **after** `generate()` ran, from the -walk's nearest-node results — a post-hoc descriptor of what the field -had already produced. ADR-0046 converts each graph's named-node -versors into an `AdmissibilityRegion` **before** `generate()` is -called, via the exact CGA top-k neighbourhood. The walk is now -constrained by the proposition's geometric meaning rather than -described by it after the fact. +ADR-0022 through ADR-0026 form a single coherent chain that closes forward semantic control as a non-stochastic, replay-deterministic, trace-evidenced mechanism. -``` -geometry (CGA versor neighbourhood) - → structure (PropositionGraph nodes) - → propagation (AdmissibilityRegion fed to generate()) +1. **ADR-0022** establishes `AdmissibilityRegion` and the contract that a region restricts the admissible token set at generation time. +2. **ADR-0023** records proof evidence that the admissibility region is honored at the region-intersection level. +3. **ADR-0024** adds destination-side per-step admissibility and honest `InnerLoopExhaustion` when all admissible candidates are rejected. +4. **ADR-0025** adds rotor/frame admissibility when a region carries a `frame_versor`. +5. **ADR-0026** replaces static threshold tuning with ranked admissibility and a scale-invariant margin gate. + +Runtime contracts for the chain are pinned in [`docs/runtime_contracts.md`](../runtime_contracts.md). + +### Pack-layer chain — ADR-0027 through ADR-0045 + +ADR-0027 through ADR-0045 establish the identity / safety / ethics pack architecture with deterministic remediation, audit completeness, telemetry, operator readout, audit-tour demo, pack measurements, a worked-example medical ethics pack, and long-context comparison measurements. + +### Evidence-governed domain chain — ADR-0091 through ADR-0102 + +ADR-0091 through ADR-0102 establish the current domain-ratification substrate: + +```text +contract definition + ↓ +reviewer trust root + ↓ +validator / ledger enforcement + ↓ +negative-control fabrication lane + ↓ +reasoning-capable domain ratification ``` -Three industry-facing demos under `evals/industry_demos/` carry the -falsifiable claims for this coupling. The exact-recall-at-scale claim -remains under ADR-0045 / `evals/long_context/`, where it is measured -on the real vault path and not duplicated under a weaker construction. - -| Layer | Tests | Live demo | -|---|---|---| -| Forward graph constraint (primitive) | `tests/test_graph_constraint.py` — 8 tests | `python -m evals.industry_demos.demo_01_forward_constraint` | -| Forward graph constraint (live wiring) | `tests/test_forward_graph_constraint_wiring.py` — 5 tests | `RuntimeConfig(forward_graph_constraint=True)` then `core eval cognition` | -| Geometry-driven identity | `tests/test_identity_packs.py`, `tests/test_identity_surface_divergence.py` | `python -m evals.industry_demos.demo_02_geometry_drives_identity` | -| Architectural determinism | `tests/test_telemetry_sink.py`, `tests/test_telemetry_fanout_and_summary.py` | `python -m evals.industry_demos.demo_03_deterministic_audit` | - -ADR-0047 lands the wire-up behind an opt-in `RuntimeConfig` flag. The -characterisation it carries (`A/B` on the public cognition split) -shows the wiring is correct and safe but does not move -`surface_groundedness` or `term_capture_rate` on this lane — isolating -the next load-bearing pull to the realizer / surface-assembly path -rather than to propagation. +No domain claim should be treated as mature merely because a pack exists. Capability status belongs to the generated ledger and its evidence predicates. ---