Ci gate
Run all CI checks locally before pushing — linters, type checks, tests, and vulnerability scans in parallel with a pass/fail summary table. Use when the user says "run CI", "check before push", "run all tests", "lint check", "pre-push checks", "validate before PR", "CI gate", "does it pass CI", "is it clean", "run checks", or wants to verify the project builds and passes before pushing.From its SKILL.md
npx -y skills add indrasvat/claude-code-skills --skill ci-gateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.8 KB, as published. Nobody here has run it
CI Gate
Run every CI check locally. Fail fast, report everything.
1. Detect project types
Look for marker files in the working directory:
| Marker | Stack | Checks |
|---|---|---|
go.mod | Go | go vet ./..., golangci-lint run ./..., go test -race -count=1 ./..., govulncheck ./... |
package.json | JS/TS | lint, typecheck, test (detect pm: bun.lockb->bun, pnpm-lock.yaml->pnpm, yarn.lock->yarn, else npm). If turbo.json exists, use turbo run lint typecheck test instead. |
Cargo.toml | Rust | cargo clippy -- -D warnings, cargo test, cargo audit |
pyproject.toml | Python | ruff check ., ruff format --check ., python -m pytest |
If multiple markers exist, run checks for ALL detected stacks.
2. Prerequisites
Before running, command -v check every tool needed for the detected stack(s). Collect ALL missing tools into a single list and report them together. If a critical tool is missing (go, cargo, node, python), stop and tell the user. If only optional tools are missing (golangci-lint, govulncheck, cargo-audit, turbo), warn but continue without those checks.
3. Execution
Run all checks for all detected stacks in parallel using background jobs in a single Bash call. Capture each check's exit code, wall-clock duration (via SECONDS), and stderr/stdout.
4. Output
Print a summary table FIRST:
| Check | Status | Duration |
|----------------------------|--------|----------|
| go vet ./... | PASS | 2.1s |
| cargo clippy -- -D warnings| FAIL | 5.4s |
For any FAIL row, print its full error output below the table. Exit with code 1 if any check failed, 0 if all passed.
5. --fix mode
If $ARGUMENTS contains --fix, run auto-fix variants BEFORE the regular checks:
- Go:
golangci-lint run --fix ./... - JS/TS:
<pm> run lint -- --fix(the--is required for npm to forward args) orturbo run lint -- --fix - Rust:
cargo clippy --fix --allow-dirty -- -D warnings - Python:
ruff check --fix .,ruff format .
Then re-run all checks to verify fixes. Without --fix, change nothing.
6. Idempotency
Without --fix: read-only, no side effects. With --fix: changes are visible via git diff.
Check $ARGUMENTS for flags.