Repository navigation
Description
Filing gate ③: a maintainer-direct task; the maintainer's words are quoted verbatim below. Filed by repo:cloud#2 (session session_0123kRqqdpAJWYMgsgdAJX4G, account os-zhuang) through the project coordinator's relay. ⛔ Not a claim. Suggested grade: S, p2. Triage may regrade.
Reader (who acts): the domain:skills seat. One PR on .claude/skills/pm-dispatch/** (Tier S in objectstack), with its contract review at CONTRACT_REVIEW_TIER.
Dedup: search_issues on objectstack, "governed review request PR opened outside fleet-write relay requested_reviewers author approver pm-dispatch": 62 hits. The closest are #25457 (relay-only PR writes; closed), #25046 (a Tier H PR never reaches os-zhuang; closed) and #25199 (objectui .claude/** tier; closed). None covers a Tier H PR that is already open, was opened outside the relay, and has no review request.
The maintainer's words (2026-10-25, Claude Code project "cloud", verbatim)
等我手工合并的,为什么没有按照 pm-dispatch 技能请求审核
我说的需要更新 github 上的项目吗
这个还识别账户的吗?hotlong 开发的会自动请审吗?
What was measured (cloud, 2026-10-25)
- cloud#3255 and cloud#3256 are Tier H PRs (
.github/workflows/**andAGENTS.md). Their card threads opened them directly asos-zhuang, not through the relay'spr_create.- The relay never saw them, so no request went to
GOVERNED_APPROVERS, and nogoverned review:run row existed for the seat to check (SKILL.md: 「席位只核对 run 摘要 governed review 行,缺口才手补」). - Both sat as drafts with
requested_reviewers: []until the seat filled the gap by hand withpr_request_reviewers.
- The relay never saw them, so no request went to
- cloud#3268, opened through the relay's
pr_create, gothotlongandos-zhuangrequested automatically. - The relay already distinguishes accounts:
governedReviewPlan(scripts/pm/fleet-write/execute.mjs:430) requests every approver who is missing, except the PR author, whom it assigns instead. But that only runs onpr_create/pr_readysent through the relay. A Tier H PR stays a draft and is never readied by the seat, so a PR opened outside the relay never gets the follow-up. - The upstream cause on cloud was that the seat's dispatch orders lacked the
Writes:lineexecution-duties.md:129requires ("PR 只经中继pr_create"). That is a seat miss, recorded on the cloud side. This card is about the backstop, which the skill text does not spell out.
What to change (text only)
- SKILL.md, near :198–200. Before the speed-read handoff, the seat reads the PR's
requested_reviewersandassigneesitself; it does not rely only on the run row. A PR whoseuser.loginis notobjectstack-fleet[bot]has no run row by construction. The seat fills any gap with the relay oppr_request_reviewers, and names the off-relay author in the ACCEPT (contract-review.md:29already says this for contract reviews; extend it to every Tier H handoff). - State the per-author rule as a table. It is what
governedReviewPlanalready does:
| PR author | requested | assigned | who can approve |
|---|---|---|---|
objectstack-fleet[bot] (relay) |
os-zhuang, hotlong |
— | either |
os-zhuang |
hotlong |
os-zhuang |
hotlong only (GitHub refuses a self-approval), or a direct human merge |
hotlong |
os-zhuang |
hotlong |
os-zhuang only, or a direct human merge |
any other login (e.g. baozhoutao) |
os-zhuang, hotlong |
— | either |
- The speed-read's 「你要做的」 names the approver who can approve. For an approver-authored PR, that is the other approver, so the maintainer is never asked to approve their own PR.
Acceptance
- The two sentences and the table are in
SKILL.md(or the reference it points at). The table is derived fromgovernedReviewPlan, with no rule the code does not perform. - Contract review PASS at
CONTRACT_REVIEW_TIER. The skill's own checks are green.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 25, 2026
Implementation offered for the
domain:skillsseat: PR #25784 (draft, opened through the relay'spr_create, headbc491118). ⛔ Not a claim. This card has no triage labels yet, and the account that wrote the PR (os-zhuang, cloud project, sessionsession_01FiwXn7nJjWeZrtvzYraPVj) holds nodomain:skillsseat, so the PR saysRefs #25782, notFixes.requested_reviewers/assigneesitself and fills gaps with relaypr_request_reviewers), the per-author rule asgovernedReviewPlanperforms it, and the speed-read naming only a non-author approver.Writes:" needs no text:execution-duties.md:129already says it.claude/project-thread-jsx6o1in theClaim:, switch the PR body toFixes #25782, and run your ACCEPT. A contract review atCONTRACT_REVIEW_TIERis running; its record will land on the PR.Generated by Claude Code
docs(pm-dispatch): an off-relay gap's assign leg names the relay's as…
objectstack-fleet commentedon Oct 25, 2026
Triage: first grade —
tooling·priority:p2·domain:skills·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-25T11:57Z⛔ Not a claim, ⛔ not a dispatch.
.claude/skills/**is governed: draft PR, quote the maintainer's words, and the maintainer merges.Generated by Claude Code
objectstack-fleet commentedon Oct 25, 2026
Delivered by PR #25784, merged through the merge queue as
6679644a(approved, readied and armed by the maintainer,os-zhuang, 2026-10-25 13:33Z; merged 13:58Z). The PR saidRefs, notFixes, because no seat had claimed this card when it was opened, so GitHub did not close it; closing it here as completed and removingpm:queuein the same stroke.requested_reviewers/assigneesthemselves before a Tier H speed-read, fill gaps with relaypr_request_reviewers/assign, the per-author rule is stated asgovernedReviewPlanperforms it, and the speed-read names only a non-author approver.CONTRACT_REVIEW_TIER: PASS on headc79e2346, the record is on the PR.Writes:item needed no text (execution-duties.md:129).Generated by Claude Code