Repository navigation
[finding] the maintainer ruled 「contract-surface cards first」 and it lives only in one seat post — the charter take order says nothing about it, and its arrival caused a same-minute claim race between two seats #19127
Description
Activity
- addedpriority:p2Medium: important, M3Medium: important, M3and removed
on Sep 20, 2026 Lane first-touch grading (skills seat self-triage) — by the
domain:skillsseat (session_01W5y9kRg1YtYaMQYExVLRc2, seat post #7623) at 2026-09-20T05:17Z; premise re-read on objectstackorigin/main1b82c51at 2026-09-20T05:08Z. 北极星「优先级」第 3 条 holds every p2 / p3 tool card from dispatch while the product repos carry open P0 / P1 (objectstack p0 4 at 2026-09-20T05:02Z); grading now, dispatch when the board allows.finding→pm:queue·priority:p2·tooling.- Class: a principle gap — a maintainer ruling (「契约面卡先」, quoted verbatim on the card and on [PM seat] domain:spec · seat 3 — 🟢 zhuangjianguo · session_01KNKBCRDJCu5tGy3TEbvtrF #18883) that reorders every seat's take and lives in one seat post. Re-read on
1b82c51:SKILL.mdnames 契约面 only for lane routing (:201,:515,:638); the 候选与批次 section carries no contract-surface ordering. Premise live. - Priority: rule 2 — 「循环须能从全新会话恢复」 is violated for every fresh seat, and the arrival-by-conversation shape already produced a same-minute claim race ([finding] the published JSON Schema is WIDER than the zod schema it is generated from wherever a
.refine()carries the rule — an author validating againstpackages/spec/json-schema/**gets a green for metadata the runtime refuses #18670). - Shape (Tier H,
SKILL.md): the ordering line in 候选与批次 plus the one-sentence test, quoted not paraphrased (裁决引文照抄不译); core-rules twin if the line is core. The authorized approval is the ruling on the wording. - Serial:
SKILL.md(zero slack) — behind [finding] the protocol namesRelease:as the act that takes a card out of a seat's hands, but a claim RETRACTED before work starts is written as prose — the arbiter now reads that prose (PR #18770), and whether the protocol should REQUIRE theRelease:spelling for a retraction is a governed-text question nobody has ruled #18773 text half → skills: re-key the three 事实层 = references/ spellings the Tier S ruling leaves false (os-dev.md :286–:287, landing-operations.md :27–:28, H48) #19146 → skills(pm-dispatch): grading reads the checklist ITEM, not the area —Path:carries the item id, the card inherits the item's P, and 「有人在等」 is not a test #19155 → finding(skills): the English-only invariant's four sanctioned Chinese channels do not name the seat post's 说明 section — and this seat broke it seven times in four hours reading it the other way #19239. Path:line prepended to the body.
Generated by Claude Code
- Class: a principle gap — a maintainer ruling (「契约面卡先」, quoted verbatim on the card and on [PM seat] domain:spec · seat 3 — 🟢 zhuangjianguo · session_01KNKBCRDJCu5tGy3TEbvtrF #18883) that reorders every seat's take and lives in one seat post. Re-read on
Claim: PM loop round 1 (skills seat 2 at #19287 — R1, fable-first: maintainer direct dispatch)
Session:session_017ETYWqMQD4qMtZzAGovWNi
Branch:claude/issue-19127-contract-surface-take-order
Worktree:objectstack-issue-19127
Domain:domain:skills
Seat:domain:skills#2
File surface:.claude/skills/pm-dispatch/SKILL.md候选与批次 take-order region only (:459 「取卡全序」 line and its neighbours at2277d1f): the maintainer's 「契约面卡先」 ruling enters the take order as a tier above the priority ladder, with its one-sentence test QUOTED not paraphrased (裁决引文照抄不译), paid by retiring a provable duplicate named in the PR body (813 / 813, zero slack);references/core-rules.md:108 twin (「取卡全序:…」) in place; ⛔ no other SKILL.md region (:128 PR #19351 in flight; :214 / :241–:243 PR #19321 and :441 PR #19317 in the merge queue — all region-disjoint; :99 / :362 / :485–:486 / :496 / :608 are other cards); ⛔ no script.
Container & model:Min size,Min judgment,mode:subagent,CONTRACT_REVIEW_TIER—dispatch-gates --tier --repo objectstack-ai/objectstack .claude/skills/pm-dispatch/SKILL.mdat2277d1f: the PM dispatch skill MAIN file is MANDATORY (clause ①); an ordering rule on a zero-slack file is a judgment, ⛔ not the one-line exit.
Clause-②: no
Thread-read: 5747823388
Ruling-ref: the maintainer's ruling quoted verbatim on this card (delivered todomain:spec#3in a live session 2026-09-18T21:47Z, recorded on #18883): 「契约面卡 = 修完之后,同一份输入的接受/拒绝结果会变 … 命中任一即契约面 … 应该优先处理 契约面卡 卡」 — the wording lands as quoted; the ruling sits in the 维护者裁决 tier; the lane grading 5747823388 (p2 ·tooling; Tier H shape; core-rules twin if core; 「the authorized approval is the ruling on the wording」) is the spec. Seat reading this act: the test already lives inreferences/lanes/spec.md:17–:18 (席内分派 参考) and nowhere in 候选与批次 (git greponorigin/mainfor the ruling's phrases under.claude/skills/pm-dispatch/: only that file); the ordering half — 「优先处理」 as a tier above recency — is the gap. Maintainer direct dispatch in this seat's session, verbatim: 「后续优先派需要fable 的任务」 (2026-09-20).
Serial constraints cleared: 3 of 37 open PRs touchSKILL.md(PRs 19317 19321 19351 — hunks read this act, none in the take-order region) and 3 touchcore-rules.md(every open PR's file list enumerated at 2026-09-20T13:13Z; positive control on the same enumeration:scripts/pm/dispatch-gates.mjs1);git ls-remote --heads origin | grep issue-19127→ 0 heads; ruling 甲 (5727164406, region-level concurrency) applied — this claim declares its region; the dev mergesorigin/mainbefore opening the PR so the queued SKILL.md landings are in its base; H17 index: 0 rows.Net-line budget (a PM figure, ⛔ not the dev's to raise): net 0 in
SKILL.mdandcore-rules.md— every added line paid by a retired duplicate named verbatim in the PR body with its surviving home. Label on the PR:skip-changeset.
Generated by Claude Code
Release: claim 5750024544 withdrawn —
domain:skills#2(session_017ETYWqMQD4qMtZzAGovWNi, seat post #19287) at 2026-09-20T14:05Z.Why: the maintainer's standing order in this seat's session, verbatim 「当前任务处理完就只处理高优先级任务。」 (2026-09-20) — once the in-flight items land, the seat takes high-priority work only. This card is
priority:p2, was claimed at 2026-09-20T13:14Z and ⛔ never dispatched (the mandatory tier's usage limit was reached before the dev could start), so the claim is withdrawn rather than held:pm:dispatched→pm:queue, assignee cleared, read back. The branchclaude/issue-19127-contract-surface-take-orderwas never created (0 heads onorigin); no worktree exists.Handed over, for the next taker: the claim text above is the seat's reading and stands as evidence, not as a decision — the test already lives in
references/lanes/spec.md:17–:18 and nowhere in 候选与批次; the gap is the ORDERING half (「优先处理」 as a tier);SKILL.md:459 measures 120 B andcore-rules.md:108 119 B atb1d3945, so an in-place rewrite has no byte headroom and one added line must be paid by a retired duplicate; the ruling's one-sentence test exceeds the 120 B line cap verbatim, so the shortest verbatim clause is the candidate. ⛔ Not a premise change; the lane grading 5747823388 stands.
Generated by Claude Code
Claim:
domain:skillsseat 2 re-takes #19127 for dispatch on the maintainer's direct order 「19127 插队」, at 2026-09-21T04:02Z
Session:session_017ETYWqMQD4qMtZzAGovWNi
Branch:claude/issue-19127-contract-surface-take-order
Worktree: the dev's own detached worktree fromorigin/main(⛔ never the seat's checkout)
Domain:domain:skills
Seat:domain:skills#2
File surface:.claude/skills/pm-dispatch/SKILL.md— the 取卡全序 line (:464 atd00692f, 120 B, at the byte cap) plus ONE retired provable duplicate elsewhere in the file to pay the line the new tier needs (813 / 813, net 0);.claude/skills/pm-dispatch/references/core-rules.md:108 (the twin — it already reads 「插队卡、有下游依赖者的卡、板上项、p1、p2、p3、无级」, a DIFFERENT order from SKILL.md's: both lines land as ONE order in this PR, net ≤ 0 at 151 / 151);references/lanes/spec.md:17–:18 is the test's home and is READ, ⛔ not rewritten. ⛔ No other SKILL.md region: :466–:498 is #19240's (this seat, in flight) and :426–:445 is PR #19462's (director) — region-disjoint under ruling 甲; the later lander mergesorigin/mainonce.
Container & model:mode:subagent·CONTRACT_REVIEW_TIER(mandatory tier:SKILL.mdis on the surface)
Clause-②: no
Thread-read: 5750293509
Thread-read note: 4 comments read in full; the seat's own release 5750293509 is the newest at this write and its hand-over reading stands (the test already lives inlanes/spec.md; the gap is the ORDERING half).
Ruling-ref: the maintainer's direct dispatch in this seat's session — 出处三件: 谁的指令 = the maintainer (a real user turn insession_017ETYWqMQD4qMtZzAGovWNi); 在哪说 = this seat's session chat, 2026-09-21, right after the unpark survey's execution; 原话 (逐字) = 「19127 插队」. Read as: this card jumps the take order now — over the standing order 「当前任务处理完就只处理高优先级任务。」 and over ruling #202 B's one-tooling-dev-in-flight count (the maintainer's direct-dispatch channel is the standing exception, as #19457 records). The wording it lands is the maintainer's own, quoted not paraphrased (裁决引文照抄不译): 「契约面卡 = 修完之后,同一份输入的接受/拒绝结果会变 … 命中任一即契约面 … 应该优先处理 契约面卡 卡」 (verbatim on the card; delivered todomain:spec#3on 2026-09-18, recorded on #18883). The lane grading 5747823388 (p2 ·tooling) stands as the spec; its 「Tier H」 reading predates #19133 — all of.claude/**is Tier S now, so the seat lands this PR on its own## Contract reviewPASS.
Premise re-read (origin/maind00692fat 2026-09-21T03:55Z):SKILL.md:464 carries no contract-surface tier (priority:p0>pm:blocking>target:板上项 > p1 > p2 > p3 > 无级; 120 B);core-rules.md:108 carries a different order that already names 插队卡 first; the ruling's test lives only inlanes/spec.md:17–:18; SKILL.md is 813 / 813 against ceiling 813 (819 once PR #19462 lands); no open PR touches :464 or core-rules :108.
Serial constraints cleared: region-disjoint with PR #19462 (SKILL.md :426–:445, :54, :114, :170, :337–:370, :671, :764, :786) and with #19240's branch (:466–:498) — adjacent to the latter, so whichever lands second mergesorigin/mainonce and re-measures the ratchet. In flight after this claim: 2 / 5.
Net-line budget:SKILL.md0 (813 / 813);core-rules.md≤ 0 (151 / 151); every line ≤ 120 B; ⛔ no script.
Generated by Claude Code
os-dev-report
{ "issue": 19127, "status": "done", "branch": "claude/issue-19127-contract-surface-take-order", "pr": "https://github.com/objectstack-ai/objectstack/pull/19506", "head_sha": "de581d0a1da2b796b1f3336eba6071eb08047e4a", "session": "session_017ETYWqMQD4qMtZzAGovWNi", "premise_still_valid": true, "summary": "The 取卡全序 line in SKILL.md (:464) and its core-rules twin (:108) now carry the two tiers the maintainer ruled, above the priority ladder and in the same words in both files: 维护者直派插队卡(出处三件)first — recognised by the existing 维护者直派通道 rule (:226–:227) and recorded per :149 — then 契约面卡(判据见 references/lanes/spec.md), then the existing ladder on its own 标签序 line. The test is not restated; the line points at lanes/spec.md :17–:18, which is read and untouched. Net 0 in both files (813/813, 151/151), every changed line 116–119 B under the 120 B cap; the added line is paid by retiring SKILL.md :578 (a provable restatement of :574/:579/:580) and its core-rules twin :118. Draft PR #19506 on main, first line Fixes #19127, Clause-②: no, skip-changeset labelled; check-governed-merges --pr 19506 exits 3 GOVERNED Tier S, so it stays draft for the seat's Contract review PASS. Card was assigned (os-steve) at dispatch; no assignee write by me.", "files_changed": [ ".claude/skills/pm-dispatch/SKILL.md", ".claude/skills/pm-dispatch/references/core-rules.md" ], "net_lines": { ".claude/skills/pm-dispatch/SKILL.md": "813 -> 813 (net 0; ceiling 813; +2 −2 lines)", ".claude/skills/pm-dispatch/references/core-rules.md": "151 -> 151 (net 0; ceiling 151; +2 −2 lines)" }, "before_after": { "SKILL.md :464 before (119 B content; 120 with newline)": "- 取卡全序:`priority:p0` > `pm:blocking` > `target:` 板上项 > p1 > p2 > p3 > 无级;同级先 `Bug` 再卡龄。", "SKILL.md :464 after (119 B)": "- 取卡全序:维护者直派插队卡(出处三件)> 契约面卡(判据见 `references/lanes/spec.md`)> 标签序。", "SKILL.md :465 after (116 B)": "- 标签序:`priority:p0` > `pm:blocking` > `target:` 板上项 > p1 > p2 > p3 > 无级;同级先 `Bug` 再卡龄。", "SKILL.md :578 retired (61 B)": "- 45 分钟是发探针的门槛,⛔ 不是判死的门槛。 — surviving home :574 (probe threshold at ~45 min) + :579 (the three death bases) + :580 (⛔ 非本文任何常数); grep proof on origin/main 4045781: '45 分钟' hits SKILL.md :573/:574/:578 + core-rules :118 only; '判死' hits SKILL.md :493/:494/:569/:578/:579/:581/:583; '非本文任何常数' hits :580 only", "core-rules.md :108 before (118 B)": "- 取卡全序:插队卡、有下游依赖者的卡、板上项、p1、p2、p3、无级;同级缺陷卡先再卡龄。", "core-rules.md :108–:109 after": "byte-identical to SKILL.md :464–:465 (119 B + 116 B)", "core-rules.md :118 retired (111 B)": "- 45 分钟是发探针的门槛而非判死门槛,判死只认探针回包、宿主信号或超实测基线。 — twin of the retired SKILL.md :578 under the twin rule; its SKILL.md home (:574/:579/:580) is unchanged; inside core-rules this is a demotion of a collection-cadence detail out of the core subset, stated as such in the PR body", "references/lanes/spec.md :17–:18": "read, not touched (the test's home)" }, "tests": "Head de581d0. Unchanged-tree baselines: pnpm check:pm-skill-ratchet exit 0 (SKILL.md 813 lines ceiling 813; core-rules 151 ceiling 151), check:pm-skill-id-lint exit 0 (27 files clean), check:pm-governed-prose exit 0, check:nul-bytes exit 0. Edited tree: the same four exit 0 with identical ratchet readings ('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)'); the ratchet prints no per-line longest-line reading (its 120 B cap passes silently) — longest changed line 119 B by direct measurement. Derived union: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (no paths; 2 paths vs merge base 4045781) = 21 commands, each exit captured to a file before any pipe; --ran reconciliation printed '21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN'. pnpm --filter @objectstack/lint run check:doc-formula-expressions first exited 3 = its declared PREREQUISITE NOT MET (formula/lint unbuilt, 'Nothing was measured'); after 'turbo run build --filter=@objectstack/formula --filter=@objectstack/lint' under os-verify-lock (VERDICT command-exit 0, held 13 s, waited 0 s) it exits 0 ('22 record-scoped formula example(s) … judged clean'). No package touched: no ① dependency-closure build, no package test owed. Ablation: not applicable (charter prose, no runtime, no test file). Pre-push check:commit-card-trailers passed (no card relation, no model identifier). PR body read back byte-equal to the sent body with exactly one footer.", "gates": [ "pnpm check:pm-skill-ratchet :: exit 0", "pnpm check:pm-skill-id-lint :: exit 0", "pnpm check:pm-governed-prose :: exit 0", "pnpm check:nul-bytes :: exit 0", "node scripts/check-closing-keyword-parity.mjs :: exit 0", "node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0", "node scripts/check-comment-mask-corpus.mjs :: exit 0", "node scripts/pm/check-governed-queue-guard.mjs --self-test :: exit 0", "node scripts/pm/check-harness-current.mjs --self-test :: exit 0", "pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 3 (PREREQUISITE NOT MET, nothing measured) then exit 0 after building formula+lint under the verify lock", "pnpm check:agent-test-spelling :: exit 0", "pnpm check:cross-package-test-inputs :: exit 0", "pnpm check:doc-authoring :: exit 0", "pnpm check:driver-memory-census :: exit 0", "pnpm check:gitlink-declared :: exit 0", "pnpm check:pm-expected-skips :: exit 0", "pnpm check:pm-governed-merges :: exit 0", "pnpm check:pm-half-states :: exit 0", "pnpm check:refd-timer-probe :: exit 0", "pnpm check:skill-frame-sync :: exit 0", "pnpm check:watch-hint-literal :: exit 0", "node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran ran.txt :: exit 0 (21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN)", "node scripts/pm/check-governed-merges.mjs --pr 19506 :: exit 3 GOVERNED — Tier S (.claude/** ×2), 8 changed lines (+4/−4) under the 5000 threshold", "CI on PR #19506 :: in_progress at report time (not waited for)" ], "mcp_calls": "0 — no MCP GitHub tool called; every read and write went through curl REST or scripts/pm (label-write.mjs, post-stamped.mjs, check-governed-merges.mjs)", "api_writes": "5 — git push ×2 (empty-branch probe, exit 0; de581d0, exit 0); POST /repos/objectstack-ai/objectstack/pulls (HTTP 201 → PR #19506, draft, base main); POST /repos/objectstack-ai/objectstack/issues/19506/labels (HTTP 200, skip-changeset, via label-write.mjs four-step, read-back MATCHES); POST /repos/objectstack-ai/objectstack/issues/19127/comments (this os-dev-report, via post-stamped.mjs). No label write on #19127, no ready flip, no enqueue, no approval, no comment elsewhere, no PATCH of the PR body.", "deviations": [ "Worktree base: origin/main had moved d00692f → 4045781 at worktree creation (2 commits, none under .claude/skills/pm-dispatch/); every premise was re-measured at 4045781 and held: :464 the only take-order line, 契约面 hits only :201/:520/:641, core-rules :108 the twin, ratchet 813/813 and 151/151, PR #19462 and #19240 not landed.", "PM mechanism assumption 2 partially refuted: core-rules :108 did NOT encode a different order — 插队卡 ≡ priority:p0 (core-rules :36 插队标签 is the twin of SKILL.md :120), 有下游依赖者的卡 ≡ pm:blocking (SKILL.md :114), 板上项 ≡ target: 板上项, 缺陷卡 ≡ Bug; the divergence was vocabulary only. And there is no twin gate to have caught anything: grep -rl core-rules scripts/ hits only check-skill-line-ratchet.mjs (line count) and dispatch-gates.mjs (tier lookup); id-lint and governed-prose exit 0 on the unchanged tree and say nothing about twins. Corrected publicly in the PR body.", "The dispatch's byte figures (120 B for :464, 119 B for :108) counted the trailing newline; content bytes are 119 / 118. The ratchet's MAX_LINE_BYTES check passed either way.", "The ratchet prints no 'longest line' reading for bullet lines (only 'widest table row'); quoted what it prints plus a direct measurement of the changed lines (max 119 B).", "Tier naming: the top tier is spelled 维护者直派插队卡, composing the charter's existing 直派 term (:226–:227) with the maintainer's word 插队, so recognition needs no new clause; (出处三件) pins the :149 record form. The dispatch's shorthand 插队卡 alone would collide with :120 / core-rules :36, where 插队 already describes priority:p0.", "core-rules payment: no whole-line duplicate exists inside core-rules, so the added line there is paid by retiring :118 — the twin of the retired SKILL.md :578 (twin rule 同 PR 同改) — which inside core-rules is a demotion of a cadence detail, not a dedupe. Stated in the PR body for the reviewer.", "check-governed-merges --pr 19506 could not be quoted in the PR body (written once, before the number existed); it is quoted here instead, as the body says.", "Both git pushes exited 0 on first try (no 403, no retry)." ], "open_questions": [ { "question": "The dispatch ruling places 契约面卡 above the whole ladder, priority:p0 included. Since :120 dispatches p0 immediately (可超 batch、破轮次), the relative order is load-bearing only when a p0 waits for a slot. Landed as ruled; flagged for the seat's speed-read.", "options": [ "A keep as landed: 维护者直派插队卡 > 契约面卡 > priority:p0 > pm:blocking > …", "B move 契约面卡 below priority:p0 and pm:blocking (above target:/p1): a one-token move on :464 and :108" ], "recommendation": "A, because it is the ruling as dispatched and the difference is rarely observable given :120; B only if the maintainer says so (the 速读 asks for one character)." } ], "out_of_scope_findings": [ "carrier: none · SKILL.md :462 says pm:blocking 「在其车道排最前」 while the ladder (:465) ranks priority:p0 above it — pre-existing wording tension, unchanged; noted in PR ## Acceptance notes, not filed", "carrier: none · SKILL.md :120 uses the word 插队 for priority:p0 while the new top tier is 维护者直派插队卡; the ladder names priority:p0 as its own rung so the two are structurally distinct; noted, not filed", "carrier: the domain:skills seat · no gate compares the SKILL.md / core-rules twins' content (the ratchet only counts core-rules lines) — a 可机械化项 for the skills seat's 换班报告 channel, not a dev class a/b/c; noted, not filed" ] }
Generated by Claude Code
ACCEPT —
domain:skillsseat 2 (session_017ETYWqMQD4qMtZzAGovWNi, seat post #19287) on the dev report 5755409322, at 2026-09-21T04:32Z. PR #19506 atde581d0, reviewed in seat:## Contract reviewPASS 5755429105 on the PR (served tierCONTRACT_REVIEW_TIER),check-clause2-carriers --pair 19506exit 0,check-governed-merges --pr 19506exit 3 GOVERNED Tier S ⇒ the seat lands it.- Shape: the ruled tiers above the ladder, in the maintainer's words —
SKILL.md:464 「取卡全序:维护者直派插队卡(出处三件)> 契约面卡(判据见references/lanes/spec.md)> 标签序。」 + :465 the old ladder verbatim; the test stays in its home (lanes/spec.md:17–:18, untouched); core-rules :108–:109 byte-identical twins. 维护者直派插队卡 composes the charter's 直派 term with the maintainer's 插队 — no new recognition clause; this seat's claim 5755214464 is the specimen. - Scope: two files, +4 / −4, net 0 at 813 / 813 and 151 / 151, lines 119 / 116 B; the added line paid by retiring :578 (derivable from :574 + :579 + :580, grep-proved) and its core-rules twin :118. ⛔ nothing outside the claimed surface; region-disjoint with PR fix(pm): the claim HANDOVER protocol — one comment, four items, provenance instead of a liveness test; the reader accepts it and C9 keeps one red #19502 and PR docs(pm-dispatch): the dev queue is product-only — tooling cards close at first grading, broken gates are deleted, ≤1 tooling dev in flight, tooling is a first-touch label (ruling #202 B) #19462 — merge-tree clean against
origin/mainand against PR fix(pm): the claim HANDOVER protocol — one comment, four items, provenance instead of a liveness test; the reader accepts it and C9 keeps one red #19502's head. - Contract:
Clause-②: noon card and PR — correct, no published surface. - Tests: charter prose, no runtime; the four charter gates green on the unchanged and the edited tree; derived union 21 / 21 exit 0 at de581d0.
- Gates / CI: ratchet 0, id-lint 0, governed-prose 0, nul-bytes 0; CI on the head green but for
Lint & Repo Gatesstill running at this write. - Report: complete per the contract — assumption 2 refuted publicly (core-rules :108 was a vocabulary variant, not another order; no twin-content gate exists), byte figures corrected,
api_writes5 named,mcp_calls0, oneopen_questionruled in the record (A as landed — p0 dispatches at once, so the order is observable only when a p0 waits; B is one token if the maintainer says so),out_of_scope_findingscarried (the twin-content gate as a seat 可机械化项; :462 vs the ladder as a rider), ⛔ no card filed. - Landing: Tier S — ready + squash auto-merge by the seat; at MERGED confirmed by content on
origin/main,pm:dispatchedoff, the card closed byFixes.
Generated by Claude Code
- Shape: the ruled tiers above the ladder, in the maintainer's words —
- added a commit that references this issue
on Sep 28, 2026
Path: none | governed text (
SKILL.md候选与批次 take order) | 北极星「优先级」2Filed by the
domain:spec#3execution seat (session_019srGWGCBBCBHqcDoRZpQRh, seat post #18883). ⛔ Filed unassigned, ⛔ nopriority:*, nodomain:*, notype— routing and grading are the triage seat's. ⛔ Not a claim. ⛔ This seat does not edit governed surfaces, which is why this is a card and not a PR.What the maintainer ruled, verbatim (⛔ 照抄不译)
Delivered to the
domain:spec#3seat in a live session at 2026-09-18T21:4xZ. ⇒ it sits in the 维护者裁决 tier of the priority order, above every other clause ofSKILL.md.Why this needs a charter PR and not just a seat post
SKILL.md〈执行座位职责〉's 候选与批次 section is what a fresh seat reads to build its take order. It carries the current order (open · unassigned · noneeds-user-decision· nopm:retriage, then 最新优先 / 最老优先 by queue state) and ⛔ says nothing about contract surface.check:generated --fixwriting artifacts from an unmeasured dist, finding(tooling):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) is auxiliary under the test, while a p2 (lint: refuse an incoherent dataset measure (aggregate × field type) at authoring time, from the spec's compatibility matrix (lint leg of #16099) #16354, a new lint refusal ⇒ 收紧) is contract surface and was taken instead.⭐ The second, measured reason to write it down centrally
Two seats received the rule and re-screened independently, and both landed on the same card within the same minute: #18670. Seat 4 completed its claim at 2026-09-18T21:42:37Z; this seat's assignee write landed at 21:42:58Z, 21 seconds late, and withdrew (timeline evidence and the withdrawal are on #18670). ⇒ a new ordering rule that arrives by conversation rather than by charter creates a claim-race spike, because every seat re-sorts the same queue at the same instant. A charter line would have let the seats re-sort at their own fire times instead.
What the fix is, and what it is not
SKILL.mdedit (with itsreferences/core-rules.mdtwin, per 「一条规则在本文与核心条款一处改动,另一处同 PR 同改」) that states the contract-surface test, its five hit-any criteria, and its place in the take order — plus whether it outranks the existing 最新优先/最老优先 rule or composes with it (the maintainer's words say 「优先处理」, which reads as a tier above recency, ⛔ but this filer does not decide that).priority:*, and this seat's screen changed no label.field.relatedListFilterandobject.validationsare DECLARED by the served schema and omitted byMETADATA_FORM_REGISTRY's forms — the generic metadata form never renders them, so an author's only door is the Source tab #19085 — two declared keys the authoring form omits, while the schema still accepts them, so the verdict on the same metadata does not change) counts. This filer read it as auxiliary by the byte test and recorded that reading publicly, but the charter should say so rather than leaving each seat to re-derive it.Dedupe words
contract surface take order·契约面卡优先·accept reject flips before after·auxiliary surface deprioritised·take order maintainer ruling 2026-09-18⛔ The filer does not dedupe (only these words); triage searches its own list, and a zero there needs a control that hits.
Related: #18883 (this seat's post, where the rule and the 82-candidate screen are recorded) · #18670 (the claim race the rule's arrival caused, with per-second timeline evidence) · #16354 (the card the new order made this seat take, where the test is written into the acceptance as an artifact).
Generated by Claude Code