
A human-in-the-loop workflow for coding agents puts a person at a few fixed checkpoints - approving the plan, reviewing each phase of a large change, and merging - and lets agents run unattended in between. On a task board, each checkpoint is just a status plus an assignment: when an agent finishes a step, it moves the task to In Review and assigns it to the next reviewer. Agents only pick up tasks assigned to their own bot user, so nothing moves past a checkpoint until a person reassigns the task.
This post is the practical version of that idea: where the checkpoints go, what the agent prompts need to say, how to steer an agent mid-task, and how to monitor runs without babysitting them. It uses t0ggles Crew pipelines on a t0ggles board, with screenshots of the full flow on an example project. If you have not connected an agent to a board yet, start with How to Give Your AI Agents a Task Board and come back.
Every team running coding agents ends up choosing, deliberately or not, where oversight lives. There are three options:
| Where oversight lives | What it looks like | Why it breaks down |
|---|---|---|
| Every action | Approve each file edit and shell command as the agent works | You become the agent's keyboard. Nothing runs while you are in a meeting |
| Only the end | The agent works for an hour, you review one large PR | A wrong direction is found after the work is done, and big diffs get skimmed |
| Checkpoints at boundaries | Approve the plan, review each phase, merge | Minutes of your time per checkpoint, hours of agent work in between (this post) |
Per-action approval is the right tool when you are pairing with an agent in a terminal. For agents that run on their own, the unit of review is the task, not the tool call. Put checkpoints where the cost of a wrong turn jumps: before any code exists, between phases of a large change, and before anything reaches main.
The board needs four statuses: To-Do, In Progress, In Review, and Done. Each agent has its own agent user - Claude Planner, Claude Developer, Claude Phased Developer, Claude Reviewer - and each one only works on tasks assigned to it. Assignment is the lock. A task assigned to you is a task no agent will pick up.

Look at the In Review column above. It holds two kinds of tasks: WEB-4 is assigned to Claude Reviewer, so the reviewer agent picks it up on its next run. WEB-3 is assigned to a person, so it is waiting at a human checkpoint. The avatar on each card tells you who has to act next, which is most of what monitoring means at the board level.
Three rules make the pattern hold:
The cheapest review you will ever do is a plan review. A plan takes two minutes to read, while a wrong plan costs an hour of agent work plus your time reviewing code that should not exist.
The flow: you create a task and assign it to Claude Planner. The planner researches the codebase, writes an implementation plan to docs/plans/ (scope, affected files, technical approach, acceptance criteria), commits it, and assigns the task to Claude Reviewer. The reviewer checks the plan, improves it directly in the file, and assigns the task to you.

In the thread above, the reviewer caught a gap the planner missed (IdP-initiated login) before a single line of SSO code was written. That is the point of chaining an agent reviewer before the human checkpoint: the plan you read has already had one pass.
What to check when a plan lands on you:
To approve, reassign the task to Claude Developer (or Claude Phased Developer for a phased plan) and move it back to To-Do. To send it back, reply on the task with @Claude Planner and what to change.
Large tasks are where unattended agents go wrong: the longer the run, the further the agent drifts from the plan, and the larger the diff you get at the end. Phased development fixes that by making the phase the unit of work.
The task description (or the plan it references) lists numbered phases. Claude Phased Developer implements exactly one phase per run, pushes to the task branch, comments Phase X/N completed: <summary>, and assigns the task to Claude Reviewer. The reviewer checks only that phase's commits, fixes small issues directly, and routes the task:

This thread shows a Phase 2 cycle on a billing task. The reviewer found that the Stripe webhook trusted the seat count without checking which workspace the subscription belongs to, and sent it back instead of advancing to Phase 3. The person then added one requirement mid-flight with a mention, and the developer's rework covered both. Notice that the Phase X/N completed comments are also the state machine: on each run, the developer reads them to decide which phase comes next, so the thread is both the progress log and the source of truth.
By default the phased reviewer only hands the task to a person after the last phase. For high-risk work you can make every phase a human checkpoint by changing one line in the reviewer prompt:
- If this is NOT the last phase (X < N): Keep the task in In Review and assign itto Jane Doe (jane@example.com). Add a note: "Phase X reviewed. Reassign toClaude Phased Developer and move to To-Do to start Phase X+1."
Your approval is then the reassignment itself: nothing starts Phase 3 until you move the task.
After the last phase, or after a single-run task, the reviewer posts a review summary and assigns the task to you. This is the checkpoint that should never be automated: you read the reviewer's summary, look at the PR, and merge. The Crew development prompts name each branch after the task key (for example WEB-4-seat-based-billing), so with the GitHub integration merging it into main moves the task to Done, and the board reflects reality without anyone touching it.
If something is off, reply on the task and mention the agent that should act. That brings us to the lightest checkpoint of all.
Not every intervention needs a gate. Sometimes you just want to add a requirement, ask for a rebase, or ask why the agent chose an approach. In Crew, a comment that mentions an agent is a trigger:
@Claude Phased Developer log a warning when the IDs do not match starts a focused run for that agent on the next poll, even if the task is assigned to someone else.Mentions are how you stay in the loop without becoming a blocker: a quick note on the task, and the agent picks it up within minutes.
The whole flow above is configuration, not code. Crew is a free desktop app that runs Claude Code, OpenAI Codex, or OpenCode as pipelines against your board. The getting started guide covers installation; here is what the human-in-the-loop setup needs on top of it:

Auto mode is what makes checkpoints feel instant. Crew polls the board every 5 minutes, and when it finds a task assigned to a pipeline's bot user that is not done, or a new mention of that agent, it starts a run. The moment you reassign an approved plan to Claude Developer, the build starts on the next poll. No button to press.
The checkpoints themselves live in a few lines of each prompt. These are the lines that matter, taken from the pipeline examples:
Planner: Finally, move the task to In Review and assign it to Claude Reviewer.Developer: Finally, move the task to In Review and assign it to Claude Reviewer.Reviewer: Finally, assign the task to Jane Doe (jane@example.com).All: If you cannot complete the task, add a comment explaining what wentwrong and move the task back to To-Do.
The last line matters as much as the handoffs. An agent that fails silently leaves a task stuck in In Progress; an agent that explains the failure and puts the task back hands you a readable decision.
Unattended agents only save time if you can check on them in seconds. Monitoring works at three levels:

The signals worth watching:
Agents work faster than people review. If you do not plan for that, checkpoints turn into a queue that grows every hour.
| Task risk | Example | Checkpoints |
|---|---|---|
| Low | Copy change, dependency bump, docs | Final review only (Development pipeline) |
| Medium | New feature inside one layer | Plan approval + final review |
| High | Billing, auth, migrations, data model | Plan approval + every phase + final review |
Board checkpoints decide when work moves forward. They do not limit what an agent can do during a run. Crew runs the CLI non-interactively so it can work unattended: Claude Code with --dangerously-skip-permissions, Codex with --yolo. The agent will not stop to ask before running a command, so the safety comes from where it runs and what it can reach:
The rule of thumb: prompts define the workflow, but repository settings define the blast radius.
Crew is the unattended version. The same checkpoints work with any MCP client, one session at a time. Connect Claude Code, Cursor, or Codex to the t0ggles MCP server, give the agent its own agent user, and put the handoff rules in CLAUDE.md or AGENTS.md: move the task to In Review when done, mention the reviewer, never move a task to Done. The task board walkthrough has the full instructions file and the exact MCP calls, plus how to repeat the loop with Claude Code's /loop and Codex scheduled tasks.
Whatever you use, a human-in-the-loop setup for coding agents needs these pieces. If one is missing, it tends to get replaced by a Slack thread and someone's memory:
| Need | Why it matters | In t0ggles |
|---|---|---|
| Shared queue | Agents and people work from the same list of tasks | Kanban board, agents connected through MCP |
| Agent identities | Every action is attributed to a role, not to whoever ran it | Agent users with bot user IDs |
| Handoff by assignment | The checkpoint is enforced by who owns the task | Review status plus reassignment, Crew agents take only their own tasks |
| Artifacts on the task | You review in one place: plan, PR link, review notes | Comments with mentions, links, and phase markers |
| Mid-flight steering | Small corrections without a full review cycle | @mentions trigger a focused Crew run |
| Run monitoring | Know when agents fail, stall, or loop | Crew run history, live output, remote access |
| Audit trail | Reconstruct what happened after the fact | Task change history, get-activity-log MCP tool |
The task management for AI agents page covers how these fit next to observability tools, and the Crew launch post covers the rest of what Crew does, from scheduled reports to batch runs.
Start with one real task, not a toy one. The first plan review will tell you more about where your checkpoints belong than any amount of setup.
Get updates, design tips, and sneak peeks at upcoming features delivered straight to your inbox.