Skip to content

v2.24.0 ·

Autopilot now runs the retrospective it used to leave for me

Every time autopilot closed an item, it left a note behind: a retrospective is pending. Then it moved on to the next item. The note sat there until I opened a session and ran the retrospective myself.

Mostly, that never happened. On 2026-11-01, 59 of them were waiting, and the last lesson had been written on 2026-10-24. That is 59 finished pieces of work whose lessons never reached the agents building the next thing. The whole point of the retrospective is that a later agent does not pay again for a mistake the project already made. A retrospective nobody runs teaches nothing.

What changed

After each close-out, whether autopilot merged the item or I did, it now runs the retrospective itself. One unattended agent, in the primary checkout, one at a time. While it runs, nothing else merges or closes out. Builds keep going.

The agent writes, but it does not commit. Autopilot does, and only for a short list of files: the instance's retrospective, the lessons appended to .aidlc/guidance/lessons.md, at most two new follow-up items in the roadmap inbox, and the instance's own cost ledger. Anything else that changed while it ran stays exactly where it is, uncommitted, and gets named in the closing line. My own session shares that checkout, and its cost hook writes there too. Restoring those files would have deleted my data.

Why so strict

Lessons are read by every later session. That makes them an injection surface, and an unattended agent is writing them with nobody watching. So the limits are hard checks, not instructions. Three lessons at most. No existing lesson line may change. Every unattended section carries a line saying it was not reviewed by a person. The digest that every session always reads is never rewritten unattended. Consolidating lessons is still my job.

A retrospective that breaks a limit, fails, runs past 30 minutes or past the item's cost cap commits nothing. Its changes are undone, the pending note goes back, and one line says why. It never parks the item and never stops the merge lane. I would rather lose a retrospective than lose the lane.

What it does not do

It does not run the 59 already waiting. Those are still mine to run, or to drop.

Its cost had a catch. A session after an instance is finished matched no claim, so the cost tracker filed it as unattributed, in a file git tracks. Every retrospective would have dirtied main and recorded nothing against its item. Autopilot now names the instance for the cost tracker, and records the session once before it commits, so the ledger is final.

One limit remains. A custom agent command reports no session id, so its cost can still land after the commit. The next close-out names that file as left out.