feature-dev について
feature-devは、新機能の実装を支援する開発スキルです。コードベースの調査、要件確認、設計、テスト、レビューを段階的に進め、重要な判断の前にユーザーへ確認します。
主な機能
- 01コードベースの体系的な調査
- 02早期の要件確認
- 03調査・設計エージェントの並行活用
- 04実装前のユーザー承認
- 05テスト生成と反復実行
- 06並行での品質レビュー
活用シーン
- 01要件が曖昧な機能の計画
- 02既存コードと規約の把握
- 03実装案の比較
- 04新機能のテストとレビュー
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ notedit/ happy-skills --skill feature-devインストール後、Claude Code で/feature-devを入力して読み込まれたか確認します。
詳細
機能開発
新機能の実装を支援します。体系的なアプローチに従ってください。コードベースを深く理解し、詳細が不明確な点をすべて特定して質問し、洗練されたアーキテクチャを設計し、実装と徹底的なテストを行ったうえで、レビューします。
開始時に次のように宣言してください:「feature-dev スキルを使用して、この機能を実装します。」
基本原則
- 確認の質問をする:曖昧な点、エッジケース、詳細が不明確な動作をすべて特定します。推測するのではなく、具体的で明確な質問をしてください。実装に進む前に、ユーザーの回答を待ちます。早い段階で(コードベースを把握した後、アーキテクチャを設計する前に)質問してください。
- 行動する前に理解する:まず、既存のコードパターンを読んで理解します。
- エージェントが特定したファイルを読む:エージェントを起動する際は、読むべき重要なファイルの一覧を返すよう依頼します。エージェントの処理が完了したら、詳細なコンテキストを把握するために、それらのファイルを読みます。
- シンプルで洗練された設計にする:読みやすく、保守しやすく、アーキテクチャとして健全なコードを優先します。
- 徹底的にテストする:新しいコードに適切なテストカバレッジを確保します。
- TodoWrite を使用する:進捗全体を追跡します。
フェーズ 1:調査
目標:構築するものを理解する
初回の依頼:$ARGUMENTS
アクション:
- すべてのフェーズを含む Todo リストを作成します。
- 機能が明確でない場合は、ユーザーに以下を確認します。
- どのような問題を解決しようとしていますか?
- その機能にどのような動作を期待していますか?
- 制約や要件はありますか?
- 理解した内容を要約し、ユーザーに確認します。
フェーズ 2:コードベースの調査
目標:高いレベルと低いレベルの両方で、関連する既存のコードとパターンを理解する
アクション:
-
code-explorer エージェントを 2~3 個、並行して起動します。各エージェントには以下を依頼します。
- コードを包括的にたどり、抽象化、アーキテクチャ、制御フローを十分に理解することに重点を置きます。
- コードベースの異なる側面(類似機能、高レベルの概要、アーキテクチャの理解、ユーザーエクスペリエンスなど)を対象にします。
- 読むべき重要なファイルを 5~10 個挙げます。
エージェントへのプロンプト例:
- 「[feature] に類似した機能を探し、その実装を包括的にたどってください」
- 「[feature area] のアーキテクチャと抽象化を把握し、コードを包括的にたどってください」
- 「[existing feature/area] の現在の実装を分析し、コードを包括的にたどってください」
- 「[feature] に関連する UI パターン、テスト手法、拡張ポイントを特定してください」
-
エージェントから結果が返されたら、深く理解するため、エージェントが特定したすべてのファイルを読みます。
-
調査結果と見つかったパターンを包括的に要約して提示します。
フェーズ 3:確認の質問
目標:設計に進む前に不足点を補い、曖昧さをすべて解消する
重要:これは最も重要なフェーズの一つです。省略しないでください。
アクション:
- コードベースの調査結果と元の機能リクエストを確認します。
- 詳細が不明確な点を特定します。エッジケース、エラー処理、統合ポイント、スコープの境界、設計上の希望、後方互換性、パフォーマンス要件などが含まれます。
- すべての質問を、明確で整理されたリストにしてユーザーに提示します。
- 回答を待ってから、アーキテクチャ設計に進みます。
ユーザーが「最善だと思う方法で」と答えた場合は、推奨案を提示し、明確な確認を得てください。
フェーズ 4:アーキテクチャ設計
目標:トレードオフの異なる複数の実装アプローチを設計します
アクション:
- 異なる観点を持つコードアーキテクトエージェントを 2~3 個並行して起動します。観点は、最小限の変更(変更を最小限にし、再利用を最大化)、クリーンアーキテクチャ(保守性と洗練された抽象化)、または現実的なバランス(速度と品質)です。
- すべてのアプローチを確認し、この特定のタスクに最適なものについて自分の見解をまとめます(小さな修正か大規模な機能か、緊急度、複雑さ、チームの状況を考慮します)。
- ユーザーに提示します:各アプローチの簡潔な概要、トレードオフの比較、理由を添えた推奨案、具体的な実装の違い
- ユーザーに希望するアプローチを尋ねます
フェーズ 5:実装
目標:機能を構築します
ユーザーの承認なしに開始しないでください
アクション:
- ユーザーから明示的な承認があるまで待ちます
- 前のフェーズで特定した関連ファイルをすべて読みます
- 選択したアーキテクチャに従って実装します
- コードベースの規約を厳守します
- クリーンで、十分にドキュメント化されたコードを記述します
- 進捗に応じて todo を更新します
フェーズ 6:自動テスト
目標:包括的なテストカバレッジを確保し、すべてのテストに合格することを確認します
アクション:
-
テストを生成する:異なる観点を持つテストジェネレーターエージェントを 2 つ並行して起動します。
- 単体テスト:個々の関数、エッジケース、エラー処理に注目します
- 統合テスト:コンポーネント間の相互作用、データフロー、API コントラクトに注目します
各エージェントは新しいコードを分析し、以下を提示します:
- 完全な実装コードを含むテストケース
- 優先度のランク付け(critical/important/nice-to-have)
- 必要なモックとフィクスチャ
-
生成されたテストを確認する:
- 両方のエージェントからのテストに関する提案を統合します
- 実装が必須の重要なテストを優先します
- 承認を得るため、テスト計画をユーザーに提示します
-
テストを実装する:
- 承認されたテストケースを、プロジェクトの規約に従って記述します
- 必要なモックとテストフィクスチャを設定します
- テストを整理し、保守しやすい状態にします
-
テストを実行する:テストランナーエージェントを起動して、以下を行います:
- テストスイート全体(または関連する一部)を実行します
- 失敗があれば根本原因を診断して分析します
- 失敗したテストに対する具体的な修正案を提示します
-
修正と反復:
- 実装のバグが原因でテストが失敗した場合は、実装を修正します
- テストの問題が原因でテストが失敗した場合は、テストを修正します
- すべてのテストに合格するまで、テストを再実行します
- すべてのテストに合格するまで、品質レビューに進まないでください
-
カバレッジを報告する:達成したテストカバレッジと、残っている不足分をまとめます
フェーズ 7:品質レビュー
目標:コードがシンプルで、DRY で、洗練され、読みやすく、機能的に正しいことを確認します
アクション:
- 異なる観点を持つコードレビュアーエージェントを 3 つ並行して起動します。観点は、シンプルさ/DRY/洗練度、バグ/機能的な正しさ、プロジェクトの規約/抽象化です。
- 指摘事項を統合し、修正を推奨する最も重大な問題を特定します
- 指摘事項をユーザーに提示し、どのように進めるか尋ねます(今すぐ修正、後で修正、そのまま進める)
- ユーザーの判断に応じて問題に対処します
- 重要な変更を行った場合は、テストランナーエージェントを使ってテストを再実行し、問題が発生していないことを確認します
フェーズ 8:まとめ
目標:完了した作業を記録します
アクション:
- すべての todo を完了としてマークします
- 以下をまとめます:
- 構築したもの
- 主な決定事項
- 変更したファイル
- 達成したテストカバレッジ
- 次のステップの提案