You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
tooling(inflight): a vetting worklist, the grooming procedure, and the first sweep of the notes for v6 (#476)
The road to v6 needs the in-flight notes vetted - which are still real,
and in what order to read them - and nothing recorded when a note was
last confirmed against the tree. git log could not say: the package
rename of 2026-08-26/27 rewrote every file, so last-touched was the same
day for nearly all of them, and the only way to know which of the open
notes were still true was to read all of them.
Tooling (bin/inflight.mjs):
- `vet`: every open note on the baseline (or --ref a branch), partitioned
on a new `<!-- inflight-vetted: YYYY-MM-DD - what was checked -->`
marker, ordered by the index's group order and then oldest first by
first-added date, each annotated with the cheap staleness signals a
script can see - every cited fork number settled, the filename's number
settled, a cited path or symbol that no longer resolves, a stated
delete-when condition. A signal is a reason to open the note, never a
verdict; the tool closes nothing. --area splits a sweep between agents.
- `rank` orders the rows inside each impact bucket oldest first rather
than alphabetically (operator ruling on finding the buckets were in
filename order). The session-start index keeps its path order.
- firstAddedDates in bin/lib/git.mjs, one git log for every note's
first-added date; symbolsPresent tokenises the source in-process (112ms
against 4.8s for the git grep it replaced); numbersByValue caches issue
and PR states for a day, with the kind, since the two share a counter.
- bin/check-inflight-tags.sh validates the marker's shape and names a `>`
inside it as the cause. Self-tests for the gate and eleven
negative-controlled checks in bin/test-inflight.mjs.
Procedure: docs/grooming.md owns the sweep - when to run one, how it is
split by area, the dispatch prompt, what comes back and where it is
consolidated, and the traps the first sweep met. Routed from the root
AGENTS.md table, the "Vetting a note" section of docs/inflight/AGENTS.md
(the per-note contract: the marker, the five outcomes, the owner gate),
the release procedure, and vet's own output.
The sweep: six agents, one per area. Every open note on master now
carries a stamp or a state. Owner-gated notes - a bug at stall or worse,
the release record, a public-API contract - were not changed by the
sweep; each carried a PROPOSED marker with the evidence, consolidated and
ranked in process-candidate-ranking.md. The owner's pass on 2026-09-08
accepted every proposal: three closes, one merge
(bug-wedged-after-poisoned-transaction into its sibling), one retype
(bug-857-family is a register), and the shrinks and corrections, applied
by three further agents; #139 was ruled out of v6 scope and its
note deferred with its false volatility premise corrected. The register
keeps the agents' reading of what gates v6, stated with their confidence.
Overtaken by master mid-sweep: #466 landed the revoke-path drain
fix, deleting one note the sweep had read as a v6 gate and removing the
spin another described; both are re-premised here. Two out-of-area
passages the sweep proved stale are corrected in place - the ruleset
removals in docs/ci.md and the Jackson comment in .github/dependabot.yml
- and docs/refactoring.md drops an entry describing a defect the tree no
longer has.
Rejected: a numeric priority field. Impact is the coarse order, a second
axis would compete with it and rot the way the next- prefix did, and the
v6 cut is the deferred state.
Co-authored-by: Claude Fable 5.1 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,6 +75,7 @@ is untracked (a whole triage doc was once written duplicating `docs/refactoring.
75
75
|[`docs/building.md`](docs/building.md)| A build failed in a way that reads like a broken repository: the fresh-clone recipe, why the Truth assertion classes are generated rather than committed, and which invocations skip the generator |
76
76
|[`docs/logging.md`](docs/logging.md)| Changing a logback file, adding a log stream, or wondering why a logging change had no effect - the two test profiles and how to prove which one loaded |
77
77
|[`docs/inflight-tool.md`](docs/inflight-tool.md)| Querying the repo across every ref - worked examples for `bin/inflight.mjs`, and why each working-tree answer is wrong |
78
+
|[`docs/grooming.md`](docs/grooming.md)| Running a vetting sweep of `docs/inflight/` - when, how it is split between agents, the dispatch prompt, and where PROPOSED markers and the release gating list are consolidated |
78
79
|[`docs/testing.md`](docs/testing.md)| Writing or debugging tests: suite split, **why a run prints nothing and the flag that fixes it**, the ambient probe autopsy, the quarantine lane, the chaos suite, shared test utilities |
79
80
|[`docs/ci.md`](docs/ci.md)| CI is red, or you are changing a workflow: what each workflow does, the self-hosted lanes, how to fetch a failed job's log |
80
81
|[`docs/investigating.md`](docs/investigating.md)| Past the prior-art checks and into diagnosis: control arms, instrumentation traps, reporting rates |
note "$f\"$(note_title "$f")\": inflight-vetted text contains '>' - VETTED_RE in bin/lib/inflight-tags.mjs cannot parse that marker and \`bin/inflight.mjs vet\` would list the note as never vetted. Reword without '>'"
note "$f\"$(note_title "$f")\": inflight-vetted '$vetted' is not 'YYYY-MM-DD - <what was checked>'. docs/inflight/AGENTS.md -> \"Vetting a note\" owns the marker"
159
+
fi
139
160
done
140
161
141
162
# THE DOC AND THE LIB MUST LIST THE SAME VALUES, and until now nothing checked it. The sets live in
0 commit comments