name: skill-creator-skill description: > Kiro用のAgent Skillsを対話的に作成するSkill。ユーザーからSkillの要件をヒアリングし、 agent-skills-best-practices.mdに準拠したSKILL.mdおよび関連ファイル(scripts/、references/、assets/)を 自動生成する。Skill名のkebab-caseバリデーション、descriptionの品質チェック、SKILL.md行数制約(500行以下)、 ファイル参照の相対パス検証など、ベストプラクティスへの準拠を自動検証する。 情報が不足している場合はWeb検索で補完し、配置先(グローバル: ~/.kiro/skills/ または ワークスペース: .kiro/skills/)の選択にも対応する。 使用タイミング: ユーザーがSkillを新規作成したい場合に使用する。 トリガーキーワード(日本語): Skill作成、スキル作成、スキルを作って、スキルを作成して、Agent Skill作成。 トリガーキーワード(英語): Create skill, Create skills, Make a skill, Build a skill, New skill. metadata: version: "1.0" author: "skill-creator"
Skill Creator Skill
概要
Kiro用のAgent Skillsを対話的に作成するSkillである。ユーザーから作成したいSkillの要件をヒアリングし、agent-skills-best-practices.mdに準拠したSKILL.mdおよび関連ファイル(scripts/、references/、assets/)を自動生成する。
トリガーキーワード
本Skillは、以下のトリガーキーワードに一致するプロンプトが入力された場合にアクティベートされる。トリガーキーワードに一致しない入力の場合、アクティベーションはスキップされる。
日本語:
- 「Skill作成」
- 「スキル作成」
- 「スキルを作って」
- 「スキルを作成して」
- 「Agent Skill作成」
英語:
- "Create skill"
- "Create skills"
- "Make a skill"
- "Build a skill"
- "New skill"
ワークフロー
本Skillは2つのフェーズで動作する。フェーズ1で要件をヒアリングし、フェーズ2でSkillファイルを生成する。
フェーズ1: 要件ヒアリング
ステップ1: アクティベーション判定
ユーザーの入力を上記トリガーキーワード一覧と照合する。一致した場合はステップ2に進む。一致しない場合はアクティベーションをスキップする。
ステップ2: 必須項目の収集
以下の必須項目をユーザーから対話的に収集する。
| 項目 | 説明 |
|---|---|
| Skill名 | kebab-case形式、最大64文字 |
| 目的・機能 | Skillが何をするか |
| トリガー条件 | いつアクティベートされるべきか(キーワード一覧) |
| 配置スコープ | グローバル(~/.kiro/skills/)or ワークスペース(.kiro/skills/) |
- ユーザーが一度に複数の情報を提供した場合は、不足分のみを追加で質問する
- Skill名が未指定の場合は、目的・機能から候補を提案する
ステップ3: オプション項目の収集または推定
以下のオプション項目について、ユーザーに確認する。省略された場合は目的・機能の情報から適切なデフォルト値を推定する。
| 項目 | 省略時の推定方法 |
|---|---|
| ワークフロー | 目的・機能から実行手順を推定 |
| 出力フォーマット | 目的に応じた標準的なフォーマットを設定 |
| scripts/の要否 | 外部ツール連携や自動化が必要かを判断(デフォルト: 不要) |
| references/の要否 | 参照ドキュメントの分量から判断(デフォルト: 不要) |
| assets/の要否 | テンプレートやデータファイルの必要性から判断(デフォルト: 不要) |
ステップ4: 情報不足時のWeb検索による補完
収集した情報だけではSkillの目的やワークフローを十分に定義できない場合、以下の手順で補完する。
- 不足している情報に関連するキーワードでWeb検索を実行する
- 検索結果から関連情報を整理する
- 補完情報をユーザーに提示し、採用するかどうかの確認を取る
- Web検索が失敗した場合は、ユーザーに手動での情報提供を依頼してヒアリングを継続する
ステップ5: 収集した要件の一覧提示と確認
すべての情報が揃ったら、収集した要件を以下の形式で一覧提示し、ユーザーの確認を求める。
【収集した要件】
- Skill名: {skill-name}
- 目的・機能: {purpose}
- トリガー条件: {triggers}
- 配置スコープ: {scope}
- ワークフロー: {workflow}(推定値の場合はその旨を明記)
- 出力フォーマット: {output_format}
- scripts/: {要/不要}
- references/: {要/不要}
- assets/: {要/不要}
この内容でSkillを生成してよろしいですか?修正が必要な項目があればお知らせください。
ユーザーが承認したらフェーズ2(Skill生成)に進む。修正依頼があれば該当項目を更新し、再度確認を求める。
フェーズ2: Skill生成
ユーザーの承認を得た要件に基づき、Skillファイルを生成・配置・検証する。
ステップ6: Skill名のバリデーションとkebab-case自動変換
ユーザーが指定したSkill名に対して、以下のバリデーションを実行する。
- kebab-case形式の検証: 正規表現
^[a-z0-9]+(-[a-z0-9]+)*$に一致するか確認する- 小文字英数字とハイフンのみ許可
- ハイフンで開始・終了不可
- 連続ハイフン不可
- 文字数の検証: 64文字以内であることを確認する
- 違反時の自動変換:
- 大文字を小文字に変換する
- スペース・アンダースコア・その他の区切り文字をハイフンに変換する
- 英数字とハイフン以外の文字を除去する
- 先頭・末尾のハイフンを除去する
- 連続ハイフンを単一ハイフンに置換する
- 64文字を超える場合は切り詰める
- 変換後の候補をユーザーに提示し、承認を得る
ステップ7: SKILL.md(frontmatter + 本文セクション)の生成
確定したSkill名と要件に基づき、SKILL.mdを生成する。
frontmatterの生成:
---
name: "{skill-name}" # kebab-case、ディレクトリ名と一致
description: >
{Skillの機能}。
使用タイミング: {いつ使用するか}。
トリガーキーワード: {キーワード一覧}。
metadata:
version: "1.0"
author: "{author}"
---
- descriptionにはSkillの機能、使用タイミング、トリガーキーワードを含める
- descriptionは1024文字以内とする
本文セクションの生成:
以下の推奨セクション構成でSKILL.md本文を生成する。
| セクション | 内容 |
|---|---|
| 概要 | Skillの目的と機能の簡潔な説明 |
| ワークフロー | ステップバイステップの実行手順 |
| ルール | 遵守すべきルール一覧 |
| 出力フォーマット | 期待する出力のテンプレート |
| 例 | 入力例と出力例 |
| ガイドライン | 追加のガイドラインや注意事項 |
- SKILL.md本文は500行以下で生成する
- 500行を超える場合は、詳細な内容をreferences/配下のファイルに分割し、SKILL.mdからは相対パスで参照する
ステップ8: 関連ファイル(scripts/、references/、assets/)の生成
ヒアリングで確認した要否に基づき、必要な関連ファイルを生成する。
scripts/ディレクトリ:
- 自己完結型の実行可能スクリプトを生成する
- 各スクリプトは単独で実行可能であること
- 外部ネットワーク接続を含む場合は、ユーザーに明示的に警告を表示する
references/ディレクトリ:
- 焦点を絞った個別のドキュメントファイルを生成する
- SKILL.md本文が500行を超える場合の分割先としても使用する
- 各ファイルは特定のトピックに焦点を当てた内容とする
assets/ディレクトリ:
- テンプレートやデータファイルを生成する
- 生成されるSkillが使用するテンプレート等を配置する
共通ルール:
- すべてのファイル参照はSKILL.mdからの相対パスで記述する
- ファイル参照の深さは1階層までに制限する(例:
references/guide.mdは可、references/sub/guide.mdは不可)
ステップ9: 配置場所の決定とファイル配置
ヒアリングで確認した配置スコープに基づき、ファイルを配置する。
| スコープ | 配置先パス |
|---|---|
| グローバル | ~/.kiro/skills/{skill-name}/ |
| ワークスペース | .kiro/skills/{skill-name}/ |
- 配置先ディレクトリを作成する
- 配置先に既にSkillが存在するか確認する
- 既存Skillが存在する場合、以下の選択肢をユーザーに提示する:
- 上書き: 既存Skillを完全に置き換える
- マージ: 既存Skillの内容と新しい内容を統合する
- 別名で作成: 別のSkill名で新規作成する
- ユーザーの選択に従い、SKILL.mdおよび関連ファイルを配置する
- frontmatterのnameフィールドが配置先ディレクトリ名と一致していることを確認する
ステップ10: バリデーション実行と結果提示
生成・配置が完了したら、以下の全項目を検証する。
| チェック項目 | 基準 |
|---|---|
| name形式 | kebab-case形式、64文字以内、ディレクトリ名と一致 |
| description品質 | 機能+使用タイミング+トリガーキーワードを含む、1024文字以内 |
| SKILL.md行数 | 500行以下 |
| ファイル参照パス | 相対パスで記述、1階層以内 |
| セクション構成 | 推奨セクション(概要、ワークフロー、ルール、出力フォーマット、例、ガイドライン)を含む |
バリデーション成功時:
生成された成果物の一覧と各ファイルの説明をユーザーに提示する。
【生成された成果物】
✅ バリデーション: すべてのチェックに合格しました
📁 {配置先パス}
├── SKILL.md - Skill定義ファイル({行数}行)
├── scripts/ - (生成した場合のみ表示)
│ └── {script-name} - {スクリプトの説明}
├── references/ - (生成した場合のみ表示)
│ └── {ref-name} - {ドキュメントの説明}
└── assets/ - (生成した場合のみ表示)
└── {asset-name} - {アセットの説明}
バリデーション失敗時:
違反箇所と修正提案をユーザーに提示し、修正を実行するかどうかの確認を取る。
ルール
Skill名バリデーションルール
Skill名は以下のすべてのルールに準拠しなければならない。
形式ルール(kebab-case)
- 使用可能な文字は小文字英数字(
a-z,0-9)とハイフン(-)のみ - ハイフンで開始してはならない(例:
❌ -my-skill) - ハイフンで終了してはならない(例:
❌ my-skill-) - 連続するハイフンを含んではならない(例:
❌ my--skill) - 正規表現:
^[a-z0-9]+(-[a-z0-9]+)*$
文字数制約
- Skill名は64文字以内であること
- 64文字を超える場合はバリデーションエラーとする
違反時の自動変換ルール
ユーザーが指定したSkill名がkebab-case規則に違反している場合、以下の手順で自動変換した候補を提示する。
- 大文字を小文字に変換する
- スペース・アンダースコア・その他の区切り文字をハイフンに変換する
- 英数字とハイフン以外の文字を除去する
- 先頭・末尾のハイフンを除去する
- 連続ハイフンを単一ハイフンに置換する
- 64文字を超える場合は切り詰める(末尾のハイフンが残る場合はさらに除去する)
変換後の候補をユーザーに提示し、承認を得てから使用する。ユーザーが候補を拒否した場合は、別の名前の入力を求める。
ディレクトリ名との一致検証
- Skill名(frontmatterの
nameフィールド)は、配置先ディレクトリ名と完全に一致しなければならない - 例:
name: my-skillの場合、配置先は{scope}/skills/my-skill/であること - 不一致の場合はバリデーションエラーとし、修正を求める
SKILL.md生成ルール
生成するSKILL.mdは以下のルールに準拠しなければならない。
frontmatter必須フィールド
SKILL.mdの先頭にYAML frontmatterを配置し、以下の必須フィールドを含める。
| フィールド | 必須 | ルール |
|---|---|---|
| name | はい | kebab-case形式、最大64文字、配置先ディレクトリ名と一致 |
| description | はい | 最大1024文字、下記の品質基準を満たすこと |
| metadata | はい | version、authorを含むキー・バリューマッピング |
nameはSkill名バリデーションルールに準拠することmetadataには最低限versionとauthorを含めること- 任意フィールド(license、compatibility、allowed-tools)は必要に応じて追加する
descriptionの品質基準
descriptionフィールドは以下の3要素をすべて含めなければならない。
- 機能: Skillが何をするかの具体的な説明
- 使用タイミング: いつこのSkillを使うべきかの明示
- トリガーキーワード: アクティベーション判定に使用するキーワード一覧
- 文字数は1024文字以内とする
- 曖昧な表現(例: 「いろいろ手伝う」)を避け、具体的な機能を記述する
- トリガーキーワードは日本語・英語の両方を含めることを推奨する
本文の推奨セクション構成
SKILL.md本文は以下の6セクションを推奨構成として含める。
| セクション | 内容 | 必須 |
|---|---|---|
| 概要 | Skillの目的と機能の簡潔な説明 | はい |
| ワークフロー | ステップバイステップの実行手順 | はい |
| ルール | 遵守すべきルール一覧 | はい |
| 出力フォーマット | 期待する出力のテンプレート | 推奨 |
| 例 | 入力例と出力例 | 推奨 |
| ガイドライン | 追加のガイドラインや注意事項 | 推奨 |
- Skillの目的に応じてセクションの追加・省略は許容するが、概要・ワークフロー・ルールは必須とする
- 各セクションは見出しレベル2(
##)で記述する
500行以下の制約と超過時の分割ルール
- SKILL.md本文は500行以下で生成しなければならない
- 500行を超える場合は、以下の手順で分割する:
- 詳細な参照資料、補足説明、長い例をreferences/配下の個別ファイルに分離する
- SKILL.md本文からは相対パスで分離先ファイルを参照する(例:
references/detailed-guide.md) - 分離後のSKILL.md本文が500行以下であることを確認する
- 分離先ファイルは焦点を絞った個別のドキュメントとし、1ファイル1トピックを原則とする
- Progressive Disclosure原則に従い、SKILL.md本文には要約のみを残し、詳細は参照先に委ねる
ファイル参照と配置ルール
生成するSkillのファイル参照および配置先は以下のルールに準拠しなければならない。
相対パスでの参照ルール
- SKILL.md内のすべてのファイル参照は、SKILL.mdからの相対パスで記述する
- 絶対パスやホームディレクトリ参照(
~/、/始まり)は使用しない - 例:
✅ references/guide.md✅ scripts/setup.sh✅ assets/template.yaml❌ /home/user/.kiro/skills/my-skill/references/guide.md❌ ~/.kiro/skills/my-skill/scripts/setup.sh
参照の深さ1階層制限
- ファイル参照の深さは1階層までに制限する(ディレクトリ直下のファイルのみ参照可能)
- サブディレクトリ内のファイルへの参照は禁止する
- 深くネストした参照チェーンも避ける(ファイルAがファイルBを参照し、ファイルBがファイルCを参照するような連鎖)
- 例:
✅ references/guide.md(1階層)❌ references/sub/guide.md(2階層 - 禁止)❌ scripts/lib/helper.sh(2階層 - 禁止)
配置パス
Skillの配置先は、ユーザーが選択したスコープに応じて以下のパスを使用する。
| スコープ | 配置先パス | 用途 |
|---|---|---|
| グローバル | ~/.kiro/skills/{skill-name}/ |
全ワークスペース共通で使用するSkill |
| ワークスペース | .kiro/skills/{skill-name}/ |
プロジェクト固有のSkill |
{skill-name}はfrontmatterのnameフィールドと完全に一致させる- 配置先ディレクトリ内の構成例:
{skill-name}/ ├── SKILL.md ├── scripts/ (任意) ├── references/ (任意) └── assets/ (任意)
既存Skill競合時の対応ルール
指定された配置先に既にSkillが存在する場合、以下の手順で対応する。
- 既存Skillの内容(SKILL.md、関連ファイル)を確認する
- ユーザーに以下の3つの選択肢を提示する:
- 上書き: 既存Skillを完全に削除し、新しいSkillで置き換える
- マージ: 既存Skillの内容と新しい内容を統合する(セクション単位で差分を確認)
- 別名で作成: 別のSkill名を指定して新規ディレクトリに作成する
- ユーザーの選択を確認してから実行する(確認なしでの上書きは禁止)
セキュリティルール
生成するSkillの安全性を確保するため、以下のセキュリティルールを遵守する。
外部ネットワーク接続の警告
- scripts/配下に生成するスクリプトが外部ネットワーク接続を含む場合(
curl、wget、fetch、http/httpsリクエスト、外部API呼び出し等)、生成前にユーザーに明示的に警告を表示する - 警告には接続先のURL・ホスト名と接続の目的を明記する
- ユーザーの承認を得てからスクリプトを生成する(承認なしでの生成は禁止)
- SKILL.md本文やreferences/内の指示文にも同様の基準を適用し、外部接続を指示する内容がある場合は警告する
パストラバーサル防止
- 生成されるすべてのファイルパスがワークスペース外を参照しないことを検証する
- 以下のパターンを含むパスを拒否する:
../を含むパス(親ディレクトリへの遡り)/で始まる絶対パス(グローバル配置パス~/.kiro/skills/を除く)- シンボリックリンクを利用したワークスペース外への参照
- ファイル参照だけでなく、スクリプト内のファイル操作対象パスも検証対象とする
- 違反を検出した場合はバリデーションエラーとし、該当パスと修正案を提示する
インジェクション防止
- Skill名およびdescriptionに以下のインジェクション可能な文字列が含まれないことを検証する:
- HTMLタグ・スクリプトタグ(例:
<script>、<img onerror=...>) - シェルコマンドインジェクション(例:
$(command)、`command`、; rm -rf /) - YAMLインジェクション(例: frontmatterの構造を破壊する文字列)
- テンプレートインジェクション(例:
{{、${})
- HTMLタグ・スクリプトタグ(例:
- Skill名は英数字とハイフンのみ許可するkebab-caseルールにより、インジェクションリスクを低減する
- descriptionは生成前にサニタイズし、上記パターンを検出した場合はユーザーに警告して修正を求める
出力フォーマット
本Skillが生成するSKILL.mdは、以下のテンプレート構造に従う。
frontmatterテンプレート
---
name: "{skill-name}"
description: >
{Skillの機能の具体的な説明}。
使用タイミング: {いつこのSkillを使うべきかの説明}。
トリガーキーワード(日本語): {日本語キーワードをカンマ区切りで列挙}。
トリガーキーワード(英語): {英語キーワードをカンマ区切りで列挙}。
metadata:
version: "1.0"
author: "{author}"
---
本文セクションテンプレート
# {Skill名}
## 概要
{Skillの目的と機能を簡潔に記述する。2〜3文程度。}
## ワークフロー
{ステップバイステップの実行手順を記述する。}
### ステップ1: {ステップ名}
{手順の詳細}
### ステップ2: {ステップ名}
{手順の詳細}
## ルール
{遵守すべきルールを番号付きリストで記述する。}
1. {ルール1}
2. {ルール2}
## 出力フォーマット
{このSkillが生成する成果物のテンプレートや形式を記述する。}
## 例
{入力例と出力例を記述する。エッジケースも含める。}
## ガイドライン
{追加のガイドラインや注意事項を記述する。}
テンプレート使用時の注意
{変数名}のプレースホルダーは、ヒアリングで収集した要件に基づいて置換する- セクションの追加・省略はSkillの目的に応じて許容するが、概要・ワークフロー・ルールは必須とする
- 本文全体が500行以下に収まるよう、詳細な内容はreferences/に分離する
例
入力例(ユーザーのプロンプト例と期待される応答)、出力例(生成されるSKILL.mdのサンプル)、エッジケース(Skill名違反時の変換例、500行超過時の分割例)については、references/examples.md を参照。
ガイドライン
Progressive Disclosure原則の適用、ベストプラクティスへの準拠、エラーハンドリング(Web検索失敗時、ファイル生成エラー時、修正依頼時)の詳細なガイドラインは references/guidelines.md を参照。
agent-skills-best-practices.md の要点をまとめたクイックリファレンスは references/best-practices-summary.md を参照。Skill生成時のfrontmatterフィールド、kebab-caseルール、Progressive Disclosure制約、ファイル参照ルール等を一覧で確認できる。
バリデーションチェックリスト
Skill生成後に実行するバリデーション(name形式、description品質、SKILL.md行数、ファイル参照、セクション構成の全13項目)の詳細は references/validation-checklist.md を参照。