Path: none | charter (.claude/skills/pm-dispatch/SKILL.md :362 — the Path: grammar — plus one grading rule; twins in references/core-rules.md / references/lanes/triage.md only where a line exists) | RULED wording (maintainer 「有人在等吗 是个伪命题」, 2026-09-19) | serial behind #19340 under ruling 甲 | graded by domain:skills#2
Finding class (b), surfaced by the maintainer's first sweep batch (2026-09-19): the triage seat mapped every card onto a checklist AREA (access-security, studio-authoring, …) and read the hit as 「清单上的能力断了」, so 8 of 8 cards graded P0–P2 and none closed; it then substituted 「有人在等吗」 as the tie-breaker. Maintainer ruling, verbatim: 「我们是一个开发工具,应该考虑北极星有没有这个需求,有人在等吗 是个伪命题」.
仪器 question (北极星「仪器为车队服务」): which fleet decision differs — every grading in the two-repo sweep (≈965 cards) and every first-touch grading after it; the seat re-graded one batch by hand already. ⇒ p1 (blocks the maintainer's live sweep).
The law's test, made mechanical: docs/qa/platform-checklist/areas/*.json carries 264 items with ids (<area>.<slug>) and their own priority (P0/P1/…). A card is 「在清单上」 only when it can name the item that would FAIL because of it; a card that merely touches an area is not. The card's level inherits the item's P when the capability is broken, P2 when it runs but errs; no item and no path step ⇒ none ⇒ p3 or not planned. Named users, pull, or 「有人在等」 are never a test — the North Star's definition list, the path and the checklist are.
Scope (.claude/skills/pm-dispatch/SKILL.md, ceiling 812 / 812 line-neutral, every line ≤ 120 B; twins in references/core-rules.md and references/lanes/triage.md if either carries the grading line — grep first):
- :362
Path: P<n> | <清单区> | none → Path: <清单项 id> | P<路步> | none (the item id from docs/qa/platform-checklist/areas/*.json, or the path step of 「唯一的度量,那条路」, or none).
- One line (fold a neighbour to pay for it): 命中清单区 ≠ 能力断了;写不出会 fail 的清单项 / 断的路步 ⇒
none ⇒ p3 或不做;定级继承该项的 priority(断)或 P2(能跑但错);⛔「有人在等」「拉动」不是判据.
- The 分诊缺口 rule at :461 stays (a missing
Path: line is the round-report gap); Path: none is a written answer, not a gap.
Acceptance greps (control on origin/main): 「清单项」 in SKILL.md ≥ 1 (control 0 in this sense — 清单区 is what main says); 「有人在等」 in SKILL.md 1 as a negative rule (control 0); Path: in SKILL.md ≥ 2 (control 2). Gates: check:pm-skill-ratchet (812 / 812), check:pm-skill-id-lint, check:skill-frame-sync, check:pm-half-states. Governed: .claude/** = Tier S ⇒ draft PR, the skills seat's contract-tier record lands it.
Not in scope: the North Star text itself (the maintainer's; a clause 「清单上的能力断了 = 指得出会 fail 的清单项」 is offered to the maintainer in chat) and the checklist files.
Generated by Claude Code
Path: none | charter (
.claude/skills/pm-dispatch/SKILL.md:362 — thePath:grammar — plus one grading rule; twins inreferences/core-rules.md/references/lanes/triage.mdonly where a line exists) | RULED wording (maintainer 「有人在等吗 是个伪命题」, 2026-09-19) | serial behind #19340 under ruling 甲 | graded bydomain:skills#2Finding class (b), surfaced by the maintainer's first sweep batch (2026-09-19): the triage seat mapped every card onto a checklist AREA (access-security, studio-authoring, …) and read the hit as 「清单上的能力断了」, so 8 of 8 cards graded P0–P2 and none closed; it then substituted 「有人在等吗」 as the tie-breaker. Maintainer ruling, verbatim: 「我们是一个开发工具,应该考虑北极星有没有这个需求,有人在等吗 是个伪命题」.
仪器 question (北极星「仪器为车队服务」): which fleet decision differs — every grading in the two-repo sweep (≈965 cards) and every first-touch grading after it; the seat re-graded one batch by hand already. ⇒ p1 (blocks the maintainer's live sweep).
The law's test, made mechanical:
docs/qa/platform-checklist/areas/*.jsoncarries 264 items with ids (<area>.<slug>) and their ownpriority(P0/P1/…). A card is 「在清单上」 only when it can name the item that would FAIL because of it; a card that merely touches an area is not. The card's level inherits the item's P when the capability is broken, P2 when it runs but errs; no item and no path step ⇒none⇒ p3 or not planned. Named users, pull, or 「有人在等」 are never a test — the North Star's definition list, the path and the checklist are.Scope (
.claude/skills/pm-dispatch/SKILL.md, ceiling 812 / 812 line-neutral, every line ≤ 120 B; twins inreferences/core-rules.mdandreferences/lanes/triage.mdif either carries the grading line — grep first):Path: P<n> | <清单区> | none→Path: <清单项 id> | P<路步> | none(the item id fromdocs/qa/platform-checklist/areas/*.json, or the path step of 「唯一的度量,那条路」, ornone).none⇒ p3 或不做;定级继承该项的priority(断)或 P2(能跑但错);⛔「有人在等」「拉动」不是判据.Path:line is the round-report gap);Path: noneis a written answer, not a gap.Acceptance greps (control on
origin/main): 「清单项」 in SKILL.md ≥ 1 (control 0 in this sense —清单区is what main says); 「有人在等」 in SKILL.md 1 as a negative rule (control 0);Path:in SKILL.md ≥ 2 (control 2). Gates:check:pm-skill-ratchet(812 / 812),check:pm-skill-id-lint,check:skill-frame-sync,check:pm-half-states. Governed:.claude/**= Tier S ⇒ draft PR, the skills seat's contract-tier record lands it.Not in scope: the North Star text itself (the maintainer's; a clause 「清单上的能力断了 = 指得出会 fail 的清单项」 is offered to the maintainer in chat) and the checklist files.
Generated by Claude Code