Skip to content

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

Closed

Description

@objectstack-fleet

Ruled: 6356061991 · batch #3 letters 1.1 A · 1.2 A · 2 A · 2026-10-23T02:37:14Z

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 card thread 技能撤销自主裁决 on the maintainer's word there. ⛔ Not a claim. Lane self-applied under exception 二 (.claude/**, the lane table's domain:skills row); grade suggested p1 because the text being revoked is an authorization that is in force today; 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 maintainer's words (2026-10-23, the project's chat, verbatim)

我记得有一个skills 允许自主决裁,撤销这个决定。必须人工决裁。

What is revoked

The standing order recorded in references/lanes/director.md (first used in ruling record 6336640643, 2026-10-22: 「对于这种类似的问题,能否你自己开一个单独的 fable thread 做评审,对于自己有把握决定的问题,自己决定,不能决定的开决策卡?」) and every channel built on it or beside it that lets a seat, a ruling thread or the director seat rule in the maintainer's place:

  • references/lanes/director.md L16, L21–L24 (项目内代裁通道, the standing order, the confidence gate, the needs_decision fork record form), L50, L52, L59–L60 (一类自裁 in the adjudication duty).
  • references/triage-duties.md L5, L93–L106 (代裁车道 for refactors and bug fixes, the four-condition confidence gate, the auto-adjudicated marker), L107–L115 (一类自裁门 for a summoned director seat).
  • references/dispatch-runbook.md L146 (needs_decision ⇒ a CONTRACT_REVIEW_TIER ruling thread), L60, L77.
  • SKILL.md L30 (the red line's only exception), L106, L215, L219 (the PM answers a dev's needs_decision itself when it falls in the non-escalation class), L220 (the premise-bound ruling tier is the PM's), L234, L264, L267, L276.
  • Pointers that cite the channel: references/seat-lifecycle.md L69, references/contract-review.md L35, references/execution-duties.md L103.

Line numbers read on origin/main 54df640.

Wanted

The rule after the change, in one sentence: a seat analyses and recommends; it never rules. Every needs_decision — from a dev's final report, a card thread, or a card in the decision inbox — is presented to the maintainer in the director ruling-batch form (背景 / 现状 / 选项与代价 / 四维分析 / 推荐 / 所需动作) and waits for the maintainer's own word. No ruling thread, no confidence gate, no auto-adjudicated marker, no first-class self-ruling, no PM answer in the maintainer's place. The non-escalation classes that are not decisions (restoring an invariant, task order, verification strategy, dedupe and ledger housekeeping, pure wording, gate-parameter fixes — SKILL.md L216–L218) and a dev's own implementation-detail choices recorded in open_questions (references/dispatch-runbook.md L115) are NOT in this card's scope unless the maintainer says so; the PR lists them for the maintainer's word.

Already correct and untouched: references/lanes/skills.md L21, references/lanes/hotcrm.md L53, references/lanes/services.md L12.

Acceptance

Dedupe

MCP search_issues, objectstack, "pm-dispatch revoke autonomous adjudication delegated ruling needs_decision human director ruling batch" → 35 hits; the top ten are #25216 (closed — the card that INTRODUCED the ruling thread this card revokes), #23379, #17951, #23201, #22597, #9761, #21929, #20957 and two approvals cards. None revokes the channel. New.

Dedupe words: revoke autonomous adjudication pm-dispatch · needs_decision human ruling only · director ruling batch no ruling thread.

Activity

  1. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 1 (card thread) · 2026-10-23T01:42Z · p1, tooling, domain:skills. Writes the maintainer's 2026-10-23 word into the pm-dispatch skill: every autonomous or delegated adjudication channel is revoked; a seat analyses and recommends, and every needs_decision goes to the maintainer through the director ruling batch.
    Session: session_01MJceC3xyxUtL12bEdf7QBC (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-g3n0k3 (the card thread's designated push branch; the claude/issue-<n>-<slug> convention cannot be used by a project thread, a measured platform exception)
    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 (the 红线 delegated-channel exception, the state-table needs-user-decision row, 〈升级与决策〉 and the director ruler lines; ⛔ not the 〈域车道〉 lane table, PR #25247's region, nor the 入口与角色 table, PR #25255's region); references/lanes/director.md; references/triage-duties.md; references/dispatch-runbook.md (⛔ not the 卡线程 cap line PR #25255 edits); references/seat-lifecycle.md, references/contract-review.md, references/execution-duties.md where they name the revoked channels; scripts/pm/check-skill-line-ratchet.mjs (ceiling rows lowered only). (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); .claude/agents/os-dev.md unless a line there names a revoked channel (report it first); the branch of PR #25255; relabelling issues or editing seat posts.
    Container & model: M, 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 e58bd0e: "MANDATORY: … clause ① of the model-tiering ruling (narrowed to protocol semantics, 2026-08-20)"), effort: xhigh (p1). 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: open seat-2 PRs on the same tree are disjoint by region — #25247 (SKILL.md 〈域车道〉 lane table, lanes/{engine,services,cli,server,spec}.md, scripts/pm), #25254 (platform-readings.md line 403), #25255 (new coordinator.md, SKILL.md 入口与角色 row, dispatch-runbook.md cap line; its item 5 points at the ruling thread this card revokes and is held until this card's text settles). Whichever lands second merges main and re-measures check:pm-skill-ratchet. 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 #3 items 1.1 / 1.2 / 2 · letters A / A / A · maintainer 「同意」 2026-10-23T02:37:14Z

    Recorded by the director ruling thread 「待决策汇总」 (Claude Code project "Objectstack", account os-elon-musk). Batch doc: https://claude.ai/artifact/RfQPT58DF4ZjmErk8PZmJi. The maintainer's one word covers all three recommendations named in the batch's 回批 line (「1.1 A 1.2 A 2A」或「同意」). The ruling thread only records; the card thread and the owning seat execute.

    Item 1.1 — A (keep). references/dispatch-runbook.md L115 (a dev resolves its own implementation choices and records them in open_questions) and SKILL.md L216–L218 (the named non-escalation classes) stay, plus one guard sentence: an implementation choice may not change product-visible behaviour or a contract; if it would, the dev stops and reports a needs_decision fork (the existing triage-duties clause 「实施中发现契约终究要动 ⇒ dev 停手」 remains the backstop). Workload: 1 line, in the F1 fix push of PR #25348.

    Item 1.2 — A (keep as an emergency valve). triage-duties 例外二 (two reds within an hour on a gate the PR did not touch → any seat may flip it to report-only, ruling follows) stays, with three hard conditions: (a) report-only only — never delete the gate or skip a test; (b) at the moment of the flip, the item goes to 「待决策汇总」 for the next ruling batch with both red run links; (c) if the maintainer disagrees, the flip is reverted. Workload: 2 lines, same push.

    Item 2 — A (restore and extend the human-ruling floor). The F1 fix restores the origin/main 54df640 L95–L97 list (功能新增;ADR;协议/公开契约变化;破坏性或难回滚动作;安全/权限边界;门禁削弱;新增运行时第三方依赖;花费/配额/舰队形态/默认模型档位;新增必须门禁/hook/棘轮) and extends it, and SKILL.md 〈升级与决策〉 gains the maintainer's two tests (02:22 「有风险的事情让我决裁;可能大幅增加开发量的事情要我决裁」) as written in the batch doc, card 2 ②–④:

    • Risk, any one ⇒ to the maintainer: security / permission / identity / tenancy boundary (incl. default permission sets, OWD, external or guest populations, delegated admin); irreversible data (migration, delete, column shape, meaning of existing rows); public-contract or accept-set change (Clause-② yes), protocol key added or retired, ADR added or changed; externally visible action (release, npm publish, release notes, promises in public docs, outside communication); gate weakening or any waiver / exception (threshold, mandatory check, ceiling, skipped test, pin waiver, accepted-for-GA); contradicts a prior ruling or standing order, or sets a new standing order; silent failure (no gate or test would catch a wrong choice).
    • Workload, any one ⇒ to the maintainer: any option ≥ one size/l PR or spanning ≥ 2 packages; the chosen option ≥ 2× the cheapest viable one; a new permanent maintenance surface (protocol key, metadata type, mandatory gate, runtime dependency, new service, new lane); ≥ 3 serial cards or > 1 workday of a concurrency slot.
    • Extra floor classes: release and publication (GA / cut, pin waiver, 摘牌 or explicit accept, major bump, known-issues notes, npm / site publish); card fate (close as not planned, p1 / p2 downgrade, withdraw a dispatched card, cut scope); rules and process (skills, AGENTS / CLAUDE, workflows, CODEOWNERS, ratchet-ceiling raise, standing orders, exceptions); defaults and factory shape (new-tenant defaults, isDefault permission sets, default OWD, default model tier, default concurrency); resources and spend; external promises; cross-lane conflicts (two p1s on one file surface or one slot, lane ownership, seat replacement); identity and tenancy model.
    • Explicitly not escalated (all four hold: no product-visible behaviour change, no contract change, reversible, gate-backed): implementation detail; the named non-escalation classes; the four bookkeeping classes; p3 order and dispatch order; CI reruns; merged-branch cleanup; patch-level dependency bumps under lockfile + CI; mechanical steps under an existing ruling (e.g. ruledRaises).

    Workload: ≈ 15 lines across references/triage-duties.md (人工地板 section) and SKILL.md 〈升级与决策〉, ratchet rows counted on landing; same PR, same F1 fix push. From now on every card presented to the maintainer names which test it hits.

    Execution: the card thread 技能撤销自主裁决 folds all three items into PR #25348's F1 fix push; domain:skills seat 2 re-reviews the new head at CONTRACT_REVIEW_TIER; landing still waits on the maintainer's own 「可以落地」 (Tier S). The Skills seat's 01:43 decision card on item 1.1 is superseded by this ruling.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Landing of PR #25348 stopped at 2026-10-23T03:36Z: the seat's ACCEPT is on the PR, but the relay call node scripts/pm/fleet-write/dispatch.mjs --repo objectstack-ai/objectstack --actions-file F with F = [{"op":"pr_ready","pull":25348},{"op":"automerge_enable","pull":25348}] was refused in the seat's session by the auto-mode classifier as [Self-Approval] (seat, card thread and PR all run under one account). Not retried, not respelled. The PR stays draft, auto-merge not armed; it lands when the maintainer flips it ready and merges, or when the seat's own session can make the call.


    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