Skill Evals
Own the evaluation from case selection through evidence-backed review. Observe
subject behavior without coaching it or treating the case author's preferred
answer as ground truth.
Select the run
Discover plugins that contain skills/*/evals/evals.json rather than using
a hardcoded plugin menu.
Honor any plugin, skill, case, host, model, and effort requested by the user.
When required scope is unspecified, list the available cases for each
relevant plugin:
python3 scripts/run_skill_evals.py --plugin plugins/<plugin> --list
Before spending live model quota, confirm the run matrix with the user unless
their request already authorizes that exact scope.
Give every run an explicit --output directory so its artifacts remain
available for review.
Run and observe
Run each selected plugin from the repository root:
python3 scripts/run_skill_evals.py \
--plugin plugins/<plugin> \
--host <host> [--host <host> ...] \
[--<host>-model <model>] [--<host>-effort <effort>] \
[--skill <skill>] [--case <id>] \
--output <artifact-directory>
While it runs:
- Confirm that the announced plugin, cases, hosts, models, and effort match the
approved matrix and that the process and artifact capture continue to make
progress.
- Observe only. Do not alter a subject workspace, send improvised replies, or
expose eval definitions or author guidance to the subject.
- A live process or reviewer that is still running has not failed. Use the
runner's timeout and captured status rather than guessing from silence.
- Treat runner, authentication, timeout, parsing, or artifact failures as
operational errors, not subject failures. Diagnose them from the retained
evidence and rerun only the affected scope after correcting the cause.
- Treat completed but undesirable subject behavior as evidence. Do not rerun it
merely to obtain a passing sample.
After execution, verify that each requested case and host has a result.json
and the expected turn artifacts before reviewing behavior.
Review a run
- Read the exact active skills under
workspace/.eval/skills, including only
the references needed to understand the behavior under review.
- Read
result.json, prompt.txt, initial.evidence.json, every turn's
response, raw event stream, provider trace, and repository evidence. Inspect
the final workspace when file contents or version-control state matter.
- Independently reconstruct the supplied facts, remaining decisions, required
workflow gates, permitted judgment, and observed actions.
- Read
review-context.json last. Its author guidance supplies useful review
questions, not ground truth. Identify guidance that assumes one valid branch,
contradicts the skill or request, or depends on evidence the harness did not
capture.
- Report only material findings with concrete artifact paths or event evidence.
Distinguish:
- Contract failure: an observable hard requirement was violated, such as an
approval boundary, required sequencing, unsupported completion claim, or
repository side effect.
- Judgment concern: the decision is materially ungrounded or internally
inconsistent. Do not fail a different but defensible decision.
- Inconclusive evidence: the artifacts cannot establish what happened.
Missing provider events are not proof that an action did not occur.
- Evaluation defect: the fixture, replies, author guidance, or capture
mechanism makes the requested conclusion invalid.
Report
State the executed matrix and artifact directory. When reviewing a batch, lead
with one row per case and host containing the Assessment and a one-line cited
reason; include per-run details only for rows not assessed Supported.
For each run, return:
Assessment: Supported, Material failure, Inconclusive, or
Invalid evaluation.
Findings: material issues in priority order, each tied to evidence.
Reasoning: why the behavior was or was not grounded and consistent with the
skill contract.
Evaluation issues: defects or missing evidence separate from subject
behavior.
If more than one assessment applies, name the primary one and report the others
as findings. Supported means this run provides affirmative evidence for the
workflow; it does not claim universal correctness. Do not reward verbosity,
exact wording, or agreement with the author's preferred implementation.
When recording a batch under evals/notebook, keep the original results
immutable. Track later decisions and reruns in a finding-keyed ledger with
Decision or change, Validation, and Status (Open, Resolved, or
Accepted). Use a separate rerun table only when the follow-up is itself a
substantial matrix.
1---2name: skill-evals3description: Use when listing, running, monitoring, or reviewing behavioral skill evaluations in this repository.4---56# Skill Evals78Own the evaluation from case selection through evidence-backed review. Observe9subject behavior without coaching it or treating the case author's preferred10answer as ground truth.1112## Select the run13141. Discover plugins that contain `skills/*/evals/evals.json` rather than using15 a hardcoded plugin menu.162. Honor any plugin, skill, case, host, model, and effort requested by the user.17 When required scope is unspecified, list the available cases for each18 relevant plugin:1920 ```sh21 python3 scripts/run_skill_evals.py --plugin plugins/<plugin> --list22 ```23243. Before spending live model quota, confirm the run matrix with the user unless25 their request already authorizes that exact scope.264. Give every run an explicit `--output` directory so its artifacts remain27 available for review.2829## Run and observe3031Run each selected plugin from the repository root:3233```sh34python3 scripts/run_skill_evals.py \35 --plugin plugins/<plugin> \36 --host <host> [--host <host> ...] \37 [--<host>-model <model>] [--<host>-effort <effort>] \38 [--skill <skill>] [--case <id>] \39 --output <artifact-directory>40```4142While it runs:4344- Confirm that the announced plugin, cases, hosts, models, and effort match the45 approved matrix and that the process and artifact capture continue to make46 progress.47- Observe only. Do not alter a subject workspace, send improvised replies, or48 expose eval definitions or author guidance to the subject.49- A live process or reviewer that is still running has not failed. Use the50 runner's timeout and captured status rather than guessing from silence.51- Treat runner, authentication, timeout, parsing, or artifact failures as52 operational errors, not subject failures. Diagnose them from the retained53 evidence and rerun only the affected scope after correcting the cause.54- Treat completed but undesirable subject behavior as evidence. Do not rerun it55 merely to obtain a passing sample.5657After execution, verify that each requested case and host has a `result.json`58and the expected turn artifacts before reviewing behavior.5960## Review a run61621. Read the exact active skills under `workspace/.eval/skills`, including only63 the references needed to understand the behavior under review.642. Read `result.json`, `prompt.txt`, `initial.evidence.json`, every turn's65 response, raw event stream, provider trace, and repository evidence. Inspect66 the final workspace when file contents or version-control state matter.673. Independently reconstruct the supplied facts, remaining decisions, required68 workflow gates, permitted judgment, and observed actions.694. Read `review-context.json` last. Its author guidance supplies useful review70 questions, not ground truth. Identify guidance that assumes one valid branch,71 contradicts the skill or request, or depends on evidence the harness did not72 capture.735. Report only material findings with concrete artifact paths or event evidence.7475Distinguish:7677- **Contract failure:** an observable hard requirement was violated, such as an78 approval boundary, required sequencing, unsupported completion claim, or79 repository side effect.80- **Judgment concern:** the decision is materially ungrounded or internally81 inconsistent. Do not fail a different but defensible decision.82- **Inconclusive evidence:** the artifacts cannot establish what happened.83 Missing provider events are not proof that an action did not occur.84- **Evaluation defect:** the fixture, replies, author guidance, or capture85 mechanism makes the requested conclusion invalid.8687## Report8889State the executed matrix and artifact directory. When reviewing a batch, lead90with one row per case and host containing the `Assessment` and a one-line cited91reason; include per-run details only for rows not assessed `Supported`.9293For each run, return:9495- `Assessment`: `Supported`, `Material failure`, `Inconclusive`, or96 `Invalid evaluation`.97- `Findings`: material issues in priority order, each tied to evidence.98- `Reasoning`: why the behavior was or was not grounded and consistent with the99 skill contract.100- `Evaluation issues`: defects or missing evidence separate from subject101 behavior.102103If more than one assessment applies, name the primary one and report the others104as findings. `Supported` means this run provides affirmative evidence for the105workflow; it does not claim universal correctness. Do not reward verbosity,106exact wording, or agreement with the author's preferred implementation.107108When recording a batch under `evals/notebook`, keep the original results109immutable. Track later decisions and reruns in a finding-keyed ledger with110`Decision or change`, `Validation`, and `Status` (`Open`, `Resolved`, or111`Accepted`). Use a separate rerun table only when the follow-up is itself a112substantial matrix.