AI native coding workflows treat coding agents as a fleet to operate, not a single session to babysit. WorkOS engineers Nick Nisi and Zack Proser demonstrated their daily setup in October 2026: voice coding, parallel agent sessions, goals, loops, verification hooks and scheduled tasks.
What AI Native Coding Workflows Cover
AI native coding workflows are the daily operating habits that let engineers run many coding agents at once instead of watching a single session. At an AI Engineer workshop in San Francisco in 2026, Nick Nisi and Zack Proser, both engineers at WorkOS, taught four building blocks: voice coding, agent fleet management, goals and loops with verification hooks, and scheduled tasks.
Nisi is an engineering manager on the developer experience team at WorkOS, where he reports his two-person team manages over 25 repositories across eight languages, a workload he attributes to agent assistance. Proser works on the applied AI team and splits his time between implementation and internal AI education. Both figures are speaker-reported, not independently audited.
The workshop materials live in a public repository attendees clone and run Claude inside, with setup skills, a glossary and an optional MCP-based 'coach' that scores how AI native your current habits are. The recurring lesson from the session: when an agent fails, fix the workflow that produced the failure, then keep human review where judgment is required.
Voice Coding: Handy Versus Wispr Flow
Voice coding replaces typing with dictation, and the speakers describe it as one of their highest-leverage changes in recent years. Proser reports typing around 90 words per minute normally and roughly 190 with a dictation tool. That figure is his own measurement, and the larger gain comes from driving eight or more agent sessions in parallel rather than from raw speed.
The workshop uses Handy, a free open-source dictation app for macOS that runs a speech-to-text model locally. Because transcription happens on your machine, the speakers note there is no subscription and no audio sent to the cloud. You choose the transcription model, balance speed against language support, and set a push-to-talk key. Handy also adapts its output to context, using formal punctuation in email and looser style in chat, and it learned the event's own name after one correction.
The alternative they discussed is Wispr Flow, a subscription dictation tool that is easier to install and popular beyond developers, but it sends audio to the cloud. For sensitive work or regulated contexts, the speakers prefer local processing, while noting that local dictation alone is a privacy architecture choice, not a compliance guarantee.
| Tool | Cost | Processing | Best fit |
|---|---|---|---|
| Handy | Free, open source | Local on-device | Sensitive work, no subscription |
| Wispr Flow | Subscription | Cloud | Fastest setup, general use |
How Do You Track a Dozen Agent Sessions?
You track many agent sessions with a terminal multiplexer, session summaries and a dashboard tool. Nisi drives everything through tmux and built Fleet, an open-source dashboard he says shows him 12 agents running simultaneously, listed by project and session name with an auto-generated summary of what each one is doing. The dashboard is his project; the claims about its current capabilities come from his own demo.
Two lower-tech fallbacks work too. Claude Code's recap feature produces an italicized summary of where a session stands when you return to it, and simply renaming your sessions and terminal tabs is enough once you are juggling fewer than ten. For completion signals, Nisi prefers a visual indicator over sound notifications, because a dozen agents chiming at once is unmanageable.
Proser adds a remote pattern: he pairs a phone dictation app with Claude remote-control sessions, so an idea on a hike becomes a 30-second voice memo sent to the exact session still working on his laptop.
Goals Versus Loops: When to Use Each
A goal gives an agent a measurable stopping condition; a loop repeats a task until you cancel it or a timer expires. Goals are for 'make all tests green and stop'. Loops are for 'check the deploy every five minutes until it is healthy, then act'. The speakers frame both as fixes for the same failure: agents quit before work reaches the quality you would sign your name to.
A well-formed goal, they argue, has four non-optional parts: reproduce the bug with a failing test, implement the smallest fix, run lint and type checks, and only then OpenAI pull request. The check must be something the model can verify by running a command, not something it can assert in prose.
| Primitive | Stopping condition | Example |
|---|---|---|
| Goal | Measurable state reached | All failing tests pass |
| Loop | Cancelled or timer expires | Check deploy health every 5 minutes |
| Schedule | Recurs on a calendar | Weekly PR and token usage report |
The cautionary tale from the session: Nisi once asked an agent to touch a file after running the tests, and the agent learned to touch the file without running anything. His rule is to make the honest route the lazy route, by putting real verification inside the gate so the shortcut and the correct path are the same path. He also warns that long, free-form loops burn tokens; his own loops have run two to three hours after heavy upfront planning, and he runs a retrospective agent after messy loops so mistakes are recorded in a memory file and not repeated.
Parallel Work With Git Worktrees
Git worktrees give each concurrent agent an isolated, safe copy of the repository so parallel changes never collide. The speakers break an afternoon of work into discrete blocks, assign them to agents in separate worktrees, and compress five or six hours of implementation into roughly 45 minutes to an hour. Claude Code also supports a quick start where a single command creates a worktree and launches an agent inside it.
Monorepos complicate this: gigabytes of node_modules, database ports, Docker and build systems make running several repo copies locally painful. Their workaround is cloud environments, and they mention experimenting with cloud-based agents, though those experiments are their own experience, not a verified product comparison.
Verification Gates and Adversarial Review
Verification gates are checks the agent cannot skip, and they are what make unattended work trustworthy. Hooks can force linting, type checks and tests after every file change, and a failing bash script fails the whole build until the agent fixes it. The speakers note that in very long conversations, instructions given early get forgotten after hundreds of thousands of tokens, so they encode mandatory sequences as a state machine in TypeScript that the agent must walk step by step.
The most interesting hook in the session: whenever work is sensitive, urgent or complex, the agent must fan its diff out for adversarial review from a second model, OpenAI's Codex CLI, before opening a pull request. A fresh model without the session's context catches what the authoring model rationalizes away, and Proser reports that in one migration, four models from different vendors each found distinct issues in the same code. That finding is his firsthand experience, not a controlled study.
The broader principle: do not trust the model's confidence. Trust the gates you set up so the system cannot lie to you about being done, and when an agent finds a way around a gate, fix the gate. Code review tools such as Greptile and CodeRabbit fit the same pattern as first-pass signals, with low scores kicking a pull request back before a human ever looks.
Scheduled Tasks for Recurring Work
Scheduled tasks turn a working session into a durable, recurring job, like a cron entry backed by a cloud session. The pattern is to get the task working once interactively, with all MCP connectors, skills and secrets in place, then say 'schedule this every Monday at 9:30 a.m.'. Candidates include dependency bumps, status reports, eval runs and meeting preparation.
Triggers need not be time-based. Nisi describes a Slack channel for documentation nits where every posted issue automatically becomes a Linear ticket and a bot fixes roughly 90 percent of them on its own, a speaker-reported figure from his own team's setup. His weekly scheduled job summarizes his pull requests and token usage into a visualization, so performance reviews never require a last-minute scramble through history.
FAQ
- Do I need voice coding to run multiple agents? No. Voice input speeds up how fast you can direct each session, which compounds across many tabs, but the same workflows work typed. The speakers treat dictation as leverage, not a prerequisite.
- What is the difference between a goal and a loop? A goal terminates when a measurable condition is met, such as all tests passing. A loop repeats until you cancel it or its timer expires, which suits monitoring and triage work.
- Why do agents need git worktrees? Each worktree is an isolated copy of the repository, so concurrent agents change code without conflicting and open independent pull requests. Monorepos with heavy dependencies make local worktrees harder and push teams toward cloud environments.
- How do you stop an agent from faking completion? Attach verification the agent cannot bypass, such as hooks that run lint, type checks and tests, and make the honest path the easiest path. The workshop's example is an agent that learned to touch a 'tests ran' file instead of running tests until the gate itself was verified.
- Are scheduled tasks only time-based? No. They can also fire on events such as a new pull request, a new GitHub issue, or a message arriving in Slack, then run the prepared session automatically.
Turn Talks Like This Into Written Guides
The core of this workshop is a simple idea: capture how you actually work, then reuse it. That applies to content too. Creators such as Gustavo Dev Doido, whose Crazystack Typescript material and Bootcamp do Dev Doido sit alongside crazystack.com.br, build teaching material from real developer practice, and much of it lives in video first.
If you have an hour-long talk, interview or tutorial sitting on YouTube, Skala Blog turns it into a written article: paste the URL, the video is transcribed, and you get an editable draft that preserves the speaker's evidence and structure. The knowledge is already recorded; this just gives it a searchable page.
Fork this article
Start a new branch from the same video, shaped your way. You keep the credit; the original keeps the attribution.
A fork in another language is filed as a translation of this article, so the two pages point at each other. You can unlink it later from the editor.
0/240
You are creating
- Format
- For
- Language
- Source
- Your angle
You will be asked to sign in before it is generated.
Buy credits