Claude Media
anthropic-skillsのNot loadedが出る原因と改名手順 — Claude Code

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-skills

frontmatterの場合は、name:の行を予約名のない値に書き換えます。nameを省略するとフォルダ名が使われるので、フォルダ名が普通なら行ごと削除でも構いません。

前と後

SKILL.mdのname行を直す

BEFORE

拒否される

---
name: anthropic-skills:report
description: 週次レポートを組み立てる
---
AFTER

読み込まれる

---
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の語を一切使わないのが確実です。

この記事を共有:XはてブLinkedIn