Guide

Review the diff when the agent finishes

“Done” does not mean “merge it”. It means there is a diff waiting for someone who is not the same model that wrote it.

Updated October 16, 2026 · 4 min read

Live review

Review an agent’s diff before it lands

    Illustrative diffs. In doki the review runs on the real worktree when the agent finishes.

    Three verdicts, not a vague note

    Ready means the automatic pass did not find a reason to stop. Review means there is something a human should look at before merging. Don’t merge means the diff carries a concrete problem: a secret, a risk you do not accept, a change that does not belong.

    It is not a “tests are green” stamp or a product approval. It is a reading of the diff so that “done” is not confused with “it is on main”. Tests remain the repo’s tests.

    Secrets that slip into the change

    The typical failure is a copied .env, a key in a fixture, or a token the agent pasted “just to try”. Review flags them. Guard, separately, tries to keep the agent from reading ~/.ssh or ~/.aws in the first place. Two moments: before the command, and after the diff.

    A flagged secret is a reason not to merge, and to clean the branch before opening the PR. The .env copy doki places in a worktree is so the agent can start, not so it gets committed. More on that checkout in worktrees.

    Send the findings back to the agent

    Instead of rewriting the fix yourself, doki can send the report back to the same session. The agent sees what was objected to and takes another pass. If you want a different model, a combo puts a second agent on review: Claude writes, Codex reads, or the reverse.

    That split is compared in Claude Code vs Codex. The combo stops when the verdict comes back clean or when it gets stuck and the question returns to the Inbox.

    What you do with the branch afterward

    Merge is for when the verdict and your own look agree. The PR, via gh, is for the team’s flow: the usual human review does not switch off because an agent passed an automatic pass. Discard throws the experiment away without leaving dead branches.

    Activity is recorded and can be exported to CSV or JSON: which agent, which task, what came out. It helps when more than one person asks who touched the branch.

    What this review does not cover

    It does not make the product decision for you and it does not replace CI. A “ready” diff can still break a case only the pipeline sees. It also does not read the ticket’s intent better than you do: if the agent built the wrong thing with a clean diff, the verdict will not guess that.

    Run permissions stay in Guard. An innocent diff does not excuse a dangerous command the agent wants to run next. The rules are in permissions.

    Frequently asked questions

    Does automatic review merge on its own?

    No. The verdict informs you. Merging, opening the PR, or discarding is an action you take in the app, unless you have set up a flow where you already decided that exit.

    Does it catch every secret?

    It flags the ones it recognizes in the diff, such as keys and environment files. It is not a full audit of the repo. A human look still matters if the change touches auth or configuration.

    Can one agent review another’s diff?

    Yes, with a combo: one builds and the other reviews until it is approved or they get stuck. You can also send the findings back to the same agent.

    Do I need gh?

    Only to open the pull request from doki. Merging or discarding the worktree does not depend on GitHub.

    Never leave an agent waiting.

    doki pulls Claude Code, Codex, Cursor and the other agents you already use into one Inbox, on your Mac, your iPhone and your servers.

    See pricing →