Skip to content

fix\(pr-pipeline\): align every needs-human path with the owner stop rule - part 3 of 6 #11021

Open

Description

@melodic-automation-lanes

Part 3 of 6 of #10517, split at intake (owner Q93). The done-when below is copied from #10517 as written.

Done when

  • The issue lane's research-first, probe-first and split-required skips add needs-human.
  • work-resolve-issue/report-outcome.mjs hands patch escalations (patch-protected-path, patch-invalid, the other PATCH_REASONS) to a person.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 29, 2026
  2. github-actions commented on Oct 29, 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

    I read this as part 3 of 6 of #10517, split at intake. It asks for two changes. First, the issue lane's research-first, probe-first and split-required skips should add needs-human. Second, work-resolve-issue/report-outcome.mjs should hand patch escalations (patch-protected-path, patch-invalid and the other PATCH_REASONS) to a person. Both items are clear and can be checked by the lane. Nothing is missing. The sibling parts (#11019, #11020, #11022, #11023, #11024) cover other paths of the same parent and are not duplicates.

    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 29, 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.
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    admission-deferredAdmitted but waiting for WIP room; the hourly work-unblock sweep labels it agent-ready.
    on Oct 29, 2026
  5. melodic-automation-lanes commented on Oct 29, 2026

    @melodic-automation-lanes
    ContributorAuthor

    The work-resolve-issue lane did not start this issue: it needs a person to make it clearer first.

    Why, in the run's own words:

    Where should the issue lane send its three dimension skips (split-required, research-first, probe-first) instead of needs-human? The issue says to align them with the owner stop rule but does not name a lane, and the repository's own rules disagree on which lane. (a) host-run: stop-routes.json already has this route (patch-protected-path and host-only use it), and the label means 'an unattended agent run on a host'. But intake admission keeps host-run off exactly these issues on purpose: .github/scripts/intake-triage/admit.mjs:1041-1043 says host-run 'goes only on an issue whose one obstacle is that no item is left for the lane: never beside ... another refusal, a wait or a pending split', and admit.test.mjs:1632-1645 tests that Uncertainty unknown and a pending size split get no host-run. (b) Back to intake: drop status: ready and park at status: confirmed, as admit.mjs:1723-1725 does for these same refusals with no person. split-required would then go to intake's own size split (owner Q93). This needs a new stop-routes route. Also, a trusted size-split child with Size Large is admitted (admit.mjs:889-893, 'a run has no turn or time cap') but resolve-config still maps large to split (dimensions.mjs:68), so it can never leave the split-required skip. (c) fail: remove agent-ready, add no label, and the maintenance monitor reports it, which sends it to no lane. Please record which route each of the three takes. For the second done-when item, my reading of the code is that it is already aligned except patch-invalid: patch-protected-path routes to host-run, patch-not-applied and patch-apply-failed retry, and patch-empty changes nothing. patch-invalid holds because apply-issue-patch also uses it for a patch carrying a credential shape (PATCH_REASONS in report-outcome.mjs, stop-routes.json row). Can patch-invalid be recorded in the loop-lane 'When work stops for the owner' section as a kept security control, or should the write file split that reason first? That would be a change to .github/workflows/pr-run-activity-write.yml, which the issue lane cannot push.

    What the run says it did not do:

    • Both done-when items are left until the routing question is answered; nothing was committed.
    • tidy: skipped. The drafted change touched the shared paths .github/ and docs/conventions/, and it was reverted.
    • The report-outcome and stop-routes node test suites were not run here: the lane runs no interpreter.
    • Whatever route is chosen, the report-skip comment in .github/workflows/work-resolve-issue.yml:410-412 ('each a hold: the human-gated label') and the dimension-skip input description in .github/workflows/pr-run-activity-write.yml:73-77 will need updating. Both are paths the issue lane may not push.

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

    To retry, answer the question in a comment whose first line is **Decision recorded.**, then remove needs-human and add agent-ready again.

  6. removed
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 29, 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

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.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 Task.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions