taskmaster について
taskmasterは、複数ステップのCodex作業向けv5実行プロトコルスキルです。作業を単一、エピック、バッチに分け、ファイルで状態と検証を管理するため、コンテキストのリセット後も再開できます。
主な機能
- 01単一・エピック・バッチへの振り分け
- 02再開用のファイルベースの状態管理
- 03完了前の明示的な検証
- 04spawn_agents_on_csvによる同種行の委譲
- 05進捗と再開状況の形式定義
活用シーン
- 01コンテキストリセット後のコード変更の追跡
- 02依存関係のある複数モジュールの調整
- 03独立した行データの構造化出力による処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lili-luo/ aicoding-cookbook --skill taskmasterインストール後、Claude Code で/taskmasterを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/BATCH_TEMPLATE.mdcompact_todo_template.csvEPIC_TEMPLATE.mdEXAMPLES.mdperf_todo_template.csvPROGRESS_TEMPLATE.mdSPEC_TEMPLATE.mdsubtasks_template.csvtodo_template.csvworkers_input_template.csvworkers_output_template.csv詳細
Taskmaster — v5 タスクプロトコル
目的
Taskmaster は、複数ステップにわたる Codex 作業のデフォルト実行プロトコルです。v5 では既存の Debug-First コアを維持しながら、スキルを次の 3 つのタスク形式に拡張します。
- 単一タスク — 成果物 1 つ、共有コンテキスト 1 つ
- エピックタスク — 依存関係のある複数の子タスク
- バッチタスク —
spawn_agents_on_csvを通じて実行する、同質な行単位の作業
コア原則
- ディスク上の最新の真実を示す成果物を、メモリより優先します。
- 明示的な検証なしに、ステップ、サブタスク、バッチ行を
DONEにしてはいけません。 - 詳細な推論はチャットではなく、
PROGRESS.md、EPIC.md、またはバッチ出力ファイルに記録します。 - 失敗を見える状態に保ちます。手動実行や逐次実行へ、黙って切り替えてはいけません。
- 計画用 CSV とバッチワーカー用 CSV は分けて管理します。
- Codex のみで復旧できるようにします。コールドリスタート後も、ファイルだけで再開できなければなりません。
形式ルーター
| 形式 | 使用する場面 | 真実を示す成果物 | 例 |
|---|---|---|---|
| 単一タスク | 共有コンテキストで成果物を 1 つ作る場合 | TODO.csv または SPEC.md + TODO.csv + PROGRESS.md | OAuth リダイレクトのバグを 1 件修正する |
| エピックタスク | 複数の成果物、モジュール、依存関係チェーンがある場合 | EPIC.md + SUBTASKS.csv + PROGRESS.md | API、UI、ドキュメントにわたる請求ダッシュボードをリリースする |
| バッチタスク | 独立した各行に同じ指示テンプレートを適用する場合 | TODO.csv + batch/BATCH.md + workers-input.csv + workers-output.csv | 80 個の Markdown ファイルの frontmatter を監査する |
ルーターのルール
- ユーザーが成果物を 1 つ求めており、進捗を 1 つの共有コンテキスト内に保てる場合は、単一タスクから始めます。
- 1 つの
TODO.csvにフェーズ、サブプロジェクト、または独立した成果物が含まれるようになったら、エピックタスクに切り替えます。 - バッチタスクを使うのは、各行が独立していて、1 つの指示テンプレートを共有し、成功を構造化出力フィールドで表現できる場合に限ります。
- エピックタスクには、
single-compact、single-full、またはbatchの子タスクを含められます。 - バッチタスクを、異種の役割、行をまたぐ依存関係、または共有書き込み範囲がある場合に使ってはいけません。
単一タスク
単一タスクでは、2 つの実行プロファイルをサポートすることで、従来の LITE/FULL の動作との後方互換性を維持します。
コンパクト単一タスク
短く直線的で、復旧ログやキャッシュされた調査成果物を必要としないタスクには、コンパクト単一タスクを使います。
- ファイル:プロジェクトルートの
TODO.csvのみ - テンプレート:compact_todo_template.csv
- ステータスセット:
TODO | IN_PROGRESS | DONE - 最適な用途:短いドキュメント編集、小規模な整理、簡単な名前変更タスク
コンパクト単一タスクの例:
id,task,status,completed_at,notes
1,Locate root cause,IN_PROGRESS,,
2,Implement fix,TODO,,
3,Run verification,TODO,,
フル単一タスク
すべてのコード変更、長時間かかるタスク、またはコンテキストのリセット後も継続する必要がある作業には、フル単一タスクを使います。これは単一タスクのデフォルトの方法です。
- ファイル:
.codex-tasks/<task-name>/SPEC.md、TODO.csv、PROGRESS.md、raw/ - テンプレート:
- ステータスセット:
TODO | IN_PROGRESS | DONE | FAILED - 最適な用途:コード実装、バグ修正、リファクタリング、数時間にわたる作業
フル単一タスクのディレクトリ例:
.codex-tasks/20260313-auth-fix/
├── SPEC.md
├── TODO.csv
├── PROGRESS.md
└── raw/
単一タスクのルール
- 新しいステップを始める前に、作業中の
TODO.csvを読み直します。 TODO.csvはリーフレベルのタスクのみを記載します。フェーズ、子プロジェクト、バッチ行を保存してはいけません。- 検証を自動化できない場合に限り
echo SKIPを使い、その理由を記録します。 - 再試行が 5 回に達した場合は、明示的に戦略を変更するか、タスク形式を切り替えます。
Epic タスク
Epic タスクは、複数の成果物や依存関係の連鎖にまたがる大規模な作業を調整するための親タスクの形式です。
- ファイル:
.codex-tasks/<epic-name>/EPIC.md.codex-tasks/<epic-name>/SUBTASKS.csv.codex-tasks/<epic-name>/PROGRESS.md.codex-tasks/<epic-name>/tasks/<child-task>/...
- テンプレート:
- ステータス:
TODO | IN_PROGRESS | DONE | FAILED - 最適な用途:複数モジュールにまたがる機能、段階的なリファクタリング、明確な子タスクの成果物がある長期プロジェクト
Epic ディレクトリの例:
.codex-tasks/20260313-billing-epic/
├── EPIC.md
├── SUBTASKS.csv
├── PROGRESS.md
└── tasks/
├── 20260313-api/
├── 20260313-frontend/
└── 20260313-docs/
Epic のワークフロー:
EPIC.mdで全体目標と成果物の範囲を定義します。SUBTASKS.csvに子タスクを登録し、task_type、依存関係、task_dirを指定します。depends_on:複数の依存関係 ID を列挙するには;を使用します(例:1;2)。空欄の場合、依存関係はありません。
- 各子タスクを、それぞれ独自の Single または Batch プロトコルで実行します。
- 子タスクの検証結果を
SUBTASKS.csvと親のPROGRESS.mdに反映します。 - すべての子タスクの行が
DONEになり、最終検証に合格した場合にのみ Epic を完了します。
1 つのタスクファイルが実行計画ではなくプロジェクト管理のようになり始めたら、単一の TODO.csv ではなく Epic を使用してください。
Batch タスク
Batch タスクは、spawn_agents_on_csv を通じて実行する、一貫性のある行単位の作業向けです。単独のタスクとしても、Epic 内の子タスクとしても使用できます。
- ファイル:
.codex-tasks/<task-name>/SPEC.md.codex-tasks/<task-name>/TODO.csv(大まかな手順を3~5個記載).codex-tasks/<task-name>/PROGRESS.md.codex-tasks/<task-name>/batch/BATCH.md.codex-tasks/<task-name>/batch/workers-input.csv.codex-tasks/<task-name>/batch/workers-output.csv.codex-tasks/<task-name>/raw/
- テンプレート:
- 最適な用途:大量のファイル監査、大量のメタデータ更新、行ごとの構造化分析
Batch ディレクトリの例:
.codex-tasks/20260313-doc-audit/
├── SPEC.md
├── TODO.csv
├── PROGRESS.md
├── batch/
│ ├── BATCH.md
│ ├── workers-input.csv
│ └── workers-output.csv
└── raw/
Batch の適格性チェックリスト
以下のすべてに当てはまる場合にのみ、Batch タスクを使用してください。
- 1つの指示テンプレートですべての行を記述できる。
- 各行は独立しており、個別に再試行できる。
- 出力を
output_schemaの構造化フィールドで表現できる。 - 書き込み対象が重複しない、または Batch が読み取り専用である。
Batch のライフサイクル
- 親の
TODO.csvから、真に行単位で一貫性のある手順を特定します。 batch/BATCH.mdを作成し、以下を定義します。- 指示テンプレート
id_columnoutput_schemamax_workersmax_runtime_secondsoutput_csv_path
- 計画手順ではなく、実際の成果物から
workers-input.csvを作成します。 id_column、output_schema、max_workers、max_runtime_seconds、output_csv_pathを明示して、spawn_agents_on_csvを実行します。workers-output.csvを確認します。失敗した行はそのまま残し、フィルタリングした入力 CSV を使って再試行できます。- 集約結果を親の
PROGRESS.mdに反映し、その後でのみ親の手順をDONEにします。
Batch 手順の例:
id,task,status,acceptance_criteria,validation_command,completed_at,retry_count,notes
1,Build workers-input.csv,IN_PROGRESS,batch/workers-input.csv exists,test -f batch/workers-input.csv,,0,
2,Run spawn_agents_on_csv,TODO,batch/workers-output.csv exists,test -f batch/workers-output.csv,,0,
3,Merge row results,TODO,Failed rows are handled and summary is written,test -f PROGRESS.md,,0,
混合形式
- 1つの実行ストリームに一貫性がなくなった場合、Single タスクを Epic に昇格できます。
- Single または Epic の子タスクの手順から、一貫性のある作業を Batch に委任できます。
- 現在のレイヤーの正となるファイルのみを使用します。
- 手順の計画には
TODO.csv - 子タスクの状態には
SUBTASKS.csv - 行ごとの結果には
workers-output.csv
- 手順の計画には
タスク途中での形式昇格
複雑さが現在の形式で対応しきれなくなった場合、その場で昇格します。
Single → Epic
- 既存の
SPEC.mdの目標をもとに、.codex-tasks/<task-name>/EPIC.mdを作成します。 - 残りの
TODO.csvの行をSUBTASKS.csvの子タスク項目に変換します。 - 元の
SPEC.md、TODO.csv、PROGRESS.mdを最初の子タスクとしてtasks/<original-task>/に移動します。 - 追加の成果物用に新しい子タスクディレクトリを作成します。
- 昇格した理由を親の
PROGRESS.mdに記録します。
単一/エピックのステップ → バッチ
TODO.csvまたはSUBTASKS.csvの行を確認し、実際には同質の N 個の項目である行を特定します。- その行を、「入力を作成 → ワーカーを実行 → 結果を統合」という3ステップのバッチシーケンスに置き換えます。
BATCH.mdとworkers-input.csvを含むbatch/ディレクトリを作成します。- バッチの統合が完了するまで、親ステップは
IN_PROGRESSのままにします。 - 委任内容を
PROGRESS.mdに記録します。
検証ルール
- 新しいステップを開始する前に、アクティブな正本ファイルを読み直します。
- 子サブタスクまたはバッチの行が統合基準を満たしていない場合、親タスクは成功を宣言できません。
- 再試行回数を明示します。
- Full、Epic、Batch の各形式では、取得した生データを
raw/に保持します。 - 作業が異種の場合は、無理に Batch にせず、専用のマルチエージェントフローを使用します。
コンテキスト復元プロトコル
状態を完全に復元できる最小限の成果物セットを使用します。
- コンパクトな単一タスク:
TODO.csvを読み、最初のDONE以外の行から再開します。 - 完全な単一タスク:
SPEC.md、TODO.csv、次にPROGRESS.mdの復旧ブロックを読みます。 - エピックタスク:
EPIC.md、SUBTASKS.csv、親のPROGRESS.md、次に現在の子タスクディレクトリを読みます。 - バッチタスク:
SPEC.md、TODO.csv、batch/BATCH.md、batch/workers-output.csv、次にPROGRESS.mdの復旧ブロックを読みます。
すべての復旧メッセージには、次の項目を含める必要があります。
任务:目標形态:single-compact | single-full | epic | batch进度:X/Y当前:現在のステップ、子タスク、または失敗した行のセット文件:アクティブな正本成果物のパス下一步:次に行う具体的なアクション
出力要件
すべてのステータス更新には、次の項目を含める必要があります。
任务:1行で示す目標形态:現在のタスク形式进度:完了したステップまたは行の数(X/Y)当前:アクティブなステップ、子タスク、またはバッチ段階验证:最新の検証コマンドと結果文件:アクティブなタスクディレクトリまたは正本成果物