Claude Codeの/goalコマンド──「続けて」を打ち続ける代わりに完了条件を渡す
Claude Code公式ドキュメントによると/goalは完了条件を1つ設定すると、ターンが終わるたびに別モデル(既定Haiku)が条件を判定し、満たされるまで自動で次のターンを続ける機能。認証エラーなど4種類の「回復不能なエラー」でだけゴールが自動解除される仕組みや、バックグラウンド作業中は判定を後回しにする挙動を公式ドキュメント原文で確認した。

目次
Claude Codeを長時間の作業に投げるとき、1ターンごとに「続けて」と打ち込むのが面倒だという人は多いはずだ。/goalコマンドは、その手間を「完了条件を1回書く」だけに置き換える機能として公式ドキュメントに用意されている。この記事は公式ページの記述だけを根拠に、動作の仕組みと、似た機能である/loop・Stop hook・auto modeとの違いを整理する。
/goalは完了条件を1回書くだけで、ターンが終わるたびに別モデル(既定Haiku)が「会話に出てきた内容だけ」を見て判定を続ける機能。評価モデル自身はコマンド実行やファイル読み込みをしない- ゴールが自動解除されるのは、認証エラー・クレジット枯渇・コンテキストオーバーフロー・利用不可モデルの4種類の回復不能エラーのときだけ。加えて、評価モデルへの応答だけが続き実際の作業(ツール使用)が進まない状態が数ターン続くと、Claude Codeがループを強制停止し警告を出す安全弁もある
- 評価に使うモデルは環境変数
ANTHROPIC_DEFAULT_HAIKU_MODELで変更できる。ただしこの変数は/goal専用ではなく、haikuエイリアス全体や会話の要約などバックグラウンド機能すべてに影響する共通設定だ
/goalが実際にやっていること
公式ドキュメントの説明はシンプルだ。/goalに続けて完了条件を書くと、その条件そのものが最初のターンの指示になる。
/goal all tests in test/auth pass and the lint step is clean
1ターンが終わるごとに、設定した小型高速モデル(既定はClaude API利用時でHaiku)が「会話の中でClaudeが提示した内容」だけを見て、条件が満たされたかを判定する。判定結果は3種類ある。
- Not yet met(未達成):Claudeは判定理由をヒントに次のターンを続ける
- Met(達成):ゴールを自動解除し、達成ログを会話に記録
- Impossible(達成不可能と判定):ゴールを自動解除し、理由とともに失敗ログを記録
評価モデルはコマンドを実行したり、ファイルを読みに行ったりはしない。あくまで「Claudeがすでに会話に出した内容」だけで判定するため、公式ドキュメントは「npm testが0で終了する」のように、Claude自身の出力で証明できる条件を書くよう推奨している。条件は最大4,000文字まで。
似た機能との違い
Claude Code公式ドキュメントは、セッションを継続させる3つの方法を並べて比較している。
| 方式 | 次のターンが始まる条件 | 止まる条件 |
|---|---|---|
/goal |
前のターンが終わる、またはアイドル時のチェックイン | モデルが達成/不可能と判定、回復不能エラー、/goal clear |
/loop |
一定の時間間隔が経過 | 手動停止、またはClaudeが完了と判断 |
| Stop hook | 前のターンが終わる | 自前のスクリプト/プロンプトが判断 |
さらにauto modeとの違いも明記されている。auto modeは1ターン内のツール呼び出しを自動承認するだけで、次のターンを自動で始めるわけではない。/goalは「ターンをまたいで評価するレイヤー」を追加するもので、両者は補完関係にある——auto modeがツールごとの確認を消し、/goalがターンごとの確認を消す、という役割分担だ。
4種類の「回復不能なエラー」でゴールが解除される
エラーで止まった場合の挙動は2パターンに分かれる。次の4種類のエラーだけがゴールを自動解除する。
- 認証エラー(Claude Code自身が認証情報を管理している場合。デスクトップアプリやクラウドセッションなどホスト側が管理する場合はゴールを解除しない)
- クレジット残高の枯渇
- auto-compactionで解消できないコンテキストオーバーフロー
- 利用できないモデル
これら以外のエラー(レート制限やサーバー過負荷などの一時的なエラーを含む)ではゴールは解除されず、そのまま維持される。解除されたときは「Goal cleared after an unrecoverable error」で始まる警告が表示され、原因を直してから/goalで条件を再設定する必要がある。
「空回り」を検知する、もう1つの安全弁
回復不能エラーとは別に、公式ドキュメントはもう1つの停止条件を明記している。Claudeがツールを使わずに評価モデルへの応答だけを続け、何ターンも実質的な進捗がない状態が続くと、Claude Codeはそのループを強制的に停止し、警告を出して操作をユーザーに戻す。このときゴール自体は解除されず設定されたまま残り、次にユーザーがプロンプトを送ると評価が再開される。公式ドキュメントはこの挙動の内部的な仕組みを、Stop hookの「ブロック上限」機構の一部として説明している。
評価モデルはHaiku固定ではない
本文では「既定はHaiku」と書いたが、公式ドキュメント「Model configuration」を確認すると、評価に使うモデルは環境変数ANTHROPIC_DEFAULT_HAIKU_MODELで変更できる。ただし、この変数は/goalの評価専用に用意されたものではない。公式ドキュメントは「Claude Codeはhaikuという小型高速モデルを使うすべての場面でこの変数を参照する。この変数を設定すると、haikuエイリアスの解決先も、会話の要約などのバックグラウンド機能も、まとめてそのモデルに切り替わる」と明記している。つまり/goalの評価モデルだけを個別に変えることはできず、Claude Code全体の「小型高速モデル」の設定を変えることになる。評価モデル自体は、セッションが使っているプロバイダ(Claude API・Bedrock・Vertexなど)上で動く、とも明記されている。
バックグラウンド作業中は判定を後回しにする
サブエージェントやバックグラウンドのシェルコマンドがまだ動いている状態でターンが終わった場合、Claude Codeはその回の判定をスキップし、バックグラウンド作業がすべて終わった次のターンで評価する。
バックグラウンド作業がゴールを30分待たせると「チェックイン」が発生し、Claude Codeは実行中のタスクを一覧にして、進捗していれば待機継続、詰まっていれば修正か停止を判断させる。2回目以降のチェックイン間隔は毎回2倍になり(既定30分→1時間→2時間…)、最大で初回間隔の4倍まで伸びる。対話セッションでは、あなたの次のプロンプトを待たずにClaude Code自身がアイドル中にターンを開始してチェックインを届けることもあるが、この「アイドル中チェックイン」は1つのゴールにつき最大3回までという上限がある(3回目のチェックインで「次のプロンプトが来るまでチェックインを一時停止する」旨が案内される)。この間隔は環境変数CLAUDE_CODE_GOAL_CHECKIN_MINUTESで変更でき、0にすると無効化できる。
非対話モードでも使える
claude -pで起動する非対話セッションでも/goalは動く。
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"
既定のテキスト出力では、ゴールが終わるまで何も表示されないため、ターン数の多いゴールは「固まっているように見える」ことがある。--output-format stream-json --verboseを付けると、各メッセージが逐次出力される。
サードパーティ利用時の既定モデルは確認できていない
限界を先に書く。
評価モデルを他社プロバイダで使う場合の具体的なモデル名。 「セッションが使っているプロバイダ上で動く」「ANTHROPIC_DEFAULT_HAIKU_MODELで変更できる」という仕組みまでは確認できたが、Bedrock・Vertex等それぞれのプロバイダでの具体的なデフォルトのモデルID自体は「プロバイダごとのページを確認」とされており、本記事では個別に確認していない。
実際のトークン消費の目安。 公式ドキュメントは「評価用トークンは小型モデルで課金され、本体ターンの消費と比べて通常は無視できる程度」と書いているが、具体的な数値は示されていない。
バージョンごとの挙動差。 アイドル中チェックインの上限(v2.1.246以降で3回)やレジューム経路の挙動差(v2.1.239前後)など、バージョンによる違いが複数明記されている。手元のClaude Codeのバージョンによっては本記事の記述と異なる場合がある。
関連記事
出典・参照資料
AIニュースの解説を動画でも
YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。
コメント
まだコメントはありません。最初のコメントを書いてみませんか?
AIについて聞きたいことはありますか?
質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。
質問箱を見る →新しい記事をメールで受け取る
AIの新しい発表を、出典付きで整理して届けます。