You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[finding] domain:cli's pm:queue reads as 8 dispatchable cards and is 1 — five of them need a RULING, and the vocabulary already has a state for that #16688
⛔ Ungraded and unrouted — domain:*, priority and type are triage's. Filed unassigned by the domain:cli execution PM seat (#6024), session session_01YFY46JydE1gMxQG1TqBcMZ, R70, from a full re-derivation of this lane's queue at 2026-09-07 ~20:50Z.
The reading
pm:queue ∩ domain:cli, open, measured across both pages of the 140-card pm:queue population (⚠️ read by one label and filtered locally — the labels array ORs, it does not AND; see #16641):
⇒ Of eight, one is dev work a PM seat may dispatch today, and it is blocked. The other seven are a blocked chain, a cross-repo read, a tracking head, a cross-lane decision, and four cards whose deliverable is a decision.
Why that costs something
pm:queue is the dispatch pool: a PM seat reads it as capacity. This lane's count says 8 and its capacity is 0. A seat sizing its round from the count either over-commits, or — worse — reaches for a [Decision] card and rules it. ⛔ A PM seat must not rule a contract or product decision; four of these are exactly that, and three of the four are p2/p3 cards that have sat in pm:queue since 2026-09-02 to 2026-09-06 without a seat touching them, which is what "not dispatchable" looks like from the outside — indistinguishable from "nobody got to it".
⭐ This is not a missing label. The vocabulary already carries the state: needs-user-decision is live on PRs (#16656, #16647, #16592) and pm:awaiting-maintainer is live on cards (#15021). ⇒ the gap is per-card grading, not the label set — which is precisely why this is filed for triage rather than fixed here.
The class it belongs to
The same shape triage recorded on #14313 / #14314 at R+98: the packages/client/src/index.ts HARD SERIAL existed only as prose in three card bodies while all three sat in pm:queue, so nothing in the state machine stopped two of them being dispatched onto a measured hard-serial hot spot.
⇒ A constraint that lives only in prose is invisible to a seat reading labels.#16582 got its label this round for that reason. These four rulings are the same class one level up: "this card needs a decision, not a developer" is stated only by the [Decision] prefix in the title, which no query reads.
⛔ What is NOT claimed
⛔ Not that any of the four is wrongly graded — each may be exactly where triage wants it; this card asserts only that pm:queue is not saying what a dispatching seat reads it as saying.
⛔ Not that a [Decision] card is worthless in a queue — it is worklist, just not dispatch worklist.
⛔ Not measured: whether the other lanes show the same ratio. This is one lane's reading, taken once. ⚠️ A single lane is not the population.
Re-check
# one label, filtered locally — the array ORs (#16641)
gh issue list --repo objectstack-ai/objectstack --state open --label pm:queue --limit 200 \
--json number,title,labels \
| jq '[.[] | select(.labels[].name == "domain:cli")] | length'
Positive control: #16582 must appear in the pm:queue sweep before this round's relabel, and must be absent after — otherwise the filter is not reading what it claims to.
Related
#16641 (the labels-array OR reading) · #14313 / #14314 (the prose-only constraint class, triage R+98) · #16582 (relabelled pm:blocked this round) · #15295 (the cross-repo prerequisite, recorded this round) · #15021 (pm:awaiting-maintainer, the state already in use)
⛔ Ungraded and unrouted —
domain:*, priority and type are triage's. Filed unassigned by thedomain:cliexecution PM seat (#6024), sessionsession_01YFY46JydE1gMxQG1TqBcMZ, R70, from a full re-derivation of this lane's queue at 2026-09-07 ~20:50Z.The reading
pm:queue∩domain:cli, open, measured across both pages of the 140-cardpm:queuepopulation (labelsarray ORs, it does not AND; see #16641):organizations.inviterole?packages/client/src/index.ts; moved topm:blockedin this roundserve.ts:133cloud mirror still exist?objectstack-ai/cloudread this session provably cannot makereturn res.json()erasurespm:blockedon #7735convention/label-casereaches 5 of 9 label carriersdomain:speccard[Decision]sandboxed CRASH vs the unwrap door[Decision]renamespecVersionGap→protocolVersionGap[Decision]does a declared 5xx on a polled route log per requestuserMessagebound: 8 doors, 2 behaviours⇒ Of eight, one is dev work a PM seat may dispatch today, and it is blocked. The other seven are a blocked chain, a cross-repo read, a tracking head, a cross-lane decision, and four cards whose deliverable is a decision.
Why that costs something
pm:queueis the dispatch pool: a PM seat reads it as capacity. This lane's count says 8 and its capacity is 0. A seat sizing its round from the count either over-commits, or — worse — reaches for a[Decision]card and rules it. ⛔ A PM seat must not rule a contract or product decision; four of these are exactly that, and three of the four arep2/p3cards that have sat inpm:queuesince 2026-09-02 to 2026-09-06 without a seat touching them, which is what "not dispatchable" looks like from the outside — indistinguishable from "nobody got to it".⭐ This is not a missing label. The vocabulary already carries the state:
needs-user-decisionis live on PRs (#16656, #16647, #16592) andpm:awaiting-maintaineris live on cards (#15021). ⇒ the gap is per-card grading, not the label set — which is precisely why this is filed for triage rather than fixed here.The class it belongs to
The same shape triage recorded on #14313 / #14314 at R+98: the
packages/client/src/index.tsHARD SERIAL existed only as prose in three card bodies while all three sat inpm:queue, so nothing in the state machine stopped two of them being dispatched onto a measured hard-serial hot spot.⇒ A constraint that lives only in prose is invisible to a seat reading labels. #16582 got its label this round for that reason. These four rulings are the same class one level up: "this card needs a decision, not a developer" is stated only by the
[Decision]prefix in the title, which no query reads.⛔ What is NOT claimed
pm:queueis not saying what a dispatching seat reads it as saying.[Decision]card is worthless in a queue — it is worklist, just not dispatch worklist.os validate --json/os compile --json的specVersionGap键是否重命名为protocolVersionGap#14261 / [Decision] Should a DECLARED 5xx on a polled route (501 NOT_IMPLEMENTED for an uninstalled optional service) log one error line per request under the "5xx never stays quiet" rule? #14656 / Rule theuserMessagebound: 8 doors, 2 behaviours — andpackages/restholds BOTH, at two functions namedsendThrownError#14674 / [finding]convention/label-casereaches 5 of the 9 schemas that carry a label — page, dashboard, chart, report, action, bulk-action and component labels are never linted at all #16284 / A sixth client-SDK erasure spelling, larger than the other five combined: 43 exported methodsreturn res.json()directly, whose lib.dom type isPromise< any >#12104, and does not propose which state they should carry.Re-check
Positive control: #16582 must appear in the
pm:queuesweep before this round's relabel, and must be absent after — otherwise the filter is not reading what it claims to.Related
#16641 (the
labels-array OR reading) · #14313 / #14314 (the prose-only constraint class, triage R+98) · #16582 (relabelledpm:blockedthis round) · #15295 (the cross-repo prerequisite, recorded this round) · #15021 (pm:awaiting-maintainer, the state already in use)