docs(backlog): close six rows whose every limb is verified landed - #917
Merged
Conversation
Flips #1272, #1291, #1345, #1366, #1367 and #1410 to SHIPPED. Open rows go 279 to 273. HOW THE CANDIDATES WERE FOUND, and why this is six and not 164. A full run of scripts/coord/landed_citation_screen.py over all 278 open rows flagged 164 -- 145 CITED, 19 MENTIONED -- with its controls passing. That is a read-before-you-dispatch signal, not a completion claim, and the tool refuses that reading in terms. Narrowing to rows that are CITED AND carry a merged work PR AND have no open PR AND score value 1 or 2 gives 19 candidates. EACH OF THE 19 WAS THEN PROVED INDIVIDUALLY, defaulting to refuse. The asymmetry is the reason: refusing a correct flip costs one re-read, while accepting a wrong one removes the row from view, so the remaining work is never done and nothing reports a problem. Six passed. THIRTEEN DID NOT, and each names a specific unlanded limb: #1020 3 of its own "NOT BUILT" limbs unlanded; ADR 0167 still Proposed #1061 the row's own banner says it must not close; two merged PRs agree #1282 the doc correction the row calls "what is left" has not landed #1332 no limb landed at all; it is a tombstone for #1086 #1357 the decision record still states the retired value #1361 the 25 budgeted message sites are not rewritten #1368 branch-leak-scan.yml pins the same floor with no freshness check #1372 the pinning test the row names as its only remainder never landed #1383 45 assignment-shaped citations of refused keys remain #1404 the enforce_admins claim is still wrong in four places #1405 the second half of the two-step never landed #1409 names two gaps that have NO other number, so closing loses them #1406 its verifier failed on a schema cap and is being re-run #1409 and #1368 are the instructive refusals: both had every stated limb landed, and both were refused anyway because the verifier found something the row still uniquely records. SHAPE OF EACH EDIT. The check-mark banner leads; the original open banner is DEMOTED rather than deleted -- its glyph is stripped and its filing prose stays beneath, which is the shape #1439 and #1432 already carry on main. The score line is untouched. Exactly one status banner per row, asserted from the written file rather than from the plan. Verified: backlog_status_check green (670 items, one status each, 433 in the ledger), all six parse as closed with one closed banner and zero open banners, and 113 tests pass across the status, citation, ledger and link-resolution legs. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this closes
Six rows whose every limb is verified landed: #1272, #1291, #1345, #1366, #1367, #1410. Open rows go 279 to 273.
Why six and not 164
A complete run of
scripts/coord/landed_citation_screen.pyover all 278 open rows flagged 164 — 145CITED, 19MENTIONED— with its built-in controls passing.That is a read-before-you-dispatch signal, not a completion claim, and the tool refuses that reading in its own words: landed code can cite a row while filing it, while testing around it, or while recording why it was not done.
Narrowing to rows that are
CITEDand carry a merged work PR and have no open PR and score value 1–2 gives 19 candidates.Each of the 19 was proved individually, defaulting to refuse
The asymmetry drove the default: refusing a correct flip costs one re-read later, while accepting a wrong one removes the row from view, so the remaining work is never done and nothing reports a problem.
Six passed. Thirteen did not, each naming a specific unlanded limb:
Proposedbranch-leak-scan.ymlpins the same floor with no freshness checkenforce_adminsclaim is still wrong in four places#1409 and #1368 are the instructive refusals. Both had every stated limb landed, and both were refused anyway because the verifier found something the row still uniquely records. That is the check working.
#1406's re-run has since completed, and it is a refusal too — 1 of 3 limbs. The headroom hook is wired on matcher
^(Task|Agent|Workflow)$|spawn_task(.claude/settings.json:60), butCLAUDE.md:290-292says a Console spawns a Builder through aBash(claude:*)grant, which no tool-name matcher can select. The shipped contract test does not merely fail to cover that path —tests/test_claude_settings_contract.py:151putsBashin_NEAR_MISS_TOOLSand asserts no matcher wiring this hook may select it. So the largest spend in the system, launching a whole session, still gets no reading, and nothing records the exclusion.The verifier drove it rather than reading it: a
Bash/claude --bgpayload piped into the hook produced no output and exit 0, while aTaskpayload produced a full reading.So the final count is six flipped, thirteen refused.
Shape of each edit
The check-mark banner leads. The original open banner is demoted, not deleted — its glyph is stripped and its filing prose stays beneath, which is the shape #1439 and #1432 already carry on
main. The score line is untouched.Exactly one status banner per row, asserted from the written file rather than from the plan.
Checks
backlog_status_check.pygreen: 670 items, each declaring exactly one status.docs/BACKLOG.mdonly.Not enqueued, auto-merge not armed.
🤖 Generated with Claude Code