skill-creator について
skill-creator は、Codex 向けのモジュール型スキルの設計からリソースのパッケージ化までを案内します。簡潔な指示と段階的な情報開示を重視します。
主な機能
- 01スキル構成とメタデータの指針
- 02スクリプト・参照資料・アセットの選定
- 03段階的な情報開示のパターン
- 04作成とパッケージ化の手順
活用シーン
- 01再利用可能なスキルリソースの計画
- 02ドメイン別ガイダンスの整理
- 03スキル指示の簡潔化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ composio-community/ awesome-codex-skills --skill skill-creatorインストール後、Claude Code で/skill-creatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
license.txtscripts/init_skill.pypackage_skill.pyquick_validate.py詳細
スキル作成者
このスキルは、効果的なスキルを作成するためのガイダンスを提供します。
スキルについて
スキルは、Codex の機能を拡張する、モジュール式で自己完結したパッケージです。専門知識、ワークフロー、ツールを提供します。特定の分野やタスク向けの「オンボーディングガイド」と考えてください。スキルによって、Codex は汎用エージェントから、どのモデルも完全には備えられない手順に関する知識を持つ専門エージェントへと変わります。
スキルが提供するもの
- 専門的なワークフロー - 特定の分野向けの複数ステップの手順
- ツール連携 - 特定のファイル形式や API を扱うための手順
- 分野の専門知識 - 企業固有の知識、スキーマ、ビジネスロジック
- 同梱リソース - 複雑で反復的なタスク向けのスクリプト、リファレンス、アセット
基本原則
簡潔さが重要
コンテキストウィンドウは共有資産です。スキルは、システムプロンプト、会話履歴、ほかのスキルのメタデータ、実際のユーザーリクエストなど、Codex が必要とするすべての情報とコンテキストウィンドウを共有します。
基本的な前提:Codex はすでに非常に高い能力を備えています。 Codex がすでに持っている知識は追加しないでください。情報を一つずつ検討しましょう。「Codex に本当にこの説明が必要か?」「この段落はトークンを消費するだけの価値があるか?」と自問してください。
冗長な説明よりも、簡潔な例を優先してください。
適切な自由度を設定する
タスクの脆弱性と変動性に応じて、具体性のレベルを調整してください。
自由度が高い(テキストベースの指示):複数のアプローチが有効な場合、判断が状況に左右される場合、またはヒューリスティックに基づいて進める場合に使用します。
自由度が中程度(パラメーター付きの疑似コードまたはスクリプト):推奨されるパターンがあり、ある程度の変更が許容される場合や、設定が動作に影響する場合に使用します。
自由度が低い(具体的なスクリプト、少数のパラメーター):操作が脆弱でエラーを起こしやすい場合、一貫性が重要な場合、または特定の手順に従う必要がある場合に使用します。
Codex が道を探しながら進む様子を想像してください。崖に挟まれた狭い橋では、具体的なガードレール(自由度が低い)が必要ですが、広い野原ならさまざまなルートを選べます(自由度が高い)。
スキルの構成
すべてのスキルには、必須の SKILL.md ファイルと、任意の同梱リソースがあります。
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata (required)
│ │ ├── name: (required)
│ │ └── description: (required)
│ └── Markdown instructions (required)
└── Bundled Resources (optional)
├── scripts/ - Executable code (Python/Bash/etc.)
├── references/ - Documentation intended to be loaded into context as needed
└── assets/ - Files used in output (templates, icons, fonts, etc.)
SKILL.md(必須)
すべての SKILL.md は、次の要素で構成されます。
- フロントマター(YAML):
nameフィールドとdescriptionフィールドが含まれます。スキルを使用するかどうかを判断するために Codex が読み取るのはこれらのフィールドのみであるため、スキルの内容と使用すべき状況を明確かつ包括的に記述することが非常に重要です。 - 本文(Markdown):スキルの使用方法に関する指示とガイダンスです。スキルが有効になった後にのみ読み込まれます(有効にならない場合もあります)。
同梱リソース(任意)
スクリプト(scripts/)
決定論的な信頼性が必要なタスクや、繰り返し書き直されるタスクに使う実行可能コード(Python/Bash など)です。
- 含める場合:同じコードを繰り返し書き直している場合や、決定論的な信頼性が必要な場合
- 例:PDF の回転タスク向けの
scripts/rotate_pdf.py - 利点:トークン効率が高く、決定論的で、コンテキストに読み込まずに実行できます
- 注記:パッチ適用や環境固有の調整を行うために、Codex がスクリプトを読む必要がある場合もあります
References (references/)
Codex の作業や思考の参考となる、必要に応じてコンテキストに読み込むドキュメントや参考資料です。
- 含めるタイミング:作業中に Codex が参照するドキュメントの場合
- 例:財務スキーマの
references/finance.md、会社の NDA テンプレートのreferences/mnda.md、会社のポリシーのreferences/policies.md、API 仕様のreferences/api_docs.md - ユースケース:データベーススキーマ、API ドキュメント、ドメイン知識、会社のポリシー、詳細なワークフローガイド
- メリット:SKILL.md を簡潔に保ち、Codex が必要だと判断した場合にのみ読み込めます
- ベストプラクティス:ファイルが大きい場合(10k 語超)は、SKILL.md に grep の検索パターンを記載してください
- 重複を避ける:情報は SKILL.md または references ファイルのどちらか一方に記載し、両方には記載しないでください。スキルの中核に当たる情報でない限り、詳細情報は references ファイルに記載してください。これにより、コンテキストウィンドウを圧迫せずに情報を見つけやすくしながら、SKILL.md を簡潔に保てます。SKILL.md には必須の手順とワークフローのガイダンスのみを残し、詳細な参考資料、スキーマ、例は references ファイルに移してください。
Assets (assets/)
コンテキストへの読み込みを想定せず、Codex が生成する出力で使用するファイルです。
- 含めるタイミング:スキルが最終出力で使用するファイルを必要とする場合
- 例:ブランド素材の
assets/logo.png、PowerPoint テンプレートのassets/slides.pptx、HTML/React のひな形のassets/frontend-template/、タイポグラフィ用のassets/font.ttf - ユースケース:テンプレート、画像、アイコン、ひな形コード、フォント、コピーまたは変更して使用するサンプルドキュメント
- メリット:出力リソースをドキュメントから分離し、コンテキストウィンドウに読み込まずに Codex がファイルを使用できるようにします
スキルに含めないもの
スキルには、その機能を直接支える必須ファイルのみを含めてください。README.md、INSTALLATION_GUIDE.md、QUICK_REFERENCE.md、CHANGELOG.md など、不要なドキュメントや補助ファイルは作成しないでください。
スキルには、AI エージェントがその作業を行うために必要な情報のみを含めてください。作成プロセスに関する補足情報、セットアップやテストの手順、ユーザー向けドキュメントなどを含めるべきではありません。追加のドキュメントファイルを作成すると、煩雑になり、混乱を招くだけです。
段階的開示の設計原則
スキルでは、コンテキストを効率的に管理するために、3 段階の読み込みシステムを使用します。
- メタデータ(名前+説明) - 常にコンテキスト内(約100語)
- SKILL.md 本文 - スキルが起動したとき(5k 語未満)
- バンドルされたリソース - Codex が必要に応じて使用(スクリプトはコンテキストウィンドウに読み込まずに実行できるため、制限なし)
段階的開示のパターン
コンテキストの肥大化を最小限に抑えるため、SKILL.md の本文は必要な内容に絞り、500 行未満にしてください。この上限に近づいたら、内容を別のファイルに分割してください。内容を別のファイルに分割する場合は、必ず SKILL.md から参照し、いつ読むべきかを明確に説明してください。スキルを読む人が、そのファイルの存在と利用するタイミングを把握できるようにするためです。
重要な原則: スキルが複数のバリエーション、フレームワーク、オプションに対応している場合は、コアとなるワークフローと選択方法のガイダンスだけを SKILL.md に残します。バリエーション固有の詳細(パターン、例、設定)は、別のリファレンスファイルに移してください。
パターン 1:リファレンス付きの概要ガイド
# PDF Processing
## Quick start
Extract text with pdfplumber:
[code example]
## Advanced features
- **Form filling**: See [FORMS.md](FORMS.md) for complete guide
- **API reference**: See [REFERENCE.md](REFERENCE.md) for all methods
- **Examples**: See [EXAMPLES.md](EXAMPLES.md) for common patterns
Codex は、必要な場合にのみ FORMS.md、REFERENCE.md、または EXAMPLES.md を読み込みます。
パターン 2:ドメイン固有の構成
複数のドメインを扱う Skill では、関連のないコンテキストの読み込みを避けるため、ドメインごとに内容を構成します。
bigquery-skill/
├── SKILL.md (overview and navigation)
└── reference/
├── finance.md (revenue, billing metrics)
├── sales.md (opportunities, pipeline)
├── product.md (API usage, features)
└── marketing.md (campaigns, attribution)
ユーザーが売上指標について尋ねた場合、Codex は sales.md のみを読み込みます。
同様に、複数のフレームワークやバリエーションに対応するスキルでは、バリエーションごとに構成します。
cloud-deploy/
├── SKILL.md (workflow + provider selection)
└── references/
├── aws.md (AWS deployment patterns)
├── gcp.md (GCP deployment patterns)
└── azure.md (Azure deployment patterns)
ユーザーが AWS を選択した場合、Codex は aws.md のみを読み込みます。
パターン 3:条件付きの詳細
基本的な内容を示し、高度な内容へのリンクを記載します。
# DOCX Processing
## Creating documents
Use docx-js for new documents. See [DOCX-JS.md](DOCX-JS.md).
## Editing documents
For simple edits, modify the XML directly.
**For tracked changes**: See [REDLINING.md](REDLINING.md)
**For OOXML details**: See [OOXML.md](OOXML.md)
Codex は、ユーザーがそれらの機能を必要とする場合にのみ REDLINING.md または OOXML.md を読み込みます。
重要なガイドライン:
- 参照を深くネストしない - SKILL.md からの参照は 1 階層に留めてください。すべてのリファレンスファイルは、SKILL.md から直接リンクしてください。
- 長いリファレンスファイルを構成する - 100 行を超えるファイルには、プレビュー時に Codex が全体の範囲を把握できるよう、冒頭に目次を含めてください。
スキルの作成プロセス
スキルの作成には、以下の手順が含まれます。
- 具体例を使ってスキルを理解する
- 再利用可能なスキルの内容(スクリプト、リファレンス、アセット)を計画する
- スキルを初期化する(init_skill.py を実行)
- スキルを編集する(リソースを実装し、SKILL.md を作成)
- スキルをパッケージ化する(package_skill.py を実行)
- 実際の使用状況に基づいて反復する
明確な理由があって該当しない場合を除き、これらの手順を順番に実行してください。
スキルの命名
- 小文字、数字、ハイフンのみを使用してください。ユーザーが指定したタイトルは、ハイフン区切りの形式に正規化します(例:「Plan Mode」→
plan-mode)。 - 名前を生成する場合は、64 文字未満(英字、数字、ハイフン)にしてください。
- アクションを表す、短く動詞で始まるフレーズを推奨します。
- 明確さや起動条件の改善につながる場合は、ツール名を名前空間として付けます(例:
gh-address-comments、linear-address-issue)。 - スキルのフォルダー名は、スキル名と完全に一致させてください。
ステップ 1:具体例を使ってスキルを理解する
スキルの使用パターンがすでに明確に理解されている場合に限り、このステップを省略できます。既存のスキルを扱う場合でも、このステップは有用です。
効果的なスキルを作成するには、具体的な使用例を通じて、そのスキルがどのように使われるかを明確に理解してください。この理解は、ユーザーから直接提示された例から得ることも、ユーザーのフィードバックで検証した例を生成して得ることもできます。
たとえば、画像編集スキルを作成する場合、関連する質問には以下のようなものがあります。
- 「画像編集スキルでは、どのような機能に対応する必要がありますか?編集、回転、ほかにはありますか?」
- 「このスキルをどのように使うか、いくつか例を挙げてもらえますか?」
- 「『この画像の赤目を除去して』や『この画像を回転して』のような依頼が考えられますが、ほかにどのような使い方が想定されますか?」
- 「どのような依頼があれば、このスキルを起動すべきですか?」
ユーザーを圧倒しないよう、1 つのメッセージで質問しすぎないでください。最も重要な質問から始め、より効果的にするために必要に応じて追加で質問します。
スキルが対応すべき機能を明確に把握できたら、このステップを終了します。
ステップ 2:再利用可能なスキルの内容を計画する
具体例を効果的なスキルにするには、各例を次のように分析します。
- ゼロからその例を実行する方法を検討します
- これらのワークフローを繰り返し実行する際に役立つスクリプト、リファレンス、アセットを特定します
例: 「この PDF を回転させてください」のようなクエリに対応する pdf-editor スキルを作成する場合、分析から次のことがわかります。
- PDF を回転させるには、毎回同じコードを書き直す必要があります
scripts/rotate_pdf.pyスクリプトをスキル内に保存しておくと便利です
例: 「ToDo アプリを作って」や「歩数を記録するダッシュボードを作って」のようなクエリに対応する frontend-webapp-builder スキルを設計する場合、分析から次のことがわかります。
- フロントエンドの Web アプリを作成するには、毎回同じ定型の HTML/React を記述する必要があります
- 定型の HTML/React プロジェクトファイルを含む
assets/hello-world/テンプレートをスキル内に保存しておくと便利です
例: 「今日ログインしたユーザー数は?」のようなクエリに対応する big-query スキルを作成する場合、分析から次のことがわかります。
- BigQuery にクエリを実行するには、毎回テーブルのスキーマと関係を調べ直す必要があります
- テーブルのスキーマを記載した
references/schema.mdファイルをスキル内に保存しておくと便利です
スキルに含める内容を決めるには、具体例をそれぞれ分析し、含める再利用可能なリソース(スクリプト、リファレンス、アセット)のリストを作成します。
ステップ 3:スキルを初期化する
ここで、実際にスキルを作成します。
開発中のスキルがすでに存在し、反復やパッケージ化が必要な場合に限り、このステップを省略してください。その場合は次のステップに進みます。
新しいスキルをゼロから作成する場合は、必ず init_skill.py スクリプトを実行してください。このスクリプトを使うと、スキルに必要なものがすべて含まれた新しいスキルディレクトリのテンプレートが生成されるため、スキルの作成をより効率的かつ確実に進められます。
使用方法:
scripts/init_skill.py <skill-name> --path <output-directory> [--resources scripts,references,assets] [--examples]
例:
scripts/init_skill.py my-skill --path skills/public
scripts/init_skill.py my-skill --path skills/public --resources scripts,references
scripts/init_skill.py my-skill --path skills/public --resources scripts --examples
このスクリプトは次の処理を行います。
- 指定したパスにスキルディレクトリを作成します
- 適切なフロントマターと TODO プレースホルダーを含む SKILL.md テンプレートを生成します
--resourcesに応じて、リソースディレクトリを任意で作成します--examplesを指定すると、サンプルファイルを任意で追加します
初期化後、必要に応じて SKILL.md をカスタマイズし、リソースを追加します。--examples を使用した場合は、プレースホルダーファイルを置き換えるか削除してください。
ステップ 4:スキルを編集する
新しく生成したスキルでも既存のスキルでも、編集する際は、このスキルが別の Codex インスタンスによって使用されることを念頭に置いてください。Codex にとって有益で、すぐにはわからない情報を含めます。別の Codex インスタンスがタスクをより効果的に実行するうえで役立つ、手順に関する知識、ドメイン固有の詳細、再利用可能なアセットを検討してください。
実証済みの設計パターンを学ぶ
スキルのニーズに応じて、次のガイドを参照してください。
- 複数ステップのプロセス:順次ワークフローと条件分岐については、references/workflows.md を参照してください
- 特定の出力形式や品質基準:テンプレートと例のパターンについては、references/output-patterns.md を参照してください
これらのファイルには、効果的なスキル設計のために確立されたベストプラクティスが記載されています。
再利用可能なスキルの内容から始める
実装を始めるには、上で特定した再利用可能なリソース、つまり scripts/、references/、assets/ のファイルから着手します。このステップでは、ユーザーからの情報が必要になる場合があります。たとえば、brand-guidelines スキルを実装する場合、assets/ に保存するブランドアセットやテンプレート、または references/ に保存するドキュメントをユーザーが提供する必要があるかもしれません。
追加したスクリプトは、バグがなく、出力が期待どおりであることを確認するため、実際に実行してテストする必要があります。類似したスクリプトが多数ある場合は、完了までの時間とのバランスを取りながら、すべてが正しく動作するという確信を得るために、代表的なサンプルだけをテストすれば十分です。
--examples を使用した場合は、スキルに不要なプレースホルダーファイルを削除してください。実際に必要なリソースディレクトリだけを作成します。
SKILL.md の更新
記述ガイドライン: 常に命令形/不定詞形を使用してください。
フロントマター
name と description を含む YAML フロントマターを記述します。
name: スキル名description: これはスキルの主要なトリガーメカニズムであり、Codex がスキルをいつ使用すべきかを理解するのに役立ちます。- スキルが何を行うかと、いつ使用するかの具体的なトリガー/コンテキストの両方を含めてください。
- 「いつ使用するか」の情報はすべてここに含めてください。本文には含めないでください。本文はトリガー後にのみ読み込まれるため、本文中の「このスキルをいつ使用するか」セクションは Codex には役立ちません。
docxスキルの説明例: 「追跡変更、コメント、書式の保持、テキスト抽出をサポートする包括的なドキュメントの作成、編集、分析。Codex がプロフェッショナルなドキュメント (.docx ファイル) を扱う必要がある場合に使用します: (1) 新しいドキュメントの作成、(2) コンテンツの変更または編集、(3) 追跡変更の操作、(4) コメントの追加、その他のドキュメントタスク」
YAML フロントマターには他のフィールドを含めないでください。
本文
スキルとそのバンドルされたリソースを使用するための手順を記述します。
ステップ 5: スキルのパッケージ化
スキルの開発が完了したら、ユーザーと共有する配布可能な .skill ファイルにパッケージ化する必要があります。パッケージ化プロセスでは、まずスキルがすべての要件を満たしていることを確認するために自動的に検証されます:
scripts/package_skill.py <path/to/skill-folder>
オプションの出力ディレクトリ指定:
scripts/package_skill.py <path/to/skill-folder> ./dist
パッケージ化スクリプトは以下を実行します:
-
検証 スキルを自動的に検証し、以下をチェックします:
- YAML フロントマターの形式と必須フィールド
- スキルの命名規則とディレクトリ構造
- 説明の完全性と品質
- ファイル構成とリソース参照
-
パッケージ化 検証に合格した場合、スキルをパッケージ化し、スキル名にちなんだ .skill ファイル (例:
my-skill.skill) を作成します。これにはすべてのファイルが含まれ、配布用に適切なディレクトリ構造が維持されます。.skill ファイルは .skill 拡張子を持つ zip ファイルです。
検証に失敗した場合、スクリプトはエラーを報告し、パッケージを作成せずに終了します。検証エラーを修正し、パッケージ化コマンドを再度実行してください。
ステップ 6: 反復
スキルをテストした後、ユーザーが改善を要求することがあります。多くの場合、これはスキルを使用した直後に、スキルがどのように機能したかについての新鮮なコンテキストを持って発生します。
反復ワークフロー:
- 実際のタスクでスキルを使用する
- 困難や非効率に気づく
- SKILL.md またはバンドルされたリソースをどのように更新すべきかを特定する
- 変更を実装し、再度テストする