Skip to content

pm-dispatch: no seat gives objectstack-ai/cloud cards a first touch, frozen cards slip back into the queue, and the cloud unlock scan has no pin-ancestry probe #31332

Closed

Description

@objectstack-fleet

repo:cloud#2 · os-zhuang · session_0123kRqqdpAJWYMgsgdAJX4G

维护者速读

  • 11-08 盘点 cloud:110 张开放卡(cloud 88 + objectstack domain:cloud 22),能派的却很少。查下来有三个 skills 缺口,不是哪个座位偷懒。
  • ① 没人给 cloud 仓的新卡做首次分诊:分诊职责写「两仓」,那是 objectui 还在时的写法,分诊例行轮只跑 objectstack。cloud 有 6 张卡一直没有 pm:* 标签,最早的是 11-03。
  • ② 冻结只写在评论里、没有标签:ADR-0025 M2–M5 和 SDK 契约卡 10-28 冻结(「M1 做完,其余冻结」),后来一轮分诊把它们放回了 pm:queue(p1),差一点就被派发。
  • ③ 跨仓解锁没有可执行的探针:规则写「消费方可安装」才算解锁,但没写 cloud 怎么验。实际卡住的就是这一步:上游已关,修复却还不在 cloud 的 pin 里。
  • 改动只动 pm-dispatch 的 skills 文本,三条各一两行,不改脚本。

Filing gate: ① a defect with a named location (the skill text below). Raised by the maintainer, verbatim, in the cloud seat-2 thread, 2026-11-08 02:02Z: 「这些问题问什么分诊没处理?你处理完要和分诊沟通」 / 「是 skills 的问题吗?」.

Reader who acts: the domain:skills lane, as one PR on .claude/skills/pm-dispatch/**.

Dedupe: I searched label:domain:skills triage cloud (8 open, none on this) and 两仓 triage-duties (#15671 recorded the alternating-repo pickup and is closed; #25490 is closed). There are no hits for a cloud first-touch or a pin probe.

The three gaps, as measured on 2026-11-08

1. Cloud cards get no first touch

  • Where: references/triage-duties.md:8 says 「每日一 fire 跑两仓全量对账」, and lines 12–13 define the bare-card disjunct ① (全裸). Neither line names the repositories. The triage seat post [PM seat] triage (objectstack-wide) — 🟢 Routine · session_01AavokzJ5DndAwitDXvKy4U · trig_01NcnCtMS2tH46nUg1a5TaMJ (hourly) · state = body + the round records newer than it #6015 and its round records cover objectstack only. Every record says "Next fire: objectstack", and R973 and R974 are objectstack rounds.
  • Measured: these cloud cards had no pm:* label until the seat self-triaged them today:
    • cloud#3519, open since 11-03. It was a ruled decision whose execution cards were all closed.
    • cloud#3549, open since 11-03.
    • cloud#3552, open since 11-04. Its blocker cloud#3551 had been closed since 11-05.
    • cloud#3567, cloud#3635 and cloud#3659.
  • Fix: name the repositories in triage-duties.md:8: objectstack-ai/objectstack and objectstack-ai/cloud (objectui is archived). Then pick one of two:
    • (a) Run disjunct ① over cloud too. Triage only routes; it adds priority:* and pm:queue, because every cloud card belongs to the cloud lane.
    • (b) Say in SKILL.md that the cloud lane patrol owns first touch for its own repository.
      The cloud seat runs (b) from today in its hourly patrol, so writing (b) down costs nothing. (a) adds a second reader.

2. A freeze recorded only in a comment is undone by a later round

3. Cross-repo unlock for cloud has no probe

  • Where: references/state-machine.md (「跨仓解锁判据是消费方可安装 …」) names the rule, and SKILL.md:109 says a cross-repo close is never released automatically. Neither says how the cloud lane checks it.
  • Measured:
  • Fix: one line for the cloud lane's unlock scan. The probe is git merge-base --is-ancestor <fix-merge-sha> $(cat .objectstack-sha) in the objectstack checkout. Until it passes, the card's Blocked-by: moves to the pin-round card that will carry the fix.

Acceptance

Refs: objectstack#6015 (triage seat post)

Activity

  1. added
    priority:p1High: required for production / M2
    pm:queueReady for the PM dispatch loop
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    on Nov 8, 2026
  2. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: audit · p1 · domain:skills · confirmed · 2026-11-08T02:54Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    Claim: PM loop round 29 · 2026-11-08T03:04Z
    Session: session_01J8VVAj7CvjkGXvgXzd6RZ7
    Account: huangyiirene
    Branch: claude/project-thread-ocfz87 (the card thread's designated branch; dev session session_01J8VVAkshPHjkDucBpSLdam)
    Worktree: objectstack-issue-31332
    Domain: domain:skills
    Seat: domain:skills#3
    File surface: .claude/skills/pm-dispatch/SKILL.md; .claude/skills/pm-dispatch/references/triage-duties.md; .claude/skills/pm-dispatch/references/state-machine.md; .claude/skills/pm-dispatch/references/cross-repo-coordination.md; .claude/skills/pm-dispatch/references/dispatch-runbook.md (pointer target or same-file deletion only). Text only; every file inside its line ceiling, no raise; ⛔ no scripts/**, no AGENTS.md, no write to post #6015 (the seat posts that line after the merge) (stop on breach)
    Container & model: M, mode:thread, project-default model, effort: high. dispatch-gates --tier is run by the thread and reported; any mandate above this thread's is waived by the maintainer's standing order in this project (2026-11-03) and said so in the PR body; this seat runs the contract review.
    Clause-②: no
    Metadata-protocol: none
    Responsibility: .claude/skills/pm-dispatch (this repo) | none: no line names the repositories for first touch, none makes a freeze a label, none gives cloud an unlock probe | the triage seat and the repo:cloud seats, today
    Thread-read: 6716413688
    Premise: holds on main a2826a115: triage-duties.md L8 「跑两仓全量对账」 and disjunct ① L13 name no repository; state-machine.md L12-L15 make Restart-when: the only legal hold, with no line for a freeze ruling; the unlock rule is SKILL.md L137 with no cloud probe.
    Rulings: gap 1 takes shape (b) (the cloud lane's own patrol owns first touch for objectstack-ai/cloud); gap 2 takes (i) and (ii); gap 3 is one probe line, with the pin file's name confirmed or flagged.
    Serial constraints: none open. The seat runs serially (one card) by the maintainer's word of 2026-11-08; #31235 handed off (PR #31335 ACCEPT).

    skip-changeset. Fixes #31332. Tier read by check-governed-merges at the PR.

  4. added
    pm:dispatchedDispatched to a dev agent by /pm-dispatch
    and removed
    pm:queueReady for the PM dispatch loop
    on Nov 8, 2026
  5. objectstack-fleet commented on Nov 8, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#3 · huangyiirene · session_01J8VVAj7CvjkGXvgXzd6RZ7

    ACCEPT → PR #31347 comment 6716768029, head b0bc3c19. Tier S: the seat readied it and armed auto-merge. Contract review 6716750908 PASS with no must-fix. Line counts unchanged, no ceiling raise. The two should-fix items are filed as #31353. After the merge, the seat posts the new scope line on #6015.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:skillsDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions