Skip to content

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

Open

Description

@objectstack-fleet

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

Wanted

  1. 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.
  2. 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.
  3. 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 on main. 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.
  4. Align with the human floor and keep its text verbatim; the new lines point at it rather than restating it.

Acceptance

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

  1. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    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-decision to 「待决策汇总」, 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 of domain:skills seat 2, seat session session_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:skills
    Seat: 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.md only if a line is paid in the same file; scripts/pm/check-skill-line-ratchet.mjs ceiling 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 other scripts/** (an issue-template or lint change is a devx card). ⛔ The human-ruling floor in triage-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 through post-stamped.mjs, label-write.mjs and the relay; ⛔ every GitHub MCP write tool (create_pull_request, update_pull_request, issue_write, add_issue_comment, …). In this project the repo's settings.json deny 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 --tier on .claude/skills/pm-dispatch/**: "MANDATORY"), effort: high (M). Governed surface .claude/** is Tier S: a CONTRACT_REVIEW_TIER PASS 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 main d44c8936b1. PR #25422 (card #25414: lanes/triage.md, triage-duties.md 120→103, dispatch-runbook.md) is in the merge queue — build on it: merge main once it lands, before your first push. PR #25474 (card #25457) edits dispatch-runbook.md 〈卡线程〉; card #25490 (queued) edits five stale triage lines in seat-post-protocol.md, seat-lifecycle.md, cross-repo-coordination.md. Keep out of their hunks and merge main before asking for review.


    Generated by Claude Code

  2. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim addendum · 2026-10-23T16:50Z · domain:skills#2 · session_01REMuzhz6MWRjg8uohedMnM · supersedes the File surface line of claim 6370029859 for branch claude/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-labelled domain:* 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.md only if a line is paid in the same file; scripts/pm/check-skill-line-ratchet.mjs ceiling 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

  3. objectstack-fleet commented on Oct 24, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim addendum · 2026-10-24T00:08Z · domain:skills#2 · session_01REMuzhz6MWRjg8uohedMnM · amends the File surface of claim 6370029859 (as widened by 6370094728) for branch claude/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.md L172 (the self-labelled-card 例外二 line), rewritten in place, line-neutral. The human floor's own 例外二 in triage-duties.md stays byte-identical.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions