はじめに
SkillsについてはClaude Codeで使用していてすごい便利な機能です。
最近Codexにも実装され実際に使用してみたので記事にしてみました。CodexでSkillsを使用したい人などの参考になればと思います。
Skillsとは?
スキルとは機能を拡張するモジュール型の能力です。その名の通り業務の知識や開発のルールなど「指示・スクリプト・テンプレート」などまとめたパッケージのイメージです。
なぜ作成するのか
スキルを使用しないとAIが試行錯誤しながら作業をします。この場合、作業内容が意図とずれた内容が返ってくる場合がありズレを修正するためトークンと時間を消費します。
このズレを少なくするために、スキルという手順書を作業する際に読ませて、ルールの理解やツールを使いこなして作業させる。
| Skillsなし | Skillsあり |
|---|---|
| 入力内容からAIが独自で考えて結果を出力する | 入力内容から必要なスキルを選びスキルを使用して結果を出力する→安定した実行と結果 |
| 毎回プロンプトを入力が必要 | Skillsとして再利用可能で毎回入力が必要ない |
| 結果がブレるし余計なこともする可能性がある | 期待している結果を返してくれる |
スキルは会話の中からAIが適したスキルを選択して使用します。そのため一度作成すればスキルを再利用できます。
このようにメリットとして
- 再現性・品質が上がる
- 都度プロンプト入力と結果のズレの修正の時間を短縮できる
- コンテキストの節約
- 個人のノウハウやチームでの共通技術やノウハウをSkillsとして共通できる
Skillsの設定と作成
Skillsを使用できるように、config.tomlに追加して有効にする
[features]
skills = true
Skillsの配置場所はリポジトリ直下に置きます。
.codex/
skills/
<skill-name>/
SKILL.md
参考資料.md
SKILL.md の基本構成
name: your-skill-name
description: ここに「何をするスキルか」「いつ使うか」を具体的に書く
---
# Skill Title
## 目的
(ここから本文。命令形で書く)
## 手順
1. ...
YAMLヘッダー
nameとdescriptionは、スキルのメタデータです。
この内容が最初に渡されどのスキルを使用するかの判断材料になります。
-
name
- どんなスキルなのかを明記する
- ファイル名と揃える
-
description
- Skillsをどう使うのかを判定する材料
- ここにスキルの内容を簡潔に記載する
- この内容がトリガーになるので、AIが判断できるように記載する
(このスキルでなにができる、どんな状況で使用するかなど)
-
本文
- 本文は命令形で書いて、長くしすぎない
- 長くなる場合は、スキルのフォルダー配下に新しくmdを作成して詳細資料としてSKILL.mdにいつ読むかを本文で指示する
まとめ
AGENTS.mdに指示や開発ルールを記載していたが、守っている感じはしないし内容が多いのでコンテキストを食っている。何か他に効率化できないかとカスタムスラッシュコマンドを作成したりしましたが、Skillsは個人的に一番効果的で簡単に作成できる機能でした。
最初はSkillsは難しそうで導入を迷いましたが、AIに作成を任せてしまえばすぐに導入できます。そこから使いやすいように独自のカスタマイズをしていけばいいので、まずは、欲しいものや「この内容が自動で反映されたらな」と思うものをAIに指示して作成してもらうだけでいいと思いますしそれで十分機能すると思います。
AGENTS.md、Skills、MCPなど,適したところに適した内容や使い方などちゃんと理解して使い分けることがCodexや他のAIツールを使用する上で重要だと思う。