Skip to content

chore(pm-dispatch): tooling cap per dispatch round, pm-rule cards on the maintainer's naming, two round-report readings, spec key lands with its first reader (D3 = A, D5 = A) - #25795

Merged
objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/project-thread-99edon
Oct 25, 2026
Merged

objectstack-fleet[bot] merged 2 commits into
mainfrom
claude/project-thread-99edon

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Leehom · project thread

Fixes #25768
Clause-②: no
Metadata-protocol: none

Writes the maintainer's rulings D3 = A and D5 = A into the pm-dispatch rule text. .claude/** only (Tier S); no package, no changeset (skip-changeset), no gate and no script.

The ruling (verbatim, untranslated)

Tesla, 2026-10-25T09:23Z, director thread, answering the assessment's option lists:

「D4 · 固定发版日 没必要;其他同意 ,npm dist-tag 手工清理 应该立一张管理者维护的卡」

"其他同意" = D3 A and D5 A as the card spells them. Triage record 6396195056: the cap is reported, not enforced (「不做门禁」). D4 and the npm dist-tag card are out of scope here.

What changed, rule by rule (each rule has one home)

Ruling part Home Text
D3 ≤10% tooling per dispatch round, overflow stays in backlog, no gate references/execution-duties.md 〈候选与批次〉, right under the candidate line new line; ⛔ no gate, no script
D3 the tooling label gains a reader SKILL.md label glossary row 三具名读者 → 四具名读者 (adds 每轮派发 ≤10%); this is the row the retired fleet one-slot reader used to sit in, so the cap folds there instead of a parallel rule
D3 a pm-rule card is filed only when the maintainer names it, quoting the naming references/filing-gate.md 〈立卡门〉, under ③ new line: files as ③, body quotes the naming; ⛔ a seat's own proposal is not filed
D3 consequence for handover reports references/seat-lifecycle.md 〈座位贴协议〉 「原则错/缺 → skills 席专题」 becomes 「只进简报,维护者点名才立卡」; 「三类以 finding 入」 becomes 「后两类」 (in place)
D3 two round-report readings references/seat-lifecycle.md 〈轮次报告与节奏〉 follow-up PRs opened within 48h of a landed PR; product-commit share = merged commits touching none of .claude/, AGENTS.md, scripts/pm, gate scripts, .github/workflows
D5 a new spec key lands with its first reader; no planned row alone; hotcrm readers use the same merge batch; effective once ui/ exists on main references/cross-repo-coordination.md rule 2 new line right under rule 2; it carries the cutover condition in words a seat can check (ui/ on main — absent on 0790d0a4), and until then rule 2's spec/后端先行 stands

Line budget (ratchet: paid by deletion, no ceiling raised)

File Before / ceiling After Paid by
SKILL.md 319 / 319 319 in-place row edit (table row, length-exempt; widest row 341 = pin)
execution-duties.md 188 / 188 188 deleted 「dev pr_create 带 assignees: [LOGIN],同笔指派;席位自有 PR 指派自己」: the dev half is os-dev.md rule 2 verbatim (and this file's own 「无条件条款只住角色文件」), the seat half follows from the line above it (「PR assignee = 卡的」; a seat's card names the seat as assignee)
filing-gate.md 68 / 68 67 deleted the back-pointer 「见 triage-duties.md 与 reading-discipline.md 的指针行」 and its blank line: both files already point here, and the line carried no rule. Headroom 1: lowering the row in check-skill-line-ratchet.mjs is outside this card's file surface
seat-lifecycle.md 95 / 96 96 used the 1 line of headroom, and deleted 「awaiting a human merge 项」 from the round-report line, which SKILL.md already carries (「④ 轮次报告单列 awaiting a human merge」); the freed bytes carry the follow-up-PR reading
cross-repo-coordination.md 51 / 51 51 deleted 「objectui 构建产物经 pnpm objectui:refresh 回流」, which AGENTS.md (Frontend section) carries; lanes/ui.md's pointer moves from this file to AGENTS.md in place
lanes/ui.md 38 / 38 38 pointer edit only

Corpus total over the six files: 759 → 759. No re-wrap: every freed line or byte comes from deleted text, named above.

Gates (local, at da43591c)

Re-derived on the rework head da43591c (cross-repo-coordination.md L28/L30 only): same 20 families, all 20 exit 0, --ran reconcile 20 run, 0 NOT-MEASURED. The first round below ran at 51664dd2.

Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack; each run with its exit captured before any pipe; reconciled with --ran: ✓ dispatch-gates --ran: 20 derived famil(ies) accounted for — 20 run, 0 NOT-MEASURED.

All 20 exit 0, among them pnpm check:pm-skill-ratchet, pnpm check:pm-skill-id-lint (87 file(s) clean), pnpm check:skill-frame-sync, pnpm check:pm-governed-merges, pnpm check:pm-governed-prose, pnpm check:nul-bytes, pnpm check:doc-authoring. A first pass before pnpm install answered exit 3 (PREREQUISITE NOT MET) on eight families and exit 1 with ERR_MODULE_NOT_FOUND on check:pm-expected-skips (nothing measured); after install only check:doc-formula-expressions still answered 3, until @objectstack/formula and @objectstack/lint were built. Every family was re-run and recorded 0. CI runs the full set on the PR.

Acceptance notes

  • references/lanes/skills.md points 「fold-or-serial 必答与家族派发五门」 at 「SKILL.md 批次独立性段」, but both live in references/execution-duties.md 〈候选与批次〉. A stale pointer; carrier: none; not filed.
  • The cap is worded as the ruling gives it (「一轮派发的 10%」). At this fleet's round sizes (batch 1 to 3) a literal per-round 10% rounds to zero tooling cards; see the open question in the report on the card.
  • D5's "same merge batch" for hotcrm readers meets lanes/hotcrm.md (a hotcrm reader unlocks on PUBLISHED, not merged) and rule 2's Blocked-by: / never-same-batch lines. The new line is inert until ui/ exists on main, so nothing conflicts today; the reading to adopt at cutover is an open question in the report.

维护者速读(草稿)

改了什么:把 D3、D5 两条裁决写进 pm-dispatch 技能。D3:每轮派发里工具类卡最多占一成,超出的留在积压;改动 pm 规则的卡只有你点名才立;每轮报告多报两个数(产品提交占比、落地后 48 小时内的跟进 PR 数)。D5:objectui 并入本仓(main 上出现 ui/)之后,新的 spec 键必须和它的第一个读者同一个 PR 落地,hotcrm 的读者走同一合并批,不再出现只声明没人读的 planned 行。

为什么改:过去 14 天 17% 的合入提交在服务流程本身,新卡里三成多是工具/技能/流程;一个 spec 键曾拖成四个 PR、三次落地。这两条把精力拉回产品。

风险与代价(含回滚):不加门禁、不加脚本,只改规则文字,六个文件行数都不超上限。风险在解读:一成上限在一轮只派 1–3 张卡时按字面会变成零;hotcrm 依赖已发布的包,「同合并批」要在并仓时再定义。回滚 = revert 本 PR。

席位意见:

你要做的:无需操作;小轮次的一成怎么算、hotcrm 同合并批的含义,席位会在需要时单独请你裁。


Generated by Claude Code

…y on the maintainer's naming, two round-report readings; a new spec key lands with its first reader

Maintainer rulings D3 = A and D5 = A, written into the pm-dispatch rule text.
Every touched file stays at or under its line-ratchet ceiling; new lines are
paid by deleting restated content in the same file.

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

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: 51664dd2c6ebafa18d2a666d4618bf799ba9d4b1
Local-runs: none
Scope: .claude/skills/pm-dispatch/SKILL.md, .claude/skills/pm-dispatch/references/cross-repo-coordination.md, .claude/skills/pm-dispatch/references/execution-duties.md, .claude/skills/pm-dispatch/references/filing-gate.md, .claude/skills/pm-dispatch/references/lanes/ui.md, .claude/skills/pm-dispatch/references/seat-lifecycle.md + scripts/pm/check-skill-line-ratchet.mjs, .claude/agents/os-dev.md, AGENTS.md, .claude/skills/pm-dispatch/references/triage-duties.md, .claude/skills/pm-dispatch/references/reading-discipline.md, .claude/skills/pm-dispatch/references/lanes/hotcrm.md

Inputs read: card #25768 body and all three comments (triage 6396195056, claim 6397358483, os-dev-report 6397638451), PR body, file list, net diff, and the 44 check-runs on 51664dd2 (26 success, 18 skipped, 0 failure — six were in_progress at first read and completed during the review). Head did not move.

① Derived judgments

Ruling fidelity — D3 = A (card body, bullet by bullet)

  • ≤10% tooling per dispatch round, overflow stays in backlog, ⛔ not pm:queue — PRESENT, execution-duties.md 候选与批次 L9, worded as the ruling gives it (「至多占一轮派发的 10%」); the tooling glossary row in SKILL.md L114 gains it as the fourth named reader. Faithful.
  • pm-rule cards only when the maintainer names them, card quotes the naming — PRESENT, filing-gate.md 立卡门 L17, filed as ③. Faithful.
  • Two round-report readings — PRESENT, seat-lifecycle.md L71–72: follow-up PRs opened within 48 h of a landed PR; product-commit share = merged commits touching none of .claude/, AGENTS.md, scripts/pm, gate scripts, .github/workflows. Exclusion set matches the card verbatim.
  • ⛔ no gate, no script — PRESENT in the cap line (「⛔ 无门禁无脚本强制」); the diff adds no script and touches no scripts/**. Faithful.
  • Consequential edit not spelled by the card: seat-lifecycle.md L45/L47 handover route 「原则错/缺 → skills 席专题」 → 「只进简报,维护者点名才立卡」 and 「三类以 finding 入」 → 「后两类」. Judged a fold, not creep: left as it was, a seat's handover report would file a pm-rule finding on its own proposal, which bullet 2 forbids. The card itself asks for folds over parallel rules.

Ruling fidelity — D5 = A

  • Key lands with its first reader (same PR; hotcrm same merge batch); ⛔ planned row not alone on main; effective once ui/ exists on main; condition spelled so a seat can check it — ALL PRESENT in the new cross-repo-coordination.md L28.
  • MISSING — FAIL item 1. The card spells D5 as 「Replaces rule 2's 'spec/后端先行' ordering for new keys」. The PR leaves rule 2 (L27, 「…spec/后端先行」) untouched and unconditional, and the new L28 carries no word of supersession. After cutover a seat reads two adjacent lines that contradict each other for a new key: rule 2 says per-layer sub-cards with spec landing first; L28 says the key lands in the same PR as its reader; L30 (「被链接或同父的两单永不同批」) then forbids the very batching L28 prescribes for hotcrm. The PR body's own table says 「until then rule 2's spec/后端先行 stands」, which admits the replacement — but the rule text, which is what a seat reads, does not carry it. Fix is one wording that marks L28 as rule 2's ordering from cutover on (and names the 永不同批 line as yielding to it for the key/reader pair), inside the same 120-byte line or paid in-file; L28 stands at exactly 120 bytes now, so the words must be found inside the line.
  • Scope creep beyond the ruling: none found. D4 and the npm dist-tag card are correctly left out.

Deleted or densified lines — does the rule still live?

  • cross-repo-coordination.md L6 「objectui 构建产物经 pnpm objectui:refresh 回流」 — lives in AGENTS.md Frontend (L159, L168); lanes/ui.md L20 was the only pointer and now points at AGENTS.md. OK.
  • execution-duties.md L59 「dev pr_create 带 assignees: [LOGIN],同笔指派;席位自有 PR 指派自己」 — dev half is .claude/agents/os-dev.md L37 verbatim (「PR assignee = 卡的:pr_create 带 assignees: [LOGIN]」); the seat half (a seat assigns its own PR to itself) has no other home in .claude/** but is derivable from the surviving L58 「PR assignee = 卡的」 plus the atomic pair ① Assign @me: a seat-claimed card's assignee is the seat. Accepted as a derivation, noted rather than failed; a seat PR with no card is the one case the derivation does not reach.
  • filing-gate.md L3 「见 triage-duties.md 与 reading-discipline.md 的指针行」 — carried no rule; triage-duties.md L34/L50 and reading-discipline.md L13 already point at filing-gate. OK.
  • seat-lifecycle.md L71 「awaiting a human merge 项」 — SKILL.md L202 ④ 「轮次报告单列 awaiting a human merge」 carries it. OK.
  • SKILL.md L114 「三具名读者」 → 「四具名读者」 — the three original readers survive in the row. OK.

Ratchet (read from the head tree, not re-run): line counts SKILL.md 319/319, cross-repo 51/51, execution-duties 188/188, filing-gate 67/68, lanes/ui 38/38, seat-lifecycle 96/96 against CEILINGS in check-skill-line-ratchet.mjs; every added or changed prose line ≤120 bytes (widest 120, the D5 line); SKILL.md widest table row 341 = pin 341 (the edited row is 228 bytes). No ceiling raised, no re-wrap observed: each freed line is a named deletion. filing-gate.md lands one under its ceiling; lowering the row is outside this card's surface, as the dev says. pm-skill-id-lint: no tracker numbers in the new rule text. CI Lint · PM dispatch-gates success.

Gate verdicts (check-runs on the head): 26 success including Governed Surface Queue Guard, Lint · PM dispatch-gates, Lint · repo & tooling gates, Check Changeset, the three claim-parity checks; 18 skipped (UI, docs, matrix shards — no path hit); 0 failure.

② Semver level

No package touched; .claude/** only. skip-changeset label is the correct form (publishes nothing from any released package). PR body carries Clause-②: no and Metadata-protocol: none as line-initial declarations; both correct — no spec key, export or config field moves. Level: none; Clause-②: no.

③ Boundary flags

  • ESCALATE — 10% counting at small rounds. The PR writes the ruling's own words (「一轮派发的 10%」) and did NOT implement the dev's recommended rolling window of the last 10 dispatches; good — that reading is not in the ruling. But read literally at today's batch sizes (1–3 cards per round) 10% rounds to zero, so no tooling card can ever be dispatched by quota, this card's own kind included. The dev's three options (A rolling window of 10; B per round rounded up; C literal, tooling moves only on maintainer direct dispatch) are an interpretation only the maintainer can rule. Not a PASS/FAIL item on this PR: the text is faithful, the ruling is underspecified. Needs a ruling before the first round that applies it.
  • ESCALATE at cutover — hotcrm 「同合并批」. lanes/hotcrm.md L43/L45: hotcrm depends on PUBLISHED @objectstack/* packages and its unlock criterion is published, not merged; cross-repo-coordination.md L30 forbids linked/same-parent cards in one batch. 「hotcrm 读者同合并批」 cannot be executed under those two lines as written. Inert today (no ui/ on main at 0790d0a4), so it does not block this PR beyond FAIL item 1, which must mark the supersession anyway. The maintainer picks the dev's A or B at cutover.
  • Deviation accepted — attribution link. The PR body's attribution block links the card thread (cmsg_01TenzsRopZj4jMbvjX8uz1XDHT9sSVf8qP2xerGBcJSAC, where the implementing session session_01Fx58tcuqmi5bveQGdRYq8r ran) rather than the seat thread the order spelled. The platform's required attribution names the running thread; the claim comment already binds branch, card thread and seat. No governance effect; Implemented-by below is the branch, read off the claim.
  • Tier S path: .claude/** only, no Tier H row; draft PR, not armed; CI green. Lands only once a PASS record exists on the then-current head — this record is a FAIL, so the owning seat does not queue it.
  • Out-of-scope, noted not filed: scripts/pm/ensure-pm-labels.sh L285–295 comment enumerates the tooling label's readers and is now one reader short of the glossary row; lanes/skills.md stale pointer the dev already named.

Implemented-by: claude/project-thread-99edon
Reviewed-by: session_014FZ3TJucS1L7BdMe5DAzXC

VERDICT: FAIL

One item: D5's 「replaces rule 2's spec/后端先行 ordering for new keys」 is not carried by the rule text; L27/L28/L30 of cross-repo-coordination.md contradict each other once ui/ exists on main. Reword L28 to mark it as rule 2's ordering from cutover on (and the exception to L30 for the key/reader pair), ratchet-paid in-file, and re-request review on the new head. Everything else — D3 complete, D5 otherwise complete, no creep, deletions re-homed, ratchet at ceiling, CI green — passes.

…st ordering from the ui/ cutover, and is the key/reader exception to never-same-batch

Contract review FAIL item 1 on the D5 line: the rule text now carries the
supersession the ruling spells, paid inside the line and the never-same-batch
line; no ceiling moved.

Claude-Session: https://claude.ai/code/session_01Fx58tcuqmi5bveQGdRYq8r
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

Contract review

Served-tier: CONTRACT_REVIEW_TIER
Head-sha: da43591c9459234fc98161a0bea2753d5d3801ad
Local-runs: none
Scope: .claude/skills/pm-dispatch/SKILL.md, .claude/skills/pm-dispatch/references/cross-repo-coordination.md, .claude/skills/pm-dispatch/references/execution-duties.md, .claude/skills/pm-dispatch/references/filing-gate.md, .claude/skills/pm-dispatch/references/lanes/ui.md, .claude/skills/pm-dispatch/references/seat-lifecycle.md + scripts/pm/check-skill-line-ratchet.mjs, .claude/agents/os-dev.md, AGENTS.md, .claude/skills/pm-dispatch/references/lanes/hotcrm.md

Re-review of the prior record (issuecomment 6397710959, 2026-10-25T12:35Z, head 51664dd2, FAIL on one item). Inputs read: card #25768 body and its three comments (no comment added since the prior record), PR body (unchanged, still draft, labels documentation size/s skip-changeset, author objectstack-fleet[bot]), the PR commit list, git diff 51664dd2..da43591c and the committed tree of the new head, and the 38 check-runs on da43591c. Head did not move during the review.

① Derived judgments

What moved between the heads — verified, not taken from the dev's claim

  • da43591c is a child commit of 51664dd2 (parent chain 0790d0a4 → 51664dd2 → da43591c): no force-push, no rewrite of the first commit. The PR holds exactly these two commits.
  • git diff 51664dd2..da43591c --stat: ONE file, references/cross-repo-coordination.md, 2 insertions / 2 deletions. Nothing else in the tree changed; every finding of the prior record on the other five files stands undisturbed and is carried below.
  • Changed lines are L28 and L30 only, in place; L27 (rule 2) and L29 (Blocked-by) untouched.

FAIL item 1 of the prior record — D5's supersession, now carried

  • L28 (119 B) now reads 「main 有 ui/ 起,新 spec 键不再先行、取代上句次序:与首个读者同 PR,hotcrm 读者同合并批。」 — 「不再先行、取代上句次序」 marks it as replacing rule 2's spec/后端先行 ordering for new keys from the cutover on, which is the card's wording (「Replaces rule 2's spec/后端先行 ordering for new keys」). Rule 2's 父单 + 逐层子单 structure is left standing, and only its ordering is superseded for new keys — correct, the card replaces the ordering, not the card shape. Cured.
  • L30 (119 B) now reads 「被链接或同父的两单永不同批;ui/ 起的新键与首个读者除外,⛔ planned 行不单独进 main。」 — the never-same-batch line now yields for the key/first-reader pair, which is the exception the prior record asked for. Cured.
  • The planned clause (⛔ planned 行不单独进 main) moved from L28 to L30 verbatim and still lives; it sits beside the exception it guards, which is the right neighbour. The cutover condition 「main 有 ui/ 起」 / 「ui/ 起」 is present on both lines in words a seat can check (ui/ is absent on main at 0790d0a4, confirmed via REST contents). 「hotcrm 读者同合并批」 remains on L28.
  • Read as a seat would after cutover: L27 gives the card structure; L28 gives the ordering for a new key and names itself as the replacement; L30 forbids same-batch for linked cards except for the key/reader pair. The three lines no longer contradict each other. Faithful, no creep: the fix adds no rule the ruling does not carry.

D3 = A — carried from the prior record, undisturbed (files unchanged between heads)

  • ≤10% tooling per dispatch round, overflow stays in backlog, ⛔ not pm:queue, ⛔ 无门禁无脚本强制 — execution-duties.md 候选与批次; SKILL.md tooling glossary row gains the fourth reader. Faithful.
  • pm-rule cards only on the maintainer's naming, card quotes it — filing-gate.md 立卡门, filed as ③. Faithful.
  • Two round-report readings (follow-up PRs within 48 h; product-commit share with the card's exact exclusion set) — seat-lifecycle.md L71–72. Faithful.
  • Handover-route fold in seat-lifecycle.md L45/L47 accepted as a fold, not creep (reasoning in the prior record stands).

Deleted or densified lines — carried, undisturbed: the four deletions (cross-repo-coordination.md L6 → AGENTS.md Frontend; execution-duties.md L59 → os-dev.md L37 + derivation from 「PR assignee = 卡的」; filing-gate.md back-pointer; seat-lifecycle.md 「awaiting a human merge 项」 → SKILL.md L202) were re-homed as recorded. This head deletes nothing new.

Ratchet (read from the head tree against check-skill-line-ratchet.mjs, not re-run): cross-repo-coordination.md 51/51 lines (CEILINGS row 51); widest line 120 B (L37, L51 — both pre-existing), L28 = 119 B, L30 = 119 B, under MAX_LINE_BYTES = 120; no table row touched; no re-wrap — the two edited lines are the only diff and each keeps its one-rule-per-line shape. The other five files are byte-identical to the prior head (SKILL.md 319/319, execution-duties 188/188, filing-gate 67/68, lanes/ui 38/38, seat-lifecycle 96/96). No ceiling raised. pm-skill-id-lint: no tracker number in the new text. CI Lint · PM dispatch-gates success on this head.

Gate verdicts (check-runs on da43591c): 38 check-runs, 25 success, 13 skipped, 0 failure, 0 in progress at the time of writing. Success includes Governed Surface Queue Guard, Lint · PM dispatch-gates, Lint · repo & tooling gates, Lint & Repo Gates, the three claim-parity checks (card claims this branch; part-of does not also close; no other PR claims the issue or the single-writer path), Check PR Size, Check Documentation Links. Skipped are UI, docs build, matrix shards and Check Changeset (path filter, skip-changeset label) — not red.

② Semver level

No package touched; .claude/** only, unchanged from the prior head. skip-changeset is the correct form. PR body carries line-initial Clause-②: no and Metadata-protocol: none; both correct — no spec key, export or config field moves. Level: none; Clause-②: no.

③ Boundary flags

  • ESCALATE (unchanged, with the maintainer) — 10% counting at small rounds. The text writes the ruling's own words; at 1–3 cards per round a literal 10% rounds to zero. Interpretation (rolling window / per-round rounded up / literal) is the maintainer's; the dev's open question on the card carries it. Not a PASS/FAIL item on this PR.
  • ESCALATE at cutover (inert) — hotcrm 「同合并批」. L30's exception names 新键与首个读者; lanes/hotcrm.md still unlocks a hotcrm reader on PUBLISHED packages, so 「hotcrm 读者同合并批」 remains undefined in execution terms. Inert until ui/ exists on main (absent at 0790d0a4); no conflict today; the maintainer picks the reading at cutover. Not a blocker.
  • Deviation accepted (carried) — PR attribution links the card thread rather than the seat thread; no governance effect. Implemented-by below is the branch, read off the claim comment 6397358483.
  • Author is objectstack-fleet[bot]; no external-login note owed.
  • Tier S path: .claude/** only, no Tier H row; PR is still a draft, not armed. With this PASS in place on the current head, the owning seat may flip ready and queue it; a needs:contract-review label is not present, so nothing to strip.
  • Out-of-scope, noted not filed (carried): scripts/pm/ensure-pm-labels.sh reader enumeration for tooling is one reader short of the glossary row; lanes/skills.md stale pointer the dev named.

Implemented-by: claude/project-thread-99edon
Reviewed-by: session_014FZ3TJucS1L7BdMe5DAzXC

VERDICT: PASS

The one FAIL item of 6397710959 is cured on da43591c: L28 names itself as replacing rule 2's spec-first ordering for new keys from the ui/ cutover, L30 carries the key/first-reader exception to never-same-batch with the planned clause beside it, both at 119 bytes, 51/51 lines, and the diff between heads touches those two lines and nothing else. Every other finding of the prior record stands; CI on the head is green with nothing in progress. The two ESCALATE items are the maintainer's and do not bear on this verdict.

Reviewed 2026-10-25T12:46Z · reads only, no local re-run

@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 · ACCEPT · domain:skills#1 · session_014FZ3TJucS1L7BdMe5DAzXC · 2026-10-25T12:48Z

Head da43591c9459234fc98161a0bea2753d5d3801ad · card #25768 · Tier S (.claude/** only, no Tier H row).

  1. 形态 — 6 files, +10/−10 over two commits: D3 = A (tooling cap ≤10%/round in execution-duties.md + SKILL.md glossary row; pm-rule cards only on maintainer naming in filing-gate.md; two round-report readings in seat-lifecycle.md) and D5 = A (cross-repo-coordination.md L28/L30, effective once ui/ exists on main). Matches the claim 6397358483.
  2. 前提实测 — ui/ absent on main at 0790d0a4, so D5 is inert until cutover; the ratchet holds at ceiling (319/319, 51/51, 188/188, 67/68, 38/38, 96/96).
  3. 门禁 check-runs — 38 check-runs on the head: 25 success, 13 skipped, 0 failure. Mergeable clean, head unchanged at this stroke.
  4. 接受的偏差 — PR attribution links the card thread (platform-mandated); skip-changeset (nothing published).
  5. 范围外去向 — 10% small-round counting is with the maintainer on a decision card in the seat thread; hotcrm 「同合并批」 is decided at cutover; the ensure-pm-labels.sh reader comment and the lanes/skills.md stale pointer are noted, not filed.
  6. 落地条款 — at-tier contract review PASS 6397821193 on this head (cures FAIL 6397710959). Tier S ⇒ ready + auto-merge through the relay, on the maintainer's standing authorisation in this project's seat thread "运行 objectstack 车道调度" (Leehom: 「按照 pm-dispatch 规则复核过的都授权」).

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