エンジニアの皆さん、ClaudeCodeを使っていて「あれ、さっきどこまで実装したんだっけ?」「セッション切れちゃったけど進捗どうなってる?」と困った経験はありませんか?2026年1月22日にリリースされたClaudeCodeのTasks機能は、まさにそんな悩みを解決してくれる革新的な機能なんです。従来のTodos機能から大幅にパワーアップしたこの新機能、実は知らないと損する便利な使い方がたくさんあります。
- ClaudeCodeのTasks機能は2026年1月22日リリースの最新機能で、複数セッション間でタスクを共有できる革新的な進化を遂げたこと
- 依存関係の自動管理やJSONベースの永続化により、長期プロジェクトでも進捗を見失わない安心感が得られること
- 並列開発や仕様駆動開発など、実務で即活用できる具体的なシーンが豊富に存在すること
ClaudeCodeのTasks機能って一体なに?

AIのイメージ
ClaudeCodeのTasks機能は、AnthropicがClaudeCodeバージョン2.1.16で導入したタスク管理システムです。簡単に言えば、AIエージェントであるClaudeCodeが複雑な開発作業を細かいタスクに分解し、それぞれの進捗を追跡してくれる機能なんです。
この機能の最大の特徴は、複数のClaudeCodeセッションやサブエージェント間でタスクリストを共有できる点にあります。従来のTodos機能では、セッションを終了するとタスクリストが消えてしまうという致命的な欠点がありましたが、Tasks機能ではファイルシステムに永続化されるため、いつでもどこからでも進捗を確認できるようになりました。
具体的には、ホームディレクトリの~/.claude/tasks/配下にJSONファイルとして保存され、各タスクには「id」「subject」「description」「status」「blocks」「blockedBy」といった情報が構造化されて格納されます。現在は最大10個までのタスクを同時に管理でき、/tasksコマンドを実行するだけで進行中のタスク一覧を瞬時に確認できます。
従来のTodosとの決定的な3つの違い
ClaudeCodeを以前から使っていた方なら「Todosとどう違うの?」と疑問に思うかもしれません。実は、TodosとTasksには設計思想レベルでの大きな違いがあります。
まず最も重要な違いは、永続化の仕組みです。Todosはメモリ上に存在する一時的なチェックリストで、セッションを終了すると消えてしまいました。対してTasksはファイルシステムに保存されるため、ターミナルを閉じてもマシンを再起動しても、タスクの状態が保持されます。これにより、数日にわたる長期プロジェクトでも安心してタスク管理ができるようになりました。
次に、依存関係の管理機能が挙げられます。TasksではDAG(有向非巡回グラフ)を用いて、タスク間の依存関係を明示的に管理できます。「タスク2はタスク1が完了しないと始められない」といった関係性を「blocked by #1」という形で表現でき、ClaudeCode自身がこの順序を理解して作業を進めてくれます。これは単純なリスト形式だったTodosにはなかった強力な機能です。
そして三つ目が、セッション間共有とコラボレーションです。CLAUDE_CODE_TASK_LIST_ID環境変数を設定することで、複数のClaudeCodeインスタンスが同じタスクリストを参照できます。別のターミナルタブで起動したClaudeCodeでも、同じプロジェクトのタスク進捗が見えるため、複数の作業を並行して進めたり、チームメンバーと進捗を共有したりすることが可能になりました。
Tasks機能の5つの便利ポイントを実例で解説
ここからは、Tasks機能が実際にどう便利なのか、5つのポイントに絞って具体例とともにご紹介します。
1. コンテキストウィンドウの節約が劇的に改善する点は見逃せません。ClaudeCodeを使っていると、会話が長くなるにつれてコンテキストウィンドウが圧迫され、レスポンスが遅くなったり、過去の指示を忘れたりする問題がありました。Tasks機能では、タスクの計画がディスク上に保存されるため、/clearや/compactコマンドでコンテキストをクリアしても、プロジェクトの全体像を失わずに済みます。
2. 複数セッションでの並列作業が可能になった点も大きなメリットです。例えば、README作成を4つのセクション(概要、セットアップ、使い方、参考リンク)に分割してタスク化した場合、別々のターミナルタブでClaudeCodeを起動し、それぞれが異なるタスクを同時進行できます。あるセッションが概要セクションを書いている間に、別のセッションが参考リンクを集める、といった具合です。
3. サブエージェントとの協調作業もスムーズになりました。ClaudeCodeは複雑なタスクを実行する際にサブエージェントを起動することがありますが、Tasks機能によってメインエージェントとサブエージェント間でタスクリストを共有できます。これにより、サブエージェントが「今どのタスクに取り組むべきか」を正確に把握し、全体の作業フローに沿った実装が可能になります。
4. 長時間実行タスクの進捗可視化も実現しました。大量のファイル生成やマイグレーション、複数モジュールにまたがるリファクタリングなど、数十分から数時間かかる作業では、途中で進捗を確認したくなります。Tasks機能なら、別のターミナルから/tasksコマンドを実行するだけで「今どこまで進んでいるか」が一目瞭然です。
5. 仕様駆動開発(SDD)との相性の良さも特筆すべき点です。仕様書作成から設計、実装、テスト、ドキュメント作成まで段階的に進める開発スタイルでは、各フェーズの依存関係が重要になります。Tasks機能の依存関係管理により、「仕様書が完成しないと設計に着手できない」といった制約を自動で守りながら開発を進められます。
実務で即使える4つの活用シーン
理論はわかったけど、実際どう使えばいいの?という声にお答えして、実務で即活用できる具体的なシーンを4つご紹介します。
まず、GitHubのIssueと連携した開発フローです。GitHub CLIと組み合わせることで、IssueをClaudeCodeが自動的に読み取り、Tasks機能でタスク分割して実装を進めることができます。実装が完了したらPull Requestを自動作成し、さらにコードレビューコメントへの対応もTasksで管理できます。この一連の流れを自動化することで、開発速度が劇的に向上します。
次に、複数プロジェクトの並行作業です。CLAUDE_CODE_TASK_LIST_IDを使って、プロジェクトごとに異なるタスクリストIDを設定します。例えば「CLAUDE_CODE_TASK_LIST_ID=project-A claude」と「CLAUDE_CODE_TASK_LIST_ID=project-B claude」を別々のターミナルで起動すれば、プロジェクトAとプロジェクトBのタスクを完全に分離して管理できます。
三つ目は、チーム開発での進捗共有です。同じCLAUDE_CODE_TASK_LIST_IDを設定すれば、チームメンバーが自分のターミナルから進捗を確認できます。「タスク3まで終わったらレビューするね」といったコミュニケーションがスムーズになり、非同期での協業が容易になります。
最後に、暇つぶしタスクの活用です。テストの拡充、CI/CDの強化、リファクタリング、ドキュメント生成など、重要だけど緊急性の低い改善タスクをTasksに登録しておき、手が空いたときにClaudeCodeに実装させる運用が効果的です。完璧を求めず「今より良くなればOK」という気持ちで任せることで、開発効率が大幅に向上します。
現場で本当に役立つTasksプロンプト実例集

AIのイメージ
Tasks機能を使いこなすには、ClaudeCodeにどう指示するかが超重要なんです。ここでは、実際に現場で効果を発揮している即戦力プロンプトを状況別にご紹介します。
タスク分割を依頼するときの鉄板プロンプト「このプロジェクトをTasksで管理したい。以下の要件を4〜8個のタスクに分割して、依存関係も設定してTaskCreate で登録して。各タスクは1〜2時間で完了できる粒度にしてほしい。」このプロンプトのポイントは、タスクの粒度を明示することで、大きすぎず小さすぎない適切なサイズでタスク分割してもらえることです。
並列作業を始めるときのプロンプト「CLAUDE_CODE_TASK_LIST_ID=website-renewal で共有タスクリストを作成して。タスクは以下の通りトップページのデザイン実装、問い合わせフォームのバックエンド実装、SEO対策の設定。それぞれ独立して進められるようにblocks設定は不要で、すべてpendingで作成して。」このように明確に独立性を指示することで、複数セッションでの並行作業がスムーズになります。
進捗確認と次のタスク開始のプロンプト「/tasks で現在のタスク状況を確認して。pending状態のタスクの中で、blockedByの条件をクリアしているものを1つ選んで実装を開始して。完了したらstatusをcompletedに更新して。」このプロンプトなら、ClaudeCodeが自動的に次に取り組むべきタスクを判断してくれます。
タスクの優先順位変更プロンプト「タスク#3の優先度が上がったので、このタスクのblockedByを削除して今すぐ着手可能にして。ただし、タスク#5がタスク#3に依存するように依存関係を更新して。」実際の開発では優先順位が変わることはよくありますから、このプロンプトを覚えておくと便利です。
サブタスク追加のプロンプト「タスク#2を進めていたら、想定外に複雑だと判明した。このタスクを3つのサブタスクに分割して、元のタスク#2は親タスクとして残しつつ、新しいサブタスク#2-1, #2-2, #2-3を作成して。依存関係も適切に設定して。」タスク実行中に粒度調整が必要になるケースに対応できます。
体験から学んだ!よくあるトラブルと即効解決法
Tasks機能を使っていると、必ずと言っていいほど遭遇するトラブルがあります。私が実際に経験した問題と、その解決方法を包み隠さずお話しします。
問題1「タスクが勝手に消えた!」事件。これ、本当に焦りますよね。実はこれ、すべてのタスクがcompletedになると自動的にJSONファイルが削除される仕様が原因です。私の場合、「あとで振り返りたいから履歴を残したい」というニーズがあったので、Claude Code Hooksを使ってタスク完了時に自動バックアップするようにしました。~/.claude/hooks.jsonに以下のような設定を追加することで、タスク完了時に別フォルダに履歴をコピーできます。「task_list_complete」フックで「cp ~/.claude/tasks/* ~/task_history/$(date +%Y%m%d)/」といったスクリプトを実行すれば、日付ごとにタスク履歴が保存されます。
問題2「複数セッションで同じタスクを重複して進めちゃった」問題。チーム開発あるあるですが、2人が同時に同じタスクに着手してしまい、無駄な作業が発生することがあります。これを防ぐために、私はタスク着手前に必ずTaskUpdateでstatusをin_progressに更新するルールをチームで徹底しました。具体的には「タスク#3に着手する前に、まずTaskListで状態確認して。statusがpendingなら自分がin_progressに更新してから実装開始。もしすでにin_progressなら別のタスクを選んで。」というプロンプトをテンプレート化しています。
問題3「依存関係が複雑すぎてデッドロック状態に」。タスクAがタスクBを待ち、タスクBがタスクCを待ち、タスクCがタスクAを待つ…という循環依存が発生してしまったことがあります。これはDAGの原則に反するので、ClaudeCodeも混乱します。解決策は定期的に/tasksで全体像を確認し、依存関係を可視化することです。また、タスク作成時に「依存関係は必ず一方向にして、循環参照は避けて」と明示的に指示することで予防できます。
問題4「タスクの粒度が大きすぎて進捗が見えない」。「フロントエンド全体の実装」みたいな巨大タスクを作ってしまうと、何時間たっても完了せず、進捗感がゼロでモチベーションが下がります。私の経験則では、1タスクは最長でも2〜3時間で完了できる粒度にするのがベストです。それ以上かかりそうなら、最初から分割するようClaudeCodeに依頼します。「各タスクは90分以内に完了できる単位で分割して」と具体的な時間を指定するのがコツです。
問題5「セッション再開時にコンテキストが引き継がれない」。Tasks機能は進捗は保存されますが、実装の詳細や決定事項までは保存されません。これを解決するために、私は重要な決定事項やアーキテクチャ情報をCLAUDE.mdファイルに記載するようにしています。さらに、タスクのdescriptionフィールドに詳細情報を残しておくと、セッション再開時にClaudeCodeがスムーズに作業を継続できます。
パフォーマンスを最大化する高度な設定テクニック
Tasks機能をさらに使いこなすための、あまり知られていない高度なテクニックをご紹介します。これらは公式ドキュメントにも載っていない、現場で試行錯誤して発見した知見です。
Tool Search Toolとの併用でコンテキスト消費をゼロにする方法があります。~/.claude/settings.jsonのenvでENABLE_TOOL_SEARCHをtrueに設定すると、MCP含めすべてのツールが遅延読み込みになります。これをTasks機能と組み合わせることで、起動時のコンテキスト消費を最小限に抑えられます。特に複数のMCPサーバーを設定している環境では、この設定により起動時のコンテキスト使用率が50%から0%になり、実質的に使える容量が2倍になります。
タスク完了時の自動通知設定も便利です。Claude Code Hooksの「task_completed」イベントを使って、macOSなら「osascript -e ‘display notification “タスク完了!” with title “Claude Code”‘」、Linuxなら「notify-send “Claude Code” “タスク完了!”」といったコマンドを実行できます。長時間タスクを実行している間に別作業をしていても、完了したらすぐ気づけるので作業効率が段違いです。
タスクリストのJSON直接編集も知っておくと役立ちます。~/.claude/tasks/プロジェクト名/配下のJSONファイルを直接編集することで、ClaudeCodeが生成したタスクを手動で微調整できます。例えば、descriptionをより詳細にしたり、依存関係を調整したりするとき、ClaudeCodeに指示するより直接編集した方が早い場合があります。ただし、ClaudeCodeの実行中に編集すると不整合が起きる可能性があるので、必ずセッション停止中に編集してください。
タスクテンプレートのSkills化も効果的です。頻繁に発生するタスクパターン(例新機能開発、バグ修正、リファクタリング)をSkillsとして定義しておくと、毎回同じタスク構成を再現できます。例えば、new-feature.mdというSkillを作成し、「要件定義→設計→実装→テスト→ドキュメント作成」という定型的なタスクフローを定義しておけば、「/new-feature 決済機能」と実行するだけで、決済機能開発に必要な全タスクが自動生成されます。
チーム開発で活きる運用ノウハウ
Tasks機能は個人開発でも便利ですが、チーム開発で真価を発揮します。ただし、適切な運用ルールがないとカオスになるので、実践的なベストプラクティスをご紹介します。
タスクリストIDの命名規則を統一することは必須です。私たちのチームでは「プロジェクト名-機能名-yyyymmdd」という形式を採用しています。例えば「webapp-payment-20260205」のように、何のタスクリストか一目でわかる名前にすることで、間違ったタスクリストで作業してしまうミスを防げます。
タスクのassignee管理も重要です。Tasks機能には担当者フィールドがないので、subjectに「 ユーザー認証機能の実装」のように担当者名を含める運用が効果的です。こうすることで、/tasksコマンドで一覧表示したときに誰がどのタスクを担当しているか即座に把握できます。
定期的なタスクレビュー会を設けることもお勧めします。週に1回、チーム全員で/tasksを確認し、進捗状況や詰まっているタスクを共有します。このとき、ClaudeCodeに「すべてのタスクの進捗サマリーをMarkdown形式で作成して」と依頼すれば、レビュー用の資料が自動生成されるので便利です。
緊急タスクの割り込み対応も現実的な課題です。通常のタスクフローに緊急対応が割り込むとき、既存のタスクリストを壊さないよう、緊急タスク専用のタスクリストID(例プロジェクト名-hotfix-日付)を作成し、別管理することで本来のタスクフローを維持できます。
コスト最適化の実践的アプローチ
Tasks機能は便利ですが、長時間の自律実行やサブエージェントの大量起動はコストがかさみます。実際に月額コストを30%削減できた方法をお伝えします。
タスクの事前設計で無駄な試行錯誤を削減するのが最も効果的です。いきなりClaudeCodeにタスク作成を丸投げするのではなく、Plan modeで実装方針を固めてからTasks化することで、実装中の手戻りを減らせます。私の経験では、事前に15分の設計時間を取ることで、実装時間が平均40%短縮され、結果的にトークン消費も大幅に減りました。
Headlessモードの活用も見逃せません。「claude -p –auto-approve」でヘッドレスモードで起動し、定型的なタスクを無人実行させることで、インタラクティブな会話によるコンテキスト消費を抑えられます。特にテスト追加やドキュメント生成など、確認不要なタスクはヘッドレスで実行するのが賢明です。
タスクの粒度管理による効率化も重要です。タスクが細かすぎると、タスク間の切り替えオーバーヘッドでコンテキストが無駄に消費されます。逆に大きすぎると、失敗時のやり直しコストが増大します。最適な粒度は「1タスク=1〜2時間」を目安にすることで、コストパフォーマンスが最大化します。
サブエージェントの起動回数を意識することも大切です。Claude Code v2.1.17でサブエージェント使用時のメモリクラッシュが修正されましたが、それでもサブエージェントはメインセッションよりコストがかかります。タスク設計時に「このタスクはサブエージェント不要」と明示することで、不要なサブエージェント起動を防げます。
失敗から学んだ!やってはいけないアンチパターン
成功事例だけでなく、失敗事例から学ぶことも多いです。私が実際に痛い目に遭ったTasks機能のアンチパターンを共有します。
アンチパターン1「タスク数上限ギリギリの10個で運用」。最大10個まで作れるからといって、常に10個で運用すると、新しい緊急タスクが発生したときに柔軟に対応できません。実際、私は10個フル稼働中に致命的なバグが見つかり、既存タスクを無理やりcompletedにして削除するハメになりました。常に2〜3個の余裕を残す運用が安全です。
アンチパターン2「タスクのdescriptionを省略」。subjectだけ設定してdescriptionを空にすると、セッション再開時やサブエージェントがタスクの詳細を理解できず、実装方針がブレます。descriptionには「なぜこのタスクが必要か」「どう実装すべきか」を必ず記載しましょう。
アンチパターン3「タスク完了前に次のタスクに着手」。進捗を急ぐあまり、タスクAが70%完了の段階でタスクBに着手すると、タスクAの未完了部分が放置され、結局後で修正コストが発生します。1タスクずつ確実に完了させる方が結果的に速いです。
アンチパターン4「依存関係の過度な設定」。すべてのタスクに依存関係を設定すると、1つのタスクが遅延した際に全体がストップします。本当に必須の依存関係だけを設定し、できる限り並列実行可能な設計にすることが重要です。
アンチパターン5「タスクリストIDの使い回し」。過去のプロジェクトで使ったタスクリストIDを新規プロジェクトで再利用すると、古いタスク情報が残っていて混乱します。プロジェクトごとに必ず新しいIDを使いましょう。
ぶっちゃけこうした方がいい!
ここまでいろいろ解説してきましたが、正直なところ、Tasks機能って「完璧に使いこなさなきゃ」と気負う必要はまったくないんですよ。むしろ、ゆるく始めて徐々に洗練させていくスタイルが一番うまくいきます。
個人的には、最初の1週間は「とりあえずタスク作らせてみる」だけでいいと思います。CLAUDE_CODE_TASK_LIST_IDも設定せず、普通にClaudeCodeに「タスク分割して」って頼むだけ。それで感覚をつかんでから、「あ、これセッション間で共有できたら便利だな」って思ったタイミングで環境変数設定すればいい。一気に全機能を使おうとすると、設定やルールに振り回されて本末転倒になります。
それと、チーム開発でも最初から厳密なルールは作らない方がいいです。週1回の「Tasks雑談会」みたいな軽いノリで、「今週このプロンプトが便利だった」「こういう失敗した」って情報交換するだけで、自然とチームのベストプラクティスが確立されます。トップダウンで運用ルールを押し付けるより、現場から湧き上がる知見の方が圧倒的に定着しやすいんです。
あと、これめちゃくちゃ大事なんですけど、Tasks機能に完璧を求めないこと。タスクが途中で消えても、依存関係がおかしくなっても、「まあそういうこともあるよね」くらいのメンタリティが重要です。結局、ClaudeCodeは人間より速くコードを書いてくれるんだから、多少の手戻りがあっても従来の手作業より圧倒的に速いんですよ。完璧主義になって、設定ファイルいじったりルール作りに時間かけるより、「とりあえず動かす」「失敗したら次改善する」というアジャイル的アプローチの方が、結果的に開発速度も上がるし、ストレスもたまりません。
最後にもう一つ。Tasks機能って、実は「AIに仕事を任せる練習」なんだと思うんです。今後、AIエージェントがもっと進化して、さらに複雑な仕事を自律的にこなすようになったとき、人間側に求められるのは「適切にタスクを分解して指示する能力」と「AIの仕事を信頼しつつも適度に監視する能力」です。Tasks機能を使い込むことで、この2つのスキルが自然と身につきます。だから、単なる便利ツールじゃなくて、これからの時代のエンジニアに必須の「AIマネジメント能力」を磨くトレーニングだと捉えると、楽しく使い続けられますよ。完璧を目指さず、楽しみながら、ちょっとずつ自分なりの使い方を見つけていく。それが一番効率的で、長続きする秘訣です。
よくある質問
タスクは完了後も保存されるの?
いいえ、2026年1月時点では、すべてのタスクが完了するとJSONファイルが自動的に削除される仕様です。履歴として残したい場合は、Hooksを使ってJSONファイルを別フォルダに退避させる工夫が必要です。
タスクの最大数10個って少なくない?
確かに大規模プロジェクトでは物足りなく感じるかもしれません。ただし、これは意図的な設計で、タスクを細かく分割しすぎないよう促す狙いがあります。本当に大きなタスクは、さらに小さなサブプロジェクトに分割してそれぞれ別のタスクリストIDで管理することをお勧めします。
既存のTodosは使えなくなるの?
いいえ、環境変数CLAUDE_CODE_ENABLE_TASKSをfalseに設定することで、従来のTodosに戻すことも可能です。ただし、Tasksの方が機能的に優れているため、移行を検討することをお勧めします。
Windowsでの設定方法は?
Windows環境では、PowerShellの場合は「$env:CLAUDE_CODE_TASK_LIST_ID=”プロジェクト名”; claude」、コマンドプロンプトの場合は「set CLAUDE_CODE_TASK_LIST_ID=プロジェクト名 && claude」というコマンドで起動します。
CursorのPlanモードとどう違う?
CursorのPlanモードは実装レベルの進捗管理に留まりますが、ClaudeCodeのTasksは依存関係の管理、セッション間共有、JSONによる構造化など、より包括的なプロジェクト管理機能を提供します。特に複数セッションでの並行作業はTasksならではの強みです。
まとめ
ClaudeCodeのTasks機能は、従来のTodosから大きく進化し、実務レベルで使える本格的なタスク管理システムになりました。セッション間でのタスク共有、依存関係の自動管理、ファイルシステムへの永続化という3つの柱により、長期プロジェクトでも安心してAIエージェントに開発を任せられるようになりました。
特に便利なのは、複数セッションでの並列作業、コンテキストウィンドウの効率的な管理、GitHubとの連携、仕様駆動開発への対応という4つのポイントです。これらを活用することで、開発速度を大幅に向上させながら、品質も維持できます。
2026年2月現在、Tasks機能はまだ進化を続けており、今後さらに強力な機能が追加される可能性があります。早めに使い始めて、自分なりの活用方法を確立しておくことをお勧めします。AIエージェントとの協業が当たり前になる時代、Tasks機能はその核となる重要な機能になるでしょう。ぜひこの記事を参考に、ClaudeCodeのTasks機能を使いこなして、開発効率を次のレベルに引き上げてください!


コメント