Drift & plan mode
Ordo separates deciding to change a machine from changing it, and keeps watching once a change has landed. Two ideas do the work: the plan (what would change) and drift (what has changed since).
Plan mode
Section titled “Plan mode”A plan is an accurate diff of what an apply would do — nothing is applied while you plan:
ordo state plan --module <module> <node-id>The plan resolves the module against the target agent’s attributes, computes the per-resource changes, and predicts any change triggers (a reload or restart that would fire). When it looks right, the same module set applies:
ordo state apply --module <module> <node-id>Drift detection
Section titled “Drift detection”After a successful apply, the orchestrator records what was applied. Drift is the gap between that record and the machine’s actual state — a file edited by hand, a service stopped, a package removed.
Check it on demand:
ordo state drift <node-id> # this agent, against its last applyordo state drift-list # every agent with outstanding driftordo state drift-show <node-id> # the detailed per-resource diffThe orchestrator also schedules periodic drift checks itself (agents do not decide their own cadence), so drift surfaces without anyone running a command.
Surfaced, never silently fixed
Section titled “Surfaced, never silently fixed”Ordo does not automatically re-apply on drift. When a check finds drift it
raises a drift.detected notification and records an audit event — then leaves
the decision to you. Re-apply to reconcile, or investigate first; either way the
change is visible rather than quietly undone.
In the web UI, the Reconcile view is the single place that shows what needs attention and lets you apply from there. It surfaces and triggers work; it never applies on its own.