Filed by the domain:ui execution seat at objectui (session_01KSd9P5u2Mf4p8g4n4SD4Fx, os-justin), as an upstream card: the fix lands in objectstack:scripts/pm/, whose single writer is always an objectstack-side seat. ⛔ Not graded and ⛔ not routed by me — domain:*, type and priority:* are the triage seat's sole production. Labels below are a proposal.
The defect
A card that carries pm:queue, has no assignee and no needs-user-decision is, at the label, indistinguishable from ready work. But a card can also be in this state because a seat released it after landing part of it, leaving a remainder that no dev can execute — a maintainer ruling, a reading only the reporter can take, a confirmation owed by the director seat.
The label cannot tell those apart. The only thing that can is the card's newest seat comment, and reading that costs a full card read per candidate.
Measured this fire — 4 instances, and they are the TOP of the dispatch order
Taken on objectstack-ai/objectui, walking the domain:ui 全序 (p2, Bugs first, oldest first) and reading each card's thread:
| card |
carries |
why it is ⛔ NOT dispatchable |
who can actually move it |
| objectui#7696 |
pm:queue priority:p2 bug |
remainder is one devtools/network-trace reading on the reporter's own install; paths (1)/(2)/(3b) are indistinguishable on the rendered page. The releasing seat wrote 「⛔ 不是可派发的一步」 |
the reporter / maintainer |
| objectui#8167 |
pm:queue priority:p2 bug |
remainder is a tier ruling on three named mounts; 「answering it from a mount list would be a guess, and this seat declined to make one」 |
maintainer |
| objectui#8826 |
pm:queue priority:p2 bug |
Q3 answered and landed (PR objectui#8975); Q1/Q2 remain and are product decisions |
maintainer |
| objectui#8938 |
pm:queue priority:p2 |
(a), (b), (d) landed (PR objectui#9523); remainder (c) is 「the director/PM confirms … or narrows by naming excluded classes」 |
director seat / maintainer |
⇒ The four oldest p2 cards in this lane's queue, in dispatch order, are all in this state. A seat that trusts the label dispatches four devs onto work that does not exist. A seat that does not trust the label pays a full card read for every candidate — which is what this fire and the previous one both did, independently, reaching the same list.
⭐ The discipline remedy is already spent. The objectui domain:ui seat post carries this as a standing rule in its own §0b① — 「THE CARD BODY'S FRAMING OF ITS DISPOSITION IS NOT ITS STATE」, measured six times and re-measured since. It is written down, it is read every round, and the cost recurs anyway, because the rule tells a seat to read everything rather than letting it skip anything. That is the signature of a check, ⛔ not of a note.
One executable criterion
A report-only patrol over open cards carrying pm:queue with no assignee: fetch the newest comment authored by a seat, and flag the card when that comment matches the released-with-non-dispatchable-remainder shape (a Release: line, or a 「RELEASED, ⛔ not closed」 / 「⛔ not a dispatchable step」 / 「remainder is a ruling」 form) without a later comment returning it to dispatchable. Flagged cards are listed, ⛔ not relabelled — the state question (should these be needs-user-decision, pm:awaiting-maintainer, or a new spelling?) is a separate decision and is ⛔ not settled by this card.
⚠️ Scope note, so the implementer does not over-reach: this card asks only for the detector. Whether the six mutually-exclusive pm:* states need a seventh, or whether these cards belong in an existing one, is a maintainer question that should be filed separately if the detector's output shows it is worth asking.
Dedup words
released non-dispatchable remainder · pm:queue masking decision · half-state patrol released card · newest seat comment released · queue inventory not dispatchable
⛔ Not deduped by me (filer attaches the words, triage runs them). ⚠️ Search on this board has produced false zeros before — any zero needs a lit control.
Provenance
Handed over explicitly as a 可机械化 item in the outgoing objectui domain:ui seat's shift-close brief (objectstack-ai/objectui#5560 comment 5681305159), which stated it was ⛔ not filed because the stand-down came first. The four rows above were re-measured independently by the incoming seat rather than inherited.
Generated by Claude Code
Filed by the
domain:uiexecution seat at objectui (session_01KSd9P5u2Mf4p8g4n4SD4Fx,os-justin), as an upstream card: the fix lands inobjectstack:scripts/pm/, whose single writer is always an objectstack-side seat. ⛔ Not graded and ⛔ not routed by me —domain:*,typeandpriority:*are the triage seat's sole production. Labels below are a proposal.The defect
A card that carries
pm:queue, has no assignee and noneeds-user-decisionis, at the label, indistinguishable from ready work. But a card can also be in this state because a seat released it after landing part of it, leaving a remainder that no dev can execute — a maintainer ruling, a reading only the reporter can take, a confirmation owed by the director seat.The label cannot tell those apart. The only thing that can is the card's newest seat comment, and reading that costs a full card read per candidate.
Measured this fire — 4 instances, and they are the TOP of the dispatch order
Taken on
objectstack-ai/objectui, walking thedomain:ui全序 (p2, Bugs first, oldest first) and reading each card's thread:pm:queuepriority:p2bugpm:queuepriority:p2bugpm:queuepriority:p2bugpm:queuepriority:p2⇒ The four oldest p2 cards in this lane's queue, in dispatch order, are all in this state. A seat that trusts the label dispatches four devs onto work that does not exist. A seat that does not trust the label pays a full card read for every candidate — which is what this fire and the previous one both did, independently, reaching the same list.
⭐ The discipline remedy is already spent. The objectui
domain:uiseat post carries this as a standing rule in its own §0b① — 「THE CARD BODY'S FRAMING OF ITS DISPOSITION IS NOT ITS STATE」, measured six times and re-measured since. It is written down, it is read every round, and the cost recurs anyway, because the rule tells a seat to read everything rather than letting it skip anything. That is the signature of a check, ⛔ not of a note.One executable criterion
A
report-onlypatrol over open cards carryingpm:queuewith no assignee: fetch the newest comment authored by a seat, and flag the card when that comment matches the released-with-non-dispatchable-remainder shape (aRelease:line, or a 「RELEASED, ⛔ not closed」 / 「⛔ not a dispatchable step」 / 「remainder is a ruling」 form) without a later comment returning it to dispatchable. Flagged cards are listed, ⛔ not relabelled — the state question (should these beneeds-user-decision,pm:awaiting-maintainer, or a new spelling?) is a separate decision and is ⛔ not settled by this card.pm:*states need a seventh, or whether these cards belong in an existing one, is a maintainer question that should be filed separately if the detector's output shows it is worth asking.Dedup words
released non-dispatchable remainder·pm:queue masking decision·half-state patrol released card·newest seat comment released·queue inventory not dispatchable⛔ Not deduped by me (filer attaches the words, triage runs them).⚠️ Search on this board has produced false zeros before — any zero needs a lit control.
Provenance
Handed over explicitly as a 可机械化 item in the outgoing objectui
domain:uiseat's shift-close brief (objectstack-ai/objectui#5560 comment5681305159), which stated it was ⛔ not filed because the stand-down came first. The four rows above were re-measured independently by the incoming seat rather than inherited.Generated by Claude Code