Repository navigation
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
Conversation
…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>
os-elon-musk
self-requested a review
October 23, 2026 12:53
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>
This was referenced Oct 23, 2026
… 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Elon · project thread
Fixes #25414
Clause-②: no
Metadata-protocol: none
维护者速读(草稿)
Reviewed-by:会话必须属于 PR 作者之外的账户(记录另带一行Reviewed-by-account:写复核账户的 login,须异于 PR 正文 attribution 的 github_login,与 check-governed-queue-guard: a PR landed from a project thread needs a review of record whose Reviewed-by session belongs to a different account from the PR's attribution github_login, else Tier S does not enqueue (maintainer's word 2026-10-23) #25415 队列守卫读的键一致);同账户的隔离子代理只算复核、不作落地记录;只动散文面的 PR 同样欠另一账户一条 TIER_DEFAULT 记录;过渡期没有另一账户在席时,仍以您本人在执行线程逐个点名 PR 编号为替代。②pm:mailbox信箱 PR 不欠 CI、永不入队、台账查询排除。③ 每个项目的巡查多一项:扫needs:contract-review的 open PR、剔除本账户署名的、留 Claim 形评论再复核、PASS 同笔摘标;总监席摘要列等候逾 24 小时的 PR。④ 分诊席缩为薄席:只做 objectstack、objectui 两仓裸卡的首触定级与路由、跨车道查重,只写标签与审计评论;半标卡归所属车道席补齐;应用仓无分诊席;发版板、pin 链、决策箱勤务移到总监席章程,fork PR 扫描与 hold 解锁重验移到车道巡查。⑤ 决策卡留在立卡仓,总监席扫全部仓的needs-user-decision按批呈您;pin 链扩到每个应用仓;新仓清单加 GOVERNED_REPOS、车队 App、车道宪章文件。project-forms.md)之后落地,pm-dispatch: project forms — lane project and director project, lanes read from the seat post's 🟢 line, the maintainer's one-sentence assignment, takeover of a walled account, mailbox PRs, generated roster board (maintainer's word 2026-10-23) #25412 已先合入,main 已并进本 PR,lanes/director.md 的 project-forms.md 指针与「直连无 Routine」那行核对后无需再改;② 分诊席的人工决裁底线(风险判据、工作量判据、人工地板、不呈清单)原文未动。What changed
Seven files under
.claude/skills/pm-dispatch/references/**plus the ceiling rows inscripts/pm/check-skill-line-ratchet.mjs; rule text only; every edited line is at or under 120 bytes.contract-review.md独立性对 (48 → 53, ceiling 60)--templateReviewed-by:from an account other than the PR author's: the record carries aReviewed-by-account:line (the reviewing session's login) besideReviewed-by:, and it must differ from the PR body attributiongithub_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-accountTIER_DEFAULTrecord. +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 nameslanding-operations.mdfor item 2, but the 落地前检两条 lines live here since the rules-only rewrite, so the text went where the rule islanding-operations.md入队与落地 (101, net 0)pm:mailbox: owes no CI, never queued, excluded from the landing ledger and orphan-PR queries; paid by folding 「外部评审链降为可选事后审计」 into the design-fork linedispatch-runbook.md(241, net 0)is:pr is:open label:needs:contract-reviewquery minus this account's attribution, theClaim:-shaped comment before reviewing, review percontract-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)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 inlanes/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 untouchedlanes/triage.md(7, net 0)lanes/director.md(70 → 87)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 atproject-forms.md(sibling card #25412)cross-repo-coordination.md(51, net 0)needs-user-decision呈批」; the new-repo checklist gainsGOVERNED_REPOS, the fleet App and the lane charter file, and names 「应用仓无分诊席」; paid by merging the 准入 and hotcrm-charter linesscripts/pm/check-skill-line-ratchet.mjstriage-duties.md120 → 103,lanes/director.md70 → 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 unchangedAcceptance 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
references/contract-review.mdreferences/landing-operations.mdreferences/dispatch-runbook.mdreferences/triage-duties.mdreferences/lanes/triage.mdreferences/lanes/director.mdreferences/cross-repo-coordination.mdSKILL.mduntouched (319/319). Widest edited line 120 bytes.Gates
On
eadbdfc(after mergingmainwith #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), soskip-changeset.Ordering and open PRs
project-forms.md): its PR merged first andmainis merged in here (clean, no conflict). The two spots re-read after that merge need no edit: theproject-forms.mdpointer inlanes/director.md职责四 now resolves to the file that card added, and the 授权面 line onmainalready reads 「直连 ⛔ 无 Routine/cron」, which leaves the project-run 总监席's hourly inbox scan and daily digest (project-forms.md例行) intact. Post-merge counts:SKILL.md318,lanes/director.md87,seat-lifecycle.md95.dispatch-runbook.md〈卡线程〉 L141–L142,lanes/director.mdL1), docs(pm-dispatch): a project-coordinator reference — the cross-lane scheduling rules a Claude Code project runs by, so its instructions name only its lanes #25255 (newcoordinator.md, runbook L136), docs(pm-dispatch): fold the engine, services and cli lanes into domain:server #25247 (lane files). This PR touches none of their hunks (runbook L39–L46, L52–L53, L64, L69–L70; director.md L22, L51, L68).Acceptance notes
record-recognisers.mjs --templaterun that shows where the account line goes;scripts/pm/record-recognisers.mjsis outside this claim's file surface (devx S card, same stroke as the queue-guard check). Until that lands, the reviewer adds theReviewed-by-account:line by hand besideReviewed-by:, ascontract-review.mdnow says; the key name is the one the check-governed-queue-guard: a PR landed from a project thread needs a review of record whose Reviewed-by session belongs to a different account from the PR's attribution github_login, else Tier S does not enqueue (maintainer's word 2026-10-23) #25415 queue guard reads, so the two PRs agree without waiting for the template change.seat-post-protocol.md发版板运维 still reads 「生产者:主仓归分诊座位」;seat-lifecycle.md〈座位贴协议〉 still says the triage round releases a silent claim, and its 轮次报告 line still counts disjunct ④. All three files are outside this claim's surface (and docs(pm-dispatch): a project-run seat form beside the Routine form — the seat post as a stub, the dispatch order in the card thread, event wake plus one patrol per project, 项目总监 → 总监席 #25385 edits the first two); one-line follow-ups for the seat: 「主仓归总监席」, 「由总监席摘要一笔中继释放」, 「析取④ → 车道席补齐」.RECLAIM_AFTER_HOURS,Release:) stay intriage-duties.mdbecauseseat-lifecycle.mdpoints there; line 5 of that file names the 总监席 digest as the run that executes them.os-dev.md〈干净收尾〉 forbids HTML comments in GitHub text. Reported as a deviation, not hidden.Governed surface
.claude/**(Tier S): draft, awaiting the seat'sCONTRACT_REVIEW_TIERreview 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