feedbackDraftsを無効化してフィードバック下書きを止める
Claude Codeが自動で作るフィードバック下書きを、設定キーfeedbackDraftsと環境変数CLAUDE_CODE_SEND_FEEDBACKで止める手順と優先関係を解説します。
feedbackDraftsとCLAUDE_CODE_SEND_FEEDBACKでできること
Claude Code v2.1.247はSendFeedbackツールを追加しました。セッション中に何か不具合が起きると、Claudeがフィードバックの下書きを自分で作り、/feedbackから送るかどうかをあとで選べる仕組みです。
この下書き機能を制御するのが設定キーfeedbackDraftsです。値はnotify・quiet・offの3段階で、環境変数CLAUDE_CODE_SEND_FEEDBACKはセッション単位の一時的な上書きに使います。両者は役割が違い、CLAUDE_CODE_SEND_FEEDBACKはfeedbackDraftsの設定を上書きできません。
feedbackDraftsの3段階
feedbackDraftsはユーザー設定または管理者設定(managed settings)に書くキーで、プロジェクト設定やローカル設定に書いても無視されます。
| 値 | 挙動 |
|---|---|
notify | 挙動Claudeが下書きを作るたびにプロンプト上部にカードを表示(1セッションあたり既定で最大3枚) |
quiet | 挙動カードは出さず、プロンプトのフッターに件数だけ表示。内容は/feedbackで確認 |
off | 挙動Claude CodeがSendFeedbackツール自体を取り除き、Claudeは下書きを作れなくなる |
設定はsettings.jsonに書きます。
{
"feedbackDrafts": "quiet"
}offにしても/configの「Claude-drafted feedback」の行自体は消えません。管理者設定でこのキーが指定されている場合は、ユーザー側の値より管理者側が優先され、ユーザーがローカルで変更しても反映されません。
なお/configにこの行が表示されるのは、そもそもClaudeが下書きを作れるセッションに限られます。行が見当たらないアカウントやプランでは、feedbackDraftsを設定しても機能自体が提供されていないため意味を持ちません。
CLAUDE_CODE_SEND_FEEDBACKとの優先関係
環境変数CLAUDE_CODE_SEND_FEEDBACKは、feedbackDraftsの設定を書き換えずに、そのセッションだけ下書き機能を止めたいときに使います。
0を設定 — そのセッションのSendFeedbackを無効化1を設定 — アカウント側で機能が有効な場合に限り有効化(この変数だけでは権限を新たに付与できない)
公式ドキュメントは、1を設定してもDISABLE_FEEDBACK_COMMANDやfeedbackDrafts: "off"など他の無効化スイッチが引き続き有効なままだと明記しています。feedbackDrafts: "off"とDISABLE_FEEDBACK_COMMANDのどちらが先に評価されるかという上下関係は公式ドキュメントに記載がなく、分かっているのは「無効化スイッチはどれか1つでも効いていれば下書き機能は止まり、CLAUDE_CODE_SEND_FEEDBACK=1ではそれを覆せない」という関係だけです。
何も無効化されていない状態なら、CLAUDE_CODE_SEND_FEEDBACK=0だけでそのセッション限定で止められます。
CLAUDE_CODE_SEND_FEEDBACK=0 claudeDISABLE_FEEDBACK_COMMANDが止める範囲
DISABLE_FEEDBACK_COMMANDを1にすると、/feedbackコマンドとClaude-drafted feedback(下書き機能)の両方を無効化します。加えて/bugと/shareも/feedbackと同じ報告経路を通るため、この1つの変数だけで3コマンドがまとめて止まります。
v2.1.212より前は/bugと/shareが/feedbackのエイリアスだったため、どの名前で呼んでもコマンドは無効化されていました。v2.1.212以降は3つが別コマンドとして実装されていますが、無効化の経路は今も共通です。古い変数名DISABLE_BUG_COMMANDも引き続き受け付けます。
export DISABLE_FEEDBACK_COMMAND=1DISABLE_FEEDBACK_COMMANDは環境変数なので、envキー経由で設定ファイルに書くことも、シェルで直接exportすることもできます。管理者設定のenvキーに書けば組織全体へ、個人のシェル設定に書けば自分のセッションだけに適用されます。
似た名前の変数にCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICがあります。これは/feedbackとClaude-drafted feedbackに加え、自動更新・テレメトリー・エラーレポート・リリースノート取得・PRやMRのステータスバッジチェック・fast modeの可用性チェック・プラグインのcommandソースのバックグラウンド実行(依存関係のインストールを引き起こしうるため)まで、非必須の通信全体を止める、より広い範囲のスイッチです。値を0やfalseにしても他の多くのオン・オフ変数と違って通信は止まったままになり、無効化を解除するには変数そのものをunsetする必要があります。
この変数はfeature-flag取得も止めるため、feature-flag取得に依存するRemote Controlなどの機能も合わせて使えなくなります。一方で公式プラグインマーケットプレイスの自動インストールはこの変数の対象外です。これを止めるには別の変数CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALLが必要になります。フィードバック関連だけを止めたい場合にCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを選ぶと、意図していなかった機能まで巻き添えで止まります。フィードバック関連だけを止めたいときはDISABLE_FEEDBACK_COMMANDかfeedbackDrafts、通信全体を絞りたいときはCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICと、目的で使い分けます。
なぜ設定ファイルのキーとして存在するのか
Claude Codeのテレメトリー関連の設定は、ほとんどが環境変数(DISABLE_TELEMETRY・DISABLE_ERROR_REPORTING・CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC)で止める設計です。使用状況の測定やエラーレポートの送信はenvキーかシェルの環境変数で切り替えます。
その中でfeedbackDraftsとfeedbackSurveyRateの2つだけは例外で、環境変数ではなく設定ファイルのキーとして用意されています。公式ドキュメントはこの2つを「設定ファイル側で切り替える例外」と明記しており、単純なオン・オフのDISABLE_TELEMETRY系とは別枠で扱われています。
DISABLE_TELEMETRY・DO_NOT_TRACK・DISABLE_ERROR_REPORTINGはいずれもテレメトリーやエラーレポートの送信を止めるだけで、SendFeedbackツールや/feedbackコマンドには影響しません。これらを設定していても、Claudeは引き続き下書きを作り/feedbackを使えます。テレメトリーを止めたついでにフィードバック機能まで止まっていると思い込まないよう気をつけてください。テレメトリーとフィードバックの両方を一度に止めたいときだけ、対象範囲がもっとも広いCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを選びます(自動更新やRemote Controlなど他の機能も一緒に止まる点は前述のとおりです)。
SendFeedbackツールが送る内容
Claudeが下書きを作るとき、報告には直近のAPIリクエストからモデルの挙動に関わるパラメータ(モデル名・システムプロンプト・ツール定義)だけが含まれます。リクエストのメタデータやCLAUDE_CODE_EXTRA_BODYのフィールドは含まれません。システムプロンプトにプロジェクト固有の指示が含まれている場合、その内容が報告に乗る可能性があります。機密情報を扱うプロジェクトでは、feedbackDraftsをoffにするかDISABLE_FEEDBACK_COMMANDで経路自体を塞ぐという選択肢があります。
4つのスイッチを一覧で比較する
フィードバック関連の無効化スイッチは1つではありません。効く範囲と持続期間が異なるので、混同すると意図しない設定を残したまま運用することになります。
| スイッチ | 種類 | 持続期間 | 止まる範囲 |
|---|---|---|---|
feedbackDrafts: "off" | 種類設定ファイル(user/managed) | 持続期間恒久(設定を変えるまで) | 止まる範囲SendFeedbackツールのみ。/feedbackコマンド自体は残る |
CLAUDE_CODE_SEND_FEEDBACK=0 | 種類環境変数 | 持続期間そのセッションのみ | 止まる範囲SendFeedbackツールのみ |
DISABLE_FEEDBACK_COMMAND=1 | 種類環境変数 | 持続期間変数が設定されている間 | 止まる範囲SendFeedback・/feedback・/bug・/share |
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC | 種類環境変数 | 持続期間変数が設定されている間 | 止まる範囲上記に加え自動更新・テレメトリー・エラーレポートなど非必須通信全体 |
feedbackDrafts: "off"とCLAUDE_CODE_SEND_FEEDBACK=0はどちらも/feedbackコマンド自体を残したまま自動下書きだけを止めますが、持続期間が違います。ユーザー自身が能動的に/feedbackを使う運用は続けたいが、Claudeが勝手に下書きを作る挙動を恒久的に止めたい場合はfeedbackDrafts、そのセッションだけ止めたい場合はCLAUDE_CODE_SEND_FEEDBACK=0を選びます。
設定ファイルと環境変数、どちらを使うべきか
利用形態によって適した経路が変わります。
| 利用形態 | 向いている経路 | 理由 |
|---|---|---|
| 個人の恒常的な好み(常にquietでよい等) | 向いている経路settings.jsonのfeedbackDrafts | 理由一度書けば全セッションに効く |
| 組織でユーザーに変更させたくない | 向いている経路管理者(managed)設定のfeedbackDrafts | 理由ユーザー設定より優先される |
| CI・自動化された一回限りのセッション | 向いている経路CLAUDE_CODE_SEND_FEEDBACK=0 | 理由そのセッションだけ止め、設定ファイルは変えずに済む |
/feedback・/bug・/shareごと止めたい | 向いている経路DISABLE_FEEDBACK_COMMAND=1 | 理由コマンド自体を封じる、下書き機能より広い範囲 |
CI環境やヘッドレス実行では、恒久的な設定変更よりも環境変数での一時無効化のほうが、他の開発者のセッションに影響を残さない分だけ安全です。
組織全体に適用する場合の設定例
チーム全員のセッションで下書き機能を止めたい場合は、個々のユーザー設定ではなく管理者(managed)設定にfeedbackDraftsを書きます。管理者設定はserver-managed settings・MDMポリシー・managed-settings.jsonファイル・ポリシーヘルパーのいずれかで配布します。
{
"feedbackDrafts": "off"
}この値を管理者設定に置くと、各メンバーのユーザー設定に何が書かれていてもoffが優先されます。ユーザー側のsettings.jsonでfeedbackDrafts: "notify"を指定していても、管理者設定が読み込まれた時点で上書きされ、/configの該当行にも管理者側の値が表示されます。逆に個人開発やフリーランスで自分のセッションだけ調整したい場合は、ユーザー設定への記述で十分です。管理者設定を配布する権限がない環境では、DISABLE_FEEDBACK_COMMANDを共有のシェル初期化ファイル(.bashrcや.zshrc)に書いておく方法も、チームの慣習として運用できます。
設定時によくあるつまずき
- プロジェクト設定・ローカル設定に書いても無視される:
feedbackDraftsはユーザー設定と管理者(managed)設定のスコープでのみ有効です。.claude/settings.jsonのようなプロジェクト設定に書いても、Claude Codeはこのキーを無視します - 管理者設定が優先されて変更できない: 組織の管理者が
feedbackDraftsを設定している場合、/configにはその値が表示され、ユーザーが同じ画面から変更しても反映されません - 古い変数名が今も使える:
DISABLE_FEEDBACK_COMMANDにはDISABLE_BUG_COMMANDという旧名があり、こちらも引き続き受け付けられます。ドキュメントやスクリプトでどちらの名前を使っているか混在しないよう統一しておくと管理が楽になります CLAUDE_CODE_SEND_FEEDBACK=1だけでは有効化できない: この変数はアカウント側で機能がすでに許可されている場合の一時的な再有効化スイッチであり、権限そのものを付与するものではありません。組織のポリシーで無効化されている場合は1を設定しても効きません- 無効化してもヒントが的外れになることがあった: v2.1.251より前は、組織のポリシーや環境変数で
/feedbackを無効化していても、ヒントやヘルプメッセージ、拒否メッセージが/feedbackの利用を勧めてくることがありました。v2.1.251でこの不整合は修正済みですが、それより古いバージョンを使っている場合は表示と実際の可否が食い違うことがあります - 現在の設定値は
/configで確認する: どの経路で無効化したかを忘れた場合や、意図した値が反映されているか不安なときは、/configの「Claude-drafted feedback」の行を開けば、ユーザー設定と管理者設定のどちらの値が有効になっているかをその場で確認できます
まとめ
個人利用ならsettings.jsonへのfeedbackDrafts追記、チーム全体への一括適用なら管理者設定への同じキーの配布、CI等の一時停止ならCLAUDE_CODE_SEND_FEEDBACK=0という3経路を状況ごとに選び分けると、送信経路の設計で迷うことは少なくなります。/feedback・/bug・/shareをまとめて止めたいときはDISABLE_FEEDBACK_COMMANDを使います。設定を変えた後は/configを開き、意図した値が反映されているかを確認しておくと安心です。
アンケートの頻度そのものを制御するfeedbackSurveyRateやCLAUDE_CODE_DISABLE_FEEDBACK_SURVEYは、Claude Codeのバグ報告とフィードバック送信(/bug /feedback)で扱っています。