workflowKeywordTriggerEnabledでultracode起動を止める
プロンプト中のultracodeという単語だけでワークフローが起動する既定動作を、設定キー1つで止める方法とその影響範囲。
このTipsでできること
Claude Codeのプロンプトにultracodeという単語を打つと、Claudeがそのタスク向けのワークフローを自動で計画し始めます。意図せずultracodeという文字列を含む指示を書いただけで起動することがあり、workflowKeywordTriggerEnabledをfalseにすると、この単語トリガーだけを止められます。
やり方
既存のsettings.jsonに次の1行を追記します(ファイルが無ければ新規作成します)。
{
"workflowKeywordTriggerEnabled": false
}設定後は、プロンプトのどこにultracodeと書いてもワークフローは起動しません。単語をそのまま地の文で使いたいとき(このTips自体の説明文のように)に有効です。既定値はtrueで、スコープはAny file(ユーザー設定・プロジェクト設定のどこに書いても反映される)です。/configの画面では「Ultracode keyword trigger」という項目名で表示され、GUIからトグルすることもできます。
反映を確認するには、設定変更後のセッションでultracodeという単語だけを含む短いプロンプトを送り、ワークフローの計画が始まらないことを見ます。
1回だけ取り消したいなら設定を変えずに済む
毎回falseにしておきたいわけではなく、「今回だけ間違って反応した」場合は、設定を変更しなくても取り消せます。入力欄でキーワードがハイライトされたら、macOSはOption+W、Windows・LinuxはAlt+Wでそのプロンプトのハイライトだけを解除できます。ハイライトされたultracodeの直後にカーソルがあるなら、Backspaceキーでも同じように取り消せます。
workflowKeywordTriggerEnabledは「今後ずっと単語トリガーを切る」ときの設定で、Option+W/Alt+Wは「今回だけ取り消す」その場しのぎです。頻度が低いなら後者、CLAUDE.mdの説明文などで恒常的にultracodeという語を書く運用なら前者を選びます。
どこで効くか — 対話プロンプト以外では元々起動しない
workflowKeywordTriggerEnabledを意識する前に知っておく価値があるのは、このキーワードトリガー自体が人間が直接タイプした対話プロンプトでしか働かないという制約です。次の経路では、キーワードが含まれていてもワークフローは起動しません。
-pフラグで渡したプロンプト- 人間の入力として
originをスタンプしていないAgent SDKアプリケーションからの入力 - スケジュールされたタスクのプロンプト
- Webhookのペイロードやプルリクエストのコメントから会話に中継された内容
つまり、CIパイプラインやAgent SDK経由の自動化にultracodeという語を含む文字列が流れても、それだけでワークフローが暴発することはありません。暴発が起きるのは、CLI・IDE拡張のパネル・Remote Controlクライアントなど、自分でキーボード入力する経路に限られます。なお、v2.1.210より前のバージョンでは、Webhookのペイロードやプルリクエストのコメント経由でもキーワードが反応していました。このバージョンより古いClaude Codeを使っている場合、workflowKeywordTriggerEnabled: falseは対話プロンプトだけでなく、自動化経路からの暴発を防ぐ意味も持ちます。
誤爆したときにどこまで進むか — 権限モード次第
キーワードが暴発しても、必ず即座に実行が始まるわけではありません。ワークフローが走り出す前の承認ダイアログは、そのときの権限モードによって出方が変わります。
| 権限モード | 誤爆時の挙動 |
|---|---|
| Manual(accept edits含む) | 誤爆時の挙動実行のたびに承認プロンプトが出る(「今回だけ許可して以後は聞かない」を選んでいない限り) |
| Auto | 誤爆時の挙動初回のみプロンプト。一度Yesを選ぶと以後は聞かれない。ultracodeがオンならプロンプト自体が出ない |
| Bypass permissions | 誤爆時の挙動プロンプトなしで即座に実行が始まる |
claude -p / Agent SDK | 誤爆時の挙動プロンプトは出ないが、そもそもキーワードトリガー自体が働かない経路 |
Bypass permissionsモードで作業している場合や、Autoモードで一度「今後は聞かない」を選んだ後は、ultracodeという単語を含むプロンプトを送っただけで確認なしにワークフローが走り出します。こうした運用をしているなら、workflowKeywordTriggerEnabled: falseで単語トリガー自体を切っておく価値が特に大きくなります。
送信前に気づく手掛かりもあります。Claude Codeは入力欄でultracodeという単語をハイライト表示するため、送信ボタンを押す前にトリガーが立っていることを視覚的に確認できます。ただし長いプロンプトを一気に貼り付けたときや、ペーストした文章の途中に紛れ込んでいるときはハイライトを見落としやすく、結局はworkflowKeywordTriggerEnabledで根本から止めておく方が確実です。
補足 — このキーが止めるのは「単語トリガー」だけ
workflowKeywordTriggerEnabledが制御するのは、プロンプト中のultracodeという単語をきっかけにした起動だけです。次の3つは影響を受けません。
ultracodeエフォート設定:/effort ultracodeでそのセッションだけxhighエフォートに切り替える機能/workflowsコマンド: 明示的にワークフローを呼び出す操作- 保存済みのワークフローコマンド: 既に作成済みのワークフローの実行
このキーが止めるのはultracodeという単語トリガーだけです。「ワークフローを使って」「run a workflow」のように自分の言葉で直接ワークフローを頼んだ場合も、Claudeはultracodeと書いたときと同じopt-inとして扱います。workflowKeywordTriggerEnabledをfalseにしても、こうした自然文での依頼までは止まりません。
つまりworkflowKeywordTriggerEnabled: falseは「うっかり起動」だけを防ぐピンポイントな設定で、ダイナミックワークフローの機能自体を止めるものではありません。ダイナミックワークフローは有料プランおよびAnthropic APIアクセス、Amazon Bedrock、Google CloudのAgent Platform、Microsoft Foundryで利用でき、Proプランでは/configの「Dynamic workflows」行からオンにする必要があります。単語トリガーを切っても、これらの経路でワークフロー機能自体を使う権利には影響しません。
なぜ暴発を止めたいのか — ワークフローは軽くない
単語トリガーの暴発を軽視できないのは、ワークフローが起動すると1回のリクエストのつもりが多数のサブエージェントを並列で走らせるタスクに化けるためです。1回の実行がスケジュールするエージェントが25を超えるか、トークン見積もりが150万を超えると、タスクパネルにLarge workflowという警告が出ます。この警告はあくまで注意喚起で実行を止めはしませんが、ultracodeという語をうっかり含めただけの指示で大規模な実行が走り出す事態は、トークン消費の面でも避けたいところです。ワークフローはClaudeサブスクリプションの利用上限にもそのまま計上されるため、意図しない起動が積み重なるとセッションや週次の上限に早く達する原因になります。
隣接する設定キーとの違い
ダイナミックワークフローに関わる設定キーは複数あり、混同すると意図と違う挙動になります。役割で使い分けます。
| 設定キー | 止める対象 | 適用範囲 |
|---|---|---|
workflowKeywordTriggerEnabled | 止める対象ultracodeという単語での自動起動のみ | 適用範囲書いた設定ファイルが効く範囲 |
disableWorkflows | 止める対象ダイナミックワークフローと同梱のワークフローコマンド全体 | 適用範囲~/.claude/settings.jsonなら自分、管理設定なら組織全員 |
enableWorkflows | 止める対象/configの「Dynamic workflows」トグルが書く自分用のオン・オフ | 適用範囲自分のユーザー設定(セッションをまたいで持続) |
ultracode | 止める対象セッション開始時のエフォートレベルとultracodeの自動プラン化 | 適用範囲セッション開始時の既定挙動 |
disableWorkflowsは自分の~/.claude/settings.jsonに書いても、組織の管理設定に書いても効くキーで、後者の場合は管理設定が届く全員のワークフロー機能そのものが止まります。単に「ultracodeという単語で暴発するのを防ぎたい」だけなら、機能全体を止めるdisableWorkflowsではなくworkflowKeywordTriggerEnabledの方がピンポイントです。ワークフロー機能自体は残したいがultracodeだけは避けたい場合、ultracode単独を切る設定は存在せず、代わりに対象モデルへxhigh未満のエフォートキャップをかけてultracodeが使えない状態にする、という回り道になります。
セッション単位で一時的にワークフローを止めたいだけなら、環境変数CLAUDE_CODE_DISABLE_WORKFLOWSという選択肢もあります。起動時に読み込まれる値なので、設定した場所を問わずそのセッションに効きます。この変数とdisableWorkflowsはどちらか一方が無効化していれば、もう一方が有効化しても戻せない関係にあります。ダイナミックワークフローの実行そのものがどう動くかは、Claude Codeワークフローのプロンプトキャッシュの効き方で扱っています。
この設定が効く場面
ultracodeという単語は、ワークフロー機能の紹介記事やドキュメント、CLAUDE.mdの説明文など、機能名としてそのまま書きたい場面が少なくありません。CIログの解析結果にultracodeという文字列が含まれるケースや、社内ドキュメントを要約させる際に元テキストへ機能名が登場するケースでも、単語トリガーが働くとテキストの説明であるにもかかわらずワークフローが計画され始めます。
チームでCLAUDE.mdやプロンプトテンプレートに機能名の解説を書く運用をしているなら、リポジトリ直下の.claude/settings.jsonにこの設定を書いてコミットしておくと、メンバー全員の環境で暴発を防げます。個人の癖として頻発するなら、~/.claude/settings.json(ユーザー設定)に書く方が影響範囲を自分だけに絞れます。同じsettings.jsonで挙動を絞り込む設定としては、確認プロンプトを省くautoAllowBashIfSandboxedでBash確認をスキップする条件と無効化や、コネクタを一括で止めるdisableClaudeAiConnectorsでClaude Codeのコネクタを一括無効化もあります。
ワークフロー機能自体を触りたいなら
workflowKeywordTriggerEnabledはキーワード起動だけを止めますが、ワークフローの規模そのものを抑えたい場合はworkflowSizeGuidelineが使えます。値はsmall(エージェント5未満が目安)・medium(10未満)・large(50未満)の3段階で、既定はmediumです。Proプラン契約かつv2.1.271以降では既定がsmallになります。設定にはv2.1.219以降が必要で、それより前のバージョンでは既定がunrestricted(目安なし、タスクに応じてClaudeが規模を決める)のままです。smallを選んでおくと、ultracodeが誤って起動した場合でもエージェント数の目安が絞られ、被害が小さく済みます。
{
"workflowKeywordTriggerEnabled": false,
"workflowSizeGuideline": "small"
}ワークフロー機能はCLI・デスクトップアプリ・IDE拡張・claude -pの非対話モード・Agent SDKのすべての面で共通の無効化設定が効きます。面ごとに個別のオン・オフはできないため、無効化するなら全面で無効化されると考えます。ワークフロー機能をまとめて止めると、同梱のワークフローコマンドと/workflow-authoringスキルも一緒に使えなくなり、ultracodeという単語がキーワードとして反応しなくなるうえ/effortのメニューからもultracodeの選択肢が消えます。単語トリガーだけを止めたい場合との違いはここにあり、workflowKeywordTriggerEnabled: falseなら/effort ultracodeもワークフローコマンドもそのまま使える点が異なります。
まとめ
workflowKeywordTriggerEnabled: falseは、ultracodeという単語での自動ワークフロー起動だけをピンポイントで止める設定です。ワークフロー機能そのものは動き続け、/effort ultracodeや/workflows、保存済みワークフローの実行にも影響しません。今回だけ取り消すならOption+W/Alt+W、機能ごと止めたいならdisableWorkflows、規模を絞りたいならworkflowSizeGuidelineと、目的に合わせて使い分けます。