Skip to content

docs(pm): derive the recommendation from axis 1 first, and five director-lane charter items - #17992

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-17748-recommendation-self-check-and-director-items
Sep 13, 2026
Merged

docs(pm): derive the recommendation from axis 1 first, and five director-lane charter items#17992
os-zhuang merged 1 commit into
mainfrom
claude/issue-17748-recommendation-self-check-and-director-items

Conversation

@claude

@claude claude Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Fixes #17748

What and why

The ≥50% long-term-rationality rule already exists in SKILL.md; what was missing was a
mechanical step in the writing template that makes a violation visible on the card. This PR
adds that step and the five director-lane charter items ruled on the same card, in one PR
across three governed reference files. SKILL.md and core-rules.md are deliberately
untouched — SKILL.md:756-758 stays the single source of the rule, and no pointer clause is
added here. Six items: (1) the recommendation is derived from axis ① alone and carries a
self-check row; (2) the class-one gate runs on every inbox card before it is presented;
(3) 「以协议为准」 in both halves — consumers align to the protocol, and whether the protocol
itself is right is the seat's own axis-① reading of the protocol text; (4) an ADR item
superseded by the protocol gets a dated amendment note; (5) changeset files are named after
their card; (6) a ruling exists only on its own card, under a fixed header line.

Line budget — every file stays at its ratchet ceiling, paid by density

All three files sit at headroom 0, so every added line is paid for by a deleted clause whose
rule survives elsewhere. ⛔ No re-wrap was used as currency and ⛔ no ceiling was raised.

file lines ceiling paid by deleting where the rule survives
references/decision-analysis.md 50 → 50 50 :15 「裁后四件原子执行不再请示,一口气跑完;批间新入箱的卡滚入下一批。」 lanes/director.md :43 + :44 (verbatim halves)
:16 「收件箱读数为零才收工。」 lanes/director.md :44 「收件箱清零才收工」
:17's enumeration 「业务问题 + 每选项真实代价 + 四维 + 一个推荐」, merged into :18 the 正文六项 list itself, :24–:33 of the new file
references/lanes/director.md 72 → 72 72 :23 「四维框架单源在 SKILL.md 〈升级与决策〉,⛔ 本文不复制框架本体。」 folded into the file header :3, which already carried the same pointer
:25 「staged 选项仅凭具名外部用户证据才可荐。」 SKILL.md :749 「staged 选项仅凭具名外部用户证据才可呈报为推荐」
:17's 「机械接手经派发 dev」, merged into :16 :31 「机械红可接手,经派发 dev 执行」
:71 「契约复核的放行归派发席席内,定时轮与本席降为可选事后审计…」 :28 「放行常设归派发席席内复核,归属与全链见 ../contract-review.md」 + the 职责一 heading's 「(可选)」
:48 「入箱先退回:…按一类自裁录裁转 pm:queue 修文档,⛔ 不呈批。」 replaced by item 2's general rule, of which it was the single named instance
:46's 「改 ⇒ 重立协议卡,否则只议对齐」 superseded by item 3 (the seat rules the protocol change; a spec card carries the ruling)
references/dispatch-runbook.md 241 → 241 241 :215 「豁免不再申报为偏差:一是 harness 的 Co-Authored-By 尾注…」 AGENTS.md :444, verbatim in English

Two further in-place rewrites cost no lines: decision-analysis.md :32 (the 推荐 item) expands
from one line to four by absorbing its own gloss, and dispatch-runbook.md :84 (出决策箱须引可
取回的裁决 id) gains the Ruling-ref half while dropping the 台账条目 alternative that item 6
explicitly rules out.

Acceptance, measured both directions on 345b15e7 against origin/main 00c332b4

grep -c per file, before → after:

pattern file before after
只看①选 decision-analysis.md 0 2 (the 推荐 self-check row and the 四棱 recommendation row)
Ruling: batch lanes/director.md 0 1 (the fixed ruling-header line)
以协议为准 lanes/director.md 0 1
ADR 条目被协议取代 lanes/director.md 0 1 (the dated-amendment rule)
Ruling-ref dispatch-runbook.md 0 1 (the claim half)
changeset 文件名用 dispatch-runbook.md 0 1 (item 5, beside the 模型标识 block)

Literal controls, unchanged: Prior rulings read 1 → 1 in decision-analysis.md;
「裁前先读线程」 1 → 1 in lanes/director.md (kept verbatim on its own line when :9 was split).
git diff --stat origin/main shows exactly three files, 18 insertions / 18 deletions.
No line exceeds 120 bytes in any of the three files (measured, 0 offenders), and a control-character
sweep over the three files returns no hits.

Placeholder note: the ruling header and the changeset-name rule are written in the files with
angle-bracket placeholders. Spelled here without them so this body survives GitHub's sanitizer,
the header is Ruling: batch #N item K · letter X · maintainer 「VERBATIM」 UTC and the changeset
rule names ISSUE-SLUG.md.

Gates

Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack
(no paths — the tool took the change set from the merge base itself): 14 families, all 14 run,
all exit 0, reconciled with --ran14 derived, 14 run, 0 NOT-MEASURED, 0 UNRUN.
check:pm-governed-prose was run in addition (named in the dispatch, outside the derivation).
check:doc-formula-expressions first exited 3 = PREREQUISITE NOT MET (nothing measured);
after turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under
scripts/pm/os-verify-lock.sh it re-ran and exited 0.

check:pm-skill-ratchet verdict lines:

✓ check-skill-line-ratchet: .../references/decision-analysis.md is 50 lines (ceiling 50; headroom 0).
✓ check-skill-line-ratchet: .../references/lanes/director.md is 72 lines (ceiling 72; headroom 0).
✓ check-skill-line-ratchet: .../references/dispatch-runbook.md is 241 lines (ceiling 241; headroom 0).

No changeset: .claude/** publishes nothing — none of the three paths appears in any package's
files[] — so the skip-changeset label carries it.

维护者速读(草稿)

改了什么。 三个 PM 章程文件,一共六条规则。一、决策卡的推荐从此先只按「项目长远合理性」
这一轴得出,写一句两年后的终态并点名参照哪个主流平台,其余三轴只调时序与分期、不许改字母;推荐段
和四棱卡面各带一行自检「只看①选 X;②③④ 是否翻转:…」,并把两类方案钉死为不可推荐(让契约迁就
实现、分期半量)。二、总监席每次决裁先逐卡过一类自裁三判据,过得了的自己裁完记档,不再占用您的
批次。三、消费面与协议不一致一律对齐协议、协议没有的能力直接删,⛔ 不再立卡来问协议;但协议本身
对不对由总监席自己读协议原文加主流平台判定,判错了就直接裁协议改动。四、ADR 条目被协议取代时加
一条带日期的修订注记点名取代它的 spec 符号,不改写原文也不装没发生。五、changeset 文件按卡号命名。
六、一条裁决只算数在它自己的卡上,首行是一条固定格式的记录行;认领或派发出决策箱的卡要引这条记录。

为什么改。 上一批决裁里有三张卡的推荐是错的,错法一样:第一轴被当成「哪个改动最小」来打分,
于是第四轴实际拿了 75% 的权重,而您改的每一条都是从平台长远合理性出发的。规则本来就写着长远权重
≥50%,缺的是一个让违规在卡面上肉眼可见的机械步骤。另外五条来自您今天早上的三次口头校准:9306
那类卡总监席本该直接决策、以协议为准不该反过来立卡问协议、以及一条裁决到底存在在哪里。

风险与代价(含回滚)。 三个文件都卡在行数上限,所以每加一行都删了一条在别处仍然成立的旧句子
(上表逐条列出了删哪句、规则留在哪里)。真实代价是:如果哪条「留在别处」判断错了,就会静默丢一条
规则 —— 表里每一行都可以用一次 grep 复核。规则只对新记录生效,存量卡不回改。回滚成本为零:纯文本,
git revert 一次即可,没有任何脚本或门禁依赖这些句子。

席位意见。

你要做的。 这是受管面(.claude/**),按 Prime Directive #14 只能由您亲手合并 —— PR 保持
draft,⛔ 没有任何座位会把它排进合并队列。请看两处:① 上表「paid by deleting」那一列,确认每条被删
的句子确实在别处还在;② 第一条规则的措辞,尤其自检行的字面标记「只看①选」,因为后续每一批决裁都
要按字面 grep 它。


Generated by Claude Code

…tor-lane charter items

Six ruled charter items land in three pm-dispatch reference files, each held at
its line ratchet ceiling (50/72/241) by paying for every added line with a
clause deleted where the rule survives elsewhere.

decision-analysis.md: the recommendation item derives the letter from axis 1
alone (end-state sentence + a named mainstream reference), axes 2-4 adjust only
timing and staging, a self-check row carries the literal marker, and the two
hard filters are stated; the facets block's recommendation row gains the same
self-check.

director.md: the class-one gate is the first step of adjudication duty; the
protocol is the answer for consumers and the seat's own axis-1 reading decides
whether the protocol itself is right; an ADR item superseded by the protocol
gets a dated amendment note; a ruling exists only on its own card under a fixed
header line.

dispatch-runbook.md: a claim or dispatch out of the decision box carries
Ruling-ref, and a new changeset file is named after its card.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DAcomhvR9kKizeYgg89Vo8
@claude claude Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 13, 2026
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Sep 13, 2026
@claude

claude Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Contract review

Head: 345b15e7 (PR #17992, card #17748) — read at 2026-09-13T10:05Z by the skills seat at the contract-review tier (served model claude-fable-5-1, get_session external_metadata.last_served_model at 2026-09-13T08:08Z); default-tier build (model: opus, no path mandate) ⇒ compensating control.

① Seat-verified on the head (merge-base 00c332b4; 3 governed files, +18/−18): the six ruled items land where the claim placed them — decision-analysis.md 推荐 item now derives the letter from ① alone with the 「只看①选」 self-check (0 → 2) and the two hard filters, the 四棱 row carries the same self-check; lanes/director.md gains the class-one gate as the first step of 决裁勤务, 「以协议为准」 in both halves (align consumers, read the protocol text yourself), the dated ADR-amendment rule, and 「a ruling exists only on its own card」 with the fixed Ruling: batch … first-line header (0 → 1); dispatch-runbook.md gains the <issue>-<slug>.md changeset-name line and folds Ruling-ref: into the 出决策箱 clause (0 → 1). Every payment's survival site read on the head: decision-analysis.md :15/:16 → director.md :43–:44 (verbatim clauses present); director.md :25 staged-option rule → SKILL.md :749 (present); dispatch-runbook.md :215 Co-Authored-By exemption → AGENTS.md :444 (present); director.md :17 → :31 「机械红可接手」 (present); :23 → the header pointer at :3 (rewritten, present); :71 → :28's pointer to contract-review.md (present); :48 and :46 superseded by items 2 and 3 as ruled. Controls: Prior rulings read 1 → 1, 「裁前先读线程」 1 → 1 (kept verbatim when :9 was split). Lines 50 → 50, 72 → 72, 241 → 241; no line over 120 bytes; check-clause2-carriers --pair 17992 exit 0. Dev gates: 14 derived / 14 run / all exit 0 (doc-formula-expressions 3 → 0 after the locked build), check:pm-governed-prose 0. Deviations accepted as declared: three payments survive in a DIFFERENT file (all named, each one grep away); items 3 and 4 placed in director.md per the claim rather than the director comments' suggested files; the 推荐 block now four lines. Two boundary notes carried for the next decision-analysis.md edit (the HTML-comment marker equivalence at :39 is already mitigated by :40; the 「六项」 label vs the bullet count).
② semver: .claude/**skip-changeset (present). ③ boundary flags: none (open_questions: []).

Implemented-by: claude/issue-17748-recommendation-self-check-and-director-items (mode:subagent)
Reviewed-by: session_01DAcomhvR9kKizeYgg89Vo8

Verdict: PASS. Governed (.claude/**): draft kept for the maintainer's one approval; then this seat lands it under ruling C (#17971). Hot-file: director.md and dispatch-runbook.md are occupied until it lands; the charter PR queues behind.


Generated by Claude Code

@claude

claude Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

维护者速读(终稿)

改了什么 —— 三个 references 文件、加删各 18 行、行数不变。你 9-12 说的「推荐先按长远合理性①得出,②③④ 不能翻字母」写进了 decision-analysis.md(推荐项 + 四棱行各带自检「只看①选 X;②③④ 是否翻转」,并禁「契约迁就实现」「分期半量」两种推荐);总监席今早的五条进了 director.md / dispatch-runbook.md:一类自裁是决裁勤务第一步、「以协议为准」两半(消费面对齐协议;协议对不对由总监席自己读原文判)、ADR 被协议取代加日期注记、裁决只存在于卡上并用固定首行头、Ruling-ref 认领引裁决、changeset 文件名规则。

为什么改 —— 批次 #117 的三张卡(#17238 · #16678 · #17147)推荐都选错了字母,根因是①被算成了④的问题;#9306 那次是没打开协议原文就裁。这次把「怎么算」写成机械步骤。

风险与代价(含回滚) —— 纯章程文本;三处买单的条款在别的文件仍完整(复核记录逐条点了位置)。回滚 = revert 一个 PR。

席位意见 —— 收。本席在 head 345b15e7 亲核六项落点与十处买单存活点,棘轮 50/72/241 不变,--pair exit 0,dev 侧 14 门禁全 0。CI 四项在跑。

你要做的(一个动作) —— 受管面:approve 一次;CI 转绿后本席按 C 落地,不再回到你手上。


Generated by Claude Code

@os-zhuang
os-zhuang marked this pull request as ready for review September 13, 2026 11:27
@os-zhuang
os-zhuang added this pull request to the merge queue Sep 13, 2026
@claude

claude Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

Ruling C landing step — skills seat (session session_01DAcomhvR9kKizeYgg89Vo8), 2026-09-13T11:29Z. Authorized approval read: os-zhuang APPROVED on head 345b15e7 at 2026-09-13T11:27Z (review 5190546915; not dismissed), who also flipped the PR ready and enqueued it in the same minute. Seat readings at 2026-09-13T11:28Z: ① contract review of record 5652606716 names this head 345b15e7 (unchanged since); ② check-clause2-carriers --pair 17992 exit 0; ③ 35 checks on 345b15e7, 0 red, 1 running (Governed Surface Queue Guard — the queue's own run); ④ needs-user-decision cleared in this pass and read back (labels now documentation, size/s, skip-changeset). Queue ref gh-readonly-queue/main/pr-17992-* present. Landing record follows on card #17748 once origin/main carries (#17992); its landing frees lanes/director.md, dispatch-runbook.md and decision-analysis.md for the charter chain's references PR.


Generated by Claude Code

Merged via the queue into main with commit 32a3214 Sep 13, 2026
39 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-17748-recommendation-self-check-and-director-items branch September 13, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants