メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

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

他の自律的なワークフロー アプローチとの比較

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

/goal を使用する

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

ゴールを設定する

/goal の後に、満たしたい条件を実行します。ゴールが既にアクティブな場合、新しいゴールがそれを置き換えます。
/goal all tests in test/auth pass and the lint step is clean
ゴールを設定すると、条件自体をディレクティブとしてターンが直ちに開始されます。別のプロンプトを送信する必要はありません。ゴールがアクティブな間、◎ /goal active インジケーターがゴールの実行時間を表示します。 各ターンの後、評価器は条件が満たされているかどうかを説明する短い理由を返します。最新の理由はステータス ビューとトランスクリプトに表示されるため、Claude が次に何に向かって動作しているかを確認できます。
ゴールは条件が満たされるか、/goal clear を実行するまで実行され続けます。引数なしで /goal を実行して、これまでに費やされたターンとトークンを確認します。

効果的な条件を作成する

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

ステータスを確認する

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

ゴールをクリアする

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

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

セッションが終了したときにまだアクティブだったゴールは、--resume または --continue でそのセッションを再開すると復元されます。条件は引き継がれますが、ターン数、タイマー、およびトークン支出ベースラインはすべて再開時にリセットされます。既に達成またはクリアされたゴールは復元されません。

非対話的に実行する

/goal非対話的モードおよびリモート コントロールで機能します。-p でゴールを設定すると、ループが単一の呼び出しで完了まで実行されます。
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"
Ctrl+C でプロセスを中断して、条件が満たされる前に非対話的なゴールを停止します。

評価の仕組み

/goal は、セッションスコープのプロンプトベースの Stop hookのラッパーです。Claude がターンを終了するたびに、条件と会話がこれまでのところ、あなたが設定した小さく高速なモデルに送信されます。デフォルトは Haiku です。モデルはイエスまたはノーの決定と短い理由を返します。「ノー」は Claude に動作を続けるよう指示し、次のターンのガイダンスとして理由を含めます。「イエス」はゴールをクリアし、トランスクリプトに達成されたエントリを記録します。 評価器は、セッションが設定されているプロバイダーで実行されます。ツールを呼び出さないため、Claude が既に会話で表示した内容のみを判断できます。
評価トークンは、プロバイダー用に設定された小さく高速なモデルで課金され、通常はメインターン支出と比べて無視できます。

要件

/goal は、評価器がフック システムの一部であるため、信頼ダイアログを受け入れたワークスペースでのみ実行されます。disableAllHooks がいずれかの設定レベルで設定されている場合、または allowManagedHooksOnly が管理設定で設定されている場合、/goal は利用できません。どちらの場合も、コマンドは何もしないのではなく、理由を伝えます。

関連項目