Skip to content

pm-dispatch: a project-run seat form — seat post as a stub, posture and ledger in the Claude Code project, dispatch order in the card thread, branch named before the thread opens; 项目总监 → 总监席 (maintainer's word 2026-10-23) #25379

Closed

Description

@objectstack-fleet

Ruled: 6363872862 · batch #4 letters 1 A · 2 A · 2026-10-23T11:29:31Z (item 3 of this card's Wanted list is ruled as letter A there; item 3 of the batch is hotcrm#2252)

Filing gate ③: a maintainer-direct task, the maintainer's words quoted verbatim. Filed from the Claude Code project "Objectstack" (account os-elon-musk) by the research thread 车队机制迁往 Projects on the maintainer's word there. ⛔ Not a claim. Lane self-applied under exception 二 (.claude/**, the lane table's domain:skills row); grade suggested p2; triage may regrade.

Reader (who acts): the domain:skills seat 2 (seat post #19287), in one PR on .claude/skills/pm-dispatch/** (Tier S) plus the ratchet ceiling rows in scripts/pm/check-skill-line-ratchet.mjs. The card thread runs at CONTRACT_REVIEW_TIER.

The maintainer's words (2026-10-23, the project's thread 车队机制迁往 Projects, verbatim)

The research memo (五张决裁卡, recommended letters 「1B 2A 3B 4B 5B」, plus section 9 on naming and skill loading) was presented at 04:03Z and 04:28Z. The maintainer answered:

同意,你现在就立卡派发处理。

Earlier in the same thread, the facts this card rests on:

我现在测试下来 claude code projects 非常好用,拍一个fable调研一下我们之前的车队机制改如何优化以及尽量过渡到 projects 模式。
我的车队还有一个核心痛点是我有很多claude code 20x账户,分别在运行。
现在的命名也有问题,Claude code 叫projects,我们之前有一个项目总监

What was measured (this project, 2026-10-22 14:22Z – 10-23 03:46Z)

Wanted

A project-run seat form in pm-dispatch, beside the Routine-seat form, chosen when the seat session is a project thread (the mode:thread condition already in dispatch-runbook.md 〈卡线程〉):

  1. Seat post = stub. Body holds only: seated account · the project's name · seating time · the hot-file serial queue · one pointer line 「posture and ledger live in the project」 · an optional wall note (「本席撞墙,预计 HH:MM 恢复」). Posture, inherited ledger, shift narrative and round reports are ⛔ not written to the post. Title, assignee and the seating audit comment stay as today. Hand-over to ANOTHER account still writes the clock-out brief comment (that is the one cross-account read).
  2. Dispatch order rides the card thread's opening message, written by the coordinator when it opens the thread; /mnt/project-files/<seat>/dispatch-<N>.md is no longer required; the card's dispatch comment keeps one pointer line.
  3. Branch named before the thread opens. The seat claims first (assignee + pm:dispatched + Claim: naming the branch the coordinator will give the thread), then asks for the thread; the thread verifies the newest Claim: names its branch as today and starts at once. Ruled 2026-10-23 (comment 6363872862, letter A): the branch is platform-assigned at thread creation and cannot be named beforehand; the coordinator reads it from the new thread's session record at spawn and hands it to the seat, the seat claims, the thread verifies the newest Claim: names its branch and starts (fallback: the thread reports its branch as today). The empty-branch probe push is dropped.
  4. Wake = events + one patrol routine per project. PR side: subscribe_pr_activity on every card PR (already a rule). Issue side: one project routine every 2–4 hours runs the collection step of execution-duties.md for every lane the project holds (unlock scan, hold release, stale premise, awaiting-landing list, wall note). The per-seat Routine, the self-bound cron and the cross-wall timer chain in seat-lifecycle.md do not apply to this form. Ruled 2026-10-23 (comment 6363872862, batch item 2, letter A): a seat run as a plain direct session (neither a UI Routine nor a project thread) is summoned by hand like the 总监席 — no self-wake, no Routine, not resident.
  5. Round report = the thread checklist; the five health figures move to the project's daily digest (the 总监项目's routine), ⛔ not a chat table per round.
  6. Naming. 「项目总监」→「总监席」 (SKILL.md L56, L274; lanes/director.md L1; lanes/skills.md), 「项目协调者」→「协调者」 (in 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's coordinator.md, re-pointed by its author after this lands, as pm-dispatch: revoke every autonomous-adjudication channel — a seat analyses and recommends, every needs_decision goes to the maintainer's director ruling batch (maintainer's word 2026-10-23) #25344 did for item 5), GitHub's org Project →「看板」 (rest-channel.md L78). The Claude Code project is 「项目」; the project hosting the director seat is 「总监项目」, a project holding lanes is 「车道项目」.

Rule after the change, in one sentence: GitHub keeps what another account reads (six-state labels, assignee, Claim:/Release:, the seat stub, the PR and its ACCEPT, the ruling record); the project keeps the working layer (posture, ledger, orders, round reports, memory).

Out of this card's scope: the account topology itself (which account holds which lane — the maintainer assigns it per project instructions), the decision-card landing authorization trial, the director project's inbox-scan routine, and any AGENTS.md (Tier H) line.

Acceptance

Dedupe

MCP search_issues, objectstack, "pm-dispatch project-run seat form seat post stub ledger in Claude Code project dispatch order card thread event-driven wake session start hook" → 40 hits; the top ten are #25219 (open, PR #25255 — the coordinator reference this card builds on, not a duplicate), #25185 (closed — introduced mode:thread), #24585, #20966, #21118, #19287, #20154 (closed — posture not inherited through the brief), #22060 (open tracking — rule-text diet; this card deletes lines, so it serves that program), #18917, #7623. None defines the project-run seat form or the stub. New.

Dedupe words: project-run seat form seat post stub · dispatch order in card thread opening message · rename 项目总监 总监席.

Activity

  1. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 (card thread) · 2026-10-23T04:54Z · p2, tooling, domain:skills. Writes the project-run seat form into pm-dispatch on the maintainer's 2026-10-23 word on the card: seat post as a stub, posture and ledger in the project, dispatch order in the card thread's opening message, the claim/branch handshake, event wake plus one project patrol, round report as the thread checklist, and the 项目总监 → 总监席 naming.
    Session: session_0178pvZcJjqXL36QzPi1jbSX (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-hxtlri (the card thread's designated push branch, platform-assigned at thread creation; the coordinator could not name it beforehand, measured 2026-10-23, so this claim follows the thread's branch report as today)
    Worktree: the card thread's own checkout
    Domain: domain:skills
    Seat: domain:skills#2 (seat post #19287)
    File surface: .claude/skills/pm-dispatch/SKILL.md (⛔ not the 〈域车道〉 lane table, PR #25247's region); references/seat-lifecycle.md, references/seat-post-protocol.md, references/dispatch-runbook.md 〈卡线程〉, references/execution-duties.md, references/lanes/director.md, references/lanes/skills.md, references/rest-channel.md (the org Project naming line); references/coordinator.md only after PR #25255 lands; scripts/pm/check-skill-line-ratchet.mjs (ceiling rows, lowered or at landed count). (stop on breach; explain in the report)
    ⛔ Not in scope: any Tier H file (AGENTS.md, CLAUDE.md, docs/NORTH-STAR.md, skills/**, .github/workflows/**, CODEOWNERS); the seat posts themselves; .claude/settings.json and .claude/hooks/** (#25380); account topology; any other scripts/**.
    Container & model: L, mode:thread (the maintainer's word: one project thread per M-or-larger or p1 card), model: CONTRACT_REVIEW_TIER (dispatch-gates.mjs --tier --repo objectstack-ai/objectstack .claude/skills/pm-dispatch/SKILL.md at d12e650d: "MANDATORY: … clause ① of the model-tiering ruling (narrowed to protocol semantics, 2026-08-20)"), effort: xhigh (L). Governed surface .claude/** is Tier S: a CONTRACT_REVIEW_TIER PASS record on the PR's head plus all-green checks; landing waits for the maintainer.
    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: seat-2 PRs open on the same tree — #25348 (revoke delegated rulings; SKILL.md lands 319/319), #25255 (new coordinator.md, SKILL.md 入口与角色 row, deletes the SKILL.md 项目总监席 summons line), #25247 (SKILL.md 〈域车道〉, lane files). This card starts from main, keeps out of their hunks where it can, and merges main after each lands; the coordinator.md pointer waits for #25255. Re-check the open-PR list for .claude/skills/pm-dispatch/** before your first push and name what you found.


    Generated by Claude Code

  2. os-elon-musk commented on Oct 23, 2026

    @os-elon-musk
    Collaborator

    Ruling: batch #4 items 1 / 2 · letters A / A · maintainer 「同意」 2026-10-23T11:29:31Z

    Recorded by the director ruling thread 「待决策汇总」 (Claude Code project "Objectstack", account os-elon-musk). Batch doc: https://claude.ai/artifact/Ld4xLWTrTSuhQ7eu2uAbHd. The maintainer's one word covers the three recommendations named in the batch's 回批 line (「1A 2A 3B」或「同意」); item 3 (hotcrm release number) is recorded on hotcrm#2252. The ruling thread only records; the card thread and the owning seat execute.

    Item 1 — A (coordinator reads, seat claims, thread verifies). This card's item 3 as written (branch named before the thread opens) is not possible: a project card thread's branch claude/project-thread-<random> is platform-assigned at thread creation (measured on PR #25385's own thread, A2; confirmed cross-session by the ruling thread and by the coordinator via get_session(session_id) → session_context.outcomes[].git_repository.git_info.branches, present before any push). Ruled shape: the coordinator reads the new thread's branch from its session record the moment it is spawned and hands it to the seat in the same stroke; the seat writes assignee + pm:dispatched + the Claim: naming that branch; the thread's first act stays 「verify the newest Claim: names my branch」 and it starts as soon as the claim is up; if the coordinator cannot read it, the thread reports its branch as today (fallback). The empty-branch probe push is dropped for card threads (the branch is platform-designated and every later push takes the harness route), which needs one line in .claude/agents/os-dev.md rule 1 — the seat widens the claim's file surface by that one file, same Tier S. Workload: references/dispatch-runbook.md 〈卡线程〉 L141–L142 edited in place (line-neutral, ≤120 bytes each, exact wording by the card thread) + 1 line in os-dev.md, as a follow-up commit on PR #25385; the coordinator.md pointer still waits for PR #25255 as the card foresees.

    Item 2 — A (direct sessions are summoned only). PR #25385 deletes SKILL.md L70 「入座即建唯一自绑 cron Routine(create_trigger,own_followup)作默认唤醒」 as Routine-seat payment, which leaves a seat run as a plain direct session (neither a UI Routine nor a project thread; SKILL.md L74 「分诊席跑普通直连会话」) without a written wake rule (contract review 6358117147 ③-2). Ruled shape: a direct-session seat is summoned by hand like the 总监席 — it runs one round when called, ⛔ no self-wake, no Routine, not resident; PR subscription events still wake it. Workload: one clause added in place on SKILL.md L70 (「席位两形…」) or L74, line-neutral, same follow-up commit; no new line, no deletion elsewhere.

    Execution: the card thread 项目承办席位形态 pushes the follow-up commit on PR #25385 (head now 7198a099); domain:skills seat 2 re-reviews the new head at CONTRACT_REVIEW_TIER; landing still waits on the maintainer's own 「可以落地」 (Tier S).


    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