SkillForge
観察されたパターンから、適切に構造化され、仕様に準拠したスキルを作成します。
鍛造するタイミング
✅ 鍛造すべき時:
- セッション中に同じシーケンスを2〜3回繰り返した
- プロジェクトの規約がどこにも文書化されていない
- 再利用可能な解決策で難しい問題を解決した
- 誰かにスキルの作成を依頼された
❌ 鍛造すべきでない時:
- 一度きりのタスクである
- 既存のスキルでカバーされている(代わりに更新する)
- 「スキル」が単一のコマンドである(スクリプトエイリアスを使用する)
手順
1. パターンに名前を付ける
- このスキルはどの問題を解決するか?
- 何がトリガーになるか?(具体的に —
descriptionフィールドが発見の入り口です) - 入力と出力は何か?
2. 名前を選ぶ
kebab-case、1〜64文字- 可能な限り動詞で始める:
deploy-preview、scaffold-component、triage-bug - スキルごとに単一の責務
3. スキルディレクトリを作成する
mkdir -p skills/<skill-name>
4. SKILL.mdを書く
以下のスケルトンを使用します:
---
name: <skill-name>
description: <何をするか>。<トリガー>のときに使用します。
metadata:
forged-by: <エージェントID>
forged-from: <セッションまたはコンテキスト>
forged-reason: "<これが作成された理由>"
---
# <スキル名>
## 入力
- ...
## 手順
1. ...
2. ...
## 規約
- 適用されるプロジェクト固有のパターン
## エッジケース
- 既知の落とし穴や特別な処理
5. スクリプトを追加する(オプション)
スキルがファイル生成や自動化を含む場合:
skills/<skill-name>/
├── SKILL.md
├── scripts/
│ └── run.sh # 実行可能な自動化
└── references/
└── conventions.md # 詳細なリファレンス(SKILL.mdを簡潔に保つ)
6. スキルを登録する
プロジェクトルート(skills/と同じ階層)にある.skills-registry.mdを更新します。存在しない場合は作成します:
| <skill-name> | local | <今日の日付> | 1 | <説明> |
プロジェクトが機械可読なレジストリ(.skills-registry.json)を使用している場合、そちらも更新します — skdd forgeは両方の形式を自動的に処理します。
既存のスキルを更新する
スキルを使用中にカバーされていないことに遭遇した場合:
- 新しいエッジケースや手順を既存のSKILL.mdに追加する
- スキルが長くなりすぎた場合(200行超)、分割する
- レジストリの
last-usedを更新し、usage-countをインクリメントする
品質チェックリスト
新しいスキルをコミットする前に:
-
nameがkebab-caseで、64文字以下である -
descriptionに「何をするか」と「いつ使うか」が含まれている - 手順が番号付きで実行可能である
- ハードコードされたパス、シークレット、環境固有の値がない
- SKILL.mdが200行未満である(詳細は
references/に移動) -
.skills-registry.mdに登録されている