Claude にタスクを切らせて並走させたあと、「3番目どこまで進んだっけ」と細部を引っ張ってきたい人向け
Claude にタスクを5件くらい切らせて並走させたあと、みなさんが「3番目の進捗どうなった?」と聞いた瞬間に、Claude が裏で発火させる。または前のタスクの依存関係や進捗メモを Claude 自身が読み返したいときに自動で動く。みなさんが直接叩く場面はなく、日本語で「3番目どこまで進んだ?」と聞くだけで Claude が判断して呼んでくれる
TaskGet は、Claude が自分で立てたやることリストのうち、特定の1件について中身を丸ごと引っ張ってくる内蔵ツールです。リスト全体をざっと並べる TaskList が「目次を見る」係なのに対して、TaskGet は「3番目の項目を開いてページの中身を読む」係。
ユーザーがチャットに TaskGet と打って使うものではありません。Claude が自律的に発火させる側のツールで、許可ダイアログも出ずに勝手に走ります。
そもそも Claude のタスクって何のこと?
Claude Code に「料理ブログを作って」みたいな大きめの仕事を頼むと、Claude は内部でその仕事を3〜10個の小さな単位に切り分けます。たとえば「テーマ選び」「ドメイン取得」「下書き5本」みたいなレベルです。この切り分けた1件1件が「タスク」です。
切り分けたタスクは Claude の頭の中だけにあるのではなく、セッション専用のタスクリストとして保存されます。同じセッションの中で何度でも参照できるし、進捗(4種類の状態)も記録されます。
以前は TodoWrite という1本のツールで Claude がやることリストを管理していました。最近のアップデートで TaskCreate・TaskGet・TaskList・TaskUpdate の4本に分割され、TodoWrite は現在非推奨、いずれ消える予定です。TaskGet はその4分割のうち「1件分の中身を引く」係です。
インタラクティブセッションでは、最初から Task tools の方が動きます。claude -p や Agent SDK で動かしている古いスクリプトだけが、まだ TodoWrite を呼んでいる状態です。
噛み砕くと
新しい職場で先輩から「今日やる仕事を10個書き出しておいて」と言われて、模造紙に番号付きで貼り出した場面を思い浮かべてください。TaskList は「壁の模造紙を遠目に眺めて全項目をざっと読む」イメージ。TaskGet は「3番目の付箋を1枚はがして、裏に書いてあるメモまで全部読む」イメージです。
違いは情報の深さ。TaskList で見えるのは「タイトル+ステータス」くらいで、TaskGet を呼ぶと「このタスクは何をやる予定か、どこまで進んだか、誰が依存しているか、関連メモは何か」まで返ってきます。
大事な前提:TaskGet はユーザーが直接叩くものではない
Claude Code のチャット画面で TaskGet と打ち込んでも、スラッシュコマンドではないので何も起きません。これは Claude 自身が「いま3番目のタスクの詳細を確認したい」と判断したときに、裏側で勝手に呼ぶ内部ツールです。
許可ダイアログは 必要なし。つまりみなさんが「使っていいですか?」と聞かれることもありません。気付かないうちに何度も走っています。
「料理ブログを作る作業を5タスクに分けたあと、3番目の進捗を確認する」を例に、実際の動きを見る
みなさんが Claude Code に「料理ブログを作りたい。最初の1ヶ月分の段取りを切って、進めて」と頼んだ場面を想定します。Claude が裏側で TaskGet を発火させるのは、だいたい次の流れです。
ステップ1: Claude がタスクを5つに切る
Claude はまず TaskCreate を5回叩いて、こんな感じの5項目を作ります。
1. テーマ決定(和食か洋食かお菓子か)
2. ドメイン名検討
3. 1記事目「肉じゃがの黄金比」執筆
4. 写真撮影 5枚
5. WordPress 初期設定
この時点で5件とも pending です。
ステップ2: Claude が順番に作業を進める
Claude は1番から順に手を付けます。1番が終われば completed に変え、2番を in_progress にして、また終われば completed に変え…という流れです。状態の書き換えは TaskUpdate がやります。
ステップ3: みなさんが「3番目どうなった?」と聞く
1時間後、みなさんがチャットに戻ってきて「3番目のレシピ記事、どこまで進んだ?」と聞きます。
ここで Claude は「3番目の詳細を確認しに行く必要があるな」と判断して、裏で TaskGet を発火させます。TaskList で全体を見るだけだと「3番目 in_progress」までしか分からないので、本文の進捗メモ・関連メモ・依存関係まで欲しいときは TaskGet を選びます。
ステップ4: Claude が詳細を読んで答える
TaskGet が返してくる中身はだいたいこんな形です。
id: task-003
content: 1記事目「肉じゃがの黄金比」執筆
status: in_progress
notes: 見出し構成まで決定。本文は導入+材料リストまで書いた。
次に作業手順セクションを書く予定。
dependencies: task-001(テーマ決定)に依存
last_updated: 1時間前
Claude はこれを読んで、みなさんには「3番目は in_progress で、見出し構成と導入・材料リストまで終わってます。次に作業手順を書きます」と要約して返してくれます。
ステップ5: ここで初心者がやりがちな勘違いがある
「3番目どこまで進んだ?」と聞いたとき、Claude が間髪入れずに答えてくれるので、TaskGet を呼んでいることに気付きません。「Claude が記憶力よく答えてくれた」と思いがちですが、実体は裏で TaskGet が走って構造化されたデータを引っ張ってきています。
ステップ6: 続きの作業に戻る
TaskGet で詳細を確認したあと、Claude は「じゃあ作業手順セクションの執筆に戻ります」と続きを進めます。TaskGet 自体はタスクの状態を変えません、読み取り専用です。状態を変えたいときは別途 TaskUpdate を呼びます。
つまり TaskGet は何をしてくれるのか
- やってくれる: 指定された1件のタスクについて、状態・本文・進捗メモ・依存関係・更新時刻などを丸ごと取ってくる
- やってくれない: タスクの状態を変える。これは TaskUpdate の係です
- やってくれない: 全タスクの一覧を出す。これは TaskList の係です
- やってくれない: タスクを新規に作る。これは TaskCreate の係です
- 意味が薄い場面: タスクが1件しかない・タスクを切らずに直接作業を進めている場合。そもそも Claude が TaskGet を呼ぶ必要が出てきません
使いどころ3シナリオ(具体題材で再現)
シナリオ1: 家計簿アプリを作っていて、途中で前のタスクに戻りたいとき
家計簿アプリを作るために Claude にタスクを6個切らせて、4番目「グラフ表示画面の実装」まで進んだとします。ここで「2番目に作った入力フォーム、入力チェックどう書いたっけ?」と聞きたくなった場面。Claude は内部で TaskGet を発火させて2番目の詳細メモを引き出し、「メールアドレス形式と金額の正の整数チェックを入れています」と即答してくれます。10分前に話した内容なら覚えていますが、1時間前のタスクメモを Claude の頭だけで保持するのは難しい。だから構造化された記録として TaskGet が裏側で支えています。
シナリオ2: 既存プロジェクトをパソコンに持ってきた直後に、複数の調査タスクを並走させたいとき
GitHub から興味のあるプロジェクト一式を自分のパソコンに持ってきて、Claude に「このプロジェクトの構造を理解したい。READMEを読む、主要ファイルの依存関係を調べる、テスト構成を見る、の3つを並行して進めて」と頼んだ場面。Claude は3タスク作って順に進めます。途中でみなさんが「テスト構成の方どうなった?」と差し込みで聞くと、Claude は3番目のタスクについて TaskGet を発火させて、「pytest を使っていて、tests/ 配下に8ファイル、unit と integration に分かれています」と答えます。並走中の特定タスクだけピンポイントで進捗を確認できるのは TaskGet があるおかげです。
シナリオ3: 副業の Web 制作案件で、依存関係のあるタスクを進めているとき
クライアントから依頼された企業サイト制作で、「デザイン決定 → コーディング → 動作確認 → 納品」みたいに前のタスクが終わらないと次に進めない依存関係があるとします。Claude にこれら4タスクを切らせて作業を進めていると、3番目で詰まる場面が出てきます。「3番目の動作確認で何が引っかかっているか詳細を見たい」と聞くと、Claude は TaskGet で3番目の詳細を取得し、「依存しているタスク2のコーディングで CSS のスマホ対応が未完だったので、戻って2を再開する必要があります」と判断材料を返してくれます。依存関係込みで詳細が引けるのは、TaskList の概要だけでは見えない強みです。
初心者が踏みやすい落とし穴
- 「TaskGet」と入力すれば何か起きると思っている。これは Claude が裏で勝手に呼ぶ内部ツールで、ユーザー側のコマンドではありません。みなさんは普通に「3番目どこまで進んだ?」と日本語で聞けば十分。Claude が判断して TaskGet を選びます
- TodoWrite がまだ動いている環境で移行し忘れる。インタラクティブセッションでは Task tools が最初から default ですが、
claude -pや Agent SDK で動かしている古いスクリプトは TodoWrite の方を呼んでしまうことがあります。TaskGet が呼ばれている気配がないと感じたら、CLAUDE_CODE_ENABLE_TASKS=1が立っているか確認してください - TaskList と TaskGet を混同する。TaskList は全件を浅く見る、TaskGet は1件を深く見る。Claude もこの2つを使い分けています。みなさんが「全部の進捗を一覧で」と頼めば TaskList、「3番目の詳細だけ」と頼めば TaskGet が走るイメージ
- TaskGet で状態が変わると思っている。TaskGet は読み取り専用です。「3番目を completed にして」と頼んだら TaskGet ではなく TaskUpdate が動きます
- セッションをまたいで詳細が残ると思っている。タスクリストはセッション専用です。Claude Code を終了して翌日また起動すると、昨日のタスクは基本消えています。長期的に詳細メモを残したいなら、CLAUDE.md など別ファイルに書き出しておくのが安全
- headless 実行で勝手にタスクが切られると期待する。
claude -p経由だと、デフォルトでは TodoWrite の方が動いているので、TaskCreate も TaskGet も発火しません。Task tools を使わせたいなら環境設定で明示的に切り替える必要があります - 許可ダイアログが出ないのは危険なのではと不安になる。TaskGet の許可は不要扱いですが、これは読み取り専用ツールだからです。ファイルもネットワークも触らず、セッション内のタスクリストを参照するだけなので、ダイアログ無しで動いていて問題ありません
書き方
TaskGet(Claude が内部で呼び出す内部ツール。ユーザー側のコマンドではない)
やってみるとこうなる
入力
(ユーザーがチャットに打ち込む形ではなく、Claude が裏で次のような呼び出しをする)
TaskGet(task_id: "task-003")
出力例
id: task-003
content: 1記事目「肉じゃがの黄金比」執筆
status: in_progress
notes: 見出し構成まで決定。本文は導入+材料リストまで書いた。
次に作業手順セクションを書く予定。
dependencies: task-001(テーマ決定)に依存
last_updated: 1時間前
このページに出てきた言葉
- セッション
- Claude Code を起動してから終了するまでの1回分の会話のかたまり。終了するとタスクリストも基本消える
- pending
- 「まだ手を付けていない」状態のタスク
- in_progress
- 「いま作業中」のタスク。同時に in_progress にできるのは原則1件
- completed
- 「終わった」状態のタスク
- deleted
- 「やっぱり要らないので消した」タスク
- TodoWrite
- やることリストを管理する旧式の内蔵ツール。現在は TaskCreate / TaskGet / TaskList / TaskUpdate の4本に分割されて非推奨扱い
- インタラクティブセッション
- みなさんがチャット画面で1問1答しながら進める普通の使い方
- headless 実行
- <code>claude -p "やってほしいこと"</code> のように、対話画面を開かず1コマンドで Claude に仕事を投げて結果だけ受け取る使い方