← ClaudeAtlas

run-the-validators-ci-runslisted

A green local build does not mean a green CI. Projects skip expensive validators (errorprone, RAT, forbidden-apis, license checks) on developer machines and enable them only in CI, where the same warning becomes a hard failure under -Werror. So "check passed locally" can be true while CI is red on the very file you just changed. Before claiming a change is done, find the project's opt-in flags for the validators its CI enables, and run with them. And when a validator does fire, fix the RULE across the whole diff — not the one line the reviewer pointed at. Use before saying "done", "green", or "ready for review". Trigger terms: check passed, build is green, CI is red but it works locally, errorprone, -Werror, lint failure, skipped on builds not running inside CI, warnings found.
serhiy-bzhezytskyy/contrib-receipts · ★ 1 · Code & Development · score 75
Install: claude install-skill serhiy-bzhezytskyy/contrib-receipts
# Run the validators CI runs ## Purpose Local builds are tuned for iteration speed, so projects disable the slow static analysers and enable them only in CI. The failure mode is specific and expensive: you run the project's own documented gate, it passes, you report "done" — and CI fails on a warning your build never computed. The reviewer then sees a red PR they already reviewed, which spends their attention on your build hygiene instead of your change. The second half matters as much as the first. When a linter does fire, the reviewer usually quotes *one* instance. That instance is an example, not the requirement: the **rule** is the requirement. Fixing only what was quoted leaves the same violation elsewhere in your diff, and the next CI run finds it — costing a second round for the same lesson. ## When to use - Before saying "done", "green", "tests pass", or "ready for review". - Immediately after a lint/static-analysis failure appears in CI. - When CI is red and the local build is green — assume the validator gap first. ## When NOT to use Not for the slow *test* suites — running every module's tests locally is often impractical and CI exists for that. This is about **validators**: they are fast, deterministic, and their absence locally is silent. ## The practice (checklist) - [ ] Find the flags. Grep the build for validator toggles and read the CI workflow for what it actually enables: `grep -rn "validation\.\|skipIf\|onlyIf.*CI\|System.getenv(\"CI\"