Prepare the Seriatim simplification sprint

This commit is contained in:
2026-09-08 00:53:06 +00:00
parent fc803587b8
commit 4e8018405a
3 changed files with 329 additions and 21 deletions

View File

@@ -29,14 +29,23 @@
`community.general` is an approved, stable dependency and its modules may be
selected freely when appropriate; declare and pin the collection wherever a
role or collection depends on it.
- Trust the documented contract of each Ansible module, including its
idempotence and change detection.
- Gather state only when the result controls necessary behavior that the
responsible module cannot determine. Fingerprints, checksums, sidecar state,
manual drift detection, and speculative recovery paths require an explicit
acceptance criterion and rationale. Do not precede a declarative module with
a probe or recreate its internal logic unless a concrete requirement cannot
be expressed by the module itself.
- Do not strengthen the specification. Implement the requested invariants
without inventing additional guarantees for integrity, provenance, drift
recovery, corruption detection, rollback, or similar behavior.
- Prefer convergence over state inspection. Declare what should be true and
let the relevant module reconcile it.
- Trust Ansible's abstraction boundary. A module that manages state owns the
checks necessary to manage that state. Inspect it beforehand only when the
observed state is independently required.
- Complexity requires a requirement. Every additional task, conditional,
registered variable, or state probe must correspond to behavior the role is
required to provide.
- Persisted role-private state is a design smell. Fingerprints, checksum
databases, stamps, manifests, and similar bookkeeping require specific
justification.
- **Assume convergence first.** Before adding machinery for an edge case,
determine whether rerunning the ordinary desired-state operations already
repairs it.
- Consider whether a conditional task or a notified handler best expresses the
dependency. A `when` condition keeps triggers visible at the action site but
grows with their number. Notifications keep the action independent of the