Borrowing it
Nothing to install: this file belongs to syndicalt/zaxy. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/syndicalt/zaxy/master/.claude/skills/ci-triage/SKILL.mdgit clone --depth 1 https://github.com/syndicalt/zaxyWrote 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.
[](https://agentmods.dev/skills/syndicalt/zaxy/ci-triage)<a href="https://agentmods.dev/skills/syndicalt/zaxy/ci-triage"><img src="https://agentmods.dev/badge/skills/syndicalt/zaxy/ci-triage/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/syndicalt/zaxy/ci-triage"><img src="https://agentmods.dev/badge/skills/syndicalt/zaxy/ci-triage.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00079 | $0.01400 |
| Opus 5 | $0.00039 | $0.00700 |
| Sonnet 5 | $0.00016 | $0.00280 |
| Haiku 4.5 | $0.00008 | $0.00140 |
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.
How it starts
The opening of the file, as written. The whole thing — 103 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CI triage for zaxy
CI jobs: lint (ruff+mypy), test (3.11/3.12/3.13) (pytest + coverage ratchet on
3.13 only), integration (Neo4j docker), web (astro build + link gate),
package. The authority is CI, not local runs — this machine has known quirks.
1. Identify what actually failed (per-SHA, not "latest")
gh run list --branch <branch> --workflow CI --limit 3 --json databaseId,headSha,conclusion,status
git rev-parse HEAD # match headSha — a green run for an older SHA proves nothing
gh run view <RUN_ID> --json jobs -q '.jobs[] | "\(.conclusion)\t\(.name)"'
Never pipe gh pr checks through awk/cut column hacks to decide a merge.
Job names contain spaces (test (3.13)), so column extraction shows name
tokens where you expect statuses — a red matrix once read as green this way
and got merged (the 2026-07-06 doctor-map incident). Before any merge, read
the FULL untruncated table and require every row to literally say pass:
gh pr checks <N> with no pipeline.
Beware fail-fast collateral: matrix jobs showing cancelled were killed by a
sibling's failure — they are not independent failures. Find the job that says
failure, fix it, and the cancelled ones usually follow.
2. Fetch failure logs (the incantation that works)
gh run view --log-failed is unreliable for grep. Download the job log raw:
jid=$(gh run view <RUN_ID> --json jobs -q '.jobs[] | select(.name=="test (3.13)") | .databaseId')
gh api "repos/<owner>/<repo>/actions/jobs/$jid/logs" > /tmp/job.txt
grep -aE 'FAILED tests/|short test summary|[0-9]+ failed|Coverage ratchet' /tmp/job.txt | tail -30
(-a: logs contain binary escape bytes. If the tail only shows "operation was
canceled", it's collateral — go find the real failing job.)
3. Reproduce locally — with the local quirks
ruff check src tests zaxy_benchmarks
mypy src zaxy_benchmarks
pytest -m "not integration" --no-cov -q -p no:randomly \
--ignore=tests/test_doctor.py --benchmark-disable
tests/test_doctor.pyhangs/segfaults locally (ladybug native lib); it is fine in CI. Always exclude it locally; never "fix" it locally.--benchmark-disableor the output drowns in perf tables.- A native segfault mid-suite is an environment/store problem, not the code — see
the
store-doctorskill before chasing ghosts.
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.
- 8d ago First seen · 103 lines · 79 tokens per session scan A da4eacf2a9b8
ci-triage is a skill published in the GitHub repository syndicalt/zaxy (17 stars, last pushed 29d ago), licensed MIT. It adds 79 tokens to every session and 1,400 once invoked, about $0.0004 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-30.
Other skills, from other repositories
debug-ci
Use when CI/CD pipeline fails. Provides systematic diagnosis for lint, type, test, and build failures across Python, TypeScript, Java, Rust, and n8n SDKs.
mcore-create-issue
Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.
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…
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.
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.
meta-long-running-build-watchdog
Watches a long-running command via tmux, lets sub-agent diagnose failures and propose a fix, and records the diagnosis to memory. Designed for overnight model fine-tunes, CI image builds, or repeated regression suites that may fail intermittently.