Skip to content

fix(pr-pipeline): retry a failed intake hand-off in the demotion alert instead of labeling needs-human #13022

Closed

Description

@kyle-sexton

Refs: #11022

Problem

When the post-merge demotion alert cannot hand a fix or quarantine issue to intake triage, it labels that issue needs-human:

  • .github/workflows/post-merge-demotion-alert.yml:526-528: a quarantine issue not sent to intake triage gets needs-human.
  • .github/workflows/post-merge-demotion-alert.yml:1184-1191: an undelivered fix issue gets needs-human, and the record gets the comment built at :1261 ("Fix work not handed to intake on this run, labeled needs-human for a person").

#12279 added this under #11022. A failed hand-off to intake is none of the owner's three stop reasons: an intent or vision change, a finding that changes the primary design, or a real HIGH/CRITICAL security or billing risk. So routing it to a person is a workflow defect, not a designed stop. Nothing retries the hand-off afterwards, so the issue waits on the owner for something a later run could do itself.

Current exposure: none of the 3 open needs-human issues (#12108, #12043, #9905) came from this path, so there is nothing to clean up today.

Done when

  1. On a failed hand-off, the alert does not add needs-human. It records the failure visibly instead, with a designed-stop label or a reason-marked status that names the undelivered issue, and the next run retries the hand-off.
  2. needs-human stays only where the issue body itself names one of the owner's stop reasons. The canary and revert records at :1094-1096 and :1148-1154 are reviewed against that rule.
  3. A test shows that a failed hand-off adds no needs-human and that the next run retries it.

Notes

Activity

  1. added
    host-runNeeds an unattended run on a host; the host runner takes it, not a person or the issue lane.
    on Nov 4, 2026
  2. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 4, 2026
  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: Known
    Flags: none
    Blocked by: none

    Understood: when the post-merge demotion alert can't hand a fix or quarantine issue to intake triage, it labels the issue needs-human. You want it to record the failure visibly without that label and retry the hand-off on the next run. You also want the canary and revert records reviewed against the owner-stop rule, and a test covering both behaviors.

    The done-when items are specific, so I'm asking nothing further. Your latest comment gives retry and marker answers, but its first line isn't exactly **Decision recorded.**, so I haven't treated it as a recorded decision. The change is to a workflow file and is marked host-run. Related, not duplicate: #10517 and #11024, which cover other needs-human paths.

    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: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    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: no trusted-human acceptance criteria: a listed human must put the confirmed - [ ] criteria in the body or post them as their own comment, or, on an issue a listed human filed, intake's newest refinement comment must hold them unedited; its body or a criterion names .github/workflows/post-merge-demotion-alert.yml, which the issue lane cannot push (patch-protected-path); a builder session takes it; it carries 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: admission moved the issue to status: confirmed; its comment says why.

  9. 4 remaining items

  10. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    and removed
    status: needs-decisionAwaiting a human or maintainer judgment call.
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Nov 4, 2026
  11. added
    status: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Nov 4, 2026
  12. self-assigned this
    on Nov 4, 2026
  13. kyle-sexton commented on Nov 4, 2026

    @kyle-sexton
    MemberAuthor
    No description provided.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

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: confirmedA maintainer confirmed the item is real and in scope; ready to be worked.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

Type

Fields

Work status

confirmed

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions