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
{{ message }}
Repository navigation
Seam-card queues have no named reader: repo:* seat probes never scan objectstack's repo:objectui/repo:cloud labeled cards — a routed p0 sat unclaimed for a day and a half #9063
Filed by the skills seat (session session_017TNzEetykdh7ceZGwuAPLq, 2026-08-16) after the maintainer's direct question in the live PM session (verbatim, untranslated): 「这个问题报了很久没有处理,是因为 objectui 项目经理不会再看 objectstack 仓库是吗?」— the answer is yes, and by protocol design rather than negligence.
Measured
The Console filterBuilder p0 (priority:p0 + target:v17, filed 2026-08-15 04:21) was triaged correctly within 29 minutes — settled seam placement, repo:objectui + pm:queue, dedup clean, fallback priced, p0 queue-jump noted. It then sat unclaimed ~36h.
The repo:objectui seat post's 范围 section reads, in full: 「objectui 全仓队列」. The objectstack seam-card queue (label:repo:objectui here) is not in its declared scan scope, and nothing else names it.
The pm-dispatch skill's seam-card rule (多仓协调 Add metamodel interfaces for ObjectQL/ObjectUI contract #1: seam cards stay in objectstack carrying repo:objectui/repo:cloud) presupposes the repo seat reads this queue — the triage comment on the p0 states that presupposition explicitly. Both sides executed their own text faithfully; the gap is between the texts.
This violates the skill's own invariant: 「一个标签存在,当且仅当有具名读者」— repo:objectui/repo:cloud on objectstack cards currently have none.
Deliverable (one PR, skills lane)
Give the seam queues a named reader, in the versioned protocol rather than seat-post prose: the repo:* seat's round-start probe (整车道一次读全) explicitly includes the objectstack seam query — list_issues on objectstack with the single label repo:<repo> (single-label per the OR-semantics trap row) — merged into the same candidate pool and priority ordering as the home-repo queue. Landing spot is the dev's call between the 多仓协调 rule in SKILL.md (one clause naming the reader) and references/seat-post-protocol.md (the repo-seat probe checklist); ratchet ceilings apply, fund by compression. The objectui/cloud seat posts' 范围 lines then update to match (one-line edits by their own seats, notified — not this PR's files).
Interim mitigation (already executed)
Cross-seat notice posted on the repo:objectui seat post naming the p0 and asking this shift to include the seam query until the protocol lands.
Constraints
.claude/skills/pm-dispatch/** ⇒ fable-mandatory (derive via --tier); ADR-class human merge; new text in Chinese, machine literals English; no issue numbers in operational text.
Scope extension (skills seat, session session_017TNzEetykdh7ceZGwuAPLq) — the maintainer asked how this problem class gets solved permanently (verbatim, untranslated: 「以后类似的问题要怎么解决」). Two riders added to this card's deliverable, forming the three-layer fix:
Stale-p0 detector (mechanical backstop): extend scripts/pm/check-half-states.mjs with a report-only detector — priority:p0 + open + unassigned + older than a threshold since last label/routing activity ⇒ flagged for the triage round brief and the decision box. A no-reader gap should never again be discoverable only by the maintainer asking; p0 volume is tiny, the scan is free. Self-tests extended per the file's convention.
One-time dead-letter audit (verification step, not code): as part of this card's verification, enumerate every circulating repo:* / domain:* label across the three repos against the seat posts' 范围 lines, and list any label with open stock but no declared reader in the report — clearing the whole class at once rather than per-incident.
File surface grows to include scripts/pm/check-half-states.mjs (+ self-tests) alongside the protocol-text half; still one card, one PR, fable (protocol half mandates it), ADR-class human merge.
Maintainer ruling recorded (skills seat live PM session, 2026-08-16, verbatim, untranslated) — presented with A (repo:* seat probes add the seam query) vs B (triage transfers cards to the fix-landing repo, seam exception tightened back to its criterion), the maintainer ruled:
用 B
Scope finalized accordingly (supersedes the probe half of the original body):
SKILL.md 多仓协调 rule tightening: file-at-destination executed strictly by the existing criterion (正文抽掉 objectstack 还成立 ⇒ transfer)— console/UI defects transfer to objectui at triage time, citing the rebuild recipe (出处头 + full-name refs + close source as moved); the seam-card category shrinks back to genuine coordination cards, which must name their reader in the card body rather than rely on a label queue. The 2026-08-10 file-at-destination ruling stays cited; this is enforcement, not a new rule.
Stale-p0 detector (scripts/pm/check-half-states.mjs, report-only, self-tests extended): priority:p0 + open + unassigned + stale since routing ⇒ flagged for the triage brief and decision box — the A/B-independent backstop.
Verification-step audit: enumerate circulating repo:*/domain:* labels against seat-post 范围 lines; list dead-letter labels AND the existing seam-card stock re-classified under the tightened criterion (the listing is the deliverable; actual transfers are triage bookkeeping post-merge).
Serial position: SKILL.md is a hot chain — this card queues behind the claim-section PR currently awaiting the maintainer's merge, then dispatches at chain head (fable, ADR-class human merge; the merge event auto-triggers dispatch). The interim mitigation (cross-seat notice + the p0 directive on the filterBuilder card) stands until then.
Bundle member claim — rides the on-hold protocol card as anchor (full claim, finalized scope, and the maintainer's 「用 B」/「确认,先处理 objectstack」 rulings recorded there; session session_017TNzEetykdh7ceZGwuAPLq). Overlapping file surface (SKILL.md + check-half-states.mjs) makes one PR the correct shape. Dispatches when the SKILL.md chain clears.
Activity
os-zhuang commentedon Aug 16, 2026
Scope extension (skills seat, session
session_017TNzEetykdh7ceZGwuAPLq) — the maintainer asked how this problem class gets solved permanently (verbatim, untranslated: 「以后类似的问题要怎么解决」). Two riders added to this card's deliverable, forming the three-layer fix:scripts/pm/check-half-states.mjswith a report-only detector —priority:p0+ open + unassigned + older than a threshold since last label/routing activity ⇒ flagged for the triage round brief and the decision box. A no-reader gap should never again be discoverable only by the maintainer asking; p0 volume is tiny, the scan is free. Self-tests extended per the file's convention.repo:*/domain:*label across the three repos against the seat posts' 范围 lines, and list any label with open stock but no declared reader in the report — clearing the whole class at once rather than per-incident.File surface grows to include
scripts/pm/check-half-states.mjs(+ self-tests) alongside the protocol-text half; still one card, one PR, fable (protocol half mandates it), ADR-class human merge.Generated by Claude Code
os-zhuang commentedon Aug 16, 2026
Maintainer ruling recorded (skills seat live PM session, 2026-08-16, verbatim, untranslated) — presented with A (repo:* seat probes add the seam query) vs B (triage transfers cards to the fix-landing repo, seam exception tightened back to its criterion), the maintainer ruled:
Scope finalized accordingly (supersedes the probe half of the original body):
scripts/pm/check-half-states.mjs, report-only, self-tests extended):priority:p0+ open + unassigned + stale since routing ⇒ flagged for the triage brief and decision box — the A/B-independent backstop.repo:*/domain:*labels against seat-post 范围 lines; list dead-letter labels AND the existing seam-card stock re-classified under the tightened criterion (the listing is the deliverable; actual transfers are triage bookkeeping post-merge).Serial position: SKILL.md is a hot chain — this card queues behind the claim-section PR currently awaiting the maintainer's merge, then dispatches at chain head (fable, ADR-class human merge; the merge event auto-triggers dispatch). The interim mitigation (cross-seat notice + the p0 directive on the filterBuilder card) stands until then.
Generated by Claude Code
os-zhuang commentedon Aug 16, 2026
Bundle member claim — rides the on-hold protocol card as anchor (full claim, finalized scope, and the maintainer's 「用 B」/「确认,先处理 objectstack」 rulings recorded there; session
session_017TNzEetykdh7ceZGwuAPLq). Overlapping file surface (SKILL.md + check-half-states.mjs) makes one PR the correct shape. Dispatches when the SKILL.md chain clears.Generated by Claude Code
docs(pm-dispatch): pm:on-hold is legal only with a machine-fireable R…
docs(pm-dispatch): predicate-form Restart-when lines run daily in the…
feat(pm): H11 important-parked inventory — Bug/security/priority card…
pm-dispatch: `pm:on-hold` legal only with a machine-fireable `Restart…