Repository navigation
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.3 remaining items
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
kyle-sexton commentedon Oct 28, 2026
Re-triage. This is not an owner stop. The work is done, and one live check waits for an event no lane can produce.
intake-triage.yml:244). Item 5 is docs(pr-pipeline): hold a lane PR on a not-verified item that can stop the lane #7888, which is closed.github-actions[bot]dispatch (run 39443417878).intake-triage-gate.test.cjsat the pinned SHA has "an unlisted author waits for a person, OWNER and MEMBER included" and "a gated-out opened issue runs the skipped job, which may apply a label".Per the owner (comment), this stays open until that case is seen. Labels:
status: confirmed.agent-readycomes off, because no lane run can open an issue from an unlisted account.claude-intake-triage-skipped, and its notice and summary name the reason. Link the run, then close this issue.kyle-sexton commentedon Oct 31, 2026
Routed to
attended: the one open check needs an issue opened by a GitHub account that is not on the listed-humans list, and no lane or host run has such a login. Opening one test issue from another account, linking itsclaude-intake-triage-skippedrun here and closing both finishes this issue. Agents decided this on evidence under standing direction §1.kyle-sexton commentedon Nov 3, 2026
Closing: owner decision, 2026-11-03. The owner declined to make an account just to run this check: "I'm not going to go create a fake account for this".
What is already proven:
github-actions[bot]dispatch (run 39443417878).intake-triage-gate.test.cjsat the pinned SHA covers it with "an unlisted author waits for a person, OWNER and MEMBER included" and "a gated-out opened issue runs the skipped job, which may apply a label".The first issue opened by an account outside the listed humans exercises that path for real. Reopen this issue if its
claude-intake-triage-skippedrun does not name the reason.