description: 設計文書に基づいて実装タスクを1日単位の粒度で分割し、1ヶ月単位のフェーズに整理します。各タスクを個別ファイルで管理し、依存関係を考慮した適切な順序で管理します。
allowed-tools: Read, Glob, Grep, Task, Write, Edit, TodoWrite, WebFetch, AskUserQuestion, TaskCreate, TaskUpdate, TaskList
argument-hint: "[要件名] [--task]"
設計文書に基づいて実装タスクを1日単位の粒度で分割し、1ヶ月単位のフェーズに整理する。各タスクを個別ファイルで作成し、依存関係を考慮した適切な順序で管理する。
- `docs/design/{要件名}/` に設計文書が存在する
- 設計がユーザによって承認されている(または承認が省略されている)
- `docs/tasks/` ディレクトリが存在する(なければ作成)
- 思考は英語で実施。ファイルは日本語で記述
- task_id は `TASK-{4桁の数字}` (例 TASK-0001)にする
出力ディレクトリ="docs/tasks" 要件名={{requirement_name}} 作業規模={{work_scope}} 信頼性評価=[] claude_code_task登録={{register_to_claude_code_task}}
- $ARGUMENTS がない場合、「引数に要件名を指定してください(例: ユーザー認証システム)」と言って終了する
- $ARGUMENTS から `--task` オプションの有無を確認する
- `--task` が含まれている場合、context の {{register_to_claude_code_task}} を true に設定
- `--task` を除いた残りを要件名として context の {{requirement_name}} に保存
- $ARGUMENTS の内容と context の内容をまとめてユーザに宣言する(`--task` オプションが有効な場合はその旨も含める)
- step2 を実行する
- AskUserQuestion ツールを使って作業規模を質問する:
- question: "このタスク分割の作業規模について教えてください"
- header: "作業規模"
- multiSelect: false
- options:
- label: "詳細タスク分割(推奨)"
description: "詳細な実装手順、包括的なテストケース、完全な依存関係分析、UI/UX要件含む"
description: "必要最小限のタスク定義、基本的な実装手順のみ、主要な依存関係のみ"
description: "含めたい項目を個別に選択"
- ユーザーの選択を context の {{work_scope}} に保存
- カスタムを選択した場合は、AskUserQuestion ツールを使って以下を質問:
- question: "タスク定義に含める項目を選択してください(複数選択可)"
- header: "含める項目"
- multiSelect: true
- options:
- label: "詳細な実装手順"
description: "ステップバイステップの実装ガイド"
description: "単体・統合テストの詳細な定義"
description: "ローディング状態・エラー表示・モバイル対応等"
description: "タスク間の依存関係の詳細な分析"
- **タスクノートの読み込み**
- `docs/spec/{要件名}/note.md` が存在する場合は読み込み
- 存在しない場合:
- Task ツールを使用して subagent_type: "general-purpose" で `/tsumiki-legacy:kairo-tasknote {要件名}` コマンドを実行してノートを生成
- 生成されたノートファイルを読み込み
- ノートには技術スタック、開発ルール、関連実装、設計文書、注意事項が含まれる
- **追加ルールの読み込み**
- `docs/rule` ディレクトリが存在する場合は読み込み
- `docs/rule/kairo` ディレクトリが存在する場合は読み込み
- `docs/rule/kairo/tasks` ディレクトリが存在する場合は読み込み
- 各ディレクトリ内のすべてのファイルを読み込み、追加ルールとして適用
- **技術スタック定義の読み込み**
- `docs/tech-stack.md` が存在する場合は読み込み
- 存在しない場合は `CLAUDE.md` から技術スタックセクションを読み込み
- どちらも存在しない場合は `.claude/commands/tech-stack.md` のデフォルト定義を使用
- **要件定義・設計文書の読み込み**
- `docs/spec/{要件名}-requirements.md` または `docs/spec/{要件名}/requirements.md` を読み込み
- `docs/design/{要件名}/architecture.md` を読み込み
- `docs/design/{要件名}/database-schema.sql` を読み込み
- `docs/design/{要件名}/api-endpoints.md` を読み込み
- `docs/design/{要件名}/interfaces.ts` を読み込み
- `docs/design/{要件名}/dataflow.md` を読み込み
- 読み込んだ技術スタック定義に基づいて実装技術を特定
- **既存タスクファイルの確認**
- Task tool (subagent_type: Explore, thoroughness: quick) を使用して既存タスクIDを探索
- 既存の`docs/tasks/{要件名}-TASK-*.md`ファイルを確認
- 使用済みタスク番号(TASK-0000形式)を抽出
- 新規タスクで重複しない番号を割り当て
作業規模に応じてヒアリング項目を調整。 **重要**: 以下の質問は例示であり、実際のプロジェクト状況に応じて AskUserQuestion ツールを使用して適切な質問を作成すること。
以下のカテゴリごとに、設計文書から特定した具体的な課題・不明点について AskUserQuestion ツールで質問する:
**タスク粒度の確認**
- 1日単位(8時間)のタスク粒度で問題ないか確認
- より細かい分割が必要な場合は具体的な単位を質問
例: AskUserQuestion ツールで以下のように質問
- question: "タスクの粒度について、1日(8時間)単位で問題ないでしょうか?"
- header: "タスク粒度"
- multiSelect: false
- options:
- label: "1日単位で問題ない"
description: "8時間単位のタスク分割"
description: "半日(4時間)単位など、より細かい分割(その他で詳細を記入)"
**実装優先順位の確認**
- 設計文書の実装順序について確認が必要な場合質問
- 並行実行可能なタスクの優先順位について質問
- フェーズ分割の基準について質問
**技術的制約の確認**
- 技術スタックの選択について確認が必要な場合質問
- パフォーマンス要件の実装方法について質問
- 外部システム連携のタイミングについて質問
**テスト要件の詳細化**
- 単体テストのカバレッジ目標について質問
- 統合テストの実施範囲について質問
- E2Eテストの実施タイミングについて質問
**UI/UX実装の詳細確認**
- ローディング状態の実装方針について質問
- エラー表示の詳細について質問
- モバイル対応の範囲について質問
- アクセシビリティ要件の詳細について質問
**必須項目のみ確認** AskUserQuestion ツールを使って、以下の項目について簡潔に質問:
- 主要なタスクの実行順序の確認
- 基本的な依存関係の確認
- 最低限のテスト要件確認
step2 で選択した項目に関連するヒアリングのみ実施。 AskUserQuestion ツールを使って、選択された項目に応じた質問を作成する。
**注意事項**:
- すべての質問を一度に投げるのではなく、文脈に応じて段階的に質問する
- ユーザーの回答を受けて、必要に応じて追加質問を行う
- 質問は具体的で、はい/いいえで答えられるか、選択肢から選べる形式にする
- 自由記述が必要な場合は「その他」オプションを用意する
**ヒアリング記録の作成**:
- すべての質問と回答を記録する
- 各質問について、以下を記録:
- 質問内容
- 質問日時
- カテゴリ(タスク粒度/優先順位/技術制約/テスト要件/UI要件)
- 質問の背景(なぜこの質問が必要だったか)
- ユーザーからの回答
- 信頼性への影響(この回答により信頼性レベルがどう変化したか)
- ヒアリング結果のサマリーを作成
**【重要】**: このステップでは、洗い出したすべてのタスクファイルを作成する必要があります。途中で止めないでください。
**【信頼性レベル指示】**: 各項目について、元の資料(要件定義書・設計文書・ユーザヒアリング含む)との照合状況を以下の信号でコメントしてください:
- 🔵 **青信号**: 要件定義書・設計文書・ユーザヒアリングを参考にしてほぼ推測していない場合
- 🟡 **黄信号**: 要件定義書・設計文書・ユーザヒアリングから妥当な推測の場合
- 🔴 **赤信号**: 要件定義書・設計文書・ユーザヒアリングにない推測の場合
設計文書に基づいて、以下のカテゴリでタスクを洗い出す:
- 基盤タスク(DB設定、環境構築など)
- バックエンドタスク(API実装)
- フロントエンドタスク(UI実装)
- 画面のグループ毎に細かく分割する
- 統合タスク(E2Eテストなど)
**洗い出しの記録**:
- 洗い出したタスクの総数を記録する
- 各カテゴリごとのタスク数を記録する
- この総数が、step5.6で作成するファイル数と一致する必要がある
- タスク間の依存関係を明確化
- 並行実行可能なタスクを識別
- クリティカルパスを特定
各タスクに以下を含める:
- タスクID(TASK-0000形式)
- タスク名
- タスクタイプ(TDD/DIRECT)
- **TDD**: コーディング、ビジネスロジック実装、UI実装、テスト実装など開発作業
- **DIRECT**: 環境構築、設定ファイル作成、ドキュメント作成、ビルド設定など準備作業
- 要件へのリンク
- 依存タスク
- 実装詳細(信頼性レベル付き)
- 単体テスト要件(信頼性レベル付き)
- 統合テスト要件(信頼性レベル付き)
- UI/UX要件(該当する場合、信頼性レベル付き)
- ローディング状態
- エラー表示
- モバイル対応
- アクセシビリティ要件
- タスク全体の信頼性レベル評価
- 依存関係に基づいて実行順序を決定
- マイルストーンを設定
- 並行実行可能なタスクをグループ化
- 各タスクを1日単位の粒度で設計
- タスクを1ヶ月(20日想定)以内の期間でフェーズに分割
- フェーズは180時間以内を目標にする
- フェーズの分割はアーキテクチャのレイヤーを基準にする
- 事前検討した分割基準を前提としない
- **重要**: 各タスクを個別ファイルで作成
- **必須**: step5.1で洗い出したすべてのタスクファイルを作成する(途中で止めない)
- **フェーズ別並列処理**: フェーズ毎にTaskツールを使い、複数フェーズを並列実行して効率的にファイルを作成する
- 作業規模に応じた <task_template> を選択:
- 詳細タスク分割: <full_task_template>
- 軽量タスク分割: <minimal_task_template>
- カスタム: 選択項目に応じた組み合わせ
1. step5.1で洗い出した全タスクリストを確認 2. 洗い出した全タスク情報(タスクID、タスク名、タイプ、工数、フェーズ、依存関係、実装詳細、テスト要件等)をフェーズ別に整理