--- 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 ` 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 ` 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.