--- name: skills-generator description: Agent Skillsを新規作成・改善・セキュリティ診断・日本語ローカライズするメタスキル。ユーザーの目的に応じたSKILL.mdとオプションフォルダ(references/assets/examples/scripts/)を含む完全なスキルパッケージを生成する。既存スキルの発火条件・構造・品質の改善、ヘルパースクリプト付きスキルの生成、悪意ある指示やリスクの診断、英語スキルの日本語化にも対応。「スキルを作って」「Skill作成」「新しいスキル」「スキル生成」「スキルを改善」「スキルを最適化」「発火しない」「発火条件を改善」「スキルの診断」「スキルをチェック」「スキルを監査」「スキルを日本語化」「スキルを翻訳」「ローカライズ」「こんなことしたい」「あんな事ができたら」「自動化したい」などで発火。 --- # Skills Generator — Agent Skills のメタスキル ## スキル読み込み通知 このスキルが読み込まれたら、必ず以下の通知をユーザーに表示してください: > 💡 **Skills Generator スキルを読み込みました** > Agent Skillsの作成・改善・診断・ローカライズを行います。 Agent Skills を **作成**・**改善**・**診断**・**ローカライズ** するためのメタスキルです。 ユーザーの要望に応じて、以下の4つのモードで動作します。 | モード | 説明 | トリガー例 | |--------|------|-----------| | 🔨 **Generate** | 新しいスキルを一式作成(スクリプト付きも対応) | 「pytestのスキルを作って」「自動化スクリプト付きで」 | | ✨ **Improve** | 既存スキルをベストプラクティスに基づき改善 | 「スキルを改善して」「発火条件を良くして」 | | 🛡️ **Audit** | 既存スキルのセキュリティ診断 | 「スキルをチェックして」「スキルを監査」 | | 🌐 **Localize** | 英語スキルの日本語化 | 「スキルを日本語化して」「翻訳して」 | また、ユーザーが「こんなことしたい」「〜を自動化したい」と漠然とした要望を伝えた場合でも、目的を分析して最適なスキル構成を提案・生成します。 --- ## When to Use - 新しい Agent Skill を作成したいとき - 「こんなことできたらいいな」を実現するスキルが欲しいとき - ヘルパースクリプト付きの自動化スキルを作りたいとき - 既存スキルの発火条件・構造・品質を改善したいとき - スキルが思ったように発火しない・期待と違う動作をするとき - 外部から取得したスキルの安全性を確認したいとき - 英語で書かれたスキルを日本語に翻訳したいとき --- ## Mode 1: Generate — スキル新規作成 ### 手順 #### Step 1: ヒアリング ユーザーから以下の情報を確認する: 1. **目的**: 何をするスキルか(例: pytest実行、セキュリティ分析、コードレビュー) 2. **スコープ**: プロジェクト固有か、汎用か 3. **配置先**: `.github/skills/`(プロジェクト)か `~/.copilot/skills/`(個人)か 4. **必要リソース**: テンプレート、スクリプト、参照ドキュメントが必要か 5. **自動化**: ヘルパースクリプトで自動化したい処理があるか > 💡 ユーザーが「こんなことしたい」「あんな事ができたら」と漠然とした要望の場合は、目的から逆算して最適な構成を提案する。必要に応じて Generate + scripts/ の組み合わせを自動的に選択する。 #### Step 2: スキル構成の設計 以下のディレクトリ構成を基本として、必要に応じて各オプションフォルダを追加する: ``` .github/skills/{skill-name}/ ├── SKILL.md # 必須:スキル定義 ├── scripts/ # オプション:ヘルパースクリプト ├── references/ # オプション:参照ドキュメント・仕様 ├── examples/ # オプション:実装例・サンプル └── assets/ # オプション:テンプレート・図 ``` 各フォルダの使い分け: | フォルダ | 用途 | 追加する条件 | |---------|------|-------------| | `scripts/` | 自動化スクリプト、診断ツール | スキルがコマンド実行を伴う場合 | | `references/` | 仕様書、ガイドライン、チェックリスト、実装パターン | 詳細な参照情報がある場合 | | `examples/` | サンプルコード、実装例 | 具体的なコード例が必要な場合 | | `assets/` | テンプレート、ひな型 | 出力フォーマットが決まっている場合 | > 💡 **実装パターン・注意点の組み込み**: プロジェクトオーバービュースキルを作成する場合、`references/` に **実装パターン・注意点リファレンス** を含めることを強く推奨する。調査方法・出力フォーマット・完全な例は以下を参照: > > 📄 **[references/implementation-patterns-guide.md](references/implementation-patterns-guide.md)** #### Step 3: SKILL.md の作成 SKILL.md テンプレートは以下を参照: 📄 **[assets/skill-template.md](assets/skill-template.md)** 作成時のルール: 1. **name**: 小文字の英字・数字・ハイフンのみ(最大64文字) 2. **description**: 1行で完結させる。改行や `|` は使わない。以下を必ず含める: - スキルの目的(何をするか) - 発火キーワード(日本語・英語の両方が望ましい) 3. **スキル読み込み通知**: **必須**。スキルが読み込まれたら、ユーザーにスキル名と目的を通知する指示を含める(テンプレートに含まれています) 4. **本文**: 手順(Step)を軸に構成し、詳細は外部ファイルへ分離する #### Step 4: オプションファイルの作成 SKILL.md 本文にテンプレートやチェックリストを直接埋め込まず、外部ファイルに分離する。 **分離の判断基準**: - 10行を超えるコードブロック → `assets/` または `examples/` へ - 表形式のリファレンス → `references/` へ - 実行可能なスクリプト → `scripts/` へ SKILL.md からは相対パスのリンクで参照する: ```markdown 📄 **[assets/template.md](assets/template.md)** 📄 **[references/guidelines.md](references/guidelines.md)** ``` #### Step 5: ヘルパースクリプトの作成(該当する場合) スキルが **コマンド実行を伴う自動化** を含む場合、`scripts/` フォルダにヘルパースクリプトを作成する。 **スクリプトが必要なケースの判断**: | ユーザーの要望 | スクリプトの種類 | 例 | |---------------|----------------|-----| | 「ファイルを自動生成したい」 | ジェネレーター | テンプレートからファイルを生成するスクリプト | | 「チェックを自動化したい」 | バリデーター | lint、型チェック、規約チェック | | 「データを変換したい」 | トランスフォーマー | フォーマット変換、マイグレーション | | 「情報を収集したい」 | コレクター | プロジェクト情報の収集・集約 | | 「定型処理をまとめたい」 | ワークフロー | 複数コマンドの一括実行 | **スクリプト作成のルール**: スクリプト作成のパターン集と安全性ガイドラインは以下を参照: 📄 **[references/script-patterns.md](references/script-patterns.md)** 主要な原則: 1. **言語選択**: プロジェクトの技術スタックに合わせる。迷ったら Node.js(`.mjs`)か Python(`.py`)か Shell(`.sh`/`.ps1`) 2. **安全性**: 破壊的操作は必ず `--dry-run` オプションを提供し、デフォルトではドライランとする 3. **冪等性**: 何度実行しても同じ結果になるようにする 4. **エラーハンドリング**: 失敗時に明確なエラーメッセージを出力する 5. **SKILL.md からの参照**: スクリプトの使い方を SKILL.md に記述する ```markdown ## 使い方 スクリプトを実行して○○を行います: \```bash node scripts/generate.mjs --target src/ \``` ``` #### Step 6: 品質チェック 作成したスキルについて以下を確認する: - [ ] `name` が命名規則に準拠しているか - [ ] `description` が1行で、発火キーワードを含んでいるか - [ ] スキル読み込み通知セクションが含まれているか - [ ] SKILL.md が肥大化していないか(外部ファイル分離が適切か) - [ ] 外部ファイルへのリンクが正しいか - [ ] `scripts/` がある場合、スクリプトが安全で冪等か - [ ] 日本語で記述されているか ### スキル設計のベストプラクティス 詳細は以下を参照: 📄 **[references/best-practices.md](references/best-practices.md)** --- ## Mode 2: Improve — 既存スキルの改善 ### 概要 プロジェクトに既に存在するスキルを分析し、ベストプラクティスに基づいて改善します。 発火条件の最適化、構造の改善、不足している機能の追加などを行い、スキルの効果を最大化します。 ### 手順 #### Step 1: 対象スキルの分析 対象スキルの全ファイルを読み込み、以下の観点で現状を評価する: | 評価軸 | チェック内容 | |--------|-------------| | 発火精度 | `description` の記述が十分か、発火キーワードが適切か | | 構造品質 | SKILL.md がスリムか、外部ファイル分離が適切か | | 網羅性 | 必要な手順・リファレンス・テンプレートが揃っているか | | 実用性 | 実際の業務フローに沿った指示になっているか | | スクリプト | 自動化すべき処理がスクリプト化されているか | | 実装パターン | プロジェクト固有の注意点・ワークアラウンドがリファレンスとして整備されているか | #### Step 2: 改善レポートの作成 改善提案を以下のフォーマットで出力する: 📄 **[assets/improvement-report-template.md](assets/improvement-report-template.md)** #### Step 3: 改善の実施 ユーザーの承認を得た上で、以下の改善を実施する: **発火条件の改善**: 発火しない・意図と違う発火をする場合の改善チェックリストは以下を参照: 📄 **[references/improve-checklist.md](references/improve-checklist.md)** 主な改善パターン: | 問題 | 原因 | 改善方法 | |------|------|---------| | スキルが発火しない | `description` のキーワード不足 | ユーザーが使いそうなフレーズを追加 | | 関係ないときに発火する | `description` が曖昧 | 具体的な条件と除外条件を明記 | | 出力が期待と違う | 指示が不明確 | Step の手順を具体化、テンプレートを追加 | | 毎回似たことを聞かれる | コンテキスト不足 | `references/` にプロジェクト固有情報を追加 | | 手動作業が多い | 自動化が不足 | `scripts/` にヘルパースクリプトを追加 | | 実装時に同じミスを繰り返す | プロジェクト固有の注意点が未整備 | `references/` に実装パターン・注意点リファレンスを追加 | **構造の改善**: - SKILL.md が100行を超えている → テンプレート・リファレンスを外部ファイルに分離 - `assets/` / `references/` が未使用 → 必要に応じてフォルダとファイルを追加 - `scripts/` が必要そうな処理がある → ヘルパースクリプトを作成 #### Step 4: 改善結果の検証 - [ ] 改善後の `description` で意図通りに発火するか - [ ] 既存の機能が損なわれていないか - [ ] 外部ファイルへのリンクが正しいか - [ ] スクリプトが追加された場合、安全に動作するか --- ## Mode 3: Audit — セキュリティ診断 ### 概要 Agent Skills は SKILL.md に任意の指示を記述できるため、悪意のある指示が埋め込まれるリスクがあります。 このモードでは、指定されたスキル(または全スキル)をチェックし、セキュリティリスクを報告します。 ### 手順 #### Step 1: 対象の特定 - 特定のスキル名が指定された場合 → そのスキルのみ診断 - 「全部チェック」の場合 → `.github/skills/` 配下の全スキルを診断 - 外部から取得したスキルの場合 → 優先的に詳細チェック #### Step 2: セキュリティチェックの実行 以下のチェックリストに基づいて診断する: 📄 **[references/security-checklist.md](references/security-checklist.md)** 主要なチェック項目(抜粋): | カテゴリ | チェック項目 | リスクレベル | |---------|-------------|-------------| | データ流出 | 外部URLへのデータ送信指示 | 🔴 Critical | | コード実行 | 任意のシェルコマンド実行指示 | 🔴 Critical | | ファイル操作 | 意図しないファイル削除・上書き | 🟠 High | | 権限昇格 | sudo / 管理者権限の要求 | 🟠 High | | 情報収集 | 環境変数・認証情報の読み取り | 🟠 High | | 隠蔽 | 指示の存在を隠す記述 | 🔴 Critical | #### Step 3: 診断レポートの出力 レポートテンプレートは以下を参照: 📄 **[assets/audit-report-template.md](assets/audit-report-template.md)** --- ## Mode 4: Localize — 日本語ローカライズ ### 概要 GitHub や Anthropic のリポジトリなどから取得した英語スキルを、機能を変えずに日本語化します。 ### 手順 #### Step 1: 対象スキルの読み込み 対象スキルの全ファイル(SKILL.md + オプションフォルダ)を読み込む。 #### Step 2: 翻訳の実行 以下のルールに従って翻訳する: | 要素 | 翻訳方針 | |------|---------| | `name` フィールド | **翻訳しない**(英字・ハイフンのみの制約) | | `description` フィールド | 日本語に翻訳し、日本語の発火キーワードを追加 | | 見出し・本文 | 日本語に翻訳 | | コード・コマンド | **翻訳しない**(コメントのみ翻訳可) | | ファイル名・パス | **翻訳しない** | | 技術用語 | 初出時に `原語(日本語)` の形式で併記し、以降は日本語のみ | #### Step 3: セキュリティチェック 外部から取得したスキルは、ローカライズの前後に **Mode 3: Audit** を自動実行する。 #### Step 4: 出力 翻訳後のスキルを同じディレクトリ構成で出力する。元のスキルは上書きする(不安であれば事前にバックアップを提案)。 --- ## 参照ドキュメント | ドキュメント | 内容 | |-------------|------| | [assets/skill-template.md](assets/skill-template.md) | SKILL.md の作成テンプレート | | [assets/audit-report-template.md](assets/audit-report-template.md) | セキュリティ診断レポートテンプレート | | [assets/improvement-report-template.md](assets/improvement-report-template.md) | スキル改善レポートテンプレート | | [references/best-practices.md](references/best-practices.md) | スキル設計のベストプラクティス | | [references/improve-checklist.md](references/improve-checklist.md) | 既存スキル改善チェックリスト | | [references/script-patterns.md](references/script-patterns.md) | ヘルパースクリプト作成パターン集 | | [references/security-checklist.md](references/security-checklist.md) | セキュリティ診断チェックリスト | | [references/skill-standard-summary.md](references/skill-standard-summary.md) | Agent Skills Standard 仕様サマリー | | [references/implementation-patterns-guide.md](references/implementation-patterns-guide.md) | 実装パターン・注意点リファレンス作成ガイド | | [examples/example-skill/](examples/example-skill/) | 良いスキルの実装例 |