Skip to content

Cut the eval suite from 19 to 17 cases, one capability each - #565

Closed
TheGreatAxios wants to merge 2 commits into
mainfrom
cl-6959-land-uncommitted-eval-cases
Closed

Cut the eval suite from 19 to 17 cases, one capability each#565
TheGreatAxios wants to merge 2 commits into
mainfrom
cl-6959-land-uncommitted-eval-cases

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Net −549 lines (248 added, 797 removed), 19 → 17 cases. Replaces the earlier "add four cases" framing: the four rescued cases should displace redundancy, not stack on top of it.

The redundancy, confirmed by fixture

Four cases shared tests/fixtures/demo-comparison and tested one capability — implement or modify an endpoint in a toy API until tests pass — at 40 turns each:

Removed Kept
complex-jwt complex-stock-gate — richest of the four (multi-file mutable state)
complex-pagination
complex-idempotent-orders

Also removed complex-bugfix and its buggy-service fixture. simple-health (20t) and hidden-contract-inventory (40t) already bracket implement-against-tests at both ends of the difficulty range.

Of the four rescued cases, two earn their place

Kept — nothing else validates these:

  • complex-fee-authority — authority resolution when docs and config actively disagree with the import graph
  • freename-list-dir — discovering an off-wire tool via tool_search

Dropped as duplicates of already-baselined cases:

  • complex-rename-spread duplicates complex-rename-user (rename across call sites)
  • complex-pointer-chase duplicates misleading-symptom (trace indirection to the real target) — which is also currently the only case that discriminates between models, so it's the one to keep

Cost

Removes three 40-turn and one 30-turn case, adds a 35-turn and a 12-turn: −103 turns of budget per model per matrix run, concentrated in the slow tail.

Re-baseline required before merge lands meaning

Cases are auto-discovered, so every per-model total in the Capability eval tracking doc ("18/19", "19/19") is now against a different suite and stops being comparable. After merge: label the suite as the successor to v2 and record a fresh matrix. Fold with CL-6886, which called for exactly this fold plus the env-bait grader hole.

README case table updated in the same commit (guardrail 12). No test depends on the removed case ids — lib.test.ts references them only as synthetic sampleCase() fixtures.

Refs CL-6959, CL-6886.

These existed only as untracked files in a working tree, one `git clean`
from being lost: complex-fee-authority, complex-pointer-chase,
complex-rename-spread, and freename-list-dir, plus their fixtures.

Cases are auto-discovered from evals/capability/cases/, so merging this
takes the live suite from 19 to 23 and makes every recorded per-model
total in the tracking doc incomparable. Do not merge before deciding
against CL-6886 whether the three complex-* cases supersede complex-bugfix
and the near-clone trio; whatever they replace should be removed in the
same change, and the resulting suite re-baselined.
@linear-code

linear-code Bot commented Aug 23, 2026

Copy link
Copy Markdown

CL-6959

CL-6886

Four cases shared tests/fixtures/demo-comparison and tested the same thing —
implement or modify an endpoint in a toy API until tests pass — at 40 turns
apiece. Keep complex-stock-gate (richest: multi-file mutable state) and drop
complex-jwt, complex-pagination, and complex-idempotent-orders. Drop
complex-bugfix and its buggy-service fixture too; simple-health and
hidden-contract-inventory already cover implement-against-tests at both ends
of the difficulty range.

Of the four rescued cases, keep only the two that validate something nothing
else does:
- complex-fee-authority: authority resolution when docs and config actively
  disagree with the import graph
- freename-list-dir: discovering an off-wire tool through tool_search

Drop the other two as duplicates of baselined cases: complex-rename-spread
duplicates complex-rename-user (rename across call sites), and
complex-pointer-chase duplicates misleading-symptom (trace indirection to the
real target) — which is also currently the only case that discriminates
between models.

Net: 19 to 17 cases, and 103 fewer turns of budget per model per matrix run.
Every recorded per-model total is now against a different suite, so the
tracking doc needs a fresh baseline before these numbers mean anything.
@TheGreatAxios TheGreatAxios changed the title Add four capability eval cases and their fixtures Cut the eval suite from 19 to 17 cases, one capability each Aug 23, 2026
@TheGreatAxios

Copy link
Copy Markdown
Collaborator Author

Closing as superseded by #577, which replaces the suite entirely rather than trimming it.

The case against continuing here is in #577's own numbers: the last full matrix was 92/95 with all three failures on a single case, and suite v1's 14 cases were 14/14 on every model. A suite nothing fails cannot tell us whether CL-6940 helped, which is the reason we need one. Cutting 19 → 17 does not change that; #577 goes to four graded cases with real discriminating power.

Per the operator: #577 is the suite for the current and next releases' baseline.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant