Claude Code /goalコマンドの使い方|完了条件で自動継続する設定
「Claude Codeに/goalというスキルがあると聞いて探したが、.claude/skillsのどこにも見当たらない」「/goalを設定してみたら、こちらが何も指示していないのにClaudeが延々と作業を続けていて、いつ止まるのか分からず不安になった」——検索してもインストール手順が出てこなかったり、逆に止め方が分からず戸惑ったりする人は少なくありません。
結論から言うと、/goalはインストールするスキルではなく、Claude Codeにあらかじめ組み込まれているコマンドです。完了条件を文章で設定すると、毎ターンの終わりに小型で高速なモデル(既定はHaiku)がその条件を満たしたかどうかを判定し、満たすまでClaudeが自分で次のターンを始め続けます。指示を都度出さなくても、まとまった作業を最後まで進めさせられる仕組みです。
株式会社Fyveは中小企業のAI業務活用を支援しており、Claude Codeを日常の実務で使っています。この記事では、まず「/goalはスキルではなく組み込みコマンドである」という基本の整理から、完了条件の設定方法・状況確認・解除の手順、そして自分でターンを始め続ける機能だからこそ知っておきたい暴走・コスト面の注意点までを、公式ドキュメントに基づいて整理します。
「/goalはスキルではない」——まず区別しておくこと
Claude Codeには、ユーザーが自分で追加するスキル(.claude/skills/に置くもの)と、インストール不要で最初から使えるバンドル済みスキル(/doctor /code-review /batch /debug /loop /run /verify /run-skill-generatorなど)の2種類が存在します。/goalは、そのどちらでもありません。
公式ドキュメントでは/goalが独立した専用ページ(https://code.claude.com/docs/en/goal)で解説されており、その実体は「セッション単位のプロンプトベースのStop hook」を包んだ仕組みだと明記されています。バンドル済みスキルが「詳細な指示をClaudeに渡し、Claudeがツールを使って自分で作業を進める」プロンプトベースの仕組みであるのに対し、/goalはフック(hook)の仕組みの一部として動く、性質の異なる機能です。
つまり「/goalというスキルを入れる」という発想自体が事実誤りです。Claude Codeがインストールされていれば、/goalはそのまま使えます。探しても見つからないのは当然で、探す必要自体がありません。
/goalの仕組み——完了条件を毎ターン判定し、満たすまで自分でターンを始める
/goalの使い方はシンプルです。/goalに続けて達成したい条件を文章で書いて実行すると、その条件がそのまま最初の指示になってターンが始まります。改めて別のプロンプトを送る必要はありません。ゴールが有効な間は「◎ /goal active」という表示が出て、どれくらいの時間ゴールが動いているかを示します。
1つのターンが終わるたびに、Claude Codeはその条件と会話の内容をここまでの経過とあわせて、小型で高速なモデルに渡します。この評価役のモデルはコマンドを実行したりファイルを読んだりはせず、Claudeがすでに会話に出力した内容だけを見て判定します。判定結果は次の3種類のいずれかです。
- 未達成(Not yet met):Claudeは作業を続け、評価役が返した理由を次のターンの手がかりにします
- 達成(Met):Claude Codeがゴールを自動的にクリアし、達成したことを記録します
- 達成不可能(Impossible):評価役が「この条件は満たせない」と判断した場合、Claude Codeはゴールをクリアし、理由とともに失敗として記録します。この場合、ユーザーが手動でゴールを解除する必要はありません
公式ドキュメントが挙げている使いどころは、たとえば「あるモジュールを新しいAPIに移行し、すべての呼び出し箇所がコンパイルを通りテストが通るまで」「設計ドキュメントの受け入れ条件をすべて満たすまで実装する」「大きなファイルを、各ファイルが一定のサイズに収まるまで分割する」「ラベル付きのIssueの残件がなくなるまで処理する」といった、検証可能な終了状態がある、まとまった作業です。
条件は最大4,000文字、書き方のコツも明記されている
完了条件は最大4,000文字まで設定できます。公式ドキュメントは、条件が複数ターンにわたって機能しやすくなる3つの要素を挙げています。
- 測定可能な終了状態が1つあること(テスト結果・ビルドの終了コード・ファイル数・キューが空であることなど)
- どう証明するかが書かれていること(「npm testの終了コードが0」「git statusがクリーン」など、Claudeの出力が示せる形で書く)
- 崩れてはいけない制約が書かれていること(「他のテストファイルは変更しない」など)
評価役は条件を「Claudeがすでに会話に出したもの」だけで判定するため、Claude自身のアウトプットとして現れない条件(たとえば人間の目視確認が要るもの)は判定しづらい、という点も実務上おさえておく価値があります。
判定に使われるのは「小型で高速なモデル」
判定に使うモデルは、Claude API利用時は既定でHaikuです。サードパーティのプロバイダーを使っている場合はプロバイダー側の設定ページで既定モデルを確認する必要があります。評価用のモデルは環境変数ANTHROPIC_DEFAULT_HAIKU_MODELで変更できますが、この変数は/goalの判定だけでなく、会話の要約など他のバックグラウンド処理にも使われる点に注意が必要です。評価にかかるトークンは「メインのターンの消費量に比べれば通常ごくわずか」と公式は述べています。
ただしこれは評価役そのものの費用の話であって、Claudeが実際に作業する各ターンの費用とは別です。この違いは、後述する暴走・コストの注意点で重要になります。

読者特典・無料ダウンロードClaude Codeを「素のまま」使うな無料でダウンロード →状況確認と解除——/goal・/goal clear
1つのセッションで有効にできるゴールは同時に1つだけです。すでにゴールが動いている状態で新しく/goalを実行すると、新しい条件が古い条件を置き換えます。
引数なしで/goalを実行すると、現在の状態を確認できます。表示されるのは、設定中の条件・経過時間・これまでに評価されたターン数・現在のトークン消費量・評価役が直近に返した理由です。ターン数と直近の理由は、最初の評価が終わったあとに表示されます。ゴールが今は動いていなくても、そのセッション内で以前に達成済みのゴールがあれば、その条件と所要時間・ターン数・トークン消費量が表示されます。
ゴールを解除したいときは/goal clearを実行します。「stop」「off」「reset」「none」「cancel」も同じ意味のエイリアスとして使えます。新しい会話を始める/clearを実行した場合も、有効なゴールは自動的に解除されます。
セッションを再開したとき(--continue・セッションIDや名前を指定した--resume・セッションピッカーのいずれの経路でも)、Claude Codeは終了時点で有効だったゴールを復元します。ただし条件文はそのまま引き継がれる一方、ターン数・経過時間・トークン消費量のカウントはリセットされます。すでに達成済み・解除済みのゴールは復元されません。
Codexの/goalとは別物——同じコマンド名に注意
OpenAIのCodexにも、同じ「/goal」という名前のコマンドがあります。しかしこれは別会社の別製品が持つ、別の機能です。名前が同じだからといって、この記事で説明したClaude Codeの仕組み(判定モデル・条件の文字数上限・解除コマンドなど)がそのまま当てはまるわけではありません。Codex版の/goalの設定方法や停止条件については、以下の記事で個別に解説しているので、あわせて参照してください。
Codex /goalコマンドの使い方|設定と停止条件の実践
暴走・コストの注意点——自分でターンを始め続ける機能だからこそ
/goalの最大の特徴は「条件を満たすまでClaudeが自分で次のターンを始める」ことです。これは裏を返せば、人が都度「次に進めていいですか」を確認しないまま作業が連続するということでもあります。実務で使う前に、公式ドキュメントが明記している制御・注意点を押さえておく必要があります。
権限モードは変わらない——Manual modeなら都度の確認は残る
まず大前提として、/goalを設定してもClaude Codeの権限モード自体は変わりません。Manual modeのままであれば、設定で許可されていないツール呼び出しの前には、これまでどおりClaudeが確認を求めてきます。ゴールを完全に無人で走らせたい場合は、別途Auto modeを有効にする必要があります。逆に言えば、Auto modeにしない限り、ツール呼び出しのたびに確認が入るという安全網は保たれます。Auto modeと組み合わせると、ツールの呼び出しごとの確認が外れるため、条件の書き方が甘いと実際の作業ターン(=実コストが発生するターン)が長く連続する可能性があります。
暴走を止める仕組みは「後追い」であって「上限」ではない
Claudeが評価役に応答するだけで、ツールをまったく使わない状態が数ターン続いた場合、Claude Codeはループを自動的に停止し、警告を表示してユーザーに制御を戻します(ゴール自体は設定されたまま残り、次のプロンプトを送ると評価が再開します)。ただしこれは「進捗のない空回りを検知したら止める」という後追いの安全弁であり、あらかじめターン数やコストの上限を強制する仕組みではありません。本当にコストを抑えたいなら、条件文の中に自分で歯止めを書き込む必要があります。公式ドキュメントも「20ターンを超えたら停止する」のように、ターン数や時間の条件を条件文自体に含めることを勧めています。
エラーで自動解除されるケース・されないケース
次の4つの回復不能なエラーが起きた場合、Claude Codeはゴールを自動的に解除し、「Goal cleared after an unrecoverable error」から始まる警告を表示します。
- 認証エラー(Claude Code自身が認証情報を管理している場合。デスクトップアプリやVS Code拡張、クラウドセッションのようにホスト側が認証情報を管理している場合は、ホストが自動的に復旧するためゴールは解除されません)
- クレジット残高が尽きた場合
- 自動圧縮(auto-compaction)でも解消できないコンテキストオーバーフロー
- 利用できないモデルが指定されている場合
一方、レート制限やサーバー過負荷のような一時的なエラーではゴールは解除されず、そのまま有効な状態が保たれます。つまり「エラーが起きれば必ず止まる」わけではなく、一時的な失敗はむしろ自動的にリトライされ続けるという理解が必要です。
バックグラウンド作業とアイドル中の自動再開
サブエージェントやバックグラウンドのシェルコマンドがまだ動いている状態でターンが終わった場合、そのターンの評価はスキップされ、バックグラウンド作業が動いていない次のターンの終わりにまとめて評価されます。バックグラウンド作業がゴールを30分(既定値。環境変数CLAUDE_CODE_GOAL_CHECKIN_MINUTESで変更可能、0で無効化)待たせ続けると、Claude Codeは「チェックイン」を行い、動いているタスクの状況をClaudeに確認させます。対話セッションでは、ユーザーが何も入力しなくてもClaude Codeが自分でターンを開始してこのチェックインを届けます(1つのゴールにつき、ユーザーのプロンプトの間で最大3回まで)。目を離した時間が長いほど、この「自分で動き続ける」性質の影響も大きくなる点は意識しておくべきです。
これらを踏まえると、本番環境や外部API・課金が絡む操作、削除を伴う操作を扱うゴールは、Auto modeで無人実行するのではなく、Manual modeのまま都度確認を残すか、条件文にターン数・時間の上限を明記してから使うのが安全な運用だといえます。

実務——設定から解除までの流れ
実際の使い方は次の順番になります。
- 1. 条件を決めて実行する:例えば「test/authディレクトリの全テストが通り、lintがクリーンな状態になるまで」のように、
/goalのあとに条件を書きます。実行すると同時に、その条件を指示としたターンがすぐに始まります - 2. 進み方を確認する:作業中は「◎ /goal active」の表示で経過時間が分かります。各ターンで評価役が返した判定は履歴に表示され、Ctrl+Oで判定理由の詳細を確認できます
- 3. 途中で状態を見る:引数なしの
/goalで、条件・経過時間・評価済みターン数・トークン消費量・直近の判定理由を確認します - 4. 想定と違う動きをしていたら止める:
/goal clearで即座に解除できます
非対話モード(claude -p)や、デスクトップアプリ、Remote Controlからも/goalは使えます。claude -p "/goal ..."のように実行すると、その1回の呼び出しの中でゴールが達成されるまでループが回ります。既定の出力形式では実行が終わるまで何も表示されないため、動いているのか止まっているのか分かりにくくなります。--output-format stream-json --verboseを付けると各メッセージが逐次出力されるので、非対話で長く走らせるときはこちらを使うと安心です。Ctrl+Cでいつでも中断できます。
なお、/goalはhooksの仕組みの一部として動くため、設定ファイル内のhooksと同じワークスペース信頼ルールが適用されます。disableAllHooksが有効な場合や、管理設定でallowManagedHooksOnlyが指定されている場合は/goal自体が使えず、その場合はClaude Codeが理由を表示します(黙って何も起きない、ということはありません)。
まとめ
/goalについて、実務で使う前に押さえておきたい点をチェックリストにまとめます。
- /goalはインストールするスキルではなく、Claude Codeに標準搭載された組み込みコマンド。探して入れる必要はない
- 完了条件(最大4,000文字)を設定すると、毎ターン終了後に小型で高速なモデル(既定Haiku)が判定し、未達成なら自分で次のターンを始める
- 状況確認は引数なしの
/goal、解除は/goal clear(stop・off・reset・none・cancelも同義) - Codexにも同名の/goalがあるが別製品・別仕組み。混同しない
- Manual modeなら未許可のツール呼び出し前の確認は残る。Auto modeと組み合わせるときほど、条件文にターン数・時間の歯止めを明記する
- 暴走を止める仕組み・エラー時の自動解除はあるが、いずれも「後追い」であり、コスト上限そのものではない
Claude Codeに標準搭載されているスキル・コマンドの全体像は、こちらの記事で一覧にしています。
Claude Codeを「素のまま」使うな

設定で差がつく——CLAUDE.md・権限・スキルの実物を公開(全24ページ)
素のClaude Codeは"優秀な新入社員"。仕事を教えるほど、自分専用になります。覚えさせる4点セット——会社の説明書(CLAUDE.md)・権限の柵・手順書(スキル)・フォルダの地図——を、1人会社の実運用からコピペで使える型つきで公開します。
- そのまま書き換えて使えるCLAUDE.mdの型
- お金と送信をAIに触らせない「3段階の柵」
- 1回教えたら何度でも動く、手順書のコピペ雛形
- AIが迷子にならないフォルダ構造の3原則
メールアドレス登録で他にも様々な資料を閲覧できます








+3PDF 12点・合計305ページ + すぐ使えるzip素材 3点
どれも登録後の受け取りページから、まとめてダウンロードできます。
毎週金曜の無料ニュースレター「まるごとAI経営」の購読特典です。メール登録後すぐ、受け取りページのご案内が届きます。そこにはこの資料に加えて、過去の特典もすべてまとめて置いてあります。あわせて、AI活用に関するお知らせやお役に立てそうなご案内をお送りすることがあります。解除はいつでも1クリック。
御社の業務に合わせたClaude Code導入支援
「AIツールを導入したが、現場で使われない」を終わらせる。
業務課題のヒアリングから設計、ハンズオン実践、運用定着まで一貫して支援します。