core/docs/decisions/ADR-0107-mathematics-logic-expert-demo-deferred.md
Shay 7cc2f7b422
feat(adr): ADR-0107 mathematics_logic expert-demo promotion deferred (#114)
The ADR-0106 contract correctly refused promotion. ADR-0107 records the
deferral and reserves two follow-up ADRs:

- ADR-0109 (lane-shape-aware threshold amendment): ADR-0106 \xc2\xa71.2
  prescribes cognition-pack-shape metrics uniformly, but math /
  physics / systems / hebrew-greek lanes carry native shapes
  (accuracy, passed_rate, all_pass_rate). Prerequisite for any future
  expert-demo promotion.
- ADR-0110 (math re-attempt): conditional on ADR-0109 landing and
  inference_closure substantively passing (currently all_pass_rate=0.4
  on public).

tests/test_adr_0107_deferral.py pins adr_0107_no_silent_promotion: math
stays at reasoning-capable, has no expert_demo_claims entry, and the
ledger row carries a named refusal reason.

No change to core/capability/expert_demo.py or reporting.py -- the
contract is honored, not amended. README sequencing updated to reflect
ADR-0107 acceptance and the new ADR-0109/0110 prerequisites.
2026-05-22 11:49:37 -07:00

162 lines
6.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

# ADR-0107 — `mathematics_logic` Expert-Demo Promotion: Deferred
**Status:** Accepted (decision: defer promotion)
**Date:** 2026-05-22
**Author:** CORE agents + reviewers
**Depends on:** ADR-0091, ADR-0092, ADR-0097, ADR-0106, ADR-0108
---
## Context
ADR-0108 reserved ADR-0107 as the first worked expert-demo promotion
against the ADR-0106 contract, with `mathematics_logic` named as the
smallest expert-demo proof surface across the four ratified domains.
On evaluation, the ADR-0106 gate correctly refused to promote
`mathematics_logic`. ADR-0107 records that refusal honestly and reserves
the follow-up ADRs needed before promotion can re-attempt.
This is the contract working as designed. ADR-0106 §Consequences
predicted that "reasoning-capable" should not equal "demonstrated"; the
first promotion attempt has now surfaced two specific evidence-side
gaps that prove the gap is real.
---
## Evidence
`mathematics_logic` attaches three eval lanes via
`language_packs/data/en_mathematics_logic_v1/manifest.json`:
| Lane | Public split | Holdout split | Notes |
|---|---|---|---|
| `elementary_mathematics_ood` | `accuracy=1.0`, all C01C13 cases pass | `accuracy=1.0`, `passed=39/39` | Reports lane-shape metrics, not cognition-shape metrics |
| `inference_closure` | `all_pass_rate=0.4`, `overall_pass=False` | requires `CORE_HOLDOUT_KEY` (sealed under ADR-0105) | Lane is currently below any reasonable promotion threshold |
| `fabrication_control` | refusals clean (`fabricated=0` across phantom / cross-pack / sibling-collapse classes) | not formally re-run after ADR-0105 sealing | Required by ADR-0106 §1.3 |
Neither `elementary_mathematics_ood` nor `inference_closure` nor
`fabrication_control` reports the four metric keys ADR-0106 §1.2 prescribes
(`surface_groundedness`, `term_capture_rate`, `intent_accuracy`,
`versor_closure_rate`). Those keys are cognition-pack-shape; the math
lanes carry their own native shapes.
---
## Decision
`mathematics_logic` is **not** promoted to `expert_demo=true`. The
ledger row stays at `reasoning-capable`. The reviewer registry receives
**no** `expert_demo_claims` entry as part of this ADR.
This is a positive decision recording two concrete blocking gaps:
### Gap 1 — ADR-0106 metric-shape uniformity assumption
ADR-0106 §1.2 prescribes cognition-shape thresholds uniformly across
every attached lane. In practice, each lane reports its own native
metric shape (`accuracy`, `passed_rate`, `all_pass_rate`,
`derived_recall_rate`). Enforcing cognition-shape keys uniformly causes
every non-cognition lane to fail the gate by absence-of-key, not by
substance.
**Resolution path:** ADR-0109 (reserved) — amend ADR-0106 with a
lane-shape adaptation layer that maps each lane's native metric to a
contract-bearing threshold. Candidate shapes already observable in the
repo:
- `cognition_shape` — the original four keys, used by the cognition pack
- `accuracy_shape` — single `accuracy` key, used by
`elementary_mathematics_ood`
- `refusal_shape``fabricated`/`refused` counts, used by
`fabrication_control`
- `inference_shape``all_pass_rate` + `replay_determinism`, used by
`inference_closure`
ADR-0109 must specify the contract-bearing threshold per shape and pin
the mapping so a future lane introduces its shape explicitly rather
than silently broadening the gate.
### Gap 2 — `inference_closure` lane substantively fails
`inference_closure` reports `all_pass_rate=0.4` on the public v1 split.
Whether the failure is a runner bug, a case-set issue, or a genuine
substrate gap is unresolved. Either way, the lane is not a positive
signal for promotion at present.
**Resolution path:** Triage `inference_closure` failures (5 of 5 cases
on dev, 12 of 20 on public). Until that lane crosses an explicit
threshold under the ADR-0109 shape rules, `mathematics_logic` cannot
promote regardless of how the metric-shape question is resolved.
---
## Follow-up ADRs reserved
| ADR | Purpose |
|---|---|
| **ADR-0109** | Lane-shape-aware threshold rules amending ADR-0106. |
| **ADR-0110** | Re-attempt `mathematics_logic` expert-demo promotion under the ADR-0109-amended contract, conditional on `inference_closure` substantively passing. |
ADR-0107 explicitly does **not** pre-decide ADR-0110's outcome. It only
records that the current evidence cannot support promotion.
---
## Invariants
### `adr_0107_no_silent_promotion`
No `expert_demo_claims` entry for `mathematics_logic` exists in
`docs/reviewers.yaml` as a result of this ADR. A pytest gate confirms
the math row in `ledger_report()` reports
`predicates.expert_demo == false`.
### `adr_0106_refusal_recorded`
The `expert_demo_reason` field for the math row must name at least one
of the documented blockers (missing metric keys or
`inference_closure` failure). This is informational; it gives operators
a one-line legible reason without forcing them to read this ADR.
---
## Acceptance evidence
Accepted when:
- this ADR lands at `Accepted (decision: defer promotion)`
- README "Current frontier" updated: ADR-0107 moves out of the
Proposed-ADR sequencing list; ADR-0109 and ADR-0110 enter as reserved
- `tests/test_adr_0107_deferral.py` pins `adr_0107_no_silent_promotion`
against the live ledger
- no change to `core/capability/expert_demo.py` or
`core/capability/reporting.py` — the contract is honored, not amended
---
## Consequences
- The ADR-0106 contract has demonstrated its load-bearing behavior: it
refused a promotion attempt that the previous code-path would have
silently failed-true on cognition metrics the math domain never
produced.
- "`reasoning-capable`" remains an honest ceiling for
`mathematics_logic`. External readers can see in `ledger_report()`
that the row sits at `reasoning-capable` with a named blocker.
- The frontier shifts: ADR-0109 (metric-shape amendment) becomes the
prerequisite work for any future expert-demo promotion across all
four ratified domains, not just math.
---
## Out of scope
- This ADR does not amend ADR-0106. The amendment is ADR-0109's scope.
- This ADR does not investigate or fix `inference_closure`. That work
is a prerequisite to ADR-0110, scoped to wherever the substrate gap
actually lives.
- This ADR does not change the ratification status of `physics`,
`systems_software`, or `hebrew_greek_textual_reasoning`. Each will
face the same metric-shape question and should be re-evaluated under
ADR-0109 when that lands.