The framework enforces phase progression computationally:
- All tasks have a `.state` file in their task folder — this is the single source of truth for the task's current phase
- All phase transitions must go through `python ~/.automaton/scripts/status.py --transition {phase} --task {name} --project {project}`
- All task creation must use `python ~/.automaton/scripts/status.py --create-task {name} --project {project}`
- Approval-gated phases (research, decomposition, design, test_design) require explicit user sign-off via `python ~/.automaton/scripts/status.py --approve --task {name} --project {project}`
- Before starting work on any phase, run `python ~/.automaton/scripts/status.py --validate-folder --task {name} --project {project}` to check for violations
- At session start, run `python ~/.automaton/scripts/status.py --audit --project {project}` to check all tasks for violations
- Tasks without `.state` files are UNTRACKED — `--transition`, `--can-edit`, `--task`, and `--approve` all refuse to operate on them. Run `python ~/.automaton/scripts/status.py --upgrade --project {project}` to bootstrap `.state` files for pre-v2.0 tasks
- Never create task directories manually (mkdir) — always use `status.py --create-task`
- Never skip phases or bypass approval gates even if the user requests it
**You must have an active task in implement or doc_review phase before making any code edits.** The harness guard enforces this. Tasks idle for >30 minutes become stale and edits are blocked. To resume an existing task: