Medox lint

Run all project linters (ruff, mypy, sqlfluff) and report results. Invoke with /lint.

install
source · Clone the upstream repo
git clone https://github.com/spideystreet/medox
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/spideystreet/medox "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/lint" ~/.claude/skills/spideystreet-medox-lint && rm -rf "$T"
manifest: .claude/skills/lint/SKILL.md
source content

/lint

Run all project linters and report a unified summary.

Linters

ToolScopeWhat 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

  1. Parse argument (optional)

    • python
      → run only ruff + mypy
    • sql
      → run only sqlfluff
    • all
      or no argument → run everything
  2. 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
    
  3. 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
    
  4. 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.