Claude Code タスク管理
TaskCreate、TaskUpdate、addBlockedBy、そして共有タスクリストを使って、Ralph Wiggum 的な回避策なしに並列の Claude Code セッション間で依存関係のある作業を実行する方法。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。
問題: 自律的な Claude Code ループを維持するには、かつては Ralph Wiggum 的なハックが必要でした。外部のプランファイル、ストップフック、完了を約束するプロンプトが長時間の実行を支えていました。それは機能しましたが、セッション間でコンテキストを維持するために大量のガムテープが必要でした。
すぐに試せる方法: Anthropic がタスク管理をファーストクラスの機能として提供しました。依存関係を持つ永続タスクを起動できます:
claude "add user authentication - break into tasks with dependencies"
ターミナルで Ctrl+T を押してタスクリストを表示しましょう。タスクはセッションをまたいで保持されます。何をしていたか再説明する必要はありません。
タスク: Todo のアップグレード版
Anthropic は 2025年1月23日に新しいタスクシステムをリリースしました。かつてのフラットなチェックリストは、依存関係・ブロッカー・セッション間のリアルタイム同期を持つプロジェクトトラッカーになりました。
以前の TodoWrite ツールはシンプルなリストをメモリに保持していました。今日のシステムは4つの専用ツールに役割を分けています:
| ツール | 目的 |
|---|---|
| TaskCreate | 件名・説明・ステータス表示付きでタスクを作成する |
| TaskGet | 依存関係を含むタスクの詳細を取得する |
| TaskUpdate | ステータスの更新、ブロッカーの追加、詳細の変更 |
| TaskList | 現在の状態とともにすべてのタスクを一覧表示する |
何が変わったか
以前の挙動: Todo は Claude のメモリに保存され、コンテキストリセットで消えた。新しい挙動: タスクはリポジトリ内ではなくホームディレクトリの ~/.claude/tasks/ に保存され、更新はすべてのオープンセッションに配信されます。
以前の Todo の教訓はまだ有効です。タスクは指示の質と同じ品質になり、不一致があれば指示の問題を示しています。新しい部分はその下にあるもの、つまりツールに組み込まれた永続性と依存関係です。
タスク vs Ralph Wiggum: 何が変わるか
Ralph Wiggum が先に道を切り開きました。ストップフック・ディスク上のプランファイル・完了を約束するプロンプトで Claude Code を夜通し動かし続けました。そのレシピは機能しました。しかし回避策に大きく依存していました。
これらの回避策にネイティブな代替品ができました:
| Ralph の回避策 | ネイティブタスクのソリューション |
|---|---|
| 追跡用の外部 plan.md ファイル | ~/.claude/tasks/(ホームディレクトリ)への組み込みストレージ |
| 完了確認のためのストップフック | ステータスライフサイクル: pending → in_progress → completed |
| コンテキスト劣化対策のための新規セッション | タスクはコンテキストのコンパクト化を経ても保持される |
| 完了の約束(「complete」) | ステータスを伴う明示的な TaskUpdate |
| 手動の進捗ファイル調整 | マルチセッション同期のための CLAUDE_CODE_TASK_LIST_ID |
コアの教訓は変わりません: 検証こそがすべてを支えます。Ralph は Claude に「完了」の意味を明確にするハードルールが必要だと示しました。ネイティブタスクはそのアイデアを受け継ぎ、配線をツール自体に移しました。
まだ Ralph ループを使っていますか?必ずしも削除する必要はありません。タスクはコミュニティが縫い合わせてきたプリミティブをただ提供しているだけです。Anthropic は開発者が何をしているかを観察してそれをネイティブにしました。
タスクの依存関係とブロッカー
依存関係こそがタスクを面白くする部分です。タスクが別のタスクをブロックできます:
Task 1: Design database schema
Task 2: Create API endpoints (blocked by Task 1)
Task 3: Build frontend components (blocked by Task 2)Claude が帳簿管理をします。Task 1 が完了すると Task 2 が自動的にアンロックされます。並列作業が互いに邪魔しなくなります。
依存タスクの作成
Claude が大きな仕事を分割するとき、作業しながら依存関係のチェーンを組み立てます:
TaskCreate(subject="Design auth schema", description="...")
TaskCreate(subject="Implement auth API", description="...")
TaskUpdate(taskId="2", addBlockedBy=["1"])チェーンは addBlockedBy パラメーターを通して行われます。その逆の addBlocks は、タスクが何をブロックしているかを指定できます。
マルチセッションコラボレーション
ここでツールが真価を発揮します。環境変数で複数のセッションが同じタスクリストを共有できます:
CLAUDE_CODE_TASK_LIST_ID=my-project claude
これで同じ ID を指定したすべての Claude セッションが同じリストで作業します。セッション A でタスクを完了すると、セッション B はすぐに更新を確認できます。これにより:
- 並列ワークストリーム: フロントエンドとバックエンドのセッションがブロッカーを共有
- どこからでも再開: ラップトップを閉じて翌日開いても、タスクはそのまま
- チームの調整: 複数の開発者がタスクの状態を共有
実践的なマルチセッションワークフロー
- メインセッションを開いてタスクリストに名前を付ける:
CLAUDE_CODE_TASK_LIST_ID=feature-auth claude
2. 作業をタスクに分解して依存関係を設定する
- 並列作業のために同じ ID で2つ目のセッションを開く:
CLAUDE_CODE_TASK_LIST_ID=feature-auth claude # Same ID
4. 両方のセッションが共有タスクリストを確認・更新できる
Agent SDK は同じリストを尊重するため、サブエージェントがタスクを引き継いで完了させることができます。
タスクのステータスライフサイクル
pending → in_progress → completed
作業を開始したらすぐにタスクを in_progress に切り替えましょう。タスクリストにスピナーが表示され、他のセッションがその作業が進行中であることを把握します。作業が実際に完了したときのみ completed に移動させましょう。
タスクはコンテキストのコンパクト化を経ても生き続けます。Claude のメモリが圧縮される長時間セッションでも、タスクの状態はそのまま残ります。
キーボードショートカット
Ctrl+T でターミナル内のタスクリストを開閉できます。表示されるもの:
- 保留中のタスク(一度に最大10件)
- スピナー付きの進行中タスク
- チェックマーク付きの完了済みタスク
「show me all tasks」や「clear all tasks」と Claude に話しかけることでも操作できます。
タスクを使うべき場面
難しい仕事にタスクを使いましょう。シンプルな依頼にはこれらは必要ありません。
タスクを使う場合:
- 依存関係を持つ複数ステップの実装
- 複数のセッションにまたがる作業
- 並列サブエージェントの調整
- 一時停止と再開が発生するプロジェクト
タスクをスキップする場合:
- 単一ファイルの変更
- 簡単な質問
- ワンショットのコマンド
タスクの動作を設定する
CLAUDE.md にタスクルールを追加しましょう:
## Task Management
- Use TaskCreate for multi-step work
- Set dependencies with addBlockedBy for sequential phases
- Update status to in_progress before starting each task
- Mark completed only after verificationセッションをまたぐプロジェクトでは、環境変数をシェルプロファイルに入れることもできます:
# In .bashrc or .zshrc
export CLAUDE_CODE_TASK_LIST_ID=my-projectTodo からの移行
設定に TodoWrite のルールがまだある場合、書き直しましょう:
以前のアプローチ:
Keep session checklists in TodoWrite
新しいアプローチ:
Use TaskCreate for each checklist item
Update status via TaskUpdate (pending → in_progress → completed)
Set dependencies with addBlockedBy parameter/todos コマンドはエイリアスとして残っています。その裏側のエンジンは今やタスクになっています。
覚えておいてください: Ralph がアイデアを教えてくれました。タスクがそれをネイティブにしました。検証の規律を維持し、ツールに配管を任せ、手書きの状態ファイルは引退させましょう。
設定をやめて、構築を始めよう。
AIオーケストレーション付きSaaSビルダーテンプレート。