Lint Check
Run linting and code quality checks. Catches issues before they reach CI.
Phase 1: Detect Linting Tools
Find project's linting configuration:
# JavaScript/TypeScript
ls .eslintrc* eslint.config.* .prettierrc* 2>/dev/null
# Python
ls pyproject.toml .flake8 .ruff.toml setup.cfg 2>/dev/null
# Go
ls .golangci.yml .golangci.yaml 2>/dev/null
# Rust
ls rustfmt.toml .rustfmt.toml clippy.toml 2>/dev/null
Phase 2: Run Linters
JavaScript/TypeScript
npx eslint . --ext .js,.ts,.tsx --format stylish
npx prettier --check .
Python
ruff check .
# or fallback
flake8 .
black --check .
mypy .
Go
golangci-lint run
gofmt -l .
go vet ./...
Rust
cargo clippy -- -D warnings
cargo fmt --check
Phase 3: Categorize Issues
Critical (Must Fix)
- Security vulnerabilities
- Undefined variables
- Type errors
- Potential null pointer issues
- SQL injection patterns
Warnings (Should Fix)
- Unused variables/imports
- Missing return types
- Inconsistent naming
- Complex expressions
Style (Auto-fixable)
- Formatting issues
- Import ordering
- Trailing whitespace
- Line length
Phase 4: Auto-Fix Option
Offer to auto-fix style issues:
# JavaScript/TypeScript
npx eslint . --fix
npx prettier --write .
# Python
ruff check . --fix
black .
isort .
# Go
gofmt -w .
# Rust
cargo fmt
Output Format
## Lint Results: [PASS/FAIL/WARNINGS]
### Summary
- Errors: X
- Warnings: Y
- Auto-fixable: Z
### Critical Issues (Must Fix)
1. **[Rule]** - `file:line`
- Message: [linter message]
- Fix: [how to fix]
### Warnings (Should Fix)
1. **[Rule]** - `file:line`
- Message: [message]
### Auto-Fixed (if --fix was run)
- [List of auto-fixed issues]
### Commands Used
- [List all linting commands run]
### Recommendation
[ ] Ready to commit
[ ] Fix critical issues first
[ ] Run auto-fix and review changes
Usage
Copy to your project:
cp templates/subagents/lint-check.md .claude/commands/
Invoke with: /project:lint-check