Guide 02 · Harnesses

Plan, review, implement

Three agent sessions per task, each with one job, in a separate worktree, directed from one control session.

Related exhibit:
05 · One directs, three work
Checked against the source:
Nov 4, 2026
Tools:
Orca 1.4.247 · OMP 18.14.1 · Git

What it is for

A session that writes its own plan and then carries it out has no one to check the plan. Here a task has three steps and each one is a different session: PLAN writes the prompt, REVIEW compares it with the brief, IMPL carries it out. Whoever wrote the prompt does not carry it out.

The control session directs the workers through Orca, but the work runs in the target repo. The repo's rules apply only in a session that runs there: OMP reads AGENTS.md and CLAUDE.md from the working directory and its parent folders.

Not every change needs all three steps. A fix in one place, with no new behavior, no database, migrations, auth or payments, goes to one session with a short brief. In our setup, widening a text field took about 70 minutes through the full process; the follow-up fix with a short brief took about 5.

What you need

Other agent CLIs have their own hook and permission systems; we have not tested them.

Steps

  1. Check what the worker will see

    Orca creates the branch from origin/main, not from your local main. Unpushed commits and uncommitted changes are not in the worker's copy. Check both before you start.

    real commands · paths, names and briefs are illustrative
    git rev-list --left-right --count origin/main...main
    git status --short
  2. Write the brief to a file

    The brief says the goal, the acceptance criteria and what is out of scope. Each claim in it is marked verified (with its source), inferred or unverified. It asks the worker to return decisions the brief does not settle as a question, a recommendation and the impact. Keep it in a file and send the agent a one-line pointer to it.

  3. PLAN: a worktree with an agent

    Create the worktree with --surface terminal, send the pointer, and check with terminal read that it arrived. Silence after a send is not a reason to send again. The PLAN session writes the prompt and saves it in the worktree, where the repo keeps prompts. It does not change code and does not commit.

    real commands · paths, names and briefs are illustrative
    orca worktree create --repo path:/repo --name menu --agent omp --surface terminal --json
    orca terminal send --terminal term-menu --text "Phase PLAN: read briefs/menu.md" --enter --json
    orca terminal read --terminal term-menu --json
  4. REVIEW: compare the prompt with the brief

    The control session compares the prompt with the brief, with what the person literally asked for and with the target repo's rules. It returns only problems it can show. Scope added without evidence that it is needed is a problem. Anything the control session added to the brief on its own is an assumption, and a person confirms it before IMPL.

  5. IMPL: a new session in the same worktree

    Start a new session in the same worktree and give it the reviewed prompt. It carries out the prompt and commits the prompt together with the implementation. If the prompt does not match the state of the repo, it stops and reports. End the PLAN session once IMPL starts.

    real commands · paths, names and briefs are illustrative
    orca terminal create --worktree path:/worktree-menu --command omp --json
  6. Track the work, then merge

    orca worktree ps shows the worktrees and the agents running in them. A task is done when the output and git show the result the brief asked for, not when the terminal goes idle. Before the merge, check that the target repo's required checks really ran. The control session merges the verified branch in the target repo's main checkout. End each session before you delete its worktree or branch.

    real commands · paths, names and briefs are illustrative
    orca worktree ps --json

How to check it works

  1. orca worktree ps --json lists the task's worktree and the agent in it.
  2. After PLAN, git log origin/main..HEAD in the worktree prints nothing: the PLAN session did not commit.
  3. After IMPL, git show --stat on its commit lists the prompt file next to the implementation.

What to watch out for

Sources

← All guides