ci-triage

ci-triage is a skill for Claude Code, Codex from onsager-ai/dev-skills. It costs 127 tokens per session (1,587 once invoked), scanned A, original, MIT.

A workflow for investigating failed GitHub Actions runs, which are automated checks that build and test code in a repository.

In plain words
What is it for?
Triage of failures on the main branch or pull requests, including reproducing failures, identifying the likely commit, and recording regression, flake, or infrastructure outcomes.
Why use it?
A failed check may be caused by a code regression, an intermittent test, or an infrastructure problem. Classifying it helps teams choose the right follow-up and avoid duplicate tracking issues.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions CLAUDE.md.

Good fit Triage of failures on the main branch or pull requests, including reproducing failures, identifying the likely commit, and recording regression, flake, or infrastructure outcomes.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/onsager-ai/dev-skills/ci-triage
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add onsager-ai/dev-skills --skill ci-triage
Clone the repo
git clone --depth 1 https://github.com/onsager-ai/dev-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ci-triage

README.md
[![agentmods](https://agentmods.dev/badge/skills/onsager-ai/dev-skills/ci-triage.svg)](https://agentmods.dev/skills/onsager-ai/dev-skills/ci-triage)
Your own site
<a href="https://agentmods.dev/skills/onsager-ai/dev-skills/ci-triage"><img src="https://agentmods.dev/badge/skills/onsager-ai/dev-skills/ci-triage.svg" alt="Measured on agentmods" height="20"></a>
Per session 127 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,587 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00127 $0.01587
Opus 5 $0.00063 $0.00794
Sonnet 5 $0.00025 $0.00317
Haiku 4.5 $0.00013 $0.00159

Measured 8d ago against content hash 381fedf4569e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

ci-triage scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/ci-triage/SKILL.md · 113 lines

How it starts

The opening of the file, as written. The whole thing — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.

ci-triage

Shared logic for classifying a failed CI workflow run and recording the outcome. Used by humans (or Claude in an interactive session) when triaging a red main workflow or a red check on an open PR — the latter via the global pr-lifecycle skill, whose CI-triage section delegates the taxonomy here.

This skill owns the taxonomy, the de-dup rules for the main-red issue, and the issue template. Repo-specific reproduction steps and failure patterns live in the consumer repo's CLAUDE.md / <repo>-dev-process (read by pr-lifecycle), and e2e classification is delegated to web-testing.

Taxonomy

Every failure lands in exactly one bucket. Be explicit — "unclear" is not a bucket, needs-human is.

Bucket Signal Default action
regression Reproduces deterministically on main at HEAD File/update main-red, @-mention suspect author
flake Same workflow passed on the previous main commit without code change Comment on the existing main-red issue if one is open; otherwise skip
infra Postgres service didn't come up, rustup 403, pnpm registry down File/update main-red labelled infra; do not @-mention authors
needs-human Logs truncated, auth failed, classification genuinely ambiguous Open a main-red issue with raw log excerpt, label needs-human

Do not invent a fifth bucket. If the signal you see fits nothing above, it's needs-human.

Suspect commit identification

The GitHub workflow_run payload includes head_sha. That's the commit that triggered this run — on a push: main event, it is the merge commit.

  1. Fetch the commit via mcp__github__get_commit.
  2. If the commit message matches Merge pull request #N, the suspect PR is #N; its author is the suspect author.
  3. Otherwise (direct push to main, squash-merge), use the commit author directly.

Read the full file on GitHub · 113 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 8d ago First seen · 113 lines · 127 tokens per session scan A 381fedf4569e

Subscribe to this mod's changes

ci-triage is a skill published in the GitHub repository onsager-ai/dev-skills (5 stars, last pushed 26d ago), licensed MIT. It adds 127 tokens to every session and 1,587 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

Verification & Quality Assurance

Comprehensive truth scoring, code quality verification, and automatic rollback system with 0.95 accuracy threshold for ensuring high-quality agent outputs and codebase reliability.

ruvnet/RuView · 36 tokens

smoke-test

Health smoke tests + auto-fix for gbrain installs (and OpenClaw services when present). Run after machine/container restarts or whenever something seems broken. Tests critical services, auto-fixes bounded local issues, and reports worker topology without starting daemons. Extensible via user-defined test scripts in…

garrytan/gbrain · 79 tokens

mcore-create-issue

Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.

NVIDIA/skills · 26 tokens

debug-task

Diagnose and fix moon tasks that are broken, misconfigured, or behaving unexpectedly. Use this skill when a moon task is failing, not running, skipped, hanging, producing stale or wrong output, cached when it shouldn't be, re-running every time when it should be cached, or when outputs are empty or missing after a…

moonrepo/moon · 231 tokens

github-ci-fix

Fix failing GitHub CI / Actions checks via fixgithubprci and push to the existing PR head, or fix a branch's failing CI via a linked repair worktree.

Tracer-Cloud/opensre · 40 tokens

github-ci-fix

Use when the user asks OpenSRE to fix failing GitHub CI, GitHub Actions checks, failing pull request checks, a broken PR branch, or CI on a named branch such as main.

Tracer-Cloud/opensre · 45 tokens