Skip to content
Development
Command

/fix-pr

Autonomous PR fixing loop - iterates on CI failures and review comments until green

From plugin
ai-native-toolkit
307 skills8 agents7 commands
Install
> /plugin marketplace add bjcoombs/ai-native-toolkit
> /plugin install ai-native-toolkit@ai-native-toolkit

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/fix-pr

Context preview

What this command does when you run it.

Autonomous PR fixing loop - iterates on CI failures and review comments until green

Command definition

fix-pr.md
name: fix-pr
disable-model-invocation: true
description: "Autonomous PR fixing loop - iterates on CI failures and review comments until green"
argument-hint: "[pr-number] (optional - derives from current branch if omitted)"

Fix PR Autonomously

Enter autonomous PR review loop for the current branch's PR. Loops until the PR is merge-ready across ALL criteria, not just CI.

---

What this does

Drive the current branch's PR to merge-ready across all six criteria, then stop for human review (this command does not auto-merge).

Use the pr-review-merge skill: it owns the 6 ready criteria, thread-resolution rules, shell pitfalls, base-sync-first, and the background CI watcher. Pass the current PR number (`gh pr view --json number --jq '.number'`) and the base branch (`gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'`), plus any bot rules from the project's Marathon Configuration.

---

Protocol

1. **Autonomous Loop** (DO NOT ask for permission between iterations):

  • Sync base branch, check all 6 criteria, fix issues, push
  • Report: "Iteration N: Fixed X issues" or "Iteration N: Waiting for CI"
  • Loop until all green

2. **Stop when ALL 6 criteria met**:

  • Report: "PR #X: All criteria met, ready for human review"
  • Include status footer
  • STOP

3. **Only ask for help if**:

  • Genuinely blocked (ambiguous merge conflict, unclear review feedback)
  • After 5+ iterations with no progress
  • Need design decision from user

Example Output

๐Ÿ”„ Iteration 1: Checking PR #123...
   โš ๏ธ Merge conflict with base branch in App.tsx โ€” resolving (accept both sides)
   โŒ CI: TypeScript errors in user.service.ts
   โŒ CodeRabbit: 2 unresolved threads (missing error handling)
   Fixing...

๐Ÿ”„ Iteration 2: Checking PR #123...
   โœ… In sync with base branch
   โœ… CI passing
   โŒ CodeRabbit: 1 remaining thread (async pattern)
   Fixing...

๐Ÿ”„ Iteration 3: Checking PR #123...
   โœ… In sync with base branch
   โœ… CI passing
   โœ… All threads resolved
   โœ… No unaddressed comments

โœ… PR #123: All 6 criteria met, ready for your review!

---
## ๐Ÿ“ Current Work

๐Ÿ”— **PR**: #123 - Add payment processing
   https://github.com/org/repo/pull/123

๐Ÿ“Š **Latest**: All criteria met after 3 iterations

Commands Reference

# Get PR info
gh pr view --json number,title,statusCheckRollup

# CI failures
gh pr checks <number> --json name,conclusion | jq '.[] | select(.conclusion == "FAILURE")'

# Unresolved threads (GraphQL โ€” most reliable)
gh api graphql -f query='...'

# Inline comments (REST fallback)
gh api repos/{owner}/{repo}/pulls/<number>/comments | jq '[.[] | select(.user.login | test("bot"; "i"))]'

# Conversation
gh pr view <number> --comments

# Failed CI logs
gh run view <run-id> --log-failed

Important

  • **NO permission needed** between iterations - keep looping autonomously
  • **Sync base branch FIRST** every iteration - prevents cascade conflicts
  • **Stop criteria**: ALL 6 criteria green (not just CI + comments)
  • **Max iterations**: 10 (ask for help after that)
Read more
Ships withai-native-toolkit

A Claude Code plugin - and a set of standalone skills for any AI assistant: skills, agents, and commands for AI-native development. In Claude Code it runs locally against your own codebase using whichever model you already pay for.

Get the whole plugin

Other commands on ai-native-toolkit.