---
created: 2025-12-16
modified: 2026-05-29
reviewed: 2026-05-29
name: python-code-quality
description: Python code quality with ruff and ty. Use when the user mentions ruff, ty, linting, formatting, type checking, or Python code style.
user-invocable: false
allowed-tools: Bash, Read, Grep, Glob
---
# Python Code Quality
Orchestration index for the Python quality stack. This skill **routes** to
the focused skills that own each tool — it does not restate their commands.
Reach for it when setting up or reasoning about the whole stack (lint +
format + type-check + tests) at once; reach for a focused skill when tuning
one tool.
## When to Use This Skill
| Use this skill when... | Use a focused sibling instead when... |
|---|---|
| Standing up a complete quality stack for a new project | Tuning only ruff lint rule selection — use `ruff-linting` |
| Reasoning about how the tools fit together / comparing them | Configuring only ruff formatter quirks — use `ruff-formatting` |
| Wiring lint + type-check into pre-commit and CI together | Configuring strict type-checker rules — use `ty-type-checking` or `basedpyright-type-checking` |
## Routing Table
| Concern | Focused skill |
|---------|---------------|
| Lint rules, rule selection, auto-fix | `python-plugin:ruff-linting` |
| Code formatting (quote style, line length) | `python-plugin:ruff-formatting` |
| Editor / pre-commit / CI / Docker wiring for ruff | `python-plugin:ruff-linting` → its `REFERENCE.md` |
| Type checking with ty | `python-plugin:ty-type-checking` |
| Type checking with basedpyright | `python-plugin:basedpyright-type-checking` |
| Dead-code detection | `python-plugin:vulture-dead-code` |
| Test quality / coverage | `python-plugin:python-testing`, `python-plugin:pytest-advanced` |
| Modern type-hint syntax and idioms | `python-plugin:python-development` |
| Adding the tools to a project | `python-plugin:uv-project-management` |
## Full Stack at a Glance
The one thing this index owns: the tools running **together** in pre-commit.
For each tool's flags and config, follow the routing table above.
```yaml
# .pre-commit-config.yaml — ruff (lint + format) and ty together
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.0
hooks:
- id: ruff-check
args: [--fix]
- id: ruff-format
- repo: https://github.com/astral-sh/ty
rev: v0.0.10
hooks:
- id: ty
```
A typical CI quality gate runs the same three steps: `ruff check`,
`ruff format --check`, `ty check`. See `ruff-linting` § CI/CD Integration and
`ty-type-checking` for the runnable forms.
## References
- Ruff:
- ty: