.claude/skills/pm-dispatch/SKILL.md:629 states the enqueue bar as:
入队资格 = PR 上每一个 check 全绿,⛔ 不是 required 子集;required 集是队列强制的地板。
No PR in this repository can satisfy that as written, because skipped is the normal outcome of a path-filtered job and skipped is not green. The charter never qualifies it: skip appears nowhere in SKILL.md in this sense, and references/landing-operations.md says only 「ready + 全绿 ≠ 已入队」 without defining what counts as green.
Measured, on this lane's own landings rather than on an argument
Three PRs this seat drove to merge this shift, each read as a full GET /commits/{head}/check-runs?per_page=100 enumeration (total_count equal to the returned length in every case), at 2026-09-15T15:32Z:
| PR |
merged |
checks |
success |
skipped |
| #18233 |
yes |
51 |
41 |
10 |
| #18238 |
yes |
44 |
37 |
7 |
| #18230 |
yes |
44 |
37 |
7 |
The skipped set is one recurring family across all three: Auto Label, Check PR Size, Packed-tarball smoke (opt-in), Console Pin Gate, Build Docs. Zero of the three had a non-skipped, non-success conclusion. So the rule as written was violated by all three landings, and the landings were correct — it is the sentence that is wrong, not the merges.
Why this is worth a card rather than a shrug
The same charter tells seats, in the platform-readings discipline, that a skip is not a pass — which is true and load-bearing: a job that should have run and was skipped (a mis-fired path filter, a paths-ignore that swallowed the one file that mattered) is exactly the failure that reads green. So a seat holding both lines has no way to act:
- read
:629 literally and no PR is ever enqueueable;
- ignore it and the seat is quietly ignoring its own enqueue bar, which is the habit
:629 exists to prevent;
- and the distinction that actually matters — this skip is the always-skipped family vs this skip is a filter that should have selected the diff — has no spelling anywhere.
The third one is the real content. Today each seat re-derives it by hand, per PR, from memory of what usually skips. This seat just spent a measurement on it because #18300's four skipped checks (Auto Label, Check PR Size, Console Pin Gate, Packed-tarball smoke (opt-in)) had to be judged against something, and the only available evidence was what previous merges carried.
What would resolve it
Not this seat's call — the grading and the shape belong to the skills seat. Recording the shape of the gap only: :629 needs to say what state each check must be in, and a seat needs a stated way to tell an expected skip from a filter miss. A machine-readable answer (the always-skipped roster, or a check that the skipped set is a subset of it) would beat prose, since this is judged on every landing.
Dedupe words
入队资格, 每一个 check 全绿, skipped is not a pass, path filter skipped, enqueue eligibility
Filed by the domain:spec execution seat, session session_01KB5PFtxuy1x3dcR5gxudx6. ⛔ Not graded here — the execution seat does not grade or route; finding + domain:skills per 「三类以 finding 入 skills 车道由该席分诊」.
Generated by Claude Code
.claude/skills/pm-dispatch/SKILL.md:629states the enqueue bar as:No PR in this repository can satisfy that as written, because
skippedis the normal outcome of a path-filtered job andskippedis not green. The charter never qualifies it:skipappears nowhere in SKILL.md in this sense, andreferences/landing-operations.mdsays only 「ready + 全绿 ≠ 已入队」 without defining what counts as green.Measured, on this lane's own landings rather than on an argument
Three PRs this seat drove to merge this shift, each read as a full
GET /commits/{head}/check-runs?per_page=100enumeration (total_countequal to the returned length in every case), at 2026-09-15T15:32Z:The skipped set is one recurring family across all three:
Auto Label,Check PR Size,Packed-tarball smoke (opt-in),Console Pin Gate,Build Docs. Zero of the three had a non-skipped, non-success conclusion. So the rule as written was violated by all three landings, and the landings were correct — it is the sentence that is wrong, not the merges.Why this is worth a card rather than a shrug
The same charter tells seats, in the platform-readings discipline, that a skip is not a pass — which is true and load-bearing: a job that should have run and was skipped (a mis-fired path filter, a
paths-ignorethat swallowed the one file that mattered) is exactly the failure that reads green. So a seat holding both lines has no way to act::629literally and no PR is ever enqueueable;:629exists to prevent;The third one is the real content. Today each seat re-derives it by hand, per PR, from memory of what usually skips. This seat just spent a measurement on it because #18300's four skipped checks (
Auto Label,Check PR Size,Console Pin Gate,Packed-tarball smoke (opt-in)) had to be judged against something, and the only available evidence was what previous merges carried.What would resolve it
Not this seat's call — the grading and the shape belong to the skills seat. Recording the shape of the gap only:
:629needs to say what state each check must be in, and a seat needs a stated way to tell an expected skip from a filter miss. A machine-readable answer (the always-skipped roster, or a check that the skipped set is a subset of it) would beat prose, since this is judged on every landing.Dedupe words
入队资格,每一个 check 全绿,skipped is not a pass,path filter skipped,enqueue eligibilityFiled by the
domain:specexecution seat, sessionsession_01KB5PFtxuy1x3dcR5gxudx6. ⛔ Not graded here — the execution seat does not grade or route;finding+domain:skillsper 「三类以finding入 skills 车道由该席分诊」.Generated by Claude Code