AgentSkillsCN

tdd-workflow

采用测试驱动开发(TDD)进行实现。按照红-绿-重构的循环推进开发进程。

SKILL.md
--- frontmatter
name: tdd-workflow
description: TDD(テスト駆動開発)で実装します。赤-緑-リファクタリングのサイクルに従って開発を進めます。
allowed-tools: Read, Grep, Glob, Bash, Edit, Write, TodoWrite

TDD ワークフロー

概要

テスト駆動開発(TDD)の手法に従って、以下のサイクルで開発を進めます:

  1. 赤フェーズ: 失敗するテストを書く
  2. テスト実行: テストが落ちることを確認
  3. 緑フェーズ: テストを通す最小限の実装を行う
  4. テスト成功確認: テストが通ることを確認
  5. リファクタリング: コードを整理・改善

重要な原則

1. Todoによる計画確認

  • 実装前に必ずTodoWriteツールでタスク計画を作成
  • ユーザーの確認を得てから実装を開始
  • 各フェーズごとにTodoの状態を更新

2. テスト作成のルール

  • 最初に小さな動作を確認するテストを書く
  • テストのデータはテスト関数内に記述(fixtureは使わない)
  • assertionに関係ないデータについてのみfixture利用を許可

3. モックの使用制限

  • モックはなるべく使わない
  • API呼び出しやDB呼び出しなど外部依存がある時だけ利用を許可

4. コメントのルール

  • WHYを書く(なぜこの実装なのか)
  • WHATは複数行にまたがる等、コードの可読性に響く場合のみ
  • 余計なコメントは書かない

テスト実行コマンド

プロジェクトの種類に応じて適切なテストコマンドを使用:

Python

bash
# uv.lockがある場合
uv run python -m pytest -v

# poetry.lockがある場合
poetry run python -m pytest -v

# それ以外
python -m pytest -v

Go

bash
go test ./... -v

Node.js

bash
npm test

TDDサイクルの実施手順

赤フェーズ(テストを書く)

  1. 実装したい機能の小さな動作を特定
  2. その動作を検証するテストを書く
  3. テストを実行して失敗することを確認
  4. 失敗理由が想定通りか確認

緑フェーズ(実装する)

  1. テストを通すための最小限の実装を行う
  2. 過度な設計や抽象化は避ける
  3. テストを実行して成功することを確認

リファクタリングフェーズ

  1. テストが通っている状態で開始
  2. コードの重複を削除
  3. 可読性を向上させる
  4. 各変更後にテストを実行して動作を確認
  5. 過度な抽象化や将来の拡張性は考慮しない

スラッシュコマンド

各フェーズを個別に実行したい場合は、以下のコマンドを使用:

  • /tdd:red - 赤フェーズ: 失敗するテストを書く
  • /tdd:green - 緑フェーズ: テストを通す実装を行う
  • /tdd:refactor - リファクタリング: コードを整理

実装時の注意事項

  • セキュリティ脆弱性(XSS, SQLインジェクション等)に注意
  • パスワードやAPIキーをハードコーディングしない
  • ユーザーの確認なしにデータを削除しない
  • 過度なエラーハンドリングや検証は避ける(システム境界のみ)
  • 未使用のコードは完全に削除(後方互換性ハックは不要)