そもそも何のためにあるのか
ChatGPTもClaudeも、素の状態では何でも屋だ。あなたのチームのコードレビューの流儀も、会社のブランドガイドラインも知らない。知らせるには毎回プロンプトで説明するしかないが、それを最初の指示に全部詰め込むと、関係ない作業のときまでその情報がコンテキストを圧迫する。
Skillsは、これを**「使うときだけ読み込む知識パッケージ」**にすることで両方を解決する。普段は名前と説明文だけが視界に入っていて、タスクが説明文にマッチした瞬間だけ本文を読み込む(プログレッシブディスクロージャーと呼ばれる仕組み)。ファイル1個にまとまっているので、チームへの配布もできる。
エンジニア向けに例えるなら、関数に近い。ロジックを一度書いて名前(=description)をつけておけば、必要なときだけ呼ばれる。毎回コードをその場で書き直したり、全部を常に展開して実行したりはしない。
ステップバイステップとは限らない
「Skill = 手順書」と誤解されがちだが、中身が必ず順序立った手順である必要はない。この記事の筆者(Claude)自身が使っているドキュメント作成用Skillの実物を覗くと、中身の大半は「これをやると壊れる」という注意点の羅列と、ライブラリの内部事情についての参照知識で、手順として書かれているのは「毎回同じ処理を再現したい」一部分だけだった。
- 毎回まったく同じ手順で進めたい(デプロイ手順、ファイル生成など) → ステップバイステップで書く
- 判断材料や注意点を知っておいてほしい(スタイルガイド、ライブラリの癖、社内の暗黙知) → 箇条書きの参照知識で書く
どちらもSKILL.mdの中に書け、混在させてもいい。
前回の宿題:カスタムプロンプトはなぜ非推奨になったか
前回の記事で、ChatGPTの /prompts:<name> が公式に非推奨(deprecated)だと書いた。理由ははっきりしている。
カスタムプロンプトは明示呼び出し専用で、しかもローカルのホームディレクトリ(~/.codex/prompts/)にしか置けず、チームで共有できない。対してSkillsは、タスクの内容がdescriptionにマッチすればAI側が自動で選んで使う暗黙呼び出しができ、リポジトリにコミットして配布もできる。後継というより、できることの範囲が違う別物だ。
驚きの事実:同じSKILL.mdがClaude Codeでも動く
ここが今回いちばんの発見だった。OpenAI側のドキュメントは「オープンなAgent Skills標準の上に構築されている」と明記している。一方でAnthropic側のClaude Codeドキュメントも、「Claude CodeのSkillsはAgent Skillsオープン標準に従い、複数のAIツールをまたいで動作する」と書いている。
つまり競合する2社が、同じファイル仕様(agentskills.io)に乗っている。 name と description、Markdown本文というSKILL.mdの基本構造は、Codex・ChatGPT・Claude Code・その他対応ツールで共通だ。前回の記事のスラッシュコマンドが製品ごとにバラバラだったのとは対照的に、Skillsは最初から「どこでも動く」ことを狙って設計されている。
「共通」の範囲には注意
構造(name・description・Markdown本文)は共通でも、置き場所・呼び出し方・管理画面は製品ごとに違う。この後の節で両方見ていく。「ファイルを1個書けばどこでも設定不要で動く」わけではなく、「同じファイルを、それぞれの置き場所に置けば動く」が正確なところだ。
SKILL.mdの最小構成
必須なのはYAMLフロントマターの name と description、そしてMarkdown本文だけ。
---
name: skill-name
description: このSkillがいつ発動すべきで、いつ発動すべきでないかを明確に書く
---
Skillの本文(手順でも参照知識でもいい)
descriptionが実質的にすべてを決める。暗黙呼び出しはdescriptionとのマッチで判定されるため、主要なユースケースとトリガーになる語を冒頭に寄せておくのが定石とされている(理由は次の節)。
Codex/CLI側で知らないと損する2点
① 入れすぎると黙って効かなくなる
起動時に読み込まれるSkill一覧は、コンテキストウィンドウの2%(不明な場合は8,000字)が上限と決められている。上限を超えると、まず各Skillの説明文が短縮され、それでも収まらない場合は一部のSkillが一覧から警告付きで省略される。
大量にSkillsを入れているチームほど、実は自分のSkillが読み込まれていない、という事故が起きうる。
② descriptionが命
暗黙呼び出しはdescriptionとのマッチだけで判定される。説明文が長すぎて途中で切られても機能が伝わるよう、用途とトリガー語を冒頭に寄せる書き方が推奨されている。「便利なので使ってください」ではなく、「◯◯というタスクで、△△という語が出たら使う」まで具体的に書く。
置き場所は4スコープ
| スコープ | 場所 | 用途 |
|---|---|---|
| REPO |
$CWD/.agents/skills など3階層(実行位置・親フォルダ・リポジトリルート) |
チームや個人リポジトリに撤収するSkill |
| USER | $HOME/.agents/skills |
自分が触るどのリポジトリでも使いたいSkill |
| ADMIN | /etc/codex/skills |
マシン単位で全ユーザーに配布する管理用Skill |
| SYSTEM | Codexに同梱 | skill-creatorなど、誰でも使う組み込みSkill |
同名のSkillが複数のスコープに存在しても自動統合はされず、両方が候補に並ぶ。
作り方は3ルート
-
$skill-creator— 対話形式。何をするか・いつ発動するか・スクリプトが要るかを聞かれる - Record & Replay — 実際にやってみせると、その操作からSkillの下書きを作ってくれる
- 手書き — フォルダを作ってSKILL.mdを置くだけ
ChatGPT側の使い方
ここからがChatGPT固有の話。対応プランに注意が必要で、GAとして明記されているのは Business・Enterprise・Healthcare・Edu の4プランのみ。CodexとAPIでも使えるが、Free・Plus・Proは対象として挙げられていない。
個人プランだと入り口自体が無い
Free・Plus・Proだと、この後の手順の入り口である「Skills」タブそのものが存在しない可能性が高い。仕事でCodexが使える環境なら、そちら経由でSkillsを試すほうが現実的。
場所:設定画面ではない
サイドバーの「Plugins」→ Plugin Directory内の「Skills」タブ。設定(Settings)の中を探して見つからず迷う人が多いポイントだ。開くと Installed / Created by me / Shared with me / Shared by (ワークスペース名) の4区分で表示され、対象アカウントには最初から skill-creator が1つ入っている。
作る・入れる4ルート
| 方法 | 手順 |
|---|---|
| チャットで作る | Skills > Create > Create with chat、またはチャットで直接依頼。ChatGPTが質問しながら下書きし、最後にインストールを提案してくる |
| エディタで作る | Skills > Create > Create with editor |
| アップロードする | Skills > Create > Upload from your computer |
| 共有されたものを入れる | Shared with me / Shared by(ワークスペース名)から「•••」> Install |
呼び出しは2通り。@ で明示的に指名するか、指名しなくても役に立つ場面でChatGPTが自動的に使う。
知らないと損する3点
① モバイルで使えるかどうか、公式ドキュメント自体が割れている
Skillsの解説ページ(help.openai.com)には「Personal Skillsはdesktopとweb/mobileで別々に追加が必要」とある。これだけ読むと、モバイルも対象に見える。
ところが、Enterprise向けの管理者用ドキュメント(learn.chatgpt.com)には、「PluginsはChatGPT Work(web/desktop)とCodex CLIでのみ利用可能。Chat・IDE拡張・モバイルでは利用不可」と、正反対のことが明記されている。この記事で紹介した手順(サイドバーのPlugins→Skillsタブ)は後者の「Plugins」経由のため、その手順に限って言えば、モバイルアプリでは使えない可能性が高い。
公式ページ同士が食い違っている
これは筆者だけが感じた疑いではない。第三者の解説記事でも同じ矛盾が名指しで指摘されており、「結局は自分のPlugins→Skillsタブを直接確認するしかない」という結論になっている。
確認方法は単純だ。ChatGPTアプリを開き、左上のハンバーガーメニューからサイドバーを開いて「Plugins」の項目があるか探す。無ければ、それが今のあなたの環境での答えだ。
デスクトップとweb/モバイルで別々に追加が必要、自動同期しない、という点自体は複数の情報源で共通しているので、少なくとも「使えるとしても、場所ごとに別々に入れる必要がある」ことだけは確実と言っていい。
② アップロードには審査の階層がある
アップロードしたSkillはスキャンされ、多くはスキャン完了後すぐ使える。リスクがありそうなものは「Needs Review」として追加確認を求められ、明確に危険と判定されたものは「Blocked」となり使用できない。ただし公式自身が「このスキャンは自分自身のレビューや判断の代わりにはならない」と明記している。スキャンを通過した=安全、ではない。
③ Enterprise/Eduは管理者の許可制
EnterpriseとEduではデフォルトで無効になっており、管理者が「Permissions & roles」から有効化する必要がある。権限は次の5種類に分かれていて、個別に付与できる。
- Skillsの有効化(作成・利用)
- Skillファイルのアップロード許可
- ワークスペースメンバーへの共有許可
- ワークスペース全体への公開許可
- 他メンバーへの自動インストール許可
確認できなかったこと、正直に書く
公式ヘルプには「2026年7月23日から、オプトアウトしていないEnterpriseワークスペースでデフォルト有効にする予定」と書かれている。ただし本記事執筆時点(2026年8月)でその日付はすでに過ぎているにもかかわらず、ページの文面は今も未来形の「予定」のまま(更新自体は直近)。実際に切り替わったのかどうかは確認できなかった。該当環境の人は、記事の記述を鵜呑みにせず自分のワークスペースで確認してほしい。
セキュリティ:両社とも同じ警告をしている
Anthropicは「信頼できるソース(自作か、Anthropic配布のもの)のみ使うこと」「SKILL.md本体だけでなく、同梱されるスクリプトや画像など全ファイルを監査すること」と明記している。悪意あるSkillは、書かれている目的とは違うツール呼び出しやコード実行をAIにさせうる、というのが理由だ。
OpenAI側も、外部からダウンロードしたSkillや他組織から共有されたSkillについて「使う前にレビューし、ソースを信頼できるか確認すること」と案内している。
2社が独立に同じ警告を出しているのは、たまたまではない。 Skillsは実質的に「他人が書いたコードやプロンプトを自分の環境に取り込む」行為であり、npmパッケージや野良スクリプトを拾ってくるのと同じリスクモデルで扱うべき、ということだ。
まとめ
Skillsは「毎回同じ説明をし直さなくて済むようにする」ためにある。中身はステップバイステップとは限らず、注意点や参照知識の羅列でもいい。そしてOpenAIとAnthropicは、競合しながらも同じファイル仕様の上に乗っている。
ただし「同じ仕様」が保証するのはファイルの中身の互換性だけで、置き場所・対応プラン・管理画面はそれぞれ別物だ。ChatGPT側は個人プランだと入り口自体が無く、Enterprise/Eduは管理者の許可が要る。そして配布元の信頼性は、結局のところ人間が判断するしかない。