Skip to main content

skill-evaluator

スキルそのものを評価・確認・採点するときに使う。「スキルの品質を確認して」「試用中のスキルを見直して」「このスキルを評価して」「どのスキルを昇格すべきか判断して」などで起動。昇格推奨・要改良・試用継続を判定する。git-skill-manager evaluate操作・scrum-master Phase 6・EVAL_RECOMMEND 出力時にも自動起動。

Source facts

Repository
ynitto/sandbox
Last source activity
October 4, 2026 at 02:11
Detected SKILL.md language
Japanese
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
9 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
skill-evaluator
description
スキルそのものを評価・確認・採点するときに使う。「スキルの品質を確認して」「試用中のスキルを見直して」「このスキルを評価して」「どのスキルを昇格すべきか判断して」などで起動。昇格推奨・要改良・試用継続を判定する。git-skill-manager evaluate操作・scrum-master Phase 6・EVAL_RECOMMEND 出力時にも自動起動。
metadata
{"version":"1.3.0","tier":"core","category":"meta","tags":["skill-evaluation","quality-check"]}
# Skill Evaluator スキルの**静的品質チェック**と**動的評価(フィードバック + メトリクス)**を組み合わせ、 昇格・改良・試用継続の推奨アクションと定量品質スコアを算出するスキル。 `<SKILLS_BASE>` は `<AGENT_HOME>/skills` または `<workspace-skill-dir>` を指す。 ## ワークフロー ### Step 0. 静的品質チェック ```bash python <SKILLS_BASE>/skill-evaluator/scripts/quality_check.py [--skill <name>] ``` ERROR がある場合は修正してから次のステップへ進む。WARN は文脈上問題なければ無視してよい。 チェックコードの一覧と解釈は `references/quality-check-codes.md` を参照。 静的チェックのみでは不十分な場合がある。手動テスト(トリガーテスト・動作テスト)との組み合わせについては `references/testing-guide.md` を参照。 ### Step 1. トリガー評価スクリプトを実行する descriptionが意図通りに発動するかを定量的に評価する。 ```bash # 環境確認(Claude Code か Copilot/Kiro かを判定) python <SKILLS_BASE>/skill-evaluator/scripts/eval_trigger.py --check-env # 単一クエリでテスト python <SKILLS_BASE>/skill-evaluator/scripts/eval_trigger.py \ --skill-path <SKILLS_BASE>/<skill-name> \ --query "スキルを評価して" --expected true # eval set JSON に対して一括テスト python <SKILLS_BASE>/skill-evaluator/scripts/eval_trigger.py \ --skill-path <SKILLS_BASE>/<skill-name> \ --eval-set eval.json --verbose # トリガーのシミュレーション・競合確認 python <SKILLS_BASE>/skill-evaluator/scripts/simulate_trigger.py "<ユーザーリクエスト>" python <SKILLS_BASE>/skill-evaluator/scripts/simulate_trigger.py --conflicts ``` 評価モード: - **高精度モード**(Claude Code): `claude -p` を使って実際のLLM判定を行う - **簡易モード**(Copilot/Kiro): バイグラム類似度でヒューリスティクス判定する eval set JSON 形式: ```json [ {"query": "スキルを評価して", "should_trigger": true}, {"query": "スキルを作って", "should_trigger": false} ] ``` トリガーテストの詳細手順は `references/testing-guide.md` を参照。 ### Step 2. 動的評価スクリプトを実行する ```bash # 全スキル(ワークスペース + インストール済み)を評価 python <SKILLS_BASE>/skill-evaluator/scripts/evaluate.py # メトリクスを最新化してから評価(推奨) python <SKILLS_BASE>/skill-evaluator/scripts/evaluate.py --auto-collect # フィルタ python <SKILLS_BASE>/skill-evaluator/scripts/evaluate.py --type workspace # ワークスペースのみ python <SKILLS_BASE>/skill-evaluator/scripts/evaluate.py --type installed # インストール済みのみ python <SKILLS_BASE>/skill-evaluator/scripts/evaluate.py --skill <name> # 特定スキルのみ ``` `--auto-collect` を付けると評価前に `git-skill-manager` の `metrics_collector.py` を実行し、 `metrics-log.jsonl` から使用回数・Pass率・リトライ回数を集計してレジストリに反映する。 出力例: ``` 📊 メトリクスを自動集計しました 📊 3 スキルを集計、3 スキルのレジストリを更新しました 📋 ワークスペーススキル(試用中): my-skill ok:2 問題:0 📊 評価可 スコア:78/100(B) → ✅ 昇格推奨 [実行:8回 / Pass:88% / retry:1.5 / 7d:3回] other-skill ok:1 問題:1 📊 初期 スコア:35/100(D) → ⚠️ 要改良後昇格 [実行:2回 / Pass:50% / retry:3.0] new-skill ok:1 問題:0 📊 初期 スコア:- → 🔄 試用継続 昇格推奨: my-skill 要改良: other-skill 📋 インストール済みスキル(ホーム領域): docx-converter ok:3 問題:2 📊 評価可 スコア:52/100(C) → ⚠️ 要改良 [team-skills] [実行:12回 / Pass:60% / retry:2.0 / 7d:4回] image-resizer ok:5 問題:0 📊 実績十分 スコア:91/100(A) → ✅ 正常 [local] [実行:25回 / Pass:95% / retry:0.5 / 7d:8回] 要改良: docx-converter 正常: image-resizer ``` ### Step 3. ユーザーに確認してアクションを実行する refine 前後に同じheld-out behaviorを実行したqualification JSONがある場合は、共通の checkpoint comparatorをadvisoryとして併記する。previousは「直前にacceptedだったcheckpoint」に限る。 ```bash python <SKILLS_BASE>/skill-evaluator/scripts/evaluate.py --skill <skill-name> \ --checkpoint-previous previous.json --checkpoint-current current.json ``` 出力は `IMPROVED / RETAINED / REGRESSION / MIXED / INSUFFICIENT_DATA` のいずれかで、 regression case IDも表示する。このadvisoryはMVPでは既存のpromote/refine判定を変更もblockもしない。 **昇格推奨がある場合:** ``` 「my-skill を昇格しますか? 昇格すると <AGENT_HOME>/skills/ にコピーされ、他のプロジェクトでも使えるようになります。 1. 昇格する(git-skill-manager promote) 2. もう少し試用する 3. スキップ」 ``` **要改良がある場合(ワークスペース・インストール済み共通):** ``` 「[skill-name] に改善待ちのフィードバックがあります。 1. 今すぐ改良する(git-skill-manager refine) 2. 後で改良する 3. スキップ」 ``` 各アクションの実行方法は `<SKILLS_BASE>/git-skill-manager/SKILL.md` の該当操作(`promote` / `refine`)を参照する。 インストール済みスキルかつ `source_repo` がリポジトリ名の場合、改良後に `push` 操作を提案する。 --- ## 評価基準 ### ワークスペーススキル(試用中) | 評価 | 条件 | アクション | |---|---|---| | ✅ 昇格推奨 | ok ≥ 2 かつ `pending_refinement: false` かつ broken なし かつ成熟度 ≠ 初期 | git-skill-manager promote | | ⚠️ 要改良後昇格 | `pending_refinement: true` または broken あり | git-skill-manager refine → 改良後に promote | | 🔄 試用継続 | ok = 1 かつ問題なし(またはデータ不足) | 報告のみ | ### インストール済みスキル(ホーム領域) | 評価 | 条件 | アクション | |---|---|---| | ⚠️ 要改良 | `pending_refinement: true` または未改良問題あり | git-skill-manager refine(必要なら push) | | ✅ 正常 | 問題なし | 報告のみ | ### verdict の深刻度 | verdict | 深刻度 | 影響 | |---|---|---| | `broken` | 高 | ok 数に関わらず即要改良。昇格条件を満たさない | | `needs-improvement` | 中 | 問題ありとしてカウント | | `ok` | — | 正常動作 | ### 成熟度ステージ | ステージ | 条件 | 方針 | |---|---|---| | 初期(データ不足) | 総フィードバック < 2 | 評価保留。試用継続を優先 | | 評価可能 | 総フィードバック 2〜4 | 通常の評価基準を適用 | | 十分な実績 | 総フィードバック ≥ 5 | 昇格後も継続的な改良サイクルを推奨 | --- ## 定量品質スコア(0〜100) `evaluate.py` が `git-skill-manager` の `metrics` フィールドから自動算出する。 スコアは推奨アクション(promote / refine)の決定には使用しない。改良優先度の参考として使う。 ### スコア構成 | 指標 | 最大点 | 算出方法 | |---|---|---| | Pass率(ok_rate) | 70 点 | `ok_rate × 70` | | 実績(使用回数) | 20 点 | `min(total_executions / 10, 1.0) × 20`(10 回以上で満点) | | リトライ少なさ | 10 点 | `max(0, 10 - avg_subagent_calls × 2)`(0 回で 10 点、5 回以上で 0 点) | ### グレード | グレード | スコア | |---|---| | A | 80〜100 | | B | 60〜79 | | C | 40〜59 | | D | 0〜39 | `metrics` が未集計(`--auto-collect` 未実行またはログなし)の場合はスコア `-` で表示される。 --- ## 改良ガイドライン 詳細なテスト手順・回帰テスト・よくある評価ミスは [references/testing-guide.md](references/testing-guide.md) を参照。 ### フィードバックパターンから問題を推察する | パターン | 推察される原因 | 改良提案 | |---|---|---| | `needs-improvement` が連続 | SKILL.md の手順・説明が不明確 | 記述の整理・具体例の追加 | | `broken` が複数 | scripts/ の実装不備 | スクリプトのデバッグ・テスト | | ok が増えない(長期停滞) | スコープが広すぎる | スキルの分割 | | 改良後も同じ問題が続く | 根本的な設計問題 | description・構造の見直し | ### 改良効果の評価 `refined: true` のフィードバックを除外した上で新規フィードバックを分析し、改良が効果をもたらしたかを判断する: - 改良後に `ok` が増加 → 効果あり(昇格に向けて継続) - 改良後も `needs-improvement` / `broken` が続く → 再改良を推奨 ### refine 実施時の指針 - **一般化する**: 少数の使用例に過度に合わせず、多様なプロンプトで機能するよう一般化する - **スリムに保つ**: 効果を発揮していない記述を削除する - **「なぜ」を説明する**: MUST / NEVER の多用より、理由の説明のほうが効果的 - **繰り返し作業をバンドルする**: 同じ処理が複数ケースで書かれていたら `scripts/` へ - **description を見直す**: undertrigger が疑われる場合は、発動条件を積極的・明示的に記述する --- ## 起動元別の動作 | 起動元 | 対象 | モード | |---|---|---| | ユーザー直接 / git-skill-manager evaluate | 全スキル(`--type all`) | 通常モード(対話的に進める) | | scrum-master Phase 6 | 全スキル(`--type all`) | レポートのみモード | | record_feedback.py の EVAL_RECOMMEND 出力 | 対象スキル 1 件(`--skill <name>`) | 通常モード | ### レポートのみモード(scrum-master Phase 6 から起動された場合) VSCode Copilot ではサブエージェントがユーザーと対話できないため、Step 2(確認・実行)は行わない。 代わりに以下の形式でアクション一覧を返し、scrum-master が判断・実行する: ``` 評価結果(ワークスペース): - [skill-name]: [昇格推奨 / 要改良後昇格 / 試用継続] — スコア:[N]/100([グレード]) — [理由1文] 評価結果(インストール済み): - [skill-name]: [要改良 / 正常] — スコア:[N]/100([グレード]) — [理由1文] — source_repo: [repo-name または local] ``` インストール済みスキルで「要改良」かつ `source_repo` がリポジトリ名の場合、scrum-master が改良後に push も提案する。 `EVAL_RECOMMEND: promote` または `EVAL_RECOMMEND: refine` が `record_feedback.py` から出力された場合、 そのスキルだけを対象に `--skill <name>` で評価スクリプトを実行する。
View on GitHub