Skip to content

ci: decide whether the lane may add the eval: run label to its own PRs #10023

Closed

Description

@kyle-sexton

Refs: #9705, #9835

Proposal

Let the work-resolve-issue lane add the eval: run label to its own pull requests, so a lane PR that changes a plugin's skills runs that plugin's eval suite without a person adding the label.

Why it was removed from #9835

#9835 first shipped this auto-label (eval-pass.mjs). Review removed it: #9705's scope says the eval "carries an opt-in label", and an automatic label lets agent-written PR code run with the maintenance credential with no person opting in. That is a trust-boundary change, so it waits for an owner decision (owner, 2026-10-25: keep it removed and propose it separately).

Decision needed

🤖 Generated with Claude Code

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 25, 2026
  2. github-actions commented on Oct 25, 2026

    @github-actions
    Contributor

    Proposed work class: none

    Size: Small
    Complexity: Medium
    Uncertainty: Knowable
    Flags: intent, security
    Blocked by: none

    I understand this as a request for an owner decision on whether the work-resolve-issue lane may add eval: run to its own PRs. The auto-label was removed from #9835 as a trust-boundary change. Option (b) would let agent-written code run with the maintenance credential, and that is a security risk.

    Open question:

    1. Which option should apply: (a) no auto-label, (b) auto-label every lane PR, or (c) auto-label only when the change is confined to evals/ and descriptive skill text?
      RECOMMENDED: (a). Basis: feat(ci): opt-in PR label trigger for the changed plugin's eval suite #9705 scopes the eval as opt-in by label, and the owner kept the auto-label removed on 2026-10-25. (c) is the fallback if the owner wants automation, but it needs a reliable path check.

    Related: #9705, #9835.

    Automated triage. A maintainer reviews it.

  3. melodic-automation-lanes commented on Oct 25, 2026

    @melodic-automation-lanes
    Contributor

    The triage verdict left this issue at status: needs-decision:

    • flagged: intent, security
    • held by status: needs-decision
    • no lanes App verdict comment shows whether an earlier verdict was flagged
  4. melodic-automation-lanes commented on Oct 25, 2026

    @melodic-automation-lanes
    Contributor

    Refinement. A read-only run explored this repository, searched its issues and pull requests, and read the allowed docs to draft what follows. On an issue a listed human filed, it counts as the issue's spec once posted, while unedited; it is still model text, so check it.

    Intended outcome: Option (a): the lane does not add eval: run; a listed human adds it, and the issue closes as decided.

    Related work

    Open questions

    1. Which option applies: (a) no auto-label, (b) auto-label every lane PR, or (c) auto-label only when the change is confined to evals/ and descriptive skill text?
      RECOMMENDED: (a) Do not auto-label; a listed human adds eval: run. Basis: judgment: the issue body says #​9705 scopes the eval as opt-in by label and the owner kept the auto-label removed on 2026-10-25; (b) lets agent-written code run with the maintenance credential with no person opting in.
    2. If the owner wants automation, may (c) be used, and what check defines 'descriptive skill text' reliably enough for an unattended run?
      RECOMMENDED: Only adopt (c) after a path allowlist (evals/ plus named skill-text files) is specified and verified against the full PR diff; otherwise stay with (a). Basis: judgment: skill text is read by the model, so a text-only change can still steer eval behavior; the path check must be exact.

    Sources read

    • /home/runner/work/_temp/refine-data/context.json: issue body asks for an owner decision among (a), (b), (c); no comment records a decision
    • repository grep for 'eval: run' in .base: no matches, so no current file mentions the label

    Automated refinement by the lanes App. Answer with a comment whose first line is **Decision recorded.**.

  5. kyle-sexton commented on Oct 26, 2026

    @kyle-sexton
    MemberAuthor

    Decision recorded. The owner answered in the Refinement and Issue Triage sessions (2026-10-25), deciding the open items below on the facts:

    go with whatever the facts/data/metrics + /discovery:research says and ensure we're aligned with SOLID, DRY/SSOT principles

    I should only ever be in the loop ONLY when necessary (intent/vision changed, something came up during implementation that impacts trajectory/alignment, OR a high security risk) - I've covered this all before

    No owner ledger (.work/*/interview-checklist.md, .work/gh-monitor-owner-decisions/) names this issue.

    1. Which option applies: (a) no auto-label, (b) auto-label every lane PR, or (c) auto-label only changes confined to evals/ and descriptive skill text?
      Decided: (a). The lane does not add eval: run; a listed human adds it. Basis: the body records the owner's earlier call on this exact change:

      keep it removed and propose it separately

      (b) and (c) would let lane-written code run with the maintenance credential with no person opting in, which the body names a trust-boundary change. This record widens no boundary, so it decides (a) and nothing more. If automation is wanted later, it comes back as its own proposal.

    Closed as done. Option (a) is the state on main: git grep "eval: run" at origin/main 68d3f2bd81 finds no file that names the label, so no code adds it and nothing is left to build. This record closes the issue.

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.status: needs-decisionAwaiting a human or maintainer judgment call.

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions