Surface skill preference regressions via a separate non-required CI status - #1047
Draft
AbhitejJohn wants to merge 1 commit into
Draft
Surface skill preference regressions via a separate non-required CI status#1047AbhitejJohn wants to merge 1 commit into
AbhitejJohn wants to merge 1 commit into
Conversation
…tatus The required evaluation-status check is verdict-blind: it reports success whenever the evaluate job ran, regardless of whether a skill regressed. The verdict aggregation that knows about regressions runs only on the scheduled publish path, so it never informs a PR. Add an advisory, non-required "evaluation-regression" commit status in the report-status job. It downloads the vally-results-* artifacts and posts red only when a verdict is a credible, conclusive, adequately-powered preference regression. It never touches the required evaluation-status, so it is non-blocking until a maintainer opts to make it required. Keyed on preferenceRegressed rather than a VALID_REGRESSION state: the adapter records a credible ordinal preference loss as preferenceRegressed: true while the state stays VALID_NO_CHANGE (VALID_REGRESSION is reserved and not emitted today). The status is deliberately advisory because the signal is judge-based and, on dual-judge cadences, a primary-judge preference regression is not always corroborated by the second judge. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: e23e5efe-713f-4898-a158-8970f70fdcaf
Collaborator
Author
|
/evaluate 22ba571 |
Contributor
|
❌ Evaluation did not complete successfully (the evaluate job reported 26 partial result file(s) were preserved for diagnosis but were not consolidated because the full matrix did not complete. |
Contributor
|
❌ Evaluation did not complete successfully (the evaluate job reported 26 partial result file(s) were preserved for diagnosis but were not consolidated because the full matrix did not complete. |
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
Adds an advisory, non-required
evaluation-regressioncommit status to thereport-statusjob. It downloads thevally-results-*artifacts and posts red only when a verdict is a credible, conclusive, adequately-powered preference regression. It never touches the requiredevaluation-status, so it is non-blocking by default; a maintainer can opt to make it required later.Why
The required
evaluation-statuscheck is verdict-blind: it reports success whenever theevaluatejob ran, regardless of whether a skill regressed. The verdict aggregation that knows about regressions runs only on the scheduled publish path, so a PR author never sees a regression signal on the PR itself.Design notes
preferenceRegressed, not aVALID_REGRESSIONstate. The adapter records a credible ordinal preference loss aspreferenceRegressed: truewhile the verdictstatestaysVALID_NO_CHANGE(VALID_REGRESSIONis reserved and not emitted today). Keying on the state would be a permanent no-op. The filter also requiresconclusive == trueandunderpowered != trueto keep the false-positive rate down.Expected behavior against the corpus
Known limitation
A malformed
results.jsonmakes its per-filejqerror be swallowed, so the advisory could miss a regression in a corrupt file. This is acceptable for an advisory status; the requiredevaluation-statusstill covers hard failures.Validation
actionlint1.7.7 exits 0.jqfilter was tested against real verdict JSON and selects only the credible, powered regression./cc @AbhitejJohn