Skip to main content
skill CX Codex

python-code-quality — Claude Code skill: ruff and ty together

An index skill that ties linting, formatting and type checking into one stack, then points you to the focused skill for each tool.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add laurigates/claude-plugins --skill python-code-quality -a claude-code
Open on GitHub

What python-code-quality does

This skill does not restate tool commands. It routes. Picking lint rules sends you to ruff-linting; quote style and line length live in ruff-formatting; type checking sits in ty-type-checking or basedpyright-type-checking. Dead-code detection is vulture-dead-code, test quality and coverage are python-testing and pytest-advanced.

What it owns is the combined setup. The .pre-commit-config.yaml example wires ruff and ty in one file with three hooks: ruff-check with --fix, ruff-format, and ty. The same three steps make up a typical CI gate — ruff check, ruff format --check, ty check.

The skill is marked user-invocable: false, so there is no slash command to type. It triggers on its own when ruff, ty, linting, formatting or type checking come up in the conversation. Its allowed tools are Bash, Read, Grep and Glob. If you already know which single tool you are tuning, the index just adds a routing hop — go straight to the focused skill.

What it helps with

  • wire lint, format and type-check into one pre-commit run
  • find which skill owns a specific tool
  • keep CI and pre-commit steps identical
  • split ruff and ty configuration into separate tasks
  • locate the skill for dead code or test coverage

Example prompts for the agent

  • set up ruff and ty in pre-commit for a new project
  • which quality checks should CI run
  • where do I tune ruff lint rules

How to install python-code-quality

1Skills CLI (Vercel)

npx skills add laurigates/claude-plugins --skill python-code-quality -a claude-code

2Manually: put the files in place

~/.claude/skills/python-code-quality/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/python-code-quality/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about python-code-quality

How do I install python-code-quality in Claude?

Run npx skills add laurigates/claude-plugins --skill python-code-quality -a claude-code. The skill file lands at ~/.claude/skills/python-code-quality/SKILL.md.

What does python-code-quality do?

It acts as an index for the Python quality stack, telling you which focused skill handles linting, formatting, type checking, dead code and tests. Its own content is the shared pre-commit config for ruff and ty.

Why can't I invoke this skill manually?

It carries user-invocable: false, so no slash command exists. It fires on its own when ruff, ty, linting, formatting or type checking are mentioned.

Source text

SKILL.md · MIT
---
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: <https://docs.astral.sh/ruff/>
- ty: <https://docs.astral.sh/ty/>

© laurigates · MIT · laurigates/claude-plugins

Similar skills

All skills for Programming languages →

From the same set5

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor