validate-codelisted
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