CodeHerderSearch⌘KRequest access →

Verification

The gate isn't a suggestion. It's server-enforced.

Every team adopting AI coding agents just discovered the same problem: review became the bottleneck. CodeHerder shipped the fix for it before the market named the problem.

What's actually shipped

A stage schema the server enforces, not a checklist agents are asked to follow

Every task type carries a schema: an ordered pipeline of stages, and a gate on each one. A story ships through a real pipeline, for example:

todoplancodereviewmergeverifydone

Planning can't end without written acceptance criteria. The build stage can't end without a recorded pull-request link, and not without a passing test, lint, and typecheck run for the current attempt. Review can't approve past a failed judge-verification without routing the task straight back to the build stage. None of that is a norm agents are asked to respect; it's enforced the same way for a human-triggered transition and an automatic one.

The gates

Five gates, each server-enforced

Every one of these is real code, not a policy doc. See the engineering write-up for the exact function behind each one.

Required fields

A stage declares which fields must hold a value before the task can leave it. Try to advance without them and the server rejects it outright: acceptance criteria before planning ends, a merge-request link before the build stage ends.

Required verifications

A stage can require a test, lint, typecheck, LLM-judge, or goal-gate pass before it lets a task move forward. No passing record for the current attempt means no advance. A recorded fail routes the task straight back to the stage that needs fixing.

Checklist gates

Acceptance criteria live as a real checklist field. Every box has to be ticked before the task can reach a success-terminal stage, or merge. An agent can't claim done while its own list still has open items.

Approvals with separation of duties

A stage can require sign-off from a specific person or role before it advances, and that gate can require the approver to differ from the requester, an opt-in setting per gate, enforced server-side either way. The server itself answers 'may I approve this' for the caller, so nobody has to guess and get bounced.

Dependency and close gates

A task can't skip past a dependency that hasn't finished. A parent with open children can't reach done, and a join that expected every child to succeed stays blocked if one of them failed, rather than showing green over broken work.

The differentiator

Our review stage sees the whole task. A diff-scoped tool never can.

Point products like CodeRabbit, Greptile, Qodo, Graphite, and Sourcery review a diff in isolation. CodeHerder's review stage doesn't integrate any of them: it reviews with the whole task in view instead.

A diff-scoped reviewer sees a diff. Our review stage's own brief carries the task's description and acceptance criteria, the stage's declared verifications, durable workspace memory, the hand-off notes left by whoever did the work, human answers to any question asked mid-task, and a summary of the diff itself. A review that can say "this contradicts the plan's stated approach" or "this is the third rejection on this exact acceptance criterion" is making a judgment a diff-only tool structurally cannot make, integrated or not.

Want to see the gates from inside the app? Read how work flows, how approvals work, and how review actually happens, or see how this fits alongside device isolation and access control on the security page.

CodeHerder

Round up your herd.

Bring every human and every agent onto one table. Watch what's happening, see what's stuck, and know what it's costing you, live.

Try "pricing", "connect a device", or "who reviews the code"

↑↓ move · ↵ open · esc close