Skip to content

docs(pm-dispatch): a card that narrows a published accept set is Clause-② no, stays in its lane and owes one contract-review-tier review before the queue - #22223

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-22167-narrowing-card-review-sentence
Oct 8, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/issue-22167-narrowing-card-review-sentence

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Part of #22167

Clause-②: no

What changes

.claude/skills/pm-dispatch/references/execution-duties.md 〈派发〉 gains one bullet directly under the Clause-② lines — after 「条款②只指已发布契约面,拉回已声明契约不触它;卡面复述仍是条款②。」 and before 「删已发布契约文本本就否定的误拒本身是 no;…」:

- 收窄已发布接受集的卡是 `Clause-②: no`,不移车道;入队前欠一次契约复审档复核。

It states the three facts the director's ruling (letter C, comment 6053791774 on the card) settles: a card that narrows a published accept set (refuses tomorrow what passes today) is Clause-②: no, does not move lanes, and owes one contract-review-tier review before the queue. The Clause-② definition lines — 「Clause-②: yes | no 恰这两种拼写,恒英文机器判据;判据:本卡放宽接受集或扩大公开面吗。」 and 「强制条款②:放宽接受集或扩大公开面的卡默认判断档施工;命中即 spec 车道的活。」 — are unchanged byte for byte (re-read on origin/main at 7d7943dd0d, lines 67 and 101).

The ruling's gloss 「明天拒绝今天还能通过的」 is not inside the line: with it the bullet measured 143 bytes against the ratchet's 120-byte per-line budget (check:pm-skill-ratchet went red on exactly that line), and wrapping it would cost a second line the file's ceiling does not have. 「收窄接受集」 reads against the neighbouring 「放宽接受集」 without a gloss; the gloss stays in this PR and on the card.

No issue number enters the operational text (pnpm check:pm-skill-id-lint green).

Line ratchet (pnpm check:pm-skill-ratchet)

  • Ceiling for this file: 183. Count on origin/main: 183 (headroom 0). Count after this PR: 183. The ceiling row is untouched.
  • The new line is paid by deleting one line the same file restates — 〈收集〉 「探活是每轮巡检的固定动作;完成通知不可靠,缺席什么都不证明。」 Where its content survives, all in the same 〈收集〉 section: the probe as a fixed patrol action is step 「③ 已派发未回报的 dev 逐个发状态询问;派发后 ~45 分钟无远程产出即到门槛。」 (and 「已有远程分支/PR 不豁免探针。」); "absence proves nothing" is 「⛔ 永不把没收到失败通知读作还在跑」 in the section's second bullet and 「⑤ 判据永远取正向证据:分支、PR、报告、探活回包。」.
  • No re-wrap anywhere: the diff is exactly +1 / -1 lines, the new line is 108 bytes, the widest-table-row pin stays at 0.

The card's remainder (not in this PR)

The --tier note in scripts/pm/dispatch-gates.mjs (the string "a card that changes contract accept/reject behaviour or widens the public surface owes a contract-review-tier REVIEW too …") is reworded to the same meaning when #22060 W3 unfreezes that file; the file is frozen (ruling 208 R6, read as whole-file) and this PR does not touch it. #22167 stays open for that remainder. #22135 was already amended to Clause-②: no by triage; nothing more there.

维护者速读(草稿)

改了什么:PM 派发规则文件 execution-duties.md 的〈派发〉节,在条款②那四行之下加一句:收窄已发布接受集的卡(明天开始拒绝今天还能通过的元数据)是 Clause-②: no,不换车道;入队前要过一次契约复审档复核。条款②本身的定义一字未动。为付行数棘轮(该文件 183 行、余量 0),删掉了〈收集〉节一句本文件别处已经说过的话(探活是固定巡检动作、通知缺席不证明什么),它的内容仍在同节的 ③ 与 ⑤ 两条里。

为什么改:两段 PM 规则对"收紧"卡给出两个答案——一段说不欠复审、留本车道,另一段说欠复审且归 spec 车道;哪个席位先读到哪段,决定了客户看到的那次"被拒绝"有没有人按契约档看过。裁决(批次 290 第 5 项,字母 C)拆成两问:条款②只问"扩不扩面"(定车道与施工档);收紧的卡另加一句,欠一次契约复审档复核、不移车道。本 PR 落第一半;dispatch-gates.mjs 里 --tier 注释那一半等该文件解冻后随 #22060 W3 落地。

风险与代价(含回滚):只改一行协议文本,不改任何闸门脚本与机制,不加标签不加链;代价是每张收紧已发布接受集的卡入队前多一次契约档复核。回滚 = revert 本 PR,无数据与行为残留。

席位意见:

你要做的:无需操作——Tier S 面,skills 席席内契约复审档复核 PASS 后翻 ready 入队;若不同意这句话的措辞,在卡上留一句即可。

Verification (tree 869d7896df)

Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack on this tree (17 families: 9 matched by path, 8 whole-tree), every command run in the foreground with its exit code captured before any pipe, and reconciled with --ran:

family exit verdict line
pnpm check:pm-skill-ratchet 0 execution-duties.md is 183 lines (ceiling 183; headroom 0); 157 self-test cases pass
pnpm check:pm-skill-id-lint 0 34 file(s) clean (pattern /#[0-9]{3,}/g)
pnpm check:skill-frame-sync 0 one declared copy coherent; 90 markdown files scanned for undeclared copies
node scripts/pm/check-harness-current.mjs --self-test 0 all 26 cases passed
pnpm check:nul-bytes 0 scanned 10178 text files, no raw ASCII control bytes
node scripts/check-closing-keyword-parity.mjs (+ --self-test) 0 / 0 green
node scripts/check-comment-mask-corpus.mjs 0 green
pnpm check:agent-test-spelling 0 green
pnpm check:cross-package-test-inputs 0 green
pnpm check:doc-authoring 0 green
pnpm check:driver-memory-census 0 green
pnpm check:gitlink-declared 0 green
pnpm check:pm-governed-merges 0 green
pnpm check:refd-timer-probe 0 green
pnpm check:watch-hint-literal 0 green
pnpm --filter @objectstack/lint run check:doc-formula-expressions 3 then 0 first run exit 3 (PREREQUISITE NOT MET: @objectstack/formula and @objectstack/lint not built — nothing measured); after turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under the verify lock, rerun exit 0: ✓ check:doc-formula-expressions: 22 record-scoped formula example(s) across 468 files / 1384 TS blocks judged clean by @objectstack/formula.

Not derived, not run: the package builds and type-checks (.claude/** is outside every package), the 53 artifact-roster families (silent on every card), the 11 wide-population families and the type-check lanes — CI owns those. No changeset: .claude/** publishes nothing from any released package, so this PR carries skip-changeset.

The ratchet's red-then-green sequence is recorded on the branch: the first commit carried the 143-byte line (ratchet red on L105), the second shortened it to 108 bytes (ratchet green at 183/183).

Acceptance notes

  • Observation, not filed: 〈收集〉 「标记两种拼写等效(HTML 注释形、首行 os-dev-report)」 keeps the HTML-comment spelling readable on the collecting side while the dev-side rules call that spelling bad; a read-side tolerance, no defect class, left as is.
  • The PM-suggested closing clause 「席内达档或至档子代理皆可」 was not added: it restates 「契约三面自审资格按车道:spec/skills 席达档席内审;未达档 ⛔ 不自审,起隔离达档子代理。」 and the ruling fixes three facts, not four.

Generated by Claude Code

claude added 2 commits October 8, 2026 06:41
…se-② no, stays in its lane and owes one contract-review-tier review before the queue

execution-duties.md 〈派发〉 gains one bullet under the Clause-② lines: a card
that narrows a published accept set (refuses tomorrow what passes today) is
`Clause-②: no`, does not move lanes, and owes one contract-review-tier review
before the queue. The Clause-② definition itself is unchanged.

The line ratchet (ceiling 183, headroom 0) is paid by deleting the 〈收集〉
bullet "探活是每轮巡检的固定动作;完成通知不可靠,缺席什么都不证明", whose
content the same file already states: the probe is patrol step ③, and the
"absence proves nothing / positive evidence only" halves live in the
collection section's first bullet pair and in step ⑤.

Claude-Session: https://claude.ai/code/session_01CXydFDyiQwNbGFkmwrcRQq
Co-authored-by: Claude <noreply@anthropic.com>
… line budget

The gloss in parentheses cost 31 bytes over the per-line budget the ratchet
meters; the three facts the ruling fixes stay (Clause-② no, no lane move,
one contract-review-tier review before the queue), and 「收窄接受集」 reads
against the neighbouring 「放宽接受集」 without a gloss.

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

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: 869d7896dfe89d3d24104fae4848591d07ba5b2b
Local-runs: none

Reviewed in-seat by the skills seat 1 (dispatching seat; this session is served at the contract-review tier, read off get_session), 2026-10-08T07:05Z. Face hit: governed rule text (.claude/skills/pm-dispatch/references/execution-duties.md, Tier S; the pm-dispatch root, built at the contract-review tier by the lane's rule). Read-only shape held: the diff (get_files = 1 file, +1/−1), the card #22167 and its thread (triage 6052908903, the seat's analysis 6053148881, the director's ruling 6053791774, the claim 6053963884, the os-dev-report 6054418138), the head's check-runs; nothing built or run locally. Premises re-read on origin/main (:67 and :101 byte-identical, as the ruling requires; merge-tree clean).

① Derived judgments

  1. The added bullet, directly under the Clause-② lines in 〈派发〉: 「收窄已发布接受集的卡是 Clause-②: no,不移车道;入队前欠一次契约复审档复核。」 — correct: the three facts ruling C fixes (Clause-② stays no; no lane move; one contract-review-tier review before the queue), in the file's one-line bullet grammar, no issue number (check:pm-skill-id-lint green). The ruling's gloss (明天拒绝今天还能通过的) is not in the line: with it the bullet measured 143 bytes against the ratchet's 120-byte per-line budget; the ruling's own term "narrows a published accept set" is stated. Accepted.
  2. The Clause-② definition lines (:67, :101) unchanged, as the ruling requires; scripts/pm/dispatch-gates.mjs untouched (frozen under ruling 208 R6; the --tier note is this card's remainder, Part of, with program(pm): rule-text diet and guard-script split for the skills lane — 3,020 lines of skill text, 126k lines of pm scripts (two files 65k), 58 commits in two weeks; plus a body section-patch door and template files for seat writes #22060 W3).
  3. Ratchet payment (pnpm check:pm-skill-ratchet: ceiling 183, headroom 0): the deleted 〈收集〉 line 「探活是每轮巡检的固定动作;完成通知不可靠,缺席什么都不证明。」 — its three claims survive in the same section on the head: the probe as the patrol's fixed act in step ③ (已派发未回报的 dev 逐个发状态询问) with 「已有远程分支/PR 不豁免探针」; the unreliability of completion notices in 「⛔ 永不把没收到失败通知读作还在跑」 and 「停摆永不自愈:携带任务中途状态的完成通知本身就是停摆信号」; "absence proves nothing" in step ⑤ 「判据永远取正向证据」. Content, not wrapping; no rule lost. 183 → 183 lines.
  4. The first push carried an over-budget line (gate red on L105, 143 bytes); corrected by a second commit, no history rewrite. The ratchet is shown reading the file (red then green). Accepted.
  5. 17 gate families derived on the head, each exit captured, --ran reconciliation 17 run, 0 NOT-MEASURED, 0 UNRUN; one prerequisite re-run recorded with its first exit; a classifier refusal of a sed -i on the recorded exit was answered by re-running the family, which is the right shape. CI reading on the head at this record's clock: 29 check-runs, 15 success, 12 skipped, 2 in progress (Lint & Repo Gates, Type Check · workspace); the flip waits for them.

② Semver level

None. Internal PM protocol text; .claude/** publishes nothing. skip-changeset on the PR is correct and read back (the dev's own relay write went through this time).

③ Boundary flags

Implemented-by: claude/issue-22167-narrowing-card-review-sentence
Reviewed-by: session_01CXydFDyiQwNbGFkmwrcRQq

VERDICT: PASS


Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 8, 2026 07:16
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 8, 2026
Merged via the queue into main with commit 5d5a88e Oct 8, 2026
32 checks passed
@objectstack-fleet
objectstack-fleet Bot deleted the claude/issue-22167-narrowing-card-review-sentence branch October 8, 2026 08:20
This was referenced Oct 8, 2026
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/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants