Repository navigation
Add approval-gated before/after skill evals with evals-action - #15
Open
ronniegeraghty wants to merge 1 commit into
Open
ronniegeraghty wants to merge 1 commit into
ronniegeraghty wants to merge 1 commit into
Conversation
Require protected-environment approval before paid same-repository runs; hold eval measurements fixed while switching only the target skill source and reuse the Action's verified same-job tooling. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
Missing working-directory inputs prevent both eval invocations from running, and the selection job lacks the actions: read permission needed for private-repository environment checks.
2 open issues
What changed in this PR
Introduces approval-gated before/after evaluations for changed existing plugin skills, preserving the marketplace’s shared evaluation setup while switching only the selected skill’s source.
Changes:
- Adds sequential, pinned
evals-actionruns against exact base and PR-head skill versions. - Requires protected-environment approval for same-repository PRs and skips skills without a valid comparison pair.
- Adds model-free workflow checks and documents setup, billing, and execution boundaries.
| File | Description |
|---|---|
README.md |
Introduces the approval-gated PR evaluation workflow. |
docs/checks-and-evals.md |
Documents comparison inputs, approval requirements, and execution limits. |
.github/workflows/skill-evals.yml |
Adds skill selection, source switching, and sequential evaluation jobs. |
.github/workflows/evals.yml |
Updates comments to distinguish manual smoke evaluations from skill comparisons. |
.github/scripts/validation.test.mjs |
Adds checks for workflow policy, selection, source restoration, and measurement drift. |
Review effort: Max (auto)
| - name: Run before evals | ||
| uses: github/evals-action@6e4c077e92194c7e75663d8d782426841047e887 # v0.2.0 | ||
| with: | ||
| command: run |
| - name: Read approval protection without creating an environment | ||
| env: | ||
| GH_TOKEN: ${{ github.token }} | ||
| run: gh api "repos/$GITHUB_REPOSITORY/environments/evals" > "$RUNNER_TEMP/evals-environment.json" |
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 changed
Use the existing pinned
github/evals-actionto run a changed existing plugin skill's evals against its base and proposed versions, with the shared marketplace environment preserved.eval.yaml; explicitly warn and skip new, deleted or eval-less skills rather than inventing a passing result.evalsenvironment. Exclude fork PRs, usepull_requestrather thanpull_request_target, and grant model-billing permission only to the gated job. Do not upload raw transcripts or grant PR-write permissions.Required setup and execution limits
The protected
evalsenvironment has not been configured. A repository owner must create it with required maintainer reviewers, and the organization must permit Copilot workflow-token billing. Preflight deliberately fails closed if approval protection cannot be confirmed. This PR changes no repository settings or permissions.Maintainers must review the PR's workflow, eval/setup/grader code and cost before approving. Same-repository code with a billing token is trusted code, not an OS/network sandbox. Native Docker sandboxing and the local standard-model experiment are separate work; this Action remains single-model for now.
Focused model-free tests exercise selection, source switching, measurement-drift rejection and workflow policy. Skill/eval lint, catalog matching and diff checks pass. No Actions workflow or paid eval was dispatched, so live billing/environment integration is not claimed.
Source contracts
Action pinned to
6e4c077e(v0.2.0), with Vally 0.19.0:No custom eval runner, regression-only gate, dashboard or scheduled updates. Results-directory changes and #13's skill/grader fixes are separate PRs.