Claude Codeの「/goal」コマンド解説

Claude Codeの「/goal」コマンド完全解説

AIコーディングアシスタントのClaude Codeに、新たに「/goal」コマンドが追加されました。ユーザーが完了条件を設定するとClaudeがその条件を満たすまで自動的に作業を継続し、テストの全通過・設計書の全実装といった大型タスクを途中で指示を出すことなく完走させられます。

【出典元】Keep Claude working toward a goal | Claude Code Docs

「/goal」コマンドの概要

「/goal」コマンドは、ユーザーが特定の完了条件を設定し、Claudeがその条件を満たすまで自動的に作業を続ける機能です。
各ターンが終了するたびに小型・高速モデル(デフォルトはHaiku)が条件の充足を確認し、満たされていない場合は次のターンを自動的に開始します。条件が満たされると、ゴールは自動的にクリアされます。

この機能は、次のような明確な終了状態を持つ作業に適しています。

  • モジュールを新しいAPIに移行し、すべての呼び出し箇所がコンパイルされ、テストが通過するまで
  • 設計ドキュメントを実装し、すべての受け入れ基準が満たされるまで
  • 大きなファイルを焦点を絞ったモジュールに分割し、それぞれがサイズ制限内に収まるまで
  • ラベル付きのIssueバックログを処理し、キューが空になるまで

他の自律ワークフローとの比較

Claude Codeには自律的にセッションを継続するアプローチが複数あります。「次のターンをいつ始めるか」と「いつ止まるか」の2軸で整理すると以下の通りです。

アプローチ次のターンが始まるタイミング停止条件スコープ
/goal前のターンが終了したときモデルが条件の充足を確認したとき現在のセッションのみ
/loop設定した時間間隔が経過したとき手動停止、またはClaudeが完了と判断したとき現在のセッションのみ
Stop hook前のターンが終了したとき自作スクリプトまたはプロンプトが決定設定ファイルのスコープ全体
auto mode(新しいターンは開始しない)Claudeが1ターン内で完了と判断したとき現在のターン内のみ

/goalはセッション限定のショートカットで、コマンド一行で条件を設定できます。Stop hookは設定ファイルに記述するため、セッションをまたいでより永続的に適用されます。

/goalとauto modeの組み合わせが特に有効です。auto modeで1ターン内のツール承認を自動化し、/goalでターンをまたぐ繰り返しを自動化することで、大型タスクを完全に無人で走り切れます。

ゴールの設定と条件の書き方

/goalの後に満たしたい条件をテキストで入力して実行します。既にゴールがアクティブな場合、新しい内容で上書きされます。

/goal all tests in test/auth pass and the lint step is clean

ゴールを設定すると条件がそのまま指示として扱われ、即座にターンが開始されます。別途プロンプトを送信する必要はありません。アクティブ中は「◎ /goal active」インジケーターに実行時間が表示され、各ターン後に評価モデルが短い判定理由を返します。

評価モデルは会話のトランスクリプトのみを参照し、ファイルの読み取りやコマンドの独自実行は行いません。そのため「Claudeが実行した結果がトランスクリプトに現れる」形で条件を記述することが重要です。効果的な条件文の3要素は次の通りです。

要素説明
計測可能な終了状態○×が明確な1つの結果を指定するテスト結果・ビルドの終了コード・ファイル数
確認方法の明示Claudeが実行して証明できるコマンドを添えるnpm testが0で終了、git statusがクリーン
守るべき制約途中で変えてはいけない要件を明示する他のテストファイルは変更しない

条件文の最大文字数は4,000字です。「or stop after 20 turns」のようにターン数の上限を含めることで、条件が達成できない場合の無限ループを防止できます。

コマンド一覧

「/goal」は引数に応じてゴールの設定・確認・クリアを切り替えます。

コマンド動作
/goal <条件文>ゴールを設定してすぐに作業を開始。既存ゴールがあれば上書き
/goal(引数なし)現在の状態(条件・実行時間・ターン数・トークン消費量・直近の評価理由)を確認
/goal clearアクティブなゴールをキャンセル(stop / off / cancel も同義)
claude -p "/goal <条件文>"非対話モードで条件を満たすまで一括実行

非対話モードはCIパイプラインや定期バッチへの組み込みに適しており、人の手を介さずに条件達成まで走り切らせることができます。

なお、利用にはトラストダイアログの承認が必要です。disableAllHooksまたはallowManagedHooksOnlyが設定されている環境では利用できません。

まとめ

「/goal」コマンドは、完了条件を宣言するだけで大型タスクを自律完走させる機能です。ターンごとに独立したモデルが条件を判定するため、作業モデル自身が誤って「完了した」と判断するリスクを軽減しています。

auto modeと組み合わせることで、ツール承認とターン継続の両方が自動化され、コーディング作業の大部分を無人で進められる環境が整います。終了状態を明確に定義できるタスクであれば、積極的に活用してみてください。

関連記事