format-lint-assistant

Run the project's formatter, linters, and mypy checks in the required order, fixing issues and managing any needed stub dependencies via uv.

$ インストール

git clone https://github.com/dmitriiweb/extract-emails /tmp/extract-emails && cp -r /tmp/extract-emails/.codex/skills/format-lint-assistant ~/.claude/skills/extract-emails

// tip: Run this command in your terminal to install the skill


name: format-lint-assistant description: Run the project's formatter, linters, and mypy checks in the required order, fixing issues and managing any needed stub dependencies via uv.

Format and Lint Assistant

Quick start

  • Run make format before linting to apply project formatting.
  • Run make lint; fix linter errors first, rerun make lint, then address any remaining mypy issues.
  • If mypy needs missing stubs/libs, add them with uv add --dev <package> so they land in pyproject.toml; never use mypy's install-missing-libraries command.
  • Keep rerunning make lint until it passes cleanly; share any unresolved issues.
  • See references/linting_rules.md for the exact workflow.

Workflow

  1. Prepare and format

    • Review the scope of files to format/lint.
    • Run make format to apply formatting before linting.
  2. Lint and iterate

    • Run make lint.
    • If linters fail, fix those issues first and rerun make lint to confirm the lint portion is clean.
    • After lint fixes, address mypy errors reported by the same command, then rerun make lint to verify.
  3. Manage dependencies

    • When mypy reports missing libraries or type stubs, add the needed package with uv add --dev <package> so it updates the dev dependencies in pyproject.toml.
    • Do not use mypy's automatic install-missing-libraries flag.
  4. Validate and report

    • Run make lint once more after all fixes to ensure a clean result.
    • Summarize what was run, what was fixed, and call out any remaining issues.