Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
独立メディア
いかなるプロジェクトとも無提携
Claudeスキルを学んで、すべてをもっとうまくやろう
claudeskill-me.com
最新
Claude Code 2.1.299へ上げる前に確認:MCP allowルールの厳格化、名前に妙な文字を含むスキルの除外、UserPromptSubmitフックの実行順の変更  ·  Claude Codeにアイドル圧縮が追加:200Kトークン超の会話は約54分の放置で自動圧縮——節約できるのはキャッシュ費用、失うのは細部かもしれない  ·  forkサブエージェントは空白から始めず会話全体を引き継ぐ——v2.1.302からVS Code、デスクトップ、ヘッドレスでも既定で有効に  ·  claude plugin evalの仕組み:「入れた場合/入れない場合」の差Δでスキルの効果を測る——そしてΔがCIを落とさない理由  ·  Claude Codeのフックは既定でfail-open:スクリプト不在、タイムアウト、exit 1でも通過する——v2.1.295のonFailure: "block"の使い方  ·  Claude Haiku 5.5がClaude Codeの既定Haikuに:入力は$0.10まで下がるが、100Kトークンを超えるとリクエスト全体が5倍になる
practice

Claude Code 2.1.299へ上げる前に確認:MCP allowルールの厳格化、名前に妙な文字を含むスキルの除外、UserPromptSubmitフックの実行順の変更

30秒バージョン · 忙しい方へ
3つの変更はどれも、曖昧な照合を厳密な照合に置き換えるものだ。方向は安全側だが、失敗のしかたは静かで、スキルが消え、ルールが許可しなくなっても、エラーは出ない。

詳しく読む +
01 · なぜ起きたのか?

MCPサーバーは少数しか使っていません。確認は必要ですか?

2つの条件を見る。allowルールやエージェントのtools:リストに、__*を付けないmcp__名前という省略形があるか。そして、サーバー名にアンダースコアが含まれる、または別のサーバー名のプレフィックスになっていないか。どちらにも当てはまらなければ、この変更の影響はない。記事の最初のチェックコマンドを実行すればわかる。

02 · 仕組みは?

アップグレード後にスキルが一覧から消えました。どうすればよいですか?

SKILL.mdの中身ではなく、ファイル名やフォルダ名を確認する。名前に隠し文字、文字の向きを変える文字、空白に見える文字(たとえば全角スペース)、または<、>が含まれていると、名前を変えるまで提供されず、frontmatterのname:も無視される。フォルダ名をきれいなものに変えて再読み込みすればよい。よくある原因は、Webページからコピーして貼り付けた名前だ。

03 · 自分にどう影響する?

プロンプトの内容を調べるUserPromptSubmitフックを書いています。アップグレード後に直す必要はありますか?

少なくとも再テストは必要だ。フックはスラッシュコマンドやスキルが展開される前に動くようになり、展開前の入力を見る。展開後のテキストに頼っていた照合ルールは合わなくなる可能性がある。良い点は、フックがプロンプトをブロックすれば、埋め込みのシェルコマンドももう実行されないことで、以前はここが抜け穴だった。最も早い確認方法は、展開されてシェルコマンドを含むカスタムスラッシュコマンドで試すことだ。

04 · どうすればいい?

エンジニアではありません。この種の変更に警告が出ないのはなぜですか?

これらは挙動の変更だ。リリースノートには書かれているが、実行時にエラーは出ず、設定が効かなくなるだけだ。現実的な対応は、アップグレード後の初日に、メンバーの1人がよく使うスキルとMCPツールの一覧を実際に動かして確認することで、同僚から「スキルが消えた」「また権限を聞いてくる」と報告されるのを待たないことだ。チームで共通の設定ファイルを使っているなら、これらの項目はアップグレードのチェックリストに加える価値がある。

全文 +

2026年10月14日に公開されたClaude Code v2.1.299のリリースノートには約131件の修正が並び、そのうちいくつかは「挙動の変更」だ。アップグレード後にエラーは出ないが、それまで動いていた設定が静かに効かなくなったり、動き方が変わったりする。以下の3点は公式リリースノートからの引用で、アップグレードの影響はClassmethodの整理も参考にした。

1. MCPのallowルールは、名指ししたサーバーにだけ効く

公式の記述は次のとおり。MCPのallowルールは、名指ししたサーバーにだけ届くようになり、mcp__aはa__bやa_という名前のサーバーをもう許可しない。mcp__<server>__*と書き、サーバーの正規化された完全な名前を使う。Classmethodが整理した以前の挙動は、mcp__aがa__bやa_も一緒に許可していた、というものだ。エージェントのtools:リストも同様に、名指ししたサーバーのツールだけを対象にするよう変わり、名前に__を含むサーバーはmcp__<完全な名前>__*と書く必要がある。

これは2つの方向に影響する。1つ目はallowが狭くなったこと。緩いプレフィックスで一群のサーバーをまとめて許可していた人は、アップグレード後にそれらのサーバーが権限プロンプトを出し始める(ヘッドレスでは拒否される場合もある)。2つ目は、v2.1.300のリリースノートに、正規化後の名前に二重アンダースコアを含むサーバーで、mcp__<server>のdenyとaskのルールが効いていなかったという修正が別に載っていること。この文から推論すると(リリースノートの言葉ではなく私の推論)、v2.1.300より前は、そうしたサーバーに設定したdenyルールは何も止めていなかったことになる。リリースノートは正規化のルールを説明していない。アンダースコアを含む名前のサーバーは、権限プロンプトやツール一覧に表示される完全な名前をそのままコピーする。

2. 名前に妙な文字を含むスキルとコマンドは提供されなくなる

記述はこうだ。ファイル名やフォルダ名に、隠し文字、文字の向きを変える文字、空白に見える文字、または<、>を含むスキルやコマンドは、名前を変えるまで提供されなくなり、そのname:の値も無視される。つまりスキルはエラーにならず、一覧から消えるだけだ。リリースノートに理由は書かれていない。私の推測では、こうした文字は名前をAに見せかけて実はBにできるため、なりすましのリスクにあたる。

中国語・日本語のユーザーは特に注意したい。リリースノートは「空白に見える」文字の具体的な一覧を示しておらず、全角スペースもその中に入る可能性があるので、併せて確認するとよい。純粋な中国語や日本語の名前は、リリースノートが挙げる制限には入っていないが、下のチェックコマンドはASCII以外のすべての名前を表示するので、どれが不可視文字かは自分で判断する必要がある。

3. UserPromptSubmitフックが先に動く

以前は、カスタムスラッシュコマンドが先に展開され、埋め込まれたシェルコマンドが実行されてからUserPromptSubmitフックが動いたため、フックがプロンプトをブロックしても、そのシェルコマンドは止められなかった。v2.1.299ではフックが先に動く。ブロックされれば、展開も埋め込みのシェルコマンドも実行されない。また、スキル自身のfrontmatterに書かれたUserPromptSubmitフックは、そのスキルを呼び出したプロンプトの次のプロンプトから最初に動くようになった。

実際の影響が2つある(1つ目は私の推論)。プロンプトの内容を調べるフックは、展開前の入力を見ることになるので、展開後のテキストに頼った照合ルールは再テストが必要だ。また、スキルの中に書いて、そのスキルを起動したまさにそのプロンプトを止めようとしたフックは、もう捕まえられない。

同じバージョンで見ておきたい他の変更

  • UTF-8以外のファイル:Classmethodのテストで、WriteはWindows-1252、Shift-JIS、GBK、UTF-16BEのファイルを、黙ってUTF-8に変換せず拒否するようになったと確認されている。古いエンコーディングのファイルを扱う中国語・日本語のプロジェクトでは遭遇する。
  • 入力を受け取れないプラグインフックは拒否になる:アクションをプラグインフックに渡せない、またはフックが判断を返せない場合、通過させずに拒否されるようになった。以前取り上げたonFailure: "block"と同じ方向の変更だ。
  • ネストの深さ:プラグインフックとワークフロースクリプトは、28,000階層より深くネストした値を拒否する(Classmethodは以前の上限を100,000と記録している)。

アップグレード前の5分チェックリスト

  1. 省略形のMCPルールをすべて探し、mcp__aをmcp__a__*と書き直す。二重アンダースコアのサーバーは完全な名前を使う。
grep -rn "mcp__" ~/.claude/settings.json .claude/settings.json .claude/settings.local.json ~/.claude/agents .claude/agents 2>/dev/null
  1. 名前にASCII以外の文字や<、>を含むスキルとコマンドを一覧にし、それぞれに不可視文字や向きを変える文字がないか確認して、あればフォルダ名を変更する。
find ~/.claude/skills ~/.claude/commands .claude/skills .claude/commands -print 2>/dev/null | LC_ALL=C grep -nP '[^\x20-\x7E]|[<>]'
  1. UserPromptSubmitフックを書いているなら、展開されるスラッシュコマンドで一度テストし、展開前にプロンプトを捕まえられることを確認する。
  2. アップグレード後の初日に、よく使うスキルとMCPツールを実際のセッションで動かし、まだ存在し、まだ許可されていることを確認する。
出典:Claude Code changelog - Claude Code Docs、Claude Code v2.1.297 to v2.1.299 Major Updates - Classmethod、Claude Code Changelog (October 2026) - gradually.ai
図解
2.1.299 三項變嚴的匹配規則MCP allow 規則從前綴式匹配變成只對指名 server 生效;名稱含怪字元的 Skill 不再被提供;UserPromptSubmit hook 改成先於展開執行Claude Code 2.1.299: Three Matching Rules Got StricterMCP rule mcp__a, before 2.1.299server a: allowedserver a__b: allowedserver a_: allowedprefix-style matchingMCP rule mcp__a, 2.1.299 and laterserver a: allowedserver a__b: not coveredserver a_: not covereduse mcp__SERVER__* with the whole nameSkill and command nameshidden, direction-changing or blank-likecharacters, or < > in the file/folder namenot offered until renamedname: in frontmatter is ignoredno error, the skill just disappearsUserPromptSubmit hook timingbefore: expand slash command, runembedded shell, then run the hooknow: hook runs firstif it blocks, expansion and shell never runskill-level hook starts one prompt laterClaude Skill Me · claudeskill-me.com
スクリーンショット歓迎。転載時は出典を明記してください。
質問する
10文字以上入力してください
関連記事
Claude Codeのフックは既定でfail-open:スクリプト不在、タイムアウト、exit 1でも通過する——v2.1.295のonFailure: "block"の使い方
practice · 10/19
Hookに「blocking error」と表示されたのに、ファイルは変更されている?PostToolUseとPreToolUseの「ブロック」は同じ意味ではない
practice · 09/28
インストールしたSkillがトリガーされない理由:15,000文字の予算超過をClaudeCodeは警告なしで静かに処理する
practice · 09/02
MCPとは何か?「AI版のUSB-C」を理解し、Claudeに初めての外部ツールを接続する方法
practice · 08/29
関連ニュース
関連トピック