Skip to content

[Decision] pm-dispatch: which PRs owe a Skills-docs: line (the #26184 audit Part B rule draft) — protocol-kind only, protocol-kind plus narrowing, or not adopted #26369

Closed

Description

@objectstack-fleet

Ruled: 6431004737 · letter B · 2026-10-27T01:00Z

Filing gate ②: a maintainer-only decision (a pm-dispatch rule change; human-ruling floor #25344). Maintainer, 2026-10-27, verbatim: 「立决策卡」. The draft is #26184's audit Part B (comment 6425690779, session_01C2Uuz8d9KeZ7qEYm6ZYWHL), which asked for a ruling. Root ask, 2026-10-26: 「我不问你你也想不到立卡,如何避免出现类似的情况,需要更新 skills吗」. Filed by the triage seat (session_01AavokzJ5DndAwitDXvKy4U, seat post #6015). ⛔ Not a claim.

维护者速读

昨天你问「我不问你你也想不到立卡,怎么避免」。审计 #26184 量到:18.0.0 以来 60 个带协议种类声明的提交,只有 3 个碰过 skills,而且只是改了锚点,所以留下 8 个包、26 行的教学缺口。第二部分的草案是:协议类 PR 的正文多写一行 Skills-docs:,取值四选一——本 PR 已更新、欠后续(列文件)、后续卡 #N、不需要(写理由)。席位验收时这行不在、或不属实,就不放行。不加门禁、不加脚本,净增 0 行,只扩写四处现有句子。请裁:A 只对协议种类为 added、semantic、narrowed 的 PR 要求这行;B A 再加上 Clause-② 带收窄声明的 PR,能抓住审计里漏掉的那一行 D5;C 不采纳,维持靠人提醒。选 A / B / C?

Governing text

  • .claude/skills/pm-dispatch/SKILL.md:313 (the claim template's Metadata-protocol: line) and :191 (the six ACCEPT checks). .claude/agents/os-dev.md:279 (Definition of done). references/review-checklist.md:17 and references/triage-duties.md:58.
  • 「新增门禁默认否」: the draft adds no gate. The line is read by the seat, and no script parses it (scripts/pm/clause2-line.mjs reads only Clause-②: and Metadata-protocol:).

Premises (from Part A and Part B, read on main be531f685e)

Options

Option What Consequence Workload
A The line is owed when Metadata-protocol: is added, semantic or narrowed. It catches the common case and misses D5-type runtime narrowings. skills · 1 PR (Tier S, .claude/**, a fable contract review) · 4 lines widened
B A, plus any PR whose Clause-②: carries (narrowing). It catches D5 too. A breaking PR that changes nothing an author writes pays one Skills-docs: none — REASON line. same as A
C Not adopted. The gap regrows. Follow-ups depend on someone asking, as happened on #26178 and #26179. none

Recommendation

B, the audit's recommendation. Since 2026-10-26 the triage seat has already written "skills + docs + eval owed" by hand on protocol cards, and #26347 and #26362 are the first cards filed that way. B moves that habit into the dev's PR body and the seat's ACCEPT, so it no longer depends on triage remembering.

After the ruling

domain:skills dispatches one Tier S PR with the four widened lines (Part B items 1–4; drop the narrowing words for A). Contract review runs at CONTRACT_REVIEW_TIER. No back-fill: the eight Part A cards are the back-fill.

os-decision-facets
① 项目长远合理性:B 把「协议改动要补 skills/文档/eval」从靠人提醒变成 PR 正文的一行声明,净增 0 行,不新增特例。
② 实际业务拉动:审计实测 26 行教学缺口、8 个包;#26178、#26179 都是你问了之后才立的卡。
③ 防 AI 犯错:取值是闭合的四选一,席位验收时缺行或不属实就拒绝放行(响亮拒绝);不靠脚本,所以不新增门禁。
④ 创业阶段不扩散:零门禁、零脚本、零账本;不回填已合入的 PR,8 张审计卡就是回填。
Prior rulings read: Skills-docs · Metadata-protocol follow-up · skills gap → #26184 Part A (6425678185) and Part B (6425690779); 「新增门禁默认否」; ADR none; thread: #26184


Generated by Claude Code

Activity

  1. added
    toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface
    needs-user-decisionBlocked on a maintainer decision — do not dispatch; decision cards only, never on a PR
    domain:skillsDomain lane — seat card indexed by label:pm:seat
    pm:awaiting-maintainerAwaiting a manual maintainer action — ruling already given; no dispatch, no machine exit
    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterate
    on Oct 27, 2026
  2. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Brief-claimed-by: session_01KrKXQVvgYk2AJ4VkqMobyb · batch #404 · 2026-10-27T00:47Z

    Director seat, summon #51 continuation (ledger objectstack#12708). Presented to the maintainer in batch #404 as item 1 of 4 (the two pm-protocol cards the triage seat filed on 「立决策卡」, the ui-merge process card, and the app-shell split). Seat increment (re-verified on origin/main 6390fe52; the card is not restated):

  3. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Ruling: batch #404 item 1 · letter B · maintainer 「同意」 2026-10-27T00:54Z

    Recorded by the director seat (summon #51 continuation, session_01KrKXQVvgYk2AJ4VkqMobyb, ledger objectstack#12708). The maintainer answered batch #404 with 「同意」 — every seat letter. Brief 6430900353. Letter B: a PR owes a Skills-docs: line (four values: updated in this PR · owed, files listed · follow-up card #N · none, with the reason) when its Metadata-protocol: is added, semantic or narrowed, and when its Clause-②: carries (narrowing) whatever the protocol kind. The line is read at the seat's ACCEPT: missing or untrue refuses the landing. No script parses it, no gate is added (clause2-line.mjs keeps reading only its two lines). Not A (misses the D5 class #26184 measured) and not C (the gap regrows).

    Workload of the chosen letter (card column): skills · 1 PR (Tier S, .claude/**) · four existing lines widened — SKILL.md:313 (claim template), the ACCEPT checks, .claude/agents/os-dev.md Definition of done, references/review-checklist.md. P4 is stale: #26155 closed and PR #26286 merged, so the PR rebases on main only. No back-fill; the eight #26184 Part A cards are the back-fill.

    Execution: needs-user-decision → pm:queue in this act (domain:skills, p2, area:devpath); pm:awaiting-maintainer removed in the same stroke. Ruling-ref: names this comment. Clause-②: no, Metadata-protocol: none.

  4. added
    pm:queueReady for the PM dispatch loop
    and removed
    needs-user-decisionBlocked on a maintainer decision — do not dispatch; decision cards only, never on a PR
    pm:awaiting-maintainerAwaiting a manual maintainer action — ruling already given; no dispatch, no machine exit
    on Oct 27, 2026
  5. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:skills#2 (seat post #19287) · 2026-10-27T01:38Z · ⛔ Not a claim.

    Letter B is carried by PR #26381 (Part of #26184, Tier S, .claude/** only): the four rule lines (os-dev.md Definition of done, SKILL.md claim template + ACCEPT checks, review-checklist.md, triage-duties.md) state the trigger as kind non-none OR a (narrowing) arm, which is this card's ruling 6431004737 and the same letter the maintainer tapped on the seat thread's decision card (2026-10-27T00:33Z). The PR's independent contract review (6431523599) returned FAIL on one lost clause (updated here must also mean the package's evals exercise it) and one spelling; the rework is on the same branch and is re-read on the new head before the seat lands it. This card closes by the seat's hand with that landing, which the landing record on #26184 will cite.


    Generated by Claude Code

  6. objectstack-fleet commented on Oct 27, 2026

    @objectstack-fleet
    ContributorAuthor

    Closed as delivered · domain:skills#2 · 2026-10-27T02:04Z · ⛔ not a claim.

    Letter B (ruling 6431004737; the maintainer's tap 「B:种类非 none 或带 (narrowing)」 on the seat thread's card at 2026-10-27T00:33Z) landed in PR #26381, merged at 2026-10-27T02:03Z as b33dd25b: os-dev.md L279, SKILL.md L313 (the four values; updated here = teaches it in skills/** or the docs and the package's evals exercise it), review-checklist.md L18 (缺 ⇒ REWORK), triage-duties.md L59. Contract review PASS 6431771737, seat ACCEPT 6431794006, landing record on #26184.


    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

No one assigned

    Labels

    area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratedomain:skillsDomain lane — seat card indexed by label:pm:seatpm:queueReady for the PM dispatch looppriority:p2Medium: important, M3toolingFix lands in tooling, not a product package — enters pm:queue only with Unblocks: or a named surface

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions