# optimize-unattended

> Autonomous twin of optimize. For overnight runs.

optimize-unattended is the autonomous twin of optimize: the same metric-driven hypothesis loop, but with no batch checkpoints. The experimentation step runs unattended to a termination condition (or a manual interrupt), making it suitable for overnight and weekend runs. Six of its seven steps are byte-identical to optimize — only experimentation differs.

```
protocol_start(protocol_name="optimize-unattended", max_iterations=200, max_duration="8h")
```

## Steps (7 steps)

1. **setup** — discussion — Same interactive metric elicitation as optimize. batch_size is still elicited but inert — there’s no checkpoint to gate.
2. **metric-script** — implementation — Same metric-script contract + double-run stability gate.
3. **baseline** — implementation — Same baseline capture + cost projection, plus an unbounded-mode typed acknowledgment.
4. **experimentation** — implementation — The autonomous loop — no DAIC switches mid-run, no per-iteration user gate. Runs until a termination condition fires or the operator interrupts.
5. **synthesis** — documentation — Same findings document + non-blocking metric-gaming audit.
6. **code-review** — implementation — Same full two-stage gate.
7. **completion** — discussion — Same squash-from-best_commit + leaderboard MR/PR.

## What makes it distinctive

### No checkpoints — runs to termination

The experimentation step drops the batch_checkpoint post_func. It keeps going until check_termination fires (max_iterations, max_duration, regression-halt, or target metric reached) or you interrupt manually.

### Termination conditions

Set bounds up front: a max iteration count, a wall-clock duration (e.g. “8h”), a consecutive-regression halt, or a target metric value. The first to fire ends the run.

### Same engine, same guarantees

Engine-owned measurement, frozen paths, and the squash+leaderboard completion are shared verbatim with optimize. Only the human-in-the-loop pause is removed.

branch: `optimize/ — o-<name>`
