docs(pm-dispatch): enter the maintainer's 插队 and 契约面卡 tiers into the 取卡全序 (SKILL.md + core-rules twin) - #19506
Merged
Conversation
…face tiers into the take order The 取卡全序 line in SKILL.md and its core-rules twin now carry two tiers above the label ladder: a card the maintainer directly ordered to jump (recorded on the card with the three provenance items) first, then a contract-surface card (criterion: references/lanes/spec.md), then the existing priority ladder, now on its own 标签序 line. Both files land the same two lines, paying the added line by retiring the 45-minute probe-threshold restatement (SKILL.md) and its twin (core-rules); its surviving home is the collection section's probe-threshold, death-basis and baseline lines. Net 0 lines in both files, every changed line under the 120-byte cap. Claude-Session: https://claude.ai/code/session_017ETYWqMQD4qMtZzAGovWNi Co-authored-by: Claude <noreply@anthropic.com>
Collaborator
Author
Contract reviewServed-tier: ① Derived judgments
② Semver levelNone — nothing published; ③ Boundary flags
Implemented-by: VERDICT: PASS Generated by Claude Code |
os-steve
marked this pull request as ready for review
September 21, 2026 04:32
os-steve
enabled auto-merge
September 21, 2026 04:32
This was referenced Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #19127
Clause-②: no
What lands
The maintainer's ruling on the card, verbatim (裁决引文照抄不译):
and the maintainer's direct order that put this card at the head of the seat's queue, verbatim: 「19127 插队」 (recorded with the 出处三件 on the seat's claim of record, comment 5755214464).
Two tiers enter the 取卡全序 above the priority ladder, in
SKILL.mdand itsreferences/core-rules.mdtwin as ONE order in the same words:references/lanes/spec.md:17–:18 (「契约面 = 「改动前后同一份输入的接受/拒绝结果变了」;判定逐字节不变 ⇒ 辅助面。」 plus the five hit-any forms), which this PR reads and does not touch.A level of the 全序 sits above 卡龄 by construction (the ladder's final tiebreak) — the 「优先处理」 = tier-not-tiebreak reading.
Before / after
Byte counts are content bytes (trailing newline excluded); the cap is the ratchet's
MAX_LINE_BYTES= 120. The dispatch's 120 / 119 figures counted the newline.SKILL.md:464 at base 4045781 (119 B):priority:p0>pm:blocking>target:板上项 > p1 > p2 > p3 > 无级;同级先Bug再卡龄。becomes :464 (119 B) + :465 (116 B):
references/lanes/spec.md)> 标签序。priority:p0>pm:blocking>target:板上项 > p1 > p2 > p3 > 无级;同级先Bug再卡龄。references/core-rules.md:108 at base (118 B):becomes :108 (119 B) + :109 (116 B), byte-identical to the SKILL.md pair.
The retired duplicate and its surviving home
The added line in each file is paid by one retirement (net 0:
SKILL.md813 → 813,core-rules.md151 → 151):SKILL.md:578 (61 B), retired: 「45 分钟是发探针的门槛,⛔ 不是判死的门槛。」 Every clause survives in the same 收集 section: :574 「派发后 ~45 分钟无远程产出即到门槛」 (the ~45-minute reading IS the probe threshold), :579 「判死只有三类依据:探针回包表明已死;宿主明确回报 stopped;超过本车道基线且连续静默」 (the death bases — none is a minute count) and :580 「⛔ 非本文任何常数」 (the baseline is no constant in this file). Proof onorigin/main4045781:git grep -n '45 分钟' origin/main -- .claude/skills/pm-dispatch/hits SKILL.md :573 / :574 / :578 and core-rules :118 only;git grep -n '判死' origin/main -- .claude/skills/pm-dispatch/SKILL.mdhits :493 / :494 / :569 / :578 / :579 / :581 / :583;git grep -n '非本文任何常数'hits :580 only.references/core-rules.md:118 (111 B), retired as that line's twin under 「一条规则在本文与核心条款一处改动,另一处同 PR 同改」: 「45 分钟是发探针的门槛而非判死门槛,判死只认探针回包、宿主信号或超实测基线。」 Its SKILL.md home (:574 / :579 / :580) is unchanged. Inside core-rules this demotes a collection-cadence detail out of the core subset to make room for the take order, a core rule of the execution seat — a judgment, stated for the reviewer rather than dressed as a dedupe.Pre-existing twin divergence — measured
At base the two lines did NOT encode different orders; they encoded the same ladder in different vocabulary. core-rules :36 「插队标签可超
batch立即派发」 is the twin of SKILL.md :120 (priority:p0| 插队:…), so :108's 插队卡 waspriority:p0; 有下游依赖者的卡 ispm:blockingby SKILL.md :114 (「有 open 下游依赖者」); 板上项 istarget:板上项; 缺陷卡 isBug. PM mechanism assumption 2 ("a DIFFERENT order … has no p0 /pm:blocking") is therefore refuted on the order and confirmed on the words. What let the words drift: no gate compares the twins' content —grep -rl core-rules scripts/hits onlycheck-skill-line-ratchet.mjs(a line count) anddispatch-gates.mjs(a tier lookup);pnpm check:pm-skill-id-lintandpnpm check:pm-governed-proseexit 0 on the unchanged tree and say nothing about it. This PR lands the two lines byte-identical so the next twin edit is mechanical.Two decisions, on the four axes(四维分析)
(a) 修法辅助、题材是契约的卡(卡上的例子 #19085:表单漏列两个已声明键,schema 照收,同一份元数据的判定不变)— 不入契约面卡一级。判据只有一条:字节测试;这句已在
references/lanes/spec.md:17 「判定逐字节不变 ⇒ 辅助面」,本 PR 用指针接上,不复述(复述正是棘轮要防的重复)。check:generated --fixwrites artifacts from a turbo CACHE-SERVED dist and then reports 「All 16 generated artifacts are up to date」 — a verifier reporting success over a measurement it did not take #19086 辅助面被 p2 lint: refuse an incoherent dataset measure (aggregate × field type) at authoring time, from the spec's compatibility matrix (lint leg of #16099) #16354 收紧卡超过)。有拉动,不是投机面。(b) 插队卡的识别 — 维护者当面点名本卡的指令,走既有 :226–:227 直派通道,并按 :149 出处三件记在卡上;本席认领 5755214464 即活样本。
One point for the seat's speed-read: the dispatch ruling places 契约面卡 above the whole ladder,
priority:p0included. Since :120 dispatches p0 immediately (可超batch、破轮次), the relative order is load-bearing only when a p0 waits for a slot; if the maintainer prefers p0 andpm:blockingabove 契约面卡, it is a one-token move on :464 and :108.Verification (head de581d0)
pnpm check:pm-skill-ratchet:: exit 0 —SKILL.md is 813 lines (ceiling 813; headroom 0),widest table row is 342 bytes (pin 342);core-rules.md is 151 lines (ceiling 151; headroom 0),widest table row is 0 bytes (pin 0). Identical readings on the unchanged tree. The gate prints no per-line "longest line" reading (its 120 B cap passes silently); the longest changed line is 119 B by direct measurement.pnpm check:pm-skill-id-lint:: exit 0 (27 files clean) andpnpm check:pm-governed-prose:: exit 0 (2 surfaces name all 6 governed surfaces) — both also exit 0 on the unchanged tree.pnpm check:nul-bytes:: exit 0.node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack(no paths; change set = 2 paths vs merge base 4045781) → 21 commands, every exit captured before any pipe;--ranreconciliation:21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN. One of them,pnpm --filter @objectstack/lint run check:doc-formula-expressions, first exited 3 — its declared PREREQUISITE NOT MET shape (formula / lint unbuilt; "Nothing was measured"), not a red; afterturbo run build --filter=@objectstack/formula --filter=@objectstack/lintunder the verify lock (VERDICT command-exit 0, held 13 s) it exits 0 (22 record-scoped examples judged clean).node scripts/pm/check-governed-merges.mjs --pr N(expected exit 3 GOVERNED, Tier S) is recorded in theos-dev-reportcomment on the card, since the number does not exist before this body is written and the body is written once.维护者速读(草稿)
改了什么:PM 派发章程的「取卡全序」那一行,前面多了两级:你当面点名插队的卡最先,其次是契约面卡(判是不是契约面的一句话测试不重抄,指向它原来的家
references/lanes/spec.md),然后才是原来的标签阶梯(p0、blocking、板上项、p1 到 p3)。核心条款里的孪生行同改成一模一样的两行。为了不涨行数,删掉了一条别处已经说过的重复句(45 分钟探针门槛那句),两个文件各净 0 行。为什么改:你 9 月 18 日说 「应该优先处理 契约面卡」,这条规则当时只活在一张席位帖里;新开的席位读章程读不到它,而且两个席位同时按它重排队列,同一分钟撞上了同一张卡。写进章程,席位各自按自己的节奏重排,不再撞。
风险与代价(含回滚):纯章程文本,不碰代码、不碰标签、不碰任何卡的定级。唯一要你看一眼的措辞:契约面卡按派发裁决排在 p0 之上,但 p0 本来就是立即派发不排队,所以只在 p0 等槽位时才有差别。回滚 = revert 这一个 commit。
席位意见:(留空,席位定稿时填)
你要做的:一个动作——若契约面卡应排在 p0 与 blocking 之下而不是之上,回一个字「下」;否则不用动,席位按契约复审 PASS 落地。
Acceptance notes (observations, no card filed)
pm:blocking「在其车道排最前」 while the ladder (now :465) rankspriority:p0above it — a pre-existing wording tension, unchanged here. carrier: none (承接者:无).priority:p0with the word 插队; the new top tier is 维护者直派插队卡. The ladder line namespriority:p0as its own rung, so the two are structurally distinct; the shared word is noted, not changed. carrier: none.domain:skillsseat.Generated by Claude Code