| name | lint |
| description | Run all project linters (ruff, mypy, sqlfluff) and report results. Invoke with /lint. |
| disable-model-invocation | true |
| argument-hint | [python|sql|all] |
/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 + mypy
sql → run only sqlfluff
all or 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/.sqlfluff
-
Auto-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/.sqlfluff
-
Report summary — print a table like:
Linter Status Issues
ruff check PASS 0
ruff format FAIL 3 files
mypy PASS 0
sqlfluff PASS 0
Use PASS/FAIL per linter. If all pass, end with: All linters passed.