Purpose
This checklist verifies a Terraform module is production-ready before it is published. Run through every item before the module is shared with the team.
Checklist
Design
- The module has a single responsibility. (critical)
- Every input has a description and a type. (critical)
- Every variable has validation where appropriate. (warn)
- Every output has a description. (critical)
Documentation
- The module interface is documented in a README. (critical)
- The module README has an example. (warn)
Tests
- The module has unit tests. (warn)
- The module has plan tests. (critical)
Versioning
- The module is versioned with Git tags. (critical)
- The module is consumed via Git ref or registry version, not main. (critical)
CI
- The module CI runs lint, validate, and security scan. (critical)
Refactoring
- The module has no local-exec or remote-exec provisioners. (critical)
Verification
The checklist is complete when every item is checked. A
critical item unchecked is a blocker.
Escalation
If a critical item cannot be satisfied, escalate to the engineering manager.