Lint Check

Runs linting and code quality checks. Catches style issues, potential bugs, and enforces project standards.

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