fix-pr — Claude Code skill: what it does, how to install
Handles PR feedback and blocking CI in one pass, then fixes code, commits, pushes changes, and posts replies in the discussion.
npx skills add prathamdby/skills --skill fix-pr -a claude-codeWhat fix-pr does
The skill syncs the local branch with the PR head SHA, then uses gh to gather unresolved threads, review comments, CI checks, and annotations. It reconciles the findings, assigns a verdict to each one, and edits code only after the collection is complete. Focused fixes get their narrow checks.
When there is a diff, the skill invokes commit, pushes the result, and verifies the remote SHA. It then posts replies through gh, keeping the original reply targets and bot prefixes. Options such as “do not push” and “do not reply” turn off those actions.
A dirty tree, auth failure, unsafe checkout, or closed PR blocks the run. Before GitHub I/O it requires ../gh/SKILL.md; before committing it requires ../commit/SKILL.md. Merge conflicts are outside its scope.
What it helps with
- collect every unresolved PR finding
- locate blocking CI checks and annotations
- classify findings as fixes or rejected claims
- run focused checks after code changes
- commit, push, and reply to review threads
Example prompts for the agent
- Handle the feedback and blocking CI for the current PR, fix confirmed issues, and push the result.
- Inspect the PR from its number or URL, but do not push changes or post replies.
- Collect all findings and checks, assign each a verdict, and give me the final report.
How to install fix-pr
1Skills CLI (Vercel)
npx skills add prathamdby/skills --skill fix-pr -a claude-code2Manually: put the files in place
~/.claude/skills/fix-pr/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/fix-pr/
1Skills CLI (Vercel)
npx skills add prathamdby/skills --skill fix-pr -a codex2Manually: put the files in place
.agents/skills/fix-pr/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add prathamdby/skills --skill fix-pr -a cursor2Manually: put the files in place
.cursor/skills/fix-pr/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install prathamdby/skills fix-pr2Manually: put the files in place
.github/skills/fix-pr/SKILL.md1Skills CLI (Vercel)
npx skills add prathamdby/skills --skill fix-pr -a gemini-cli2Platform CLI
gemini skills install https://github.com/prathamdby/skills --path skills/engineering/fix-prManually: put the files in place
.devin/skills/fix-pr/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add prathamdby/skills --skill fix-pr -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about fix-pr
How do I install fix-pr in Claude Code?
Run npx skills add prathamdby/skills --skill fix-pr -a claude-code, then check ~/.claude/skills/fix-pr/SKILL.md.
What does fix-pr do?
It gathers PR feedback and blocking CI in one pass, checks each finding, applies confirmed fixes, commits, and pushes them. It then replies in the discussion through gh.
What can block fix-pr?
A dirty tree, authentication failure, unsafe checkout, or a closed PR blocks execution. The skill also requires ../gh/SKILL.md and ../commit/SKILL.md.
Source text
SKILL.md · MIT
--- name: fix-pr description: > fix-pr to handle PR feedback and blocking CI in one pass; invokes gh and commit. --- # Fix PR ## Options and dependencies Default: current branch PR, push/replies on. PR number/URL selects it; "do not push"/"keep local" disables push; "do not reply" disables replies. Missing named values block. Before any GitHub I/O, verify and read `../gh/SKILL.md`; before committing, verify and read `../commit/SKILL.md`. Missing dependencies block with paths, not improvised replacements. ## 1. Synchronize Resolve repo, PR URL/number/base/head/remote SHA. Closed/missing PR, auth failure, dirty tree, or unsafe checkout blocks. Fetch, check out head, and fast-forward to remote SHA; never reset/force. Record `PR/SHA | push/replies | hunt counts/pages | finding/verdict/evidence | commit/push | native targets | terminal`. Done when local HEAD equals remote PR head and identity is fixed. ## 2. Hunt once Through gh, collect unresolved threads including outdated, every nested page, REST review-comment chains, actionable review bodies, conversation comments, and terminal non-success required/blocking head-SHA checks plus annotations. Use pr-threads --json --open --complete and ci-failures with PR/SHA. Apply every completeness/reconciliation rule in `references/hunt.md`; script exit alone proves neither REST roots nor required checks. No triage/edit before all six surfaces are complete. Normalize/deduplicate claims without losing native reply targets. Done when every page completes and each finding is recorded. Run this hunt once, not after edits/commit/push/reply. Later feedback or CI needs a new invocation; retrying one failed reply is not another hunt. ## 3. Triage and fix Trace every claim in surrounding source; reproduce where possible. Assign fix/reject/clarify/already-fixed with evidence, including skip reasons. No edits before all verdicts. Apply only fixes in focused clusters and run their narrowest checks; required failures block. Done when every finding has a verdict and every fix a verified diff, or no fix was needed. ## 4. Commit and push For a diff, discard earlier message drafts and invoke commit with unstaged scope. Commit owns all clean-room rules, including the conversation-only test and trailer hygiene in `../commit/REFERENCE.md`; repeat no alternative message policy here. Skip commit on clean tree. Push when enabled, verify remote SHA, never force; movement/rejection blocks. Push off leaves fixed findings AWAITING_PUSH. Recheck %B before push for rejected framing/unrequested trailers. Done when no diff exists or the verified commit is pushed; a local-only fix is not pushed success. ## 5. Reply and report With replies on, apply `references/replies.md` then `references/unslop-reply-drafts.md`. Consolidate shared parents, preserve bot prefixes, and post only through gh's reply script. Skip satisfied targets. An inline reply failure is not retried. Follow the pr-reply error and post that body on the main conversation. A main-conversation post that fails is refetched and retried once; another failure blocks. Fixed replies require a pushed SHA. Do not resolve unless explicitly asked and supported by a separately authorized operation. Report finding/verdict/action/evidence, URL, commit/push, hunt counts, and unreplied targets. Done when all authorized replies match their verdicts. Terminals: SUCCESS, NO_CODE_CHANGE, AWAITING_PUSH, BLOCKED. Never SUCCESS with an unsatisfied finding. A finding answered in its inline thread, or on the main conversation via fallback, is satisfied. Resume restarts Synchronize; no merge-conflict fixes.
© prathamdby · MIT · prathamdby/skills