Files:
.github/workflows/ci.yml:12-39 — what CI actually runs
README.md:91 — npm run check # lint + typecheck + test, what CI runs
CONTRIBUTING.md:30 — npm run check # everything CI runs
CHANGELOG.md:84 — "...npm run check (lint + typecheck + test) is the CI gate"
Problem (one line): Three docs tell contributors npm run check is "what CI runs"/"the CI gate", but ci.yml never invokes npm run check — it runs npm run lint (lint job) and npm run build + npm run test (test job) as separate steps, and runs no standalone npm run typecheck — so running npm run check locally does not reproduce CI step-for-step, and the docs misdescribe both.
Details
ci.yml runs, across two jobs:
# lint job
- run: npm run lint
# test job (matrix node 20/22/24)
- run: npm run build
- run: npm run test
There is no - run: npm run check and no standalone npm run typecheck step anywhere. Meanwhile npm run check (root package.json) is lint && typecheck && build && test. So the docs are inaccurate in two ways: (a) CI does not invoke npm run check at all, and (b) the "lint + typecheck + test" gloss omits the build step that check actually runs.
Note: this is distinct from the existing issue about the CLAUDE.md wording of npm run check omitting build — that one is about CLAUDE.md's description; this is about the CI-invocation claim in README/CONTRIBUTING/CHANGELOG vs the actual ci.yml.
What "done" looks like
Either:
- Make CI actually run the documented gate — replace the split
lint/build/test steps with a single - run: npm run check (simplest way to make the docs true), or
- Reword the three docs to describe what CI really runs (lint job + build/test matrix), and drop/adjust the "what CI runs" / "the CI gate" phrasing.
Pick one; option 2 is doc-only and lowest-risk.
Scope
Doc edits (and optionally a small CI-yaml tweak). No code changes. Good for a first-time contributor; under an hour.
Files:
.github/workflows/ci.yml:12-39— what CI actually runsREADME.md:91—npm run check # lint + typecheck + test, what CI runsCONTRIBUTING.md:30—npm run check # everything CI runsCHANGELOG.md:84— "...npm run check(lint + typecheck + test) is the CI gate"Problem (one line): Three docs tell contributors
npm run checkis "what CI runs"/"the CI gate", butci.ymlnever invokesnpm run check— it runsnpm run lint(lint job) andnpm run build+npm run test(test job) as separate steps, and runs no standalonenpm run typecheck— so runningnpm run checklocally does not reproduce CI step-for-step, and the docs misdescribe both.Details
ci.ymlruns, across two jobs:There is no
- run: npm run checkand no standalonenpm run typecheckstep anywhere. Meanwhilenpm run check(rootpackage.json) islint && typecheck && build && test. So the docs are inaccurate in two ways: (a) CI does not invokenpm run checkat all, and (b) the "lint + typecheck + test" gloss omits thebuildstep thatcheckactually runs.What "done" looks like
Either:
lint/build/teststeps with a single- run: npm run check(simplest way to make the docs true), orPick one; option 2 is doc-only and lowest-risk.
Scope
Doc edits (and optionally a small CI-yaml tweak). No code changes. Good for a first-time contributor; under an hour.