evaluate-waza-copilot-customizations · git:20261018.a6d0f06 · 2026-10-18 · sha256 0b424692be592ca1
evaluate-waza-copilot-customizations git:20261018.a6d0f06A
Immutable. This exact content never changes and is served at /api/v1/blob/0b424692be592ca1.
--- name: evaluate-waza-copilot-customizations description: "Waza で個人(~/.copilot)/ ワークスペース / 任意パスの instructions / agents / skills をセットアップ、static/runtime 評価、gate 単体実行、結果要約、report 更新まで行う。" disable-model-invocation: true user-invocable: true license: CC BY-NC-SA 4.0 metadata: author: yamapan (https://github.com/aktsmm) --- <!-- syncToGlobal: true --> <!-- author: aktsmm --> <!-- repository: https://github.com/aktsmm/Agent-Customization --> <!-- license: CC BY-NC-SA 4.0 --> <!-- copyright: Copyright (c) 2025 aktsmm --> # WAZA evaluate copilot customizations 個人(`~/.copilot`)、現在のワークスペース、または任意パスの Copilot customization files を対象に、Waza 評価プロジェクトのセットアップ、static/runtime 評価、gate 単体実行、結果要約、report 更新を行う。 ## Scope - 既定の評価対象: `$HOME\.copilot`(instructions / skills / agents) - ワークスペース評価対象の例: `<workspace>\.github` - 任意評価対象の例: instruction / agent / skill を含むディレクトリまたは単一ファイル - 既定の Waza 評価プロジェクト: `~/waza-copilot-customization-evals` - 既定の static eval: `evals\copilot-customizations\eval.yaml` - 既定の runtime eval: `evals\copilot-customizations\runtime-eval.yaml` - 既定の結果 JSON: `results\customizations-eval.json` - 既定の runtime 結果 JSON: `results\runtime-customizations-eval.json` - 既定の report: `reports\YYYY-MM-DD-copilot-customizations-waza-report.md` ## Setup Links - Setup guide: https://github.com/aktsmm/Agent-Customization/blob/master/docs/waza-copilot-customizations-setup.md - Template: https://github.com/aktsmm/Agent-Customization/tree/master/templates/waza-copilot-customization-evals この skill だけをコピーした場合は、まず setup guide を開く。`evalProject` が無い場合は template から始める。 ## 引数 skill には入力変数の仕組みがない。依頼文と `argument-hint` から次の値を読み取り、指定がなければ既定を使う。 - `targetScope`: `personal`(`~/.copilot`) / `workspace` / `custom`。既定は `personal` - `targetPath`: `custom` のときは必須。`workspace` で空なら `<workspace>\.github`、`personal` で空なら `$HOME\.copilot` - `evalProject`: 空なら `~/waza-copilot-customization-evals` - `action`: `setup` / `run` / `runtime` / `gate` / `report` / `full`。既定は `full` - `executionMode`: `static` / `runtime` / `both`。既定は `static` - `gateMode`: `metadata` / `agent-structure` / `token-budget` / `all`。`action` が `gate` のときだけ使う。既定は `all`(3 モードを順次実行する論理指定) - `maxFileTokens`: 既定は 5000 - `maxTotalTokens`: 既定は `personal` が 130000、`workspace` / `custom` が 60000 - `runtimePrompt`: `runtime` のときに実行・記録する prompt。空なら target を要約する smoke prompt を使う - `runtimeModel`: runtime / copilot-sdk 用 model。空なら、現在の環境で使える model 名を確認して選ぶ - `runtimeTaskStrategy`: `template` / `record`。既定は `template` ## Operating Rules - 評価対象の instruction / agent / skill 本体は、この skill では変更しない。 - 修正はユーザーが明示した場合だけ行う。評価だけなら Waza project 配下の eval 資産、結果 JSON、report だけ更新してよい。 - secret、認証情報、個人アカウント値は report に書かない。問題がある場合はファイル名と観点だけを書く。 - PowerShell 前提で、コマンドは非対話・単発・timeout 付きで実行する。 - 結果の出力が長い場合は、summary、failed gate、issue、warning、next fix candidates だけを抽出して報告する。 - `action=setup` または `action=full` では、必要なら Waza project 側の `.waza.yaml`、static/runtime eval、task、grader script、report script、results/`、`reports/` を作成または更新してよい。 - `action=report` は既存の結果 JSON / report を優先して読み、無ければ `run` を実行してから report を作る。 - `runtime` は `copilot-sdk` 前提。必要なら `waza models`、`copilot login` 状態、モデル名を確認する。 - `runtime` で target 自体の実挙動を検証したい場合、既定では `write-runtime-task.ps1` で deterministic task を作る。 - `waza new task from-prompt` は exploratory には便利だが、一時パスや特定文面に過剰適合した grader を生成しやすい。既定では使わず、使う場合も生成後に task を必ず見直す。 - `runtimePrompt` が空欄でも、target path と出力フォーマットを含む smoke prompt を自動生成してよい。 - runtime task には未展開変数名(例: `$resolvedTarget`, `$targetName`)を残さず、解決済みの target path と basename が literal に入っていることを確認する。 - runtime 実行前に task ファイルを一度読み、target path、期待見出し、grader の厳しさが意図どおりかを確認する。 ## Workflow 1. `evalProject` が空欄なら `Join-Path $HOME 'waza-copilot-customization-evals'` を使う。 2. `targetScope` と `targetPath` から評価対象を決める。 - `personal` または空欄: `targetPath` が空なら `$HOME\.copilot` - `workspace`: `targetPath` が空なら `<workspace>\.github` - `custom`: `targetPath` を必須として扱う - 単一ファイルもディレクトリも可 - `maxTotalTokens` が空なら、全個人資産を含む `personal` は130000、読み込み単位を想定する `workspace / custom` は60000を使う 3. 評価対象が存在するか確認する。存在しない場合は、候補パスを出して停止する。 4. `action` を決める。 - `setup`: Waza project の存在確認と不足資産の作成/更新だけ行う - `run`: static eval を実行し、結果 JSON と report を更新する - `runtime`: `copilot-sdk` で runtime task を記録・実行し、結果 JSON と report を更新する - `gate`: 指定 gate だけ実行する - `report`: 既存結果の要約と report 更新を行う。必要なら実行を補完する - `full` または空欄: setup -> static run -> optional runtime -> report を順に行う 5. 評価プロジェクトが存在するか確認する。 - `.waza.yaml` - `evals\copilot-customizations\eval.yaml` - `evals\copilot-customizations\runtime-eval.yaml` - `evals\copilot-customizations\scripts\grade-copilot-customizations.ps1` - `evals\copilot-customizations\scripts\write-copilot-customizations-report.ps1` - 見つからない場合は、公開 repo の setup guide / companion template を案内し、template から初期化する案を優先する 6. `action=setup` または `full` のとき、不足している資産を作成または更新する。 - `.waza.yaml` - `evals\copilot-customizations\eval.yaml` - `evals\copilot-customizations\runtime-eval.yaml` - `evals\copilot-customizations\tasks\customization-static.yaml` - `evals\copilot-customizations\runtime-tasks\` - `evals\copilot-customizations\scripts\grade-copilot-customizations.ps1` - `evals\copilot-customizations\scripts\write-copilot-customizations-report.ps1` - `results\` - `reports\` 7. Waza standalone が使えるか確認する。 - `waza --version` - `Get-Command waza` 8. 評価対象を `$env:WAZA_CUSTOMIZATIONS_TARGET` に入れる。 9. `action=run` または `full` のとき static eval を実行する。 - `waza run evals\copilot-customizations\eval.yaml --output results\customizations-eval.json --no-update-check -v` 10. `action=runtime`、または `action=full` かつ `executionMode=runtime/both` のとき runtime task を作成・実行する。 - 既定の `runtimeTaskStrategy=template` では `write-runtime-task.ps1` を使う - `runtimePrompt` が空なら target を要約・制約抽出する smoke prompt を組み立てる - `write-runtime-task.ps1 -TargetPath <target> -OutputPath evals\copilot-customizations\runtime-tasks\runtime-target.yaml` - task 生成後、`runtime-target.yaml` を読み、literal な target path と `Purpose:/Guardrails:/Usage:` が入っていることを確認する - `runtimeTaskStrategy=record` のときだけ `waza new task from-prompt ... --overwrite` を使う - `record` を使った場合は task ファイルを読み、path_pattern 固定や過剰に厳しい `contains_cs` を緩めてから実行する - `waza run evals\copilot-customizations\runtime-eval.yaml --output results\runtime-customizations-eval.json --no-update-check -v` 11. `action=gate` のとき `gateMode` に応じて必要な gate だけ実行する。 - `metadata` - `agent-structure` - `token-budget` - `all`: grader に `Mode all` を渡さず、上記3モードを1回ずつ順次実行する 12. 結果 JSON を読み、summary を抽出する。 - total tests - succeeded / failed / errors - success rate - aggregate score 13. 失敗 gate がある場合、または `action=gate` のとき、同じ `$env:WAZA_CUSTOMIZATIONS_TARGET` を指定したまま必要な個別 gate を単体実行して詳細を取る。 14. `action=report` または `run/runtime/full` のあと、`write-copilot-customizations-report.ps1` を使って `reports\YYYY-MM-DD-copilot-customizations-waza-report.md` を作成または更新する。 - Date - Model: GitHub Copilot - Action - Evaluated source - Commands run - Waza summary - Gate results - Findings - Next fix candidates 15. 最終回答では、action、execution mode、評価対象、結果、赤 gate、警告、次の一手を簡潔に出す。 ## Command Reference 代表的な static eval。workspace / custom target は `Workflow` の target 解決規則に従って `$env:WAZA_CUSTOMIZATIONS_TARGET` だけを変える。 ```powershell $project = Join-Path $HOME 'waza-copilot-customization-evals' Set-Location $project $env:WAZA_CUSTOMIZATIONS_TARGET = Join-Path $HOME '.copilot' waza run evals\copilot-customizations\eval.yaml --output results\customizations-eval.json --no-update-check -v ``` - runtime、record、個別 gate、report のコマンドは `Workflow` 手順10〜14を正本とする。 - `record` では生成taskを実行前に読み、固定された一時pathや過剰に厳しい `contains_cs` を修正する。 - setup / repair では手順5の必須資産を `Test-Path` で確認し、不足分だけtemplateから復元する。 ## Final Response Format ```markdown ## 結果 - Action: <setup/run/gate/report/full> - Execution mode: <static/runtime/both> - Target: <path> - Waza eval: pass/fail - Success rate: <value> - Aggregate score: <value> - Result JSON: <path> - Report: <path> ## 赤 Gate - <gate>: <issue> ## 警告 - <warning> ## 次の一手 1. <action> 2. <action> ``` `赤 Gate` や `警告` がない場合も、`なし` と明記する。