formae apply requires a mode. The mode determines what formae is allowed to do, and more importantly, what it won’t do.
Reconcile
Patch
- Working without a declared codebase. When you don’t have code that describes the desired state of your infrastructure, or don’t have it to hand, you work by extract-and-patch: extract the resource or two you want to change, edit them, and apply them back with patch.
- Emergency fixes. When you’re firefighting an incident and want the smallest possible blast radius, patch one or two resources to resolve it rather than reconciling a whole stack.
A patch is an out-of-band change
A patch changes your infrastructure without going through a full reconcile, so formae treats it exactly like a change made outside formae, the same way it treats an out-of-band change that sync pulls in. After a patch, your codebase no longer describes reality. The next soft reconcile on that stack detects the drift the patch introduced and fails, forcing you to deal with it: absorb the change back into your code, or undo it. This is deliberate. A 2am patch fixes the incident now; the drift it created surfaces the next morning, so someone reconciles the code back to reality instead of silently losing the change.Collection handling
When a resource has a collection property (tags, security groups, or any list of values), the apply mode determines how that collection is updated. Reconcile mode treats your forma as the complete truth: the collection after apply matches exactly what you specified, and elements not in your forma are removed. Patch mode is append-only: elements in your forma are guaranteed to exist after apply, but existing elements are never removed. Example: a resource has tags[A, B, C] and your forma specifies [B, D].
This makes patch mode safer for shared resources where multiple teams manage different parts of the same collection.
Hard vs soft reconcile
When someone changes a resource outside of formae (through the cloud console, another tool, or a script), that’s an out-of-band change. Reconcile mode handles them in two ways.Soft reconcile (default)
If formae detects out-of-band changes, it rejects the apply to protect you:Hard reconcile
If you’ve reviewed the changes and want to overwrite them, add--force:
Resource replacement
Most property changes update a resource in place. Some properties are immutable, though: changing them triggers a destroy followed by a create.See also
- Policy: auto-reconcile policies apply reconcile mode on a schedule.
- Synchronization: how formae detects the out-of-band changes that soft reconcile protects against.

