You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(ci): dispatch the generalized plugin eval workflow once and check its summary #9713
needs-human: dispatching the workflow starts a paid claude plugin eval run, which an unattended lane run cannot perform (.github/scripts/intake-triage/admit.mjs:136).
Part of #6405. Dispatch the generalized eval workflow from the sibling slice once and confirm it works end to end.
Steps
Dispatch it on a plugin whose suite has deterministic graders, with --max-cost-usd set.
Read the job summary: the validate step ran, the table shows a delta or NOT COMPARABLE per case, and each case has its health line.
Size: Small
Complexity: Low
Uncertainty: Known
Flags: none
Blocked by: none
Understood: dispatch the generalized eval workflow once on a plugin with deterministic graders, read the job summary (validate step ran, a delta or NOT COMPARABLE per case, a health line per case), and report the result on #6405. The re-triage comment says the blocker #9704 is closed and the dispatch does not bill. This is a host step that needs a session with gh, so an unattended lane run cannot do it. Nothing is missing from the issue.
Re-triage. This is a host step, not an owner decision. Blocker #9704 is closed as completed, and the dispatch does not bill.
The workflow is eval-browser-dispatch.yml from feat(ci): run plugin eval suites from dispatch and an opt-in PR label #9835. It runs on ubuntu-24.04, a standard hosted runner in a public repository, with MAINTENANCE_CLAUDE_CODE_OAUTH_TOKEN, a subscription token (.github/workflows/eval-browser-dispatch.yml:123 and :427 on main at 489fb55). Model usage under the subscriptions is not a cost under the owner's 2026-10-27 rule, and nothing else can bill.
Every run carries --max-cost-usd (eval-browser-dispatch.yml:20), so the dispatch needs no extra input for it.
Host step: a session with gh dispatches the workflow once on main. Use a plugin target whose suite has deterministic graders, set deterministic-only: true, and keep runs: 1. Then it reads the job summary and checks three things: the validate step ran, each case shows a delta or NOT COMPARABLE, and each case has its health line. Last, it comments on #6405 with the run link and whether the summary matched, then closes this issue.
Not admitted to the issue lane: it carries host-run. Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).
melodic-automation-lanes commented on Oct 29, 2026
Host run. Dispatched eval-browser-dispatch.yml once on main against plugins/fleet (deterministic graders only, 1 run per arm) and checked its job summary against this issue's three checks.
What ran
Billing check, before dispatch: the job runs on ubuntu-24.04, a standard GitHub-hosted runner, in this public repository (.github/workflows/eval-browser-dispatch.yml:123). The model calls use MAINTENANCE_CLAUDE_CODE_OAUTH_TOKEN, a subscription token (:528). No larger runner, Azure or other billing account is involved.
Dispatch: gh workflow run eval-browser-dispatch.yml --ref main -f target=plugins/fleet -f runs=1 -f deterministic-only=true. The other inputs kept their defaults.
Conclusion: failure, because one case scored below the threshold. The workflow is built to fail the job when any case fails (header comment, line 20), so the failure does not show a workflow defect.
Against each check
Validate step ran: pass. The log shows == validate plugins/fleet/evals and then the deterministic split (kept holds all 3 cases, dropped none). That split prints only after validate-cases.py exits 0.
A delta or NOT COMPARABLE per case: pass. The table shows a delta for every case:
Case
With
Without
Delta
Verdict
fr-decline-ssh-allow-rule
1.00
0.75
+0.25
PASS
fr-expired-oauth-login
1.00
0.00
+1.00
PASS
fr-git-bash-publickey
0.50
0.50
+0.00
FAIL (threshold 1.00)
The table comes from running summarize.mjs at the run's commit over the run's own uploaded results.json.
A health line per case: present, so pass. Each of the 3 cases has its health line. What each line says (whether the skill loaded, how many runs called it) is UNVERIFIED from here: it is read from traces that stayed on the runner, and the REST API does not return the rendered job summary. Check it on the run page. The traces' directories were kept and only their home/ and tmp/ were sealed, so the summarize step most likely read them.
Found (out of scope)
fr-git-bash-publickey in the fleet suite scores 0.50 both with and without the plugin. On this case the skill adds nothing, and the case fails the threshold. This is a suite or skill quality item for the fleet plugin, not a workflow defect.
One thing would make this a workflow defect: if the run page's health lines read "no kept trace", the --keep-temp traces are unreadable to the summarize step. Nothing seen here shows that.
No PR opened: the run exposed no workflow defect in this issue's scope.
The done-when needs this comment on #6405. This run did not post it:
Dispatched the generalized plugin eval workflow once on main (plugins/fleet, deterministic-only, runs 1): https://github.com/melodic-software/claude-code-plugins/actions/runs/41055400082. Summary matched: the validate step ran; each of the 3 cases shows a delta (+0.25, +1.00, +0.00); each case has its health line. The job concluded failure only because fr-git-bash-publickey scored 0.50 in both arms against a 1.00 threshold, which is the fleet suite's own result.
The work-resolve-issue lane stopped on this issue (host-only): the run reports the work needs a host run the lane cannot make.
It added host-run and removed agent-ready: an agent run on a host builds it, and it waits on no decision from a person.
In the run's words:
host-only: the one remaining done-when item is a GitHub write this lane cannot make: post the drafted comment on #6405 linking run https: //github.com/melodic-software/claude-code-plugins/actions/runs/41055400082 and stating the summary matched, then close #9713. The host run itself (dispatch of eval-browser-dispatch.yml on plugins/fleet, deterministic-only, runs 1, and the three summary checks) is already done and recorded in the 2026-10-30 host-run comment on #9713, whose 'Remaining step: comment for #6405' section holds the ready-to-post text.
What the run says it did not do:
Post the drafted comment on #6405 with the run link and the summary-matched statement, then close #9713. This lane cannot write to GitHub.
tidy: skipped because the change is empty
review, verify and pull-request prep: skipped because no diff exists to review, build or test
The host-run comment says the per-case health-line text is UNVERIFIED (it is rendered only on the run page). Check it on the run page before posting to #6405.
Activity
github-actions commentedon Oct 24, 2026
Proposed work class: none
Size: Small
Complexity: Low
Uncertainty: Known
Flags: none
Blocked by: none
Understood: dispatch the generalized eval workflow once on a plugin with deterministic graders, read the job summary (validate step ran, a delta or NOT COMPARABLE per case, a health line per case), and report the result on #6405. The re-triage comment says the blocker #9704 is closed and the dispatch does not bill. This is a host step that needs a session with
gh, so an unattended lane run cannot do it. Nothing is missing from the issue.Automated triage. A maintainer reviews it.
kyle-sexton commentedon Oct 29, 2026
Re-triage. This is a host step, not an owner decision. Blocker #9704 is closed as completed, and the dispatch does not bill.
eval-browser-dispatch.ymlfrom feat(ci): run plugin eval suites from dispatch and an opt-in PR label #9835. It runs onubuntu-24.04, a standard hosted runner in a public repository, withMAINTENANCE_CLAUDE_CODE_OAUTH_TOKEN, a subscription token (.github/workflows/eval-browser-dispatch.yml:123and:427on main at 489fb55). Model usage under the subscriptions is not a cost under the owner's 2026-10-27 rule, and nothing else can bill.--max-cost-usd(eval-browser-dispatch.yml:20), so the dispatch needs no extra input for it.Host step: a session with
ghdispatches the workflow once on main. Use a plugin target whose suite has deterministic graders, setdeterministic-only: true, and keepruns: 1. Then it reads the job summary and checks three things: the validate step ran, each case shows a delta or NOT COMPARABLE, and each case has its health line. Last, it comments on #6405 with the run link and whether the summary matched, then closes this issue.melodic-automation-lanes commentedon Oct 29, 2026
Not admitted to the issue lane: it carries host-run. Admission takes the issue once each of those is met, when intake triages it again (
.github/actions/resolve-config/admission-rules.json).melodic-automation-lanes commentedon Oct 29, 2026
The latest triage verdict holds nothing: admission moved the issue to
status: confirmed; its comment says why.kyle-sexton commentedon Oct 30, 2026
Host run. Dispatched
eval-browser-dispatch.ymlonce on main againstplugins/fleet(deterministic graders only, 1 run per arm) and checked its job summary against this issue's three checks.What ran
ubuntu-24.04, a standard GitHub-hosted runner, in this public repository (.github/workflows/eval-browser-dispatch.yml:123). The model calls useMAINTENANCE_CLAUDE_CODE_OAUTH_TOKEN, a subscription token (:528). No larger runner, Azure or other billing account is involved.gh workflow run eval-browser-dispatch.yml --ref main -f target=plugins/fleet -f runs=1 -f deterministic-only=true. The other inputs kept their defaults.--max-cost-usd 5, and the report's list-price estimate was 0.76 USD; under the subscription token that is not a charge.failure, because one case scored below the threshold. The workflow is built to fail the job when any case fails (header comment, line 20), so the failure does not show a workflow defect.Against each check
Validate step ran: pass. The log shows
== validate plugins/fleet/evalsand then the deterministic split (keptholds all 3 cases,droppednone). That split prints only aftervalidate-cases.pyexits 0.A delta or NOT COMPARABLE per case: pass. The table shows a delta for every case:
The table comes from running
summarize.mjsat the run's commit over the run's own uploadedresults.json.A health line per case: present, so pass. Each of the 3 cases has its health line. What each line says (whether the skill loaded, how many runs called it) is UNVERIFIED from here: it is read from traces that stayed on the runner, and the REST API does not return the rendered job summary. Check it on the run page. The traces' directories were kept and only their
home/andtmp/were sealed, so the summarize step most likely read them.Found (out of scope)
fr-git-bash-publickeyin the fleet suite scores 0.50 both with and without the plugin. On this case the skill adds nothing, and the case fails the threshold. This is a suite or skill quality item for the fleet plugin, not a workflow defect.--keep-temptraces are unreadable to the summarize step. Nothing seen here shows that.No PR opened: the run exposed no workflow defect in this issue's scope.
Remaining step: comment for #6405
The done-when needs this comment on #6405. This run did not post it:
Target labels: add agent-ready; remove host-run.
melodic-automation-lanes commentedon Oct 30, 2026
The work-resolve-issue lane stopped on this issue (
host-only): the run reports the work needs a host run the lane cannot make.It added
host-runand removedagent-ready: an agent run on a host builds it, and it waits on no decision from a person.In the run's words:
What the run says it did not do:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41056394821
To hand it back to the lane, remove
host-runand addagent-readyagain.kyle-sexton commentedon Oct 31, 2026
Done: the run comment is on #6405: #6405 (comment) (host lane 4). This was generated by AI.