# テスト駆動開発 (tdd)

> レッドからグリーンへのループでテストを先に書き、ユーザーと合意した公開インターフェースでのみ振る舞いを検証します。

- カテゴリ: [テスト・デバッグ](https://www.myskills.tools/ja/categories/testing-debugging/)
- 提供元: コミュニティ · Matt Pocock
- リポジトリ: https://github.com/mattpocock/skills/tree/main/skills/engineering/tdd (commit 3f59913)
- SKILL.md: https://github.com/mattpocock/skills/blob/main/skills/engineering/tdd/SKILL.md
- インストールコマンド: `npx skills add mattpocock/skills --skill tdd`
- ライセンス: MIT
- 対応ツール: Claude Code, Codex, Copilot, Gemini CLI
- 権限: read-repo ✓, write-files ✓, shell ✓, network ✗
- 状態: スキャン済み
- ルールスキャンですべてのリスクを検出できるわけではありません。インストール前にこのスキルの SKILL.md を読み、権限を確認してください。

## 基本ルール

レッドが先、グリーンが後。失敗するテストを先に書き、通すのに必要なだけのコードを書くこと。

## 実行フェーズ

1. **ドメイン用語を確認** — GLOSSARY.md があれば読み、テスト名をプロジェクトの用語に合わせ、関連するADRを尊重します。
2. **テスト境界を合意** — テストする公開境界（seam）を書き出し、それぞれ何を捕まえ何を見逃すか1行添えて、ユーザーに確認します。
3. **失敗テストを1つ** — 1つのseamで公開インターフェースを通して振る舞いを検証し、期待値はコードの再計算ではなく独立した根拠から取ります。
4. **最小限の実装** — テストを通すのに必要なコードだけを書き、将来のテストを先取りしたり推測的な機能を足したりしません。
5. **縦切りで繰り返す** — テスト1つと実装1つずつループを繰り返します。リファクタリングはループに含めず、コードレビューの段階で行います。

## 権限の説明（SKILL.md より）

| 機能 | 必要か | 説明 |
|---|---|---|
| ファイル書き込み | 必要 | テストと、それを通すための実装コードを書きます。 |
| コマンド実行 | テスト時のみ必要 | テストを実行し、失敗してから通ることを確認します。 |
| 外部通信 | 不要 | 手順にネットワークアクセスはありません。 |

## SKILL.md のフロントマター（YAML）

```yaml
---
name: tdd
description: Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
---
```

ホーム: https://www.myskills.tools/ja/ · URL: https://www.myskills.tools/ja/skills/tdd/
