Skip to content
Development
Command

/pr

Prepare and open a pull request the senior way: gate, template, scrubbed, everything visible.

BOOST
From plugin
procoder
21130 skills30 commands2 hooks
Install
> /plugin marketplace add azrtydxb/procoder
> /plugin install procoder@procoder

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/pr

Context preview

What this command does when you run it.

Prepare and open a pull request the senior way: gate, template, scrubbed, everything visible.

Command definition

pr.md
description: "Prepare and open a pull request the senior way: gate, template, scrubbed, everything visible."

The user invoked /procoder:pr with arguments: $ARGUMENTS

The launcher for every procoder command below is: "${CLAUDE_PLUGIN_ROOT}/hooks/launcher.sh"

0. Read .procoder/github/WORKFLOW.md and follow it — the repo's rules win over this skill's defaults. If it is missing, get the default via `launcher.sh templates`, write it, then follow it. Default rule: feature work happens in a git worktree (one per branch/agent), never dirtying the default-branch checkout — if this work isn't in one yet, note it and keep the branch clean.

0b. If this branch closes a tracked issue, check whether a pull request is already open for it: `gh pr list --state open --search "<issue number>"`, and the issue's own timeline. Compare each result's head branch against this one. The only PR that is not a reason to stop is the one whose head IS this branch — push to that rather than opening a second one. Anything else, including your own older branch and an agent working under the same account, is somebody already on it: review theirs instead. A second PR for the same fix wastes the reviewer and, when the other one is a contributor's, costs the contributor.

1. Run `launcher.sh git` and `launcher.sh check`. Fix everything BLOCKING before going further — a PR that fails its own gate wastes the reviewer. The gate's `info` impact lines are the change's blast radius: open each referencing file it names and verify the change breaks nothing there (or run `launcher.sh index impact` for the full list). 2. Read the real diff (`git diff <default-branch>...HEAD`) and the commits. Summarise what actually changed, not what you remember intending.

2a. The docs-impact question — MANDATORY, answered in writing before the self-review: **"What does this change alter about what a reader must be told?"** Features change the story, not just the reference. Answer with either the list of pages updated (README narrative, docs site pages, the command reference) or the explicit sentence "no reader-visible change because <reason>". A PR without this answer does not get opened — docs lag was our longest-lived escaped-finding class, and mention-checks alone did not catch it (the gate's `README must mention` families are the mechanical floor, this question is the judgment ceiling).

2b. The pre-PR self-review — the first fresh pair of eyes is OURS, not the downstream reviewer's:

  • Read .procoder/github/REVIEW.md (missing → `launcher.sh templates`

prints the default; write it first).

  • Dispatch a FRESH-context reviewer subagent — not yourself; the

author's context hides the author's blind spots — with: the rubric verbatim, the branch diff, and the instruction to report findings as file:line, what breaks, and the fix, ending with a severity-counted verdict or exactly "Nothing found — open the PR."

  • Give that same agent the SECOND lens in the same pass, quoted from

/procoder:simplify the way the rubric is quoted: the five tags with their definitions, the one-line finding format `<file>:L<line>: <tag> <what>. <replacement>.`, the rule against inventing a finding, and the exact null result `Lean already. Ship.` Scope it to the DIFF — the repo sweep belongs to /procoder:release.

  • Report the simplify findings first, the correctness verdict last.
  • Fix every Critical/Important finding (commit them), decide each cut —

taking it or saying why not, P-CONTROL — re-run `launcher.sh check`, and only then continue. Downstream bot reviews are the fallback net — anything they catch later becomes a lesson (see /procoder:merge's reflection step).

3. Fill .procoder/github/PULL_REQUEST_TEMPLATE.md section by section from that diff. If the template is missing, get it via `launcher.sh templates`, write it, then fill it. 4. Write the drafted title and body to a temp file and run `launcher.sh scrub <file>`. It must say clean — no Co-Authored-By, no "generated with", nothing presenting the work as an AI's. Fix and re-scrub until clean. 5. Keep the title at 72 characters or fewer — it becomes the squash commit's subject and our own gate flags longer ones. 6. Show the user the final title and body BEFORE creating anything. 7. Create the PR with `gh pr create --title ... --body-file ...`. If gh is missing, run `launcher.sh init` first. 8. Hand off to /procoder:merge for the gates-and-reviews phase, or offer to run it now.

Read more
Ships withprocoder

Senior-developer discipline for AI coding agents. A commit gate that counts unchecked as failing, quality controllers that refuse to call unfinished work done, and a lessons loop that closes each escaped bug's class. One Go binary, no runtime deps, works with 20+ agents.

Get the whole plugin
Stats
210
Stars
17
Forks
Active
Maintenance
Go
Language
Apache-2.0
License
1d ago
Last commit
2mo ago
Created
5h ago
Added

Repo: azrtydxb/procoder

Other commands on procoder.

adr
Command

adr

Architecture decision records: durable decisions with their date, context, and consequences — supersede, never rewrite.

@azrtydxb@azrtydxbInstall Command