# tdd

Скилл заставляет агента сначала написать падающий тест на баг, а потом править код. Включается только когда тест дешёвый и очевидный.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 5100 установок · ★ 2737
- Автор: backnotprop
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/backnotprop/pstack/tree/HEAD/skills/tdd/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/backnotprop-tdd

## Что делает

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

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

Есть отдельные ограничения: не подгонять тесты под неверную реализацию, не ослаблять существующие проверки без ясной причины и не раздувать фикстуры. Флаг `disable-model-invocation: true` в описании скилла означает, что агент не вызывает его сам — нужен явный запрос на TDD, падающий тест или регрессионный тест. Это стоит помнить, если ждёте, что скилл сработает молча.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add backnotprop/pstack --skill tdd -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/tdd/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/tdd/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add backnotprop/pstack --skill tdd -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/tdd/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add backnotprop/pstack --skill tdd -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/tdd/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install backnotprop/pstack tdd
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/tdd/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add backnotprop/pstack --skill tdd -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/backnotprop/pstack --path skills/tdd
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/tdd/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add backnotprop/pstack --skill tdd -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/backnotprop/pstack/tree/HEAD/skills/tdd/SKILL.md

## Когда брать
- написать регрессионный тест, который падает до фикса
- воспроизвести баг минимальным исполняемым способом
- не подгонять тесты под текущую реализацию
- зафиксировать причину падения, а не только результат
- выбрать точечную проверку вместо дорогой интеграционной обвязки

## Примеры запросов агенту
- напиши падающий тест на этот баг, потом почини
- сделай регрессионный тест для этого кейса
- почини баг через TDD

## Похожие
- [fix-bug](https://affpapa.org/nevibecode/skills/fix-bug.md) — скилл · ★ 1556
- [tdd-workflow](https://affpapa.org/nevibecode/skills/ruvnet-tdd-workflow.md) — скилл · 743 установки
- [laravel-tdd](https://affpapa.org/nevibecode/skills/iserter-laravel-tdd.md) — скилл · 378 установок
- [tdd-gate](https://affpapa.org/nevibecode/hooks/tdd-gate.md) — хук · 192 установки
- [rtk-tdd](https://affpapa.org/nevibecode/skills/rtk-tdd.md) — скилл · 2100 установок
- [tdd-rust](https://affpapa.org/nevibecode/skills/tdd-rust.md) — скилл · 1400 установок

## Другие версии с тем же именем
- [tdd · mattpocock](https://affpapa.org/nevibecode/skills/tdd.md) — 1141062 установки
- [tdd · codewithmukesh](https://affpapa.org/nevibecode/skills/codewithmukesh-tdd.md) — 2800 установок
- [tdd · brianlovin](https://affpapa.org/nevibecode/skills/brianlovin-tdd.md) — 2800 установок
- [tdd · parcadei](https://affpapa.org/nevibecode/skills/parcadei-tdd.md) — 470 установок

Из того же набора: [backnotprop/pstack](https://affpapa.org/nevibecode/by/backnotprop/pstack.md) — 44 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
