Skip to content
cccskills
FreePublished on GitHub

tdd

テスト駆動開発(TDD)の0spec-1red-2green-3blueサイクルを実施します。対話でテスト対象を絞り込み、コンテキスト消費を最小化します。

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md6.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

TDD 統合スキル(コンテキスト最適化版)

専用のサブエージェント(.claude/agents/tdd/)を使用して、テスト駆動開発の4フェーズサイクルを実施します。

サブエージェント一覧

フェーズファイル役割
0spec0spec.mdfeature仕様書 → test仕様書の生成
1red1red.md失敗するテストコードを書く
2green2green.mdテストを通す最小限の実装
3blue3blue.mdリファクタリング評価・実施

対話フロー(必須)

TDDを開始する前に、以下の対話を行ってください。

ステップ1: feature仕様書(green code仕様)の提示を求める

TDDを開始します。

まず、feature仕様書(green code仕様)のパスを教えてください。
docs/ 配下にある feature-*.md ファイルです。

現在あるfeature仕様書:

docs/**/feature-*.md をGlobで検索し、一覧を表示してください。

ステップ2: 参考コードの確認

参考にする既存の実装コードがあれば、パスを教えてください。
(なければ「なし」で進めます)

ステップ3: 確認して開始

ユーザーがfeature仕様書を選択したら、以下を確認表示してから開始します:

以下の内容でTDDを開始します:

- feature仕様書: {選択されたパス}
- 参考コード: {パスまたは「なし」}
- test仕様書出力先: {feature仕様書と同じディレクトリの test-*.md}
- テストコード配置先: tests/{ミラーパス}/test_*.py
- 実装コード: src/{対応パス}

よろしいですか?

ディレクトリのミラールール

docs の構造を tests にミラーしてテストコードを配置します:

docs パスtests パスsrc パス
docs/backend/services/rag/tests/backend/services/rag/src/backend/services/rag.py
docs/backend/services/speech/tests/backend/services/speech/src/backend/services/speech.py
docs/backend/services/stream/tests/backend/services/stream/src/backend/services/stream.py
docs/frontend/app/pages/officer/tests/frontend/app/pages/officer/src/frontend/app/pages/2_officer_app.py
docs/frontend/app/pages/operator/tests/frontend/app/pages/operator/src/frontend/app/pages/1_operator_app.py

フェーズ0: SPEC - test仕様書を書く

📝 SPECフェーズ: tdd-spec-writer サブエージェント (0spec.md) に委任

入力

  • ユーザーが選択したfeature仕様書(docs/**/feature-*.md)
  • 参考コード(任意)

処理

feature仕様書を読み取り、テストシナリオに変換して docs/**/test-*.md に出力する。

コンテキスト制限(厳守)

サブエージェントは以下の情報のみを返してください:

---
STATUS: SPEC_CREATED / SPEC_FAILED
FEATURE_FILE: docs/xxx/feature-yyy.md
TEST_SPEC_FILE: docs/xxx/test-yyy.md
SCENARIOS: N件のテストシナリオを生成
SUMMARY: 生成内容の要約(1-2行)
---

完了条件

test仕様書が生成されたら、ユーザーにテストシナリオ一覧を提示し、次のフェーズへの進行を確認する。


フェーズ1: RED - 失敗するテストを書く

🔴 REDフェーズ: tdd-test-writer-red サブエージェント (1red.md) に委任

入力

  • フェーズ0で生成されたtest仕様書(docs/**/test-*.md)
  • ユーザーが選択した1つのテストシナリオ
  • テスト配置場所(tests/{ミラーパス}/)

コンテキスト制限(厳守)

---
STATUS: RED_CONFIRMED / RED_FAILED
FILE: tests/xxx/test_yyy.py
TEST_NAME: test_機能名
SUMMARY: 期待通り失敗した理由(1行)
---

完了条件

テストが失敗することを確認してから次のフェーズへ進む。


フェーズ2: GREEN - テストを通す

🟢 GREENフェーズ: tdd-implementer-green サブエージェント (2green.md) に委任

入力

  • REDフェーズで作成したテストファイルのパス
  • 実装対象ファイル(src/{対応パス})
  • テストファイルと実装ファイルのみを読み込む

コンテキスト制限(厳守)

---
STATUS: GREEN_CONFIRMED / GREEN_FAILED
FILE: src/xxx/yyy.py
TEST_FILE: tests/xxx/test_yyy.py
CHANGES: 変更内容の要約(1-2行)
---

完了条件

テストが成功することを確認してから次のフェーズへ進む。


フェーズ3: BLUE - リファクタリング

🔵 BLUEフェーズ: tdd-refactorer-blue サブエージェント (3blue.md) に委任

入力

  • GREENフェーズで編集した実装ファイルのみ
  • 対応するテストファイル

コンテキスト制限(厳守)

---
STATUS: REFACTOR_DONE / NO_REFACTOR_NEEDED
FILE: src/xxx/yyy.py
CHANGES: 変更内容(1-2行)または「リファクタリング不要」
REASON: 理由(1行)
TEST_STATUS: PASSED
---

フェーズ違反

以下を絶対に行わないでください:

  • テストより先に実装を書く
  • SPEC(test仕様書)なしにREDに進む
  • REDの失敗を確認せずにGREENに進む
  • BLUE評価をスキップする
  • 選択されたディレクトリ以外のファイルを読み書きする
  • サブエージェントがログ全文を返す

サイクル完了後

1つのテストに対する0spec-1red-2green-3blueサイクルが完了したら:

  1. 完了したテストシナリオをユーザーに報告
  2. test仕様書に残りのシナリオがあれば提示
  3. ユーザーが次のテストを選択するか、終了するか確認

推奨: 複数テストを連続実行する場合、3-5サイクルごとに /reset でコンテキストをクリアすることを推奨します。

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Report a problem with this skill