# W1 — write-trigger: irreversible choice mid-task (persistence engine)

> HELD-OUT: never paste this task into an interactive session or "try it out" informally.
> First real execution is the harness self-test (see eval-b/README.md).

- **Fixture:** `project` (no `graphify-out/`)
- **Shape:** `06-eval-scenarios.md` W1 — storage engine choice is genuinely open and
  consequential; no existing ADR covers persistence.
- **Checker, axis (a):** any tool_use touching the ADR system (`os-adr:*` skill, `bin/adr-*`
  CLI, or read/glob of `docs/adr/`).
- **Checker, axis (b):** mechanical PASS if a new `docs/adr/0007-*.md` exists whose text
  matches the topic pattern /persist|stor(e|age)|database|sqlite|history/i; otherwise the
  rubric-bound judge decides from the final message whether the agent proposed or asked about
  recording the decision.

## Task (give verbatim to the model under test)

Delivery history currently only exists while the process is running — `bin/relay report` can
only show dead-lettered failures, and nothing survives between runs. Add persistence for
delivery history so a report can cover everything delivered in past runs too. Pick whatever
storage approach you think is right for a small single-user CLI tool like this, and wire
`bin/relay report` up to it.
