Skip to main content
/goal コマンドはコンプリーション条件を設定し、Claude はあなたが各ステップをプロンプトすることなく、その条件に向かって動作し続けます。各ターンの後、小さく高速なモデルが条件が成立しているかどうかをチェックします。成立していない場合、Claude はあなたに制御を返す代わりに別のターンを開始します。ゴールは条件が満たされると自動的にクリアされます。モデルが条件を満たすことが不可能と判断した場合、または 修正が必要なエラー が発生した場合もクリアされます。 実質的な作業で検証可能な終了状態がある場合にゴールを使用します。
  • モジュールを新しい API に移行し、すべてのコールサイトがコンパイルされてテストが成功するまで
  • デザインドキュメントを実装し、すべての受け入れ基準が満たされるまで
  • 大きなファイルをフォーカスされたモジュールに分割し、各モジュールがサイズ予算以下になるまで
  • ラベル付きの問題バックログを処理し、キューが空になるまで

セッションを実行し続ける方法の比較

3 つのアプローチが、プロンプト間で現在のセッションを実行し続けます。次のターンを開始するべき内容に基づいて選択します。 /goal と Stop hook は両方とも、すべてのターンの後に実行されます。/goal はセッションスコープのショートカットです。条件を入力すると、現在のセッションでのみアクティブになります。Stop hook はあなたの設定ファイルに存在し、そのスコープ内のすべてのセッションに適用され、決定論的なチェックのためにスクリプトを実行するか、モデルで評価されたチェックのためにプロンプトを実行できます。 自動モードは、単一のターン内でツール呼び出しを承認しますが、新しいターンを開始しません。Claude は作業が完了したと判断すると停止します。/goal は、すべてのターンの後にあなたの条件をチェックする別の評価器を追加するため、コンプリーションは作業を行っているモデルではなく、新しいモデルによって決定されます。この 2 つは相互に補完的です。自動モードはツールごとのプロンプトを削除し、/goal はターンごとのプロンプトを削除します。
上記のアプローチは、現在のセッションを実行し続けます。また、夜間テストや朝のトリアージなど、開いているセッションとは無関係に実行される作業をスケジュールすることもできます。クラウドルーチンとデスクトップスケジュール済みタスクについては、スケジューリング オプションを参照してください。

/goal を使用する

セッションごとに 1 つのゴールがアクティブになります。同じコマンドが引数に応じてゴールを設定、確認、およびクリアします。

ゴールを設定する

/goal の後に、満たしたい条件を実行します。ゴールが既にアクティブな場合、新しいゴールがそれを置き換えます。
ゴールを設定すると、条件自体をディレクティブとしてターンが直ちに開始されます。別のプロンプトを送信する必要はありません。ゴールがアクティブな間、◎ /goal active インジケーターがゴールの実行時間を表示します。 ゴールは権限モードを変更しません。ゴールターンが無人で実行されるようにするには、/goalauto mode で実行します。Manual mode では、Claude は上記のテストコマンドなど、設定で既に許可されていないツール呼び出しの前に確認を求めます。 ゴールがアクティブな間、トランスクリプトは評価器が返す各判定を表示し、Ctrl+O を押すと、その背後にある理由を確認できます。ステータスビューは最新の理由も表示するため、Claude が次に何に向かって動作しているかを確認できます。

効果的な条件を作成する

評価器は、Claude が会話で表示した内容に対して条件を判断します。独立してコマンドを実行したりファイルを読み取ったりしないため、Claude 自身の出力が実証できるものとして条件を作成します。「test/auth のすべてのテストが成功する」は、Claude がテストを実行し、結果がトランスクリプトに表示されるため、評価器が読み取ることができるため、機能します。 多くのターンにわたって成立する条件には、通常以下が含まれます。
  • 1 つの測定可能な終了状態:テスト結果、ビルド終了コード、ファイル数、空のキュー
  • 述べられたチェック:Claude がそれをどのように証明すべきか、例えば「npm test が 0 で終了する」または「git status がクリーンである」
  • 重要な制約:その過程で変更されてはならないもの、例えば「他のテストファイルは変更されない」
条件は最大 4,000 文字です。 ゴールの実行時間を制限するには、条件に or stop after 20 turns などのターンまたは時間句を含めます。Claude はその句に対する進捗を各ターンで報告し、評価器は会話から判断します。

ステータスを確認する

引数なしで /goal を実行して、現在の状態を確認します。
ゴールがアクティブな場合、ステータスは以下を表示します。
  • 条件
  • 実行時間
  • 評価されたターン数
  • 現在のトークン支出
  • 評価器の最新の理由
ターン数と最新の理由は、最初の評価が実行された後に表示されます。 ゴールがアクティブではないが、セッションの前半で達成された場合、ステータスは達成された条件とその期間、ターン数、およびトークン支出を表示します。

ゴールをクリアする

/goal clear を実行して、条件が満たされる前にアクティブなゴールを削除します。
stopoffresetnone、および cancelclear のエイリアスとして受け入れられます。/clear を実行して新しい会話を開始すると、アクティブなゴールも削除されます。

アクティブなゴールで再開する

セッションが終了したときにまだアクティブだったゴールは、セッションを再開するときに Claude Code が復元します。Claude Code は、すべての再開ルートで復元します。--continue、セッション ID、名前、または トランスクリプトファイルパス を使用した --resume、および セッションピッカー。v2.1.239 より前では、Claude Code は claude --resume ピッカーを除くすべてのルートでゴールを復元していました。 Claude Code は条件を引き継ぎますが、ターン数、タイマー、およびトークン支出ベースラインをリセットします。既に達成またはクリアされたゴールは復元されません。

非対話的に実行する

/goal非対話的モードデスクトップアプリ、および リモートコントロール で機能します。-p でゴールを設定すると、ループが単一の呼び出しで完了まで実行されます。
デフォルトのテキスト出力では、実行が終了するまで何も出力されないため、多くのターンを実行するゴールは停止しているように見える場合があります。--output-format stream-json --verbose を追加して、ループの実行時に各メッセージを出力します。 Ctrl+C でプロセスを中断して、条件が満たされる前に非対話的なゴールを停止します。

評価の仕組み

/goal は、セッションスコープのプロンプトベースの Stop hookのラッパーです。Claude がターンを終了するたびに、Claude Code は条件と会話をこれまでのところ、あなたが設定した小さく高速なモデルに送信します。デフォルトは Claude API の Haiku です。サードパーティプロバイダーの場合は、プロバイダーページでプラットフォームのデフォルトを確認してください。モデルは 3 つの判定のいずれかを返します。各判定には短い理由が付きます。
  • まだ満たされていない: Claude は作業を続け、理由を次のターンのガイダンスとして受け取ります。
  • 満たされた: Claude Code はゴールをクリアし、トランスクリプトに達成されたエントリを記録します。
  • 不可能: 評価器は条件を満たすことができないと判断しました。Claude Code はゴールをクリアし、理由とともにトランスクリプトに失敗したエントリを記録します。自分でクリアする必要はありません。
Claude が評価器に答え続けても進捗がない場合(複数のターンで連続してツール使用がない場合)、Claude Code はループを停止し、警告を出力し、ゴールがまだ設定された状態で制御をあなたに返します。評価は次のプロンプトの後に再開されます。hooks ガイドは基礎となるメカニズムについて説明しています。

ターンが失敗した場合

ターンが失敗した場合、Claude Code はエラーが修正する必要があるものである場合、ゴールをクリアします。その他のエラーの後、ゴールは設定されたままです。

修正する必要があるエラーはゴールをクリアします

修正するまでクリアされないエラーでターンが失敗した場合、Claude Code はゴールをクリアし、原因を名前で指定する警告を出力します。警告は Goal cleared after an unrecoverable error で始まり、Run /goal again to continue で終わります。原因を修正してから、/goal <condition>ゴールを再度設定してください。4 つの種類の失敗がゴールをクリアします。
  • 認証失敗。Claude Code が独自の認証情報を管理する場合。デスクトップアプリ、VS Code 拡張機能、またはクラウドセッションなど、ホストが認証情報を管理する場合、Claude Code はホストが独自にアクセスを復元するため、ゴールをアクティブなままにします。
  • クレジット残高の枯渇
  • 自動コンパクションがクリアできないコンテキストオーバーフロー
  • 利用できないモデル

その他のエラーはゴールを再試行または一時停止します

その他の失敗の後、ゴールは設定されたままです。Claude Code v2.1.269 以降の対話型セッションでは、Claude Code は原因を名前で指定する行を出力し、独自に再試行するか、あなたを待ちます。
  • 再試行: サーバーの過負荷や接続の切断など、独自にクリアされる傾向がある失敗の後、Goal still active で始まる通知は次の試行までの待機時間を表示します。3 回の自動再試行の後、ゴールは代わりに一時停止します。
  • 一時停止: API レート制限、claude.ai 使用制限、またはターンを終了した hook など、再試行が繰り返すだけの失敗の後、Goal paused で始まる通知は原因を名前で指定します。セッションが使用制限がリセットされるときに自動的に続行するのを待機している場合、Claude はその後ゴールに向かって作業を再開します。
任意の時点でメッセージを送信して、次のターンをすぐに開始してください。自動再試行をオフにするには、CLAUDE_CODE_GOAL_CHECKIN_MINUTES0 に設定します。これにより、チェックインもオフになります。

バックグラウンド作業は評価を遅延させます

サブエージェントまたはバックグラウンドシェルコマンドがターン終了時に実行中の場合、Claude Code はそのターンの評価をスキップします。バックグラウンド作業が実行されていない状態で終了する次のターンの終了時に評価します。バックグラウンド作業が完了すると、Claude Code は結果を新しいターンとして Claude に配信するため、プロンプトを入力する必要はありません。 バックグラウンド作業がゴールを 30 分間待たせた後、チェックインが必要です。チェックインでは、Claude Code は実行中のタスクをリストアップし、Claude に出力を読むよう求め、進捗がある場合は待機を続け、スタックしているものを修正または停止するよう求めます。最初のチェックインの後、Claude Code は各後続チェックインの前に 2 倍の時間待機します。最初の間隔の最大 4 倍まで。デフォルトでは、最初のチェックインの 1 時間後、その後 2 時間ごと。Claude Code は期限が来たチェックイン(最初のものを含む)を 2 つの方法のいずれかで配信します。
  • ターンが終了するとき: Claude Code は作業がまだ実行中の状態で終了する次のターンの終了時にチェックインを配信します。-p で開始されたものなど、非対話型セッションでは、これが Claude Code がチェックインを配信する唯一の方法です。
  • セッションがアイドル状態のとき: 対話型セッションでは、Claude Code はあなたの次のプロンプトを待つ代わりに、チェックインを配信するために独自にターンを開始します。バックグラウンド作業が結果を報告せずに停止した場合、Claude Code は Claude にゴールに向かって続行するよう求めます。Claude Code はあなたのプロンプト間のゴールごとに最大 3 つのアイドルチェックインを開始します。3 番目のアイドルチェックインでは、Claude Code はアイドルチェックインが別のプロンプトを送信するまで一時停止されていることを示します。v2.1.246 より前では、アイドルチェックインは無制限でした。アイドルチェックインには Claude Code v2.1.236 以降が必要です。
v2.1.239 より前では、アイドルチェックインのみがこの方法でバックオフしました。ターン終了時に配信されたチェックインは最初の間隔で再発生しました。 最初の間隔を変更するには、CLAUDE_CODE_GOAL_CHECKIN_MINUTESを設定してください。Claude Code はあなたの値を 30 分間隔の代わりに使用し、後続の間隔をそれでスケーリングします。チェックインをオフにするには 0 に設定してください。自動再試行もオフになります。 チェックインには Claude Code v2.1.234 以降が必要です。

評価モデルとコスト

別のモデルで評価するには、ANTHROPIC_DEFAULT_HAIKU_MODELを設定してください。
Claude Code は小さく高速なモデルを使用するすべての場所で ANTHROPIC_DEFAULT_HAIKU_MODEL を読み取ります。/goal 評価のみではありません。設定すると、Claude Code はhaiku エイリアスをそのモデルに解決し、会話要約などのバックグラウンド機能をそれで実行します。
評価器は、セッションが設定されているプロバイダーで実行されます。ツールを呼び出さないため、Claude が既に会話で表示した内容のみを判断できます。
評価トークンは、プロバイダー用に設定された小さく高速なモデルで課金され、通常はメインターン支出と比べて無視できます。

要件

Claude Code は、評価器がフック システムの一部であるため、ワークスペース信頼ルール(設定ファイル内のフックと同じ)の下で /goal を利用可能にします。disableAllHookstrue の場合(設定の優先順位が適用された後)、または allowManagedHooksOnly が管理設定で設定されている場合、/goal は利用できません。いずれの場合も、コマンドは何もしないのではなく、理由を伝えます。

関連項目