Skip to content

docs(pm): batch default back to 3 on the maintainer's ruling — ceiling 5 unchanged (#18125) - #18128

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-18125-batch-default-3
Sep 14, 2026
Merged

os-zhuang merged 1 commit into
mainfrom
claude/issue-18125-batch-default-3

Conversation

@claude

@claude claude Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Fixes #18125

Ruling

The maintainer, in the skills seat's chat at 2026-09-14T03:45Z, verbatim and untranslated: 「并发2 还是太慢了,默认恢复3吧」. It supersedes lock 3's default (PR #18072, commit 7ef05f997, 「batch 默认 2」). The maintainer ceiling 5 stays. Ruling C (#17971, 「C. approve 后不管后续改动都由席位落地:」) governs the landing: this PR stays a DRAFT; the seat does the four-piece; nothing here is readied, queued, armed or approved by the dev.

Change — one line

.claude/skills/pm-dispatch/SKILL.md line 60, the batch:N row of the 〈入口与角色〉 argument table:

  • before: | batch:N | 同时在飞的 dev 上限 | 默认 2;N 的维护者天花板 5 |
  • after: | batch:N | 同时在飞的 dev 上限 | 默认 3;N 的维护者天花板 5 |

(The row is quoted with N standing in for the angle-bracket placeholder the file uses, so the body survives the sanitizer; the file itself is unchanged in that respect.)

Equal-line and byte-neutral: 812 lines before and after (ceiling 812, scripts/pm/check-skill-line-ratchet.mjs:320), 73524 bytes before and after, one insertion / one deletion in git diff --stat ca7886047 06c10152b. Nothing else moves: write-identity locks 1, 2, 4, 5, LOCK_DEPTH_HOLD, the same-file serial rule and the ceiling 5 are untouched. The seats' Routine prompts are the seats' own to update on landing (card body).

Premise readings (all against origin/main = ca7886047, worktree created 2026-09-14T03:50:37Z)

  • P1 holds (read 2026-09-14T03:51Z): SKILL.md line 60 read 默认 2; git grep -n for the literal 默认 followed by a backticked 2, over .claude AGENTS.md CLAUDE.md, returned exactly one hit, .claude/skills/pm-dispatch/SKILL.md:60.
  • P2 holds (read 2026-09-14T03:51Z): references/core-rules.md is 151 lines and states no batch DEFAULT. grep -n batch hits: line 11 「并行度以 batch 封顶,验证锁到达深度 ≥ LOCK_DEPTH_HOLD(2)即等;同批按构造文件面不相交。」 (the verify-lock depth, a different number) and line 37 「插队标签可超 batch 立即派发,⛔ 不豁免同文件串行、深度等待与认领协议。」. grep -n 默认 hits lines 7, 17, 18, 52, 77, 139, 140 — none is about batch. So there is no mirror line, and core-rules.md is untouched (151/151); the card body's "core-rules mirror line likewise" is superseded by the claim comment's reading, which this grep confirms.
  • P3 holds (read 2026-09-14T03:51Z): SKILL.md is 812 lines at ceiling 812; sed -n '733,754p' SKILL.md | md5sum = 3327d02c56f8a0eca88569dad2270f32. Same two readings on HEAD 06c10152b after the edit: 812 lines, md5 3327d02c56f8a0eca88569dad2270f32.
  • P4 holds (read 2026-09-14T03:52:44Z–03:53:16Z): git ls-remote --heads origin listed 1106 heads; the 6 claude/issue-18xxx heads were compared to main through REST GET .../compare/main...BRANCH and all 9 open PRs through REST GET .../pulls/N/files (page count 9, fewer than 100, so the listing is complete): zero hits on pm-dispatch/SKILL.md or core-rules.md in any of them. Scope declared: open PRs plus this wave's issue-18xxx heads; the 62 older keyword-matched heads (seat session branches pm-dispatch-*, old issue branches) were listed but not compared.

Gates (run on the working tree at HEAD 06c10152b, 2026-09-14T03:55Z–04:01Z; every exit captured by redirect-then-$?)

Derived with node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack (no paths; change set from the merge base ca7886047; the --repo assertion held): 16 commands — 9 matched by path, 7 whole-tree. All 16 exit 0:

  • pnpm check:pm-skill-ratchet — exit 0 (ratchet green; widest-table-row pins and ceilings unchanged)
  • pnpm check:skill-frame-sync — exit 0 (「the one declared copy of the decision frame is internally coherent … 74 markdown files scanned for undeclared copies」)
  • pnpm check:pm-governed-prose — exit 0 (「2 instruction surface(s) name all 5 registered governed surfaces … and claim no others」)
  • pnpm check:pm-skill-id-lint — exit 0 (27 files clean)
  • pnpm check:pm-governed-merges — exit 0
  • pnpm check:nul-bytes — exit 0 (8643 text files, no raw control bytes)
  • node scripts/pm/check-governed-queue-guard.mjs --self-test — exit 0 (233 cases)
  • pnpm check:agent-test-spelling — exit 0
  • node scripts/check-closing-keyword-parity.mjs and its --self-test — exit 0 / 0
  • node scripts/check-comment-mask-corpus.mjs — exit 0 (6747 files, 0 disagree)
  • pnpm --filter @objectstack/lint run check:doc-formula-expressions — first run exit 3 「PREREQUISITE NOT MET — @objectstack/formula is not built」 (not a measurement); after pnpm exec turbo run build --filter=@objectstack/formula --filter=@objectstack/lint under os-verify-lock.sh (「VERDICT command-exit 0 · held the lock 167s」), rerun exit 0 (「22 record-scoped formula example(s) across 438 files … judged clean」)
  • pnpm check:doc-authoring, pnpm check:driver-memory-census, pnpm check:refd-timer-probe, pnpm check:watch-hint-literal — exit 0 each

Reconciliation (--ran with COMMAND :: exit CODE lines, 2026-09-14T04:01:47Z): 「✓ dispatch-gates --ran: 16 derived famil(ies) accounted for — 16 run, 0 NOT-MEASURED (a DERIVED zero — all 16 recorded an exit code and none of them is 3).」

Tied family not on the derived list, run anyway: node scripts/check-skill-frame-freshness.mjs (--self-test exit 0, scan exit 0: 「the decision frame in this tree is current with origin/main」). CI-measured only, not runnable here: check-governed-queue-guard.mjs on the event payload.

Lint, narrowed and declared: eslint --no-inline-config --format json .claude/skills/pm-dispatch/SKILL.md — exit 0, 1 file, 0 errors, 1 warning 「File ignored because no matching configuration was supplied」. Population read from eslint.config.mjs: every files: block matches only **/*.{ts,tsx,mts,cts,js,jsx,mjs,cjs} (six blocks; COMMENT_SWALLOW_FILES is the same glob), so a .md file is outside the linted population. Invariance: the config never enables type-aware linting (its own line 328: no parserOptions.project, no typed rules), so a one-line edit to an unlinted file cannot move the verdict of any linted file; the repo-wide pnpm lint is CI's run.

dispatch-gates --tier was read for the claim; its model line is not reproduced here (model-free rule).

Changeset

None owed. The Check Changeset job (.github/workflows/pr-automation.yml, job changeset-check) reads exactly two exemptions — the skip-changeset label and the changesets release PR pinned by branch and author — and no path exemption, so the label is the declaration. The diff publishes nothing: .claude/** is in no released package's files[] (fast-lane class per the dev definition). The label is applied with the additive POST .../issues/N/labels and read back; the read-back is recorded in the report comment on #18125.

维护者速读(草稿)

改了什么:PM 派发技能 SKILL.mdbatch 参数默认值从 2 改回 3;上限 5 不变;只此一行。

为什么改:维护者裁决「并发2 还是太慢了,默认恢复3吧」;lock 3 落地的默认 2 由此被取代。core-rules.md 本就没写默认值,故无需同改。

风险与代价(含回滚):并发默认回到 3 意味着同一时刻多一个 dev 在飞,共享容器的验证锁排队会略长;其余四把写身份锁、验证锁深度等待、同文件串行规则均不动。回滚 = 把该行的 3 改回 2,一行、零副作用。

席位意见:(留空,席位定稿成评论)

你要做的:确认后由授权账号 approve,席位按裁决 C 落地;各席位自行更新自己的 Routine 提示词。

Acceptance notes

  • Dispatch vs dev definition: the dispatch asked for a two-line 维护者速读; the dev definition sets five paragraphs, and the definition wins on conflict, so the five-paragraph form is used with the two-line business content inside it. Noted, no card.
  • noted, not filed: the card body says the core-rules mirror line changes "likewise"; the tree says there is no such line (P2 above). The claim comment already carries the correction. 承接者:无 (nothing to land).
  • noted, not filed: the first check:doc-formula-expressions run exited 3 on a fresh worktree because @objectstack/formula and @objectstack/lint are not built by pnpm install; the gate's own text says so and prescribes the build. Behaviour by design (Absence must be loud), not a defect. 承接者:无.
  • Out-of-scope findings of the three filing classes: none.
  • Clause-②: no

Generated by Claude Code

…g 5 unchanged

One line in `.claude/skills/pm-dispatch/SKILL.md` 〈入口与角色〉: the
`batch:<n>` table row's default moves 2 → 3 on the maintainer's ruling
「并发2 还是太慢了,默认恢复3吧」. The maintainer ceiling 5, the write-identity
locks, `LOCK_DEPTH_HOLD` and the same-file serial rule are untouched;
`references/core-rules.md` states no batch default, so it has no mirror line.
Equal-line and byte-neutral: 812/812 lines, 73524 bytes before and after,
frame block (lines 733–754) md5 unchanged.

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

claude Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author
  • Served-tier: 1957/1957 CONTRACT_REVIEW_TIER — harness model stamp counted over this seat's own transcript (non-sidechain assistant messages a model served; <synthetic> harness notices excluded) at 2026-09-14T04:07Z and compared to the constant's value outside the repository; get_session external_metadata.last_served_model read equal to the constant at 2026-09-14T00:20Z.

Contract review

Head: 06c10152 (PR #18128, card #18125 — the maintainer's direct order) — reviewed at 2026-09-14T04:07Z by the skills seat at the contract-review tier. GOVERNED rules layer (SKILL.md) ⇒ this record is the seat's ACCEPT, not the landing: the draft stays until an authorized APPROVED review (os-zhuang / hotlong, not dismissed) exists; then this seat lands it under ruling C.

① derived judgments (seat-measured on the fetched head, ⛔ not taken from the report):

  1. The one line, exactly as ruled: SKILL.md line 60 「| batch:<n> | 同时在飞的 dev 上限 | 默认 3;n 的维护者天花板 5 |」 — 默认 23, the ceiling 5 unchanged; the maintainer's words of 2026-09-14T03:45Z, verbatim 「并发2 还是太慢了,默认恢复3吧」, are the ruling this line restates. Nothing else moves: locks 1, 2, 4, 5, LOCK_DEPTH_HOLD and the same-file serial rule stay.
  2. Ceilings and frame: 812/812, byte-neutral (73524 bytes before and after), widest row 342 B, frame block 733–754 md5 3327d02c56f8a0eca88569dad2270f32 unchanged; check-skill-line-ratchet and check-skill-frame-sync exit 0 on the head (seat-run in a full worktree).
  3. No mirror owed: references/core-rules.md states no batch default (its batch hits are the lock-depth line and the 插队 line) — the card's 「core-rules mirror」 sentence corrected by the claim and by the dev's P2 grep; 151/151 untouched.
  4. Gates: 16 derived / 16 run / 0 NOT-MEASURED / 0 UNRUN with --repo asserted; check:pm-governed-prose 「2 instruction surface(s) name all 5 registered governed surfaces」; one exit-3 prerequisite built under the verify lock and re-run to 0. Checks on the head at 2026-09-14T04:07Z: 0 red at read time.
  5. Scope held: one file, one line; skip-changeset is the declaration; Clause-②: no holds — no contract path; --pair 18128 on origin/main's reader → exit 0 at 2026-09-14T04:07Z before this record.

② semver: unchanged — nothing published.

③ boundary flags: the domain:services seat's Routine carries the maintainer's earlier 2026-09-13 word 「当前任务处理完,后续并发降到2」; this ruling supersedes the default — that seat updates its own prompt on the landed text (the skills seat knocks on #6021 at landing). Nothing else.

Implemented-by: claude/issue-18125-batch-default-3
Reviewed-by: session_01DAcomhvR9kKizeYgg89Vo8

Verdict: PASS — awaiting an authorized approval; ⛔ never ready / enqueue / auto-merge before it; the seat lands after.

维护者速读(终稿)

按你 03:45Z 的话「并发2 还是太慢了,默认恢复3吧」:SKILL.md 那张参数表里 batch 的默认值从 2 改回 3,上限 5 不动,其余四道锁和验证锁深度规则都不动,只此一行、字节数不变。需要你一条 APPROVED review,之后本席落地。落地后 services 席按新默认自行更新它的 Routine。


Generated by Claude Code

@claude
claude Bot requested review from hotlong and os-zhuang September 14, 2026 04:07
@os-zhuang
os-zhuang marked this pull request as ready for review September 14, 2026 10:47
@os-zhuang
os-zhuang added this pull request to the merge queue Sep 14, 2026
@claude

claude Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Landing under ruling Cdomain:skills seat, 2026-09-14T10:48Z. An authorized APPROVED review exists: 5196699813 by os-zhuang (GOVERNED_APPROVERS), submitted 2026-09-14T10:46Z on the reviewed head 06c10152b, not dismissed. The review of record naming that head is 5658865058 (**VERDICT: PASS**, ACCEPT 5658864898 on #18125); check-clause2-carriers --pair 18128 re-read exit 0 at 2026-09-14T10:47Z; CI on the head 18 success / 16 skipped with the Governed Surface Queue Guard re-running on the merge-group leg. The approver flipped the PR ready and enqueued it (queue ref gh-readonly-queue/main/pr-18128-689d60 present at the seat's read), so the seat leaves the queue entry as set, clears needs-user-decision in this act, and reads the landing by content on origin/main (SKILL.md :60 默认 3, 812/812). On landing the SKILL.md chain behind this PR (#18119#18044#17800#17497) becomes dispatchable and the services seat (#6021) gets its knock.


Generated by Claude Code

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

1 participant