feat(capability): ADR-0110 promote mathematics_logic to expert_demo (#118)
First worked expert-demo promotion under the ADR-0106 + ADR-0109
contract. Math is now the first domain at expert_demo=true.
Signed claim (docs/reviewers.yaml):
domain_id: mathematics_logic
evidence_lanes: [elementary_mathematics_ood, inference_closure,
fabrication_control]
evidence_revision: adr-0110:reviewed:2026-05-22
signed_by: shay-j
claim_digest: 94d74781e103854230c1a71590e4df2287f5d2e87832f1c29b8ec4618853c04b
Evidence (all three lanes, public + holdout):
elementary_mathematics_ood: accuracy=1.0 (117/117 public, 39/39 holdout)
inference_closure: all_pass_rate=1.0, replay_determinism=1.0,
overall_pass=True (20 public, 12 holdout)
fabrication_control: by-class refusals 3/3/3, fabricated=0
(9 public, 9 holdout)
Infrastructure bridges (not contract changes):
- cases_plaintext.jsonl dev-mode fallback files for
elementary_mathematics_ood + inference_closure (ADR-0105 pattern)
- 9 new holdout cases for fabrication_control across all three
refusal classes (phantom_endpoint / cross_pack_non_bridge /
sibling_collapse)
- core/capability/reporting.py: _fetch_lane_split folds top-level
by_class into metrics so refusal_shape sees a canonical layout
Tests:
- tests/test_adr_0110_math_expert_demo.py: 4 invariant tests
(math_expert_demo_holds, signed_claim_present, replay_digest_
byte_equality, other_domains_unaffected)
- tests/test_adr_0107_deferral.py retired (deferral resolved)
- tests/test_expert_demo_contract.py: production-ledger test
rewritten as 'every promoted domain has signed claim' (load-
bearing invariant preserved)
- tests/test_capability_reports.py: math row asserted at
expert-demo (was reasoning-capable)
Ledger state:
systems_software: reasoning-capable
mathematics_logic: EXPERT-DEMO <- new
physics: reasoning-capable
hebrew_greek_textual_reasoning: reasoning-capable
philosophy_theology: reasoning-capable
README updated. ADR-0107 referenced as resolved by this ADR.
CLAIMS.md regenerated. ADR-0106 / ADR-0109 contract unchanged.