validating-project
Validating Project
Auto-detect project tooling and run validation steps in the correct order.
Process
- Check
./CLAUDE.mdfor validation tools and project permissions - Auto-detect project type if needed (package.json, pyproject.toml, Cargo.toml, Makefile, go.mod)
- Run validation pipeline: Format -> Lint -> Type Check -> Test
- Stop immediately on failures
- Report results
Tool Commands by Project Type
Make-based (check first -- overrides everything)
make format && make lint && make typecheck && make test
Or make validate if available.
Python
uv run ruff format .
uv run ruff check .
uv run ty check # or uv run mypy, uv run pyright
uv run pytest
Node.js / TypeScript
pnpm run format # or npx prettier --write .
pnpm run lint # or npx eslint .
pnpm run typecheck # or npx tsc --noEmit
pnpm test
Rust
cargo fmt
cargo clippy
cargo test
Go
gofmt -w .
go vet ./...
go test ./...
Auto-Discovery Logic
# Priority order
if [ -f "Makefile" ]; then
# Check for make validate/format/lint/test targets
elif [ -f "pyproject.toml" ]; then
# Python -- check for uv, poetry
elif [ -f "package.json" ]; then
# Node.js -- check for pnpm, npm, yarn
elif [ -f "Cargo.toml" ]; then
# Rust
elif [ -f "go.mod" ]; then
# Go
fi
Error Handling
- Tool not found: Provide installation instructions
- Configuration missing: Suggest minimal setup
- Validation failures: Show specific fix recommendations
- Dependency conflicts: Suggest resolution strategies
CLAUDE.md Integration
Cache discovered validation info in the project's CLAUDE.md:
## Project Validation Tools
- **Format**: make format
- **Lint**: make lint
- **Type Check**: make typecheck
- **Test**: make test
More from trevors/dot-claude
jj-workflow
Jujutsu (jj) version control, load skill when hook output shows vcs=jj-colocated or vcs=jj in the system-reminder.
93book-reader
Read and search digital books (PDF, EPUB, MOBI, TXT). Use when answering questions about a book, finding quotes or passages, navigating to specific pages or chapters, or extracting information from documents.
44using-jj
Advanced jj/jujutsu workflows — revsets, absorb, evolog, op restore/undo, immutable_heads bypass, divergent-change resolution, jj split, parallel jj new, conflict-after-rebase, force-push recovery. Contains non-obvious rules (e.g., always `-m` to avoid editor) that prevent broken workflows. Skip for simple commit/push/rebase.
43svelte5
Svelte 5 syntax reference. Use when writing ANY Svelte component. Svelte 5 uses runes ($state, $derived, $effect, $props) instead of Svelte 4 patterns. Training data is heavily Svelte 4—this skill prevents outdated syntax.
39git-workflow
Git version control workflows. Load when hook output shows vcs=git (not jj). Use when squashing commits, rebasing feature branches, or doing git operations in non-jj repos.
27whisper-test
Transcribe WAV audio files using OpenAI Whisper for intelligibility testing. Use when transcribing audio, testing speech output quality, running whisper, or checking if generated audio is intelligible.
27