Inspect and fix failing GitHub Actions PR checks using gh logs and focused validation; report external-provider failures with their details URL.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add seaworld008/Commonly-used-high-value-skills --skill gh-fix-ci --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Gh Fix Ci?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/seaworld008-gh-fix-ci)More formats (shields.io, HTML) on the badges page.
---
name: gh-fix-ci
description: 'Inspect and fix failing GitHub Actions PR checks using gh logs and focused validation; report external-provider failures with their details URL.'
zh_description: "读取 GitHub Actions 失败日志,修复 CI 并验证 PR 检查。"
version: "1.0.1"
author: "seaworld008"
source: "in-house"
source_url: ""
tags: '["automation", "fix", "workflow"]'
created_at: "2026-03-04"
updated_at: "2026-09-06"
quality: 3
complexity: "intermediate"
---
# Gh Pr Checks Plan Fix
## Overview
Use gh to locate failing PR checks, fetch GitHub Actions logs for actionable failures, summarize the failure snippet, then explain the focused fix and implement within the existing request.
- A request to fix CI authorizes routine diagnosis, code changes, and relevant tests. Ask only when the fix requires a material scope change or unavailable authority.
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
- `repo`: path inside the repo (default `.`)
- `pr`: PR number or URL (optional; defaults to current branch PR)
- `gh` authentication for the repo host
## Quick start
- `python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "<number-or-url>"`
- Add `--json` if you want machine-friendly output for summarization.
## Workflow
1. Verify gh authentication.
- Run `gh auth status` in the repo.
- If unauthenticated, ask the user to run `gh auth login` (ensuring repo + workflow scopes) before proceeding.
2. 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.
3. 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 `--json` for machine-friendly output.
- 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`.
- For each failing check, extract the run id from `detailsUrl` and run:
- `gh run view <run_id> --json name,workflowName,conclusion,status,url,event,headBranch,headSha`
- `gh 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>"`
4. Scope non-GitHub Actions checks.
- If `detailsUrl` is not a GitHub Actions run, label it as external and only report the URL.
- Do not attempt Buildkite or other providers; keep the workflow lean.
5. Summarize failures for the user.
- Provide the failing check name, run URL (if any), and a concise log snippet.
- Call out missing logs explicitly.
6. Create a plan.
- State the cause, affected files, and validation needed; reuse existing plans.
7. Implement the requested fix.
- Apply the focused patch and continue through the already authorized PR delivery path.
8. Recheck status.
- Run the relevant tests, then inspect `gh pr checks` for the current PR head.
## 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" --json`
- `python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --max-lines 200 --context 40`
## Example Command Sequence
```bash
gh auth status
gh pr view --json number,url
python "<path-to-skill>/scripts/inspect_pr_checks.py" --repo "." --pr "123" --json
gh run view <run_id> --log
```
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!