--- description: 分割されたタスクを順番に、またはユーザが指定したタスクを実装します。既存のTDDコマンドを活用して品質の高い実装を行います。 --- あなたは実装担当者です。残タスクを調べて 指定されたコマンドを駆使して実装をしてください # kairo-implement ## 目的 分割されたタスクを順番に、またはユーザが指定したタスクを実装する。既存のTDDコマンドを活用して品質の高い実装を行う。 ## 前提条件 - `docs/tasks/{要件名}-tasks.md` にタスク一覧が存在する - ユーザがタスクの実装を承認している - 既存のTDDコマンドが利用可能である - 実装用のワークスペースが設定されている - task_id は `TASK-{4桁の数字}` (例 TASK-0001 ) である ## 実行内容 **【信頼性レベル指示】**: 各項目について、元の資料(EARS要件定義書・設計文書含む)との照合状況を以下の信号でコメントしてください: - 🔵 **青信号**: EARS要件定義書・設計文書を参考にしてほぼ推測していない場合 - 🟡 **黄信号**: EARS要件定義書・設計文書から妥当な推測の場合 - 🔴 **赤信号**: EARS要件定義書・設計文書にない推測の場合 1. **追加ルールの読み込み** - `docs/rule` ディレクトリが存在する場合は読み込み - `docs/rule/kairo` ディレクトリが存在する場合は読み込み - `docs/rule/kairo/implement` ディレクトリが存在する場合は読み込み - 各ディレクトリ内のすべてのファイルを読み込み、追加ルールとして適用 2. **技術スタック定義の読み込み** - `docs/tech-stack.md` が存在する場合は読み込み - 存在しない場合は `CLAUDE.md` から技術スタックセクションを読み込み - どちらも存在しない場合は `.claude/commands/tech-stack.md` のデフォルト定義を使用 3. **タスクの選択** - @agent-symbol-searcher で指定されたタスクID(TASK-0000形式)を検索し、見つかったタスクファイルをReadツールで読み込み - ユーザが指定したタスクIDを確認 - 指定がない場合は、依存関係に基づいて次のタスクを自動選択 - 選択したタスクの詳細を表示 - 読み込んだ技術スタック定義に基づいて実装方針を決定 4. **依存関係の確認** - @agent-symbol-searcher で依存タスクの状態を検索し、見つかったタスクファイルをReadツールで読み込み - 依存タスクが完了しているか確認 - 未完了の依存タスクがある場合は警告 5. **実装ディレクトリの準備** - 現在のワークスペースで作業を行う - 必要に応じてディレクトリ構造を確認 6. **実装タイプの判定** - タスクの性質を分析(コード実装 vs 準備作業) - 実装方式を決定(TDD vs 直接作業) 7. **実装プロセスの実行** ### A. **TDDプロセス**(コード実装タスク用) a. **要件定義** - `@task general-purpose /tsumiki:tdd-requirements` ``` Task実行: TDD要件定義フェーズ 目的: タスクの詳細要件を記述し、受け入れ基準を明確化する コマンド: /tsumiki:tdd-requirements 実行方式: 個別Task実行 ``` b. **テストケース作成** - `@task general-purpose /tsumiki:tdd-testcases` ``` Task実行: TDDテストケース作成フェーズ 目的: 単体テストケースを作成し、エッジケースを考慮する コマンド: /tsumiki:tdd-testcases 実行方式: 個別Task実行 ``` c. **テスト実装** - `@task general-purpose /tsumiki:tdd-red` ``` Task実行: TDDレッドフェーズ 目的: 失敗するテストを実装し、テストが失敗することを確認する コマンド: /tsumiki:tdd-red 実行方式: 個別Task実行 ``` d. **最小実装** - `@task general-purpose /tsumiki:tdd-green` ``` Task実行: TDDグリーンフェーズ 目的: テストが通る最小限の実装を行い、過度な実装を避ける コマンド: /tsumiki:tdd-green 実行方式: 個別Task実行 ``` e. **リファクタリング** - `@task general-purpose /tsumiki:tdd-refactor` ``` Task実行: TDDリファクタリングフェーズ 目的: コードの品質向上と保守性の改善を行う コマンド: /tsumiki:tdd-refactor 実行方式: 個別Task実行 ``` f. **品質確認** - `@task general-purpose /tsumiki:tdd-verify-complete` ``` Task実行: TDD品質確認フェーズ 目的: 実装の完成度を確認し、不足があればc-fを繰り返す コマンド: /tsumiki:tdd-verify-complete 実行方式: 個別Task実行 ``` ### B. **直接作業プロセス**(準備作業タスク用) a. **準備作業の実行** - `@task general-purpose /tsumiki:direct-setup` ``` Task実行: 直接作業実行フェーズ 目的: ディレクトリ作成、設定ファイル作成、依存関係のインストール、環境設定を行う 作業内容: - ディレクトリ作成 - 設定ファイル作成 - 依存関係のインストール - 環境設定 実行方式: 個別Task実行 ``` b. **作業結果の確認** - `@task general-purpose /tsumiki:direct-verify` ``` Task実行: 直接作業確認フェーズ 目的: 作業完了の検証と成果物確認を行う 作業内容: - 作業完了の検証 - 期待された成果物の確認 - 次のタスクへの準備状況確認 実行方式: 個別Task実行 ``` 8. **タスクの完了処理** - タスクのステータスを更新(タスクファイルのチェックボックスにチェックを入れる) - 実装結果をドキュメント化 - 次のタスクを提案 ## 実行フロー ```mermaid flowchart TD A[タスク選択] --> B{依存関係OK?} B -->|No| C[警告表示] B -->|Yes| D[実装開始] D --> E{タスクタイプ判定} E -->|コード実装| F[TDDプロセス] E -->|準備作業| G[直接作業プロセス] F --> F1[tdd-requirements] F1 --> F2[tdd-testcases] F2 --> F3[tdd-red] F3 --> F4[tdd-green] F4 --> F5[tdd-refactor] F5 --> F6[tdd-verify-complete] F6 --> F7{品質OK?} F7 -->|No| F3 F7 -->|Yes| H[タスク完了] G --> G1[準備作業実行] G1 --> G2[作業結果確認] G2 --> H H --> I{他のタスク?} I -->|Yes| A I -->|No| J[全タスク完了] ``` ## コマンド実行例 ```bash # 全タスクを順番に実装 $ claude code kairo-implement --all # 特定のタスクを実装 $ claude code kairo-implement --task {{task_id}} # 並行実行可能なタスクを一覧表示 $ claude code kairo-implement --list-parallel # 現在の進捗を表示 $ claude code kairo-implement --status ``` ## 実装タイプ判定基準 ### TDDプロセス(コード実装タスク) 以下の条件に当てはまるタスク: - 新しいコンポーネント、サービス、フック等の実装 - 既存コードの機能追加・修正 - ビジネスロジックの実装 - API実装 **例**: TaskService実装、UIコンポーネント作成、状態管理実装 ### 直接作業プロセス(準備作業タスク) 以下の条件に当てはまるタスク: - プロジェクト初期化・環境構築 - ディレクトリ構造作成 - 設定ファイル作成・更新 - 依存関係のインストール - ツール設定・設定 **例**: プロジェクト初期化、データベース設定、開発環境設定 ## 個別Task実行アプローチ ### Task実行の方針 各実装ステップを個別のTaskとして実行することで、以下のメリットが得られます: 1. **独立性**: 各ステップが独立して実行され、エラー発生時の切り分けが容易 2. **再実行性**: 特定のステップのみ再実行が可能 3. **並列性**: 依存関係のないステップは並列実行可能 4. **追跡性**: 各ステップの実行状況と結果が明確に記録される ### Task実行パターン ```bash # TDDプロセスの場合 @task general-purpose /tsumiki:tdd-requirements @task general-purpose /tsumiki:tdd-testcases @task general-purpose /tsumiki:tdd-red @task general-purpose /tsumiki:tdd-green @task general-purpose /tsumiki:tdd-refactor @task general-purpose /tsumiki:tdd-verify-complete # 直接作業プロセスの場合 @task general-purpose /tsumiki:direct-setup @task general-purpose /tsumiki:direct-verify ``` ## 実装時の注意事項 ### TDDプロセス用 1. **テストファースト** - 必ずテストを先に書く - テストが失敗することを確認してから実装 2. **インクリメンタルな実装** - 一度に全てを実装しない - 小さなステップで進める 3. **継続的な品質確認** - 各ステップで品質を確認 - 技術的負債を作らない ### 直接作業プロセス用 1. **作業の段階的実行** - 依存関係を考慮した順序で実行 - 各ステップの完了を確認 2. **設定の検証** - 作成した設定ファイルの動作確認 - 環境の正常性チェック 3. **ドキュメントの更新** - 実装と同時にドキュメントも更新 - 他の開発者が理解できるように ## 出力フォーマット ### タスク開始時(TDDプロセス) ``` 🚀 タスク {{task_id}}: {{task_name}} の実装を開始します 📋 タスク詳細: - 要件: REQ-101, REQ-102 - 依存: {{依存タスクID}} ✅ - 推定時間: 4時間 - 実装タイプ: TDDプロセス 🔄 TDDプロセスを開始します... ``` ### タスク開始時(直接作業プロセス) ``` 🚀 タスク {{task_id}}: {{task_name}} の実装を開始します 📋 タスク詳細: - 要件: REQ-402, REQ-006 - 依存: {{依存タスクID}} ✅ - 推定時間: 3時間 - 実装タイプ: 直接作業プロセス 🔧 準備作業を開始します... ``` ### 各ステップ完了時(TDD) ``` ✅ Task 1/6: @task /tsumiki:tdd-requirements 完了 ファイル: docs/implements/{要件名}/{{task_id}}/{要件名}-requirements.md Task実行結果: 要件定義書作成完了 🏃 Task 2/6: @task /tsumiki:tdd-testcases 実行中... Task実行: TDDテストケース作成フェーズを開始 ``` ### 各ステップ完了時(直接作業) ``` ✅ Task 1/2: @task /tsumiki:direct-setup 完了 作成ファイル: 8個、設定更新: 3個 Task実行結果: 準備作業実行完了 🏃 Task 2/2: @task /tsumiki:direct-verify 実行中... Task実行: 直接作業確認フェーズを開始 ``` ### タスク完了時(TDD) ``` 🎉 タスク {{task_id}} が完了しました! ✅ タスクファイルのチェックボックスを更新しました - [ ] **タスク完了** → [x] **タスク完了** 📊 実装サマリー: - 実装タイプ: TDDプロセス (個別Task実行) - 実行Taskステップ: 6個 (全て成功) - 作成ファイル: 12個 - テストケース: 25個 (全て成功) - カバレッジ: 95% - 所要時間: 3時間45分 📝 次の推奨タスク: - {{次のタスクID}}: {{次のタスク名}} - {{関連タスクID}}: {{関連タスク名}}(依存関係あり) 続けて実装しますか? (y/n) ``` ### タスク完了時(直接作業) ``` 🎉 タスク {{task_id}} が完了しました! ✅ タスクファイルのチェックボックスを更新しました - [ ] **タスク完了** → [x] **タスク完了** 📊 実装サマリー: - 実装タイプ: 直接作業プロセス (個別Task実行) - 実行Taskステップ: 2個 (全て成功) - 作成ファイル: 8個 - 設定更新: 3個 - 環境確認: 正常 - 所要時間: 2時間30分 📝 次の推奨タスク: - {{次のタスクID}}: {{次のタスク名}} - {{関連タスクID}}: {{関連タスク名}}(依存関係あり) 続けて実装しますか? (y/n) ``` ## エラーハンドリング - 依存タスク未完了: 警告を表示し、確認を求める - テスト失敗: 詳細なエラー情報を表示 - ファイル競合: バックアップを作成してから上書き ## 実行後の確認 - 実装したファイルの一覧を表示 - テスト結果のサマリーを表示 - 残りのタスクと進捗率を表示 - 次のタスクの提案を表示