この記事ではClaude Code v2.1.152(2026-05-27リリース、v2.1.151は欠番)に特化して解説します。Claude Code全般は Claude Code完全ガイド2026:インストールから本番運用まで をご覧ください。直前の更新は Claude Code v2.1.146〜150|/usageカテゴリ別・/code-review改称・PowerShell権限昇格Fix を参照してください。
- v2.1.150・v2.1.151が内部変更のみだったため、v2.1.149以来の機能追加が v2.1.152 に集中
- disallowed-tools フロントマターで、スキル/スラッシュコマンドが有効な間だけ特定ツールをモデルから取り上げられる
- /reload-skills でセッション再起動なしにスキルディレクトリを再スキャン。スキル開発ループが高速化
- SessionStart フックが
reloadSkills: trueでフック内インストールスキルを同一セッションで有効化、sessionTitleでセッション名も設定可能に - 新 MessageDisplay フックで、アシスタント出力を表示直前に変換・非表示できる
- /simplify が
/code-review --fixのエイリアスとして復活(前回記事で「消えた」と書いたコマンドが戻った) - プライマリモデルが見つからないとき、セッション全体が
--fallback-modelに切り替わるようになった
v2.1.151〜152:Skill/ツール面の「動的化」が主題
Claude Codeはほぼ1日1リリースのペースで更新が続いていますが、5月下旬は内部リリースが続いた後にまとまった機能追加が来る形になりました。直前の v2.1.146〜150 で扱った通り、v2.1.150はユーザー向け変更のない内部インフラ改善でした。続く v2.1.151 も公式changelogに記載がなく欠番扱いです。結果として、v2.1.149以来の本格的な機能追加が v2.1.152 に集中しています。
v2.1.152の変更を一言でまとめると、「実行中のSkillとツール面を、セッションを止めずに作り替えられるようにする」動的化です。これまでSkillやツールの構成は、セッション開始時にスキャンされたら基本的に固定でした。v2.1.152では次の4点がその前提を崩します。
SessionStart フック"] -->|"reloadSkills: true"| B["フックが入れた
スキルを即スキャン"] A -->|"sessionTitle"| C["セッション名を設定"] B --> D["実行中のセッション"] D -->|"/reload-skills"| E["スキルを再スキャン
(再起動なし)"] E --> D D -->|"スキル有効化"| F["disallowed-tools で
ツールを動的に取り上げ"] F -->|"スキル終了"| D D -->|"出力表示の直前"| G["MessageDisplay フックで
変換・非表示"] G --> H["ユーザーに表示"]
下表が v2.1.152 の主要変更の俯瞰です。影響度の大きい順に本文で深掘りします。
| カテゴリ | 変更 | 効くケース |
|---|---|---|
| Skill/ツール | disallowed-tools フロントマター追加 |
スキル有効時に特定ツールを取り上げたい |
| Skill | /reload-skills コマンド追加 |
スキルを書きながらテストする開発ループ |
| フック | SessionStart の reloadSkills / sessionTitle |
フックでスキルを配布・セッション名を自動設定 |
| フック | MessageDisplay イベント追加 |
出力のマスク・整形・行の畳み込み |
| コマンド | /code-review --fix と /simplify 復活 |
レビュー指摘をワーキングツリーに自動適用 |
| モデル | --fallback-model へのセッション切替 |
プライマリモデルが見つからない障害時 |
| UX | Auto mode同意不要化・Vim / 逆方向検索・thinking要約改善 |
日常の操作感 |
disallowed-tools フロントマター:スキル有効時にツールを取り上げる
v2.1.152の目玉のひとつが、Skillとスラッシュコマンドのフロントマターでツールをブロックする disallowed-tools です。公式の表現では「スキルが有効な間、モデルから特定のツールを取り除く」動作をします。
allowed-tools との違い
これまでスキルには allowed-tools(使ってよいツールの許可リスト)がありました。disallowed-tools はその逆方向の制御です。
| 観点 | allowed-tools | disallowed-tools(v2.1.152〜) |
|---|---|---|
| 方向 | 許可リスト(ホワイトリスト) | 拒否リスト(ブラックリスト) |
| 書き方 | 使ってよいツールを列挙 | 取り上げたいツールを列挙 |
| 向くケース | 触れるツールを最小限に絞りたい | ほぼ全ツール許可だが一部だけ封じたい |
| 適用範囲 | スキルが有効な間 | スキルが有効な間 |
両者は補完関係です。「ほとんどのツールは使ってよいが、このスキルの最中だけは絶対にファイルを書き換えさせたくない」というケースでは、allowed-tools で全ツールを再列挙するより disallowed-tools で1〜2個を外すほうが圧倒的に簡潔です。
書き方の例
調査・要約専用スキルで、誤ってファイルを書き換えないように Edit / Write / NotebookEdit を取り上げる例です。
---
name: research-only
description: コードベースを調査して要約するだけのスキル。変更は一切行わない。
disallowed-tools: Edit, Write, NotebookEdit
---
あなたは調査専用エージェントです。対象を読み取り、要約と参照箇所を返します。
ファイルの変更・作成は行いません(ツールが無効化されています)。
このスキルが有効な間、モデルの手元から Edit / Write / NotebookEdit が消えます。プロンプトで「書き換えないで」とお願いするのと違い、ツール自体が存在しないため、モデルが意図せず書き換えてしまう事故が構造的に防げます。スキルが終了すれば、ツールは元通り戻ります。
プロンプトでの「〜しないでください」という指示は、長いセッションや込み入った文脈で破られることがあります。disallowed-tools はモデルの能力そのものを物理的に外すため、「絶対にやってほしくない操作」を確実に封じたいときに効きます。レビュー専用・調査専用・読み取り専用のスキルと相性が良い機能です。
スラッシュコマンドのフロントマターでも同じキーが使えます。たとえば /audit のような読み取り専用コマンドを定義する際に、disallowed-tools で破壊的ツールを外しておけば、コマンド実行中の安全性が担保できます。
/reload-skills:再起動なしでスキルを再スキャン
/reload-skills は、セッションを再起動せずにスキルディレクトリを再スキャンする新コマンドです。
これまでの開発ループには明確な摩擦がありました。.claude/skills/ に新しいスキルを置いたり、既存スキルのフロントマターを編集したりしても、起動中のセッションには反映されません。変更を試すには claude を一度終了して起動し直す必要があり、起動のたびにコンテキストもリセットされていました。
# v2.1.152 以降のスキル開発ループ
$ claude
> # .claude/skills/my-skill/SKILL.md を別エディタで編集
> /reload-skills
✓ Rescanned skill directories. 1 skill updated: my-skill
> /my-skill # 編集が即反映された状態でテストできる
スキルを書きながら挙動を確認する作業が、再起動の往復なしで回せるようになります。特に description のトリガー精度を調整したり、disallowed-tools の効き方を確認したりする反復作業で効果が大きい変更です。
SessionStart フック:reloadSkills と sessionTitle
SessionStart フックに2つの能力が加わりました。
reloadSkills でフック内インストールを同一セッションに反映
SessionStart フックが reloadSkills: true を返すと、スキルディレクトリが再スキャンされ、そのフックがインストールしたスキルを同じセッション内で即座に使えるようになります。
これは /reload-skills の自動版です。たとえば「セッション開始時にプロジェクト固有のスキルをリポジトリから取得して .claude/skills/ に展開する」フックを書いている場合、これまではスキルを配置できても、その起動セッションでは使えませんでした(次回起動から有効)。reloadSkills: true を返せば、配布したスキルがそのまま使えます。
#!/usr/bin/env bash
# .claude/hooks/session-start-install-skills.sh
# プロジェクト共有スキルを取得して配置するSessionStartフック
mkdir -p .claude/skills
cp -r ./shared-skills/* .claude/skills/ 2>/dev/null
# 配置したスキルを同一セッションで有効化する
cat <<'JSON'
{
"hookSpecificOutput": {
"reloadSkills": true,
"sessionTitle": "プロジェクトX 共有スキル適用済み"
}
}
JSON
sessionTitle でセッション名を設定
同じく SessionStart フックで、hookSpecificOutput.sessionTitle を返すとセッションのタイトルを設定できます。起動時(startup)だけでなく再開時(resume)にも効きます。
claude agents で複数のバックグラウンドセッションを並行運用していると、どのセッションが何の作業なのか区別がつきにくくなります。sessionTitle をフックで自動付与すれば、「ブランチ名+タスク種別」のような分かりやすい名前を機械的に振れます。前回記事の /usage カテゴリ別ブレイクダウン と組み合わせれば、セッションごとのコストと内容を名前付きで管理できます。
MessageDisplay フック:出力を表示直前に変換・非表示
新設された MessageDisplay フックは、アシスタントのメッセージテキストが画面に表示される直前に、その内容を変換したり非表示にしたりできるイベントです。
重要なのは、これが表示レイヤーの加工であって、モデルが生成した内容そのものを書き換えるわけではない点です。モデルの出力は出力として残り、ユーザーに見せる表現だけを差し替えます。
想定される使い方を整理します。
| 用途 | 動作 | 例 |
|---|---|---|
| マスキング | 機密パターンを伏せ字に置換 | 社内トークン・APIキー形式の文字列を *** に |
| 整形 | 表記ゆれを統一して表示 | 用語の正規化、改行・空白の調整 |
| 畳み込み | 特定パターンの行を非表示 | 冗長なデバッグ出力・定型の前置きを隠す |
| ローカライズ | 表示時に言い換え | 定型フレーズを社内用語に置換 |
#!/usr/bin/env bash
# .claude/hooks/message-display-mask.sh
# 表示直前にトークン様の文字列をマスクするMessageDisplayフック
# 標準入力でアシスタントメッセージ本文を受け取る想定
INPUT="$(cat)"
MASKED="$(printf '%s' "$INPUT" | sed -E 's/(sk-[A-Za-z0-9]{8})[A-Za-z0-9]+/\1***REDACTED***/g')"
# 変換後のテキストを返す
printf '%s' "$MASKED"
- 表示だけが変わる: モデルが受け取る文脈やログに残る生テキストは変換前のまま。監査ログを別管理している場合はそちらの加工も別途必要
- 過剰なマスキングは混乱のもと: 必要な情報まで隠すと、ユーザーがモデルの意図を読み取れなくなる。封じるパターンは最小限に
- パフォーマンス: 全アシスタントメッセージの表示経路に挟まるため、重い処理を書くと体感速度に響く
機密情報の取り扱いに厳しい組織では、「LLM出力を画面に出す前に必ずDLP(データ漏洩防止)フィルタを通す」という要件を満たす手段として有用です。これまではターミナル出力を後段で加工する仕組みが無く、出力をそのまま見せるしかありませんでした。
/code-review –fix と /simplify の復活
前回記事で「/simplify が /code-review に改称され、旧 simplify の動作は削除された」と書きました。v2.1.152で、この話に続きがあります。
–fix でレビュー指摘をワーキングツリーに適用
/code-review --fix は、レビュー後にその指摘を実際にワーキングツリーへ適用します。適用対象は「再利用(reuse)・単純化(simplification)・効率化(efficiency)」の提案です。つまり、レビューで見つかった改善点を、報告で終わらせずにコードへ反映するモードです。
/simplify はエイリアスとして復活
そして /simplify は、この /code-review --fix を呼び出すエイリアスとして復活しました。
# v2.1.147: /simplify は /code-review に改称され、単純化動作は削除されていた
# v2.1.152: /simplify が /code-review --fix のエイリアスとして復活
# レビューして指摘をワーキングツリーに適用
/code-review --fix
# 上と等価(再利用・単純化・効率化の提案を適用)
/simplify
v2.1.147の改称で「コードを単純化する」意図のコマンドが一時的に消えていましたが、v2.1.152ではレビュー結果の自動適用という形でその意図が戻ってきました。リファクタリング目的で /simplify を使っていたユーザーは、再びコマンド一発で改善を反映できます。
/code-review(フラグなし)は指摘の報告のみ。/code-review --fix と /simplify は指摘を適用まで行います。レビュー内容を自分で確認してから手で直したいときはフラグなし、提案を一気に取り込んでから差分で確認したいときは --fix / /simplify、と使い分けると安全です。適用後は必ず git diff で内容を確認してください。
fallback-model:プライマリ不在時にセッション全体を切り替え
運用面で地味に効くのが、プライマリモデルが見つからないときの挙動変更です。
これまでは、設定したプライマリモデルが見つからない場合、各リクエストが失敗していました。v2.1.152では、プライマリモデルが見つからないと残りのセッション全体が --fallback-model に切り替わります。リクエストごとに失敗し続けるのではなく、フォールバックモデルで作業を継続できます。
# フォールバックモデルを指定して起動
$ claude --model claude-opus-4-7 --fallback-model claude-sonnet-4-6
# プライマリ(opus-4-7)が見つからない状況になると、
# 以降のセッションは自動的に sonnet-4-6 に切り替わって継続
モデルのリネームやリージョン障害、一時的な可用性低下で特定モデルが引けなくなったときに、セッションが丸ごと止まらずに済みます。長時間動かすバックグラウンドセッションほど恩恵が大きい変更です。
その他の主要変更
機能追加・改善のうち、日常運用に効くものを抜粋します。
| 変更 | 内容 |
|---|---|
| Auto mode 同意不要化 | Auto modeがオプトインの同意を求めなくなった |
Vim / 逆方向検索 |
NORMALモードの / がCtrl+R相当の逆方向履歴検索を開く(bash/zshのviモードと一致) |
/usage 大容量セッション対応 |
/usage の内訳に大きいセッションファイルを含め、ストリーミング読み込みでメモリ使用量を一定に |
| thinking要約の可読性 | 折りたたみ表示のthinking要約が最低3秒は残り、Markdownで描画、10行で打ち切り(Ctrl+Oで全文) |
| フルスクリーンの思考カウンタ | 「Thinking for Ns」がライブでカウントアップし、中断しても値を保持 |
| 背景タスクの待機表示 | 応答後タイマーが「Waiting for N background agents/workflows to finish」を表示し、完了後に累計時間を報告 |
| プラグイン管理設定 | pluginSuggestionMarketplaces マネージド設定で、提案対象の組織マーケットプレイスを管理者が許可リスト化 |
marketplace remove --scope |
claude plugin marketplace remove が --scope user\|project\|local を受け付ける |
OTEL app.entrypoint |
セッションのエントリポイントをOpenTelemetryメトリクス属性として記録(OTEL_METRICS_INCLUDE_ENTRYPOINT=trueでオプトイン) |
/usage の大容量セッション対応は、前回記事で扱った カテゴリ別ブレイクダウン の延長線上にあります。大きなセッションファイルを含めても、ストリーミング読み込みでメモリが膨らまないよう手当てされました。
注目のバグ修正
v2.1.152には多数のバグ修正も含まれます。運用影響が大きいものを挙げます。
cache_creation_input_tokensが0と報告される問題を修正。APIがキャッシュ書き込みをネストしたcache_creation内訳でのみ報告するケースで、トランスクリプトと結果のusageが0になっていた- モデル/ログイン切替後にセッションが固まる問題を修正。古いthinkingブロックの署名が履歴に残るのが原因で、先回りで除去+リトライのセーフティネットを追加
- Claude Code Remoteでegressプロキシ有効時にリモートMCPサーバへ接続できない問題を修正
- 拡張ツール結果内のリンクをクリックすると、リンクが開かずにセクションが畳まれる問題を修正
- 同一コマンドだが環境変数が異なるプラグインMCPサーバが、誤って重複排除される問題を修正
cache_creation_input_tokens の修正は、トークン消費を計測してコスト管理しているチームにとって地味に重要です。これまでキャッシュ書き込み分が0計上されていた環境では、計測値が実態とずれていた可能性があります。
アップデート方法
ターミナルで以下のいずれかを実行します。
# Homebrewインストールの場合
brew upgrade claude-code
# claudeコマンドからの直接アップデート
claude update
# バージョン確認
claude --version # 2.1.152 以降を確認
WindowsでWinget経由インストールの場合は winget upgrade Anthropic.Claude を使います。Auto-updater(CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1)を有効にしているユーザーは、起動時にバックグラウンドで更新が走ります。前回の v2.1.147 で auto-updater 自体の信頼性が改善されているため、これまで自動更新に失敗していた環境でも成功率は上がっているはずです。
実務での影響:誰がいま更新するべきか
| 利用パターン | 更新優先度 | 理由 |
|---|---|---|
| 独自スキルを書いている開発者 | 高 | /reload-skills と disallowed-tools で開発ループと安全性が大幅改善 |
| フックでスキルを配布する運用 | 高 | SessionStart の reloadSkills で同一セッション反映が可能に |
| 機密情報の表示制御が必要な組織 | 高 | MessageDisplay フックで出力のマスク・整形が可能に |
/simplify をリファクタで使っていた |
要確認 | /code-review --fix のエイリアスとして復活、適用後は git diff 確認 |
| 複数モデルを切り替えて運用 | 中 | プライマリ不在時に --fallback-model でセッション継続 |
| トークン消費を計測している | 中 | cache_creation_input_tokens 0報告のバグ修正で計測精度が回復 |
| Vimキーバインドを多用 | 低 | NORMALモードの / が逆方向履歴検索に |
| 軽く対話だけで使う | 低 | thinking要約・カウンタなどUX改善が中心 |
破壊的変更や非推奨化はなく、既存ワークフローを壊さずに更新できるリリースです。スキルやフックをカスタムで運用している層ほど恩恵が大きいため、その層は優先して更新する価値があります。
まとめ:Skill/ツール面が「実行中に組み替えられる」段階へ
v2.1.152を俯瞰すると、Claude CodeがSkillとツール面を実行中に動的に組み替えられる段階へ進んだことが分かります。
disallowed-toolsは、スキルが有効な間だけツールを取り上げる能力の動的制御/reload-skillsとSessionStartのreloadSkillsは、スキル構成を再起動なしで差し替える手段MessageDisplayフックは、出力の表示そのものを加工する新しいレイヤー
前回扱った v2.1.146〜150 では、/usage カテゴリ別ブレイクダウンで「自分のコスト構造を内側から見る」手段が整いました。今回の v2.1.152 では、その内側を実行中に作り替える手段が加わった形です。可視化(v2.1.149)→ 動的制御(v2.1.152)という流れで、Claude Codeの自己管理能力が一段深くなりました。
さらに Claude Code v2.1.140〜143|claude agentsフラグ大量追加・Fast ModeがOpus 4.7 で議論したように、Anthropicは claude agents を長時間常駐するエージェントの入口として育てています。常駐セッションのスキル構成を /reload-skills で差し替え、出力を MessageDisplay で制御し、プライマリ障害時は --fallback-model で継続する──v2.1.152の各機能は、この「止めずに動かし続けるエージェント」という方向性に一貫して寄与しています。
次回以降は、disallowed-tools のスコープをサブエージェント単位に広げる、MessageDisplay をストリーミング途中にも適用する、といった粒度の細かい動的制御へ展開していく可能性があります。
参照ソース
- Claude Code Official Changelog — Anthropic公式changelog(v2.1.152)
- Claude Code GitHub Releases — Anthropic公式GitHubリリースノート
- Claude Code Hooks リファレンス —
SessionStart/MessageDisplayフックの公式リファレンス - Claude Code Skills 公式ドキュメント — スキルのフロントマター(
allowed-tools/disallowed-tools)リファレンス