---
description: 新機能を既存パターンに従って、完全に無停止で実装する
---
# 新機能の追加 (完全自動実行モード)
**重要:** このワークフローは、ユーザーの介入なしに、開始から完了まで完全に自動で実行されるように設計されています。各ステップは完了後、ただちに次のステップへ移行してください。思考の途中でユーザーに確認を求めたり、作業を中断したりしないでください。
**引数:** 機能名 (例: `/add-feature ユーザープロフィール編集`)
---
## ステップ1: 準備とコンテキスト設定
1. 現在のタスクコンテキストを確立する:
- 機能名: `[引数で与えられた機能名]`
- 日付: `[現在の日付をYYYYMMDD形式で取得]`
- ステアリングディレクトリパス: `.steering/[日付]-[機能名]/`
2. 上記ステアリングディレクトリを作成する。
3. 以下の3つの空ファイルを作成する:
- `[ステアリングディレクトリパス]/requirements.md`
- `[ステアリングディレクトリパス]/design.md`
- `[ステアリングディレクトリパス]/tasklist.md`
## ステップ2: プロジェクト理解
1. `CLAUDE.md`を読み、プロジェクトの全体像を把握する。
2. `docs/`ディレクトリ内の永続ドキュメントを確認し、関連する設計思想やアーキテクチャを理解する。
## ステップ3: 既存パターンの調査
1. Grepツールを使用し、機能名に関連するキーワードでソースコード(`src/`)を検索する。
```bash
Grep('[機能に関連するキーワード]', 'src/')
```
2. 検索結果を分析し、既存の実装パターン、命名規則、コンポーネントの利用方法を特定する。
## ステップ4: 計画フェーズ (ステアリングファイルの自動生成)
1. `Skill('steering')`を**計画モード**で実行し、ステップ1で作成した3つのファイル (`requirements.md`, `design.md`, `tasklist.md`) の内容を生成する。
2. **このステップが正常に完了したら、決して停止せず、ただちにステップ5に進むこと。**
## ステップ5: 実装ループ (tasklist.mdの完全消化)
**このステップは、`tasklist.md`の全タスクが `[x]` になるまで自動で繰り返されるループ処理です。**
**このステップが正常に完了したら、決して停止せず、ただちにステップ6に進むこと。**
**ループ開始:**
1. タスクリストの読み込み:
- `[ステアリングディレクトリパス]/tasklist.md`ファイルを読み込む。
2. 進捗の確認:
- ファイル内に未完了タスク (`[ ]`) が存在するか確認する。
- **もし未完了タスクが存在しない場合:** この実装ループは完了とみなし、ただちに**ステップ6**へ進む。
- **もし未完了タスクが存在する場合:** 次の処理(3. タスクの実行)に進む。
3. タスクの実行:
- `tasklist.md`の**先頭にある未完了タスク**を1つ特定する。
- そのタスクを完了させるために必要な実装作業を実行する。
- `Skill('steering')`を**実装モード**で使用する。
- `Skill('development-guidelines')`のコーディング規約を常に遵守する。
4. タスクリストの更新:
- 実行したタスクが完了したら、`Edit`ツールを使用して`tasklist.md`を更新し、該当タスクを `[ ]` から `[x]` に変更する。
5. ループ継続:
- **ステップ5の先頭 (1. タスクリストの読み込み) に戻り、処理を繰り返す。**
---
### ※ 実装ループ内の例外処理ルール ※
実装ループの実行中に以下の状況が発生した場合は、このルールに従って自律的に対処し、ループを継続すること。
- **ルールA: タスクが大きすぎる場合**
- **対処法:** 現在のタスクをより小さな複数のサブタスクに分割する。`Edit`ツールを使い、元のタスクを削除し、その場所に新しいサブタスク(`[ ]`付き)を挿入する。その後、ループを継続する。
- **ルールB: 技術的理由でタスクが不要になった場合**
- **条件:** 実装方針の変更、アーキテクチャの変更、依存関係の変更など、明確な技術的理由がある場合にのみ適用。
- **対処法:** `Edit`ツールを使い、該当タスクを `[x] ~~タスク名~~ (理由: [具体的な技術的理由を簡潔に記述])` の形式で更新する。その後、ループを継続する。
- **❌ 絶対禁止の行為:**
- 未完了タスクを「後でやる」「別タスクにする」などの理由で意図的にスキップすること。
- 理由なく未完了タスクを放置してループを終了させること。
- ユーザーに判断を仰ぐこと。
---
## ステップ6: 実装検証 (サブエージェント起動)
1. `tasklist.md`の全タスクが完了したことを最終確認する。
2. `Task`ツールを使用し、`implementation-validator`サブエージェントを起動して品質を検証する。
- `subagent_type`: "implementation-validator"
- `description`: "Implementation quality validation"
- `prompt`: "今回実装した `[機能名]` に関する全ての変更点の品質を検証してください。対象ファイルは `[実装したファイルのパスリスト]` です。コーディング規約、エラーハンドリング、テスト可能性、既存パターンとの整合性を重点的に確認してください。"
**このステップが正常に完了したら、決して停止せず、ただちにステップ7に進むこと。**
## ステップ7: 自動テストの実行
1. 以下のコマンドを順番に実行し、全てのテストがパスすることを確認する。
```bash
Bash('npm test')
Bash('npm run lint')
Bash('npm run typecheck')
```
2. いずれかのコマンドでエラーが発生した場合は、問題を分析し、修正コードを生成・適用してから、再度このステップを実行する。
**このステップが正常に完了したら、決して停止せず、ただちにステップ8に進むこと。**
## ステップ8: 振り返りとドキュメント更新
1. `Skill('steering')`を**振り返りモード**で実行し、`tasklist.md`に申し送り事項を記載する。
- 実装完了日
- 計画と実績の差分
- 学んだこと
- 次回への改善提案
2. 今回の変更がプロジェクトの基本設計やアーキテクチャに影響を与えるか判断する。
3. 影響がある場合、`docs/`内の関連する永続ドキュメントを`Edit`ツールで更新する。
## 完了条件
このワークフローは、以下の全ての条件を満たした時点で自動的に完了となる。
- ステップ5: `tasklist.md`の全てのタスクが完了状態(`[x]`または正当な理由でスキップ)になっている。
- ステップ6: `implementation-validator`サブエージェントの検証をパスする。
- ステップ7: `test`, `lint`, `typecheck`の全てのコマンドがエラーなく成功する。
- ステップ8: `tasklist.md`に申し送り事項が記載されている。
この完了条件を満たすまで、自律的に思考し、問題解決を行い、作業を継続すること。