Claude Code に「/config や /permissions のような斜線+単語の操作と skills を一切触らせたくない」自動実行を組みたい人向け
GitHub Actions のような自動実行から Claude Code を呼ぶ場面で、AIが要約や確認作業中に /config や /permissions を叩いて設定や許可リストを勝手に書き換える事故を防ぎたい時に、claude の後ろに書き足して起動する。新人レビュアー向けに設定を触らせないセッションを用意する用途や、夜間バッチで暴発リスクを下げたい用途でも使う
Claude Codeを動かしていると、対話中に「斜線+単語」を打つだけで、設定や許可リストをその場で書き換えられます。たとえば/configや/permissionsがそれです。便利な反面、自動で回している処理の途中で勝手に発動されると、本番設定を壊す事故につながります。
--disable-slash-commandsは、Claude Codeを起動する時にこれを後ろに足すと、そのセッションの間だけ「斜線+単語で呼ぶ機能」と skills を両方とも一切受け付けないようにする指定です。CIで本番設定を絶対に触らせたくない場面、レビューだけさせたい場面で使います。
噛み砕くと、対話画面の「設定パネル」ごと丸ごと封印する
Claude Codeの斜線+単語は、ホテルのチェックインカウンターに置いてある「内線電話のボタン」みたいなものです。/configを押すと設定係につながり、/permissionsを押すと許可担当につながる。便利ですが、誰かが宿泊客の代わりに勝手にボタンを押すと、設定が変わってしまいます。
--disable-slash-commandsは、このカウンターのボタン板を全部、布で覆ってしまう動きです。覆われている間は何を押しても反応しません。チェックアウトして次にチェックインすれば、布は外れて元通り使えます。
覆われるのは「内線電話のボタン」と、それに紐づく「マニュアル一式」の両方。名前は「斜線+単語を無効化」と書いてあるのに、実は手順書も同時に止まる。ここが後で出てくる落とし穴の入口です。
大事な前提:これは「起動時に1回だけ」付ける指定で、後から外せない
この指定はclaudeを立ち上げる瞬間に後ろに書き足すもので、対話が始まった後に「やっぱり斜線+単語使いたい」と思っても、その場で外す方法はありません。一度終了して、付けずに起動し直す必要があります。
逆に言うと、起動時に書き足しておけば、走っている間ずっと斜線+単語は封じられたまま。途中で意図せず誤発動する余地が無くなります。CIや無人実行の安全装置として効くのはこのためです。
「CIで本番設定を触らせない」を例に、実際の手順を見る
題材は、GitHub上で動くCIです。コードの変更案が上がるたびに、Claude Codeを呼んで、変更箇所を要約させたい。ただし、許可リストや動作モードの設定はCIの中で絶対に書き換えさせたくない、というケースです。
ステップ1: 何も付けずに動かすと、何が起きうるかを確認する
素のClaude Codeで対話を始めると、こういう入力が通ってしまいます。
$ claude
> /config set permissionMode bypassPermissions
これは「確認なしで何でも実行していい」というモードに切り替える操作です。CIの自動実行中にAIが何かの拍子でこの行を打ったら、その後のすべての動作が無確認で走ります。本番に対してこれが起きるとシャレになりません。
ステップ2: 起動時に --disable-slash-commands を後ろに書き足す
CIのワークフローファイルで、Claude Codeを呼ぶ行をこう書きます。
$ claude -p --disable-slash-commands "この変更点を3行で要約して"
ここで-pは「対話画面を出さず、1回だけ実行して結果を返して終了」という指定。--disable-slash-commandsはその実行の間、斜線+単語と skills を両方とも受け付けないようにする指定です。
ステップ3: 実際に何が止まるかを確認する
付けて起動した状態で、対話的に試すならこう打ってみます。対話モードでも使えます。
$ claude --disable-slash-commands
> /help
> /config
> /security-review
このセッションでは、上の3行はどれも反応しません。/helpのような無害な確認系も含めて、斜線で始まる入力は一律で無効化されます。skillsの代表である/security-reviewも同様に発火しません。
ステップ4: 普通の指示文は問題なく通る
封じられているのは「斜線で始まる入力」だけです。普通の文章でAIに指示を出す部分は通常通り動きます。
> このプロジェクトのREADMEを読んで、要点を3つに整理して
これは普通に読んで、要約を返します。コード生成・編集・ファイル読み書きといった通常作業には影響しません。
ステップ5: ここで初心者がやりがちな勘違い
名前を見て「斜線+単語が止まるだけで、skillsは別物だから動くだろう」と思いがちです。違います。公式の説明文には「all skills and commands」と書いてあり、両方とも止まります。CIで「skillsだけは動かしたい」と思っても、この指定では分離できません。
ステップ6: セッションを抜ければ元通り
このセッションを終了して、次に普通にclaudeを起動すれば、斜線+単語も skills も普通に使えます。永続的な無効化ではないので、自分のローカルで気軽に試して問題ありません。
つまり --disable-slash-commands は何をしてくれるのか
- やってくれる: そのセッション中、斜線+単語で呼ぶ操作(
/config/permissions/help/clear/init等)と、skills(/security-reviewや自分で足したもの含む)を両方とも完全に無効化する - やってくれない: 普通の文章での指示、コード編集、ファイル読み書き、ターミナル経由のコマンド実行は止めない。あくまで「斜線で始まる入力」だけが対象
- 意味が薄い場面: 自分1人がローカルで開発に使っている時。意図して
/configを叩く場面の方が多いので、わざわざ封じる意味は薄い
使いどころ3シナリオ(具体題材で再現)
シナリオ1: GitHub Actionsで変更案ごとに要約コメントを出すCIを組むとき
コードの変更案が上がるたびに、変更点をAIに3行要約させてコメントに貼るCIを作るとします。Claude Codeをclaude -p --disable-slash-commands "変更点を要約して"で呼べば、要約作業中にAIが暴走して/configを叩いて設定を書き換える、という事故の可能性をゼロにできます。要約という業務にスラッシュ系の操作は1個も要らないので、封じても何も困らない。むしろ封じておかないと、何かの拍子に起きた時に検知が遅れます。
シナリオ2: 新人レビュアー向けに「設定は触らせない」セッションを用意したいとき
チームに新しく入ったメンバーに、Claude Codeでコードレビューだけしてもらいたい。ただし/permissionsや/configで許可設定を勝手に変えられると困る、というケース。ターミナル用の起動スクリプトにclaude --disable-slash-commandsと書いたショートカットを渡しておけば、その人がClaudeを使う時は常に設定系が封印された状態で動きます。教育コストも下がります。
シナリオ3: 夜間バッチで大量のファイルを処理させたいとき
深夜2時に1000ファイルをAIに要約させるバッチを回す、という場面。claude -p --disable-slash-commands "..."を1000回呼ぶ形にしておくと、途中の1回で何かが暴発して/clearを叩いたとしても無視されます。バッチが朝まで止まらず走り切ることを優先するなら、止められる入力は止めておくのが安全寄りの選び方です。
初心者が踏みやすい落とし穴
- 名前と挙動のズレ。「斜線+単語を無効化」と書いてあるのに、実は skills も同時に止まる。
/security-reviewのような手順書系を動かしたい場合は、これを付けてはいけない - 後から外せない。起動時に書き足したら、そのセッションが終わるまで解除できない。途中で必要になったら、一度抜けて起動し直すしかない
--bareとの混同。--bareは起動時に勝手に読み込まれるものをスキップする指定で、対話中の斜線+単語自体は止めない。逆に--disable-slash-commandsは対話中のスラッシュ入力を止めるが、起動時の自動読み込みには影響しない。役割が違うので、本気でロックダウンしたい時は両方書き足す- 無害な確認系も巻き込まれる。
/helpや/costのような「読むだけ」のものも全部止まる。試した後に「あれ、helpも効かない…」と慌てない - 普通の指示文は通る。これを付けても、自然文での「設定ファイルを書き換えて」みたいな依頼はAIが普通に解釈して動く可能性がある。設定書き換えを完全に防ぎたいなら、別途
--permission-modeや--toolsと組み合わせる - 自分のローカルでの常用は不便。普段の開発で
/clearすら使えないのはストレスが溜まる。これはCI・無人実行・他人に渡す環境向けで、自分の作業環境の標準にするものではない - print mode 限定ではない。
-pを付けない普通の対話起動でも使えるので、「対話的に設定を触らせたくない人にPCを渡す」みたいな使い方もできる
書き方
claude --disable-slash-commands [指示文]
やってみるとこうなる
入力
claude -p --disable-slash-commands "この変更点を3行で要約して"
出力例
(要約結果のテキストだけが返り、対話中に /config /permissions /help /security-review などを打っても一切反応しない。セッションを抜けて次に普通に claude を起動すれば、斜線+単語と skills は通常通り使える)
このページに出てきた言葉
- セッション
- Claude Codeを起動してから終了するまでの1回分の会話。次の起動からは新しいセッションになる
- 斜線+単語で呼ぶ機能
- 対話画面で <code>/config</code> や <code>/help</code> のように半角の斜線で始まる単語を打つと呼び出せる操作群。設定変更・許可リスト操作・初期化などが一通り揃っている
- skills
- Claude Codeに最初から組み込まれている、または自分で足せる手順書セット。<code>/security-review</code>のようにスラッシュで呼ぶ形で発火する
- CI
- コードが書き換わるたびに、自動でテストや確認を走らせる仕組み。GitHub Actionsが代表例
- -p
- Claude Codeを「対話画面を出さず、1回だけ実行して結果を返して終了」というモードで動かす起動時の追加指定。自動化スクリプトから呼ぶ時に使う
- --bare
- 起動時に自動で読み込まれるもの(hooks、skills、MCP、CLAUDE.md など)を全部スキップする起動時の指定。<code>--disable-slash-commands</code>と役割が違う