Skip to content

chore(pm): tighten pm-dispatch SKILL.md table-row pin to 642 - #13360

Merged
zhuangjianguo merged 1 commit into
mainfrom
claude/issue-13090-ratchet-pin-642
Aug 30, 2026
Merged

zhuangjianguo merged 1 commit into
mainfrom
claude/issue-13090-ratchet-pin-642

Conversation

@zhuangjianguo

Copy link
Copy Markdown
Collaborator

Fixes #13090

What

Follows the ratchet gate's own standing hint: lowers MAX_TABLE_ROW_BYTES for
.claude/skills/pm-dispatch/SKILL.md in scripts/pm/check-skill-line-ratchet.mjs
from 765 to 642, matching the widest table row after PR #13085 (MERGED
2026-08-29T09:35:17Z) shrank the domain:engine row. Gate-script edit only —
.claude/skills/pm-dispatch/SKILL.md itself is untouched. No other pin was
touched (this is the only pin with paid-down headroom this round).

Proof (headroom returns to 0, as expected)

Before (pre-edit, at merge-base 56c5b1d):

ℹ️  .claude/skills/pm-dispatch/SKILL.md: max-table-row-bytes headroom is 123 — every pin is
    seeded at 0 headroom, so a row has been paid down; lower the pin to 642
    (shrink-only ratchets tighten opportunistically).
✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md: widest table row is 642 bytes
    (pin 765; headroom 123).

After (at head d4c5141b0):

✓ check-skill-line-ratchet: .claude/skills/pm-dispatch/SKILL.md: widest table row is 642 bytes
    (pin 642; headroom 0).

No hint line prints post-edit — headroom is 0, which is the expected/intended
result of a freshly-paid-down pin, not a failure.

node scripts/pm/check-skill-line-ratchet.mjs — EXIT 0
node scripts/pm/check-skill-line-ratchet.mjs --self-test — 111 cases pass, EXIT 0
pnpm check:pm-skill-ratchet — EXIT 0 (runs both of the above)

Local gates run at head d4c5141b0

Derived from the actual diff via node scripts/pm/dispatch-gates.mjs (not copied
from the dispatch brief) — all green:

  • pnpm check:agent-test-spelling
  • pnpm check:bash32-floor
  • pnpm check:cli-command-ids
  • pnpm check:cross-package-test-inputs
  • pnpm check:entry-guard
  • pnpm check:parse-guard
  • pnpm check:pm-skill-ratchet
  • pnpm check:pnpm-filter-targets
  • pnpm check:watch-hint-literal
  • node scripts/check-ci-filter-parity.mjs
  • node scripts/check-cross-package-test-inputs.mjs
  • node scripts/check-shard-attestation.mjs

Plus two convention-triggered obligations the derivation surfaces for any
gate-SCRIPT edit (not named in the dispatch brief; re-derived and run here):

  • node scripts/pm/bare-root-worklist.mjs --self-test — OK, 50 live rows, none stale/missing/contradicted
  • pnpm check:pm-dispatch-gates — dispatch-gates self-test: 897 cases pass

node scripts/check-test-completeness.mjs run bare (no turbo log) exits 3 —
per its own printed text this is PREREQUISITE NOT MET / NOT MEASURED, not a
finding; CI supplies the log itself.

Scope

scripts/pm/check-skill-line-ratchet.mjs only — one line. No separate test
file exists for this script (its self-test lives inline via --self-test),
so no additional test-file surface to touch. skip-changeset applies (closed
list: scripts/pm/**, no package release) — label applied on open.


Generated by Claude Code

PR #13085 shrank the widest table row of .claude/skills/pm-dispatch/SKILL.md
(the domain:engine row) from 765 to 642 bytes. The shrink-only ratchet in
check-skill-line-ratchet.mjs has been printing the standing
opportunistic-tighten hint on every run since; this follows it, lowering the
MAX_TABLE_ROW_BYTES pin to match. Headroom returns to 0, as expected for a
freshly-paid-down pin.
@github-actions

Copy link
Copy Markdown
Contributor

⛔ merge queue 构建失败 — 先分诊,再决定要不要重排

队列构建 33298233173 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集),
所以失败的测试可能在本 PR 没碰过的包里 —— 那不是重排能修的。每次盲目重排都会让排在后面的所有 PR 重建一轮。

失败的 job(日志抽取,best effort):

  • Test Core (5/6) — 失败步骤: Run this shard's tests

    @objectstack/rest:test:  FAIL  src/ui-view-route-tenancy.measurement.test.ts > [#13214] §3 what the crossed response actually contains > ⚠️ `hidden` is NOT a uniform floor on the crossed path — measur
      ↳ 失败原因: @objectstack/rest:test: AssertionError: expected [ 'name', 'created_at', …(1) ] to include 'status'
    

↳ 失败原因 是判读的关键:超时(Test timed out in … / Hook timed out in …)多半是负载/时序,不是本 PR 的回归;
断言(AssertionError: …)才指向真实的行为改变。两者的 FAIL 行长得一模一样,只有这一行能区分。

跨 PR 相同签名(24h,按失败测试文件聚合):

历史信号:

  • 本 PR 过去 24h 无队列失败记录(首次)。
  • 过去 24h 队列共有 13 个失败构建(不含本次)。

分诊清单:

  1. 失败测试在本 PR 改动的包里 → 真回归,修 PR。
  2. 失败测试与本 PR 无关 → 看上面的「跨 PR 相同签名」;已有汇总 issue ⇒ flaky/环境问题实锤,去那张 issue 上谈,修好前重排只会再烧一轮全队列。
  3. 两者都不是 → 可能与同组 PR 语义冲突;等前面的 PR 落地或失败出队后再重排一次即可,不要连续重排。

Generated by Claude Code · merge-queue-triage workflow (#4859)

Copy link
Copy Markdown
Collaborator Author

Queue-ejection disposition (skills lane seat, session session_01EXxTW8mvPBhoHxmyPZ63de): the failing check is queue build 33298233173, Test Core (5/6), signature src/ui-view-route-tenancy.measurement.test.ts — not this PR's failure. This diff is one line in scripts/pm/check-skill-line-ratchet.mjs; the failing test file exists only on PR #13258's branch and reached this build through speculative stacking (ledger #13374 marks this PR S1 · inherited, a bystander by construction). Root cause is already established on the ledger by the domain:engine seat: the assertion pins pre-fix behaviour that merged fix PR #13329 (2026-08-30T04:23Z) reversed by design — deterministic, not flaky; the fix is an in-place assertion inversion inside #13258, owned by that PR's author (told there before enqueue).

Disposition per the triage checklist's own branch 3 and the one-re-run rule: the stack root has exited the queue, this PR's own tree is current-main + one line, so it re-queues once now. If it is ejected again on the same signature it will NOT be re-queued again — it then waits explicitly on #13258's assertion flip, and that wait will be stated here, not silent.


Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ratchet bookkeeping: pm-dispatch SKILL.md widest-table-row pin can follow the paid-down row (765 to 642 bytes) once PR #13085 lands

2 participants