anthropic-skillsのNot loadedが出る原因と改名手順 — Claude Code
起動時に「Not loaded: rename …」と出てスキルが読み込まれないときの原因と直し方です。anthropic-skillsの名前がclaude.ai同期用に予約されています。
起動直後の会話画面にNot loaded: rename … a name reserved for the skills synced from your claude.ai accountと出て、自作のスキルが使えなくなった。原因は、スキル・コマンド・保存済みworkflowのどれかがanthropic-skillsという名前、またはanthropic-skills:で始まる名前を使っていることです。この名前はclaude.aiから同期されるスキル専用に予約されていて、該当する項目は読み込まれません。直し方は、通知が指した項目を改名して再起動するだけです。
通知の全文は次の形です。
Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account通知の読み方 — 何を直せと言っているか
通知はstderrではなく、会話画面の起動通知として出ます。renameのあとに続くのは、拒否された最初の1件について直すべき対象です。対象は4種類あります。
通知が指す4種類の対象
スキルのフォルダ
.claude/skills/anthropic-skillsのように、フォルダ名そのものが予約名です。frontmatterのname
フォルダ名が普通でも、SKILL.mdの
name:に予約名があれば拒否されます。通知は編集すべきname:の行を指します。commandsのファイル・サブフォルダ
.claude/commands/の中のファイル名、またはサブフォルダ名が該当します。保存済みworkflow
workflowとして保存したときの名前が予約名だった場合です。
複数の項目が拒否されたときは、通知の末尾に· 2 moreのような件数が付きます。2件目以降の名前は通知に出ないので、デバッグログで確認します。ログの出し方はClaude Codeの--debugと/debugの使い方にまとめています。
どの名前が拒否されるのか
拒否されるのはanthropic-skillsそのものと、anthropic-skills:で始まる名前です。後者はanthropic-skills:pdfのように、同期されたスキルが完全名として使う名前空間にあたります。
予約の理由は、同期スキルの完全名が別のものを実行しないようにするためです。ローカルに/anthropic-skills:deployを名乗るスキルがあると、claude.aiから来たスキルと区別がつかなくなります。予約は、claude.aiアカウントでサインインしているかどうかに関係なく、すべてのセッションで効きます。APIキーだけで使っている環境でも、同じ名前は拒否されます。
commandsのサブフォルダでも名前ができあがる
見落としやすいのが.claude/commands/です。サブフォルダ内のファイルは、サブフォルダのパスの/を:に置き換えた名前で呼び出されます。たとえば.claude/commands/frontend/component.mdは/frontend:componentです。この規則に従うと、.claude/commands/anthropic-skills/pdf.mdはanthropic-skills:pdfという予約名のコマンドになります。通知の対象に「ファイルまたはサブフォルダ」と書かれているのは、このためと読めます。コマンドファイルの名前からanthropic-skillsの語を外せば解消します。
予約の対象外になるもの
予約が効くのは、プラグインの外にある項目です。anthropic-skillsという名前のプラグインは読み込まれます。そのプラグインのスキルと同期スキルが同じ<name>のときは、/anthropic-skills:<name>が同期スキルを実行します。
MCPサーバーは、名前がanthropic-skillsでも接続でき、ツールも動きます。ただしそのサーバーのプロンプトはコマンドとして並びません。ツールだけを使っているなら症状は出ないので、通知も出ず気づきにくい点です。プロンプトを出したければ、MCP設定側でサーバー名を変えます。
| 項目 | 名前がanthropic-skills系のとき |
|---|---|
| スキルのフォルダ | 名前がanthropic-skills系のとき読み込まれない(通知が出る) |
frontmatterのname | 名前がanthropic-skills系のとき読み込まれない(通知が出る) |
.claude/commands/のファイル・サブフォルダ | 名前がanthropic-skills系のとき読み込まれない(通知が出る) |
| 保存済みworkflow | 名前がanthropic-skills系のとき読み込まれない(通知が出る) |
| プラグイン | 名前がanthropic-skills系のとき読み込まれる |
| MCPサーバー | 名前がanthropic-skills系のとき接続とツールは動く。プロンプトはコマンドに出ない |
直し方 — 見つけて改名する
手順は3つです。まず該当する名前を探します。プロジェクトとユーザーの両方を見ます。
# 名前が予約語を含むフォルダ・ファイル
find .claude ~/.claude -iname '*anthropic-skills*' 2>/dev/null
# SKILL.mdのname:行に予約名があるもの
grep -rn '^name:.*anthropic-skills' .claude ~/.claude 2>/dev/null見つかったものを改名します。フォルダ名の例を示します。
mv .claude/skills/anthropic-skills .claude/skills/team-skillsfrontmatterの場合は、name:の行を予約名のない値に書き換えます。nameを省略するとフォルダ名が使われるので、フォルダ名が普通なら行ごと削除でも構いません。
SKILL.mdのname行を直す
拒否される
---
name: anthropic-skills:report
description: 週次レポートを組み立てる
---読み込まれる
---
name: weekly-report
description: 週次レポートを組み立てる
---最後にセッションを再起動します。通知は「rename ... then restart」と案内しています。再起動後に/skillsを開き、改名したスキルが並んでいれば完了です。
直したのに同じ通知が出るとき
通知は拒否された最初の1件だけを名指しします。1件直したら次の1件が表示されるのは自然な動きです。件数表示の· 2 moreが消えるまで、同じ手順を繰り返します。
見落としが起きやすい場所は2つあります。
- ユーザー階層の
~/.claude/skills/や~/.claude/commands/にある古い項目。プロジェクトだけ探して見つからないときに該当します - 保存済みworkflow。スキルのフォルダとは別に保存されます。通知が
a workflow to renameと指すなら、workflowの保存名を変えます
以前は動いていたのに急に出た場合
v2.1.282より前のClaude Codeは、この名前のスキルとコマンドを読み込んでいました。アップデートしたらいつものanthropic-skills系のスキルが消えた、という場合はこの変更が原因です。変更内容はv2.1.282のリリースノートにあります。
同じ版ではclaude-aiという名前も予約されました。ただしこちらはv2.1.283で取り消され、claude-aiという名前のスキルやコマンドは再び読み込まれます。経緯はv2.1.283のリリースノートにあります。いま通知に出るのはanthropic-skillsだけです。claude-aiを理由に改名した人は、元に戻しても戻さなくても動きます。
claude.aiのスキル同期そのものは、Claude Code v2.1.273以降の端末セッションで動きます。同期の仕組みと止め方はClaude Codeでclaude.aiのスキル同期を止める設定、同期が入った版の変更点はv2.1.275のリリースノートにあります。
改名したあとに確認すること
改名で通知は消えても、スキルの呼び出し名や権限ルールが変わることがあります。確認したい点は3つです。
改名先に使えない名前
スキルのフォルダ名にsyncedは使えません。大文字小文字を問わず、~/.claude/skills/synced/はclaude.aiから同期したスキルの保存先に使われていて、同名のスキルは読み込みが飛ばされます。同期スキルはダウンロードされるだけで、このフォルダの中身を直接編集してもclaude.aiには保存されず、次の同期で上書きや削除が起こりえます。anthropic-skillsの代わりにsyncedを選ぶと、別の理由で読み込まれなくなります。名前に不可視文字や<を含めた場合も拒否されます。team-skillsのような普通の名前なら問題ありません。
呼び出し名が変わる
スキルを呼び出す名前は、フォルダ名かfrontmatterのnameが元になります。.claude/commands/のサブフォルダに置いたファイルは、/が:に置き換わった名前になります。改名したフォルダやnameを、チームのドキュメントやほかのスキルが/旧名で呼んでいないか、検索しておくと安全です。
権限ルールの書き換え
anthropic-skills:の接頭辞は、同期スキルに許可を出すときにも使います。Skill(anthropic-skills:pdf)は同期されたpdfスキルを許可し、Skill(anthropic-skills *)は同期スキルすべてを許可するルールです。Skill(anthropic *)のように名前空間の外で止めた接頭辞は、anthropic-skills:pdfに一致しません。
v2.1.282では、Skill(anthropic-skills:*)のallowルールの対象が、claude.aiから同期したスキルだけになりました。ローカルのスキルにanthropic-skills:の名前を付けて、このルールで許可していた場合は、改名と同時にルールも新しい名前へ書き換えます。ルールを残したままだと、改名したスキルは許可の対象から外れます。
同期スキルをローカルに置き換えたい場合は、短い名前の衝突を使います。ローカルにdeploy、同期にもdeployがあると、/deployはローカルが動き、同期側は/anthropic-skills:deployで呼びます。
同期スキルの本文は端末ではそのまま動かない
予約名の理由になっている同期スキルは、手元で書いたスキルと扱いが違います。ローカルのスキルをanthropic-skills系の名前から改名して使い続ける場合、この違いが移行時の落とし穴になります。
- frontmatterは、どの種類のセッションでも反映されます。
allowed-toolsの許可は通常の権限確認を通ります。説明文は制御文字が取り除かれ、山括弧がエスケープされます - 本文は、クラウドセッションではローカルのスキルと同じ動きをします
- 端末のセッションでは、本文の
!コマンドは実行されません。@で指定したファイルも添付されず、${CLAUDE_PROJECT_DIR}と${CLAUDE_SESSION_ID}も置換されないまま、文字として届きます
claude.aiで作ったスキルをClaude Codeへ手作業でコピーして.claude/skills/に置けば、ローカルのスキルとして読み込まれ、!コマンドの扱いもローカルのスキルと同じになります。コピー先のフォルダ名にanthropic-skillsを使うと、冒頭の通知が出ます。
似た通知との見分け方
起動通知には、似た見た目で原因の違うものがあります。切り分けの目安を表にします。
| 通知の出だし | 原因 | 参照 |
|---|---|---|
Not loaded: rename … | 原因名前がanthropic-skills系で予約済み | 参照本記事 |
1 skill or command name refused … | 原因名前に不可視文字・<・>が入っている、または256文字を超える | 参照通知の案内に従い--debugで特定 |
Instruction file not loaded | 原因CLAUDE.mdやrulesが読み取り制限で除外された | 参照Instruction file not loadedの記事 |
名前の拒否は「予約名」と「使えない文字」の2系統があり、どちらも直し先は名前です。renameと書かれていれば予約名、refusedと書かれていれば文字や長さを疑います。
まとめ
anthropic-skillsは、フォルダ名・frontmatterのname・commandsのファイル名・保存済みworkflowのどこに置いても弾かれます。通知が指した1件を改名して再起動し、件数表示が消えるまで繰り返せば解消します。プラグイン名とMCPサーバー名は例外的に通りますが、MCPはプロンプトがコマンドに出ない点に注意が必要です。迷うなら、自作の名前にはanthropic-skillsの語を一切使わないのが確実です。