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.
When & Why to Use This Skill
This Claude skill automates the essential Python development workflow of code formatting, linting, and static type checking. It ensures code consistency and quality by executing tools like formatters and linters in the correct sequence, while intelligently managing missing type stubs and dev dependencies using the uv package manager.
Use Cases
- Automated Code Quality Assurance: Streamline the preparation of code for pull requests by automatically fixing formatting issues and identifying complex linting errors.
- Type Safety Management: Efficiently resolve mypy type-checking errors by identifying and installing missing type stubs or library dependencies directly into the pyproject.toml.
- Standardized Development Workflow: Enforce project-specific coding standards across a team by providing a consistent, agent-led execution path for maintenance tasks and dependency synchronization.
| 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 formatbefore linting to apply project formatting. - Run
make lint; fix linter errors first, rerunmake lint, then address any remaining mypy issues. - If mypy needs missing stubs/libs, add them with
uv add --dev <package>so they land inpyproject.toml; never use mypy's install-missing-libraries command. - Keep rerunning
make lintuntil it passes cleanly; share any unresolved issues. - See
references/linting_rules.mdfor the exact workflow.
Workflow
Prepare and format
- Review the scope of files to format/lint.
- Run
make formatto apply formatting before linting.
Lint and iterate
- Run
make lint. - If linters fail, fix those issues first and rerun
make lintto confirm the lint portion is clean. - After lint fixes, address mypy errors reported by the same command, then rerun
make lintto verify.
- Run
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 inpyproject.toml. - Do not use mypy's automatic install-missing-libraries flag.
- When mypy reports missing libraries or type stubs, add the needed package with
Validate and report
- Run
make lintonce more after all fixes to ensure a clean result. - Summarize what was run, what was fixed, and call out any remaining issues.
- Run