Claude Code更新 脆弱性を自動検知・スキル自動ロード【5/24〜30】

記事タイトルとURLをコピーする

はじめに

サーバーワークスの池田です。

今週(5/24〜5/30)の Claude Code は v2.1.152 から v2.1.158 まで6バージョンがリリースされました(v2.1.151 と v2.1.155 は npm に公開されていない欠番です)。

期間中には Claude Opus 4.8 と dynamic workflows という大型のリリースもありました。これらは別記事で詳しく扱っているため、本記事では CLI 本体とプラグイン周りの実務的な変更を中心にまとめます。

なかでも注目は、コードの脆弱性をその場で検知・修正する security-guidance プラグインと、プラグイン/スキルをマーケットプレイスなしでローカルから自動ロードできるようになった点です。

この記事で分かること

  • Claude が書いたコードの脆弱性を3段階で検知・修正する security-guidance プラグインの仕組みと、導入・カスタマイズ方法
  • .claude/skills に置くだけでプラグインが自動ロードされる仕組みと、claude plugin init/reload-skillsdisallowed-tools を含むスキル/プラグイン運用の強化
  • Claude Opus 4.8・dynamic workflows・Fast mode という今週の大型リリースの位置づけ(詳細は別記事)
  • /model の既定保存が逆転した点、/simplify/code-review の再整理など、前週からの続報となるコマンド・設定の変更
  • Auto mode のクラウドプロバイダ対応、MCP の WebSocket トランスポートなど、その他の変更点

今週の主要アップデート一覧

機能 バージョン 主な変更点 参照
security-guidance プラグイン プラグイン(CLI v2.1.144 以降) Claude が書いたコードを編集時・ターン終了時・commit/push 時の3段階で脆弱性レビューし、同じセッションで修正。全プランで利用可能 Security guidance
プラグイン/スキルのローカル自動ロード v2.1.157・v2.1.152 .claude/skills 配下の .claude-plugin/plugin.json を自動ロード。claude plugin init/reload-skillsdisallowed-tools を追加 PluginsSkills
Opus 4.8・dynamic workflows・Fast mode v2.1.154 Opus 4.8 が既定モデルに。dynamic workflows が研究プレビュー公開。Fast mode が Opus 4.8 に対応(詳細は別記事) Model configWorkflows

注目アップデート1 security-guidance プラグインでコードの脆弱性をその場で検知する

前提 — 脆弱性チェックはPRや人間の目に頼っていた

Claude Code はコードを書きますが、そのコードに脆弱性が含まれていないかは、これまで主に PR レビューや人間の確認に委ねられていました。書いている最中に危険なパターンを検知する仕組みは標準では用意されていませんでした。

エージェントが実際の権限でコードを書く場面が増えるなか、問題が PR まで進んでから発覚すると手戻りが大きくなります。日本のコミュニティでも、このプラグインの公開は今週特に注目を集めました。

何が変わったのか — 3段階で自分のコードをレビューする

今週、Anthropic 公式マーケットプレイスから security-guidance プラグイン(セキュリティガイダンスプラグイン)が公開されました。Claude が自分のコード変更を脆弱性の観点でレビューし、同じセッション内で修正する仕組みです。

インストール後は自動で動き、呼び出すコマンドはありません。レビューは深さの異なる3地点で実行されます。

タイミング レビュー内容 モデル呼び出し
各ファイル編集時 危険なパターンの高速マッチ なし(コスト0)
各ターン終了時 そのターンの差分を別 Claude がセキュリティレビュー あり(バックグラウンド)
commit/push 時 周辺コードまで読む深いエージェント的レビュー あり(バックグラウンド)

脆弱性を含むファイルの作成時に、編集時フックが evalpickle.loadsos.system の3パターンを検知し、Claude がその警告を報告している様子

3段階のレビューはそれぞれ深さが違う

各ファイル編集時のチェックは、モデルを使わない文字列マッチです。eval(new Functionos.systemchild_process.exec といった動的コード実行、pickle による安全でないデシリアライズ、dangerouslySetInnerHTML.innerHTML = などの DOM インジェクション、.github/workflows/ 配下の編集を検知します。

ターン終了時のレビューは、そのターンで変更された差分を別の Claude に送ります。認可バイパス・安全でない直接オブジェクト参照(IDOR)・インジェクション・SSRF・弱い暗号など、文字列マッチでは拾えない問題を対象とします。バックグラウンドで動くため、応答は遅延しません。

commit/push 時のレビューは、呼び出し元やサニタイザー、関連ファイルまで読んで、指摘が本物かを判断します。単体では危険に見えても文脈上は安全なパターンの誤検知を抑えるためです。

レビューする Claude は別インスタンスになっている

このプラグインは、コードを書いたのと同じ Claude に自己採点させません。ターン終了時と commit 時のレビューは、新しいコンテキストとセキュリティ特化のプロンプトを持つ別の Claude 呼び出しとして実行されます。

レビュー担当は差分から出発し、元の実装方針への思い入れを持たず、問題を見つけることだけを指示されます。レビュー用モデルは既定で Claude Opus 4.7 が使われ、ターン終了時レビューは SECURITY_REVIEW_MODEL、commit/push レビューは SG_AGENTIC_MODEL でそれぞれ変更できます。

フックで自動実行されるので、使う側は何もしなくてよい

このプラグインは、Claude Code の「フック」(Claude の動作の特定タイミングで自動実行される仕組み)だけで構成されています。スラッシュコマンドやスキルは追加されず、/security-guidance のように呼び出すものではありません。

フックは、ファイルを編集したとき・ターンが終わったとき・Claude が commit や push を実行したときに自動で発火します。3段階のレビューはこのフックで裏側を走るため、インストールしておけば、普段どおり Claude にコードを書かせるだけで、意識せずレビューが効きます。

なお、編集時のパターンチェックの警告は、画面に常時表示されるのではなく Claude のコンテキストに渡されます。人間に見せるためではなく、Claude にその場で気づかせて修正させるための設計です。

組織やプロジェクト固有のルールを追加できる

プラグインには2つの拡張点があります。いずれも組み込みチェックに追加する形で、組み込みを無効化することはできません。

モデルによるレビューには .claude/claude-security-guidance.md を置き、脅威モデルやレビュー項目を自然言語で記述します。

# Security guidance for this repo

- Do not log `customer_id` or `account_number` at INFO level or above.
- All routes under `/admin` must call `require_role("admin")` before any database read.
- Use `crypto.timingSafeEqual` for token comparison instead of `===`.

編集時の文字列マッチには .claude/security-patterns.yaml を置き、正規表現や部分文字列のルールを追加します。最大50ルールまで読み込まれます。

これらのルールファイルは、ユーザー・プロジェクト・プロジェクトローカルの3スコープで探索されます。ユーザースコープのファイルをデバイス管理(MDM)で配布すれば、組織全体に同じルールを適用できます。

導入は2コマンドで完了する

公式マーケットプレイスからインストールし、現在のセッションに反映させます。

/plugin install security-guidance@claude-plugins-official
/reload-plugins

インストール時にスコープを聞かれます。ユーザースコープを選ぶと、このマシンで開く新規ローカルセッションすべてに読み込まれます。Web 版や共有リポジトリで全員に有効化したい場合は、プロジェクトの .claude/settings.json に宣言します。

{
  "enabledPlugins": {
    "security-guidance@claude-plugins-official": true
  }
}

利用には CLI v2.1.144 以降と、PATH 上の Python 3.8 以降、git リポジトリが必要です。初回実行時に ~/.claude/security/ へ仮想環境を作成し、Claude Agent SDK を導入します。

注意点・制約

このプラグインはどの層も書き込みや commit をブロックしません。指摘は修正指示として Claude に渡され、レビューモデルが見逃す可能性もあります。多層防御の1層として扱い、完全なセキュリティ対策とはみなさない前提です。

! のシェルエスケープや自分のシェルから実行した commit はレビュー対象外です。ターン終了時レビューは1ターン最大30ファイル・連続最大3回、commit/push レビューは1時間あたり最大20回という上限があります。

公式ドキュメントでは、このプラグインを多層防御の最も早い段階に位置づけています。

段階 ツール カバー範囲
セッション中 security-guidance プラグイン Claude が書いたコードの一般的な脆弱性を同じセッションで修正
オンデマンド /security-review 現在のブランチへの一回限りのセキュリティパス
PR 時 Code Review(Team・Enterprise) コードベース全体の文脈を持つマルチエージェントレビュー
CI 既存の静的解析・依存スキャナ 言語固有ルール・サプライチェーン・ポリシー適用

後段ほど前段が見逃したものを拾う構成で、このプラグインの価値は後段に届く量を減らすことにあります。

注目アップデート2 プラグインとスキルがローカルから自動ロードできるようになった

前提 — プラグインはマーケットプレイス前提だった

これまでプラグインを使うには、マーケットプレイスからインストールするか、起動のたびに --plugin-dir を渡す必要がありました。手元で作ったプラグインを常用するには手間がかかっていました。

一方スキルは、~/.claude/skills/ やプロジェクトの .claude/skills/ に置けば利用できます。ただしセッション開始時に存在しなかったトップレベルのスキルディレクトリを新規作成した場合は、再起動が必要でした。

何が変わったのか — skills ディレクトリに置くだけで自動ロード

v2.1.157 から、.claude/skills 配下に .claude-plugin/plugin.json を含むフォルダを置くと、<name>@skills-dir という名前のプラグインとして自動ロードされるようになりました。マーケットプレイスもインストール操作も不要です。

新規にスキャフォールドする場合は claude plugin init <name> を使います。

claude plugin init my-tool

これで ~/.claude/skills/my-tool/plugin.json マニフェストと開始用の SKILL.md が作られ、次のセッションから my-tool@skills-dir として読み込まれます。プラグインキャッシュにコピーされず、その場で発見される点がマーケットプレイス経由との違いです。

claude plugin list の「Skills-directory plugins」欄に、.claude/skills/ 配下の my-tool@skills-dirloaded として表示されている様子

再起動なしでスキルを反映する /reload-skills

v2.1.152 で /reload-skills コマンドが追加されました。セッションを再起動せずにスキルディレクトリを再スキャンします。前提で触れた「新規ディレクトリには再起動が必要」という制約を、このコマンドで解消できます。

あわせて SessionStart フックが reloadSkills: true を返せるようになりました。フックがインストールしたスキルを、同じセッション内で利用可能にできます。hookSpecificOutput.sessionTitle でセッションタイトルを設定することも可能になりました。

スキルから特定のツールを外す disallowed-tools

v2.1.152 で、スキルとスラッシュコマンドの frontmatter に disallowed-tools を設定できるようになりました。そのスキルがアクティブな間、指定したツールを Claude の利用可能プールから外します。

たとえばバックグラウンドループのように人へ問い合わせるべきでない自律スキルで、AskUserQuestion を呼ばせない用途に使えます。スペースまたはカンマ区切りの文字列か YAML リストで指定し、次のメッセージ送信で制限が解除されます。

実務での活用方法

自作のスキルやプラグインを試す反復が速くなります。claude plugin init で雛形を作り、編集して /reload-skills で反映する流れが、再起動を挟まずに回せます。

プロジェクトの .claude/skills/ に置いたプラグインは、初回にワークスペースの信頼ダイアログを承認してから読み込まれます。リポジトリを信頼する前にプロジェクトのスキルを確認する運用は、これまでと同様に必要です。

注目アップデート3 Opus 4.8・dynamic workflows・Fast mode(詳細は別記事)

今週は CLI 本体だけでなく、モデルとオーケストレーションの大型リリースもありました。本記事では概要に留め、詳細は別途公開している専用記事に譲ります。

Claude Opus 4.8(v2.1.154)は、Max・Team Premium・Enterprise pay-as-you-go・Claude API で既定モデルになりました。既定の effort は high で、難しいタスクには /effort xhigh が推奨されます。利用には v2.1.154 以降が必要です。

dynamic workflows(動的ワークフロー)(v2.1.154)は、Claude が記述するスクリプトを多数のサブエージェントでバックグラウンド実行する研究プレビュー機能です。1つの会話では調整しきれない大規模なタスクに向きます。実行管理は /workflows で行います。

Fast mode(v2.1.154)は Opus 4.8 に対応し、標準の2倍の料金で約2.5倍の速度になりました。

これらの背景・ベンチマーク・使い方は、別記事で詳しく解説しています。本記事ではこれ以上は立ち入りません。

コマンド・設定の変更(前週からの続報)

前週(5/17〜23)に取り上げたコマンドの挙動が、今週さらに変わりました。続けて触っている方は影響を受けるため、まとめて整理します。

/model の既定保存が逆転した(d → s)

前週の記事では、/model がセッション単位になり、新規セッションの既定にしたいときは d を押して保存する、と紹介しました。今週 v2.1.153 で、この挙動が逆転しています。

/model での選択(または /model <name> の直接指定)は、既定としてユーザー設定に保存されるようになりました。現在のセッションだけに適用したい場合は、ピッカーで s を押します。IDE 版と挙動を揃えた形です。

これにあわせてキーバインドも変わりました。前週の記事どおり d を押す操作のままだと、意図と逆の結果になる可能性があります。

項目 前週(v2.1.144) 今週(v2.1.153)
既定の挙動 セッション限定 既定として保存
既定保存の操作 d を押す 既定で保存される
セッション限定の操作 既定の挙動 s を押す
キーバインド名 modelPicker:setAsDefault modelPicker:thisSessionOnly

キーバインドをカスタマイズしている場合は、keybindings.jsonmodelPicker:setAsDefaultmodelPicker:thisSessionOnly に変更します。

/simplify が「クリーンアップ専用」で再登場した

前週の記事では、/simplify/code-review に改名され、役割がバグ報告に変わったと紹介しました。今週 v2.1.152〜154 で、/simplify がクリーンアップ専用のコマンドとして再び登場しています。

新しい /simplify は、正確性のバグを探さず、再利用・簡素化・効率・抽象度の観点でレビューして修正を適用します。バグ検出が必要なら /code-review を使います。

/code-review 側は effort レベルを指定でき、--fix で修正を作業ツリーに適用し、ultra でクラウド上の深いマルチエージェントレビューを起動します。スクリプトで /simplify をバグ検出に使っていた場合は移行が必要です。

claude agents でシェルコマンドをバックグラウンドジョブにできる

前週から地固めが進む claude agents に、今週は新しい操作が加わりました。v2.1.154 で、ディスパッチ入力に ! <command> と打つと、シェルコマンドをアタッチ・デタッチ可能なバックグラウンドセッションとして実行できます。claude --bg --exec '<command>' でも同じことができます。

v2.1.157 では、settings.jsonagent フィールドがディスパッチ時の既定サブエージェントとして尊重され、--agent <name> で上書きできるようになりました。

/effort スライダーのラベルが変わった

/effort スライダー。両端のラベルが「Faster」「Smarter」になっている

v2.1.154 で、/effort スライダーのラベルが「Speed」「Intelligence」から「Faster」「Smarter」に変わりました。表示上の変更で、設定値そのものに影響はありません。

その他の変更点

今週はバグ修正が中心で、特に claude agents とバックグラウンドセッション周りの安定化が多く入りました。ここでは運用への影響が大きいものを抜粋します。

変更点 区分 バージョン 参照
Auto mode が Bedrock・Vertex・Foundry で Opus 4.7/4.8 に対応(CLAUDE_CODE_ENABLE_AUTO_MODE=1 でオプトイン) 新機能 v2.1.158 CHANGELOG.md
Auto mode が opt-in の同意なしで利用できるようになった 改善 v2.1.152 CHANGELOG.md
MCP の WebSocket トランスポート(type: "ws")を追加。サーバーが Claude へ非同期にイベントを push する用途向け 新機能 v2.1.158 MCP
--prompt-suggestions フラグを追加。--print--output-format stream-json--verbose 併用時に、次のプロンプト予測を出力 新機能 v2.1.158 CLI reference
primary モデルが見つからないとき、セッションの残りを --fallback-model に切り替える(毎リクエスト失敗させない) 改善 v2.1.152 CHANGELOG.md
lean system prompt が、Haiku・Sonnet・Opus 4.7 以前を除く全モデルで既定に 改善 v2.1.154 CHANGELOG.md
選択式の質問を、本当に判断できない場面に限定(文脈が足りているときは質問せず進める) 改善 v2.1.154 CHANGELOG.md
Vim モードの NORMAL モードで / が逆方向の履歴検索を開く(bash/zsh の vi モードと同じ) 改善 v2.1.152 CHANGELOG.md
claude mcp listget が未承認の .mcp.json サーバーを ⏸ Pending approval と表示(パイプ時に自動承認・接続しない) 改善 v2.1.154 CHANGELOG.md
Claude in Chrome で /chrome →「Select browser…」から使用ブラウザを選べる 改善 v2.1.154 CHANGELOG.md
ステータスラインのコマンドに COLUMNSLINES 環境変数を提供(端末幅に合わせた出力が可能に) 改善 v2.1.153 CHANGELOG.md
macOS のバックグラウンドエージェントが「Claude Code」として表示され、アップグレード後も権限を維持 改善 v2.1.153 CHANGELOG.md

まとめ・次週の注目ポイント

今週の主役は security-guidance プラグインでした。Claude が書いたコードを編集時・ターン終了時・commit 時の3段階でレビューし、同じセッションで修正する仕組みは、PR まで届く問題の量を減らす実務的な機能です。全プランで利用でき、編集時のパターンチェックはモデルを呼ばずコスト0、ターン終了時と commit/push のレビューは通常の Claude リクエスト同様に利用量を消費します。

プラグインとスキルがローカルから自動ロードできるようになったことで、自作ツールの配布と反復が軽くなりました。/reload-skills を含め、スキルを日常的に作る人にとって使い勝手が確実に上がっています。

Opus 4.8 と dynamic workflows という大型リリースの裏で、claude agents とバックグラウンドセッションの安定化も着実に進んだ1週間でした。来週も、公開されたばかりのワークフローやセキュリティ機能の周辺整備が続くか、注目していきます。

池田 智耶(執筆記事の一覧)

ディベロップメントサービス2課

生成AI関連の記事を中心に執筆!