/fix-pr
Autonomous PR fixing loop - iterates on CI failures and review comments until green
> /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.mdname: 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-failedImportant
- **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
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-failedImportant
- **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)
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.
Repo: bjcoombs/ai-native-toolkit
Other commands on ai-native-toolkit.
issues
GitHub-issue marathon - triage open issues, then run agent-ready ones to merge with Agent Teams
tm-marathon-config-exaโฆ
Example Marathon Configuration for CLAUDE.md - copy the section below into your project's CLAUDE.md
understand
Deep understanding mode (nemawashi) - exhaustive context-gathering before action

