Claude CodeのスキルをCodexからも使いたい|置き場所をあえて揃えなかった理由

こんにちは、みのり(@minori_aimama)です。本業・育児の合間にAI×ブログ副業に挑戦中です。

前回、指示ファイルの正本をAGENTS.mdに寄せた話を書きました。

指示ファイルの次に悩んだのが、スキルの置き場所です。指示ファイルは「何を読ませるか」の話でしたが、スキルは「どこに置くと、どこから見えるか」の話でした。

結論、指示はAGENTS.mdに寄せてスキルは .claude/skills/ に残しました。名前が揃っていないのは気になる。でも、動かさなかった理由があります。

前提
  • Claude Codeをメインで使っている
  • Codexに専用でやらせたい作業(画像生成)がある
  • プロジェクトフォルダはObsidian Vault
  • プロジェクトフォルダをOneDrive同期している
目次

指示ファイルとスキルは別問題だった

前回までの話は「ルールをどこに書くか」でした。AGENTS.mdに正本を置いて、CLAUDE.mdには @AGENTS.md と書く。それで指示ファイル問題は解決しました。

スキルは「作業部品をどこに置くか」の話です。

正本を1つにする考え方は同じですが、置き場所の制約が違いました。指示ファイルはAGENTS.mdに寄せたから、スキルも .agents/skills/ に揃えたくなります。

ただ、名前の統一感だけでフォルダを動かすと、別の問題が出てきます。

ただ、名前の統一感だけでフォルダを動かすと、別の問題が出てきます。

まず仕組みの話:制約がなければ単純

ここからしばらくは、私の環境ではなくClaude Codeの仕組みの話です。

スキルの置き場所は2種類あって、スコープは「実体がどこにあるか」ではなく「Claude Codeがどこで見つけたか」で決まります

置き場所名前見える範囲
.claude/skills/(作業フォルダ内)プロジェクトスコープそのフォルダで起動したときだけ
~/.claude/skills/(ホームフォルダ)ユーザースコープPC上のどこで起動しても

Claude Codeが自動で見にいくのは、この2か所だけ。.agents/ は見ません。だから名前を揃えて実体を .agents/skills/ に移すなら、Claude Codeが見る場所に「入口」(実体への近道リンク=ジャンクション)を1本張ればいい。

ポイントは、その入口をプロジェクト内の .claude/skills/ に張れば、発見場所はプロジェクトのままだということ。

project/
├── .claude/
│   └── skills/
│       └── myskill   → 入口
└── .agents/
    └── skills/
        └── myskill   (実体)

これだけで、実体は .agents/ に揃えつつ、プロジェクトスコープも自動発火(「記事を書いて」で呼べるやつ)もそのまま。制約がなければ、この設定で終わりです。

問題は、私の環境にはその「制約」があったこと。

ここからは私の環境(OneDrive)の話

理想形が成り立つには、ある条件が要ります。入口(ジャンクション)を .claude/skills/ の中、つまりプロジェクトフォルダの内側に置けること。私はここで詰まりました。

作業フォルダ(Obsidian Vault)をOneDriveで同期しているからです。ジャンクションのような入口をVault内に置くと、同期保留になったり、別のPCで実フォルダに化けたりして壊れる。OneDriveに限らず、Google DriveやDropboxでもシンボリックリンク系は似た問題があるようです。

つまり私の場合、入口をVault内(.claude/skills/)に置けない。Vaultの外=ローカルのホーム(~/.claude/skills/)に逃がすしかない。でもそうすると、さっきの表のとおり発見場所がホームになり、ユーザースコープに格上げされてしまう。

プロジェクト専用だったスキルが、PC上のどこでClaude Codeを起動しても見えてしまう。別のフォルダで作業しているときもスキル一覧に出てくる。ノイズです。仕組みのうえでは理想形でプロジェクトスコープを保てるのに、OneDrive制約がそれを許さない。

名前を揃えるために実体を動かして、わざわざユーザースコープ化とノイズを背負うより、実体を .claude/skills/ に残すほうが素直です。残しておけば、プロジェクトスコープも自動発火も最初から壊れない。15個のスキルが全部、自然言語で呼べる状態のまま。

名前の不一致(指示はAGENTS.md、スキルは .claude/)は気になります。でもそれは見た目の問題。OneDrive制約のもとでは「揃えない」が一番コストの低い選択でした。

Codexからはどう読ませたか

スキル本体はそのまま .claude/skills/ に置いて、Codex側には入口だけ作ることにしました。

私の環境では、Codexの入口として ~/.agents/skills(Windowsなら C:\Users\ユーザー名\.agents\skills)を使いました。そこからプロジェクト内の .claude/skills/ へジャンクションを張っています。

対象場所役割
スキル本体.claude/skills/(同期)正本。ここだけ編集する
Codex入口~/.agents/skills(ローカル)ジャンクション。本体を参照するだけ

「ホームに入口を置いたら、さっき嫌ったユーザースコープのノイズが出るのでは?」と思うかもしれません。でも大丈夫。Claude Codeは ~/.agents/skills をスキャンしないからです。Claude Codeが見るのは .claude/skills/ とホームの ~/.claude/skills/ だけ。Codex用の入口をいくらホームに置いても、Claude Code側のスキル一覧には出てこない。同じ「ホームに置く」でも、見にくる相手が違うわけです。

スキル本体は1か所。Codex側は入口だけ。コピーを作らないので二重管理にならない。そして入口はVaultの外(ローカル)にあるので、OneDriveの同期問題にも巻き込まれません。

入口は「各PCで作るローカル設定」

ひとつ運用上のコツ。入口(ジャンクション)はOneDriveで同期せず、各PCで一度だけ手で作るローカル設定として扱っています。同期されるのは本体(.claude/skills/)だけ。新しいPCをセットアップしたら、そのPCで入口を張り直す。それだけ。

入口まで同期しようとすると、さっきの「Vault内に置くと壊れる」問題に逆戻りします。本体は同期、入口はローカル。この線引きが一番トラブルが少なかったです。

今の構成まとめ

3本の記事で整理してきた結果、こうなりました。

対象正本橋渡し
指示(共通ルール)AGENTS.mdCLAUDE.md@AGENTS.md の1行
スキル(作業部品).claude/skills/Codex入口はローカルのジャンクション
Codex専用処理.codex/skills/共通化しない。分けて置く
引き継ぎ_handovers/Claude Code・Codex共通で1ファイル

実際のフォルダ構成はこうなっています。

プロジェクトフォルダ/            ← OneDrive同期
├── AGENTS.md                  ← 指示の正本(全体共通)
├── CLAUDE.md                  ← @AGENTS.md の1行だけ
├── .claude/
│   └── skills/                ← スキルの正本(自動発火される)
│       ├── skill-1.md
│       ├── skill-2.md
│       └── ...
├── .codex/
│   └── skills/                ← Codex専用スキル(共通化しない)
│       └── skill-codex.md
├── _handovers/                ← 引き継ぎノート(共通)
│   └── 2026-06-21.md
├── プロジェクト1/
│   ├── AGENTS.md              ← このプロジェクト固有の指示
│   └── CLAUDE.md              ← @AGENTS.md の1行だけ
├── プロジェクト2/
│   ├── AGENTS.md
│   └── CLAUDE.md
└── ...

C:\Users\ユーザー名\
├── .claude/
│   └── skills/                ← ユーザースコープ(ここには置かない)
└── .agents/
    └── skills → ジャンクション → プロジェクトの .claude/skills/
                               ↑ Codexの入口(ローカル・同期しない)

ポイントは3つ。

  • スキル本体(.claude/skills/)はOneDriveで同期される
  • Codex入口(~/.agents/skills)はPCローカル。同期フォルダの外
  • 正本は常に1か所。入口はリンクするだけで中身を持たない

ここまでの結論

指示ファイルとスキルでは、正本の置き場所を変えました。指示はAGENTS.mdに寄せて、スキルは .claude/skills/ に残した。

決め手は、OneDrive同期という私の環境の制約でした。仕組みのうえでは、実体を .agents/ に移しても入口をプロジェクト内に張ればプロジェクトスコープも自動発火も保てる。でもOneDrive下ではその入口がVault内に置けず、ローカルのホームに逃がすしかない。その瞬間にスコープが広がってしまう。

名前の統一感は気になりました。AGENTS.mdが正本なのにスキルフォルダは .claude/ のまま。揃えたくなる気持ちはあります。

ただ、私の環境では揃えようとした時点で見える範囲が変わる。動いているものを名前のためだけに動かす理由がなかった🫠

正本が1つあって、どちらのツールからも読めて、壊れない。3本かけて整理してきたけど、やったことはそれだけでした。

  1. 正本を1つにする話
  2. CLAUDE.mdとAGENTS.md、どっちを正本にするか
  3. スキルの置き場所をどうするか(この記事)

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

みのりのアバター みのり AI×ブログ副業

本業会社員・育児中の30代ワーママ。育休復帰前の準備期間に副業を始め、迷走の末にAI×ブログという組み合わせに落ち着く。エンジニアでも専門家でもないけど、AIと手を組んでブログ3本を運営中。X(@minori_aimama)でも日々の試行錯誤を発信中🫠

目次