merge: ADR status reconciliation — mark 0091/0092/0093/0096/0097/0100/0101/0102 Accepted

docs: reconcile accepted ADRs and current frontier
This commit is contained in:
Shay 2026-05-22 06:59:22 -07:00 committed by GitHub
commit ba872e5c57
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 390 additions and 522 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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**; CE 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; CE 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-0068ADR-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-0081ADR-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-0085ADR-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.
---