Skip to content

spec: triage owns backfilling a missing scope label - #402

Merged
mkovero merged 1 commit into
mainfrom
spec-triage-backfill
Aug 30, 2026
Merged

mkovero merged 1 commit into
mainfrom
spec-triage-backfill

Conversation

@mkovero

@mkovero mkovero commented Aug 30, 2026

Copy link
Copy Markdown
Owner

Closes the gap I flagged when #401 merged: the spec said triage labels every issue, but triage's trigger is "new issue opened", so the 52 issues predating the label had nobody responsible for them.

Change

Triage sets a missing scope label on any issue it touches, whatever its age — one label, one line of comment.

Written as a standing rule, not a migration with an end date, because the label can go missing later too: a human editing labels by hand drops one, and nothing about the rule should expire.

Why it never blocks

A missing label already reads as tier-1 and gets checked. So this is not fixing a correctness hole — it converts a correct-but-expensive default into a cheap one. The wording says that explicitly, and bounds the work to the label plus one comment, because "while you're here" is how a cheap rule becomes an expensive one.

Cost

file delta paid by
.agents/AGENTS.md +68 B every session
.agents/triage.md +658 B triage sessions only

Already done by hand

The four issues behind the open PRs are labelled, and the five labels exist:

issue PR label basis
#346, #378 #352 tier-1 touches measurement/sweep.rs, report.rs
#368 #384 tier-1 touches measurement/sweep.rs, report.rs
#369 #388 scope-none daemon/cli/wire only

Both tier-1 PRs touch sweep.rs, which carries a Farina / ISO 18233:2006 Annex B citation in the restored document map — so the standards check has real content there, not just a true regex.

#369 is the one judgement call. It is labelled measurement-accuracy and concerns τ calibration, so it looks tier-1. Its diff touches no standards-governed module, and the correctness question — does the xrun counter get checked — is code logic no standard resolves. The spec's "unsure → tier-1" bias is written for triage predicting ahead of a diff; here the diff is final, so I called it from the diff. Flip it with gh issue edit 369 --remove-label scope-none --add-label tier-1 if you disagree.

The remaining ~48 open issues are deliberately left unlabelled — this PR is what picks them up as triage reaches them.

#401 said triage sets a scope label on every issue, but its trigger is
"new issue opened" — which left the 52 issues that predate the label with
nobody responsible for them, and made the backfill a one-off migration the
spec did not describe.

Triage now sets a missing scope label on any issue it touches, regardless
of the issue's age. Framed as a standing rule rather than a migration,
because the label can also go missing later: a human editing labels by hand
drops one, and there is no reason for the rule to expire.

Deliberately bounded to one label and one line of comment. A missing label
already reads as `tier-1` and gets checked, so this never unblocks anything
— it converts a correct-but-expensive default into a cheap one. That does
not justify re-triaging the issue's spec, and the wording says so, because
"while you are here" is how a cheap rule turns into an expensive one.

+68 bytes to AGENTS.md, +658 to triage.md (triage sessions only).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Nz6t5FtUc5zco8eunf5hAx
@mkovero
mkovero merged commit 792e8d9 into main Aug 30, 2026
@mkovero
mkovero deleted the spec-triage-backfill branch August 30, 2026 02:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant