My AI Coding Setup
The pipeline I actually run day to day. Work enters as a Linear issue, a Claude routine hands it off automatically, Claude Code on the web does the autonomous async work and opens a PR, and local Claude Code is where I do the interactive, high-stakes thinking. The interesting part isn't the tools — it's knowing which one to reach for.
flowchart LR L["Linear<br/>issue + triage"] --> R["Claude Routine<br/>trigger fires"] R --> W["Claude Code · Web<br/>autonomous session"] W --> P["Pull Request<br/>opened + CI"] P --> C["Claude Code · Local<br/>review + deep work"] C --> M["Merge"] M -. "closes issue" .-> L classDef src fill:#eef2ff,stroke:#6366f1,color:#3730a3,stroke-width:1px classDef agent fill:#fef3c7,stroke:#d97706,color:#7c2d12,stroke-width:1px classDef out fill:#dcfce7,stroke:#16a34a,color:#14532d,stroke-width:1px class L src class R,W,C agent class P,M out
Linear
Intake & triage
Everything starts as a Linear issue — bugs, features, chores. I triage, label, and write enough context in the issue that an agent can pick it up cold. Linear is the single source of truth for what's in flight.
When I reach for it: The moment an idea or bug is worth doing, it becomes an issue — before any code.
Claude Routine
Automated handoff
A Claude routine watches Linear for the trigger — an issue assigned or moved into a ready state — and kicks off a Claude Code web session against the repo, seeded with the issue as the task. This is the glue that turns 'a ticket exists' into 'an agent is working on it' with no manual step.
When I reach for it: Whenever a well-scoped issue is ready to hand off — I don't want to babysit the kickoff.
Claude Code — Web
Autonomous async work
The web session runs in an isolated cloud container: it reads the codebase, makes the change, runs tests, and opens a pull request — no machine of mine tied up. I fire it off and check back on the PR. Perfect for well-defined, parallelizable work.
When I reach for it: Clear-cut tickets I can queue and walk away from — fixes, refactors, doc updates, boilerplate.
Claude Code — Local
Interactive deep work
For anything exploratory, architectural, or half-formed, I drive Claude Code locally — tight loop, my full dev environment, immediate feedback. I also use it to review and steer what the web sessions produced before things merge.
When I reach for it: Ambiguous or high-stakes work where I want to be in the loop on every step.
Why split web and local?
Web is for throughput. Isolated cloud containers mean I can have several well-scoped tickets in flight at once, none of them tying up my laptop. I check back on PRs, not on progress bars.
Local is for judgment. When the problem is ambiguous or the blast radius is large, I want the tight interactive loop and my full environment — and I'm the one steering every step.
See the tools behind the pipeline
The same craft goes into what I build. Explore the AI engineering toolkit — workflow builder, evals, multi-agent PR review, MCP servers — or browse the projects.