Eval: /goal plan-completion fixture (measure % of plan delivered)#108
Merged
Conversation
…red" A first eval that measures what /goal is for: given a multi-section plan.md and "build all of it", what fraction of the plan does the agent actually deliver? Reuses the existing hi-eval harness (goal-drive mode via HI_EVAL_GOAL=1 + HI_EVAL_TURNS) with a hidden per-section oracle that prints a fraction — HI_EVAL_SCORE=<0..1> — so a run that finishes 4 of 6 sections scores 0.67 rather than a flat fail, which is what's needed to see improvements like 20% → 75%. - bench/plan/textkit/: six independent turn-sized Python modules (slugify, wordcount, roman, caesar, rpn, csvmini), each an exact contract in fixture/plan.md; oracle/score.py scores delivered/6; fixed/ is a reference that scores 100%. - bench/plan/README.md: how to run (baseline vs candidate) and read the score. Harness-validated well-formed (cargo run -p hi-eval -- --validate bench/plan): fail-before on the empty fixture, pass-after on fixed/, un-gameable oracle. No harness code changed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The MVP goal eval — a number for "does /goal finish a plan?"
Measures what
/goalis actually for: given a multi-sectionplan.mdand "build all of it", what fraction of the plan does the agent deliver? The hidden oracle scores per section and emits a fraction, so a run that finishes 4 of 6 sections scores 0.67 — not a flat fail. That's what turns #107 from "should help" into a measured before/after (e.g. the qtest reality of ~20% → whatever the fixes actually achieve).What's here
bench/plan/textkit/— six independent, turn-sized Python modules (slugify,wordcount,roman,caesar,rpn,csvmini), each an exact contract with examples infixture/plan.md. The hiddenoracle/score.pychecks each section and printssections delivered: X/6+HI_EVAL_SCORE=<0..1>;fixed/is a reference that scores 100%.bench/plan/README.md— how to run it (goal-drive mode, baseline vs candidate) and read the score.Reuses the existing harness — no harness code changed
hi-evalgoal-drive mode:HI_EVAL_GOAL=1 HI_EVAL_TURNS=<n>drives the goal across session-continuing turns (the real/goalcadence).Validated (deterministic, no model)
cargo run -p hi-eval -- --validate bench/planpasses — the emptyfixture/scores below 100% (fail-before),fixed/scores 100% (pass-after), the oracle is un-gameable by candidate-created files, andallowed_changesis sane. I also ran the scorer directly:fixed/→ 6/6 (100%, exit 0); dropping two modules → 4/6 (67%, exit 1) with no crash.How to use it
Run against the old binary and a #107 build; compare the
HI_EVAL_SCOREfractions.Follow-ups (not in this MVP)
HI_EVAL_SCOREas a first-class aggregated metric in the harness report (today it rides in the oracle artifact).Note: this branch is off
main, independent of the goal-engine PR (#107) — the fixture runs whateverhibinary you point it at, so it measures either.