proposal: a qa-gap needs a way out — 34 filed, 0 closed, and the only exit is three promotions a retrospective #272
Labels
No labels
agent
agent:ci
agent:done
agent:failed
agent:needs-input
agent:refined
agent:refining
agent:running
agent:shipped
agent:skip
autonomous
autopilot
driven
local
plan
proposal
qa
qa-gap
research
retro
ship
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jeroen/cartopolis#272
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Argued from the seven days of 2026-08-26 to 2026-09-02, read for the retrospective
on #269. This is a proposal about
docs/direction.md; the file is not edited here,and this is deliberately not
autonomous.It is the successor to #221, which is still open. #221 argued that a gap on a wired
source should outrank the next unverified candidate. The lane has since behaved as
if that were already true — no new source has been taken since #216 on 2026-08-30,
and the whole of the last three days went into QA. The result is that the
argument #221 won has produced a queue nothing can drain.
The measurement
One hundred issues were created in the period. By what they are:
qa-gapfindingsqareports (the passes that filed them)Thirty-four gaps filed, none closed, none in progress. The only route out of
that backlog is a retrospective promoting at most three — and the last
retrospective's three produced, in three days: one ticket stalled at
agent:needs-input(#213), one built and then stopped on a merge conflict (#214,still unlanded), and one not picked up. Net gaps closed by the promotion channel
since it was invented: zero.
At two tickets a day and three promotions a retrospective, the backlog grows
monotonically for as long as the QA lane runs. A backlog nobody can drain carries
the same information as no backlog: the findings are real, well-measured and
inert.
What is actually in the thirty-four
They are not one kind of thing, and treating them as one is most of the problem:
api.pdok.nl· #236 a gate that passes every tiledocs/notes/filehidden_tilesdoes not exist · #248 a fixture path that moved tocrates/geo· #246 · #247 · #250 · #253 · #256 · #240The eleven note-accuracy findings are the clearest case. Each is correct, each is
cheap, and each would consume a whole build ticket at two a day — six days of the
lane's entire capacity to fix eleven sentences of prose. They want one sweep,
not eleven tickets.
The five blocked on cartopy are the second clear case, and #221 already made this
argument: they cannot be built here at all, so they sit in the same queue as work
that can, making the queue longer without making it more actionable.
The proposal
docs/direction.mdshould say what happens to aqa-gapafter it is filed.Today the file says a great deal about what may be built and nothing about what
becomes of a finding. Four sentences would close it:
A
qa-gaphas three outcomes, and one of them is "no". Promoted into thebuild lane; swept into a batch with its siblings; or closed as not worth doing,
with the reason recorded the way the Checked and not taken table records a
rejected source. A finding that can only ever be promoted is a finding that
accumulates. Closing one is a real result, and the lane currently has no way to
say it.
Note-accuracy findings are swept, not ticketed. A wrong symbol name, a moved
path or a stale figure in
docs/notes/is a documentation fix; a batch of themis one docs-only branch, which CI does not even build. Eleven of these are open
today. This is the cheapest capacity the lane has and it is being spent at the
price of a feature ticket each.
A gap whose fix lives in cartopy is filed against cartopy, not queued here.
Five are open on this board that this container cannot build by construction —
the token answers 404 (#204, #261). #221 asked for these to be marked blocked;
this asks the stronger thing, that they not sit in the same queue as buildable
work at all.
The QA lane yields when its own backlog is deep. There is no back-pressure
today: QA files at whatever rate the passes find things, regardless of how many
findings on that layer are already open. Six gaps are open on the level-crossing
layer and six on navigation marks; a seventh on either is worth less than
closing the first. A cap — stop filing new findings on a layer while more than
N of its gaps are open — would turn the backlog into a signal again.
One thing this proposal does not ask for
It does not ask for the QA lane to run less. The QA lane is the best thing that
happened to this project in the period, and it is worth saying why: every one of
the fourteen player-facing defects above was found by a machine, measured, and
written up with the seam named — the booms drawn lowered against a rule written in
three places, a national register's whole vocabulary censused against a 1,258-feature
sample, a buoy's freeboard measured in pixels off two captures. That is value 1 and
value 6 working exactly as
docs/direction.mddescribes.The problem is entirely downstream of the finding. Something has to be allowed to
close a gap, and today nothing is.
What the same period says about landing, for context
Three finished branches were unlanded at the end of it — #214 (conflict, three
days), #219 (finished), #237 (fenced, correctly, and waiting for a person). The
shipping setting is off. That is a machinery matter rather than a direction one and
it is filed as #270 and #271; it is mentioned here only because it means the lane's
bottleneck in this period was not building and was not finding — it was everything
that happens to work after it is done.
Filed by the 7-day retrospective on #269. Successor to #221, which is still open and still worth answering.
docs/qa/targets.md— 14 of 14 passes re-verified a shipped ticket, 9 of them documentation-only verdicts #280alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281alreadyFiledonly ever sees 50 issues, so every autopilot dedupe key silently expires — #206 was QA'd twice #281