Agent skill

PR Ready

by OutThisLife in OutThisLife/brooklyn-skills

Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human).

MITAuto-check passedTesting & QA

Install PR Ready

skills CLI
$ npx skills add OutThisLife/brooklyn-skills --skill pr-ready -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OutThisLife/brooklyn-skills pr-ready --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OutThisLife/brooklyn-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/pr-ready .claude/skills/pr-ready && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pr-ready
GitHub stars
199
Token cost
~2.5k tokens
SKILL.md length
1,337 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
MIT

At a glance

Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human).

  • Works in 8 steps: Find the worktree for this PR (or create… → git fetch origin (usually main). → Honor repository history rules before… → …
  • Address the reviews
  • SKILL.md covers Rebase + CI, CI-only failures, Interrupted repairs and Review threads, plus 5 more sections
  • Calls gh, git and glab

What it does

PR Ready is an agent skill from OutThisLife/brooklyn-skills. Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human). Use for "rebase on main", "make CI green", "fix CI/CD", "address the reviews", "address Copilot", "review-loop", or "get this mergeable".

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Failing and flaky tests and Git workflow. The repository describes itself as: Skills that drive best-in-class engineering. The licence is MIT.

When your agent uses it

  • Address the reviews
  • Address Copilot
  • Get this mergeable

Example prompts

  • “rebase on main”
  • “make CI green”
  • “fix CI/CD”
  • “/pr-ready”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Find the worktree for this PR (or create one per repo convention). Prefer an
  2. git fetch origin (usually main).
  3. Honor repository history rules before choosing an update strategy. Where force pushes are forbidden or the user requires a merge, merge…
  4. Push (--force-with-lease if the rebase rewrote history).
  5. Watch CI. Fix **failures caused by the rebase or existing breakage on this
  6. Flaky upstream on the default branch → say so. Don't paper over it with
  7. Verify process.execPath in the same execution mode as MR tests, using the repository's package manager. Background login shells can…
  8. For merge commits, old lint-staged hooks can autoformat every upstream file in the index. Run lint on the PR delta and the repository…

What it can do on your machine

Read from SKILL.md and the folder at commit 8a97904. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • gh
    • git
    • glab
    • jest

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, git and glab, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

PR Ready loads about 2.5k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,337 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~75
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OutThisLife/brooklyn-skills at commit 8a97904, republished under its MIT licence (© OutThisLife). 1,337 words, ~2,483 tokens.

Download SKILL.mdSave it as .claude/skills/pr-ready/SKILL.md (or your agent's skills folder).
name
pr-ready
description
Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human). Use for "rebase on main", "make CI green", "fix CI/CD", "address the reviews", "address Copilot", "review-loop", or "get this mergeable".

PR Ready

An open PR/MR isn't mergeable. Two things block it — a stale base or red CI, and open review threads. Same loop for both: fix, push, re-query the forge, repeat. Handle whichever is blocking; usually that's both.

No feature work. No drive-bys.

Rebase + CI

  1. Find the worktree for this PR (or create one per repo convention). Prefer an existing worktree the user already has.
  2. git fetch origin <default> (usually main).
  3. Honor repository history rules before choosing an update strategy. Where force pushes are forbidden or the user requires a merge, merge origin/<default> into the existing branch without rewriting commits. Otherwise rebase onto origin/<default>. Resolve conflicts by reading both sides' intent and regression tests; shared callback code must preserve newer callback-once behavior as well as the PR's guards.
  4. Push (--force-with-lease if the rebase rewrote history).
  5. Watch CI. Fix failures caused by the rebase or existing breakage on this branch — nothing else.
  6. Flaky upstream on the default branch → say so. Don't paper over it with unrelated test deletes.
  7. Verify process.execPath in the same execution mode as MR tests, using the repository's package manager. Background login shells can replace an earlier PATH export, so select the project's declared Node version inside the launched command. A newer runtime can shadow happy-dom localStorage or remove util.isDate; rerun unchanged failing tests under the supported runtime before editing application code.
  8. For merge commits, old lint-staged hooks can autoformat every upstream file in the index. Run lint on the PR delta and the repository precommit checks explicitly, preserve upstream files, and document any one-command hook bypass used solely to prevent unrelated formatting. Never call that bypass a substitute for verification. Do not assume HUSKY_SKIP_HOOKS=1 is honored: inspect the hook output. Legacy hook git add can also include unstaged edits to already-staged files. Reconcile the resulting commit against the pre-merge PR file set plus intended fixes, and restore unrelated suppression-file pruning rather than publishing incidental changes.
  • Unset npm_config_prefix on MR commit processes as well as test processes so Husky’s nvm hook can select Node 18. If legacy lint-staged concurrently runs git add for JS and Vue groups and races on index.lock, first verify the lock has disappeared and review the staged diff. Split the staged extension groups into additive commits if needed; do not delete a live lock, rewrite published history, or bypass the hooks to hide the race.

CI-only failures

  • Distinguish a V8 heap-limit abort from a container OOM before changing CI resources. Measure the failing typecheck with the supported runtime and extended diagnostics, then verify a bounded heap override scoped to that job; keep the typecheck enabled.
  • Reproduce repository-wide duplicate scans against a tracked git archive snapshot, not a working tree full of local build output. Attribute clones before changing configuration. Machine-generated API artifacts should be regenerated and drift-checked, not manually deduplicated; preserve the authored-code threshold when excluding those artifacts.
  • Verify the package script's actual scope before calling a run the full backend suite. A package's test script may run unit tests only, while exec jest --runInBand exercises every configured Jest project. Require the completed project/suite summary, not a partial log.

Interrupted repairs

  • Reconcile the current remote head, worktree diff, and saved test evidence before resuming an interrupted repair. Preserve an existing merge and relevant uncommitted fixes; do not repeat a repair already pushed by another worker. A partial test log without a completed runner summary is not a pass.
  • When a merge exposes tests for deliberately deleted files, verify the deletion commit and remaining production references before retiring those assertions. Keep active replacement coverage and record the before/after failure evidence; do not restore retired application code or delete unrelated tests merely to turn CI green.

Review threads

  1. Commit/push any unpushed work first (ask if the message is unclear).
  2. List open/unresolved inline comments + review bodies.
  3. Want a bot pass? Request the repo's review bot, then wait for it — don't spin forever; if it's stuck ~10–15m, say so. A Claude comment explaining how to request a manual review is not a completed review. When actual AI review is requested, trigger it for each PR/base and verify the submitted review matches that PR's current head. Inspect the check's title/body: a neutral clean review with an explicit no-issues result differs from a neutral worker result with zero turns and no review. Keep those outcomes separate. A managed Claude review and the legacy Claude GitHub Action can both react to one mention. If the legacy action fails but the managed review completes, reply with both exact run/review links; do not call the failed action successful or blindly rerun both services.
  4. Per comment: valid → fix and resolve. Wrong or outdated → short reply and resolve. Nit out of scope → ask once. Never resolve a #1 maintainer comment without fixing it or an explicit override (pr-triage).
  5. Push (pr-update if they want the commits split).
  6. Repeat until unresolved threads are gone, or only ones they OK'd deferring.
Show full SKILL.md (510 more words)Show less

Large visual assets in a review

  • Measure lossless conversion with the existing image tooling before promising a size reduction. Compare decoded RGBA bytes and dimensions, preserve color metadata, and inspect the rendered article on desktop/mobile. Keep source provenance URLs unchanged and map only the optimized local targets; test every corpus image against both local and immutable-release asset bases rather than widening CSP to hide missing vendoring.
  • Distinguish final-tree/browser savings from Git-history savings. An additive optimization leaves old blobs in ancestry; recommend a separately authorized squash merge when appropriate, never claim the history was reduced or delete preserved prototype branches.
  • Persist the paginated review inventory and per-thread reply/fix evidence to a local JSON ledger. Large gh output can be truncated through tool wrappers; redirect API JSON to disk before parsing, and verify unresolved counts against every page before handoff.

Done when

Re-query the forge — don't trust that a push turned CI green or that a reply resolved a thread. Fail closed: any red check or open thread means you're not done.

  • Confirm the PR API head matches the pushed SHA before attributing checks to it. Git refs can update before the PR API catches up; read the remote ref and retry the PR query rather than treating the preceding head's checks as current.
  • Inventory inline threads again after local verification, not only before it. Bot reviews may arrive while tests run; persist every page, reply with the fixing commit, then read back resolution and the exact reply.
  • Validate every explicit test path before a focused Vitest run, and compare its final file count with the requested set. Vitest can return exit 0 after running only the matching subset when one supplied path is wrong; a green exit alone does not prove all requested files ran.
  • Distinguish an advisory workflow's green wrapper from its underlying lint findings. Verify a focused additive fix against its immediate parent when the whole PR has known advisory debt, and report both scopes without widening into unrelated cleanup.

Report the branch tip, checks status, and a short fixed-vs-replied summary.

Urgent preview handoff

  • Freeze audit scope when the user prioritizes publication. Publish completed, authorized work before more exploratory checks; address only actual build/CI blockers afterward.
  • Trace the exact requested route to its unpublished dependencies before pushing. A successful deployment without the new article/feed code does not satisfy a requested URL. Verify that exact deployed URL returns the intended content, not merely HTTP 200 or a ready build.
  • Reconcile shared-worktree ownership explicitly. Preserve another worker's changes until authorized; once the user authorizes publishing the remaining work, include its required server modules, dependencies, asset policy and environment declarations together. Never include actual credential files.
  • On delegation failure, reconcile partial edits immediately, especially red tests without their implementation. Report published, locally complete and unfinished work separately; test counts are not shipment status.

Scope lock

  • No refactors, restyles, or "while I'm here" fixes.
  • Don't expand the PR description or supersede unless asked (pr-update).
  • Wrong-premise PR that needs salvage → stop and say so, hand off to pr-triage. Don't silently rewrite it.

Forge cheatsheet

bash
# GitHub — CI
gh pr view <N> --json url,headRefName,baseRefName,statusCheckRollup
gh pr checks <N>

# GitHub — threads
gh api repos/{owner}/{repo}/pulls/<N>/comments --jq '.[] | {user:.user.login,path,line,body:(.body[:200])}'
gh api repos/{owner}/{repo}/pulls/<N>/reviews  --jq '.[] | {user:.user.login,state,body:(.body[:200])}'
gh api repos/{owner}/{repo}/pulls/<N>/comments -f body='…' -F in_reply_to=<comment_id>
gh pr edit <N> --add-reviewer copilot   # if that's what the repo uses

# GitLab
glab mr view <N>
glab ci status
glab mr note <N>        # + the discussions API for resolve

© OutThisLife, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/pr-ready of OutThisLife/brooklyn-skills.

Open the folder on GitHubat commit 8a97904

Compare with similar skills

PR Ready next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

PR Ready compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
PR Ready this skillOutThisLife/brooklyn-skills199—~2.5kAutomated safety check: PassMIT
Make Git Escrowinternet-court/internet-court-skill6.4k2 repos~922Automated safety check: NotesMIT
Bisect Aware InstrumentationArabelaTso/Skills-4-SE253—~2kAutomated safety check: PassApache-2.0
Git Bisect AssistantArabelaTso/Skills-4-SE253—~1.2kAutomated safety check: PassApache-2.0
TiDB Test Diff Triagepingcap/tidb41k—~498Automated safety check: PassApache-2.0
Git Upstream Syncwado-lang/wado117—~855Automated safety check: PassMIT

Similar skills

  • Make Git Escrow

    internet-court/internet-court-skill

    Create a new git escrow bounty for a test suite. An agent skill from internet-court/internet-court-skill.

    6.4k GitHub starsUsed in 2 repos~922 tokens
    Testing & QAAuto-check: notes
  • Bisect Aware Instrumentation

    ArabelaTso/Skills-4-SE

    Instrument code to support efficient git bisect by producing deterministic pass/fail signals and concise runtime summaries for each tested commit.

    253 GitHub stars~2k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Git Bisect Assistant

    ArabelaTso/Skills-4-SE

    Automatically performs git bisect to identify the first bad commit that introduced a bug or failure.

    253 GitHub stars~1.2k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Investigates TiDB plan or test-result diffs that the change does not explain, ruling out failpoint setup and merge effects before expected outputs are updated.

    41k GitHub stars~498 tokensUpdated today
    Testing & QAAuto-check passed
  • Git Upstream Sync

    wado-lang/wado

    The only way to merge origin/main into a branch, conflicts or not.

    117 GitHub stars~855 tokensUpdated today
    DevelopmentAuto-check passed
  • Gh Fix CI

    akiojin/unity-cli

    Inspect GitHub PR for CI failures, merge conflicts, update-branch requirements, reviewer comments, change requests, and unresolved review threads.

    107 GitHub stars~4.6k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from OutThisLife/brooklyn-skills

All 22 skills in this repo
  • Draft Tweet

    OutThisLife/brooklyn-skills

    Draft X/Twitter posts about shipped work. An agent skill from OutThisLife/brooklyn-skills.

    199 GitHub stars~456 tokensUpdated 2 days ago
    Auto-check passed
  • Free Disk Space

    OutThisLife/brooklyn-skills

    Safely reclaim disk space on macOS without touching personal or agent data.

    199 GitHub stars~433 tokensUpdated 2 days ago
    Auto-check passed
  • List Open Work

    OutThisLife/brooklyn-skills

    List my open MRs/PRs in the current repo/worktree, each with its tracker ticket.

    199 GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check passed
  • PR Triage

    OutThisLife/brooklyn-skills

    Maintainer triage on OTHER people's PRs/MRs — verdict of approve, supersede, or close, salvage with credit, close the cluster.

    199 GitHub stars~4.7k tokensUpdated 2 days ago
    Auto-check passed
  • PR Update

    OutThisLife/brooklyn-skills

    Open a PR/MR if missing, or refresh an existing one's title and description so they match the current diff.

    199 GitHub stars~1.3k tokensUpdated 2 days ago
    Auto-check: notes
  • Work

    OutThisLife/brooklyn-skills

    Kick off a task in a fresh isolated git worktree instead of the current checkout.

    199 GitHub stars~858 tokensUpdated 2 days ago
    Auto-check passed

Questions about PR Ready

What does PR Ready do?

Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human). PR Ready is an agent skill from OutThisLife/brooklyn-skills. Clear everything blocking an existing PR/MR from merging — rebase onto the default branch, get CI green, and resolve review threads (Copilot and human).

When should I use PR Ready?

PR Ready fits situations like: address the reviews; address Copilot; get this mergeable.

How do I install PR Ready in Claude Code?

Run `npx skills add OutThisLife/brooklyn-skills --skill pr-ready -a claude-code`. Or copy the skill folder (skills/pr-ready in OutThisLife/brooklyn-skills) into .claude/skills/pr-ready in your project. Claude Code loads it when a task matches its description.

How do I install PR Ready in Codex?

Run `npx skills add OutThisLife/brooklyn-skills --skill pr-ready -a codex`. Or copy the skill folder (skills/pr-ready in OutThisLife/brooklyn-skills) into .agents/skills/pr-ready in your project. Codex loads it when a task matches its description.

Can I use PR Ready in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OutThisLife/brooklyn-skills --skill pr-ready -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pr-ready, .gemini/skills/pr-ready, .github/skills/pr-ready and .opencode/skills/pr-ready in your project.

What does PR Ready need to run?

Going by SKILL.md and its folder, PR Ready needs the command-line tools its instructions call (gh, git, glab and jest).

Does PR Ready access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is PR Ready safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does PR Ready use?

PR Ready is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does PR Ready use?

About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to PR Ready?

Skills that share tags, products or a category with PR Ready: Make Git Escrow (internet-court/internet-court-skill, 6.4k stars), Bisect Aware Instrumentation (ArabelaTso/Skills-4-SE, 253 stars), Git Bisect Assistant (ArabelaTso/Skills-4-SE, 253 stars) and TiDB Test Diff Triage (pingcap/tidb, 41k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains PR Ready?

OutThisLife (a GitHub user) maintains it in OutThisLife/brooklyn-skills, which has 199 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.

Source: OutThisLife/brooklyn-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.