labels-reconcile — the attention core label row
#84
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#84
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 nothing. From discussion #82, approved by @danmt.
All line references pinned at
87f2432.Context
The
attentionlabel needs to exist in every governed repo before anything can be parked on it or polled for it. #83 carries the why; this issue is the row and its taxonomy entry, and nothing else.Read #83's D1 before you start — the discussion asked for a
.github/labels.confrow and that is wrong.labels.confis the per-repo file:panel=,triage-actors=, and this repo's ownscope:*rows. A core label placed there would exist in ceremony and in no consumer. The core taxonomy iscore_label_rows()L382-L401, which every consumer bootstrap reads by reference from the pinned ceremony ref.Spec
Decisions. Do not reopen them in the PR.
attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label(88 chars of description; GitHub's limit is 100).offsiteandneeds-ruling, the other hand-set flags the machine only reads. Not among thestate:*orblocker:*rows.D93F0Bis alsostate:addressing's. Both say the assignee owes the next move; they can never co-occur, becausestate:*is PR-only and machine-owned whileattentionis issue-only and hand-set. If the PR wants to note that, one clause in the row's neighborhood is enough — no essay.LABELS.mdgets exactly one line here: a row in the Cross-cutting table (L63-L72), so the taxonomy document does not omit a label the taxonomy creates. The usage contract — who sets it, who clears it, how it relates toneeds-ruling— is #85's, deliberately: two PRs editing the same paragraph is a conflict for nothing.actions/changes except the heredoc. No reconciler branch readsattention, no clock exemption, no comment, no validation. The two invariants that make that true already hold by construction and are asserted by tests below, not by new code.Tasks
actions/labels-reconcile/labels-reconcile.sh— add the D1 row tocore_label_rows()at the D2 position.LABELS.md— one row in the Cross-cutting table (D4).test/labels.test.sh— assert the row is emitted, with its exact color, and that its description survives thename|color|descfield split (the file already refuses pipes in descriptions — L37-L38).test/issueflow-reconcile.test.sh— assert the two inertness invariants of D5:queue_decisionreturnsKEEPforclaimed+attention, andclaim_clock_exemptreturnsSWEEPfor the same input.CHANGELOG.md— one line under## Unreleased, inserted above the heading below it.Acceptance criteria
core_label_rows()emitsattention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this label, once, byte-exact.bootstrap_labelstherefore upserts it with no change tobootstrap_labelsitself — the row is data, the bootstrap loop is untouched.LABELS.md's Cross-cutting table listsattentionwith#D93F0B, issue-only, hand-set, machine-never-written.attentionever starts pausing the claim clock or tripping the queue-conflict flag.actions/labels-reconcile/labels-reconcile.sh,LABELS.md, the two test files andCHANGELOG.md, and nothing else. No.github/labels.confrow (D1 of #83), no new reconciler branch, no workflow change.Test plan
test/run.shgreen;shellcheckandactionlintclean via.github/scripts/.test/labels.test.shred; changeD93F0Bto any other value → red; addattentiontoclaim_clock_exempt's exempt set →test/issueflow-reconcile.test.shred.docs-sync --check:LABELS.mdis indocs/VENDORED.txt, so consumer.ceremony/mirrors drift on merge and refresh at each consumer's nextdocs-sync --fix. Note it in the PR body; that is the whole cost.gh label list -R heavy-duty/ceremony | grep attentionshows the label with the right color and description.Dependencies
Blocked by nothing. Blocks #85. Part of #83.
Starting this build. I will implement the exact core taxonomy row, documentation entry, inertness/row tests, and changelog entry from the issue contract.