Repository navigation
Intake triage skips every issue: repin the author-id gate and add dispatch intake #7886
Description
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
- 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.
- Fill
allowed-author-idsfrom.github/standards/trusted-actors/trusted-actors.json(thekind: humanids), emitted by theborn-triagedjob as an output, not hardcoded. - Add
workflow_dispatchwith anissue-numberinput; theborn-triagedjob reads the issue by that number; passissue-numberthrough and list the dispatching bot's id inallowed-bot-sender-ids. - Decide
skipped-label. The only existing fit isneeds-triage, whichintake-label-needs-triagealready owns (it skips issues with apriority:label); labels are managed in github-iacLabels.cs, so a new label means a github-iac change. Recommendation: pass none; the skipped job's notice and summary make the skip visible. - 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
github-actions commentedon Oct 18, 2026
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:
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.
kyle-sexton commentedon Oct 18, 2026
Status, 2026-10-18:
ff8cd36321423de961381e608e4a31563e74adb3).runner-policy.mjsrejectsintake-triage.yml@ff8cd36because no reviewed contract exists for it ("auto-approval declined: inputs changed"). A standardsfeat(runner-policy)PR has to register that contract, addingissue-number,allowed-author-idsandallowed-bot-sender-idsto the v0.45.0 entry, and the owner has to sign it off. The standards sync has to land here before fix(intake): admit listed humans by id and triage dispatched issues #7924 can go green.Remaining live checks, after #7924 merges. No test issues are to be filed; use issues as they come in.
claude-intake-triage-status(not skipped), and the triage comment and labels land.claude-intake-triage-skipped. Its notice and summary name the reason, and withskipped-labelunset no label is applied.GITHUB_TOKENdispatch (actorgithub-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: whetherallowed_botsin claude-code-action admitsgithub-actions[bot]onworkflow_dispatch, and thegithub.actoraGITHUB_TOKENdispatch reports. Both were disclosed as unverified on ci-workflows#774.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.kyle-sexton commentedon Oct 18, 2026
Live checks after #7924 (merged 08:05:55Z):
skip=true reason=born-triaged).-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.Posted by Claude Code on the owner's behalf.
kyle-sexton commentedon Oct 19, 2026
Live-check status, 2026-10-19 (no change to the two open boxes):
claude-intake-triage-statussuccessfully with the skipped job skipped, so a listed bot author is triaged on the opened path.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 lastworkflow_dispatchrun 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.
kyle-sexton commentedon Oct 21, 2026
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.
kyle-sexton commentedon Oct 25, 2026
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(orstatus: needs-decision) and say why in a comment.melodic-automation-lanes commentedon Oct 25, 2026
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
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
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
Automated refinement by the lanes App. Answer with a comment whose first line is
**Decision recorded.**.melodic-automation-lanes commentedon Oct 25, 2026
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