Found while working #13800 (verdict handshake, PR #14960). Filed unassigned; not fixed there, and out of that card's scope.
The reading
On origin/main at ca3fd4b1, in a clean worktree after pnpm install:
pnpm check:platform-checklist -> EXIT=1
check-platform-checklist: 4 problem(s)
x coverage.json - batch_endpoints: UNCLASSIFIED - the platform has this capability (liveness ledger exists) but the checklist neither tests nor waives it.
x coverage.json - crud_endpoints: UNCLASSIFIED
x coverage.json - metadata_endpoints: UNCLASSIFIED
x coverage.json - route_generation: UNCLASSIFIED
Not caused by that PR, and proven so rather than asserted. The ca3fd4b1 version of scripts/check-platform-checklist.mjs was written to a sibling path in the same tree and run there; its four findings are byte-identical to the branch's (diff of the two finding sets is empty). The gate's own --self-test is green (141 assertions).
Why nobody saw it
.github/workflows/lint.yml states the gate is validated "by MAINTAINER action" and is deliberately not CI-wired. That is the standing subject of the open decision card #11730 — this issue is the concrete instance sitting on main today, not a re-raise of the channel question.
Prior instances of the same shape, both closed after being acted on: #11421 (manifest UNCLASSIFIED) and #7347 (the qa liveness ledger). This is the third recurrence, so the instance stream is real and the kinds differ each time.
What is owed
For each of the four kinds, either checklist items or a waiver with a stated reason in docs/qa/platform-checklist/coverage.json. Deciding which is a checklist-authoring judgment, not a mechanical edit, which is why this is a card rather than a rider on #14960.
Generated by Claude Code
Found while working #13800 (verdict handshake, PR #14960). Filed unassigned; not fixed there, and out of that card's scope.
The reading
On
origin/mainatca3fd4b1, in a clean worktree afterpnpm install:Not caused by that PR, and proven so rather than asserted. The
ca3fd4b1version ofscripts/check-platform-checklist.mjswas written to a sibling path in the same tree and run there; its four findings are byte-identical to the branch's (diffof the two finding sets is empty). The gate's own--self-testis green (141 assertions).Why nobody saw it
.github/workflows/lint.ymlstates the gate is validated "by MAINTAINER action" and is deliberately not CI-wired. That is the standing subject of the open decision card #11730 — this issue is the concrete instance sitting onmaintoday, not a re-raise of the channel question.Prior instances of the same shape, both closed after being acted on: #11421 (
manifestUNCLASSIFIED) and #7347 (theqaliveness ledger). This is the third recurrence, so the instance stream is real and the kinds differ each time.What is owed
For each of the four kinds, either checklist items or a waiver with a stated reason in
docs/qa/platform-checklist/coverage.json. Deciding which is a checklist-authoring judgment, not a mechanical edit, which is why this is a card rather than a rider on #14960.Generated by Claude Code