Push the result
Check the changes, then push them to a new branch and open the pull request.
On this page
When the build ends, each planned pull request has its own diff, ready to review. Nothing has left your computer, unless you chose review and fix. Push sends one pull request's changes to a new branch on GitHub and opens the pull request, from your computer, under your GitHub account.
#Check the changes
☑ Draft Push all (2)
refunds/policy.py+ if now() - order.paid_at > settings.REFUND_DAYS:+ return False
Push as draft
The tab lists the pull requests in plan order, each with its status (Ready to push, No changes, Failed or Pushed), the criteria it covers and its diff. Each pull request's diff is against the one before it, so you review only its own changes. Edits the agent made in a repository with no planned pull request are listed under What Limn left out.
Not happy? Tell the agent in the conversation: Ask for a change. It is a build turn: the agent may edit and test. The diffs update after the turn.
#Push
- Leave Draft ticked to open each new pull request as a draft (the default), or untick it to open them ready for review.
- Press Push (or Push as draft) on the first pull request, then the next. Or press Push all to push every ready one in order.
- Open the new pull request from the tab, or find it on Open pull requests once it syncs.
#When the branch already exists
An earlier session may have pushed the same branch, for example PAY-142. Push then says so, and the pull request shows a New branch field in place of the button, filled in with a free name such as PAY-142-v2. Change it if you like and press Push. Limn checks the name and still never overwrites a branch. In a stack, the pull requests after it build on the new branch.
#Review and fix, then open the pull request
Reviewing round 2 of 3 AC1 · met AC2 · met AC3 · met AC4 · not applicable
Blocker The refund window is not checked · Fixed
Nit Rename policy.py · Pushed back The module name matches the other apps.
Fixes pushed: acme/payments 3f2a1c9.
Tick After the build: review and fix, then open the pull request before you start, or later in the tab until the first review starts. It is off by default. Set Rounds (1 to 6, 4 by default) beside it.
- When the build finishes, Limn pushes the branch to GitHub. It does not open a pull request yet.
- Limn reviews the branch the way it reviews a pull request, with the AI review setting of your workspace (Claude, or Claude and Codex). It also checks the work against the ticket's acceptance criteria, across all repositories.
- The agent deals with every point: blockers, warnings, nits, questions and unmet criteria. It fixes the code, answers, or pushes back with a reason. It can say a criterion does not apply to this work; the next check judges that.
- Limn pushes each fix as a new commit on the branch, then reviews again.
- When nothing is left, or after the last round, Limn opens the pull request, ready for review. Its description sums up the rounds.
The tab shows each round: the findings per repository, what the agent did with each one, and which criteria are met. The review stays in Limn: nothing is posted on GitHub except the commits and the pull request.
- Each review and fix uses your AI allowance. If the spend limit is reached, the rounds pause. Press Continue to go on.
- If a push fails, or Limn restarts, the rounds pause and say why. Continue tries once more. A branch that already exists gets a New branch field first.
- Stop review loop ends the rounds. The branch stays on GitHub, and Open the pull request opens it when you want.
- The pull request is yours. Limn keeps its last review on it, so auto review does not review the same commit again.
#What is pushed
- The branch: the ticket key, for example PAY-142; a second and third pull request in the same repository add -2 and -3.
- The title: the ticket key and title, for example "PAY-142 (1/2): Partial refunds", so your tracker links it.
- The description: a summary, the story, the criteria this pull request covers, the list of parts, what it builds on, and your decisions on the story ("Kept the story: …", "Changed from the story: …"). A GitHub Issues ticket built in one repository is closed by its last pull request.
What is pushed is exactly what you reviewed: Limn checks the commit matches the reviewed change before it pushes.
#Pushing a stack
In one repository, each pull request is based on the branch of the one before it, so push them in order. Push refuses a pull request whose previous one is not pushed yet ("Push P1 … first."), or whose previous one was merged or closed meanwhile. A pull request that depends on another repository's waits for that one. If one push fails, the later ones in the same repository wait; other repositories go on. Pressing Push all again pushes what is left.
Stacking on your own open pull request
When a repository already has your own open pull request for the ticket, the first new pull request targets its branch. A pull request from a fork is never stacked on.
#After the push
- Limn syncs each new pull request and links it to the ticket.
- The sprint card's mark becomes Pushed once every planned pull request is pushed.
- Review the new pull requests like any other: see Run a review.