Files

scripts/shortcuts/review

Helpers for working through PRs on this repo. Runnable directly — no zshrc integration needed.

Script What it does
sync.sh Fetch PR head, check out as pr/<num>, merge main, wire push/upstream.
review.sh sync + hand off to the pr-reviewer agent to review, comment, and approve.
fix.sh sync + pr-reviewer (apply fixes) + pr-manager-lite (commit & push).
coverage.sh sync + gather coverage CI context + agent to fix coverage, push, babysit checks.
merge.sh LLM-summarized squash body + filtered Co-authored-by trailers + gh pr merge.

LLM flags

  • review / fix / coverage: --agent <tool> (default claude). Picks the CLI that drives the agent prompt. An optional trailing positional <extra-prompt> is appended verbatim to the agent's prompt (e.g. pnpm review fix 123 "focus on the retry logic").
  • merge: --summary-llm <tool> (default gemini). The LLM that condenses the PR body + commit messages into a concise squash commit body. Use --summary-llm none to skip summarization and keep the raw PR body.

Any tool that accepts -p "<prompt>" and prints its response to stdout works.

Usage

Via pnpm (preferred):

pnpm review sync 123
pnpm review review 123
pnpm review fix 123
pnpm review coverage 123
pnpm review merge 123              # --squash
pnpm review merge 123 --rebase
pnpm review --help

Or invoke the scripts directly:

scripts/shortcuts/review/sync.sh 123
scripts/shortcuts/review/review.sh 123
scripts/shortcuts/review/fix.sh 123
scripts/shortcuts/review/coverage.sh 123
scripts/shortcuts/review/merge.sh 123

Config

  • Repo is derived from the upstream remote (falls back to origin). Override with REVIEW_REPO=owner/name.
  • REVIEW_BANNED_COAUTHOR_RE overrides the substring regex used to drop Co-authored-by: entries (default filters copilot / codex / cursor / claude / anthropic / openai / chatgpt / [bot] / noreply@github / users.noreply.github.com; matched case-insensitively on name or email).
  • Requires git, gh, jq. review / fix / coverage also require the agent CLI (default claude); merge also requires the summary LLM CLI (default gemini) unless --summary-llm none.