| name | start-develop-project |
| description | 既存プロダクトについての新しい開発案件を開始する。 |
新しい開発案件の実行
引数: 機能名 (例: /start-develop-project edit-user-profile)
前提:
- もし日付が今日以前のものでもステアリングファイルが既に存在している場合は、既に開発作業が開始していると考える。
- その場合は
Skill('steering')を有効化したうえでステアリングファイルを読み込んで現在の進捗を把握し、続きから再開する。
ステップ1: 準備とコンテキスト設定
- 現在のタスクコンテキストを確立する:
- 機能名:
[引数で与えられた機能名]
- 日付:
[現在の日付をYYYYMMDD形式で取得]
- ステアリングディレクトリパス:
.steering/[日付]-[機能名]/
- 上記ステアリングディレクトリを作成する。
- 以下の3つの空ファイルを作成する:
[ステアリングディレクトリパス]/requirements.md
[ステアリングディレクトリパス]/design.md
[ステアリングディレクトリパス]/tasklist.md
ステップ2: プロジェクト理解
こちらは現状スキップする。
ステップ3: 既存パターンの調査
globツール/read_fileツール/search_file_contentツールを使用し、機能名に関連するキーワードでソースコードを検索する。
- 検索結果を分析し、既存の実装パターン、命名規則、コンポーネントの利用方法を特定する。
ステップ4: 計画フェーズ (ステアリングファイルの自動生成)
Skill('steering')をステアリングファイル作成モードで実行し、docs/{{args}}/idea/ディレクトリ配下のファイルをもとに、ステップ1で作成した3つのファイル (requirements.md, design.md, tasklist.md) の内容を生成する。
- 生成が完了したら、ユーザに確認と承認を求めること。承認されなかった場合は承認されるまで、ユーザと議論して3つのファイルの改良を続ける。
ステップ5: 実装ループ (tasklist.mdの完全消化)
このステップは、tasklist.mdの全タスクが [x] になるまで自動で繰り返されるループ処理。
このステップが正常に完了したら、ユーザに確認を依頼すること。問題なければ、次のステップ6に進む。
ループ開始:
- タスクリストの読み込み:
[ステアリングディレクトリパス]/tasklist.mdファイルを読み込む。
- 進捗の確認:
- ファイル内に未完了タスク (
[ ]) が存在するか確認する。
- もし未完了タスクが存在しない場合: この実装ループは完了とみなし、ステップ6へ進む。
- もし未完了タスクが存在する場合: 次の処理(3. タスクの実行)に進む。
- タスクの実行:
tasklist.mdの先頭にある未完了タスクを1つ特定する。
- そのタスクを完了させるために必要な実装作業を実行する。
Skill('steering')を実装モードで使用する。
Skill('development-guidelines')のコーディング規約を常に遵守する。
- タスクリストの更新:
- 実行したタスクが完了したら、
Editツールを使用してtasklist.mdを更新し、該当タスクを [ ] から [x] に変更する。
- ループ継続:
- ステップ5の先頭 (1. タスクリストの読み込み) に戻り、処理を繰り返す。
※ 実装ループ内の例外処理ルール ※
実装ループの実行中に以下の状況が発生した場合は、このルールに従って自律的に対処し、ループを継続すること。
-
ルールA: タスクが大きすぎる場合
- 対処法:
- 現在のタスクをより小さな複数のサブタスクに分割する。
replaceツールを使い、元のタスクを削除し、その場所に新しいサブタスク([ ]付き)を挿入する。
- その後、ループを継続する。
-
ルールB: 技術的理由でタスクが不要になった場合
- 条件: 実装方針の変更、アーキテクチャの変更、依存関係の変更など、明確な技術的理由がある場合にのみ適用。
- 対処法:
replaceツールを使い、該当タスクを [x] ~~タスク名~~ (理由: [具体的な技術的理由を簡潔に記述]) の形式で更新する。その後、ループを継続する。
-
❌ 絶対禁止の行為:
- 未完了タスクを「後でやる」「別タスクにする」などの理由で意図的にスキップすること。
- 理由なく未完了タスクを放置してループを終了させること。
ステップ6: 実装検証 (サブエージェント起動)
こちらは現状スキップする。
ステップ7: 自動テストの実行
- 以下のコマンドを順番に実行し、全てのテストがパスすることを確認する。
Bash('mvn clean install')
-
エラーが発生した場合は、問題を分析し、修正コードを生成・適用してから、再度このステップを実行する。
-
ユーザに確認を依頼する。問題ない場合は、次のステップ8に進む。
ステップ8: 振り返りとドキュメント更新
Skill('steering')を振り返りモードで実行し、tasklist.mdに申し送り事項を記載する。
- 実装完了日
- 計画と実績の差分
- 学んだこと
- 次回への改善提案
-
今回の変更がプロジェクトの基本設計やアーキテクチャに影響を与えるか判断する。
-
影響がある場合、ステップ1のtasklist.mdの申し送り事項の部分に追記しておく。
完了条件
このワークフローは、以下の全ての条件を満たした時点で自動的に完了となる。
- ステップ4:
tasklist.mdの全てのタスクが完了状態([x]または正当な理由でスキップ)になっている。
- ステップ5: 全ての自動テストがエラーなく成功する。
- ステップ6:
tasklist.mdに申し送り事項が記載されている。
この完了条件を満たすまで、自律的に思考し、問題解決を行い、作業を継続すること。