pre-commitlisted
Install: claude install-skill bakw00ds/yakos
# Pre-commit
## Purpose
Run the cheap, fast checks that catch the obvious-bad before a commit
lands. Distinct from `test-suite` (full suite, slower) and
`deploy-check` (deploy-shaped). The pre-commit skill is meant to run
in seconds, not minutes — if it's slow, it's the wrong skill.
## Scope
Operates on the project's working tree (staged + unstaged changes).
With no arguments, runs against everything that differs from `HEAD`.
With arguments, runs only against the listed paths/globs.
NOT in scope:
- The full test suite (use `test-suite`).
- Deploy-shaped checks (use `deploy-check`).
- Anything requiring network calls.
## Automated pass
1. **Lint.** Detect language(s) from project files and run the canonical
linter for each (`go vet`, `npm run lint`, `flutter analyze`,
`ruff check`, etc.). Fast modes only — no full type-check passes.
2. **Secret scan.** Grep the staged content for the `secret-scan.sh`
patterns. Surface matches before a commit lands; this duplicates
the hook but catches secrets in unstaged files too.
3. **Smoke test.** Run a fast subset of the test suite if the project
defines one — `go test ./changed-pkg/...`, `npm run test:unit`,
etc. If no fast subset exists, skip with a note.
4. **Format check.** Run formatter in check-only mode (`gofmt -l`,
`prettier --check`, `dart format --set-exit-if-changed`). Surface
files that would change but don't auto-format.
## Manual pass
After the automated pass, the invoking agent reviews:
- C