CI Failure Triage and Repair
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
Fetch and classify a failed GitHub Actions job for this repo — distinguish out-of-memory kills, six-hour timeouts, configure errors and genuine test failures, and identify what was in flight.
$ npx skills add fair-acc/gnuradio4 --skill ci-triage -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fair-acc/gnuradio4 ci-triage --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/fair-acc/gnuradio4.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ci-triage .claude/skills/ci-triage && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ci-triage" agent skill from https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triage into .claude/skills/ci-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-triage", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triageType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add fair-acc/gnuradio4 --skill ci-triage -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fair-acc/gnuradio4 ci-triage --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fair-acc/gnuradio4.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ci-triage .agents/skills/ci-triage && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ci-triage" agent skill from https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triage into .agents/skills/ci-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-triage", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fair-acc/gnuradio4 --skill ci-triage -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fair-acc/gnuradio4 ci-triage --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fair-acc/gnuradio4.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ci-triage .cursor/skills/ci-triage && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ci-triage" agent skill from https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triage into .cursor/skills/ci-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-triage", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/fair-acc/gnuradio4.git --path .claude/skills/ci-triage--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add fair-acc/gnuradio4 --skill ci-triage -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fair-acc/gnuradio4 ci-triage --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fair-acc/gnuradio4.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ci-triage .gemini/skills/ci-triage && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ci-triage" agent skill from https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triage into .gemini/skills/ci-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-triage", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install fair-acc/gnuradio4 ci-triageInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add fair-acc/gnuradio4 --skill ci-triage -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fair-acc/gnuradio4.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ci-triage .github/skills/ci-triage && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ci-triage" agent skill from https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triage into .github/skills/ci-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-triage", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fair-acc/gnuradio4 --skill ci-triage -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fair-acc/gnuradio4 ci-triage --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fair-acc/gnuradio4.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ci-triage .opencode/skills/ci-triage && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ci-triage" agent skill from https://github.com/fair-acc/gnuradio4/tree/main/.claude/skills/ci-triage into .opencode/skills/ci-triage/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-triage", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ci-triageFetch and classify a failed GitHub Actions job for this repo — distinguish out-of-memory kills, six-hour timeouts, configure errors and genuine test failures, and identify what was in flight.
CI Triage is an agent skill from fair-acc/gnuradio4. Fetch and classify a failed GitHub Actions job for this repo — distinguish out-of-memory kills, six-hour timeouts, configure errors and genuine test failures, and identify what was in flight. Use whenever a CI job fails.
Its SKILL.md is about 550 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Failing and flaky tests and CI/CD. It works with GitHub Actions. The repository describes itself as: Prototype implementations for a more compile-time efficient flowgraph API. The licence is LGPL-3.0.
Read from SKILL.md and the folder at commit af62235. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
ghcmakeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CI Triage loads about 548 tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 179 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from fair-acc/gnuradio4 at commit af62235, republished under its LGPL-3.0 licence (© fair-acc). 179 words, ~548 tokens.
.claude/skills/ci-triage/SKILL.md (or your agent's skills folder).gh run view --log refuses while the run is still in progress. This always works:
JID=$(gh run view <run-id> --json jobs -q '.jobs[]|select(.name=="<job>")|.databaseId')
gh api --allow-escape-sequences "repos/fair-acc/gnuradio4/actions/jobs/$JID/logs" \
| sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' > job.logWithout --allow-escape-sequences the call fails; without the sed the log is unreadable.
| signature | cause |
|---|---|
exit code 137 + "runner has received a shutdown signal" | OOM — the kernel killed the runner |
Build step with no conclusion at all | OOM so hard the step never reported |
conclusion cancelled at ~360 min | six-hour job timeout |
CMake Error: generator : Ninja / Does not match ... Unix Makefiles | a cached _deps sub-build from another generator |
***Failed <n> sec | the test's own bound, not a ctest timeout |
***Timeout | ctest TIMEOUT property |
The runner is 4 cores / ~16 GB. Read the last twenty lines: the compiles and links in flight are the
peak. Sum their measured peak RSS (see the measure-build-cost skill) before changing
GR_BUILD_PARALLEL_LEVEL — a job count sized from core count rather than memory is how this repo
OOMs.
Also grep cores, for the runner's own report of cores and MemTotal, and Hits: for the ccache hit
rate, which explains most duration differences between runs.
© fair-acc, LGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/ci-triage of fair-acc/gnuradio4.
Open the folder on GitHubat commit af62235
CI Triage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CI Triage this skillfair-acc/gnuradio4 | 115 | — | ~548 | Automated safety check: Pass | LGPL-3.0 | |
| CI Failure Triage and RepairChachamaru127/claude-code-harness | 3.2k | 1 repos | ~1.1k | Automated safety check: Notes | MIT | |
| CI Watchdoglatitude-dev/latitude-llm | 4.7k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Megatron-LM CI Failure TriageNVIDIA/Megatron-LM | 18k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| CI Failure Triagen1m21n/Infinite | 271 | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| CI Debuggingcitypaul/.dotfiles | 740 | — | ~1.5k | Automated safety check: Notes | Custom licence |
Chachamaru127/claude-code-harness
Diagnoses failing CI pipelines and tests, deciding first whether the test or the implementation is at fault, and hands hard cases to a dedicated fixer subagent.
latitude-dev/latitude-llm
Continuously monitor GitHub PR CI checks and automatically fix failures until all checks pass.
NVIDIA/Megatron-LM
Investigates a failing GitHub Actions run or job for Megatron-LM, finds the root cause plus the PR and test author involved, and files a structured bug issue.
n1m21n/Infinite
Diagnose a failed GitHub Actions run (Windows MSVC crash, Linux clang/sanitizer, link errors) from the logs in one pass, and fix every candidate at once instead of one CI round-trip at a time.
citypaul/.dotfiles
Systematic CI/CD failure diagnosis using hypothesis-first investigation, local reproduction, and environment delta analysis.
linaproai/linapro
排查并修复给定的 LinaPro GitHub Actions 失败问题;修复完成后保留本地改动, 禁止自动提交、推送或创建 PR。
fair-acc/gnuradio4
Configure and run the local Emscripten/WebAssembly build with ONNX Runtime, including the tests.
fair-acc/gnuradio4
Measure the peak memory and wall time of a single translation unit or link step, so build parallelism can be sized from evidence.
fair-acc/gnuradio4
Check or apply the exact formatter set the Restyled CI bot runs (clang-format v18, cmake-format, prettier for markdown and yaml, shellcheck, whitespace, black).
Works with
Categories
Fetch and classify a failed GitHub Actions job for this repo — distinguish out-of-memory kills, six-hour timeouts, configure errors and genuine test failures, and identify what was in flight. CI Triage is an agent skill from fair-acc/gnuradio4. Fetch and classify a failed GitHub Actions job for this repo — distinguish out-of-memory kills, six-hour timeouts, configure errors and genuine test failures, and identify what was in flight.
CI Triage fits situations like: tasks that involve Failing and flaky tests; tasks that involve CI/CD.
Run `npx skills add fair-acc/gnuradio4 --skill ci-triage -a claude-code`. Or copy the skill folder (.claude/skills/ci-triage in fair-acc/gnuradio4) into .claude/skills/ci-triage in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fair-acc/gnuradio4 --skill ci-triage -a codex`. Or copy the skill folder (.claude/skills/ci-triage in fair-acc/gnuradio4) into .agents/skills/ci-triage in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fair-acc/gnuradio4 --skill ci-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ci-triage, .gemini/skills/ci-triage, .github/skills/ci-triage and .opencode/skills/ci-triage in your project.
Going by SKILL.md and its folder, CI Triage needs the command-line tools its instructions call (gh and cmake).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CI Triage is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 548 tokens (SKILL.md is roughly 2.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CI Triage: CI Failure Triage and Repair (Chachamaru127/claude-code-harness, 3.2k stars), CI Watchdog (latitude-dev/latitude-llm, 4.7k stars), Megatron-LM CI Failure Triage (NVIDIA/Megatron-LM, 18k stars) and CI Failure Triage (n1m21n/Infinite, 271 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fair-acc (a GitHub organization) maintains it in fair-acc/gnuradio4, which has 115 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 10, 2026.
Source: fair-acc/gnuradio4 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.