Run It
1
Pick an open issue
You need the issue number. The issue does not have to be perfect, but the more precisely it states the outcome you want, the closer the result lands. See Create an Issue for how PRFlow writes one.
2
Start the run
In Claude Code:Or, if you installed the cloud tier, leave this as a comment on issue 123 itself:The comment form works on an issue only, not on a pull request. Only a comment body triggers a run, so a command written in the issue description starts nothing.
3
Watch the workpad
Within a minute or two, a comment appears on the issue. This is the workpad: the single place the run records what it is doing. It is created before any code is written and updated in place for the rest of the run.
4
Read the result
The run ends with the workpad at one of the terminal statuses below and, on success, a pull request linked from the workpad’s
PR: line.What the Workpad Looks Like
The freshly created workpad is a checklist of the whole run. For example:Status line is the fastest way to read a run. It moves through Setup, Discovering, Reproducing, Planning, Implementing, Reviewing and Documenting, and ends at one of four terminal words:
The branch is named
issue-<number>-<title-slug>, with a date suffix added when that name is already taken.
What PRFlow Does
The run has four phases:- Fetch the issue, parse its acceptance criteria and create or resume its workpad.
- Create or adopt the issue branch, explore the affected code, plan the change, write it and test it.
- Open a draft pull request, run the code-reviewer cleanup pass and the review-and-fix loop.
- File any required follow-up issues, update documentation, refresh the pull request description and finish.
Bug Reports Must Be Reproduced First
PRFlow decides “is this a bug report?” from what the issue’s title and body describe, not from thebug label and not from a sentence in the issue telling it how to classify. A reproduction is one of three things: a failing test, a quoted error log or a recorded shell command. Whichever it captures is written into a ## Reproduction section of the workpad, and planning cannot start until that section has content.
If the reproduction was not a failing test, PRFlow writes one before it writes the fix, and confirms it fails for the right reason first.
Acceptance Criteria Decide What Gets Checked
Before the documentation stage, every in-scope acceptance criterion must be supported by a passing test, a documented manual check or a code reference. Two independent checkers run in a fresh context and have to agree; if they disagree, the criterion counts as unestablished and blocks, exactly as a failing one would. A criterion that can only be confirmed in a real deployed environment stays unticked and moves to the pull request’s Post-Merge Verification section. When a large issue deliberately defers some criteria to a later pull request, PRFlow files follow-up issues before it finishes and discloses them in the pull request description. Deferral never marks the work complete quietly.When a Run Stops
A Blocked result is a normal outcome, not a crash. The workpad’s status becomes👎 Blocked and the reason is recorded in the workpad. No pull request is published, so nothing half-finished reaches your reviewers.
PRFlow stops before touching existing history when:
- The feature branch has commits that are not in the base branch and cannot be linked to the issue.
- It cannot establish that the workpad belongs to this issue and pull request.
- It cannot resolve the base reference.
- A merge is already in progress.
Blocked by #N dependency, or when it cannot establish whether that dependency is still open.
Later stopping points include a bug it could not reproduce, an acceptance criterion that fails or cannot be established, a verification command the run is not permitted to execute and an unresolved Critical review finding. Before publishing, PRFlow also confirms the branch tip reached the remote; if a commit was made but never landed there, the run stops rather than publish a pull request whose description cites a commit the remote does not have.
What to do about a Blocked run
What to do about a Blocked run
Read the reason on the workpad first — it names the specific obstacle.
- Cannot reproduce. Add the missing detail to the issue: the exact trigger, the environment, the observed and expected behavior. Then run the command again.
- An uncovered outcome in Desired Behavior. The workpad quotes the exact sentence no criterion covers. Add a criterion for it, or narrow the Desired Behavior section.
- An open dependency. Close or unblock the prerequisite issue, then run again.
- A verification command that is not permitted. Grant it in your tool-permission settings. See Tool Permissions.
Draft Pull Request and Review
The pull request is opened as a draft, titled with the issue title, before the review phase begins. PRFlow runs a cleanup pass and then the review-and-fix loop while the pull request is still a draft, so your reviewers see the converged state rather than every intermediate one. Non-Critical findings that survive bounded re-review are surfaced for human judgment. A genuine unresolved Critical finding blocks the run.Ready or Draft
Theprflow_implement.implement_pr_state setting decides the final state:
ready_for_review— the default. PRFlow marks the pull request ready after final verification.draft— the pull request stays a draft for a human to publish.