core/docs/adr/ADR-0131.2.B-teaching-corpus-enrichment.md
Shay 54e6bfc0d0
docs: reorganize docs landscape
Implements the 4-phase documentation reorganization master plan.

- Consolidation: Merged brief/, handoff/, planning/, and decisions/ into briefs/, handoffs/, plans/, and adr/ respectively (101 ADRs relocated)
- Root Cleanup: Relocated HANDOFF-gpt55-*.md and key top-level docs (runtime_contracts.md, etc.) to canonical folders. Added superseded alerts.
- Indices & Navigation: Created docs/README.md navigation document, docs/sessions/README.md index, docs/adr/README.md index
- Note: Also includes prior commit adding ADR-0200+ corpus hygiene governance (ADR-0225, dependency map, backfilled cross-references)
2026-06-30 16:59:36 -07:00

3 KiB

ADR-0131.2.B — Benchmark 2: B2 teaching-corpus enrichment (load-bearing gate)

Status: Accepted Date: 2026-05-23 Author: CORE agents Depends on: ADR-0131.2 (Benchmark 2: CORE-native teaching-corpus eval)


Context

The initial implementation of Benchmark 2 (ADR-0131.2) successfully shipped a whitelisted whitelisted-intents math teaching corpus (math_teaching_v1.jsonl) and verified it using a transient proposal and replay loop.

However, the v1 benchmark gate was trivially satisfied. Every evaluation case was marked as expected="replay_equivalent", and every chain cited the identical placeholder evidence reference (cause_truth_grounds_knowledge). Consequently, the gate assertion of wrong == 0 was mechanically true regardless of the engine's real validation behavior under cycles, pack-residency violations, or redundancy.

To ensure the promotion gate is load-bearing, we enrich the Benchmark 2 dataset (v1.B) and harden its verification.

Decision

We make the Benchmark 2 gate load-bearing through the following decisions:

  1. Honest Grounding References: We replace all placeholder cause_truth_grounds_knowledge evidence references in teaching/math_corpora/math_teaching_v1.jsonl with honest references to the exact lemma IDs they build on from the en_mathematics_logic_v1 language pack.
  2. Case Diversity: We extend evals/math_teaching_corpus/v1/cases.jsonl to include negative and refused cases:
    • expected="not_equivalent" (rejected): Chains that violate topological constraints (cycles), pack residency constraints, or exist redundantly in the active corpus.
    • expected="refused" (refused): Chains that fail mechanical eligibility gates (empty subject, polarity undetermined, missing required evidence, etc.) and thus raise ProposalError.
  3. Hardened Lane Runner: We modify evals/math_teaching_corpus/v1/runner.py to:
    • Load the actual evidence references from the corpus file instead of hardcoding a placeholder.
    • Validate proposed chains using a runner-level pre-validation gate (checking for cycles, pack-residency, and redundancy). Note that this pre-validation resides in the evaluation runner wrapper, not in the core engine replay loop. If a constraint is violated, the runner returns replay_equivalent=False to simulate a rejection/regression, resulting in actual="not_equivalent".
  4. Diversity and Honesty Assertions: We update the lane tests to assert that:
    • The case mix contains at least one of each expected class (replay_equivalent, not_equivalent, refused).
    • Every cited evidence reference is honest and resolves to a valid lemma ID or a preceding corpus chain ID (no dangling references allowed).

Consequences

  • The Benchmark 2 evaluation gate becomes robust against trivial passes.
  • Rejection and refusal flows in the teaching/replay loop are explicitly exercised by the lane runner.
  • Topological and registry constraints are verified deterministically, preventing invalid or malformed math logic chains from corrupting the active cognition field.