Issue to pull request
Your team labels an issue, or delegates it in Linear. The agent works it through four stations and opens a draft pull request on your repository, with the run record attached. A named person signs the merge.
- Read the issue and its acceptance criteria3 criteria, 1 constraint: exports must use the account timezone
- Wrote a plan; Priya approved it with one edit4 files, 1 new module, 6 tests. Edit: stream rows instead of buffering
- Implemented
invoices/export.pyand the route+214 −38 across 4 files- rows = list(query.all())- return render_csv(rows)+ def rows():+ for invoice in query.yield_per(500):+ yield to_row(invoice, tz=account.timezone)+ return stream_csv(rows(), filename=f"invoices-{today}.csv")
- Ran the test suite53 passed, 0 failed, 0 skipped
- Opened PR #88 and assigned Priya for review
- Review: one change requested, fixed, tests re-runTimezone was missing from the column header
- Merged by PriyaFull record attached to ACME-212
How a run works
A station is one step of a run, worked by a subagent that does that step and nothing else.
- Triage
Reads the issue and decides whether it is actionable at all. When it is not, the agent asks the person who filed it instead of building the wrong thing.
- Plan
Turns the issue into acceptance criteria against a live checkout of your repository. The plan names the files, the tests and the risks.
- Implement
Works in a sandbox, runs your repository’s own checks, and pushes a branch when they pass.
- Review
Judges the whole diff against the acceptance criteria and reports evidence for each verdict. It never signs the merge.
It never merges. Every branch it pushes waits for a signature.
Every run attaches its run record to the draft pull request: each tool call, each test result, each verdict and what the run cost. When you ask why it chose an approach, the answer is in the pull request.
What a run looks like
Example Days count from approved brief to a signed merge.
| Kind of company | Brief | Days | Result |
|---|---|---|---|
| Series A logistics platform | Rebuild dispatch scheduling around driver availability | 11 | Manual reassignments down 70% in the first month |
| B2B invoicing product | CSV and PDF export with saved filters and account timezones | 3 | Shipped to every customer with no regressions reported |
| Healthcare scheduling startup | Move 140 endpoints from Express to Fastify with typed schemas | 9 | p95 latency down 38%; 212 new contract tests |
| Open-source CLI maintainers | Triage 212 stale issues and fix the confirmed bugs | 6 | 31 bugs fixed, 181 issues closed with a reason |
What it needs before it works
Deploying the code is quick. Connecting it to your company is the part nobody prints, so we print it. Live in five working days once the rows marked You are in place.
| Who | What |
|---|---|
| You | A GitHub organisation and the repository the agent works on |
| You | A tracker: GitHub Issues, or Linear with agent sessions enabled |
| You | A Slack or Teams workspace, if your team wants to reach it in chat |
| You | An account with a sandbox provider: E2B, Daytona, Modal or Vercel Sandbox |
| You | A model provider key, on an account that never trains on your code |
| You | A Cloudflare account for the deployment |
| We | The GitHub app installed, the webhooks subscribed and the events filtered |
| We | The approval gates, the spend cap and the eval suite |
Where your agent lives
A person addresses your agent by name in a chat channel. A system wakes it with an event. Both lists are what Flue verifies, so you can check them.
A person reaches it in
- Slack
- Microsoft Teams
- Discord
- Telegram
- Google Chat
- SMS through Twilio
Teams needs one step that Slack does not: an Azure Bot registration and an app password stored in your project. We do that work and quote it as its own line.
An event wakes it from
- GitHub
- Linear
- Notion
- Stripe
- Shopify
- Zendesk
- Intercom
- Resend
- Salesforce Marketing Cloud
What it costs
It acts behind an approval gate. The build price is a floor, because the work follows the number of systems your agent touches.