Skip to content

pm-dispatch(review): the seat requests the approvers in the same round as its ACCEPT, large-diff PRs included, and never reports "awaiting approval" before the request is sent - #30045

Merged
os-zhuang merged 1 commit into
mainfrom
claude/project-thread-qz77oc
Nov 4, 2026
Merged

os-zhuang merged 1 commit into
mainfrom
claude/project-thread-qz77oc

Conversation

@os-support-ai

Copy link
Copy Markdown
Collaborator

Requested by Yibo Wang · project thread

No card: maintainer-directed in the project thread (「修改 pm-dispatch/os-dev 技能」, after 「为什么等我批的现在没有推送給 os-zhuang,是技能的问题吗」).

维护者速读

What changes

.claude/skills/pm-dispatch/SKILL.md, three lines rewritten in place (319 lines before and after, each ≤120 bytes):

  • L197, step ③: the approver request (pr_request_reviewers) goes out in the same round that the seat's ACCEPT and a same-head contract PASS are both on record, not "after" at some later point.
  • L187, the >3000-line rule: it already swaps ACCEPT for the four end-of-review steps with no Tier S exception; it now names step ③ explicitly, so L198's "Tier S hands off to nobody" no longer reads as covering a large diff on ungoverned paths (the split PRs).
  • L201, step ④: the round report reads the requested reviewers live, and a seat never reports a PR to the maintainer in chat as awaiting approval before the request is on the PR; it sends the request first.

os-dev.md is unchanged: a dev's pr_create still carries no assignees and requests nobody. That is the rule the maintainer asked for on 2026-10-29 (「这个是技能的bug,应该是开发完了你审核通过才会推送给我审核」, 「审核人是 os-zhuang 和 hotlong」), landed in #27385, and this PR keeps it. Only the seat-side hand-off is tightened.

Why

Measured on 2026-11-04 ~10:10Z, the six PRs reported in chat as waiting for the maintainer:

PR Seat ACCEPT on current head PASS on current head Requested reviewers before os-zhuang review
#29968 yes yes none APPROVED
#30004 yes yes none APPROVED
#30028 yes (09:11Z) yes none none
#29993 (35,227 lines) no no (PASS names an older head) none none
#29998 (24,422 lines) no no none none
#30030 no yes none none

#30028 was a due hand-off with no request. The two splits are over 3000 lines and owe the same end-of-review steps, but L198's "Tier S hands off to nobody" plus a patrol (H43) that reads only register paths left them with no request and no warning. As a one-off, os-zhuang was requested on #30028, #29993, #29998 and #30030 from the project thread; #29968 and #30004 already carry an os-zhuang approval, so they wait on the seat's landing, not on a review.

Out of scope, follow-up if wanted: H43 in scripts/pm/check-half-states.mjs reads governed-register PRs only, so it cannot flag a >3000-line PR whose request is missing.

Verification

The 20 commands node scripts/pm/dispatch-gates.mjs --commands derives for this diff, run on head 262327bc, all exit 0 (pnpm --filter @objectstack/lint run check:doc-formula-expressions after turbo run build --filter=@objectstack/formula --filter=@objectstack/lint). Key lines:

  • check-skill-line-ratchet: green, SKILL.md at its 319 ceiling.
  • check-skill-id-lint: 110 files clean.
  • check-skill-frame-sync and check-governed-prose: green.

Clause-②: no
Metadata-protocol: none

Human Minimum

  • 1. Schemas start as Zod; packages/spec holds no runtime logic. (not touched)
  • 2. Every name I added uses the casing for its kind. (none added)
  • 3. No formatter ran; pnpm lint passes. (no formatter ran; pnpm lint not run for a three-line skill text edit)
  • 4. One issue, one branch off an up-to-date main, one pull request.
  • 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset. (nothing publishes; skip-changeset)
  • 6. packages/spec touched: its generated artifacts are regenerated and committed. (not touched)
  • 7. No hand edits to content/docs/references/, packages/*/CHANGELOG.md or content/docs/releases/.
  • 8. Title, body and comments are in English. (the 维护者速读 block is Chinese by the skill's own rule)
  • The Before Submitting list in CONTRIBUTING.md is done.

Generated by Claude Code

…as the seat's ACCEPT, a large-diff PR is requested too, and a seat never reports "awaiting your approval" before the request is on the PR

The hand-off rule (path fork step 3) already makes the review request the
seat's own stroke after ACCEPT + a same-head contract PASS. Measured on the
open PRs: a PR whose ACCEPT and PASS were both on its current head carried
no requested reviewer, and the >3000-line split PRs, which take the same
end-of-review steps, carried none either, while the chat told the
maintainer they were waiting for approval.

- Step 3: the request is sent in the same round the record completes.
- The >3000-line rule names step 3 explicitly, so "Tier S hands off to
  nobody" no longer reads as covering a large ungoverned diff.
- Step 4: the round report reads the requested reviewers live, and a seat
  does not report a PR as awaiting approval before the request is sent.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WGufzgFA14BKgQ96yvMZbA
@os-support-ai os-support-ai added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Nov 4, 2026 — with Claude
@os-support-ai os-support-ai self-assigned this Nov 4, 2026
@github-actions github-actions Bot added size/xs documentation Improvements or additions to documentation labels Nov 4, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review November 4, 2026 10:34
@os-zhuang
os-zhuang enabled auto-merge November 4, 2026 10:34
@os-zhuang
os-zhuang added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit b0c2209 Nov 4, 2026
46 checks passed
@os-zhuang
os-zhuang deleted the claude/project-thread-qz77oc branch November 4, 2026 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants