Standardize Python project setup and validation with uv, ruff, typos, and mypy. Use when creating a new Python project, normalizing an existing repository, adding Python quality tooling, or driving Python code to a clean lint, spelling, formatting, and type-check state through a repeatable uv-based workflow.
94
94%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Use this skill to turn Python work into a repeatable, tool-driven workflow based on uv, ruff,
typos, and mypy. Prefer it when the user wants a consistent Python project baseline rather than
an ad hoc one-off fix.
pip commands to uvruff, typos, or mypy configurationRead the existing project shape first:
pyproject.toml.python-versionuv.locksrc/, package directories, and tests/Do not blindly replace an established workflow. If the repo already uses uv, extend it. If it
uses another package manager and the user did not ask to migrate, work within the existing choice.
uvPrefer a uv-managed workflow for Python dependency and command execution.
uv is already present, keep using it.uv is missing, install it using an approved official method for the environment.uv add --dev ... over raw pip install for project-scoped developer tooling.uv init blindly inside an existing repository; only initialize when the project is
actually missing a package manifest.Typical developer tooling command:
uv add --dev ruff typos mypySet up a baseline that is strict enough to be useful and light enough to adopt.
target-version to the project's actual Python version.E, F, I, B, and UP.typos across the repository, but exclude generated, vendored, and lockfile content.src/ tree first, then expand.Use the bundled script scripts/run_quality_gate.sh when possible. The default gate order is:
uv run ruff format --checkuv run ruff checkuv run typosuv run mypyThis order keeps the fast autofix and syntax feedback first, then spelling, then the slower type analysis.
ruff format --check fails, format before reasoning about lint noise.ruff check reports import sorting or upgradeable syntax, accept the standardized rewrite.typos reports a real typo, fix the source; do not whitelist accidental misspellings.mypy fails broadly on a legacy repository, reduce the checked surface intentionally and note
that scope in the final result.Do not report success until the quality gate passes or the user explicitly accepts scoped exceptions.
Minimum completion bar:
uv is the command runner for the workflowruff, typos, and mypy are configured or intentionally scopedFor a typical repository:
uv add --dev ruff typos mypy
uv run ruff format --check .
uv run ruff check .
uv run typos .
uv run mypy .For a legacy repository with a narrower type-check target:
uv run mypy srcreferences/pyproject-template.md when you need a baseline pyproject.toml layout for
uv, ruff, typos, and mypy.scripts/run_quality_gate.sh when you want a single repeatable command for the full quality
gate.