Skip to content

Intake triage skips every issue: repin the author-id gate and add dispatch intake #7886

Open

Description

@kyle-sexton

Problem

intake-triage.yml here calls the reusable lane at v0.45.0, whose author gate (melodic-software/ci-workflows#755) admits a human only when author_association is OWNER or MEMBER. The webhook payload reports CONTRIBUTOR for the org owner, whose membership is private, so every intake run since 2026-10-17 22:27 UTC skipped the triage job behind a green run. Root cause and the reusable fix: melodic-software/ci-workflows#772 (PRs melodic-software/ci-workflows#773 and melodic-software/ci-workflows#774).

Separately, the lane sweep (#7857) files needs-triage issues with the job's GITHUB_TOKEN, which starts no issues run, so those issues never get intake either.

Work here

  1. After a ci-workflows release that contains feat(skill-quality,playbooks): precompute-opportunity check and authoring guidance #773 (and feat(adhd): add ADHD output-shaping plugin (reauthor of i-have-adhd) #774), repin the caller to it.
  2. Fill allowed-author-ids from .github/standards/trusted-actors/trusted-actors.json (the kind: human ids), emitted by the born-triaged job as an output, not hardcoded.
  3. Add workflow_dispatch with an issue-number input; the born-triaged job reads the issue by that number; pass issue-number through and list the dispatching bot's id in allowed-bot-sender-ids.
  4. Decide skipped-label. The only existing fit is needs-triage, which intake-label-needs-triage already owns (it skips issues with a priority: label); labels are managed in github-iac Labels.cs, so a new label means a github-iac change. Recommendation: pass none; the skipped job's notice and summary make the skip visible.
  5. Process rule in docs/conventions/pr-pipeline/README.md: a PR changing a lane that lists a "Not verified" item that could disable the lane does not merge until that item is checked live, and its post-merge live check is a tracked issue.

Live check after the repin merges

Open an issue as kyle-sexton and confirm the claude-intake-triage-status job runs (not skipped); open one from a non-listed account or read a gated-out run and confirm claude-intake-triage-skipped names the reason; dispatch the workflow for one sweep-filed issue and confirm it triages.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 18, 2026
  2. github-actions commented on Oct 18, 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: intake triage skips human-filed issues because the author gate admits only OWNER or MEMBER, and the owner appears as CONTRIBUTOR. Sweep-filed issues also never trigger intake. The work is to:

    • repin the caller to a ci-workflows release that contains the fix;
    • emit the trusted human ids from the born-triaged job;
    • add a workflow_dispatch path with an issue-number input;
    • decide skipped-label (the issue recommends none);
    • add the PR-pipeline process rule.

    Still to confirm: the repin needs a ci-workflows release containing #773 and #774, which sits outside this repository. The live checks listed in the issue come after the repin merges. No likely duplicates found among the open issues.

    Automated triage, applied by the lanes App.

  3. added
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 18, 2026
  4. kyle-sexton commented on Oct 18, 2026

    @kyle-sexton
    MemberAuthor

    Status, 2026-10-18:

    Remaining live checks, after #7924 merges. No test issues are to be filed; use issues as they come in.

    • Opened path: the next issue opened by kyle-sexton starts claude-intake-triage-status (not skipped), and the triage comment and labels land.
    • Skipped path: an issue from an unlisted account, or a gated-out run, runs claude-intake-triage-skipped. Its notice and summary name the reason, and with skipped-label unset no label is applied.
    • Dispatch path: the lane sweep's GITHUB_TOKEN dispatch (actor github-actions[bot], id 41898282) for a sweep-filed issue starts the run, and the run reads the issue from the API. Still unverified until then: whether allowed_bots in claude-code-action admits github-actions[bot] on workflow_dispatch, and the github.actor a GITHUB_TOKEN dispatch reports. Both were disclosed as unverified on ci-workflows#774.
    • Dispatch by a person: gh workflow run intake-triage.yml -f issue-number=<N> by kyle-sexton triages issue N. Run it only on an issue that has no triage comment yet.
  5. kyle-sexton commented on Oct 18, 2026

    @kyle-sexton
    MemberAuthor

    Live checks after #7924 (merged 08:05:55Z):

    • Owner-opened issue gets intake: runs 39118063544 and 39118060864 (issues event, born-triaged success, claude-intake-triage-status success, skipped job skipped).
    • Born-triaged issue is skipped on the opened path: run 39116589749 (skip=true reason=born-triaged).
    • Owner dispatch from main reaches the gate with the dispatched issue: run 39118376214 (workflow_dispatch, -f issue-number=8083, born-triaged success, skip=true reason=born-triaged, intake skipped). That proves the trigger, the issue lookup and the gate; a dispatch on an untriaged issue (to confirm the triage job itself on dispatch) is still to be seen.
    • Non-listed author gets the skipped-job notice: not yet seen.
    • github-actions[bot] dispatch triages (whether claude-code-action allowed_bots accepts it): not yet seen; first exercised by the self-healing sweep.

    Posted by Claude Code on the owner's behalf.

  6. kyle-sexton commented on Oct 19, 2026

    @kyle-sexton
    MemberAuthor

    Live-check status, 2026-10-19 (no change to the two open boxes):

    • Non-listed author gets the skipped-job notice: still not seen. The last 100 intake-triage runs were all opened by listed authors (98 by kyle-sexton, 2 by the lanes App). Both lanes-App runs (39258911124, 39255595461) ran claude-intake-triage-status successfully with the skipped job skipped, so a listed bot author is triaged on the opened path.
    • github-actions[bot] dispatch triages: still not seen, and it can't be seen until an issue qualifies. The hourly triage sweep (maintenance-audit-lane-runs.yml, triage-sweep job) runs on schedule and succeeds (latest 39294303334). It dispatches only for an issue that has no intake comment, no triage or status label, is over an hour old, and was opened by a listed author (triage-sweep.mjs:31-46). Intake has reached every such issue since 2026-10-18, including through the 15:49-17:02Z Actions incident, so the sweep has had nothing to dispatch. The last workflow_dispatch run of intake-triage is still 39118376214.

    Both are rare paths. This issue can stay open until one of them happens on its own.

    Posted by Claude Code on the owner's behalf.

  7. kyle-sexton commented on Oct 21, 2026

    @kyle-sexton
    MemberAuthor

    Status 2026-10-21: the github-actions[bot] dispatch path is proven. In run 39443417878 (2026-10-20 14:53Z, workflow_dispatch, actor and triggering actor github-actions[bot]), claude-intake-triage succeeded and the skipped-notice job was skipped. One case is still open: a non-listed author gets the skipped notice. Per the owner, this stays open until that case is seen.

  8. removed
    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.
    on Oct 25, 2026
  9. kyle-sexton commented on Oct 25, 2026

    @kyle-sexton
    MemberAuthor

    Released for re-triage under the owner's 2026-10-24 rule: an issue stops for a person only for an intent or vision question, a security call, a host or attended run, or spend outside prepaid credit. The hold label came off and intake triage runs again now; it re-applies a hold, with a numbered question, when one of those applies.

    To hold this issue again, add needs-human (or status: needs-decision) and say why in a comment.

  10. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    priority: criticalProduction broken, data loss, active exploit, or release blocker.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 25, 2026
  11. changed the issue type fromtoon Oct 25, 2026
  12. 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.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    status: needs-decisionAwaiting a human or maintainer judgment call.
    and removed
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    on Oct 25, 2026
  13. 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: Close the issue once the one remaining live check passes: an issue from a non-listed author runs the skipped-notice job; the repin, trusted-ids output, dispatch input and bot-id wiring are already merged.

    Related work

    Open questions

    1. Items 1-4 are merged and live-checked. Should this stay open only for the non-listed-author skipped-notice check, or close with that check moved to a separate tracking issue?
      RECOMMENDED: Keep it open only for that check; an unattended run cannot produce a non-listed author event, so no lane run can finish it. Basis: comment 2026-10-21 (owner: stays open until that case is seen); .github/workflows/intake-triage.yml:199-206
    2. Item 5, the process rule in docs/conventions/pr-pipeline/README.md, is not in the README (no 'Not verified' text). Comments say #​7888 owns it. Is it dropped from this issue?
      RECOMMENDED: Yes, track it only under #​7888. Basis: comment 2026-10-18 03:17 (process rule is #​7888); grep of docs/conventions/pr-pipeline/README.md found no such rule

    Sources read

    • context.json comments 2026-10-18 to 2026-10-21: repin merged via #​7924, bot dispatch path proven, only non-listed-author notice check open
    • .github/workflows/intake-triage.yml:199-206: reusable lane called with issue-number, allowed-author-ids from born-triaged human-ids output, allowed-bot-sender-ids from bot-ids output
    • docs/conventions/pr-pipeline/README.md: no Not verified rule found

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

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

    @melodic-automation-lanes
    Contributor

    The work-resolve-issue lane stopped on its usage limit, not on this issue. It keeps agent-ready, and work-unblock starts it again after 2026-10-25T16:00:00Z.

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

  15. 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 Oct 25, 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

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: criticalProduction broken, data loss, active exploit, or release blocker.status: needs-decisionAwaiting a human or maintainer judgment call.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