fix(ci): make npm run ci --full actually run the full gate

scripts/ci-local.sh gated its two storybook + axe steps on
`[[ "${1:-}" == "--full" ]]`, so the flag had to arrive as a positional
argument. CLAUDE.md documents `npm run ci --full`, but npm parses that
flag itself and exports `npm_config_full=true` instead of passing it
through. Proven with `npm run env --full`.

The documented command therefore skipped both steps and still printed
"local CI passed" — a gate that reported success without running. Anyone
following CLAUDE.md has been skipping storybook-a11y.

Accept either form. Fixing the script makes every existing document
correct, instead of changing four of them and re-teaching the reader.

Found while verifying RD-06, which adds stories and so depends on those
steps actually running.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-09-04 16:57:37 +02:00
co-authored by Claude Opus 5
parent 0c6fd37ed8
commit d9c56b0c24
2 changed files with 15 additions and 1 deletions
+10
View File
@@ -859,6 +859,16 @@ Measured against the current tree, not assumed:
files, so the folder=layer move is mechanical, not a taxonomy debate. The two:
`async.component.ts` has no tag at all, and `breadcrumb.component.ts` says `/** Chrome: */`.
**A live CI-gate defect, found while executing RD-06 (now fixed).**
`scripts/ci-local.sh` gated its storybook + axe steps on `[[ "${1:-}" == "--full" ]]`, but
CLAUDE.md documents `npm run ci --full` — and npm parses that flag itself, exporting
`npm_config_full=true` instead of passing `--full` through as `$1`. Proven with
`npm run env --full`. So the documented command **skipped both steps and still printed
"local CI passed"**: a gate reporting success without running. The script now accepts either
form, which makes every existing doc correct rather than requiring them all to change. This
matters directly for RD-27, whose highest risk is a broken `.mdx` story import that **only**
`build-storybook` catches.
And four corrections to claims made **earlier in this same investigation**, caught by reading
the consumers and the rule semantics rather than the definitions: