Repository navigation
pm-dispatch: every card carries a business rationale the 分诊席 judges (clear → queue, missing → back to filer, product trade-off → decision), and a seat verifies a card's premise before dispatch (maintainer's word 2026-10-23) #25507
Description
Filing gate ③: a maintainer-direct task, the maintainer's words quoted verbatim. Filed by domain:skills seat 2 (seat post #19287, session session_01REMuzhz6MWRjg8uohedMnM, account os-elon-musk) on the project coordinator's relay of the maintainer's word in the Claude Code project "Objectstack". ⛔ Not a claim. Lane self-applied under exception 二; grade suggested M, p2; triage may regrade.
Reader (who acts): the domain:skills seat, one PR on .claude/skills/pm-dispatch/** (Tier S) plus ratchet ceiling rows. Contract review at CONTRACT_REVIEW_TIER.
The maintainer's words (2026-10-23, project chat, verbatim)
目前 issue 在派发的之前,有谁在评估合理性吗 (16:43:10Z)
判断不了的是否应该转决策 (16:43:22Z)
我说的是业务需求上的合理性,谁来判断 (16:44:00Z)
立卡 (16:44:29Z — the answer to the coordinator's proposal below)
The coordinator's proposal he answered (16:43:30Z and 16:44:10Z, quoted as context, not as his words):
席位派发前先用子代理核实前提。核实成立就派;不成立、但改法明确的,就改卡后再派;判断不了的,转决策,不占卡线程名额。
立卡门加一栏「业务理由」:谁受益、什么场景、不做会怎样。分诊席按这一栏判断:理由清楚、和既定产品方向一致的,正常定级入队;理由缺失或站不住的,退回立卡人补;涉及产品取舍、方向不明的,转「待决策汇总」给你。审计类批量立的卡,抽样给你过目,不是全部。
What is true today
- Nobody judges a card's business reasonableness. A card from an outside issue, an audit batch (hotcrm#2194 filed 43 at once) or a seat's own filing is taken as a valid need. Triage sets lane and grade; the seat checks the card is complete; the card thread checks technical premises.
- The only business-level path to the maintainer is the human-ruling floor in
references/triage-duties.md(director batch Implement ObjectStack protocol specification with Zod schemas and TypeScript interfaces #3, pm-dispatch: revoke every autonomous-adjudication channel — a seat analyses and recommends, everyneeds_decisiongoes to the maintainer's director ruling batch (maintainer's word 2026-10-23) #25344 comment 6356061991), whose classes include 「一张卡的去留」, product behaviour, defaults and permissions. - A card thread that finds a false premise stops and routes to 「待决策汇总」 — after a card-thread slot was spent.
Wanted
- Filing gate (
references/filing-gate.md): a 「业务理由」 field on every card — who benefits, in what scenario, what happens if it is not done. Seat-filed and audit-filed cards carry it too. - The 分诊席 judges it (
references/lanes/triage.md,references/triage-duties.md): rationale clear and consistent with the product direction ⇒ grade and queue as today; rationale missing or does not hold ⇒ back to the filer to complete (a comment, the card stays open); a product trade-off or unclear direction ⇒needs-user-decision, to 「待决策汇总」. Audit batches: a sample goes to the maintainer, not every card. ⛔ The 分诊席 never closes a card on business grounds by itself: a card's fate stays on the human floor. - Seat verifies the premise before dispatch (
references/dispatch-runbook.md): before claiming, the seat has a subagent spend a few minutes checking the card's technical premise onmain. Holds ⇒ dispatch; false but the fix to the card is clear ⇒ correct the card (a comment saying what changed), then dispatch; cannot judge ⇒ to 「待决策汇总」, no card-thread slot used. - Align with the human floor and keep its text verbatim; the new lines point at it rather than restating it.
Acceptance
- The files above carry the text;
pnpm check:pm-skill-ratchet,check:pm-skill-id-lint,check:skill-frame-sync,check:skill-frame-freshnessgreen; the human floor intriage-duties.mdbyte-identical tomain. - Serial:
references/dispatch-runbook.mdandtriage-duties.mdare also edited by PR docs(pm-dispatch): the Writes: line names the relay as the only GitHub write path and bans GitHub MCP writes by name; the card thread's opening message carries it verbatim; contract review notes a PR not authored by the fleet bot #25474 (card pm-dispatch: card threads write to GitHub only through the relay (pr_createand the other ops), never GitHub MCP; the dispatch order carries that line verbatim; review flags a PR not authored by the fleet bot (maintainer's word 2026-10-23) #25457) and card pm-dispatch: after the thin 分诊席 (#25414) lands, five lines elsewhere still give triage its old duties (seat-post liveness, main-repo producer, the 析取④ reference, the release-by-triage step, central grading) #25490; start frommainafter 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 (card pm-dispatch: Tier S PR landed from a project needs a contract-review record by another account; triage shrinks to bare cards in the director project; decision cards stay in their repo, the director scans every repo (maintainer's word 2026-10-23) #25414) lands, and mergemainbefore review. - Writes: PR only through the relay's
pr_create; ⛔ GitHub MCP writes. - Tier S landing: review PASS + green checks, under the maintainer's standing word of 2026-10-23 14:14Z in the skills seat thread.
Dedupe
MCP search_issues, objectstack, "filing gate business rationale who benefits, triage judges requirement reasonableness, seat verifies premise before dispatch" → 25 hits; top: #24589 (closed, triage completes self-labelled cards' filing-gate answers), #23733 (closed, seat accepts self-labelled cards, triage spot-checks), #25490 (open, stale triage lines), #24610 (closed, finding without reach:), #23478 (closed, tooling-card admission by measured cost). None adds a business-rationale field or a pre-dispatch premise check. New.
Dedupe words: 业务理由 filing gate · 分诊席 business reasonableness · pre-dispatch premise check.
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 23, 2026
Claim: PM loop round 1 (card thread) · 2026-10-23T16:47Z · p2,
tooling,domain:skills. Writes the maintainer's 2026-10-23 16:43–16:44Z words quoted on the card (「我说的是业务需求上的合理性,谁来判断」, 「立卡」, 「并且立刻派发」): a 「业务理由」 field in the filing gate that the 分诊席 judges (clear ⇒ queue, missing ⇒ back to the filer, product trade-off ⇒needs-user-decisionto 「待决策汇总」, audit batches sampled), and a seat-side premise check before dispatch (holds ⇒ dispatch, clear fix ⇒ correct the card then dispatch, cannot judge ⇒ to 「待决策汇总」 with no card-thread slot).Session:
session_014kfbihfYYkWDWee41PM2Gn(card thread ofdomain:skillsseat 2, seat sessionsession_01REMuzhz6MWRjg8uohedMnM)Account:
os-elon-musk(the seat's linked user; always the card's assignee)Branch:
claude/project-thread-5m809k(the card thread's designated push branch, platform-assigned at thread creation and read by the seat from the thread's session record per ruling 1A of #25379; the thread checks that this newest claim names its branch before it starts)Worktree: the card thread's own checkout
Domain:
domain:skillsSeat:
domain:skills#2(seat post #19287)File surface:
.claude/skills/pm-dispatch/references/filing-gate.md,references/lanes/triage.md,references/triage-duties.md(outside the human floor),references/dispatch-runbook.md(the pre-dispatch step);.claude/skills/pm-dispatch/SKILL.mdonly if a line is paid in the same file;scripts/pm/check-skill-line-ratchet.mjsceiling rows. (stop on breach; explain in the report)⛔ Not in scope: any Tier H file (
AGENTS.md,CLAUDE.md,docs/**,skills/**,.github/workflows/**, CODEOWNERS); any otherscripts/**(an issue-template or lint change is a devx card). ⛔ The human-ruling floor intriage-duties.md(director batch #3, #25344 comment 6356061991) stays byte-identical; new lines point at it. ⛔ The 分诊席 never closes a card on business grounds by itself (「一张卡的去留」 is on the floor). ⛔ No rule text names a login.Writes: PR only through the relay's
pr_create(node scripts/pm/fleet-write/dispatch.mjs); comments, labels and body edits only throughpost-stamped.mjs,label-write.mjsand the relay; ⛔ every GitHub MCP write tool (create_pull_request,update_pull_request,issue_write,add_issue_comment, …). In this project the repo'ssettings.jsondeny does not load, so this line is the guard.Container & model:
M,mode:thread(the maintainer's word: one project thread per M-or-larger card; 「并且立刻派发」),model: CONTRACT_REVIEW_TIER(dispatch-gates.mjs --tieron.claude/skills/pm-dispatch/**: "MANDATORY"),effort: high(M). Governed surface.claude/**is Tier S: aCONTRACT_REVIEW_TIERPASS record on the PR's head plus all-green checks; the seat lands it under the maintainer's standing Tier S word of 2026-10-23 14:14Z in the seat thread (the ① substitute per ruling A on #25414, comment 6369035432).Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card (a maintainer word not yet written into the skill)
Thread-read: none
Serial constraints cleared: start from
maind44c8936b1. PR #25422 (card #25414:lanes/triage.md,triage-duties.md120→103,dispatch-runbook.md) is in the merge queue — build on it: mergemainonce it lands, before your first push. PR #25474 (card #25457) editsdispatch-runbook.md〈卡线程〉; card #25490 (queued) edits five stale triage lines inseat-post-protocol.md,seat-lifecycle.md,cross-repo-coordination.md. Keep out of their hunks and mergemainbefore asking for review.Generated by Claude Code
objectstack-fleet commentedon Oct 23, 2026
Claim addendum · 2026-10-23T16:50Z ·
domain:skills#2·session_01REMuzhz6MWRjg8uohedMnM· supersedes the File surface line of claim 6370029859 for branchclaude/project-thread-5m809k; every other line of that claim stands.Why: the maintainer added, at 2026-10-23T16:44Z in the Claude Code project "Objectstack": 「而且分诊应该所有卡都分诊,因为有的车道在立卡的时候就打上了标签。」 — the 分诊席 judges every card, including cards a lane self-labelled at filing. This widens the scope beyond PR #25422's bare-cards-only reading.
File surface:
.claude/skills/pm-dispatch/references/filing-gate.md,references/lanes/triage.md,references/triage-duties.md(outside the human floor),references/dispatch-runbook.md(the pre-dispatch step); added:references/execution-duties.md(the self-labelleddomain:*card candidate line),references/lanes/skills.md(the line where the lane's own findings skip triage),references/cross-repo-coordination.md(the 「机械三务」 line);.claude/skills/pm-dispatch/SKILL.mdonly if a line is paid in the same file;scripts/pm/check-skill-line-ratchet.mjsceiling rows. (stop on breach; explain in the report)Serial note: card #25490 (queued) also edits
cross-repo-coordination.md(L7, central grading); keep to the 「机械三务」 line and say so in the PR body. The human floor and every ⛔ line of the claim stand unchanged.Generated by Claude Code
objectstack-fleet commentedon Oct 24, 2026
Claim addendum · 2026-10-24T00:08Z ·
domain:skills#2·session_01REMuzhz6MWRjg8uohedMnM· amends the File surface of claim 6370029859 (as widened by 6370094728) for branchclaude/project-thread-5m809k; every other line stands.Why: the review of record 6377274688 on PR #25552 (③-3) found the SKILL.md L172 例外二 rewrite outside the claim's conditional SKILL.md surface. It follows from the maintainer's 2026-10-23T16:44Z word 「而且分诊应该所有卡都分诊,因为有的车道在立卡的时候就打上了标签。」, so the seat names it here.
Added to File surface:
.claude/skills/pm-dispatch/SKILL.mdL172 (the self-labelled-card 例外二 line), rewritten in place, line-neutral. The human floor's own 例外二 intriage-duties.mdstays byte-identical.Generated by Claude Code