Diagnose a failing GitHub Actions check by reading the real logs and finding the first true failure.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add SDSLeon/lightcode --skill ci-debug --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ci Debug?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sdsleon-ci-debug)More formats (shields.io, HTML) on the badges page.
---
name: ci-debug
description: "Diagnose a failing GitHub Actions check by reading the real logs and finding the first true failure."
---
# CI Debug
Find out why a check is failing, from evidence rather than from the check's name.
## Find the real failure
Start from the check run, get its job, and read the **log**. A job summary tells you something failed; the log tells
you what.
Scan for the _first_ failure, not the loudest one. A long red log is usually one root cause followed by cascading
noise — later errors are often just the same failure surfacing again downstream.
Note the step, the command, and the exact error text. Copy the error verbatim; do not paraphrase it into something
that sounds cleaner than it was.
## Separate the failure from the change
Before blaming the diff, check whether the same job fails on the base branch or on unrelated recent runs. Flaky and
pre-existing failures look identical to real ones in a single run.
Say explicitly which of these you concluded:
- the change caused it,
- it was already broken,
- it is flaky (and what evidence supports that),
- you could not tell from the available logs.
"I could not tell" is a legitimate answer. An invented root cause is not.
## Environment differences
When something passes locally and fails in CI, compare the things that actually differ: OS and runner image, tool and
dependency versions, environment variables and secrets, working directory, and whether the job runs against a merge
commit rather than the branch head.
## Fix and verify
Propose the narrowest fix that addresses the root cause. Re-run only the failed jobs when you can. If a re-run is
needed to confirm a flake, say that is what you are doing and why.
Do not re-run, cancel, or dispatch a workflow merely to gather more evidence unless the user authorized that GitHub
action. When a fix is local, run the closest equivalent check before asking CI to confirm it.
## Report
Lead with the root cause and the evidence line from the log. Then the fix. If the fix is unverified because CI has not
re-run yet, say so.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!