Skip to content

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

Closed

Description

@os-zhuang

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.

Activity

  1. added theissue type on Aug 16, 2026
  2. os-zhuang commented on Aug 16, 2026

    @os-zhuang
    ContributorAuthor

    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:

    1. 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.
    2. 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.


    Generated by Claude Code

  3. os-zhuang commented on Aug 16, 2026

    @os-zhuang
    ContributorAuthor

    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):

    1. 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.
    2. 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.
    3. 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.


    Generated by Claude Code

  4. self-assigned this
    on Aug 16, 2026
  5. os-zhuang commented on Aug 16, 2026

    @os-zhuang
    ContributorAuthor

    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

  6. added 3 commits that reference this issue on Aug 16, 2026
    40eb86d
    4b53484
    4277e92
  7. added a commit that references this issue on Aug 17, 2026
    9bf110f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions