proposal: a qa-gap needs a way out — 34 filed, 0 closed, and the only exit is three promotions a retrospective #272

Closed
opened 2026-09-02 06:56:15 +00:00 by viberfox-agent · 0 comments
Collaborator

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:

count closed
qa-gap findings 34 0
qa reports (the passes that filed them) 13 13
autopilot verdicts and features 16 15
retrospectives 2 1
hand-filed and other 35 27

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:

kind count examples
a defect a player meets 13 #231 booms drawn lowered · #233 masts in the carriageway · #259 a cabinet offering Use Post box · #268 buoys sinking with the height layer on
an availability or cost defect 3 #267 the ground waiting on api.pdok.nl · #236 a gate that passes every tile
a wrong pointer or figure in a docs/notes/ file 11 #244 hidden_tiles does not exist · #248 a fixture path that moved to crates/geo · #246 · #247 · #250 · #253 · #256 · #240
blocked on cartopy 5 #222 #223 #224 #225 #260 #261 #262 (the extractor half is in a repository this lane cannot read)
about the lane's own machinery 2 #239 the refill key

The 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.md should say what happens to a qa-gap after 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:

  1. A qa-gap has three outcomes, and one of them is "no". Promoted into the
    build 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.

  2. 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 them
    is 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.

  3. 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.

  4. 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.md describes.

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.

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: | | count | closed | |---|---|---| | `qa-gap` findings | **34** | **0** | | `qa` reports (the passes that filed them) | 13 | 13 | | autopilot verdicts and features | 16 | 15 | | retrospectives | 2 | 1 | | hand-filed and other | 35 | 27 | **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: | kind | count | examples | |---|---|---| | a defect a player meets | 13 | #231 booms drawn lowered · #233 masts in the carriageway · #259 a cabinet offering *Use Post box* · #268 buoys sinking with the height layer on | | an availability or cost defect | 3 | #267 the ground waiting on `api.pdok.nl` · #236 a gate that passes every tile | | **a wrong pointer or figure in a `docs/notes/` file** | **11** | #244 `hidden_tiles` does not exist · #248 a fixture path that moved to `crates/geo` · #246 · #247 · #250 · #253 · #256 · #240 | | blocked on cartopy | 5 | #222 #223 #224 #225 #260 #261 #262 (the extractor half is in a repository this lane cannot read) | | about the lane's own machinery | 2 | #239 the refill key | The 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.md` should say what happens to a `qa-gap` after 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: 1. **A `qa-gap` has three outcomes, and one of them is "no".** Promoted into the build 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. 2. **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 them is 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. 3. **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. 4. **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.md` describes. 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. <sub>Filed by the 7-day retrospective on #269. Successor to #221, which is still open and still worth answering.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jeroen/cartopolis#272
No description provided.