A pull request, or a good reason.
Delegate a Linear ticket to Ao Twin and it decides before it codes. Clear, contained work comes back as a pull request that already passed your checks. Anything risky or vague comes back to you with the reason.
WEB-214
Projects table: add a sortable due date column
- Status
- In Review
- Delegate
- Ao Twin
- 7m ago
You delegated this issue to Ao Twin
- Ao Twin Got it — I’ll take a look shortly.7m ago
- Ao Twin Reading through WEB-214 now…7m ago
- Ao Twin On it — making the change now.6m ago
- Ao Twinjust now
Done — PR is up: github.com/acme/web/pull/88
Ran install, typecheck, build; all green. Over to you for a look.
Your small tickets stop waiting.
Copy changes, a filter on a table, a new column, a styling fix. None of them is ever the most important thing, so they sit. Delegate them to Ao Twin and each one comes back as its own branch and its own pull request.
- WEB-214Projects table: add a sortable due date columnPull request ready
- WEB-216Reports page: update the empty-state copyPull request ready
- WEB-219Tasks table: add an owner filterIn progress
- WEB-230Settings: tighten the narrow-screen layoutDraft: needs your eyes
- WEB-221Staff accounts can change their own roleDraft with a warning: touches permissions
- WEB-238Move file uploads to a new storage serviceBack to you: infrastructure change
Delegate it like you’d assign a teammate.
1 Delegate a ticket in Linear.
Pick Ao Twin as the delegate. It replies within seconds, so you know it has the ticket.
- Ao Twin Got it — I’ll take a look shortly.
2 It decides before it codes.
It reads your repository and the ticket, then chooses: a pull request, a draft with its doubts spelled out, or the ticket back to you with the reason.
- Ao Twin Reading through WEB-214 now…
3 It builds and checks.
It works on its own branch and runs your repository’s own checks. If a check fails, it tries once more with the error in hand. If it fails again, the ticket comes back to you.
install ✓ typecheck ✓ build ✓
4 You review and merge.
One pull request, linked to the ticket. Merging is yours: Ao Twin can’t merge.
Every ticket comes back one of three ways.
Ao Twin reads your repository before it judges a ticket, and it never guesses. You always get either work to review or a reason, in plain words.
A draft pull request, ready for your review.
Clear, contained work that your checks can prove.
A pull request with a warning on top.
The change works, but part of it needs your judgment, so the pull request says which part before anything else. That includes changes to native iOS or Android screens, and anything that touches sign-in, permissions, payments or personal data.
The ticket, back to you.
Anything that changes infrastructure, the database or dependencies. Anything too vague to act on. Anything still failing after a second try. You get the specific reason, and the ticket is reassigned to you.
Every update reads like a teammate reporting in: a link to review, or the reason it stopped. No logs and no jargon.
Nothing merges without you.
These rules are enforced in code, not requested in a prompt, and they hold on every ticket.
It never merges.
Merging and closing pull requests are blocked. Approval stays with your team.
It never touches your default branch.
No pushes to main and no force-pushes. Every change lands on its own branch, named after the ticket.
Your credentials stay out of reach.
The checks it runs get no credentials, and your tokens never appear in its commands or its messages.
A ticket can’t give it orders.
It treats ticket text as a description of the work, so instructions hidden in a ticket don’t change its rules.
What you review is what passed.
The pull request holds exactly the code that passed your checks.
It stays where you put it.
It only works in the repositories you connect. Tickets from anywhere else come back to you.
Checked before they run
gh pr merge 88refused merging is your callgit push origin HEAD:mainrefused default branchgit push --force origin WEB-214refused force-pushpnpm typecheckallowed
Pricing
Coming Soon
Before you delegate your first ticket.
Can it merge or close pull requests?
No. Both are blocked. Every change waits for your team’s review.
Which tickets should we give it?
Small, clear work: copy changes, styling fixes, a new column, a filter, simple create-and-edit screens. Tickets that spell out what done looks like are the easiest to hand over.
What happens when a ticket is vague?
It comes back to you with what’s missing. Ao Twin doesn’t guess.
Will it follow our conventions?
Yes. It follows your repository’s contributor and agent instructions, like AGENTS.md, and runs your own install, typecheck, lint, test and build steps.
What does it need access to?
Your Linear workspace and the repositories you connect. The checks it runs get no credentials.
Does it work on mobile apps?
Changes to native iOS or Android screens always open as drafts, because browser checks can’t prove them. You review those on a device.