Borrowing it
Nothing to install: this file belongs to AlexanderMattTurner/agent-glovebox. 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/AlexanderMattTurner/agent-glovebox/main/.claude/skills/ci-triage/SKILL.mdgit clone --depth 1 https://github.com/AlexanderMattTurner/agent-gloveboxWrote 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/alexandermattturner/agent-glovebox/ci-triage)<a href="https://agentmods.dev/skills/alexandermattturner/agent-glovebox/ci-triage"><img src="https://agentmods.dev/badge/skills/alexandermattturner/agent-glovebox/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/alexandermattturner/agent-glovebox/ci-triage"><img src="https://agentmods.dev/badge/skills/alexandermattturner/agent-glovebox/ci-triage.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Data Exfiltration · line 112 Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.Fix: Verify the destination URL is trusted and necessary. Remove or replace with documented APIs. Ensure no secrets, tokens, or PII are transmitted.
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.00201 | $0.10074 |
| Opus 5.5 | $0.00080 | $0.04030 |
| Sonnet 5.5 | $0.00040 | $0.02015 |
| Haiku 4.5 | $0.00020 | $0.01007 |
Grade A, and why
ci-triage scanned grade A with 1 finding 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 yesterday.
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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
**The helper cannot run where `gh` is 403, and there is NO script route there** — `api.github.com` refuses a direct `curl` through the agent proxy with the same 403, token or no token, so nothing a script can call reache How it starts
The opening of the file, as written. The whole thing — 150 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Responding to a red check
The doctrine
A red check is a bug you have not diagnosed yet. Treat every failure as real and caused by the change in front of you until a read of the actual log proves otherwise. These dismissals are forbidden as opening assumptions: "infrastructure flake," "timeout," "unrelated," "pre-existing," "already broken on the base branch," "passes on my machine," "only fails on another OS/platform," "load," "transient," "not what I was asked." Each is a conclusion you must earn. "Flaky"/"external" is provable only by reading the log AND demonstrating the root cause is non-deterministic and outside the repo. A timeout/download/racy failure is a real defect (a test too slow, or one that guesses at an event under parallelism instead of waiting on it), yours to fix at the root.
"Flake" is NEVER a license to ignore, skip, mute, xfail, or merely re-run a failure. Proving something is a flake does not close it, it OBLIGATES a root-cause fix: pin the unstable input, or make the test wait on the event it needs through tests/_helpers.py's wait_until. A retry, a longer timeout or a fixed sleep only makes the red rarer (code-style.md). The one carve-out is a response that signals a transient state (429, 5xx): retry it through the shared owners, .github/scripts/_http_json.py and bin/lib/retry-github.bash, never a private loop. A flake, or any red your diff did not cause, is a SHARED failure under root CLAUDE.md § Autonomy's arm 2 even when it blocks your PR: run the ownership check below and reuse the existing repair. Only with no owner, fix it in its own fix(test):/fix(ci): commit; "it was already flaky" is not an exemption.
A red that reaches a SECOND round is itself a defect in the red-fixing process. One round closes a red: the round that diagnoses it also pushes its fix, or pushes a branch update (a commit, or one PR-body lead sentence) saying exactly why one round cannot — a fix only CI hardware can validate, an external service down. When a red reaches round two without that recorded reason, first name why round one's response failed — a fix built on an unverified belief about a dependency, a log read that stopped at the symptom, a "flake" left without its root-cause fix — then fix THAT in the same session: sharpen this skill, the babysit-prs skill, or the babysitting code under .github/scripts/, so the class lands first-round.
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.
- yesterday Changed 8f20f6a4b082
- 11d ago Changed 05bc1149241b
- 13d ago Changed 66415e535bc3
- 14d ago Changed bd0dfa6b0cc7
- 19d ago Changed 35e4d272ae98
- 20d ago Changed · +15 lines f5b8a52efd61
- 21d ago Changed 635e08803672
- 24d ago Changed c484d60f7108
- 25d ago Changed 03b0e063ebed
- 1mo ago First seen · 135 lines · 201 tokens per session scan A 9440e64bfb45
ci-triage is a skill published in the GitHub repository AlexanderMattTurner/agent-glovebox (68 stars, last pushed today), licensed Apache-2.0. It adds 201 tokens to every session and 10,074 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
repair-github-ci
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.
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, or missing outputs after a cache hit. Also covers pipeline hangs, tasks…
operating-github-ci-fixer
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.
gh-fix-ci
Use when a user asks to debug or fix failing GitHub PR checks that run in GitHub Actions; use gh to inspect checks and logs, summarize failure context, draft a fix plan, and implement only after explicit approval. Treat external providers (for example Buildkite) as out of scope and report only the details URL.