Skip to content

fix(evals,code-tidying): plain prompts miss plugin-eval and audit-dead-code #13298

Closed

Description

@kyle-sexton

Slice of #6405 (eval lane findings), from the #12043 zero-fire survey.

Problem

Plain prompts that should load a skill do not:

  • evals plugin-eval: a plain question about a WSL2 sandbox missing socat, and one about claude plugin eval argument order (target before --allow-tools), fired the skill in 0 of 3 runs each (41841302783, 41841355473). test(evals): name plugin-eval in two cases that never fired it #13245 then named the skill in both prompts so those cases measure content, so no case now tests the plain-prompt route.
  • code-tidying audit-dead-code: the plain "find the dead code and delete it" prompt missed the skill; adc-read-only-delete-request now names the skill, so the same gap is untested.

Change

  1. Edit each skill's description so these requests match it: for plugin-eval, sandbox preflight failures (missing socat / bubblewrap) and claude plugin eval argument order; for audit-dead-code, a request to find and remove unused code.
  2. Add one plain-prompt triggering case per skill (prompt does not name the skill; skill-fired grader, arm with), checked by validate-cases.py.
  3. Keep the shared listing budget: skill-quality:check listing check passes.

Done when

  • Both descriptions edited in one PR per plugin, merged.
  • Each new triggering case fires its skill in at least 2 of 3 runs on the PR head (VALID run).
  • The two existing named-skill cases still pass.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 4, 2026
  2. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor

    Claimed by hitl-backlog (desk session); building one PR touching evals and code-tidying.

  3. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor

    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: none

    Understood: the plugin-eval and audit-dead-code skill descriptions don't match plain prompts. Those are the sandbox-preflight (missing socat/bubblewrap) and claude plugin eval argument-order questions, and "find and remove unused code". The fix is to edit both descriptions and add one plain-prompt skill-fired case per skill. The skill-quality listing-budget check must still pass.

    The "fires in at least 2 of 3 runs on the PR head" item is a measured run, so it falls outside what the lane can check. The other items can be triaged as normal. Related: #6405 (parent tracker). I found no duplicate among the open issues.

    Automated triage, applied by the lanes App.

  4. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 4, 2026
  5. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    on Nov 4, 2026
  6. added
    status: needs-decisionAwaiting a human or maintainer judgment call.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Nov 4, 2026
  7. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    Not admitted to the issue lane: its done-when asks for what an unattended lane run cannot perform: item 2 (eval: "Each new triggering case fires its skill in at least 2 of 3 runs on the PR he..."); recommended split: keep the other items here as the admissible issue and move these to a child issue for the host queue (host-run). Admission takes the issue once each of those is met, when intake triages it again (.github/actions/resolve-config/admission-rules.json).

  8. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    The latest triage verdict holds nothing: the issue is at status: ready.

  9. 5 remaining items

  10. added
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Nov 4, 2026
  11. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  12. github-actions commented on Nov 4, 2026

    @github-actions
    Contributor
    No description provided.
  13. melodic-automation-lanes commented on Nov 4, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped on this issue (closed-by-open-pr): an open PR the lanes App or a listed human opened already closes the issue, a race with the earlier-work check, not a finding about the issue; while it stays open the next run stops before any model turn.
    It keeps agent-ready, and work-unblock starts it again (retry 1 of 2).

    In the run's words:

    Open PR #13302 already closes this issue, so no second PR opened from work-resolve-issue/issue-13298-41874084496-1.

    Partial work is on the branch work-resolve-issue/issue-13298-41874084496-1. The next run continues from it while it is not behind the default branch, and otherwise starts fresh.

    Run: https://github.com/melodic-software/claude-code-plugins/actions/runs/41874084496

  14. added
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 4, 2026
  15. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor

    Host run. Ran the two new plain-prompt triggering cases (3 runs each) and the three named-skill cases (1 run each) with claude plugin eval on the PR head.

    What ran (Claude Code 2.1.318, subscription login, capped scope, empty HOME, with-without ablation, on a git archive copy of the PR commit):

    • claude plugin eval <copy>/plugins/evals --case trigger-wsl2-missing-socat --runs 3 --allow-tools Read Glob Grep Skill: skill-fired 3 of 3 with-arm, 0 of 3 without. run-validity.py --runs 3: VALID (models WARN only).
    • claude plugin eval <copy>/plugins/code-tidying --case adc-plain-delete-request-triggers --runs 3 --scaffold --allow-tools Bash Edit Write: skill-fired 3 of 3 with-arm, 0 of 3 without. run-validity.py --runs 3 --scaffolded: VALID (models WARN only).
    • Named-skill cases, --runs 1: sandbox-wsl2-missing-socat with 1.00 / without 0.00; target-before-json with 1.00 / without 0.00; adc-read-only-delete-request with 1.00 / without 0.50. Each fired its skill.

    Against the done-when: each new triggering case fired in at least 2 of 3 runs (3 of 3) in a VALID run; the existing named-skill cases still pass. Merge is the remaining item.

    PR: #13302

    Target labels: add none; remove none.

  16. removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    Work status

    agent-ready

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions