diagnose-ci-67bebe — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited diagnose-ci-67bebe (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Project-agnostic, global skill. It fetches the latest GitHub Actions failure logs, reproduces the failure locally, classifies the root cause, proposes a concrete fix, and — after approval — applies it and offers to re-trigger CI via commit + push.
It is the operational companion to $setup-ci: that skill builds the pipeline; this one keeps it green.
Identifying the failure class first prevents wasted effort — the remediation is completely different for each class:
| Class | Signals | Remedy |
|---|---|---|
| Code bug | assertion error, compile error, lint error in a source file | fix the code |
| Flaky test | same job failed intermittently across unrelated commits | quarantine test or add retry |
| Infra / config | "rate limit", "connection refused", "secret not found", "runner", "out of disk", "timeout" in system-level output | fix workflow config, rotate secret, re-run |
| Matrix-specific | fails on one version/OS cell, passes on others | version-specific code or env issue |
| Stale dependency | lock-file mismatch, registry error, version range now broken | update dependency or pin version |
Always classify first; never jump to fixing code when the failure is infra.
gh auth status. If not authenticated, tell the user to run gh auth login(or ! gh auth login to run it in this session), then stop — do not proceed until auth is confirmed.
gh run list --branch $(git rev-parse --abbrev-ref HEAD) --limit 5 to get recentruns on the current branch.
gh run view <run-id> --log-failed to get the pre-filtered failure output.error message (last meaningful non-blank lines of that step's output).
instruction: "extract the job name, failing step, and the first and last error lines from this CI log; ignore setup/teardown noise."
Apply the taxonomy above. Gather supporting evidence in parallel:
gh run list --workflow <file> --limit 20 --json conclusion,headSha— if the same job shows non-consecutive failures on different SHAs, flag as likely flaky.
vs. passed.
State the classification clearly before proceeding: "This looks like a [class] failure because [evidence]."
For code bug and stale dependency failures only:
gh run list --workflow <file> --status success --limit 1 --json headShagit log --oneline <last-green-sha>..HEAD to see what changed since green..github/workflows/<file>) to find the exact run: commandof the failing step.
does not — that itself is diagnostic: environment divergence).
different runtime version, CI-only secret, or OS difference.
Present a structured diagnosis before proposing anything:
Job: <job name>
Step: <step name>
Error: <error message>
Class: <Code bug | Flaky | Infra | Matrix-specific | Stale dependency>
Cause: <one-sentence root cause>
Commit: <sha and subject, if diff-aware narrowed it down>Propose a concrete, targeted remedy matched to the failure class:
inline for approval.
test should be fixed properly later.
YAML) and offer to make workflow changes if applicable.
Show the proposed change and wait for explicit approval. Do not apply without it.
After approval:
commit skill (hand off with the diagnosis as context for thecommit message body) and push to re-trigger CI.
gh run watch — the user can cancel at any timewith Ctrl-C.
to the wrong remedy.
without confirmation.
never fabricate secret values or assume what they should be.
decline and name the right tool.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.