skill-creator-flagos について
FlagOS skills リポジトリでスキルを作成、改善、検証、評価するためのメタスキルです。ガイド付きの手順、テンプレート、規約チェック、テストプロンプトによる評価を提供します。
主な機能
- 01テンプレートからスキルを作成
- 02対話で要件を整理
- 03既存スキルを分析・改善
- 04構成と規約を検証
- 05テストプロンプトで評価
活用シーン
- 01作業手順をスキル化
- 02既存スキルの不足を確認
- 03スキルのファイルと規約を検証
- 04サンプルプロンプトでスキルをテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ flagos-ai/ skills --skill skill-creator-flagosインストール後、Claude Code で/skill-creator-flagosを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSE.txtREADME_zh.mdREADME.mdreferences/schemas.mdwriting-guide.mdscripts/init_skill.py詳細
スキル作成ツール
FlagOS スキルリポジトリ内のスキルを作成、改善、検証するためのメタスキルです。
概要
このスキルでは、スキル開発のライフサイクル全体を順を追って進めます。
- 作成 — テンプレートから新しいスキルのひな形を作成し、ユーザーにヒアリングして、SKILL.md を作成します
- 改善 — 既存のスキルを分析し、弱点を特定して、テストケースを使って反復改善します
- 検証 — 構造、フロントマター、参照、規約への準拠を確認します
使用方法
/skill-creator-flagos # Interactive — asks what you want to do
/skill-creator-flagosmy-new-skill --init # Scaffold a new skill
/skill-creator-flagosmy-skill --validate # Validate an existing skill
/skill-creator-flagosmy-skill --eval # Run test prompts against a skill
実行
ステップ 0:引数を解析し、モードを決定する
ユーザー入力から次の情報を抽出します。
{{skill_name}}— 任意のスキル名(ハイフン区切り){{mode}}—create、improve、validate、eval、interactiveのいずれか(デフォルト)
モードが指定されていない場合は、ユーザーに尋ねます。
何をしますか?
- 新しいスキルをゼロから作成する
- 既存のスキルを改善する
- スキルの構造と規約への準拠を検証する
- スキルに対してテストケースを実行する
-> ユーザーに伝える:モードとスキル名を確認します。
モード 1:新しいスキルを作成する
ステップ 1:目的を把握する
まず、ユーザーが何を作成したいのかを把握します。現在の会話にユーザーが形にしたいワークフロー(例:「これをスキルにする」)がすでに含まれている場合は、会話履歴から回答を先に抽出します。
確認する主な質問:
- このスキルでエージェントに何をできるようにしますか?
- どのようなときにこのスキルを起動しますか?(ユーザーの表現、コンテキスト、ファイルタイプ)
- 期待する出力または最終状態は何ですか?
- スクリプト、リファレンスドキュメント、アセットファイルは必要ですか?
- このスキルにどのツールへのアクセスが必要ですか?
ユーザーに合わせてコミュニケーションのスタイルを調整します。コーディング用語に詳しいとは限りません。文脈から得られる手がかりにも注意を払います。
-> ユーザーに伝える:把握した目的を要約し、次に進む前に確認します。
ステップ 2:スキルディレクトリを初期化する
初期化スクリプトを実行し、スキルのひな形を作成します。
python3 {{skill_root}}/scripts/init_skill.py {{skill_name}} --path {{skills_dir}} [--resources scripts,references,assets]
以下のとおりです。
{{skill_root}}= この skill-creator-flagos のディレクトリの絶対パス{{skills_dir}}=skills/ディレクトリへのパス(通常は{{skill_root}}の親ディレクトリ)
スクリプトは、SKILL.md テンプレート、LICENSE.txt、任意のサブディレクトリを含むディレクトリを作成します。
-> ユーザーに伝える:作成されたディレクトリ構成を示します。
ステップ 3:SKILL.md を作成する
ユーザーへのヒアリング内容に基づいて、次の要素を記入します。
フロントマター(YAML)
| フィールド | 必須 | ガイドライン |
|---|---|---|
name | はい | 小文字とハイフンを使用し、ディレクトリ名と一致させます。最大 64 文字です |
description | はい | 何をするか、いつ起動するかを 1~2 文で記述します。具体的で、やや「積極的」にします。起動しないよりは、頻繁に起動する方向にします |
argument-hint | 推奨 | 想定される引数を示します |
user-invokable | 推奨 | /skill-name で起動できる場合は true にします |
compatibility | 任意 | 環境要件 |
metadata | 推奨 | バージョン、作成者、カテゴリ、タグ |
allowed-tools | 推奨 | パターンを含む、スペース区切りのツール一覧 |
本文(Markdown)
references/writing-guide.md に記載された構成に従います。最低限、次の項目を含めます。
- 概要 — 解決する問題と、いつ有効化するか
- 前提条件 — 環境要件
- 実行手順 —
**-> ユーザーに伝える**形式の進捗マーカーを含む番号付き手順 - 例 — 現実的な使用例を少なくとも 2~3 件
- トラブルシューティング — よくある問題と解決方法
段階的な情報提示、出力形式、ドメイン構成、文章のスタイルについて詳しくは、references/writing-guide.md を読んでください。
Step 4: 補助リソースを追加する
スキルのニーズに応じて、次を作成します。
scripts/— 決定的/反復的なタスクのための実行可能コードreferences/— 必要に応じてコンテキストに読み込む詳細なドキュメントassets/— 出力で使用するファイル(テンプレート、アイコンなど)
ルール:
- すべてのスクリプト/リファレンスについて、使用方法をSKILL.mdに記載する必要があります
- スクリプトには実行権限を付与します(
chmod +x) - SKILL.mdは500行未満に保ち、詳細な内容は
references/に移します - 300行を超えるリファレンスファイルには、目次を含めます
Step 5: 検証する
検証を実行して、規約への準拠を確認します。
python3 {{repo_root}}/scripts/validate_skills.py {{skills_dir}}/{{skill_name}}
報告された問題を修正します。以下の「トラブルシューティング」セクションを参照してください。
-> ユーザーに伝える:検証結果を報告します。失敗した場合は、原因を特定して修正します。
Step 6: READMEファイルを作成する
既存のスキルのパターンに従い、README.md(英語)と、必要に応じてREADME_zh.md(中国語)を作成します。READMEには次の内容を含めます。
- 概要/問題の説明
- 使用方法
- ディレクトリ構成
- ファイルの説明
- 例
- インストール手順
-> ユーザーに伝える:スキルの作成が完了したことを伝えます。最終的なディレクトリツリーと概要を提示します。
モード 2:既存のスキルを改善する
Step 1: 現在のスキルを分析する
既存のSKILL.mdとすべての補助ファイルを読みます。次を特定します。
- 説明における不明瞭または欠落している起動条件
- 不足している例やエッジケース
- 進捗報告(
**-> Tell user**)がない手順 - リファレンスに分割すべき、長すぎるSKILL.md
- 不足しているトラブルシューティング項目
- ドキュメント化されていないスクリプト
-> ユーザーに伝える:調査結果と改善案を提示します。
Step 2: テスト用プロンプトを作成する
現実的なテスト用プロンプトを2~3個作成します。実際のユーザーが使いそうな内容にします。ユーザーに共有し、確認してもらいます。
evals/evals.jsonに保存します。
{
"skill_name": "{{skill_name}}",
"evals": [
{
"id": 1,
"prompt": "User's task prompt",
"expected_output": "Description of expected result",
"assertions": ["The output includes X", "Step Y was executed"]
}
]
}
スキーマの詳細はreferences/schemas.mdを参照してください。
Step 3: 反復する
各ラウンドで、次を行います。
- SKILL.mdと補助ファイルに改善を適用する
- 検証を再実行する
- テスト用プロンプトに照らして確認する(頭の中で評価するか、テストを実行する)
- ユーザーのフィードバックを集める
- 満足するまで繰り返す
-> ユーザーに伝える:各反復で行った変更を報告します。
モード 3:検証する
検証スクリプトを実行します。
python3 {{repo_root}}/scripts/validate_skills.py {{skills_dir}}/{{skill_name}}
スクリプトでは、次を確認します。
- SKILL.mdが存在し、有効なYAMLフロントマターがある
- 必須フィールド(
name、description)が存在する nameがディレクトリ名と一致し、命名規則に従っているdescriptionの長さが制限内である- 本文に十分な内容がある(100文字超)
scripts/とreferences/で参照されているファイルが実際に存在する- スクリプトに実行権限がある
- ハードコードされたパスや認証情報がない
-> ユーザーに伝える:すべての指摘事項を、重大度(エラー/警告)とともに報告します。
モード 4:評価を実行する
evals/evals.jsonが存在する場合、スキルに対してテスト用プロンプトを実行します。
python3 {{skill_root}}/scripts/run_eval.py {{skills_dir}}/{{skill_name}}
各テストケースについて、どのアサーションが成功/失敗したかを示すレポートが生成されます。
-> ユーザーに伝える:結果を提示し、改善案を提案します。
プレースホルダー
| プレースホルダー | 導出方法 |
|---|---|
{{skill_name}} | ユーザー入力から取得し、ハイフン区切りの形式に正規化します |
{{skill_root}} | このskill-creator-flagosのディレクトリへの絶対パス |
{{repo_root}} | リポジトリのルート(skills/の親ディレクトリ)への絶対パス |
{{skills_dir}} | すべてのスキルを含むskills/ディレクトリへのパス |
例
例 1:新しいスキルをゼロから作成する
User says: "/skill-creator-flagospreflight-check --init"
Actions:
1. Parse → skill_name=preflight-check, mode=create
2. Interview user about what preflight-check should do
3. Run init_skill.py to scaffold directory
4. Write SKILL.md with deployment verification workflow
5. Add scripts/check_gpu.sh, scripts/check_env.py
6. Validate and fix any issues
7. Write README.md
Result: Complete preflight-check skill ready for use
例 2:既存のスキルを改善する
User says: "improve model-migrate-flagos, the description could be better"
Actions:
1. Read existing SKILL.md and all references
2. Analyze description — find it's too long and not trigger-friendly
3. Propose a more concise, trigger-optimized description
4. Create test prompts to verify triggering
5. Apply changes, validate
Result: Improved skill with better triggering accuracy
例 3:すべてのスキルを検証する
User says: "/skill-creator-flagos--validate"
Actions:
1. No skill_name provided → validate all skills in skills/
2. Run validate_skill.py on each skill directory
3. Report consolidated results
Result: Validation report for all skills
例 4:会話のワークフローをスキルに変換する
User says: "turn what we just did into a skill"
Actions:
1. Analyze conversation history for the workflow performed
2. Extract: tools used, sequence of steps, corrections made
3. Interview user to fill gaps
4. Scaffold and write the skill
Result: New skill capturing the conversation workflow
トラブルシューティング
| 問題 | 原因 | 対処方法 |
|---|---|---|
name does not match directory name | Frontmatter の name がフォルダー名と異なります | 両者が完全に一致するようにしてください |
description exceeds 1024 chars | 説明が長すぎます | 詳細を本文に移し、説明を1~2文にしてください |
SKILL.md body is too short | 指示が不十分です | 概要、手順、例、トラブルシューティングを追加してください |
Missing required field | Frontmatter に name または description がありません | 不足しているフィールドを追加してください |
name must be lowercase+hyphens | 名前に無効な文字が含まれています | a-z、0-9、- のみを使用してください |
| スキルが起動しません | 説明が狭すぎるか、曖昧です | 説明をより具体的にし、起動条件をやや積極的に設定してください |
| 参照先のファイルが見つかりません | SKILL.md に記載されたスクリプトまたは参照ファイルがディスク上にありません | ファイルを作成するか、参照を削除してください |