test-first-discipline について
test-first-discipline は、開発ワークフロー向けの内部スキルで、動作コードを書く前に失敗するテストを確認することを求めます。適用範囲と例外を定め、事後的なテストカバレッジ確認との違いも示します。
主な機能
- 01失敗するテストの作成と確認を先に要求
- 02その後に最小限の動作コードを実装
- 03新機能、修正、動作に関わるリファクタリングが対象
- 04例外とユーザー指定のスキップを定義
- 05事後的なテストカバレッジ確認と区別
活用シーン
- 01失敗テストを先にする順序で機能を実装
- 02不具合修正前にテストの失敗を確認
- 03開発ワークフローに動作実装の規律を適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ fudesign2008/ open-skills --skill test-first-disciplineインストール後、Claude Code で/test-first-disciplineを入力して読み込まれたか確認します。
詳細
テストファーストの規律
内部共有スキルです。失敗するテストを先に行う実装順序の唯一の情報源です。ホストはこれを
dependenciesで宣言し、欠落している場合は処理を中断します。暗黙のフォールバックはありません。名前に関する注意: 外部スキルリポジトリの名前と重複しないよう、意図的に
tddやtest-driven-developmentという名前にはしていません。この名前のみを使用してください。
鉄則
最初に失敗するテストを確認せずに、本番の動作コードを書いてはいけません。
- 失敗するテスト(または同等の自動化された失敗チェック)を書きます。
- 実行し、現在のセッションで失敗を確認します。
- テストを通すための最小限の本番コードを書きます。
- 再実行し、その後、必要であればテストが成功した状態を保ちながらリファクタリングします。
手順 2 より前に本番の動作コードを書いていた場合は、そのコードを削除し、失敗するテストからやり直してください。「参考」として残したり、「テストを書きながら調整」したりしてはいけません。
適用対象
適用対象: 新機能、バグ修正、動作に影響するリファクタリング。
例外(ユーザーから別途指示がない限り):
- 使い捨てのプロトタイプ
- 生成コード
- テスト対象の動作を含まない純粋な設定
- 純粋なドキュメント
- ユーザーが明示的にスキップを指示し、理由を簡潔に記録する場合
例外またはユーザーのスキップ指示がないのに、「今回だけスキップする」と正当化することは禁止されています。
test-suite-ensure との違い
| スキル | 担当範囲 |
|---|---|
test-first-discipline | 順序 — 本番の動作コードより先にテストを失敗させる |
test-suite-ensure | 事後対応 — 既存のロジックに対して、スタックの検出、スキャフォールドの作成、カバレッジの生成/実行を行う |
test-suite-ensure の実行が成功しても、このスキルに準拠したことを報告してはいけません。両方を使用するホストでは、動作を実装する際はテストファーストに従い、その後、ギャップやスキャフォールドへの対応として test-suite-ensure を呼び出します(ホストに応じて推奨または必須)。
禁止事項
- 事後に
test-suite-ensureを実行しただけで、テストファーストに準拠したと主張すること - このリポジトリ内で、このスキルの名前を
tdd/test-driven-developmentに変更またはエイリアス化すること - 例外またはユーザーのスキップ指示がないのに、通常の動作変更で失敗を確認する手順を省略すること
統合ガイド
- ホスト:実行ステージに、動作変更ではこのスキルを読み込むこと、およびタスク完了後の確認手順として
test-suite-ensureを別途維持することを一行で記載してください。 user-invocable: falseを推奨します。ユーザーは PDCA ホスト経由で利用します。completion-evidence-disciplineと組み合わせます。失敗(およびその後の成功)を確認した実行は、レッド/グリーンを主張する際に新しいエビデンスでなければなりません。