# PR Improver

Runs an autonomous review-and-fix improvement loop over the current branch's changes...

- Repository: https://github.com/trailofbits/skills (7935 stars)
- Category: Git and review
- License: CC-BY-SA-4.0
- Last updated: 2026-10-28
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add trailofbits/skills --skill pr-improver -g -a claude-code -y`
Codex: `npx skills add trailofbits/skills --skill pr-improver -g -a codex -y`
Cursor: `npx skills add trailofbits/skills --skill pr-improver -g -a cursor -y`
Gemini CLI: `npx skills add trailofbits/skills --skill pr-improver -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add trailofbits/skills`

## Description

Runs an autonomous review-and-fix improvement loop over the current branch's changes until a PR review comes back clean, scoped mechanically to the directories the branch touched. Reviews are performed by an installed PR-review skill (default: pr-review-toolkit's review-pr). Use to fix review findings on a branch before opening or updating a pull request ('clean up this branch', 'fix this PR until review passes', 'run review-and-fix on my changes'). NOT for a one-time review, run the PR-review skill directly.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# PR Improver

Improve the current branch by running `/code-improver:improve`, a dynamic workflow that
loops a PR reviewer and a fixer subagent over the branch's changes until a review
reports zero critical/major findings. The loop, its ledger, and its guards live in the
workflow; this skill derives the scope from the branch diff and relays the outcome.

## Starting the loop

The user provided: `$ARGUMENTS` (if empty, take base branch and preferences from the
conversation).

### 1. Resolve the branch and its change surface

1. Repo root: `git rev-parse --show-toplevel`. Fail loudly outside a repository.
2. Base: the argument if given, else the repository's default branch
   (`git symbolic-ref refs/remotes/origin/HEAD` → its short name, falling back to
   `main`). Refuse to run when the current branch IS the base, there is no diff to
   improve.
3. Changed files: `git diff --name-only <base>...HEAD`. If empty, say so and stop.
4. Scope: the changed files' **directories**, widened, per-file globs are too tight
   (PR fixes legitimately add tests next to changed code). Map each changed file to its
   repo-relative directory glob `<dir>/**` (`**` at the repo root only if files at the
   root changed), then deduplicate and drop globs covered by another.

### 2. Resolve the loop script

Resolve [`improve.js`](../../workflows/improve.js) from this SKILL.md's installed location
to an absolute path and confirm the file exists. Its plugin directory is `pluginRoot`.
Use this exact plugin copy; if the file is missing, stop.

### 3. Invoke the workflow

Run it with the Workflow tool, `{scriptPath: "<the path from step 2>", args: {...}}`:

The rest: https://github.com/trailofbits/skills/blob/HEAD/plugins/code-improver/skills/pr-improver/SKILL.md
