Loading...
Loading...
Triage failed CI runs on a GitHub-Actions–driven repo — classify regression vs flake vs infra, maintain a single rolling `main-red` issue when main is broken, and point humans at the suspect commit. Use when a workflow fails on `main`, or when a human asks "is main red?", "why did CI fail on main?", "triage this workflow run", "classify this failure". Paired with the consumer repo's `<repo>-pr-lifecycle` skill (PR-side CI triage) and the `web-testing` skill (invoked for `e2e` failures).
npx skill4agent add onsager-ai/dev-skills ci-triagemain<repo>-pr-lifecycleonsager-pr-lifecyclelean-spec-pr-lifecycleduhem-pr-lifecyclemain-red<repo>-pr-lifecycleweb-testingneeds-human| Bucket | Signal | Default action |
|---|---|---|
| Reproduces deterministically on | File/update |
| Same workflow passed on the previous main commit without code change | Comment on the existing |
| Postgres service didn't come up, rustup 403, pnpm registry down | File/update |
| Logs truncated, auth failed, classification genuinely ambiguous | Open a |
needs-humanworkflow_runhead_shapush: mainmcp__github__get_commitMerge pull request #N#Nmain-redmain-redmcp__github__list_issueslabels: main-red, state: openRun #<run-id> also failed. Workflow, bucket<name>, suspect <sha-short> (#<pr-or-none>, @<author>). <one-line-cause>.<bucket>
main is red: <workflow> (<bucket>)main-redinfraneeds-human**Workflow**: <workflow-name>
**Run**: <run-url>
**First failed step**: <step-name>
**Bucket**: <regression|flake|infra|needs-human>
**Suspect**: <sha-short> — <commit-subject> (PR #<n>, @<author>)
### Failure excerpt
<last 30 lines of the failing step, or the ripgrep-extracted error block>
### Reproduction
<one of:>
- Deterministic: `<exact command from the workflow yaml>`
- Flake: passed on <prev-sha-short>; rerun button: <run-url>/attempts/2
- Infra: <service name> — <symptom>
- Needs human: <why the logs are ambiguous>
### Next action
<one line — "revert #N and reland", "rerun", "fix <specific thing>", "human eyes"><repo>-pr-lifecyclemainmaine2eweb-testingWebFetchmcp__github__pull_request_readmethod: get_check_runsjobs_urlmcp__github__get_commitcheck_suiteneeds-humanflakemcp__github__list_commitsinfraflakemain-redmain-red| Surface | Role |
|---|---|
| Interactive caller; humans use this when triaging a red PR check. |
| Delegated to for |