Initial commit
This commit is contained in:
245
commands/task-next.md
Normal file
245
commands/task-next.md
Normal file
@@ -0,0 +1,245 @@
|
||||
---
|
||||
description: 次に実行すべきタスクを取得して実行する
|
||||
argument-hint: [issue_number] [--category=CAT] [--priority=high|medium|low]
|
||||
allowed-tools: Bash, Read, Write, Edit, MultiEdit, Glob, Grep
|
||||
---
|
||||
|
||||
# 次タスクの選択と実行
|
||||
|
||||
指定されたPBI($1が指定された場合)または全PBIから次に実行すべきタスクを選択し、実行します。
|
||||
|
||||
## 実行オプション
|
||||
|
||||
```bash
|
||||
/task-next # 全PBIから最適なタスクを選択
|
||||
/task-next 123 # PBI #123から次タスクを選択
|
||||
/task-next 123 --category=setup # 特定カテゴリのタスクを優先
|
||||
/task-next --priority=high # 高優先度タスクのみ検索
|
||||
```
|
||||
|
||||
## 実行内容
|
||||
|
||||
### 1. 次タスクの特定(カテゴリ・優先度考慮)
|
||||
|
||||
**PBI指定時($1が存在):**
|
||||
- `tasks/pbi-$1/` ディレクトリ内の `todo-*.md` ファイルを検索
|
||||
- カテゴリ別ファイル命名規則: `todo-{category}-{number}.md`
|
||||
- 優先度とカテゴリ依存関係を考慮してタスク選択
|
||||
|
||||
**全PBI検索時(引数なし):**
|
||||
- `tasks/` 配下のすべての `pbi-*` ディレクトリを検索
|
||||
- カテゴリ依存関係による実行可能タスクをフィルタリング
|
||||
- 優先度・作成日時・ブロック状況を総合評価
|
||||
|
||||
**カテゴリ依存関係**:
|
||||
```
|
||||
Setup → Models → Services → UI → Tests
|
||||
↓ ↓ ↓ ↓ ↓
|
||||
基盤 データ層 API層 UI層 品質保証
|
||||
```
|
||||
|
||||
### 2. 詳細タスク情報の表示
|
||||
|
||||
選択されたタスクの内容を表示:
|
||||
```
|
||||
【次のタスク】
|
||||
PBI: #<issue_number>
|
||||
カテゴリ: <category> (Setup/Models/Services/UI/Tests)
|
||||
優先度: <priority> (High/Medium/Low)
|
||||
推定時間: <estimated_hours>時間
|
||||
タスク: <task_title>
|
||||
ファイル: <task_filename>
|
||||
|
||||
=== 前提条件 ===
|
||||
✅ 完了済み依存タスク: <dependency_tasks>
|
||||
⚠️ 未完了依存タスク: <blocking_tasks>
|
||||
|
||||
=== タスク詳細 ===
|
||||
<task_content>
|
||||
|
||||
=== リファインメント情報 ===
|
||||
関連する要件: <requirement_trace>
|
||||
技術仕様: <tech_spec_summary>
|
||||
```
|
||||
|
||||
### 3. 実行確認と開始処理
|
||||
|
||||
**依存関係チェック**:
|
||||
- 前提タスクの完了状況確認
|
||||
- ブロック状況があれば警告表示
|
||||
- 実行可能性の判定
|
||||
|
||||
**ユーザー確認**:
|
||||
- 実行確認とブロック解除オプション提示
|
||||
- 確認後、以下の処理を実行:
|
||||
1. `todo-{category}-N.md` → `wip-{category}-N.md` にリネーム
|
||||
2. YAMLフロントマターの `started` フィールドを現在時刻で更新
|
||||
3. 作業開始をユーザーに通知
|
||||
|
||||
### 4. 実装作業のガイド(カテゴリ別)
|
||||
|
||||
**Setup系タスク**:
|
||||
- 環境構築、依存関係インストール
|
||||
- 設定ファイル作成、初期構造構築
|
||||
- 他のカテゴリの前提条件を満たす
|
||||
|
||||
**Models系タスク**:
|
||||
- データモデル・スキーマ定義
|
||||
- データベース migration作成
|
||||
- ORM/モデルクラス実装
|
||||
|
||||
**Services系タスク**:
|
||||
- ビジネスロジック実装
|
||||
- API エンドポイント作成
|
||||
- 外部サービス連携
|
||||
|
||||
**UI系タスク**:
|
||||
- コンポーネント実装
|
||||
- 画面・フォーム作成
|
||||
- ユーザーインタラクション
|
||||
|
||||
**Tests系タスク**:
|
||||
- 単体テスト・統合テスト
|
||||
- E2Eテスト実装
|
||||
- テストデータ準備
|
||||
|
||||
### 5. 完了処理とカテゴリ連携
|
||||
|
||||
**状態更新**:
|
||||
1. `wip-{category}-N.md` → `done-{category}-N.md` にリネーム
|
||||
2. YAMLフロントマターの `completed` フィールドを現在時刻で更新
|
||||
3. 親PBIの `README.md` のカテゴリ別タスク一覧を更新
|
||||
|
||||
**次タスクの解放**:
|
||||
- 依存関係チェーンの確認
|
||||
- ブロックされていたタスクの実行可能化
|
||||
- 次の実行可能タスクの通知
|
||||
|
||||
**GitHub Issue連携**:
|
||||
- カテゴリ付きタスク完了コメント投稿
|
||||
- 進捗状況の更新(カテゴリ別進捗含む)
|
||||
|
||||
### 6. 進捗状況とカテゴリ分析
|
||||
|
||||
**PBI進捗の詳細表示**:
|
||||
```
|
||||
【PBI #123 進捗状況】
|
||||
全体: 3/8 タスク完了 (37.5%)
|
||||
|
||||
カテゴリ別進捗:
|
||||
✅ Setup: 1/1 完了 (100%)
|
||||
🔄 Models: 1/2 進行中 (50%)
|
||||
⏳ Services: 0/2 待機中 (Models完了待ち)
|
||||
⬜ UI: 0/2 未開始
|
||||
⬜ Tests: 0/1 未開始
|
||||
|
||||
次に実行可能:
|
||||
- Models残り1タスク (高優先度)
|
||||
```
|
||||
|
||||
**全体最適化提案**:
|
||||
- 並行実行可能タスクの提案
|
||||
- ボトルネックとなっているカテゴリの特定
|
||||
- 実装順序の最適化提案
|
||||
|
||||
## 利用可能な検索・操作コマンド
|
||||
|
||||
```bash
|
||||
# PBI一覧の取得
|
||||
find tasks -name "pbi-*" -type d | sort
|
||||
|
||||
# カテゴリ別タスク検索
|
||||
find tasks/pbi-$1 -name "todo-setup-*.md" # Setup系タスク
|
||||
find tasks/pbi-$1 -name "todo-models-*.md" # Models系タスク
|
||||
find tasks/pbi-$1 -name "todo-services-*.md" # Services系タスク
|
||||
find tasks/pbi-$1 -name "todo-ui-*.md" # UI系タスク
|
||||
find tasks/pbi-$1 -name "todo-tests-*.md" # Tests系タスク
|
||||
|
||||
# 優先度別検索
|
||||
grep "priority: high" tasks/pbi-$1/todo-*.md
|
||||
grep "priority: medium" tasks/pbi-$1/todo-*.md
|
||||
|
||||
# 依存関係確認
|
||||
grep "depends_on:" tasks/pbi-$1/todo-*.md
|
||||
|
||||
# タスクファイルの状態変更(カテゴリ保持)
|
||||
mv tasks/pbi-$1/todo-setup-1.md tasks/pbi-$1/wip-setup-1.md
|
||||
mv tasks/pbi-$1/wip-setup-1.md tasks/pbi-$1/done-setup-1.md
|
||||
|
||||
# 進捗状況の取得
|
||||
find tasks/pbi-$1 -name "done-*.md" | wc -l # 完了タスク数
|
||||
find tasks/pbi-$1 -name "wip-*.md" | wc -l # 実行中タスク数
|
||||
find tasks/pbi-$1 -name "todo-*.md" | wc -l # 未着手タスク数
|
||||
|
||||
# カテゴリ別進捗確認
|
||||
find tasks/pbi-$1 -name "done-setup-*.md" | wc -l
|
||||
find tasks/pbi-$1 -name "*-models-*.md" | wc -l
|
||||
|
||||
# GitHub Issueへのカテゴリ付きコメント投稿
|
||||
gh issue comment $1 --body "✅ [Setup] タスク完了: <task_title>"
|
||||
```
|
||||
|
||||
## カテゴリ依存関係の管理
|
||||
|
||||
```bash
|
||||
# 依存関係チェック関数例
|
||||
check_dependencies() {
|
||||
local task_file="$1"
|
||||
local depends_on=$(grep "depends_on:" "$task_file" | cut -d: -f2)
|
||||
|
||||
for dep in $depends_on; do
|
||||
if [ ! -f "tasks/pbi-$1/done-$dep.md" ]; then
|
||||
echo "❌ 依存タスク未完了: $dep"
|
||||
return 1
|
||||
fi
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
# 次実行可能タスクの特定
|
||||
find_executable_tasks() {
|
||||
for todo_file in tasks/pbi-$1/todo-*.md; do
|
||||
if check_dependencies "$todo_file"; then
|
||||
echo "$todo_file"
|
||||
fi
|
||||
done
|
||||
}
|
||||
```
|
||||
|
||||
## エラーハンドリング
|
||||
|
||||
### 基本エラー処理
|
||||
- 指定されたPBIが存在しない場合の適切なエラー
|
||||
- 実行可能なタスクが見つからない場合の案内
|
||||
- GitHub CLI未認証時のエラー処理
|
||||
- ファイル操作失敗時のロールバック
|
||||
|
||||
### カテゴリ特有のエラー処理
|
||||
- 依存関係未満足時の詳細説明
|
||||
- カテゴリ間の循環依存検出
|
||||
- 優先度指定時の該当タスクなしエラー
|
||||
- 推定時間超過時の警告
|
||||
|
||||
### 復旧支援機能
|
||||
- 中断されたwipタスクの復旧提案
|
||||
- 依存関係エラー時の解決パス提示
|
||||
- カテゴリ順序の修正提案
|
||||
|
||||
## 完了条件
|
||||
|
||||
### 基本完了条件
|
||||
- 次タスクが正常に特定・表示されている
|
||||
- カテゴリと優先度が適切に考慮されている
|
||||
- 依存関係チェックが正常に機能している
|
||||
|
||||
### 状態管理の完了条件
|
||||
- タスク状態が適切に更新されている(todo→wip→done)
|
||||
- カテゴリ情報がファイル名に保持されている
|
||||
- 依存関係の解放が正常に実行されている
|
||||
|
||||
### 進捗管理の完了条件
|
||||
- PBI進捗状況が正確に表示されている(カテゴリ別含む)
|
||||
- GitHub Issueに適切なコメントが投稿されている
|
||||
- 次の実行可能タスクが適切に提案されている
|
||||
|
||||
実行を開始しますか?
|
||||
Reference in New Issue
Block a user