Skip to content

Commit 55dca46

Browse files
docs(pm-dispatch): docs-only ADR cards dispatch at CONTRACT_REVIEW_TIER + xhigh by standing order (#29850)
<!-- claude-projects-attribution: {"github_login":"os-support-ai"} --> _Requested by **Yibo Wang** · [project thread](https://claude.ai/code/project/chan_01BVUyyPie8gHwoPM18iABwB?thread=cmsg_01BVUyyPie8gHwoPM18iABwB2vEgYu9RMV3usWrzEnJjcx)_ Fixes #29741 Clause-②: no Metadata-protocol: none **Rules text only.** Two lines of `.claude/skills/pm-dispatch/references/execution-duties.md` 〈派发〉 are rewritten in place; nothing published moves (`skip-changeset`). ## 维护者速读 - **改了什么**:派发规则里写死「ADR 修订卡(修订说明、措辞修正、`Amended by` 条目)走契约复审档、effort `xhigh`,凭常设令,不再逐卡问;新裁决除外」;effort 表把 ADR 列进 `xhigh` 档,`max` 仍凭点名。 - **为什么改**:原文只定了档位和 effort 下限,席位读成每张 ADR 卡都要问一次维护者;你 2026-11-03 已定为常设令,规则文本要跟上,后续 ADR 卡不再绕一趟决裁线程。 - **风险与回滚**:只动两行规则文字,无代码无发布面;回滚即还原本 PR。改法上「其它 ADR 卡」的 `xhigh` 地板由 effort 表接住,没有降档。 - **先看**:`execution-duties.md` 第 101 行(条款①)与第 122 行(effort 表),diff 只有这两行。 - **两分钟验证**:`pnpm check:pm-skill-ratchet && pnpm check:pm-skill-id-lint`,预期两条都 ✓(文件仍 188 行,第 101 行 119 字节、第 122 行 120 字节)。 - **需要你做的**:无,席位落地(Tier S,`.claude/**` 内)。 ## What changes One file, two lines, net zero lines. The file sits at its 188-line ratchet ceiling, so each rewritten line had to carry the new rule inside the 120-byte line cap on its own; no other line was re-wrapped to buy room. ```diff @@ line 101 (116 B → 119 B) @@ -- 强制条款①:凡改协议语义面或 `docs/adr/**` 的卡一律契约复审档;后者 effort 下限 `xhigh`。 +- 强制条款①:改协议语义面或 `docs/adr/**` 即契约复审档;ADR 修订常设令 `xhigh`,新裁决除外。 @@ line 122 (120 B → 120 B) @@ -- S 机械 `medium`;M `high`(默认);L/XL/`security`/p1/契约复核/四轴分析 `xhigh`;`max` 凭点名或常设令。 +- S 机械 `medium`;M `high`(默认);L/XL/security/p1/契约复核/四轴分析/ADR `xhigh`;`max` 凭点名/常设令。 ``` What each line now says: - **Line 101 (条款①).** The tier half is unchanged in meaning (protocol semantic face or `docs/adr/**` ⇒ CONTRACT_REVIEW_TIER; 「凡…的卡一律」 shortened to 「…即」). The effort half is the standing order: an ADR revision card (ADR 修订: an amendment note, a wording fix, an `Amended by` entry) takes effort `xhigh` by 常设令, so the seat does not ask per card (neither a chat question nor a decision card); 新裁决除外 keeps a card that needs a new ruling, a superseding ADR included, outside the order. - **Line 122 (effort table).** `ADR` joins the `xhigh` list, so the `xhigh` floor that line 101 used to state for every `docs/adr/**` card (mixed ADR + code, a superseding ADR, a card that needs a new decision) still holds there, and the existing tail `max` 凭点名 keeps `max` on an ADR card a named per-card word. To fit `/ADR` inside 120 bytes: `security` lost its backticks (its neighbour `p1` never had them) and 「凭点名或常设令」 became 「凭点名/常设令」 (the same separator the list already uses). Outside the order, nothing moves: a card that needs a new decision still goes to a decision thread, a superseding ADR or an ADR + code diff keeps the existing routes (CONTRACT_REVIEW_TIER, `xhigh` from the effort table, split per the existing rules). The words ADR 修订 and 新裁决除外 carry that boundary (patch round 1, after the at-tier review's should-fix: the first wording 纯文档 ADR … 免逐卡问 left a superseding ADR inside the order by its wording). Provenance (maintainer, date) is deliberately not in the rule text: `check-skill-id-lint`'s header says the scanned corpus carries rules only and provenance lives in the PR that landed it, which is this one (Warren, 2026-11-03T03:05Z, option A 「fable + xhigh,立为常设令」, then 「这个应该立卡更新 skills」). The claim template's `reason:` clause already names 常设档位令; after this lands a seat cites this card's number there. ## Why The text fixed the tier and an effort floor but not the effort itself, and named a 常设令 only as a way to reach `max`. A seat dispatching a one-paragraph ADR edit read that as a per-card maintainer call and waited on a decision thread for an answer the rule already implied. The standing order removes that round trip; this PR records it where seats read. ## Tests None owed: prose in a `.claude/**` reference file, no code or test moved. The two skill gates that judge this file are in the Verification section. ## Acceptance notes - **Mirror check (the card's last bullet), re-measured on 42ff86f.** `grep -n 维护者` near 档/effort/模型 in `SKILL.md` and `dispatch-runbook.md`: SKILL.md line 311 (claim template `reason:` already names 常设档位令) and line 275 (director tier, unrelated); dispatch-runbook.md line 137 says 「档位与 effort 席位自推导 ⛔ 不等维护者原话」. Neither repeats a per-card ask, so no mirror edit; the order file predicted the same. - **Wording choices a reviewer may want to push back on:** 「强制条款①」 kept verbatim (the anchor other lines cite as 条款①/条款②); 「ADR 修订」 stands for the card's amendment class; 常设令 already means no per-card ask, so 「免逐卡问」 gave way to 「新裁决除外」. - **Attribution thread link.** The order file spells the skills-lane thread in the attribution line; this body carries this card thread's link because the session's own attribution rule names it. Same project, same requester. - Out-of-scope findings: none. ## Verification - `pnpm check:pm-skill-ratchet` on 3c7c757 and 6462193: ✓ (execution-duties.md 188 lines at ceiling 188; line-byte check clean). - `pnpm check:pm-skill-id-lint` on 3c7c757 and 6462193: ✓ 109 file(s) clean. - `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` derived 17 commands for the one changed path (merge base 42ff86f); each run serially, exit codes captured before any pipe, then `--ran`: 17 derived, 17 run, 0 NOT-MEASURED, exit 0 (`check:doc-formula-expressions` first exited 3 on a missing `@objectstack/lint` dist; after `turbo run build --filter=@objectstack/formula --filter=@objectstack/lint` it exited 0). All on 3c7c757; `origin/main` then moved (c5ddbea, no pm-dispatch or gate-script file touched) and was merged as 6462193, where `--commands` derives the same 17 and `check:pm-skill-ratchet` + `check:pm-skill-id-lint` re-ran ✓. - Patch round 1 (bd51c88, line 101 only): `pnpm check:pm-skill-ratchet` exit 0, `pnpm check:pm-skill-id-lint` exit 0. - CI check-runs: in_progress at PR open; the seat reads them at ACCEPT. ## Human Minimum Each item is one rule from [CONTRIBUTING.md › Human Minimum](https://github.com/objectstack-ai/objectstack/blob/main/CONTRIBUTING.md#human-minimum), which links the AGENTS.md text that states it. - [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic. (not touched) - [x] 2. Every name I added uses the casing for its kind. (no names added) - [x] 3. No formatter ran; `pnpm lint` is CI's run (repo-level scan). - [x] 4. One issue, one branch off an up-to-date `main`, one pull request. - [x] 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset. (`.claude/**` is not published: `skip-changeset`) - [x] 6. `packages/spec` touched: its generated artifacts are regenerated and committed. (not touched) - [x] 7. No hand edits to `content/docs/references/`, `packages/*/CHANGELOG.md` or `content/docs/releases/`. - [x] 8. Title, body and comments are in English. (the 维护者速读 block and the rule text itself are Chinese by the dispatch contract) - [x] The *Before Submitting* list in CONTRIBUTING.md is done. --- _Generated by [Claude Code](https://claude.ai/code/session_01WGufzir9DwLT7sHJkBootW)_ <!-- signed: domain:skills#3 · os-support-ai · session_01WGufzhd2Ad9ANGTyAMW7pH --> --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 118bee4 commit 55dca46

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

‎.claude/skills/pm-dispatch/references/execution-duties.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@
9898
- 下限档给机械卡(正确性由门禁农场机械判定)。
9999
- 默认判断档给 M/L、裁决实施与任何带设计判断的卡;拿不准就升一档。
100100
- 上限 = 契约复审档(`CONTRACT_REVIEW_TIER`),给最重协议/流程/编排卡,按卡取用非新默认。
101-
- 强制条款①:凡改协议语义面或 `docs/adr/**` 的卡一律契约复审档;后者 effort 下限 `xhigh`。
101+
- 强制条款①:改协议语义面或 `docs/adr/**` 即契约复审档;ADR 修订常设令 `xhigh`,新裁决除外。
102102
- 协议语义面 = 本 `SKILL.md`、决策框架拷贝所在文件、`.claude/agents/os-dev.md` 与 `skills/**`。
103103
- 仅 `references/**` 面、或治理面上一行级机械文本改动的卡,降为默认判断档施工。
104104
- `skills/**`(随 `npx skills add` 发运)与 `docs/adr/**` ⛔ 无一行级豁免,逐行判机械不作数。
@@ -119,7 +119,7 @@
119119
- 额度墙只向下(降档或降并发)⛔ 永不向上;临时偏离记座位贴带结束条件,逐次巡检重读。
120120
- 降档的档位与理由记入认领评论 Container & model 行;档位逐次派发显式传参,永不省略。
121121
- effort 按卡难度定、与档位并列,写进 Container & model 行与派发令,派发显式传参,⛔ 不留空。
122-
- S 机械 `medium`;M `high`(默认);L/XL/`security`/p1/契约复核/四轴分析 `xhigh`;`max` 凭点名或常设令。
122+
- S 机械 `medium`;M `high`(默认);L/XL/security/p1/契约复核/四轴分析/ADR `xhigh`;`max` 凭点名/常设令。
123123
- 解析顺序、pin 语义与允许名单回退陷阱以 os-dev 定义 frontmatter 注释为权威。
124124
- 分诊 suggestion 行是输入不是决定,不采纳给理由。
125125
- 派发词只带增量,⛔ 不整段贴卡正文;dev 自读全文与评论、自查完整(`dispatch-runbook.md`)。

0 commit comments

Comments
 (0)