AI dev agent case study: engineers review, the machine builds.
The marina-software client makes marina-management software, and Paul Rahme built its AI dev agent: a pipeline that picks up a Linear ticket labelled ai-task, writes the code, opens a pull request, compiles the Windows desktop build, and hands it to an engineer to approve. A ticket to PR automation case study from production: n8n orchestrates, GitHub Actions codes, a human approves every merge. Turnaround is twice as fast, and developers review instead of build. Built at the marina-software client as their AI automation engineer; Aldenebai builds the same systems for other companies.
The marina-software engineering backlog before the agent
A ticket is small. The work around it is not. An engineer finds the right repo and branch, clones, sets up, plans, writes, reviews, tests, opens the PR, then waits for the desktop compile and fixes whatever went red. Hours of setup per ticket before any judgment is needed.
What Paul Rahme built for the client's engineers
The AI dev agent takes the whole loop. n8n owns the state machine: intake, triage, queue, dispatch, callbacks, watchdog. GitHub Actions is the worker: clone, plan, implement, self-review, test, open the PR, on OpenCode and Claude-class coding models. Linear labels and states drive every step.
What the engineers do now
Engineers review. A Teams ping says a PR is ready; the assignee reads the diff and the tests, then approves or sends it back. The judgment stayed with people; the setup and the red-build loop went to the machine. That retry loop is shared with the autonomous bug fixer.
How the AI dev agent turns a client ticket into a pull request
Eight stages, each recorded as a Linear label or state, each with one exit when unsure: a person.
Intake
A ticket gets the ai-task label. A scheduled poll, capped at ten a day, or a Linear webhook picks it up.
Triage
Freshness guard, clarity check, duplicate check. Vague tickets get ai-needs-detail, repeats ai-duplicate, parked ones ai-deferred. The rest queue.
Dispatch
n8n releases one ticket at a time and maps its project to the right repos and branches, under a per-repo cap on open PRs.
Worker
A GitHub Action clones, plans, implements, self-reviews, then generates and runs tests for the change. One PR per repo touched.
Desktop build gate
The product is a .NET desktop app, so the branch compiles on Windows. A red build flips to ai-build-retry; the agent fixes and recompiles. Two passes, then ai-needs-human.
PR-done callback
State AI Review, label ai-pr-open. The tester gets a Teams ping and the assignee a message to review.
Merge and QA Review
An engineer approves or rejects. Nothing merges without that approval. Merged tickets move to QA Review and a tester is assigned.
Watchdog
Every 30 minutes n8n scans for anything stuck longer than 60 minutes and flags it.
Results: about 2× faster from ticket to review-ready pull request
Rounded from production data at the marina-software client. How to read 2×: roughly half the time from ticket assigned to review-ready pull request, compared with the same ticket types before the agent.
Book the Automation Audit
The receipt
Illustration of the system's output, not a production screen
Questions about the ticket-to-PR pipeline
What does an AI dev agent in production actually do with a ticket?
It picks up a Linear ticket labelled ai-task, checks it is fresh, clear, and not a duplicate, then hands it to a GitHub Action that clones the repo, plans, implements, reviews its own diff, runs its tests, and opens a pull request. For the client it also compiles the Windows desktop build before a person sees the PR.
Does the agent merge its own code?
No. Every pull request waits for a human to approve; nothing reaches the main branch without it. The agent's job ends at a review-ready PR with a green build and its own tests. Once merged, n8n moves the ticket to QA Review and assigns a tester.
What happens when the desktop build goes red?
The ticket is labelled ai-build-retry, and the agent reads the compiler output, fixes the code, and compiles again. It gets at most two passes. If the build is still red, the ticket is labelled ai-needs-human and stops there for an engineer. The same loop is shared with Aldenebai's autonomous bug fixer.
Why n8n and GitHub Actions together, rather than one tool?
They do different jobs. n8n holds the state: the queue, one-at-a-time dispatch, the per-repo PR cap, Linear labels, Teams pings, the 30-minute watchdog. GitHub Actions is the worker: it already has the repo, the runners, and the Windows compile, so coding happens where the code lives.
Related pages
Case 03 is your backlog.
The free Automation Audit maps which tickets a machine could build and which stay with your engineers — 30 minutes, written Automation Map within 48 hours.