lint
Run all project linters (ruff, mypy, sqlfluff) and report results. Invoke with /lint.
SKILL.md.claude/skills/lint/SKILL.md
GitHub/lint
Run all project linters and report a unified summary.
Linters
| Tool | Scope | What it checks |
|---|---|---|
ruff check |
src/ scripts/ tests/ |
Python lint (E, F, I, UP) |
ruff format --check |
src/ scripts/ tests/ |
Python formatting |
mypy |
src/ |
Python type checking |
sqlfluff lint |
dbt/models/ dbt/tests/ |
SQL style & conventions |
Steps
Parse argument (optional)
python→ run only ruff + mypysql→ run only sqlfluffallor no argument → run everything
Run selected linters — run all applicable commands in parallel:
Python linting (ruff check):
uv run ruff check src/ scripts/ tests/Python formatting (ruff format):
uv run ruff format --check src/ scripts/ tests/Python types (mypy):
uv run mypy src/SQL linting (sqlfluff):
uv run sqlfluff lint dbt/models/ dbt/tests/ --config dbt/.sqlfluffAuto-fix — if ruff or sqlfluff report fixable violations, ask the user:
"N fixable violations found. Apply auto-fix?"
If yes:
uv run ruff check --fix src/ scripts/ tests/ uv run ruff format src/ scripts/ tests/ uv run sqlfluff fix dbt/models/ dbt/tests/ --config dbt/.sqlfluffReport summary — print a table like:
Linter Status Issues ruff check PASS 0 ruff format FAIL 3 files mypy PASS 0 sqlfluff PASS 0Use PASS/FAIL per linter. If all pass, end with:
All linters passed.