Skip to content

feat: include assertions and pass@k in baseline regression comparison - #4103

Merged
dgageot merged 1 commit into
mainfrom
feat/4087-baseline-assertions-passk
Sep 1, 2026
Merged

feat: include assertions and pass@k in baseline regression comparison#4103
dgageot merged 1 commit into
mainfrom
feat/4087-baseline-assertions-passk

Conversation

@melmennaoui

@melmennaoui melmennaoui commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Extend the baseline regression gate to cover assertion pass rates and surface pass@k/pass^k consistency metrics from --repeat runs. Also removes the verify script dead code — the assertion system covers verifiable cases via the captured event stream.

Changes

Assertion rate gating (baseline.go)

  • AssertionRate / HasAssertions added to Metrics
  • metricsOfSummary() populates assertion rate from Summary totals
  • Compare() gates on assertion rate drops — same semantics as size and relevance

Repeat metrics — informational (baseline.go)

  • PassK, HatK, RepeatK, HasRepeat added to Metrics
  • Compare() reports pass@k and pass^k as informational deltas (non-gating — they derive from the same per-eval pass/fail that individual eval changes already gate on)

Summary accumulation (types.go, scoring.go)

  • AssertionsPassed / AssertionsTotal added to Summary
  • computeSummary() accumulates assertion counts
  • printSummary() displays the Assertions line

Verify cleanup

The verify concept (shell script via docker exec post-agent) cannot work without container lifecycle changes: the container uses --rm and exits before verify could run. Assertions cover the verifiable cases via the captured event stream.

Removed: EvalCriteria.Verify, VerifyCheck type, verify.go, verify_test.go, clone and test references.

Tests

Test What it proves
TestCompare_AssertionRateDropRegresses A drop in assertion pass rate triggers regression
TestCompare_AssertionRateNoDropIsClean Stable assertion rate does not regress
TestMetricsOf_AssertionsFlag HasAssertions set/unset correctly
TestMetricsOf_RepeatMetricsPopulated RepeatMetrics flow through metricsOfSummary
TestCompare_PassKIsInformational pass@k and pass^k are informational, not gating
TestComputeSummary_Assertions Assertion counts accumulate correctly

Closes #4087

@melmennaoui
melmennaoui requested a review from a team as a code owner September 1, 2026 15:48
@melmennaoui
melmennaoui force-pushed the feat/4087-baseline-assertions-passk branch from 47ac4f6 to 54f6b49 Compare September 1, 2026 15:57
Extend the baseline regression gate to cover assertion pass rates and
surface pass@k/pass^k consistency metrics from --repeat runs.

Also removes the verify script dead code (verify field, VerifyCheck type,
verify.go/verify_test.go) — the assertion system covers verifiable cases
via the captured event stream, and verify cannot work without container
lifecycle changes that aren't warranted.

Assertion rate gates:
- AssertionRate added to Metrics, derived from Summary totals
- Compare() gates on assertion rate drops (same semantics as size
  and relevance)
- computeSummary() accumulates assertion counts
- printSummary() displays the Assertions metric line

Repeat metrics (informational):
- PassK, HatK, RepeatK added to Metrics
- Compare() reports pass@k and pass^k as informational deltas

Verify cleanup:
- Removed EvalCriteria.Verify, VerifyCheck, verify.go, verify_test.go
- Schema's DisallowUnknownFields ensures clean future re-addition

Closes #4087
@aheritier aheritier added kind/feat PR adds a new feature (maps to feat:). Use on PRs only. status/needs-triage For issues that need to be triaged labels Sep 1, 2026
@melmennaoui
melmennaoui force-pushed the feat/4087-baseline-assertions-passk branch from 54f6b49 to c90793b Compare September 1, 2026 16:01
@aheritier aheritier added the area/testing Test infrastructure, CI/CD, test runners, evaluation label Sep 1, 2026
@dgageot
dgageot merged commit d8caab7 into main Sep 1, 2026
13 checks passed
@dgageot
dgageot deleted the feat/4087-baseline-assertions-passk branch September 1, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/testing Test infrastructure, CI/CD, test runners, evaluation kind/feat PR adds a new feature (maps to feat:). Use on PRs only. status/needs-triage For issues that need to be triaged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include assertions and verify in baseline regression comparison

3 participants