fix(backlog): #320 declared no status and red main - #123
Merged
Conversation
`test_backlog_status_check::test_the_real_backlog_satisfies_the_invariant` fails on origin/main at ea05525 itself. #320 (filed in #117) opened with a `📋 **Filed …**` banner, which is not one of the five the invariant accepts (✅ SHIPPED / ⛔ DECLINED / 🪦 RETIRED / 🔢 Re-scored / 🚧 Status). I invented an emoji instead of using the vocabulary. It fails in 0.6s and runs in every required test leg, so it reds every PR that compiles the suite -- it was already blocking auto-merge on #119 and would have blocked #118. Corrected to `🚧 **Status: OPEN INVESTIGATION …**`, which is what the item is, and the banner now also carries the two facts a reader needs: the measurement tooling landed in #118, and the decisive experiment is blocked on an unregistered self-hosted runner. 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.
mainis red atea055251and this is the one-line fix. Verified by running the guard on a clean checkout ofmain, not just on a branch.My fault, and a dull one: I opened #320 with
📋 **Filed 2026-08-01, not started.**— I invented an emoji instead of using the vocabulary the invariant defines. Corrected to🚧 **Status: OPEN INVESTIGATION …**, which is what the item actually is.tests/test_backlog_status_check.py— 15 passed, 0.4s.Why this is worse than a typo
It fails in 0.6 seconds and runs inside every required
testleg, so it reds every PR that compiles the suite. It was already blocking auto-merge on #119 and would have blocked #118. A trivially-detectable defect in a docs file tookmaindown for every session in the repo.How it merged green — a real coverage hole
#117 was docs-only, and
ci.yml'schangesjob short-circuits exactly that case: whenchanges.outputs.code == 'false'the install/lint/type/test steps are skipped and the requiredtest (…)contexts go green in seconds.So the guard that polices
BACKLOG.mddoes not run on a PR that only changesBACKLOG.md. That's the gap: the one class of change this invariant exists to catch is precisely the class that skips it. It isn't theoretical — it just happened, and it was found by another session's PR tripping over it rather than by mine.I'm not fixing that here; this PR restores
mainand nothing more. Worth a follow-up decision: either adddocs/BACKLOG.mdto the paths that count ascodefor the short-circuit, or run the ledger/backlog guards in a cheap always-on leg that the docs-only path cannot skip. The second is closer to howbacklog-hygiene.ymlalready behaves.Also worth noting
The banner now carries the two facts a reader of #320 needs up front: measurement tooling landed in #118, and the decisive experiment is blocked because the self-hosted WS2025 runner is unregistered (
actions/runners→total_count: 0,selfhosted-win2025-sql.ymlnever run).