Skip to content

docs(pm-dispatch): Tier S landed from a project needs a review of record by another account; the 分诊席 shrinks to bare cards; decision cards stay in their repo and the 总监席 scans every repo - #25422

Draft
objectstack-fleet[bot] wants to merge 4 commits into
mainfrom
claude/project-thread-e8y326

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Elon · project thread

Fixes #25414

Clause-②: no
Metadata-protocol: none

维护者速读(草稿)

What changed

Seven files under .claude/skills/pm-dispatch/references/** plus the ceiling rows in scripts/pm/check-skill-line-ratchet.mjs; rule text only; every edited line is at or under 120 bytes.

File Before After
contract-review.md 独立性对 (48 → 53, ceiling 60) the pair is read off --template +3: a project seat's Tier S landing needs a Reviewed-by: from an account other than the PR author's: the record carries a Reviewed-by-account: line (the reviewing session's login) beside Reviewed-by:, and it must differ from the PR body attribution github_login (the same key and comparison the #25415 queue guard reads); a same-account isolated subagent is a review, not the record; a prose-only PR owes one cross-account TIER_DEFAULT record. +2 beside 落地前检: ① gains the account condition for project seats; the interim rule while no other account is seated is the maintainer's own message naming each PR number. The card names landing-operations.md for item 2, but the 落地前检两条 lines live here since the rules-only rewrite, so the text went where the rule is
landing-operations.md 入队与落地 (101, net 0) — +1 pm:mailbox: owes no CI, never queued, excluded from the landing ledger and orphan-PR queries; paid by folding 「外部评审链降为可选事后审计」 into the design-fork line
dispatch-runbook.md (241, net 0) 〈座位贴活性巡查(分诊轮常设项)〉, six lines run by the triage Routine 〈巡查常设项(每项目巡查与总监席摘要)〉: seat-post liveness goes to the 总监席 digest (3 lines, same tests); the cross-account review pass (3 lines: the is:pr is:open label:needs:contract-review query minus this account's attribution, the Claim:-shaped comment before reviewing, review per contract-review.md, strip the marker on PASS, the digest lists PRs waiting over 24 h); the lane patrol takes hold/closed re-validation and the fork-PR sweep (1 line). Paid by merging two 读数成本 lines. 〈分诊两级盘点细则〉: 四仓 → 两仓; Restart-when: batch scan → lane patrol, inbox back-fill → 总监席; sweep disjuncts ①②③ → ①②
triage-duties.md (120 → 103) the full triage duty list the seat keeps bare-card first touch and cross-lane dedupe; disjunct ② stays (queue label, no domain), the half-labelled ③④ go to the owning lane seat; 全仓 → 两仓; the fork-PR sweep, the pin chain (6), the decision-inbox duties (3), the closed/Restart-when: re-validation (2) and the release board (5) leave; line 5 names where the release board and pin chain went (总监席 digest, details now in lanes/director.md) and that the in-flight liveness re-check goes to the same digest with its details staying here. Lines 95–120 (人工地板, 风险判据, 工作量判据, 不呈 list, 例外一/二) are untouched
lanes/triage.md (7, net 0) pickup alternation and the starvation guard summoned by the maintainer's sentence into any project, by default beside the 总监席; labels and audit comments only, no PR, no claim; scope = objectstack/objectui bare cards + cross-lane dedupe, app repos have no triage seat; the alternation, 4 h starvation guard, no-second-seat and no-frequency-change rules kept
lanes/director.md (70 → 87) 决裁勤务 inbox line +1 授权与形态: the 分诊席 is summoned beside this seat by default, its hourly run may share the inbox scan. 职责二 +2: the inbox is every repo's needs-user-decision, cards stay in the repo they were filed in; the two 入箱勤务 lines moved from triage-duties. New 职责四 (+12): the daily digest line (in-flight / awaiting ruling / awaiting landing / wall notes, PRs waiting over 24 h for review, release board, pin lag, cardless fork PRs); seat-post and in-flight liveness; the release board (5 lines moved, main-repo producer now this seat); the pin chain (3 lines, extended to every app repo); the roster regenerated by the digest, pointing at project-forms.md (sibling card #25412)
cross-repo-coordination.md (51, net 0) 「决策收件箱按仓:平台在 objectstack / objectui,元数据项目在本仓」 「决策卡留在立卡仓,总监席扫全部仓 needs-user-decision 呈批」; the new-repo checklist gains GOVERNED_REPOS, the fleet App and the lane charter file, and names 「应用仓无分诊席」; paid by merging the 准入 and hotcrm-charter lines
scripts/pm/check-skill-line-ratchet.mjs — triage-duties.md 120 → 103, lanes/director.md 70 → 87, declared as one CROSS_FILE_MOVE (destination director.md, was 70; source triage-duties.md, was 120): +17 against a net source decrease of 17, map total unchanged

Acceptance checks on this head: git grep -n '决策收件箱按仓' -- .claude/skills → no hit; git grep -n 'os-bill\|hotlong\|os-elon-musk' -- .claude/skills/pm-dispatch/references/ → no hit; no rule line names a login.

Line budget

File Lines Ceiling Net
references/contract-review.md 53 60 +5 (headroom was 12)
references/landing-operations.md 101 101 0 (+1 −1)
references/dispatch-runbook.md 241 241 0 (+1 −1, 4 edited in place)
references/triage-duties.md 103 103 (was 120) −17
references/lanes/triage.md 7 7 0 (rewritten)
references/lanes/director.md 87 87 (was 70) +17 (cross-file move)
references/cross-repo-coordination.md 51 51 0 (+1 −1, 1 edited)

SKILL.md untouched (319/319). Widest edited line 120 bytes.

Gates

On eadbdfc (after merging main with #25427): pnpm check:pm-skill-ratchet ✓ (self-test 164 cases; declared cross-file moves 3, total ceilings down 488; every covered file at or under its ceiling), pnpm check:pm-skill-id-lint ✓ (87 files clean), pnpm check:skill-frame-sync ✓, pnpm check:skill-frame-freshness ✓, scripts/check-commit-card-trailers.mjs --range origin/main..HEAD ✓. No published package moves (.claude/** and one ceiling file), so skip-changeset.

Ordering and open PRs

Acceptance notes

Governed surface .claude/** (Tier S): draft, awaiting the seat's CONTRACT_REVIEW_TIER review and the maintainer's word; ⛔ not to be flipped ready, queued or armed by this thread.

🤖 Generated with Claude Code

https://claude.ai/code/session_011XvnQKt7WvdyvD2X4DLc8R

…ord by another account; the 分诊席 shrinks to bare cards; decision cards stay in their repo and the 总监席 scans every repo

Rule text only, on the maintainer's word of 2026-10-23.

- contract-review.md: a project seat's Tier S landing needs a `Reviewed-by:`
  session from an account other than the PR author's (attribution login and
  relay sender); a same-account subagent is a review, not the record; prose-only
  PRs owe one cross-account TIER_DEFAULT record; the interim rule while no other
  account is seated is the maintainer's own message naming each PR.
- landing-operations.md: `pm:mailbox` PRs owe no CI, are never queued and are
  excluded from the landing ledger queries.
- dispatch-runbook.md: the patrol section becomes 〈巡查常设项〉: seat-post
  liveness goes to the 总监席 digest, every project's patrol runs the
  `needs:contract-review` pass (claim-shaped comment, review, strip on PASS),
  the lane patrol takes hold/closed re-validation and the fork-PR sweep.
- triage-duties.md / lanes/triage.md: the 分诊席 keeps bare-card first touch
  and cross-lane dedupe on objectstack and objectui only; half-labelled cards
  go to the owning lane seat; app repos have no triage seat; the release board,
  pin chain and decision-inbox duties move to lanes/director.md (declared
  cross-file move 120→103 / 70→87); the human-ruling floor is untouched.
- lanes/director.md: the inbox is every repo's `needs-user-decision`, cards
  stay where filed; the thin triage pairing, the daily digest, the release
  board, the pin chain extended to every app repo, the roster pointer.
- cross-repo-coordination.md: 「决策收件箱按仓」 replaced; the new-repo
  checklist gains GOVERNED_REPOS, the fleet App and the lane charter file.

Claude-Session: https://claude.ai/code/session_011XvnQKt7WvdyvD2X4DLc8R
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 23, 2026
@os-elon-musk
os-elon-musk self-requested a review October 23, 2026 12:53
@github-actions github-actions Bot added size/m documentation Improvements or additions to documentation labels Oct 23, 2026
The contract-review independence lines now say the record carries a
Reviewed-by-account: line (the reviewing session's login) beside
Reviewed-by:, and pre-landing check 1 compares it to the PR attribution
login, matching the key the queue guard reads.

Claude-Session: https://claude.ai/code/session_011XvnQKt7WvdyvD2X4DLc8R
Co-authored-by: Claude <noreply@anthropic.com>
… details

The release board and pin chain details moved to the director charter,
so the pointer line says where they went; only the in-flight liveness
re-check keeps its details in this file. Same line count and under the
byte width.

Claude-Session: https://claude.ai/code/session_011XvnQKt7WvdyvD2X4DLc8R
Co-authored-by: Claude <noreply@anthropic.com>

This branch has not been deployed

No deployments
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/m skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants