Files
agent-skills/evals/cases/code-simplification.json
T
Addy Osmani 194b2099c6 feat(evals): harden Tier 3 and make negatives pairwise routing tests
Per review from @federicobartoli and @nucliweb on #342:

Tier 3 (behavioral):
- Grade the execution trace, not the final output: executor runs with
  --output-format stream-json --verbose so the grader judges tool calls
  and file edits rather than the model's self-reporting.
- Run each eval in a throwaway workspace; files[] fixtures materialize
  from evals/fixtures/ so evals can operate on real code.
- Node-level timeouts on executor and grader calls; grader output parsed
  and shape-validated before writing (raw saved on failure); the trace is
  fenced as untrusted data in the grader prompt.
- All 24 behavioral evals flagged trust_level: "provisional" until they
  gain fixtures; the runner surfaces this and exits nonzero on failed
  expectations.

Tier 2 (deterministic):
- Negative triggers accept an "owner" skill that must outrank this one,
  turning them into pairwise routing tests that cannot pass vacuously;
  37 of 48 negatives now declare owners (the rest are tracked in #351).
- Warn when a case file is below the documented minimums (3 positive /
  2 negative / 1 behavioral); promotion to error tracked in #352.
- Stemmer: cluster trailing y/i ("simplify"/"simplifies").

Baseline holds: 120 checks, 0 errors, 85% trigger rank-1 rate.
2026-07-06 11:36:29 -07:00

43 lines
1.3 KiB
JSON

{
"skill_name": "code-simplification",
"trigger": {
"positive": [
{
"prompt": "This function works but it is way too clever, simplify it without changing behavior",
"top_k": 3
},
{
"prompt": "Reduce the complexity of this module so juniors can maintain it",
"top_k": 3
},
{
"prompt": "Clean up this working code, it has grown hard to follow",
"top_k": 3
}
],
"negative": [
{
"prompt": "Add a feature flag system to the app"
},
{
"prompt": "Diagnose why the build broke overnight",
"owner": "debugging-and-error-recovery"
}
]
},
"evals": [
{
"id": 1,
"prompt": "Simplify the provided 80-line function that parses config files, preserving exact behavior.",
"expected_output": "A simpler implementation with identical behavior and a summary of what was removed and why",
"expectations": [
"Behavior is preserved (tests unchanged and passing, or equivalence argued concretely)",
"Complexity is reduced rather than relocated",
"The response explains what was removed and why it was safe",
"No new features are added during the simplification"
],
"trust_level": "provisional"
}
]
}