LABELS.md / TRIAGE.md / BUILDER.md — the attention contract
#85
Labels
No labels
attention
blocked
blocker:ci-red
blocker:conflict
blocker:drill-pending
blocker:unrequested
bug
claimed
documentation
enhancement
epic
merge-next
needs-ruling
needs-triage
offsite
post-merge
ready
release
scope:docs
scope:guards
scope:labels
scope:release-flow
stale
state:addressing
state:bots-reviewing
state:building
state:needs-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: heavy-duty/ceremony#85
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?
Part of #83. Blocked by #84 (same file, and a contract must not describe a label the taxonomy does not yet list). From discussion #82, approved by @danmt.
All line references pinned at
87f2432.Context
#84 makes the label exist. This makes it mean something: who may set it, who must clear it, what it is not, and what nothing does about it. Without this,
attentionis a colored word — and the failure mode is specific and known, because the family already lived it withstate:needs-rebase: a label whose contract is folklore gets applied to two different situations and then lies about both (LABELS.md L41-L45).The incident that bought the label is on #16: a ruling that authorized the last open acceptance criterion of a
claimedissue, addressed to its assignee by name, unowned for over an hour because every duty loop in this fleet reads state and none reads prose. #83 carries that story; this file carries the rules.Spec
Decisions. Do not reopen them in the PR.
LABELS.md, next tooffsite's paragraph (L131-L140):attentionsays a demand is parked on this issue for its assignee. Anyone who needs that assignee's hands sets it — triage, the operator, a sibling agent. The assignee alone clears it, and clearing is the ack.state:addressingand eventually disagree with it.ready/claimed/blockedand withneeds-ruling. The queue invariant ignores it by construction.offsite(#68) andneeds-ruling(#52), which record silence that is legitimate, an unansweredattentionis silence that is not: the 48h reclaim should take that claim, and does. Say this explicitly — the reader who knows the other two flags will assume the third behaves like them.attentionwithout an assignee is a board bug, not a demand. Anyone may assign or remove it. Nothing enforces this.attention— an assignee owes a move;needs-ruling— a human owes a decision, under the escalation contract and ladder (BUILDER.md, the ruling ask); a bare@-mention — an FYI that demands nothing, which stays perfectly fine and must not be deprecated by this change. A demand that is itself a human decision carriesneeds-ruling; it does not carry both.actions/sets, clears, reads or validatesattention(#84 asserts that with tests). The doc states it, for the same reason BUILDER.md's claim-counting sentence does: so nobody later builds enforcement believing it was specified here and dropped.TRIAGE.md: when the next move on an issue belongs to its assignee and triage delivered that move in prose — a ruling closed out, a directive, an answered builder question that unblocks work — triage setsattentionin the same comment. It is not a substitute for minting work, and it is notneeds-ruling.BUILDER.md's Claiming section (L39-L63): anattentionon your claim is picked up as D5 says. Tie it to the parked claim that already lives there — a demand landing on a parked claim is usually the unpark, and unparking takes the slot back under the existing rule (L52-L61). Do not restate the parked-claim rule; reference it.Tasks
LABELS.md— the contract paragraph (D1–D6), placed with the other cross-cutting flag prose, plus the three-way distinction (D7) wherever it reads as one sentence rather than a new stanza.TRIAGE.md— one sentence for D9, inside an existing duty (the escalate outcome's close-out, or backlog hygiene), not as a new section.BUILDER.md— D10 in Claiming, adjacent to the park declaration.CHANGELOG.md— one line under## Unreleased, inserted above the heading below it.Acceptance criteria
LABELS.mdcan answer, without asking: who sets it, who clears it, when the clearing happens, whether it goes on PRs, and whether it pauses the reclaim clock.needs-ruling/attention/ bare-mention distinction is present and mutually exclusive: no reader could conclude that a human decision should be parked withattention, or that an FYI needs a label.LABELS.mdstates that the machine never sets, clears or reads the flag, and that no reconciler path enforces the assignee requirement.LABELS.mdstates thatattentiongrants no clock exemption, and contrasts it withoffsiteandneeds-rulingso the analogy a reader would otherwise draw is closed off.TRIAGE.mdnames settingattentionas part of delivering a move to an assignee in prose, in one sentence.BUILDER.mdtells the assignee to ack by removing the label as the first act of the pickup, and connects an incoming demand to unparking without restating the parked-claim rule.LABELS.md,TRIAGE.md,BUILDER.md,CHANGELOG.mdand nothing else — noactions/change, noFLEET.mdchange (that is #86), no second label.Test plan
test/run.shgreen and the lint scripts clean — this carries no executable behavior, so the run proves the edit broke nothing that reads the tree.docs-sync --check: all three files are indocs/VENDORED.txt, so every governed repo's.ceremony/mirror drifts on merge and refreshes at its nextdocs-sync --fix. Say so in the PR body.attentionbuys a claim more time before reclaim; a reader who parks a human decision on it instead ofneeds-ruling; a reader who thinks a bare mention is now discouraged. If the wording admits any of the three, it is wrong.main.Dependencies
Blocked by #84. Blocks #86. Part of #83.
Every issue named by
Blocked byis closed. The sweep is moving this issue toready.Claimed by @codex-bot-andresmgsl. Starting the
attentiondoctrine contract now; draft PR will follow after the first tested checkpoint.