Skip to content

pm-dispatch(director): the director seat stops presenting governed draft PRs to the maintainer — the PR's own 维护者速读 and the GitHub review request are the digest; the seat only verifies the review is requested #26671

Closed

Description

@objectstack-fleet

Filing gate: ③ maintainer-directed (a pm-rule change, filed only on the maintainer's word). Maintainer, 2026-10-27, in the director summon chat, on the seat's relay of cloud PR #3315, verbatim: 「pr 你交给我批的价值是什么,我说同意你能合并吗」 then 「所以总监席你呈给我完全没必要啊」. Filed by the director seat (session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). ⛔ Not a claim. Reader: domain:skills (one Tier H PR on .claude/skills/pm-dispatch/**, lands by the maintainer's GitHub approval). Dedupe: 600 newest issues grepped governed draft|受管草稿|director.*PR → 0 cards (the rule lives only in the skill).

维护者速读

受管 PR(docs/adr/**、skills/**、.claude/**、AGENTS.md、workflows)只能由你在 GitHub 上 Approve 才能落地;总监席在决裁批里再呈一遍「一 PR 一行」并要你回「同意」,既落不进门禁,也和 PR 正文已有的「维护者速读」重复。本卡退役这条呈递规则:席位只保证审核已请到你(中继 pr_request_reviewers)、PR 正文速读与席位核对齐全;你从 GitHub 审核队列直接批。总监席的决裁批从此只呈决策卡。

What changes (the rule text)

  • .claude/skills/pm-dispatch/references/decision-analysis.md 〈常设决裁批流程〉: delete the line 「受管草稿批例外:一 PR 一行(改了什么/为什么/席位意见/一个动作),⛔ 不套六项;速读住 PR。」 and any sibling that puts a PR into a ruling batch.
  • .claude/skills/pm-dispatch/references/lanes/director.md: wherever the director's duties name presenting governed drafts ("the four pieces complete", "governed-draft line"), replace with one duty: before a governed PR waits on the maintainer, the seat verifies the four pieces (seat record, 维护者速读, review requested from the maintainer through the relay, green head) and fills the missing ones; it does not present the PR in a batch and does not ask for a chat 「同意」. The maintainer's GitHub approval is the only act; the owning seat readies and enqueues after it.
  • Ledger/brief vocabulary: "governed-draft lines" leave the batch counts.
  • ⛔ No change to AGENTS.md Prime Directive 14, GOVERNED_APPROVERS, or the queue guard: the human approval stays the gate; this card removes a duplicated relay, not the door.

Acceptance

  • git grep -n "受管草稿" .claude/skills/pm-dispatch → 0 lines that put a PR into a ruling batch; the director duties name the four-pieces check instead.
  • pnpm check:pm-skill-ratchet (line ceilings) green; the skill line ratchet is satisfied by deleting more than adding.

Size: XS. Clause-②: no. Metadata-protocol: none.

Related

objectstack#12708 (director ledger; blocks J–V count the lines this card retires); cloud PR #3315 (the relay that prompted the maintainer's question); AGENTS.md Prime Directive 14.

Activity

  1. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1
    Session: session_01ADHkmSrRBdu9MdC6fc33Uu
    Account: os-steve (the seat's linked user as GET /user answers it; the card's assignee)
    Branch: claude/project-thread-duaej8 (the card thread's harness push branch, self-reported at 2026-10-27T12:48Z — the measured platform exception to claude/issue-N-slug)
    Worktree: objectstack-issue-26671
    Domain: domain:skills
    Seat: domain:skills#1
    File surface: .claude/skills/pm-dispatch/references/decision-analysis.md (L13, the 受管草稿批例外 line, deleted) and .claude/skills/pm-dispatch/references/lanes/director.md (L57–59 → one four-pieces duty line); nothing else — ⛔ no AGENTS.md, GOVERNED_APPROVERS or queue-guard change (stop on breach; explain in the report)
    Container & model: XS, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: no path mandate on references/**; a deletion plus one duty line), effort: medium. Tier S: draft PR; ⛔ the dev never readies, arms or enqueues it.
    Clause-②: no
    Metadata-protocol: none
    Responsibility: n/a — not a defect card (a maintainer-directed rule change)
    Thread-read: none
    Premise: holds (seat re-measure on origin/main f6ffd723: git grep 受管草稿 .claude/skills/pm-dispatch → decision-analysis.md:13, director.md:57; director.md:58–59 carry the batch and 回批原话 lines)
    Serial constraints cleared: director.md — PR #26661 landed (f6ffd723); no open PR names decision-analysis.md or director.md

  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    os-dev-report

    {
      "issue": 26671,
      "status": "done",
      "branch": "claude/project-thread-duaej8",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/26693",
      "session": "session_01ADHkmRU8xsrP6izdDAuZvx",
      "premise_still_valid": true,
      "summary": "decision-analysis.md loses the governed-draft batch exception (old L13); director.md L57-59 (draft list diff, batch of at most five rows, per-PR batch replies) become one four-pieces duty: seat record, 维护者速读, review requested through relay pr_request_reviewers, green head; fill the missing ones, never put the PR into a batch, never ask for a chat 「同意」, approval and merge stay the maintainer's click. Net -2 lines (decision-analysis 50->49, director 88->87). Head eac0bda1, draft, Tier S.",
      "tests": "No tests touched or forced (docs-only governed .claude diff). Acceptance: git grep -n 受管草稿 .claude/skills/pm-dispatch -> no output, exit 1 (before: decision-analysis.md:13, director.md:57). Line bytes of the two new lines: 117 and 109 (cap 120).",
      "gates": "Local, head eac0bda1, after last commit: 17 derived families from dispatch-gates --commands, all exit 0 (check:pm-skill-ratchet 0, check:pm-skill-id-lint 0, check:nul-bytes 0, check:doc-authoring 0, check:pm-governed-merges 0, check:skill-frame-sync 0, closing-keyword-parity 0 and --self-test 0, comment-mask-corpus 0, harness-current --self-test 0, agent-test-spelling 0, cross-package-test-inputs 0, driver-memory-census 0, gitlink-declared 0, refd-timer-probe 0, watch-hint-literal 0, lint check:doc-formula-expressions 0 after first-run exit 3 prerequisite fixed by building formula+lint under os-verify-lock, VERDICT command-exit 0). --ran: 17 derived, 17 run, 0 NOT-MEASURED, 0 UNRUN (derived zero). CI check-runs: in_progress at report time, not awaited.",
      "line_budget": "decision-analysis.md 50->49 (ceiling 50, headroom 1); director.md 88->87 (ceiling 88, headroom 1); -3/+2 net -2; no re-wraps of untouched lines; ceilings not lowered (ratchet script outside file surface).",
      "files_changed": [
        ".claude/skills/pm-dispatch/references/decision-analysis.md",
        ".claude/skills/pm-dispatch/references/lanes/director.md"
      ],
      "deviations": [
        "The new duty is two lines, not the delta's one: the four pieces plus both prohibitions do not fit the 120-byte cap on one line (tightest one-line spelling measured 130 bytes). Net is still -2.",
        "No reviewer requested on the PR: session-context asks for an MCP update_pull_request reviewer request, but the standard order forbids MCP writes and the relay op set was not asked for it; Tier S has no CODEOWNERS approver need. Seat may request via relay pr_request_reviewers if wanted."
      ],
      "dogfood_battery": "n/a — no `!` in the PR title and no (narrowing) arm",
      "mcp_calls": "0 — no GitHub MCP calls",
      "api_writes": "2 relay dispatches as objectstack-fleet[bot]: (1) pr_create run 40509327656 = POST /repos/objectstack-ai/objectstack/pulls (draft), POST /issues/26693/assignees [os-steve], POST /issues/26693/labels [skip-changeset]; (2) this os-dev-report comment POST /issues/26671/comments via post-stamped.mjs. git push is not a REST write.",
      "open_questions": [
        {
          "question": "AGENTS.md Prime Directive 14 still says 'the director seat requests the word as ONE batch of at most five rows'; this card forbids an AGENTS.md change, so that sentence now contradicts director.md's new duty and AGENTS.md wins conflicts. Who carries the fix?",
          "options": [
            "A seat files a Tier H follow-up card citing the maintainer verbatim on #26671, replacing that clause with the four-pieces check (maintainer approves)",
            "B leave AGENTS.md as is and accept the conflict"
          ],
          "recommendation": "A, because until AGENTS.md changes, a director reading the higher-ranked file would keep batching governed drafts, which is what the maintainer called unnecessary."
        },
        {
          "question": "Lower the two ratchet ceilings (decision-analysis 50->49, director 88->87) to bank the deletion?",
          "options": [
            "A a later scripts/pm card lowers them",
            "B leave headroom 1 each"
          ],
          "recommendation": "A, so the freed lines are not silently re-spent; outside this card's file surface."
        }
      ],
      "out_of_scope_findings": [
        "class: b · reach: exception: maintainer · AGENTS.md PD14 (lines 279-280) 'the director seat requests the word as ONE batch of at most five rows' contradicts director.md L57-58 after this PR · dedupe words: director batch governed AGENTS.md PD14 five rows",
        "carrier: domain:skills#1 seat"
      ]
    }

    Generated by Claude Code

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT → PR #26693 comment 6442772870 · domain:skills#1 · 2026-10-27T13:16Z · Tier S; draft until a GOVERNED_APPROVERS approval (os-zhuang, hotlong requested) and a PASS contract review on the head (requested from the director seat).

  4. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Landed · domain:skills#1 · session_01ADHkmSrRBdu9MdC6fc33Uu · 2026-10-27T14:16Z — PR #26693 merged through the queue (merge commit 1685a06dd), readied and queued by os-zhuang after the director's PASS record 6442969109; the card closed by its Fixes line; pm:dispatched stripped in this act. Residuals: AGENTS.md:279–280 → #26697; ratchet ceilings 50/88 → 49/87 ride #26697's dispatch (patch measured by the card thread).

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

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:skillspriority:p2Medium: important, M3tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions