skill-distiller について
Skill Distiller は、高性能モデル向けのスキルを、低コストモデル向けの決定的なワークフローに変換するスキルです。複雑度分析、実行トレース、明示的なルール、対象モデルでの検証を用い、事前のソース監査とモデル間チェックを求めます。
主な機能
- 01指示の複雑度分析
- 02ソースモデルの実行トレース収集
- 03判断ルールと例の抽出
- 04指示を明確な手順に書き換え
- 05Haiku または Sonnet で検証
- 06モデル間比較のレポート
活用シーン
- 01複雑なスキルを Haiku 向けに調整
- 02分岐の多い指示を明確化
- 03元のスキルと蒸留版の出力を比較
- 04アサーション検証で失敗箇所を特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mathews-tom/ armory --skill skill-distillerインストール後、Claude Code で/skill-distillerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CHANGELOG.mdevals/cases.yamlreferences/distillation-patterns.md詳細
スキル蒸留
高性能モデル(Opus)向けに作成されたスキルを、低コストモデル(Sonnet、Haiku)でも確実に実行できる決定論的なワークフローへと変換します。EvoSkillsから得られた中心的な知見は、スキルがモデル固有の成果物ではなく、再利用可能なタスク構造を表すということです。Opusで進化させたスキルは、他のモデルでも+35~45ポイントの向上をもたらします。ただし、低性能モデルが即興で補うことなく従えるほど、指示が十分に決定論的である場合に限られます。
参照ファイル
| ファイル | 内容 | 読み込むタイミング |
|---|---|---|
references/distillation-patterns.md | 推論をルールに変換するためのパターン集 | 常に |
前提条件
- ソーススキルが存在し、現在の
package-evaluator2.0.0の契約を満たしている必要があります。具体的には、実際のreport-v2のstatic_conformance.status: PASSを満たし、作成者による未解決のCRITICALまたはHIGHの指摘がないことです。機械的な証拠と作成者による指摘は分けて扱い、live_effectiveness.statusはNOT_MEASUREDのままにしてください。 - 検証のために、ソースモデル(Opus)と対象モデル(Haiku/Sonnet)の両方にアクセスできること
- クロスモデルのアサーションチェックに
surrogate-verifierスキルを利用できること - 評価ツールまたは必要な作成者レビューを利用できない場合は、不足している前提条件を報告し、トレース収集の前に停止してください。スコアを捏造したり、このゲートを省略したりしてはいけません。この前提条件によって、クロスモデルの動作性能が確認されるわけではありません。
ワークフロー
フェーズ1:複雑さの分析
ソースのSKILL.mdの各セクションについて、推論の難易度を評価します。
| 複雑さの指標 | スコア | 蒸留の方法 |
|---|---|---|
| 3つ以上の分岐がある決定木 | 高 | 明示的なif/then検索テーブルに変換 |
| 「判断を用いる」または「文脈を考慮する」 | 高 | 具体的なヒューリスティックルールに置き換える |
| 複数段階の推論チェーン | 高 | 番号付きの個別ステップに分解する |
| ドメイン知識への言及 | 中 | 知識を含む明示的な参照ファイルを追加する |
| 明確に列挙された手順 | 低 | そのまま維持する |
| 期待される出力を伴う具体例 | 低 | そのまま維持する |
複雑さマップを作成します:セクション名 -> 複雑さスコア -> 予定する対応。
フェーズ2:トレース収集
Opusでソーススキルを実行し、代表的な5つのタスクを処理します。
evals/cases.yamlからタスクを選択します(成功ケース)。または新しいタスクを作成します- 各タスクについて、実行トレース全体を記録します。
- 使用したツール呼び出し(ツールと呼び出し順)
- 出力内で確認できる中間推論
- 最終出力の構造と内容
- 所要時間とトークン使用量
- パターン抽出のため、トレースを構造化データとして保存します
フェーズ3:パターン抽出
収集したトレースから、決定論的なパターンを抽出します。
- 判断経路 — 複雑さが高い各セクションについて、5つのタスクでOpusが実際に行った判断を特定します。5件中4件でOpusが同じ経路を選んだ場合、その経路をデフォルトルールにします
- 検索テーブル — Opusがドメイン知識を適用した箇所で、明示的な検索テーブルを作成します(例:「入力にSQLが含まれている場合は、これらのパターンを使用する。Pythonが含まれている場合は、あれらのパターンを使用する」)
- 具体例 — トレースから代表的な入力/出力の組を抽出し、蒸留したスキルの少数例プロンプトとして使用します
- ツールの実行順序 — 共通するツール呼び出しパターンを特定し、明示します(「手順1:ファイルを読み込む。手順2:パターンXをgrepで検索する。手順3:出力を書き込む。」)
フェーズ 4:簡潔化した書き換え
フェーズ 1 のすべての簡潔化アクションを適用して、SKILL.md を書き換えます。
| ソースのパターン | 簡潔化した置き換え |
|---|---|
| 「コードを分析して判断します……」 | 「次の 5 つの具体的なパターンを確認します:[リスト]」 |
| 「適切な形式を使用します」 | 「列を [A、B、C] とした Markdown テーブルで出力します」 |
| 「コンテキストを考慮して決定します……」 | 「[条件 A] の場合:X を実行します。[条件 B] の場合:Y を実行します。デフォルト:Z」 |
| 「……のベストプラクティスを適用します」 | 具体的なベストプラクティスを列挙したファイルを参照します |
| 複数段落にわたる推論の指示 | 1 文ずつの番号付きステップリストにします |
書き換えのルール:
- すべての指示は、ドメインの専門知識がないモデルでも実行できるものにします
- 推論を必要とするステップは含めません。各ステップの入力と出力を明示します
- 「考慮する」「分析する」「判断する」という動詞をすべて「確認する」「数える」「列挙する」「出力する」に置き換えます
- 曖昧になり得るステップには、具体例を追加します
- SKILL.md は 500 行未満に保ちます(簡潔化によって行数が増えないようにします)
フェーズ 5:対象モデルによる検証
簡潔化したスキルを読み込んだ状態で、対象モデル(Haiku または Sonnet)を実行します。
- フェーズ 2 の同じ 5 つのタスクを実行します
surrogate-verifierを使って、各タスクの出力に対するアサーションを生成します- 合格率を比較します。
| 指標 | ソース(Opus + 元のスキル) | 対象(Haiku + 簡潔化したスキル) | 差分 |
|---|---|---|---|
| 合格したアサーション | N/M | N/M | ± |
| 加重スコア | X.XX | X.XX | ± |
| 出力の完全性 | % | % | ± |
| 形式への準拠率 | % | % | ± |
- 対象モデルのスコアがソースモデルのスコアの 80% 未満の場合は、次の手順を繰り返します。
- 対象モデルが失敗したアサーションを特定します
- 失敗した箇所に対する、より具体的な指示を追加します
- 検証を再実行します(最大 3 回)
フェーズ 6:モデル横断レポート
最終比較を作成します。
# Skill Distillation Report: <skill-name>
## Complexity Reduction
- Sections distilled: N/M (HIGH → LOW)
- Instruction word count: original X → distilled Y (Z% reduction)
- Decision points replaced with lookup tables: N
## Cross-Model Performance
| Model | Assertions Passed | Weighted Score | Format Compliance |
|---------|-------------------|----------------|-------------------|
| Opus | 7/7 | 1.00 | 100% |
| Sonnet | 6/7 | 0.92 | 100% |
| Haiku | 5/7 | 0.85 | 85% |
## Changes Made
1. [Section] "Analyze complexity" → explicit 5-item checklist
2. [Section] "Apply formatting" → fixed markdown table template
...
## Recommendation
[SHIP | ITERATE | MANUAL_REVIEW_NEEDED]
エラー処理
| エラー | 解決策 |
|---|---|
| ソースの静的適合性が FAIL、または作成者による重大/高の指摘が未解決 | 簡潔化を拒否し、根拠となる各ソースを個別に報告して、test-engineer によるソース修正を推奨します |
| ソース評価者または作成者レビューを利用できない | 不足している前提条件を正確に報告し、ゲート完了とトレース収集を保留します |
| 実行トレースがない | 合成タスクを生成し、続行する前にトレースを収集します |
| 対象モデルがすべてのアサーションに失敗する | スキルが対象モデルにとって複雑すぎる可能性があります。詳細を報告します |
| 簡潔化したスキルがソースより長い | 簡潔化を見直します。パターンの統合が必要な可能性があります |
制限事項
- 多数の判断箇所でオープンエンドな適応的推論や複数ターンの推論に依存するスキルは簡潔化できません
- ビジュアル/インタラクティブなスキル(HTML 生成、ブラウザー自動化)は、うまく簡潔化できない場合があります
- 簡潔化では創造性ではなく決定性を最適化するため、オープンエンドな生成(文章作成、ブレインストーミング)が必要なスキルには適しません
- トレースの収集には実際のモデル実行が必要であり、API 費用が発生します
コメント
Markdown 対応