--- description: タスクの状態を更新する argument-hint: [タスクID] [新しい状態] [理由(オプション)] --- # タスク状態の更新 指定したタスクの状態を更新します。 ## 引数 $ARGUMENTS ## 想定される引数形式 ``` /update-task 5 in_progress /update-task 7 blocked データベーススキーマの確認待ち /update-task 3 pending ``` ## 状態の種類 - `pending`: 未着手 - `in_progress`: 作業中 - `completed`: 完了(`/complete-task` の使用を推奨) - `blocked`: ブロック中(理由を記載してください) ## 処理手順 ### 1. 引数のパース 引数から以下を抽出します: - **タスクID**: 数値 - **新しい状態**: pending, in_progress, completed, blocked のいずれか - **理由**: 状態変更の理由(blocked の場合は必須) ### 2. タスクファイルの読み込み `.tasks.json` ファイルを読み込み、指定されたIDのタスクを検索します。 ### 3. バリデーション 以下をチェックします: - タスクIDが存在するか - 状態が有効な値か - blocked の場合、理由が提供されているか - 依存関係の問題がないか(依存タスクが未完了なのに in_progress にしようとしていないか) ### 4. 状態の更新 タスクの状態を更新し、以下の情報も記録します: - `updatedAt`: 更新日時 - `blockReason`: ブロック理由(blocked の場合) - `startedAt`: 開始日時(pending → in_progress の場合) ### 5. 依存関係のチェック タスクを `completed` にする場合、このタスクに依存している他のタスクがあれば通知します。 ## 出力例 ### 成功時 ``` ✅ タスク #5 の状態を更新しました タスク: ユーザーモデルの作成 旧状態: pending → 新状態: in_progress 開始日時: 2025-10-12 14:30 このタスクに依存しているタスク: - #6: 認証APIエンドポイントの実装 ``` ### ブロック時 ``` 🚫 タスク #7 をブロック状態にしました タスク: データベースマイグレーション 理由: データベーススキーマの確認待ち 推奨アクション: 1. 関係者に確認を依頼 2. 他のタスク(#5, #6)を先に進める 3. 問題が解決したら `/update-task 7 pending` で再開 ``` ### エラー時 ``` ❌ タスクの更新に失敗しました 原因: タスク #99 が見つかりません 利用可能なタスクID: 1, 2, 3, 4, 5, 6, 7 タスク一覧を確認: `/list-tasks` ``` ### 依存関係エラー時 ``` ⚠️ 依存関係の警告 タスク #6 を in_progress にしようとしていますが、 依存タスク #5 (ユーザーモデルの作成) がまだ完了していません。 推奨: - 先に #5 を完了させる - または依存関係を見直す ``` ## 次のステップ 状態に応じて以下を提案: - `in_progress` にした場合: 作業のヒントや関連ドキュメントを提示 - `blocked` にした場合: 代わりに取り組めるタスクを提案 - `completed` にした場合: 次のタスクを提案(`/complete-task` を推奨)