You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(lint): Lint & Repo Gates is the merge-group critical path after #16453; run each gate family only on the paths it reads (PM dispatch-gates self-test 518 s first) #16496
Filed by the skills lane seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve), 2026-09-07T04:3xZ, from the live reading of #16453's own merge-group run, under the maintainer's direction to dispatch every feasible queue-speed optimisation. Surface owner stays domain:devx.
Authority (maintainer, verbatim, live PM chat 2026-09-07): 「我希望一个最佳平衡的方式,能够加快队列速度,现在卡住车队开发的感觉主要是这个问题。」 → 「同意你的建议,你负责执行派发所有可行的优化」.
What
Lint & Repo Gates runs, on a merge group, only the gate families whose files the group touches, so that a group which does not touch scripts/pm/ does not pay the PM dispatch-gates self-test. After #16453 this job is the merge queue's critical path.
Measured (the merge group of PR #16471, queue branch gh-readonly-queue/main/pr-16471-98c7ab62…, 2026-09-07)
Enqueued 03:37:21Z, merged 04:04:38Z: 27.3 minutes in the queue.
Lint & Type Check run 34080270423: 03:37:25Z to 04:00:43Z (23.3 minutes), the group's critical path. Its Lint & Repo Gates job ran 1394 s: PM dispatch-gates self-test 518 s, Engine query-options erasure ratchet 112 s, Verify-lock entry-point self-test 100 s, ESLint 69 s, and roughly 595 s spread over steps under 60 s each. Type Check · workspace 668 s (build 239 s, type check 372 s); Type Check · consumer gates 493 s.
None of these steps reads the group's file surface: a docs-only or tooling-only group pays the full battery. The PM dispatch-gates self-test exercises scripts/pm/** and .claude/** only.
First family: PM dispatch-gates self-test (518 s), keyed to scripts/pm/**, .claude/**, AGENTS.md, CLAUDE.md, .github/workflows/**, package.json; then the erasure ratchet and the verify-lock self-test on their own paths. ESLint is not scoped.
Measure first: list every step of the job with its median over the last ten merge-group runs and the paths it reads, before writing the selector. A step whose reads cannot be named is not scoped.
Clause-②: yes. The required check verifies fewer families at merge time. Contract tier; the family list is part of the PR body.
Acceptance
The selector's self-test covers at least: a scripts/pm/ change (the self-test runs), a docs-only group (skipped and printed), a workflow change (runs), and an unknown path (every family runs).
The PR's own merge-group run shows the skipped families in the job summary; the seat reads it.
Filed by the skills lane seat (session
session_019RfFHiRCSs3JXLK4cwcfox, os-steve), 2026-09-07T04:3xZ, from the live reading of #16453's own merge-group run, under the maintainer's direction to dispatch every feasible queue-speed optimisation. Surface owner staysdomain:devx.Authority (maintainer, verbatim, live PM chat 2026-09-07): 「我希望一个最佳平衡的方式,能够加快队列速度,现在卡住车队开发的感觉主要是这个问题。」 → 「同意你的建议,你负责执行派发所有可行的优化」.
What
Lint & Repo Gatesruns, on a merge group, only the gate families whose files the group touches, so that a group which does not touchscripts/pm/does not pay the PM dispatch-gates self-test. After #16453 this job is the merge queue's critical path.Measured (the merge group of PR #16471, queue branch
gh-readonly-queue/main/pr-16471-98c7ab62…, 2026-09-07)Lint & Repo Gatesjob ran 1394 s:PM dispatch-gates self-test518 s,Engine query-options erasure ratchet112 s,Verify-lock entry-point self-test100 s, ESLint 69 s, and roughly 595 s spread over steps under 60 s each.Type Check · workspace668 s (build 239 s, type check 372 s);Type Check · consumer gates493 s.scripts/pm/**and.claude/**only.Ruling
merge_groupandpull_request, each gate family inLint & Repo Gatesruns only when the changed paths touch the files it reads. The selection is one script underscripts/ci/with a self-test, in the shape ci: the merge queue runs the affected package set, not the full list (maintainer-directed, part A of the test-cost programme) #16453 set for the package set (select-shard-packages.sh), and the job prints the families it ran and the families it skipped.pushonmainand the hourly full run (ci: push runs on main use the affected set; an hourly scheduled run keeps the full list and files a card on red (maintainer-directed) #16467) keep the full battery.PM dispatch-gates self-test(518 s), keyed toscripts/pm/**,.claude/**,AGENTS.md,CLAUDE.md,.github/workflows/**,package.json; then the erasure ratchet and the verify-lock self-test on their own paths. ESLint is not scoped.Acceptance
scripts/pm/change (the self-test runs), a docs-only group (skipped and printed), a workflow change (runs), and an unknown path (every family runs).Refs #16453, #16467.
Generated by Claude Code