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 roleBack to you: 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 commit, 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 pull request, ready for review.
Clear, contained work that your checks can prove.
A draft, with its doubts spelled out.
The change works, but part of it needs your judgment, so it opens a draft and says which part. Changes to native iOS or Android screens always come back this way.
The ticket, back to you.
Anything that touches sign-in, permissions, billing, personal data, infrastructure or dependencies. Anything too vague to act on. Anything still failing after a second try. You get the 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.