К основному содержанию
скилл CX Codex

python-tdd-with-uv — скилл для Claude Code: TDD на Python через uv

Ведёт агента по циклу red-green-refactor в Python и настраивает проект на uv. Пригодится, когда пишете тесты до кода.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add spencerpauly/awesome-cursor-skills --skill python-tdd-with-uv -a claude-code
Открыть на GitHub

Что делает python-tdd-with-uv

Скилл задаёт агенту рабочий порядок: сначала один падающий тест, потом минимальный код, чтобы он прошёл, затем рефакторинг без смены поведения. Больше одного падающего теста за раз писать нельзя — так цикл остаётся коротким. Перед кодом скилл просит ответить на три вопроса: какие интерфейсы меняются, какие поведения важнее, можно ли спроектировать код под тесты через внедрение зависимостей.

Настройка проекта идёт через uv. Скилл проверяет uv --version, при отсутствии pyproject.toml запускает uv init, добавляет pytest и pytest-cov как dev-зависимости и проверяет, что раннер виден: uv run pytest --co. Дальше все команды выполняются через uv run — активировать виртуальное окружение вручную не нужно. В репозиторий советует коммитить и pyproject.toml, и uv.lock.

Моки скилл разрешает только на границах системы: ввод-вывод, сеть, часы. Тесты должны проверять наблюдаемое поведение, а не внутреннее устройство. Если в проекте нет uv, порядок установки зависимостей придётся переписать под свой менеджер — это повод проверить, чем вы управляете окружением.

Какие задачи решает

  • настроить Python-проект на uv с pytest и покрытием
  • писать тест до реализации, а не после
  • держать цикл red-green-refactor коротким
  • решить, где в тестах уместны моки
  • проверить, что тестовый раннер вообще запускается

Примеры запросов агенту

  • Настрой Python-проект на uv и добавь pytest с покрытием
  • Напиши падающий тест на эту функцию, потом минимальный код
  • Прогони тесты через uv run pytest -x и покажи, что упало

Как установить python-tdd-with-uv

1Через Skills CLI (Vercel)

npx skills add spencerpauly/awesome-cursor-skills --skill python-tdd-with-uv -a claude-code

2Вручную: положить файлы

~/.claude/skills/python-tdd-with-uv/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/python-tdd-with-uv/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о python-tdd-with-uv

Как установить python-tdd-with-uv в Claude?

Выполните npx skills add spencerpauly/awesome-cursor-skills --skill python-tdd-with-uv -a claude-code. Скилл окажется в ~/.claude/skills/python-tdd-with-uv/SKILL.md.

Что делает python-tdd-with-uv?

Задаёт агенту цикл red-green-refactor для Python: один падающий тест, минимальная реализация, рефакторинг. Плюс показывает, как поднять проект на uv с pytest и pytest-cov.

Нужен ли uv, если проект уже настроен иначе?

Скилл построен вокруг uv: проверка версии, uv init, uv add --dev, запуск через uv run. С другим менеджером шаги установки придётся переписать.

Исходный текст

SKILL.md · CC0-1.0
---
name: python-tdd-with-uv
description: Test-driven development in Python using uv as the package manager. Covers the red-green-refactor cycle, vertical slicing, and uv project setup.
user-invocable: true
---

# Python TDD with uv

Write Python code test-first using `uv` for fast dependency and environment management.

## Setting Up the Project

1. Check if `uv` is installed: `uv --version`
2. If the project doesn't have a `pyproject.toml`, initialize:
   ```bash
   uv init
   ```
3. Add pytest as a dev dependency:
   ```bash
   uv add --dev pytest pytest-cov
   ```
4. Confirm the test runner works:
   ```bash
   uv run pytest --co
   ```

## TDD Workflow — Vertical Slicing

Work in small cycles. Never write more than one failing test at a time.

### Planning Phase

Before writing code, answer:
1. What interface changes are needed? (functions, classes, APIs)
2. Which behaviors matter most? (prioritize critical paths)
3. Can we design for testability? (inject dependencies, avoid global state)

### The Cycle

```
RED   → Write ONE failing test for the next behavior
GREEN → Write the MINIMUM code to make it pass
REFACTOR → Clean up without changing behavior
REPEAT
```

**Rules:**
- Never write implementation before a failing test exists
- Never write more than one failing test at a time
- Run `uv run pytest` after every change
- Tests must assert observable behavior, not implementation details
- Mocks should only be used at system boundaries (I/O, network, clock)

### Test File Structure

```python
# tests/test_<module>.py

class TestFeatureName:
    """Group related behaviors."""

    def test_does_expected_thing_when_given_input(self):
        result = function_under_test(input_value)
        assert result == expected

    def test_raises_when_given_invalid_input(self):
        with pytest.raises(ValueError):
            function_under_test(bad_input)
```

### Running Tests

```bash
uv run pytest                      # all tests
uv run pytest tests/test_foo.py    # single file
uv run pytest -k "test_name"       # by name pattern
uv run pytest --cov=src            # with coverage
uv run pytest -x                   # stop on first failure
```

## uv Essentials

```bash
uv add <package>           # add dependency
uv add --dev <package>     # add dev dependency
uv remove <package>        # remove dependency
uv sync                    # sync environment from lockfile
uv run <command>           # run in managed environment
uv lock                    # regenerate lockfile
```

- Always use `uv run` to execute commands — never activate venvs manually
- Commit both `pyproject.toml` and `uv.lock`

## References

- [mattpocock/skills — TDD skill](https://github.com/mattpocock/skills) — vertical-slice TDD philosophy
- [nizos/tdd-guard](https://github.com/nizos/tdd-guard) — automated TDD enforcement via hooks
- [s2005/uv-skill](https://github.com/s2005/uv-skill) — uv workflow patterns

© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills

Похожие скиллы

Всё по теме «Тесты и QA» →
python-pro Seth Hobson Субагент помогает писать современный Python 3.12+, разбирать async-код, тесты, API и производительность. Подойдёт для разработки и рефакторинга Python-проектов. CX Codex 11 689установок python-cursorrules-prompt-file-best-practices PatrickJS Правило Cursor, которое заставляет ИИ писать Python с аннотациями типов, докстрингами и тестами на pytest. ★ 41 011звёзд репо python-testing-patterns Seth Hobson Скилл помогает писать тесты Python с pytest, фикстурами и моками. Подходит для настройки тестового набора и отладки падающих проверок. CX Codex 36 943установок django-tdd affaan-m Скилл настраивает TDD-разработку в Django и DRF с помощью pytest-django и factory_boy. Помогает писать тесты для моделей, фикстуры и проверять API. CX Codex +1 4 700установок python-mcp-server-generator официальный github Создаёт Python MCP-серверы для подключения функций, API или базы данных к ИИ-клиентам. Подходит, когда нужен новый сервер на MCP Python SDK v2. 10 418установок python-testing affaan-m Скилл задаёт подход к тестам Python на pytest: TDD, фикстуры, моки, параметризацию и проверку покрытия. Пригодится при создании и ревью тестов. CX Codex +1 4 900установок

Из того же набора59

setting-up-ci Скилл собирает пайплайн GitHub Actions с линтингом, тестами, проверкой типов и деплоем. Пригодится, когда проект уже есть, а CI в нём ещё нет. CX Codex +1 415установок adding-api-docs Скилл собирает OpenAPI/Swagger-описание вашего API: схемы эндпоинтов, типы запросов и ответов, интерактивную страницу документации. CX Codex +1 413установок parallel-test-fixing Скилл распределяет упавшие файлы тестов между параллельными субагентами, чтобы исправлять ошибки независимо. Он нужен при поломке сразу нескольких тестовых файлов. CX Codex +1 412установок profiling-performance Скилл запускает профилирование CPU во встроенном браузере через инструменты MCP. Он находит медленные функции и помогает устранить зависания интерфейса. CX Codex +1 410установок recording-browser-flow-as-test Записывает действия в браузере через MCP и превращает их в E2E-тест Playwright с надёжными селекторами accessibility tree. CX Codex +1 406установок verifying-markdown-formatting Скилл проходит по Markdown-файлу чек-листом и правит форматирование: заголовки, списки, ссылки, код-блоки, пробелы. Пригодится перед коммитом README или документации. CX Codex +1 404установок exporting-to-png Скилл обучает агента преобразовывать код, диаграммы Mermaid, вывод терминала и SVG в PNG-файлы с помощью консольных утилит или headless-браузера. CX Codex +1 401установок parallel-ci-triage Делит упавшие джобы GitHub Actions между параллельными субагентами: каждый чинит свой кусок. Пригодится, когда CI сломался в нескольких местах сразу. CX Codex +1 403установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой