← ClaudeAtlas

validate-codelisted

Validate code quality — auto-fix formatting/lint, verify types, run tests. Use when asked to "validate code", "check code", or validate before committing; also lint-only asks ("run linter", "fix lint errors"). Don't use for committing, pushing, or writing new tests.
helderberto/agent-skills · ★ 16 · Code & Development · score 78
Install: claude install-skill helderberto/agent-skills
# Validate Code Run the project's own quality gates — format/lint fix, type check, tests — whatever this project defines. Detect the toolchain; never assume npm. Lint-only ask → steps 1–3, skip tests; check-only wording ("check lint", "run the linter" without "fix") → also skip the fix step. ## Workflow 1. **Detect the project's commands.** Prefer a task the project already defines over a raw tool call: - Node → `package.json` scripts (`lint:fix`/`lint-fix`, `lint`, `typecheck`/`tsc`, `test`) - Python → `pyproject.toml` / `tox.ini` / `Makefile` (`ruff --fix`/`black`, `ruff`/`flake8`, `mypy`, `pytest`) - Go → `gofmt -w`, `golangci-lint run` / `go vet`, `go build ./...`, `go test ./...` - Rust → `cargo fmt`, `cargo clippy`, `cargo check`, `cargo test` - else → read the `Makefile` / CI config for the equivalent targets 2. **Format + lint fix** (the fix variant). These rewrite files in place and exit 0 silently — capture what changed right after (`git status --short` / `git diff --stat`) and remember it for the report. The user is about to commit; they need to know their tree was modified. 3. **Lint + types** (check variants). 4. **Tests.** 5. Report: an **Auto-fixed** section listing files the fix step changed (or "nothing auto-fixed"), then overall **PASS** or **FAIL** with `file:line` error references. ## Rules - Detect the project's commands — never hardcode a package manager - Always auto-fix before reporting errors — but never modify files silently; alwa