Repository navigation
Closed
Closed
Copy link
Labels
host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.Needs an unattended run on a host; the host runner takes it, not a person or the issue lane.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Description
Refs: #6405
Blocked by: #12032
Outcome
#6405's "Later slices" list "author or repair cases for skills whose suite measured nothing (skill not loaded, grader misreading the run shape)". A case whose with-arm never loads the skill reports a delta that measures nothing. Once the health line answers on dispatched runs, each case it reports as skill loaded: no, or as firing in 0 runs, is either repaired so that the skill loads, or removed with a reason.
Done when
- A comment on feat(evals): run plugin eval suites in a CI lane and hill-climb in the background #6405 lists every case that a dispatched run's health line (
.github/scripts/plugin-eval/summarize.mjs:140-142) reports asskill loaded: no, or as firing in 0 runs, and links the run. - For each listed case, a PR either repairs it so that the next dispatch reads
skill loaded: yes, or removes it with the reason in the PR body. A repair might be a missing tool grant, a prompt that does not trigger the skill, or a grader that misreads a slash-invoked run. - Each repaired case passes
/evals:validate(validate-cases.py) on its suite with no FAIL. - A re-dispatch after the PRs merge shows no listed case still reading
no. It is linked on feat(evals): run plugin eval suites in a CI lane and hill-climb in the background #6405.
Out of scope
- Judge calibration (shipped under feat(evals): close the eval suite's calibration gaps and convert other plugins' evals #5879).
- The background hill-climb, which is its own slice of feat(evals): run plugin eval suites in a CI lane and hill-climb in the background #6405.
Metadata
Metadata
Assignees
Labels
host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.Needs an unattended run on a host; the host runner takes it, not a person or the issue lane.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.A briefed fix or small feature; blast radius bounded by the brief, tests exist.
Type
Fields
No fields configured for Task.
Activity
github-actions commentedon Nov 1, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Medium
Uncertainty: Knowable
Flags: none
Blocked by: #12032
Understood: once the plugin eval health line reports on dispatched runs, list every case showing
skill loaded: noor firing in 0 runs, then repair or remove each with a reason, validate repaired suites, and re-dispatch to confirm. The issue states it is blocked by #12032, which is still open. Related but not duplicate: #12000-range suite-specific issues such as the vision-case one (run-e2e never fires) cover single suites, while this one covers the fleet-wide sweep.Automated triage, applied by the lanes App.
melodic-automation-lanes commentedon Nov 1, 2026
Not admitted to the issue lane yet: blocker #12032 is not closed by a listed human or a merge.
github-actions commentedon Nov 1, 2026
melodic-automation-lanes commentedon Nov 1, 2026
The work-resolve-issue lane stopped partway through this issue and needs a person.
Reason:
securityMatched security word:
token. A match holds the stop whether or not the text names a risk, so read the word in context below.Why, in the run's own words:
What the run says it did not do:
Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41354400109
To retry, remove
needs-humanand addagent-readyagain.kyle-sexton commentedon Nov 1, 2026
Claimed by a host-run session. This host is surveying the dispatched eval health lines (
eval-browser-dispatch.yml, deterministic-only, runs 1, one plugin per run) for the suites #6405 names, then repairing or retiring each case that readsskill loaded: noor fires in 0 runs, on branchhost-run/12043-eval-skill-load. A record follows here when the survey ends.This was generated by AI.
kyle-sexton commentedon Nov 3, 2026
Finding:
/source-control:commitdoes not fire on plain commit requests.This came out of #12666's eval rounds (PR #12704). On main, with an unchanged copy and Opus on Claude Code 2.1.317, these
commit-*cases' with-arm never loaded the skill:commit-hook-rejection-no-bypasscommit-never-stage-everythingcommit-no-push-no-prcommit-trailer-model-from-sessionIn those traces the model ran
git addand a heredocgit commit -F -itself and never called the Skill tool. That skips the skill's surgical staging and trailer rules.PR #12704 then named the skill in those four prompts ("... with the source-control:commit skill"). The rounds became VALID, but those cases now test behavior once loaded, not triggering. So this is still open as a triggering defect, not fixed.
Next step for this issue: run
/skill-quality:check measure-invocationon/source-control:commitwith plain commit prompts (the original wording of the four cases), then change the description and re-measure.Target labels: add none; remove none.
kyle-sexton commentedon Nov 4, 2026
Evidence for the
securitystop above: no secret or credential found.The stop matched the word
token. I checked this issue's body and every comment, plus the bodies and comments of #6405 and #12032, for secret-shaped values: Anthropic keys (sk-ant-), GitHub tokens (ghp_-style andgithub_pat_), AWS access keys, PEM private keys, JWTs and Slack tokens. All three returned 0 matches. The word appears only in the phrase "the role's subscription token", which names a credential without containing one.needs-humanstays on for now, until it is settled whether this stop falls under a recorded owner rule. Host-run work on this issue continues meanwhile.kyle-sexton commentedon Nov 4, 2026
Decision recorded.
(agent; not an owner decision)
A case built to make no skill call reads "fired in 0" on the health line, and that is its pass. Such cases are listed on #6405 for completeness, but they are neither repaired nor removed: stays-quiet and near-miss cases, a fixture check whose allowed_tools hold no Skill, and a prerequisite-notice case. Done-when 2 and 4 apply only to cases built to fire a skill.
Basis: this issue's Outcome asks for cases whose with-arm "reports a delta that measures nothing". A stays-quiet case's delta measures exactly whether the skill stays out. Each listed case's own
expected_outcomesays "makes no Skill call", or its allowed_tools exclude Skill (plugins/developer-experience/evals/fx-seed-every-state/prompt.md). Removing them would drop the suite's only false-trigger checks.kyle-sexton commentedon Nov 4, 2026
Owner decision on Q1, 2026-11-04 ~03:2xZ, Automation Lanes session 19e33801, AskUserQuestion pick (verbatim): "Yes, release them (Recommended)".
The question asked: let the security-word stop release technical senses of a secret noun (model or subscription tokens, per-token measures, token spending, a token's scope, "has no credentials"), while still stopping for a secret value, an exposure, a credential path, and OAuth or session tokens. Owner decision Q4 otherwise stands. #13034 builds it; a fresh security finding on its head (PRRT_kwDOTCGFQM6zbPDZ, CRED_END continuations) is being fixed before merge.
kyle-sexton commentedon Nov 4, 2026
needs-human released.
The security-word stop on this issue matched only the noun phrase "the role's subscription token", and the 01:06Z scan found no secret-shaped value here or on #6405 and #12032. The owner's Q1 answer, quoted verbatim in the 03:16:42Z comment ("Yes, release them (Recommended)"), releases technical senses of a secret noun, model or subscription tokens by name. The release applies now; #13034 only automates it. The GitHub Support hub confirmed this is the Q1 release, not the residual Q4 rule.
Next: drafts #13037 and #13062 go ready.
kyle-sexton commentedon Nov 4, 2026
Claimed by a host-run session for the remaining survey slices: code-tidying, source-control outside
p*andcommit-*, and planning (deterministic-only health lines). Each case built to fire a skill that readsskill loaded: noor fires in 0 runs is repaired or retired in one PR on branchhost-run/12043-survey-rest. Stays-quiet cases are listed, not repaired, per the 02:01Z decision record. A record follows here when the survey ends.kyle-sexton commentedon Nov 4, 2026
Host run. Three deterministic
eval-browser-dispatchruns on main covered code-tidying, source-control'sworktree-*cases and four planning tags. One case was repaired.allow-tools=Bash,Write,Edit, on Claude Code 2.1.318:natural-language natural: 41810568160. 5 of 6 fired.worktree: 41824991484. 8 of 8 fired.draft-goal-condition audit-answers design-handoff questionnaire: 41825160353. 9 of 9 fired.skill loaded: no. One case fired in 0: code-tidyingadc-read-only-delete-request, 0 of 1.code-tidying:audit-dead-codein that case's prompt, so the case now tests behavior once the skill is loaded, not triggering.validate-cases.pygives 0 FAIL, andscripts/check-affected.sh --testspassed 14 and skipped 3./code-tidying:audit-dead-code.pull-request-ready-hands-pr-to-explain-change, planning tagswayfind devils-advocate scale(their prompts name the skill), and evals outsidede-*.Done-when status:
Target labels: add none; remove none.
test(code-tidying): drop natural-language tag from adc-read-only-dele…
kyle-sexton commentedon Nov 4, 2026
Host run. Done-when item 4 holds: a re-dispatch after #13037, #13062 and #13204 merged shows every repaired case reading
skill loaded: yes, linked on #6405: #6405 (comment posted alongside this one).skill loaded: yes, fired 1 of 1: 41835891038, 41836049281, 41836255452, 41836309464, 41836413162.pull-request-ready-hands-pr-to-explain-change, planning tagswayfind devils-advocate scale, evals cases outsidede-*). Any of them that readsnoor fires in 0 gets a repair before this issue closes.Target labels: add none; remove none.
kyle-sexton commentedon Nov 4, 2026
Decision recorded.
(agent; not an owner decision)
Done-when items 1 and 2 cover cases that are meant to fire. A case built not to fire, which reads
skill loaded: yesand fires in 0 runs, is working as designed, and it is neither repaired nor removed.Basis: the four
control-*cases hold atool_usedSkill grader withmin: 0andmax: 0over the evals skills (plugins/evals/evals/control-no-trigger/graders/no-skill-fired.md:1-8).plan-proactive-one-sentence-skipexpects no plan.route-hillclimb-existing-suite's correct route is outside the plugin.no-model-in-the-loophas no skill-fired grader. Naming a skill in any of these prompts would reverse what it tests. The issue's own repair list ("a missing tool grant, a prompt that does not trigger the skill, or a grader that misreads a slash-invoked run") names defects, and a 0-fire negative control is not one.kyle-sexton commentedon Nov 4, 2026
Done. Every done-when item holds.
validate-cases.pygave 0 FAIL on each repaired suite (PR bodies).skill loaded: yesand fire for every repaired case: 41835891038, 41836049281, 41836255452, 41836309464, 41836413162, 41845248493 (3 of 3), 41845303504 (3 of 3).Triggering findings, not fixed: three plain prompts miss their skill, and
interval-setting-scopefires 1 of 3 (listed on #6405).This was generated by AI.