期間: 2026-09-25 〜 2026-09-30 · PR 4 件(新機能 1 / 変更・修正 3 / その他 0)

新機能

sec-default: managed option allowManagedModsOnly で、個人がインストールした mod の読み込みを拒否(#98083)

何ができるようになったか

組織は managed settings の 1 つのオプションで、自組織の mod は許可しつつ、個人がインストールした mod を拒否できるようになった。allowManagedModsOnly は sec-default 自身の pluginConfigs エントリから読まれ、設定されている間は user tier の hooks モジュールを plugin.register の時点ですべて拒否する。

  • 従来の手段との違い: disableAllHooks や hooks モジュールの無効化は組織の mod も止め、allowManagedHooksOnly は個人の settings のフックや status line も止める。このオプションは個人の mod だけに効く
  • 判定: モジュール自身が名乗る名前やパスではなく、CLI がモジュールに付ける tier で判定する。読むのは policy ソースだけで、個人・プロジェクト・--settings のファイルでは設定も緩和もできない。未設定か false でない限り有効
  • 拒否されたモジュール: フック・ツール・コマンドのいずれも登録されない(トップレベルのコードは閉じたコンテキストで一度実行済み)
  • 失敗時: policy の読み取りが拒否されたりフックがエラーになったときはモジュールを拒否し、デバッグログにエラーを出す。sec-default が seated されていない場合は従来どおり mod が読み込まれる

📦 v2.1.285 に収録 · トピック: sec-default

変更・修正

mods: agents-md の部分読み取りの扱いと diff の --no-color を元に戻す(#98018)

Before

#96364 で、agents-md は自動でページ分割された Read をネストした AGENTS.md の部分読み取りとして扱い、#96363 で diff は git diff に常に --no-color を付けていた。

After

2 つの PR を revert し、agents-md と diff の mod はそれ以前の挙動に戻った。

📦 v2.1.285 · トピック: AGENTS.md 対応、Diff パネル

sec-default: settings の deny ルールは、個人がインストールしたプラグインの allow / ask より優先(#98080)

Before

個人がインストールした mod(user tier のプラグイン)が tool.check で allow や ask を返すと、settings の permission deny ルールを事実上無効にできた。

After

sec-default が seated されている環境では、user tier のプラグインが deny ルールより緩い答えを返した場合、user tier を飛ばして判定をやり直し、ルールを名指しした deny ならそれを答えにする。組織のプラグインやビルトインが deny を上書きする場合、deny ルールが無い ask を allow にする場合、ルール名の無い(フックによる)deny は対象外。どのファイルにある deny ルールでも対象になる。

移行が必要

組織として従来の挙動に戻すには、managed settings で pluginConfigs["cc-plugin-sec-default@builtin"].options.allowModsToOverrideDenyRules: true を設定する(policy ソースのみ・リテラルの true のみ有効)。なお sec-default が seated されている環境では、すべてのツール呼び出しで tool.check のチェーンが走るようになる。

📦 v2.1.285 · トピック: sec-default

sec-default: システムプロンプトのセクション構成(prompt.compose)で user tier を飛ばす(#97241)

Before

システムプロンプトを順序付きのセクション一覧として返す prompt.compose のチェーンはエンジン自身の構成で終わっており、組織が管理するマシンでも、個人のプラグインがセクションを削除・並べ替え・書き換えたり、独自の一覧を返したりできた。

After

組織が sec-default を seated している場合、prompt.compose も(prompt.section・prompt.context と同様に)user tier を飛ばして続く(next.to(e, "append"))。飛ばされたプラグインはこのイベントでは実行されない。sec-default が無い環境は変わらず、個人のプラグインは引き続き prompt.submit を使える。型定義(mods/types/claude-code.d.ts)に prompt.compose を追加。

補足

このイベントを知らない公開済み CLI はそれを名指しする hooks モジュールを拒否するため、sec-default のテストはイベントを持つ CLI が公開されるまで失敗する(PR 本文より)。

⏳ 未リリース · トピック: sec-default

その他

なし