ci: run evals weekly and record results on main - #239
Conversation
988272f to
1adbd64
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1adbd64. Configure here.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
68bb4ab to
bdfcff3
Compare
lihbr
left a comment
There was a problem hiding this comment.
LGTM, maybe it's over optimizing it, but I'm wondering if we should just skip the run if there hasn't been a new release/tag since the last run.
I considered this initially, but decided against it. Models seem to change over time, even when using the same version. A perpetual recurring check seems like the best way to ensure we are always evaluating current capabilities. On the other hand, we'll probably make CLI changes frequently enough to keep up with model changes. I think we can keep it as once a week for now. If we find the frequency is too expensive or unnecessary, we can add a version check to do what you're suggesting. |

Resolves:
Description
Runs the eval suite in CI: weekly on Monday 06:00 UTC, and on demand via workflow dispatch. Results land on
mainthrough a bot-opened PR the job squash-merges immediately, since main's ruleset requires changes to arrive by PR. The results PR body carries the run's report, so watching the repo's PRs doubles as a weekly report; run-over-run history is the git log ofevals/results.json.Eval failures do not fail the job; evals are measurements, not gates. The job fails only when
evals/results.jsonwas not rewritten (the commit is the gate), meaning the harness died before grading. The eval step never receivesGH_TOKENbecause the agent under test can read the step's environment.Requires one new repository secret:
ANTHROPIC_API_KEY(already set).Checklist
Preview
How to QA 1
After this merges: Actions → evals → Run workflow. The run takes roughly 10–15 minutes and about $31; confirm it opens and squash-merges a
test(eval): record eval run at …PR whose body shows the per-eval report.🤖 Generated with Claude Code
Note
Medium Risk
Grants CI write/PR permissions and uses production API and e2e secrets, but scope is limited to eval automation with deliberate token isolation from the agent step.
Overview
Adds a new evals GitHub Actions workflow that runs the existing
npm run evalssuite on a schedule (Mondays 06:00 UTC), on workflow_dispatch, and temporarily on pushes toaa/evals-workflowfor pre-merge testing.The job uses a concurrency group so runs don’t overlap on the shared e2e Prismic account, checks out with
persist-credentials: falseso the agent under test can’t use the checkout token to push, and keepsGH_TOKENout of the eval step (only the record step gets it). Eval failures are non-blocking (|| true); recording onmainonly opens a bot PR that commitsevals/results.json, embeds theevals:reportoutput in the PR body, and squash-merges immediately to satisfy branch protection.Reviewed by Cursor Bugbot for commit 68bb4ab. Bugbot is set up for automated code reviews on this repo. Configure here.
Footnotes
Please use these labels when submitting a review:
⚠️ #issue: Strongly suggest a change.
❓ #ask: Ask a question.
💡 #idea: Suggest an idea.
🎉 #nice: Share a compliment. ↩