Repository navigation
ci: run claude plugin eval on PRs with workload identity federation - #22
Merged
Merged
Conversation
This was referenced Oct 10, 2026
jimisola
force-pushed
the
ci/plugin-evals
branch
from
October 11, 2026 05:39
b2c5da7 to
c4182c0
Compare
2 tasks done
Runs the eval suites of the plugins a PR touches, authenticated by exchanging the job's GitHub OIDC token (no API key). Skips until the federation repository variables exist and for fork PRs. Refs #18. Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
A change to the workflow is tested against all plugins with evals, so a PR that edits it gets a real run. Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
GitHub tokens are single-use at Anthropic's token exchange (jti replay protection), and one eval run fires its judge calls in parallel, so a shared identity-token file produced jti_reused denials. Each case now gets its own exchange in the workflow and runs on the minted access token; replay protection stays on. Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
Haiku failed correct long answers on fork-config-location and merged-before-ci; Sonnet passed the same cases 9/9 votes. Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
jimisola
force-pushed
the
ci/plugin-evals
branch
from
October 11, 2026 20:42
c4182c0 to
0bc0d11
Compare
4 tasks done
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.
What & Why
Closes #18. Implements the workflow from that issue. On PRs that touch
plugins/*/skills/**orplugins/*/evals/**, it runsclaude plugin evalfor each changed plugin that has evals; a change to the workflow itself runs every suite.workflow_dispatchruns chosen (or all) plugins, optionally with the no-plugin baseline.ANTHROPIC_API_KEYexists anywhere, and the step unsets it in case. Each GitHub OIDC token can be exchanged only once (check_jti), and one eval fires parallel judge calls, so the job exchanges a fresh token per eval case and runs that case on the minted access token (ANTHROPIC_AUTH_TOKEN, masked).ANTHROPIC_FEDERATION_RULE_IDrepository variable is empty, and for fork PRs (no OIDC token).claude-sonnet-5-5under test and as judge (Haiku failed correct long answers).--threshold 0.8,--max-cost-usd 1per case,--ablation noneunless the baseline is asked for.Setup (done)
github-actions, ruleclaude-plugins-ciwith subject prefixrepo:jimisola@1577689/claude-plugins@1305641786:*(this repo uses GitHub's immutable subject), owner/repository claims, and a condition allowingpull_request, orworkflow_dispatchonmain. Workspaceci-evals-personalwith a spend limit.ANTHROPIC_FEDERATION_RULE_ID,ANTHROPIC_ORGANIZATION_ID,ANTHROPIC_SERVICE_ACCOUNT_ID,ANTHROPIC_WORKSPACE_ID.Test Plan
actionlintclean (including shellcheck)main's skills are fixed in fix(github-tools): merge-ready asks for scope in the reply when AskUserQuestion is unavailable #23; re-run here after it merges