Skills
Skillsは、AIに仕事のやり方を教える仕組みである
最近の Coding Agent は、単にコードを書く存在ではありません。コードを書く、テストを実行する、コードベースを探索する、GitHub をレビューする、Slack や Google Drive を読む、ワークフローを自動化するなど、作業を伴う仕事を担う方向へ進化しています。
そうなると、Agent に対して「何をするか」だけではなく、「どう進めるか」を渡すことが重要になります。例えば「まず README を読む」「既存コードを壊さない」「セキュリティを重視する」「breaking change を確認する」「最後に Markdown でまとめる」といった進め方です。
最初はその都度プロンプトを書けば十分です。しかし使い続けるうちに、同じ説明を何度も繰り返していることに気づきます。そこで登場するのが Skills です。
OpenAI は Skills を "reusable workflows" や "reusable instructions packaged for specific processes" と説明しています。つまり、特定の作業プロセスを再利用可能な形でまとめたものです。
従来のソフトウェア開発では、人間向けに README や Wiki を書いていました。Coding Agent 時代では、それに加えて AI 向けに仕事の流儀を書く必要があります。どの順番で調査するのか、何を優先するのか、どんな観点でレビューするのか、どんな形式で出力するのか。Skills は、こうした進め方をまとめる「AI向けに構造化された業務マニュアル」と言えます。
Skillsの構成・実態
Skills とは、一体どういったものなのでしょうか。具体的に見ていきましょう。
Skills は基本的に SKILL.md というテキストファイルを持ち、必要に応じてスクリプトや参考資料も持ちます。実態は、仕事の手順が書かれた .md 形式のテキストの組み合わせです。シンプルなので、人間にも理解がしやすいですよね。
my-skill/
├── SKILL.md # 必須: instructions + metadata
├── scripts/ # 任意: executable code
└── references/ # 任意: documentation, templates, resourcesSKILL.md: Skills の目的、使うべき場面、守るべきルール、実行フロー、出力形式を書きます。scripts/: 必要に応じて、Agent が実行できる補助コードや処理スクリプトを置きます。references/: 参考資料、テンプレート、文体ルール、業務知識など、Agent に参照してほしい情報を置きます。
SKILL.md の書き方にはお作法があります。まずは、冒頭に name と description を書くというルールがあるのですが、Agent はこの情報を見て、「この Skills を使うべきか」を判断します。
その下の本文には、守るべきルール、実行フロー、出力形式、必要に応じて参照すべきファイルなどを書きます。
実際に例を基に見てみましょう。
例えば、毎朝 Gmail を確認し、重要なメールを分類し、返信が必要なものには draft まで作ってもらう workflow を考えます。最終的には、人間は内容を確認して送信ボタンを押すだけ、という状態にしたいわけです。
これを毎回 Coding Agent に頼むと、「顧客や上司からのメールは優先する」「newsletter は除外する」「urgent なものだけ先に出す」「返信文は短く丁寧にする」といった文脈を、その都度説明する必要があります。
Skills は、こうした繰り返し発生する業務のレシピを保存しておくための仕組みです。「メールボックスを確認して、整理して、必要な返信 draft を作って」と依頼するだけで、自分が普段求めている判断基準や手順に沿って Agent が動けるようになります。
この場合、gmail-triage という Skills は以下のような構成になります。
gmail-triage/
├── SKILL.md
├── references/
│ └── response_templates.md
└── scripts/
└── summarize_threads.py中心になるのは SKILL.md です。例えば以下のように書きます。
---
name: gmail-triage
description: Use this skill when the user asks to review Gmail inbox messages, triage unread email, identify urgent or reply-needed threads, summarize important messages, and create Gmail draft replies for reply-needed messages without sending them.
---
# Gmail triage
## When to use
Use this skill when the task involves:
- reviewing Gmail inbox messages
- classifying unread email
- finding urgent or reply-needed threads
- summarizing important threads
- creating Gmail draft replies for human review
Do not send email automatically. Create Gmail drafts for reply-needed threads when Gmail write access is available. If Gmail draft creation is not available, output the draft text and explain what connection is missing.
## Required setup
Confirm Gmail access is available through the current environment or MCP connection.
If Gmail access is not available, tell the user what connection is missing before continuing.
## Workflow
1. Inspect inbox or unread threads.
2. Summarize each relevant thread briefly.
3. Classify each thread into one category:
- urgent
- reply-needed
- informational
- spam
- newsletter
4. Show details for urgent and reply-needed threads first.
5. Create Gmail draft replies for reply-needed threads.
6. Never send replies without explicit user confirmation.
## Priority Rules
Prioritize messages from:
- customers
- managers or executives
- active sales or support conversations
Treat these signals as higher priority:
- "urgent"
- "ASAP"
- production issue
- security issue
- billing issue
Treat these as lower priority:
- newsletter
- marketing
- automated notification
## Output Format
Return a Markdown summary with these sections:
- Urgent
- Reply Needed
- Gmail Drafts Created
- FYI
- Spam / Ignore
For Gmail drafts, include the thread title, recipient, and a short note that the draft was created. Do not paste the full draft body unless the user asks to review it in chat.
## Style
- Be concise.
- Use bullet points.
- Include the recommended next action.
- Draft replies should be polite, short, and ready for human review.
## References
Use `references/response_templates.md` when drafting replies.
## Scripts
Use `scripts/summarize_threads.py` only when thread summarization needs deterministic preprocessing.references/response_templates.md には、よく使う返信文のトーンやテンプレートを入れておけます。scripts/summarize_threads.py は、メール thread の要約や整形を補助する Python スクリプトです。ただし .py は必須ではありません。自然言語の指示だけで十分な Skills なら、SKILL.md だけでも成立します。
Skills は自分で書いても構いませんが、基本的には Coding Agent に「こういう作業を Skills にしたい」「この workflow を SKILL.md にして」と依頼すれば作ってくれます!
Skillsの呼び出し方
Skills を作成すると、以下のように呼び出すことができます。
gmail-triage Skills を使って、今日の Inbox を整理してまた、明確に Coding Agent ごとの使い方に合わせて mention すると、より確実に呼び出すことができます。
$gmail-triage 今日の Inbox を整理して # Codex だと $ で指定
/gmail-triage 今日の Inbox を整理して # Claude Code は / で指定外部サービスと連携してタスクを実行する
今回の gmail-triage の例を考えると、Skills だけではまだ足りない部分があります。Skills には「重要なメールをどう分類するか」「返信 draft をどう書くか」といった仕事の進め方を書けます。しかし、それだけでは Agent は実際の Gmail の Inbox を読めません。メール thread を取得したり、Gmail 上に draft を作ったりするには、外部ツールに接続する仕組みが必要です。
そこで使うのが MCP です。MCP は Model Context Protocol の略で、Coding Agent が外部ツールや外部データに接続するための仕組みです。例えば Gmail、Slack、GitHub、Google Drive、データベースなどを Agent が読み書きしたいときに使います。
MCP についてより詳しく知りたい人は、こちらのブログ「MCP(The Model Context Protocol) を理解する - Part1: 概要編」を参照してください。
最近では、Codex や Claude Code の Cowork が、独自に App や Connector という名前で外部サービスとの連携を構築していますが、目的は同じ方向性にあります。Codex や Claude Code の Cowork を使う際は、GUI から接続したいアプリをクリックし、認証するだけで設定が可能になっています。
実際に Skills が MCP を使う際は、mcp.json という設定ファイルを作る必要があるのですが、その辺りも Coding Agent が行ってくれるので、細かいところまでは心配する必要はありません。大事なことは、作業の完成にあたっては外部サービスとの接続が必要になり、そうした外部サービスとの接続は MCP やコネクタを通して行うことができる、ということを理解しておくことです。
Plugin
2026年に入り、Skills・MCP・Connector などを統合し、あらかじめ便利な作業手順を提供する Plugins が、Codex や Claude Code ecosystem に組み込まれ始めています。
Plugin は、単なる外部ツール接続ではありません。MCP が「Slack や GitHub に接続する方法」を提供するのに対し、Plugin はそこに作業手順、指示文、自動化、実践知まで含めて package 化します。
OpenAI の Codex Team も Workshop の中で、次のように説明しています。
plugins bundle skills, apps, integrations, MCP servers into reusable workflows
例えば Slack Plugin を install すると、単に Slack に接続できるだけではありません。「重要メッセージを要約する」「返信が必要な thread を抽出する」「毎朝 summary を作る」といった workflow まで利用できるようになります。
例えば、Codex の Plugin の代表例としては以下のようなものがあります。
- Slack Plugin
- Gmail Plugin
- GitHub Plugin
- Google Drive Plugin
- Figma Plugin
Plugin の様子を見たい方は、OpenAI の Workshop の動画(16:30あたりから)をご確認ください。いくつかの Plugin のデモを見ることができます。
Skillsを再利用可能にし、育てていく
外部サービスとの連携や Plugin は、あくまでそうしたツールとの接続や利用を便利にするものです。一方で、自分のタスクや業務でそれらを使いこなすには、自分で Skills を定義して実行していくことが依然として重要になります。「Plugin は Skills を内包している」ので、Skills は必要ないように思えますが、実際にはその Plugin を使って、どういう手順で実行していくかを別の Skills でレシピ化していく流れになります。
例えば gmail-triage の Skills を作っておけば、毎回長い指示を書かなくても、同じ判断基準でメール整理や返信 draft の作成を依頼できます。
そして Skills は、一度作って終わりではありません。うまく分類できなかった、返信文のトーンが違った、重要なメールを見落とした。そういうときは、原因を Coding Agent に確認させて、Skills にルールを追記できます。
この改善を繰り返すことで、自分の業務に合った Skills が育っていきます。自分で Skills を作成し、それらを改善していく流れを構築しましょう。Plugin があれば自分の Skills はいらないように思えますが、Plugin は外部ツールとの便利な接続ツールだと思ってください。