--- description: 中断されたワークフローを再開する --- # ワークフローの再開 中断された機能開発ワークフローを再開します。 ## あなたの役割 `.tasks.json` ファイルを読み込み、現在のワークフロー状態を分析して、適切な次のステップを実行してください。 ### ステップ1: タスクファイルの確認 まず、`.tasks.json` ファイルが存在するか確認します: ```javascript const fs = require('fs'); const tasksFile = '.tasks.json'; if (!fs.existsSync(tasksFile)) { // タスクファイルが存在しない console.log('❌ 進行中のワークフローが見つかりません'); console.log('\n新しいワークフローを開始するには:'); console.log(' /new-feature [機能の説明]'); process.exit(1); } const data = JSON.parse(fs.readFileSync(tasksFile, 'utf-8')); ``` ### ステップ2: 現在の状態を分析 ワークフロータスク(type: "workflow")の状態を確認し、次に実行すべきタスクを特定します: ```javascript // ワークフロータスクを取得 const workflowTasks = data.tasks.filter(t => t.type === 'workflow'); // 作業中のタスクを探す const inProgressTask = workflowTasks.find(t => t.status === 'in_progress'); // 未着手のタスクを探す(IDの昇順で最初のもの) const pendingTask = workflowTasks .filter(t => t.status === 'pending') .sort((a, b) => a.id - b.id)[0]; // 次に実行すべきタスク const nextTask = inProgressTask || pendingTask; ``` ### ステップ3: 状態に応じた処理 #### ケース1: 作業中のタスクがある 作業中のタスクがある場合、そのタスクを続行します: ``` ## 📋 ワークフロー状態 **機能**: [機能名] ### 現在の進捗 - ✅ 要件整理 - ✅ ドキュメント作成 - ⏳ テスト作成 ← 作業中 - ⬜ タスク作成 - ⬜ 実装 ### 次のアクション タスク「テスト作成」が作業中です。 このタスクを続行しますか? - **続行する場合**: `/create-tests` を実行 - **状態を確認する場合**: `/list-tasks` を実行 ``` この場合、ユーザーに確認を求め、承認されたら対応するコマンドを実行します。 #### ケース2: 未着手のタスクがある 未着手のタスクがある場合、次のタスクを開始します: ``` ## 📋 ワークフロー状態 **機能**: [機能名] ### 現在の進捗 - ✅ 要件整理 - ✅ ドキュメント作成 - ✅ テスト作成 - ⬜ タスク作成 ← 次のステップ - ⬜ 実装 ### 次のアクション 次は「タスク作成」です。 実装のためのサブタスクを作成します。 続行しますか? (yes/no) ``` 承認されたら、SlashCommandツールで対応するコマンドを実行します。 #### ケース3: すべて完了している すべてのワークフロータスクが完了している場合: ``` ## 📋 ワークフロー状態 **機能**: [機能名] ### 🎉 ワークフロー完了! すべてのタスクが完了しました: - ✅ 要件整理 - ✅ ドキュメント作成 - ✅ テスト作成 - ✅ タスク作成 - ✅ 実装 ### 次のステップ 1. コードレビューを依頼 2. ドキュメントを確認 3. 本番環境へのデプロイを検討 完了したタスクは履歴ファイル (.tasks-history.json) に保存されています。 ``` #### ケース4: サブタスクが残っている ワークフロータスクは完了しているが、サブタスク(type: "subtask")が残っている場合: ``` ## 📋 ワークフロー状態 **機能**: [機能名] ### ワークフロー すべてのワークフロータスクが完了しています。 ### 実装サブタスク - ✅ ユーザーモデルの作成 - ⏳ 認証APIエンドポイントの実装 ← 作業中 - ⬜ フロントエンドフォームの作成 ### 次のアクション サブタスク「認証APIエンドポイントの実装」が作業中です。 このタスクを続行するには: - `/implement` を実行してください - タスク詳細を確認: `/list-tasks` ``` ## コマンドとタスクIDの対応 | タスクID | タスク名 | コマンド | |---------|---------|---------| | 1 | 要件整理 | `/new-feature` | | 2 | ドキュメント作成 | `/create-docs` | | 3 | テスト作成 | `/create-tests` | | 4 | タスク作成 | `/create-tasks` | | 5 | 実装 | `/implement` | ## 実装フロー ```javascript // 1. タスクファイル読み込み const data = loadTasksFile(); // 2. 状態分析 const currentState = analyzeWorkflowState(data); // 3. ユーザーに状態を表示 displayWorkflowState(currentState); // 4. 次のアクションを提案 suggestNextAction(currentState); // 5. ユーザーの承認を待つ // "yes" の場合、次のコマンドを自動実行 // 6. SlashCommand ツールで次のコマンドを実行 if (userApproved) { executeCommand(currentState.nextCommand); } ``` ## エラーハンドリング ### タスクファイルが破損している場合 ``` ❌ タスクファイルの読み込みに失敗しました エラー: [エラーメッセージ] タスクファイル (.tasks.json) を確認してください。 ``` ### 履歴のみ存在する場合 ``` ℹ️ 進行中のワークフローはありません 最近完了した機能: - [機能名1] (完了日: YYYY-MM-DD) - [機能名2] (完了日: YYYY-MM-DD) 新しいワークフローを開始するには: /new-feature [機能の説明] ``` ## 注意事項 - **自動実行**: ユーザーが承認した場合のみ次のコマンドを実行 - **状態確認**: 実行前に必ず現在の状態を表示 - **依存関係**: サブタスクの依存関係も考慮する - **ブロック状態**: ブロックされたタスクがある場合は警告を表示 ## 使用例 ### 例1: ドキュメント作成で中断していた場合 ``` $ /resume ## 📋 ワークフロー状態 **機能**: ユーザー認証機能 ### 現在の進捗 - ✅ 要件整理 - ⏳ ドキュメント作成 ← 作業中 - ⬜ テスト作成 - ⬜ タスク作成 - ⬜ 実装 ### 次のアクション タスク「ドキュメント作成」が作業中です。 このタスクを続行しますか? (yes/no) > yes ドキュメント作成を続行します... [/create-docs が自動実行される] ``` ### 例2: すべて完了している場合 ``` $ /resume ## 📋 ワークフロー状態 **機能**: ユーザー認証機能 ### 🎉 ワークフロー完了! すべてのタスクが完了しました。 完了したタスクは履歴ファイルに保存されています。 詳細を確認するには: /list-tasks --history ```