Skip to content

test(planning): stop omits-unchanged-items failing replies that mention an unchanged value for another reason #11591

Closed

Description

@kyle-sexton

Refs: #11189

Observed

The interview-final-brief-changes-only case's omits-unchanged-items grader is a not_contains regex on gzip, 50,000, 50k, toolbar, UTC, compression and audit log anywhere in the reply. It fails a reply that leaves the unchanged answers out of the restatement but uses one of those words for another reason.

A host run on #11588's head (d26e742; Claude Code CLI on the subscription login, --runs 3 --judge-model opus --scaffold --keep-temp; run-validity.py: VALID) failed it in 3 of 3 with-arm runs:

  • Run 1 restated "Q1–Q4 and Q6–Q8: accepted as read back. No changes." and failed only because it suggested a UTC timestamp format for the changed Q5.
  • Run 3 restated "Q1–Q4 and Q6–Q8 were accepted as read back and haven't changed, so I'm not listing them again." and failed only because it cited Q4's 50,000-row cap as a fact for the new Q9.
  • Run 2 did re-list them ("Unchanged and accepted (7): ... Q3 UTC timestamps · Q4 50,000-row cap ..."), a correct fail.

The case's stated outcome is that the reply does not re-list the accepted answers. Mentioning one of their values while reasoning about a changed or new item is not re-listing. The llm grader changes-only-restatement already judges that criterion, and passed runs 1 and 3 and failed run 2.

Fix wanted

Make the grader fail only a reply that re-lists unchanged answers, for example by matching the answers as a list (two or more of the values in one block), or drop it in favour of changes-only-restatement. Add pass samples from runs 1 and 3 (shape only, no transcript text) and a fail sample shaped like run 2.

Done when

This was generated by AI.

Activity

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

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Small
    Complexity: Low
    Uncertainty: Known
    Flags: none
    Blocked by: none

    Understood: the omits-unchanged-items grader in the interview-final-brief-changes-only case uses a not_contains regex. It fails replies that mention one unchanged value (UTC, 50,000) while discussing a changed or new item, even though they don't re-list the accepted answers. The fix is to make it fail only on a re-listing, either by matching two or more values in one block or by relying on changes-only-restatement. Pass samples shaped like runs 1 and 3 and a fail sample shaped like run 2 would show it. The issue leaves the choice between those two approaches open, but both keep the design the same. No likely duplicates found.

    Automated triage, applied by the lanes App.

  3. 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 Oct 31, 2026
  4. 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.
    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 Oct 31, 2026
  5. github-actions commented on Oct 31, 2026

    @github-actions
    Contributor
    No description provided.
  6. github-actions commented on Oct 31, 2026

    @github-actions
    Contributor
    No description provided.
  7. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 31, 2026
  8. melodic-automation-lanes commented on Oct 31, 2026

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped partway through this issue and needs a person.

    Reason: security

    Why, in the run's own words:

    The run did not start: the issue's title or body changed after agent-ready was added, so the runner wrote no issue file for the skill and no model ran.

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

    To retry, remove needs-human and add agent-ready again.

  9. added
    host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.
    and removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Nov 1, 2026
  10. kyle-sexton commented on Nov 1, 2026

    @kyle-sexton
    MemberAuthor

    Route: host-run. Written by the intake triage session, not the owner.

    The lane run stopped with reason security, but the cause was not a security finding. It was the issue-edited stop (.github/scripts/work-resolve-issue/stop-routes.json:9). This account edited the body at 2026-10-31T16:11:44Z, after agent-ready was added at 15:49:38Z, and the runner refuses text changed after that label (.github/scripts/work-resolve-issue/write-issue.mjs:247-250).

    Re-adding agent-ready would deliver only the first done-when item. The second needs a VALID claude plugin eval run of interview-final-brief-changes-only (3 runs, opus judge) reaching a with-arm score of 0.8 or more. The issue lane's Bash runs only commands its allow rules name, and none names claude (.github/actions/collect-base-activity/action.yml:490-494). #11189's lane run left this same eval rerun undone ("is not run here", comment 6518094429). A host session fixes the grader and runs the eval in the same pull request. The criteria are unchanged.

  11. kyle-sexton commented on Nov 2, 2026

    @kyle-sexton
    MemberAuthor

    Claim. Backlog HITL host-run worker is taking this now.

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

    host-runNeeds 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.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.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions