Repository navigation
docs(pm-dispatch): retire rule A — the spec floor follows the commit pin since objectstack-ai/objectui#12958 - #24742
Conversation
…pin since objectstack-ai/objectui#12958 The ending of rule A is objectstack-ai/objectui#12958: objectui's publish step now computes every @objectstack/* floor from .objectstack-sha (scripts/objectstack-floor.mjs runs first in changeset:publish), so a first consumer has no manifest floor left to raise by hand. The three dispatch-runbook lines that ordered that raise are deleted; rule B in triage-duties.md is untouched. Claude-Session: https://claude.ai/code/session_01HEdP5tPhqQfzwRmKDxwn85 Co-authored-by: Claude <noreply@anthropic.com>
Contract reviewRendered 2026-10-20T04:03Z · isolated review, read-only · PR #24742 · card #24730 Served-tier: Inputs: card #24730 body and its four comments (triage 6282324835, claim 6282676166, dispatch order 6282763977 read only to confirm the claim's branch, os-dev-report 6282957585); PR #24742 body, file list and the net diff against ① Derived judgments
② Semver level
③ Boundary flags
Nothing escalates. The one judgment left open for the seat is item ①6 (keep the ceiling at 241 or lower it to 238 in a later ordinary edit); neither answer changes this verdict. Implemented-by: VERDICT: PASS Generated by Claude Code |
维护者速读(终稿)· PR #24742 ·
|
Fixes #24730
Clause-②: no
Retires rule A of the dispatch runbook: the three lines under 〈派发词构造细则〉 that told a dispatching seat to make the first consumer of a new
@objectstack/specrelease raise that package's manifest floor in the same PR. The rule's subject ended with objectstack-ai/objectui#12958, which made objectui compute its@objectstack/*floors from the commit pin at publish. Triage shape (comment 6282324835): one Tier S text PR that deletes the three lines.The change
One file,
.claude/skills/pm-dispatch/references/dispatch-runbook.md, three whole lines deleted, nothing added. The deleted lines, verbatim:scripts/pm/check-skill-line-ratchet.mjsstays at 241. That is the card's default: the 3 lines of headroom are left for later ordinary edits to this file.triage-duties.mdlines 30–31, the bump card's wait list read from the hold index) is not in the diff.Why: the premise and its ruling source
.objectstack-sha),开发与 CI 从该提交的源码构建@objectstack/*,npm 版本范围与下限只在 objectui 发版时由提交算出 —— 前端不再逐个 PR 等后端发版 objectui#12955 (objectui comment 6248859734). Under it, objectui consumes@objectstack/*by commit pin (.objectstack-sha).@objectstack/*floor from.objectstack-sha— the first published release that contains the pinned commit — and stops when none does (ruling B on objectui#12955, step 2) objectui#12958, through tooling: publish computes each @objectstack/* floor from .objectstack-sha (objectui#12958) objectui#13024, merge commit4484a1104, merged 2026-10-19T06:37Z. objectui'schangeset:publishnow runsscripts/objectstack-floor.mjsfirst. That script computes each@objectstack/*floor from.objectstack-shaand, at publish, rewrites any range below the floor.83048c686). The objectuidomain:uiseat's note6248946273on that card had already named this re-read as due once tooling: objectui's publish computes each@objectstack/*floor from.objectstack-sha— the first published release that contains the pinned commit — and stops when none does (ruling B on objectui#12955, step 2) objectui#12958 shipped.@objectstack/speconly throughworkspace:ranges..objectstack-shabump cards.Premise re-checks (the card's 〈Premises〉, each run before the edit)
origin/main4b6774649, fetched in this run, withgit show origin/main:package.json | grep changeset:publish. The line reads"changeset:publish": "node scripts/objectstack-floor.mjs && node scripts/check-published-dist-tooling.mjs && node scripts/check-spec-range-floors.mjs && changeset publish",and so starts withnode scripts/objectstack-floor.mjs &&. Ancestry:git merge-base --is-ancestor 4484a1104 origin/mainexits 0, which proves itself even on a shallow checkout.GET /repos/objectstack-ai/objectui/pulls/13024returnsmerged: true,merge_commit_sha4484a11041f336b96e545e73277ac61a425c7c74andmerged_at2026-10-19T06:37:07Z. The issue read of tooling: objectui's publish computes each@objectstack/*floor from.objectstack-sha— the first published release that contains the pinned commit — and stops when none does (ruling B on objectui#12955, step 2) objectui#12958 returnsstate_reasoncompleted.origin/main7e7e605de, this branch's base; the dispatch had read9b2953d62.grep -rnE '永不禁下限|首个消费者|下限抬到' --exclude-dir=node_modules --exclude-dir=.git .gives 3 hits, alldispatch-runbook.md:211–213. After the edit,grep -cEon the file with the same pattern gives 0. Control:grep -c '派发词构造细则'on the same file gives 1.grep -n 'hold 索引' .claude/skills/pm-dispatch/references/triage-duties.mdhits lines 30 and 31, and that file is not in the diff.Also checked: no file cites a line number inside
dispatch-runbook.md, so the 3-line shift leaves nothing stale.git grep -nE 'dispatch-runbook(\.md)?[:#L ]+[0-9]{3}'finds 0 hits. The tree grep in premise 3 also shows that no test corpus pins the deleted text.Gates
17 commands derived by
node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstackat HEAD3969b2c3c, the final commit. This is the same list the dispatch derived at9b2953d62. Every command ran at that head, and each exit code was captured before any pipe:✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/references/dispatch-runbook.md is 238 lines (ceiling 241; headroom 3).check:doc-formula-expressionsfirst answered exit 3 (PREREQUISITE NOT MET: the@objectstack/formulaand@objectstack/lintdist were not built). That is not a measurement. Both packages were then built under the verify lock (VERDICT command-exit 0), and the re-run answered exit 0.--ranreconciliation:✓ dispatch-gates --ran: 17 derived famil(ies) accounted for — 17 run, 0 NOT-MEASURED (a DERIVED zero — all 17 recorded an exit code and none of them is 3).check:dev-prereqsandcheck:skill-frame-freshnessare not owed: the diff touches neitherpackages/specnor the four-axis frame file..claude/**publishes nothing, soskip-changesetis declared on create.Acceptance notes
origin/mainmoved from9b2953d62(the dispatch's read) to7e7e605de(this branch's base) between the two reads. The target file did not change between them: line numbers, byte counts and the tree grep are identical.维护者速读(草稿)
改了什么
@objectstack/spec版本下限一起抬上去。为什么改
.objectstack-sha),开发与 CI 从该提交的源码构建@objectstack/*,npm 版本范围与下限只在 objectui 发版时由提交算出 —— 前端不再逐个 PR 等后端发版 objectui#12955 的裁决 B:objectui 改为按提交 pin 消费@objectstack/*。@objectstack/*floor from.objectstack-sha— the first published release that contains the pinned commit — and stops when none does (ruling B on objectui#12955, step 2) objectui#12958 已经落地这一点(tooling: publish computes each @objectstack/* floor from .objectstack-sha (objectui#12958) objectui#13024 已合并):objectui 发布时按.objectstack-sha自动算出每个下限,并改写低于下限的版本区间。workspace:依赖,hotcrm 逐包写定版本号,cloud 走 pin bump 单。风险与代价(含回滚)
席位意见
你要做的
Generated by Claude Code