Step lifecycle
Generated Markdown for references/concept_step_lifecycle.md.
Open book page Back to the skill graph
# Step lifecycle
_Per-step check → apply → re-check, with the status transitions and halt rules._
Each step runs a check → apply → re-check lifecycle. The status values come from the [result enums](../references/fact_result_enums.md).
1. **Check** — `AlreadyConfigured` → report \*Already Configured\*, continue.
`RebootRequired` → in apply mode report \*Reboot Required\* and halt the play
(exit 3); in check mode it is an ordinary report status (check is report-only).
`NotConfigured` → proceed to apply (check mode just reports \*Not Configured\*).
Error → halt unless `--continue-on-error`.
2. **Apply** — `Success` → re-check. `RebootRequired` → report and halt.
3. **Re-check** — must return `AlreadyConfigured`, which reports \*Configured\*;
anything else reports \*Error\* ("apply claimed success but check disagrees").
An `Err` (or a VM fault) maps to the step's **Error** status. Logging and output during a step go through the [log module](../references/entity_log_module.md).
## Related
- [Convergence contract](../references/concept_convergence_contract.md)
- [Step](../references/concept_step.md)
- [CheckResult and ApplyResult](../references/fact_result_enums.md)
- [Check, then apply a play](../references/process_check_then_apply.md)
[← Back to SKILL.md](../SKILL.md)