SuperAPI AI Directory

ci-gate

Deployment & operations

View repository

Updated 10-15 22:37

About this skill

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) or turbo 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.