From github
Check CI status on a GitHub PR and detect new failures. Use when monitoring a PR for CI regressions, deciding if CI failures need attention, or building a review-response loop.
How this skill is triggered — by the user, by Claude, or both
Slash command
/github:check-pr-ci-statusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Check the CI check status on a GitHub pull request and detect whether any failures are new since the last check. This enables efficient CI monitoring — only act on new failures, not stale ones that were already addressed.
Check the CI check status on a GitHub pull request and detect whether any failures are new since the last check. This enables efficient CI monitoring — only act on new failures, not stale ones that were already addressed.
Use this skill when you need to:
gh CLI: Authenticated with gh auth loginresult=$(bash "${CLAUDE_PLUGIN_ROOT}/skills/check-pr-ci-status/check_pr_ci_status.sh" \
--repo owner/repo \
--pr 123)
result=$(bash "${CLAUDE_PLUGIN_ROOT}/skills/check-pr-ci-status/check_pr_ci_status.sh" \
--repo owner/repo \
--pr 123 \
--previous-failures "ci/prow/e2e-aws ci/prow/unit")
| Parameter | Required | Description |
|---|---|---|
--repo | Yes | GitHub repository in owner/repo format |
--pr | Yes | Pull request number |
--previous-failures | No | Space-separated check names that were failing on the last check |
JSON on stdout:
{
"failing_checks": [
{"name": "ci/prow/e2e-aws", "state": "FAILURE"},
{"name": "ci/prow/unit", "state": "FAILURE"}
],
"failing_count": 2,
"failing_names": "ci/prow/e2e-aws ci/prow/unit",
"has_new_failures": true,
"formatted": "- ci/prow/e2e-aws (FAILURE)\n- ci/prow/unit (FAILURE)"
}
The failing_names field is designed to be passed back as --previous-failures on the next call:
LAST_FAILURES=""
while true; do
sleep 300
result=$(bash "${CLAUDE_PLUGIN_ROOT}/skills/check-pr-ci-status/check_pr_ci_status.sh" \
--repo owner/repo --pr 123 --previous-failures "$LAST_FAILURES")
has_new=$(echo "$result" | jq -r '.has_new_failures')
if [[ "$has_new" == "true" ]]; then
formatted=$(echo "$result" | jq -r '.formatted')
echo "New CI failures detected:"
echo "$formatted"
# Address failures...
fi
LAST_FAILURES=$(echo "$result" | jq -r '.failing_names')
done
gh pr checks to get all check statuses--previous-failureshas_new_failures: true if the set of failing checks has changedA failure is considered "new" when the set of failing check names differs from --previous-failures. This means:
has_new_failuresIf --previous-failures is not provided, any failing check is considered new.
fetch-pr-comments — Fetch trusted PR review commentsupload-screenshot — Upload images to GitHub for PR commentsnpx claudepluginhub jluhrsen/ai-helpers --plugin githubCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.