Commit ce1d7c7
committed
CI has never validated the plugin manifests
The real cause of the last three red runs, and of every green one before them.
`npm install -g @anthropic-ai/claude-code` installs a shim that fetches a
platform-native binary in its postinstall. On CI that binary never landed, so
every `claude plugin validate` exited non-zero with "claude native binary not
installed" — and check 19's old output parsing read that error as "no findings"
and printed ok. The step has been in the workflow for as long as the check has,
and it has never once validated anything.
CI now runs the postinstall and asserts `claude --version` before the gate, so a
broken install stops the run where it happens instead of resurfacing later as a
check that measures nothing.
The control runs both directions now, because each catches a different lie. A
validator that rejects everything is indistinguishable from a broken repo, which
is exactly the state CI was in. A validator that accepts everything is
indistinguishable from a healthy one. It has to accept a known-good manifest and
reject a known-bad one before this check will repeat what it says.
The good control carries an author field: without it --strict warns about
missing attribution and the control fails itself, which reads precisely like the
broken validator it exists to detect.
Proven against two stubs, one erroring and one exiting 0 on everything: both
produce a skip naming the reason, and the accounting still balances.
verify.sh 22/22, gate-falsifiability.sh 23/23.1 parent 056fe81 commit ce1d7c7
2 files changed
Lines changed: 36 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
600 | 600 | | |
601 | 601 | | |
602 | 602 | | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
603 | 610 | | |
604 | | - | |
605 | | - | |
606 | | - | |
607 | | - | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
608 | 623 | | |
609 | | - | |
610 | | - | |
611 | 624 | | |
612 | | - | |
613 | | - | |
| 625 | + | |
| 626 | + | |
614 | 627 | | |
615 | 628 | | |
616 | 629 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
| 19 | + | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
21 | 31 | | |
22 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
23 | 36 | | |
24 | 37 | | |
25 | 38 | | |
| |||
0 commit comments