← ClaudeAtlas

ci-preflightlisted

Run before pushing any branch that adds shipped files, hooks, or platform-specific code. Prevents the CI-whiplash pattern — multiple red pushes that could have been caught locally.
The-Artificer-of-Ciphers-LLC/skills-from-the-artificer · ★ 2 · DevOps & Infrastructure · score 73
Install: claude install-skill The-Artificer-of-Ciphers-LLC/skills-from-the-artificer
# CI Preflight > A green CI is not a reward for guessing correctly. It's the outcome of a local gate that already ran. ## The three CI-whiplash anti-patterns This skill exists because these three failures happen repeatedly and all have the same root cause: pushing before checking. --- ### Anti-pattern 1: Missing registration surfaces **What happens:** A new shipped file (hook, agent, command, module) passes unit tests but fails integration tests because it wasn't added to one of several whitelists/registries/inventories the repo maintains. **Why it's hard:** These surfaces are spread across multiple files with no obvious connection — you find one and miss two others. **Rule:** Before pushing any new file that ships to users, run a completeness search. ```bash # Find every place "existing-hook.js" is referenced in the repo grep -r "gsd-existing-hook" . --include="*.js" --include="*.cjs" --include="*.md" --include="*.json" -l ``` Use an existing sibling file as the probe: if `gsd-existing-hook.js` appears in N files, your new hook must appear in the same N files. Missing even one fails CI. **In this repo, adding a new hook requires updating all of:** - `hooks/managed-hooks-registry.cjs` — `MANAGED_HOOKS` array - `scripts/build-hooks.js` — `HOOKS_TO_COPY` array - `bin/install.js` — registration block with `fs.existsSync` guard - `get-shit-done/bin/lib/installer-migration-report.cjs` — `BUNDLED_GSD_HOOK_FILES` Set - `docs/INVENTORY.md` — headline count + table row - `d