Skip to content

v2.20.0 ·

An agent can prepare the review, and the record says so

After an overnight autopilot run, every call the agent made sits in a log waiting for a verdict: keep, reject or promote. In one repository that came to 14 logs and about 180 entries. I could not judge most of them. Each one assumes context from a run I did not watch.

So I did what anyone would. An agent read the logs and told me what to answer, and I copied its advice into the prompts one by one. The tool wrote every one of those verdicts down as mine. That was not true. Worse, the advice could be impossible: it recommended promoting three entries, and two came from logs older than the **Type:** line, which the tool never offers to promote. I found out halfway through.

What changed

The agent now writes its advice to a file, and I accept it in one step:

aidlc autopilot review --from <file>

Before it asks anything, the command checks the whole file against the logs. A promote the tool would refuse, an entry that does not exist, a verdict on something already reviewed, an entry the file forgot: each one is named, and nothing is written. Then it keeps every routine call at once and stops only where I am needed, on open questions and on anything the agent proposes to reject or promote. Each stop shows what happened, a concrete example, and what changes with each answer, with the agent's answer listed first.

The record now says who decided. A verdict taken from the file ends in "(accepted from the agent's proposal)". One I gave at a prompt ends in "(judged by the person)". Everything that reads a verdict reads only its first word, so nothing downstream had to change.

Two smaller things came with it. aidlc autopilot review --pending walks every instance with an unreviewed entry, so the shell loop over instance names is gone. And an entry from an old log with no type can now be promoted, though it still never blocks a merge.

Why this way

The file is YAML, not Markdown. The tool has to check every verdict against its own rules, and a parser it already has, which treats a duplicate key as an error, beats a new parser for prose an agent writes. Routine means a proposed keep and nothing else. Nothing the agent suggests reaches the guidance every later item reads unless I answered a stop.

What it does not do

It makes blind approval cheaper. That is the cost, and the record is the answer: anyone reading the log later can see which calls I judged and which I only accepted. The agent still cannot run the review itself, because the command refuses without a person at a terminal. And it reads only the checkout it runs in, so a log still sitting in another worktree waits for its own review.