How 05 lands AI-written code without PR review
05 is the acceptance layer for AI-written code. It wraps one change in a declared plan up front and evidence at the end, so people own the request and the acceptance, and agents own the plan and the work.
The workflow at a glance
The seven steps, in plain words
- A person asks, the agent declaresThe agent plans the change and declares it before its first edit: what it will do, where, and which checks must pass. 05 seals the declaration, so a later change to it shows. It works out how risky the plan is and tells the agent if another agent is already working there. A risky plan waits for a person; everything else goes ahead. For solo work the declaration can be inferred.
- Agents do the workClaude Code, Codex or any other agent writes the change. Hooks watch the session and report against the intent and policy. Hooks are advisory, and 05 says so.
- The runner proves the checksThe portable runner runs your checks on an exact git tree and signs the result as a receipt. A passing check and a failing check are both recorded. The receipt is verifiable offline by anyone.
- A drift check compares intent to the diffA deterministic check compares what was asked for with what actually changed. No AI judges a gate; if the diff wandered outside the intent, the brief says so.
- You get one pageYou read one brief and start from facts, not the diff; what it contains is below.
- A human approves, by exceptionA change that matched its plan and passed its checks says “nothing to read”. Only a risky plan, or a result that did not match, needs a person. Approval is a signed act, made with a passphrase-protected key and bound to what the approver was shown.
- It lands, and you push
use05 landputs the approved change on its target branch as a commit, a fast-forward of exactly what was checked, and removes the agent's finished branch and worktree. You push it. No pull request is needed, though one works too. A CI required check on every pushed branch enforces the result; that strength is the host's, and 05 labels it that way. The pre-push gate gives the same answer earlier, on your machine, and is advisory. If a change must land anyway, a break-glass bypass exists, and it is logged.
What the reviewer's one-page brief contains
The brief exists so a person can decide quickly and on evidence, or not at all. It ends in one verdict. A change that matched its plan and passed its checks ends with ALLOW, nothing to read. Anything else leads with only what did not match.
- Intent
- What the agent declared it would do, sealed before its first edit.
- Outcome
- What the change actually does.
- Evidence
- Signed receipts for the checks that ran on the exact tree.
- Drift
- Where the actual diff departs from the declared intent, by the fixed rules listed under what 05 catches.
- Approvals
- Who approved or rejected, and whether each approval still counts for this exact content.
- Unknowns
- What 05 could not establish, listed rather than hidden.
- How to undo
- The way back if the change turns out to be wrong.
What 05 catches
Every finding is a plain sentence with a stable code, decided by fixed rules on the exact tree. No model is asked.
- Work outside the plan. Files changed outside the declared scope (
SCOPE_EXCEEDED), or no scope declared where the policy wants one (SCOPE_UNDECLARED,INTENT_REQUIRED). - A plan written after the fact. Files in the scope edited before the plan was sealed (
DECLARED_LATE), or a plan changed after a person approved it (INTENT_CHANGED). - Two agents in one area. Another task reserved the same files, or changed them recently (
OVERLAP). - Changes that need a person. Protected paths and risky areas such as auth, money, migrations, secrets and deployment, without a signed approval (
PROTECTED_PATH,RISK_NOT_APPROVED), and dependency files changed when the plan promised none (DEP_FILES_CHANGED). - Checks that did not pass here. A required check that failed, was never run on this exact tree, or ran on an older one (
CHECK_FAILED,CHECK_MISSING,EVIDENCE_STALE). - Weakened tests. Test files deleted, assertions removed, tests newly skipped, thresholds lowered, checks switched off or snapshots rewritten by the same change (
TESTS_WEAKENED). - Claims the evidence does not back. “Tests pass” in the agent's summary when the receipt says otherwise, or when no receipt exists (
CLAIM_CONTRADICTED,CLAIM_UNSUPPORTED). - A record edited after the fact. The agent's action log changed after it was sealed (
LOG_ALTERED). - Broken folder and file rules. A locked file changed (
LOCKED_PATH), an existing file in an append-only area edited, renamed or deleted (APPEND_ONLY), or a no-delete file deleted (NO_DELETE). These are denied, not held for approval; see locked folders and file rules. - A policy that needs a newer
use05. A policy whose[use05] min_versionis newer than the runninguse05is refused withPOLICY_NEEDS_NEWERand a note to upgrade, instead of being read wrongly.
Why intent comes first
A reviewer can only judge a change against a goal. Stating the goal before the agent starts, and checking the diff against it afterwards, turns "does this look right?" into "does this match what we asked for, and what proves it?".
Keep reading
Try 05 on your own repositories
The source, install steps and docs are on GitHub. Questions, or want to tell us which agent and Git host you use? Email us. No forms, no cookies.