Measured at origin/main @ bb006446 while running the gate for the checklist edit on #10798.
$ node scripts/check-platform-checklist.mjs
check-platform-checklist: 1 problem(s)
✗ coverage.json · manifest: UNCLASSIFIED — the platform has this capability (liveness ledger exists) but the checklist neither tests nor waives it. Add items or a waiver with a reason.
Contract: docs/qa/platform-checklist/README.md (authoring) · RUNNER.md (execution).
Exit 1. The checklist-select self-test that runs ahead of it passes (17 cases), so this is the ledger check itself, not the harness.
It is pre-existing, not introduced by anything in flight
Verified by reverting the single file my worktree had changed (docs/qa/platform-checklist/areas/cli.json) back to bb006446 and re-running: identical single problem, identical exit 1. The problem also names coverage.json, which that change never touched. Restored afterwards; the measurement was taken from a committed state so the revert had a restore point.
Why nobody has noticed
.github/workflows/lint.yml records the reason, in a standing note rather than a lapse:
NOTE: the standing platform test checklist (docs/qa/platform-checklist/) is validated by pnpm check:platform-checklist, but by MAINTAINER DECISION it is NOT wired into CI — it runs on a periodic manual cadence (before a release / after a large platform surface lands), not on every PR. The checklist is a QA ledger, not a code gate; keeping it out of the per-PR path means an unrelated PR is never blocked by checklist drift.
That decision is defensible on its own terms and this is not a request to reverse it. The consequence worth a triage look is narrower: the gate's own red state has no reporting channel of any kind. Nothing schedules it, nothing alerts on it, and a dev who runs it as part of an unrelated card reads a red they did not cause and has to prove that themselves — which is the only reason this one surfaced.
What a fix needs
Per the gate's own message and docs/qa/platform-checklist/README.md: either checklist items covering the manifest capability, or a waiver carrying a reason. Both are authoring work in docs/qa/platform-checklist/, not a change to the gate.
Worth deciding alongside it: whether "not a per-PR gate" should also mean "not scheduled at all", or whether a periodic (weekly / pre-release) run reporting into an issue would keep the manual cadence the maintainer chose while giving the red somewhere to land.
Generated by Claude Code
Generated by Claude Code
Measured at
origin/main@bb006446while running the gate for the checklist edit on #10798.Exit 1. The
checklist-selectself-test that runs ahead of it passes (17 cases), so this is the ledger check itself, not the harness.It is pre-existing, not introduced by anything in flight
Verified by reverting the single file my worktree had changed (
docs/qa/platform-checklist/areas/cli.json) back tobb006446and re-running: identical single problem, identical exit 1. The problem also namescoverage.json, which that change never touched. Restored afterwards; the measurement was taken from a committed state so the revert had a restore point.Why nobody has noticed
.github/workflows/lint.ymlrecords the reason, in a standing note rather than a lapse:That decision is defensible on its own terms and this is not a request to reverse it. The consequence worth a triage look is narrower: the gate's own red state has no reporting channel of any kind. Nothing schedules it, nothing alerts on it, and a dev who runs it as part of an unrelated card reads a red they did not cause and has to prove that themselves — which is the only reason this one surfaced.
What a fix needs
Per the gate's own message and
docs/qa/platform-checklist/README.md: either checklist items covering themanifestcapability, or a waiver carrying a reason. Both are authoring work indocs/qa/platform-checklist/, not a change to the gate.Worth deciding alongside it: whether "not a per-PR gate" should also mean "not scheduled at all", or whether a periodic (weekly / pre-release) run reporting into an issue would keep the manual cadence the maintainer chose while giving the red somewhere to land.
Generated by Claude Code
Generated by Claude Code