---
{
  "n": 2,
  "title": "Building a plan",
  "abstract": "",
  "refs": [],
  "seen": [
    "system",
    "user",
    "agent"
  ],
  "data": {
    "starts_on": "plan.created",
    "system": true,
    "runs": {},
    "abandoned": [
      {
        "about": "codex-fix|plan:1",
        "step": 1,
        "why": "The Codex delivery test passed; this disposable run is complete.",
        "at": 1790173595.267792
      },
      {
        "about": "main|plan:21",
        "step": 2,
        "why": "the user cancelled the plan and asked for a design instead",
        "at": 1790396312.989983
      }
    ],
    "started_by": "",
    "files": {},
    "unless": {},
    "only_when_idle": false,
    "talks_in": "",
    "lasting": false,
    "dispatch": ""
  },
  "created": 1790092630.2805161,
  "updated": 1791625523.775317,
  "deleted": 0.0,
  "completed": 0.0,
  "outcome": "",
  "type": "sequence"
}
---
How a plan is built with the user, in order, from its goal to the moment it is ready for them to approve.

## Agree on the plan’s goal
Settle with the user what is true when the plan is done, and set it as the plan's goal.

## Add the plan’s phases
Add every phase in order with journal plan phase <plan n> "<title>" --when "<complete when>", and --checkpoint where the user should look before it goes on.

## Add to-dos to each phase
journal plan stage <plan n> todos, then file the to-dos and put each under its phase with journal plan todos <plan n> <phase> <rows>.

## Ask the user to approve the plan
When every phase has rows, journal plan ready <plan n>. Only the user approves it; you start it when they have.
