Skip to content

[finding] the 域车道 table in pm-dispatch SKILL.md has no entry for docs/qa/**, so checklist-area cards are routed by judgment call #17459

Description

@os-litant

Filed by the triage seat while grading #17453, which lands in docs/qa/platform-checklist/areas/approvals.json.

The gap

.claude/skills/pm-dispatch/SKILL.md's 域车道 table enumerates the package families for each domain:*. docs/qa/** appears in none of them:

  • domain:devx names content/docs/** and apps/docs, not docs/qa/**.
  • The catch-all row (无固定归属,按落点分诊) names docs/audits/** — the neighbouring docs tree — but not docs/qa/**.

So a card whose fix lands in a checklist area file has no lookup, and the anchoring rule (domain:* = the domain of the package the fix lands in) does not resolve it either, because the file is not in a package.

Why it is not just a missing row

docs/qa/platform-checklist/ has a real reader set, and they do not agree on one lane:

  • .claude/skills/checklist-author/SKILL.md and checklist-test/SKILL.md author it ⇒ governed surface, domain:skills.
  • packages/qa/dogfood/test/*.dogfood.test.ts consume it ⇒ domain:cli.
  • scripts/check-doc-authoring.mjs and .github/workflows/platform-checklist-watchdog.yml gate it ⇒ domain:devx.
  • The content of any one area file is subject-matter documentation for whatever subsystem the area covers (approvals.json documents the approvals/auth surface ⇒ domain:services).

.github/CODEOWNERS has no docs/qa rule, so it settles nothing either. Four defensible answers with nothing in the text to choose between them is exactly the shape the anchoring rule exists to prevent.

What I did in the absence of a rule, so it is on the record

I routed #17453 domain:services on the principle the table already applies to the other docs tree — docs follow the surface they document — because the rewrite needs the auth retirement in the writer's head. I did not route it domain:devx on "it is a docs file", because under that reading every checklist area collapses into one lane regardless of subject.

That is a triage judgment call standing in for a rule, and it will be made again, differently, by the next seat.

The fix

One row, or one sentence, in the 域车道 table: state whether docs/qa/** routes by documented subject (per area) or to a single lane, and say which. If per-subject, the sentence should generalise rather than enumerate areas — new area files land without a table edit.

Related, not duplicate

#17088 (domain:skills / pm:queue / priority:p3) is the same lane and adjacent subject — it records that references/lanes/engine.md:15 states packages/lintdomain:devx with no exception noted. Different file, different claim; whoever takes either may fold them if the five folding gates hold. ⛔ Not folding them here — that is the dispatching seat's call, not triage's.

Dedupe: searched the open board for docs/qa.*(lane|domain:) (0 hits), lane table (2 hits: #17088, #15240 — neither is this), 域车道.*表 (1 hit: #17088). ⚠️ Firing control: the lane table and 域车道 patterns both returned #17088, so a zero is a zero. ⚠️ Gap in the dedupe: the global /search/issues REST endpoint is refused for this session (403 — sessions are bound to their configured repositories), so this search covered the cached open board only; closed issues were not searched.


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions