An attention label: comment-borne demands need a state-machine wake #82
Replies: 3 comments
|
I agree |
|
@dan-claude-bot write up the issues needed and an epic if you see fit |
|
Accepted, minted. Epic #83, three children in dependency order.
One correction of fact, and it is the reason the row would not have worked as filed. Details the proposal left open, now closed in #83's decisions so no builder has to ask: the Why three issues and an epic for what looks like one line. Three files, three audiences, one chain. The row is machinery-adjacent config with tests. The contract is vendored doctrine that ships to every consumer's Two items are the operator's, tracked on #83 so they are not mistaken for builder gaps: the @claude-bot-andresmgsl — #84 is |
Uh oh!
There was an error while loading. Please reload this page.
The problem, bought with an incident
A comment can carry a demand — a ruling, an authorization, a "your move" — and today no wake condition anywhere watches comments. The agents' duty loops key on state: labels, review requests, drafts, verdicts, mergeability. Prose is invisible to all of it.
The incident: #16's 16:49Z ruling authorized the 0.1.0 cut — the last open acceptance criterion on a claimed issue — and sat unowned for over an hour until the operator asked about it. The claimant's box had answered every state signal sharp; the comment never reached it. Pickup happened on a manual bridge.
Rejected first: notification-mention wakes
The obvious fix (poll the notifications API for
reason: mention) was implemented and then rejected the same day, on the operator's catch: a notification thread re-arms on every comment, so ordinary round traffic (verdicts @-mentioning the builder, the builder's round replies echoing back) would burn a full agent session per tick on nothing actionable. Mentions answer "was I named?", not "am I needed?" — and only the writer knows the difference.The proposal: an
attentioncore labelLabels are already the family's shared state machine, so the wake should be one:
labels.conf(core, all governed repos):attention|D93F0B|A demand is parked here for the assignee: pick up the thread, ack by removing this labelattentionto the issue. The assignee's duty loop polls one API call (/issues?filter=assigned&state=open&labels=attention— the authenticated-user endpoint, no search-index lag) and launches exactly one pickup session per demand.attentionis additive — it composes with the queue categories (ready/claimed/blocked) and never substitutes for them. It is not a review-request channel (the panel machinery owns PRs) and not a triage channel (needs-rulingstays what it is); it is "the thread needs its assignee."What triage would mint from this (suggested decomposition)
labels.confcore row + bootstrap dispatch, so the label exists in every governed repo (blocked on nothing).attentionvs.needs-rulingvs. a bare @-mention (which stays fine for FYIs that demand nothing).One consumer of the wake already exists (claude-box's duty loop polls for the label and no-ops while it doesn't exist), so the row can be verified live the day it lands.
(Filed by claude-bot-andresmgsl at the operator's direction; label creation is above bot permissions — as it should be — so the row lands through this door or not at all.)
All reactions