skill-creator について
skill-creator は、Codex 向けのスキル作成を支援するガイドです。構成や再利用可能なリソース、段階的な情報開示、作成手順を説明します。
主な機能
- 01スキルの構成と要素
- 02スクリプトや資料、アセットの計画
- 03段階的な情報開示の原則
- 04スキル作成の手順
活用シーン
- 01スキルのファイルと再利用リソースの計画
- 02簡潔な SKILL.md の作成
- 03資料の分割やスクリプト追加の判断
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oldwinter/ skills --skill skill-creatorインストール後、Claude Code で/skill-creatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtreferences/output-patterns.mdworkflows.mdscripts/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/)
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/)
コンテキストに読み込むのではなく、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:ドメイン固有の整理
複数のドメインを扱うスキルでは、関係のないコンテキストを読み込まないよう、ドメインごとに内容を整理します。
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 を実行する)
- 実際の使用に基づいて反復する
適用できない明確な理由がある場合にのみ手順を省略し、これらの手順に沿って進めてください。
ステップ 1:具体例を使ってスキルを理解する
スキルの使用パターンがすでに明確に理解できている場合に限り、この手順を省略してください。既存のスキルを扱う場合でも、この手順は有用です。
効果的なスキルを作成するには、そのスキルがどのように使われるかを具体例に基づいて明確に理解する必要があります。この理解は、ユーザーから直接提供された例、またはユーザーのフィードバックで検証された生成例から得られます。
たとえば、画像編集スキルを作成する際には、次のような質問が参考になります。
- 「画像編集スキルではどのような機能に対応すべきですか?編集、回転、それ以外にもありますか?」
- 「このスキルがどのように使われるか、例をいくつか挙げてもらえますか?」
- 「『この画像の赤目を修正して』や『この画像を回転して』のようにユーザーが依頼することが想像できます。他にも想定される使い方はありますか?」
- 「どのような依頼があったときに、このスキルを起動すべきですか?」
ユーザーに負担をかけないよう、1 つのメッセージで質問しすぎないでください。最も重要な質問から始め、必要に応じて、より効果的なスキルにするための質問を続けてください。
スキルが対応すべき機能を明確に把握できたら、この手順を終えます。
ステップ 2:再利用可能なスキルの内容を計画する
具体例を効果的なスキルに変えるには、各例を次の観点から分析します。
- その例を最初から実行する方法を検討する
- こうしたワークフローを繰り返し実行する際に役立つスクリプト、リファレンス、アセットを特定する
例:「この PDF を回転するのを手伝って」のような問い合わせに対応する pdf-editor スキルを作成する場合、分析から次のことが分かります。
- PDF を回転するには、毎回同じコードを書き直す必要があります
scripts/rotate_pdf.pyスクリプトをスキルに保存しておくと便利です
例:「ToDo アプリを作って」や「歩数を記録するダッシュボードを作って」のような問い合わせに対応する frontend-webapp-builder スキルを設計する場合、分析から次のことが分かります。
- フロントエンドのウェブアプリを作成するには、毎回同じ定型の 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>
このスクリプトは、次の処理を行います。
- 指定したパスにスキルディレクトリを作成します
- 適切なフロントマターと TODO のプレースホルダーを含む SKILL.md テンプレートを生成します
- サンプルのリソースディレクトリとして、
scripts/、references/、assets/を作成します - 各ディレクトリに、カスタマイズまたは削除できるサンプルファイルを追加します
初期化後、必要に応じて、生成された SKILL.md とサンプルファイルをカスタマイズするか削除してください。
ステップ 4:スキルを編集する
新しく生成したスキルでも既存のスキルでも、編集する際は、このスキルが Codex の別のインスタンスで使用されることを念頭に置いてください。Codex にとって有益で、かつ自明でない情報を含めます。別の Codex インスタンスがタスクをより効果的に実行するうえで役立つ、手順に関する知識、ドメイン固有の詳細、再利用可能なアセットを検討してください。
実証済みの設計パターンを学ぶ
スキルのニーズに応じて、次の参考ガイドを参照してください。
- 複数ステップのプロセス:順序付けられたワークフローや条件分岐のロジックについては、references/workflows.md を参照してください
- 特定の出力形式や品質基準:テンプレートや例のパターンについては、references/output-patterns.md を参照してください
これらのファイルには、効果的なスキル設計のために確立されたベストプラクティスが記載されています。
再利用可能なスキルのコンテンツから始める
実装を始めるには、上記で特定した再利用可能なリソース(scripts/、references/、assets/ のファイル)から取り組んでください。この手順では、ユーザーからの入力が必要になる場合があります。たとえば、brand-guidelines スキルを実装する場合、ユーザーは assets/ に保存するブランドアセットやテンプレート、または references/ に保存するドキュメントを提供する必要があるかもしれません。
追加したスクリプトは、実際に実行してバグがなく、出力が期待どおりであることを確認してください。似たスクリプトが多数ある場合は、完了までの時間とのバランスを取りながら、すべてが動作するという確信を得るため、代表的なサンプルだけをテストすれば十分です。
スキルに不要なサンプルファイルやディレクトリは削除してください。初期化スクリプトは構成例として scripts/、references/、assets/ にサンプルファイルを作成しますが、ほとんどのスキルですべてが必要になるわけではありません。
SKILL.md を更新する
執筆ガイドライン: 常に命令形または不定詞形を使ってください。
Frontmatter
name と description を含む YAML frontmatter を記述してください。
name:スキル名description:スキルを使う主なトリガーとなる情報であり、Codex がいつスキルを使うべきかを理解するのに役立ちます。- スキルの機能と、使用すべき具体的なトリガーや状況の両方を含めてください。
- 「いつ使うか」に関する情報はすべてここに含めてください。本文には含めないでください。本文はトリガー後に読み込まれるため、本文内の「このスキルを使う場面」セクションは Codex の役に立ちません。
docxスキルの説明例:「変更履歴、コメント、書式の保持、テキスト抽出に対応した、包括的なドキュメントの作成、編集、分析。Codex が次のような業務用ドキュメント(.docx ファイル)を扱う必要がある場合に使用します:(1)新しいドキュメントの作成、(2)コンテンツの変更や編集、(3)変更履歴の操作、(4)コメントの追加、その他あらゆるドキュメント関連の作業」
YAML frontmatter にその他のフィールドを含めないでください。
本文
スキルと同梱リソースの使い方に関する指示を記述してください。
ステップ 5:スキルをパッケージ化する
スキルの開発が完了したら、ユーザーと共有できる配布用の .skill ファイルにパッケージ化する必要があります。パッケージ化プロセスでは、まずスキルがすべての要件を満たしているかを自動で検証します。
scripts/package_skill.py <path/to/skill-folder>
出力ディレクトリの指定は任意です。
scripts/package_skill.py <path/to/skill-folder> ./dist
パッケージ化スクリプトは次の処理を行います。
-
検証:次の項目を確認し、スキルを自動で検証します。
- YAML frontmatter の形式と必須フィールド
- スキルの命名規則とディレクトリ構造
- 説明の網羅性と品質
- ファイル構成とリソースの参照
-
パッケージ化:検証に合格すると、スキル名に基づく名前(例:
my-skill.skill)の .skill ファイルを作成し、配布用の適切なディレクトリ構造を維持したまま、すべてのファイルを格納します。.skill ファイルは、拡張子が .skill の ZIP ファイルです。
検証に失敗すると、スクリプトはエラーを報告し、パッケージを作成せずに終了します。検証エラーを修正してから、パッケージ化コマンドを再度実行してください。
ステップ 6:反復する
スキルをテストした後、ユーザーから改善を求められることがあります。スキルの動作を実際に確認した直後、状況を把握したうえで依頼されることがよくあります。
反復ワークフロー:
- 実際のタスクでスキルを使う
- つまずきや非効率な点を見つける
- SKILL.md や同梱リソースのどこを更新すべきか特定する
- 変更を実装し、再度テストする