core/docs/assessment
Claude 294bbe7b9b
feat(ci,tests): PR-4b — promote teaching onto the gate, and close pin 3's own blind spot
The reachability gap turns by PROMOTION for the first time: 15 -> 14. PR-3b's
earlier turn was by deletion, which is free. This one costs 22.1s on every push,
which is exactly why it is a decision rather than a default.

THE RECOMMENDATION WAS RE-DERIVED, NOT EXECUTED — and it did not survive as
written. PR-4b recommended `teaching` on the strength of G-22:
test_ratification_ceremony.py was red on main, in `teaching`, run by no gate.
That hole was already closed a different way — G-22's fix promoted that single
file into smoke. So `teaching` would have added 9 net-new files, NONE with a
demonstrated escape, and promoting on a justification that has already been
spent is precisely the failure this arc exists to close.

Promoted on a stronger, doctrinal basis instead.
tests/test_epistemic_invariants.py enforces AGENTS.md's "Teaching and mutation
safety" non-negotiables in substance — INV-22/INV-23: an unmarked proposal and
an unmarked reviewed example default to SPECULATIVE, the status enum has exactly
its four positions, a pack-mutation proposal carries no hardening flag. Durable
corpus mutation is the one irreversible thing in this system, and the suite
guarding it ran on no pre-merge gate. That justification does not require an
incident to have happened yet, which makes it the better one.

Measured: 22.1s / 122 tests across 9 net-new files (the tenth was already on the
gate). Both invocation sites updated, GATE_SUITES extended, `teaching` removed
from UNREACHABLE_BASELINE in the same edit, ratchet lowered <= 15 to <= 14 —
the both-directions discipline that has caught this author twice.

A HOLLOW SPOT IN PIN 3 ITSELF, found by sabotage-testing the promotion rather
than trusting it. _suites_invoked_by_gate_tiers() takes the UNION of
scripts/hooks/pre-push and scripts/ci/local-ci.sh, so a suite present in either
satisfies it. Removing `teaching` from local-ci.sh alone PASSED SILENTLY: the
two scripts could drift from each other invisibly while local-ci.sh states in
prose that it runs "the same four steps as scripts/hooks/pre-push". A developer
running one would get coverage the other advertises and does not deliver.

Closed by test_the_two_gate_scripts_invoke_the_same_suites, scoped to the
numbered (n/m) gate steps — a discriminator both files already use — so it reads
the gate tier without parsing shell control flow. The identical sabotage now
fires. Verified in three directions: removed from one script (fires, and did not
before), removed from both (the pre-existing assertion fires), restored (green).

THIS IS NOT THE CI-PARITY PIN N-9 KILLED, and the distinction is recorded at the
assertion site so it cannot be re-litigated a third time. That one asserted
TEST_SUITES["smoke"] == smoke.yml and was reverted in 50fa287d because
AGENTS.md:280 makes GitHub Actions billing-locked dead signals — parity with a
dead signal buys nothing. Both scripts here are LIVE local merge bars.

Gate is now four steps: smoke + warmed_session + deductive + teaching.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wcw2pnMBwyvmNyQg4uPEt4
2026-07-28 08:12:26 +00:00
..
10-layer-cards fix(tests,claims): G-22 — main was red, and CLAIMS.md was publishing evidence that no longer existed 2026-07-28 05:25:28 +00:00
20-component-cards docs(assessment): re-stamp the eight cards this arc touched, and post the board 2026-07-28 04:36:13 +00:00
00-scope-and-method.md docs(assessment): Phase 4 — the gap register and the hindrance audit 2026-07-27 16:04:22 -07:00
01-phase0-ground-truth.md
02-layer-taxonomy.md feat(wave-1): retire the dead instruments, delete the aliases nobody calls (PR-3, PR-3b, R-7) 2026-07-28 05:40:45 +00:00
03-card-schema.md
04-phase2-findings.md docs(assessment): Phase 2 — nine layer cards, verified against code not documents 2026-07-27 15:45:52 -07:00
05-phase3-findings.md docs(assessment): Phase 3 — component descent; the correction chain continues into code 2026-07-27 15:57:36 -07:00
30-gap-register.md feat(ci,tests): PR-4b — promote teaching onto the gate, and close pin 3's own blind spot 2026-07-28 08:12:26 +00:00
31-hindrance-audit.md feat(config,specs,tests): PR-5 — the flag register, profiles as units, and the daemon's missing fourth flag (R-3 + R-4) 2026-07-28 06:47:21 +00:00
40-assessment.md feat(rnd): ADR-0252 §5 run to a verdict — NO-GO, and the two prior GOs are void 2026-07-28 02:55:31 +00:00
50-execution-plan.md feat(ci,tests): PR-4b — promote teaching onto the gate, and close pin 3's own blind spot 2026-07-28 08:12:26 +00:00
50-rulings.md feat(ledger,tests,adr): PR-14 — the outcome-mix rule, and the four expected licences dissolve under it (R-8) 2026-07-28 07:59:01 +00:00
README.md feat(config,specs,tests): PR-5 — the flag register, profiles as units, and the daemon's missing fourth flag (R-3 + R-4) 2026-07-28 06:47:21 +00:00

docs/assessment/ — The Holistic Macro→Micro Assessment (2026-07-27)

A read-only, evidence-bearing assessment of CORE's cognitive-cycle design versus implementation fulfillment, conducted under docs/conceptualizing_engineering_mastery.md at forgejo/main @ 8927c563. Phases 05 change no runtime behavior, fix no defect, and decide nothing — they produce evidence and judgments for ruling. Phase 6 adds the execution plan built on them and the ruling packet they require.

Start here: 40-assessment.md — the synthesis (the verdict, the five frontiers, the recommended attack order). Then 50-execution-plan.md for what follows from it, and 50-rulings.md for what is waiting on a decision. The registers rank the work; the cards are the evidence base.

File / dir Phase What it is
00-scope-and-method.md Charter, method, rules of engagement, phase/executor table
01-phase0-ground-truth.md 0 Corpus triage, the five unreconciled articulations, system-map recovery
02-layer-taxonomy.md 1 The two-axis taxonomy: 7 macro layers + 2 cross-cuts over 33 zones; the Candidate Register (CR-1…4); completeness criteria
03-card-schema.md 1 The card metadata schema: liveness ⊥ fitness, design ⊥ build, sabotage-tested evidence, verified_at stamps
10-layer-cards/ 2 Nine layer cards (M0M6, MG, MV), every liveness label re-verified against code
04-phase2-findings.md 2 Stage-coverage audit; corrections to Phase 0; findings F-1…F-5
20-component-cards/ 3 Eight component cards: the four zero-subsystem zones + always-on, derivation organs, surface selection, attention
05-phase3-findings.md 3 Corrections C-1…C-5; findings F-6…F-10; the consolidated Phase-4 seed list
30-gap-register.md 4 The live gap register — 23 entries (G-21, G-22, G-23 added during execution), 4 tiers, each with evidence + deciding authority; supersedes docs/gaps.md and the substrate-liveness ratchet per R-7
31-hindrance-audit.md 4 Fourteen hindrances with fitness verdicts and better homes; seventeen candidates examined and cleared — five in Phase 4, six in the first 2026-07-28 external-assessment triage, six in the second (of which one, the pack/domain seam, survived as G-23)
40-assessment.md 5 The synthesis
50-execution-plan.md 6 The execution plan — five waves + five frontier tracks over every G/H entry, with the dependency gates and the risks. §0 carries nine corrections to the assessment found while sizing and executing it; §2.1 carries the adopted ruling docket and its execution order
50-rulings.md 6 The ruling packet — R-1…R-14, each with evidence, options, a recommendation, and the exact diff that follows from each choice. RULED 2026-07-28: twelve adopted, R-10 and R-14 stricken, §5 NO-GO ratified. Carries the standing delegation under which residual sub-questions are decided, and marks each ruling EXECUTED as it lands
../specs/flag_register.md The flag register (PR-5, R-3 + R-4) — all 32 RuntimeConfig booleans by class, governing ADR, and what evidence flips it; profiles as the unit of decision; §5 indexes every declared table in the repository and the pin that makes each true

Maintenance contract (from §8 of the synthesis): a card whose verified_at falls behind a load-bearing arc is testimony, not evidence. Update cards when their subsystems move, or this directory becomes the next dead instrument it was built to replace.

Execution status (2026-07-28). Phases 06 produced the evidence; the arc that followed executed everything in it that needed no ruling, Wave 0 closed (twelve rulings adopted, two stricken, the §5 NO-GO ratified), and the docket then began executing in its corrected order. Landed: Track A's §5 verdict (pre-registered), PR-4 (+ pin 3), PR-6, PR-7, PR-9, PR-1, PR-3 + PR-3b (R-7), R-12 (two ADR record amendments + the §5 verdict banner + the §6 retirement-condition amendment), PR-5 (R-3 + R-4 — the flag register, the profile mechanism, and the daemon's missing fourth flag), and four defect fixes (H-13, H-8e, G-22, G-23).

Closed: G-6, G-7, G-8, G-9, G-15, G-22, H-6, H-7, H-8 (all five instances), H-11, H-13. Added: N-8, N-9, G-21, G-22, G-23, H-13, H-14. Wave 4's F-6 half-gate is lifted. What remains is owed work, not open questions — see 50-execution-plan.md §Status for the board and §2.1 for the adopted docket and its execution order.

Standing note: the PR #138 fabrication findings appear throughout as measured & pinned, fix held for ADR + ratification — recorded, never re-discovered, never fixed here, per explicit instruction.