# Auto Plan — the ordered eight-stage profile

_Source: `system/converge/docs/CHASSIS_ORCHESTRATOR.md` (~L115) and
`system/core/lib/chassis-core/CONSUMER_PROFILE_CONTRACT.md § 1.1`. No redaction required — framework
orchestration documentation and declarative stage data, no secrets or customer data._

Auto Plan is consumer profile #1 of the Chassis engine. Its `stages` surface is an ordered array of
eight stage descriptors, declared as **profile data** in `system/converge/lib/chassis/stages.mjs` and
loaded through the engine's fail-closed `loadProfile`. The engine never imports the stages module
directly — it is handed a `stageResolver` derived from this array at profile-load
(`CONSUMER_PROFILE_CONTRACT.md § 1.1`).

## The ordered sequence

Per `CHASSIS_ORCHESTRATOR.md` L115: "The ordered 8-stage auto sequence (draft / pre_exec / execute /
post_exec / fold / converge / paperwork / close) as PROFILE DATA (advance/continue tokens, command
specs, normalize mode, the complete `ROUND_EXIT`/`POSTEXEC_EXIT`/`CLOSE_EXIT` enums)."

| # | Stage | Role |
| --- | --- | --- |
| 1 | `draft` | Draft (or ingest) the plan. Carries a `designGate` property that fires the fire-once, draft-anchored design read exactly once per run (run-scoped `design-read-done.json` sentinel — never re-fires). |
| 2 | `pre_exec` | Pre-execution Codex audit round(s). |
| 3 | `execute` | Execute the plan (dispatch the build work). |
| 4 | `post_exec` | Post-execution Codex audit round(s). |
| 5 | `fold` | Fold authoritative audit findings back into the shipped code/docs. |
| 6 | `converge` | Converge autonomy assessment. |
| 7 | `paperwork` | Close-session paperwork pass. |
| 8 | `close` | Terminal close + two-signal surface. |

Each descriptor declares its `driver` (`node_command` / `operator` / `design_prepass`),
`advanceTokens`, `continueTokens`, and — for `node_command` stages — a `commandSpec` with a
`codeTokenMap` or `exitTokenMap` (`CONSUMER_PROFILE_CONTRACT.md § 1.1`).

## The stages were collapsed 10 → 8 (Wave 3, 2026-07)

`system/converge/CLAUDE.md` records the **auto-chassis simplification (BRANCH B)**: the two-pass design
gate's epoch-marker / handoff / resume machinery (`design_prepass_pre` / `_post` stages,
`design-pass-done` markers) was deleted, the design read became a single fire-once draft-anchored arm,
and "the stages collapsed 10→8 (draft / pre_exec / execute / post_exec / fold / converge / paperwork /
close)." The eight-stage shape above is the post-simplification profile — there are no separate
`design_prepass` stages; the design read rides on the `draft` stage's `designGate`.

## Stage consequence classes (calibration weighting)

The profile's `stageConsequenceMap` labels only the non-`'routine'` stages; the engine defaults
off-map stages to `'routine'` (`CONSUMER_PROFILE_CONTRACT.md § 1.5`). Auto declares:

```
AUTO_STAGE_CONSEQUENCE_MAP = {
  close: 'merge_gate', paperwork: 'merge_gate',
  pre_exec: 'stage_gate', post_exec: 'stage_gate',
}
```
(`auto-profile.mjs:228-233`). The off-map stages — `draft`, `execute`, `fold`, `converge` — fall back
to `'routine'`. A consumer must not change this fallback: an off-map stage silently changing class is
invisible to a terminal-verdict parity check yet re-weights the calibration sampler's high-consequence
bias (`§ 1.5`, AC-03 ii).
