You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(devx): verdict handshake for check-platform-checklist and dispatch-gates self-tests
Both dispatches discarded their self-test's completion, so a `return` above the
verdict printed nothing and still exited 0 — an unfinished self-test reported as
a verified gate.
Measured before the repair, on this tree:
* `scripts/pm/dispatch-gates.mjs` — an early return at the real definition of
`selfTest()` took the run from "1288 cases pass" to ZERO bytes of output and
exit 0. The card carried this row as NOT MEASURED because the mechanical
probe anchors on the first `function selfTest() {` in the source, which here
is a fixture STRING: the injection lands inside a template literal and only
ever yields a SyntaxError. That is a limit of the instrument, not of the
file; a hand-read anchor measures it in one run.
* `scripts/check-platform-checklist.mjs` — five batteries returning
`{ checked, failures }` and combined by the caller. A section that stops
running took the verdict from 141 assertions to 119, exited 0, and still
claimed in prose that the direction it had skipped "REFUSES an
empty/renamed/reshaped" table. A bare `return` instead yields `undefined`
and CRASHES the combine — an exit code alone reads that crash as a
handshake rather than as the accident it is.
dispatch-gates takes the landed sentinel form. check-platform-checklist takes
the landed FLAG form (`check-durability-degradation-log-level.mjs`,
`check-dispatcher-error-vocabulary.mjs`) for the reason those files state: the
return value is load-bearing, so the handshake cannot BE the return value. Its
guard is checked on both legs — including the inline one, which is the only leg
CI reaches — before the `.failures` read, so a bare `return` now reports itself
instead of crashing its reader.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk
t('Q20 the same hint reaches an area that has no recipe block of its own',hintedEmpty.length===1&&hintedEmpty[0].includes('`search:qa-contributor-bound-member`'));
879
919
920
+
provisioningReachedVerdict=true;
880
921
return{ checked, failures };
881
922
}
882
923
@@ -978,6 +1019,7 @@ function selfTestUnreferencedRecipes() {
978
1019
t('R18 a `$comment` is never reported unreferenced',flag(ALL).length===0&&none.every((r)=>!r.recipe.startsWith('$')));
979
1020
t('R19 an area that defines no recipes contributes nothing to flag',!none.some((r)=>r.area==='records-forms'));
t('M52 the live map is a bijection-free lookup: no folded spelling is ALSO a canonical singular — so the refusal can never fire on a canonical `/meta/<type>` segment',
console.error("check-platform-checklist: the trap-vocabulary extractor's own positive control FAILED — this check cannot be trusted, and a green from it would mean nothing.\n");
console.error("check-platform-checklist: the provisioning-resolve check's own positive control FAILED — a `use` that resolves to nothing would pass, which is the exact defect this check was added to close.\n");
console.error('check-platform-checklist: the unreferenced-recipe direction\'s own positive control FAILED — a recipe no item references would pass unreported, and because every real recipe IS referenced, nothing else in this gate would ever notice.\n');
console.error("check-platform-checklist: the `/meta` call-spelling refusal's own positive control FAILED — an executable step instructing a folded plural spelling would pass unreported, which is the exact defect this check was added to close.\n");
console.error('check-platform-checklist: the source-line-citation refusal\'s own positive control FAILED — a rotting `file:line` pointer would pass unreported, and because the ledger is clean nothing else here would ever notice.\n');
0 commit comments