Agent-skills gh-fix-ci
Use when a user asks to debug or fix failing GitHub PR checks that run in GitHub Actions. Uses `gh` to inspect checks and logs, summarize failure context, draft a fix plan, and implement only after explicit approval. Treats external providers (for example Buildkite) as out of scope and reports only the details URL. Do NOT use for addressing PR review comments (use gh-address-comments) or general CI outside GitHub Actions.
git clone https://github.com/tech-leads-club/agent-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/tech-leads-club/agent-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/packages/skills-catalog/skills/(tooling)/gh-fix-ci" ~/.claude/skills/tech-leads-club-agent-skills-gh-fix-ci && rm -rf "$T"
packages/skills-catalog/skills/(tooling)/gh-fix-ci/SKILL.mdGh Pr Checks Plan Fix
Overview
Use gh to locate failing PR checks, fetch GitHub Actions logs for actionable failures, summarize the failure snippet, then propose a fix plan and implement after explicit approval.
- If a plan-oriented skill (for example
) is available, use it; otherwise draft a concise plan inline and request approval before implementing.create-plan
Prereq: authenticate with the standard GitHub CLI once (for example, run
gh auth login), then confirm with gh auth status (repo + workflow scopes are typically required).
Inputs
: path inside the repo (defaultrepo
).
: PR number or URL (optional; defaults to current branch PR)pr
authentication for the repo hostgh
Quick start
python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"- Add
if you want machine-friendly output for summarization.--json
Workflow
- Verify gh authentication.
- Run
in the repo.gh auth status - If unauthenticated, ask the user to run
(ensuring repo + workflow scopes) before proceeding.gh auth login
- Run
- Resolve the PR.
- Prefer the current branch PR:
.gh pr view --json number,url - If the user provides a PR number or URL, use that directly.
- Prefer the current branch PR:
- Inspect failing checks (GitHub Actions only).
- Preferred: run the bundled script (handles gh field drift and job-log fallbacks):
python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"- Add
for machine-friendly output.--json
- Manual fallback:
gh pr checks <pr> --json name,state,bucket,link,startedAt,completedAt,workflow- If a field is rejected, rerun with the available fields reported by
.gh
- If a field is rejected, rerun with the available fields reported by
- For each failing check, extract the run id from
and run:detailsUrlgh run view <run_id> --json name,workflowName,conclusion,status,url,event,headBranch,headShagh run view <run_id> --log
- If the run log says it is still in progress, fetch job logs directly:
gh api "/repos/<owner>/<repo>/actions/jobs/<job_id>/logs" > "<path>"
- Preferred: run the bundled script (handles gh field drift and job-log fallbacks):
- Scope non-GitHub Actions checks.
- If
is not a GitHub Actions run, label it as external and only report the URL.detailsUrl - Do not attempt Buildkite or other providers; keep the workflow lean.
- If
- Summarize failures for the user.
- Provide the failing check name, run URL (if any), and a concise log snippet.
- Call out missing logs explicitly.
- Create a plan.
- Use the
skill to draft a concise plan and request approval.create-plan
- Use the
- Implement after approval.
- Apply the approved plan, summarize diffs/tests, and ask about opening a PR.
- Recheck status.
- After changes, suggest re-running the relevant tests and
to confirm.gh pr checks
- After changes, suggest re-running the relevant tests and
Bundled Resources
scripts/inspect_pr_checks.py
Fetch failing PR checks, pull GitHub Actions logs, and extract a failure snippet. Exits non-zero when failures remain so it can be used in automation.
Usage examples:
python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "123"python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "https://github.com/org/repo/pull/123" --jsonpython "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40