terraform-review
Skill0 starsChanged 41 days agoMITView on GitHub
Use when doing a bounded review of Terraform or OpenTofu code, modules, state operations, or plan output; this is the personal default. Mention "terraform review", "review this module", or "terraform plan looks wrong"; consult third-party terraform-skill for deeper reference material when the bounded review needs it.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- riteshsonawane1372/devops-skillstheir own version, first seen Oct 20, 2026
- skwashd/skillstheir own version, first seen Oct 15, 2026
- gvago/unofficial-qodo-review-skillstheir own version, first seen Sep 24, 2026
- NotHarshhaa/devops-skillstheir own version, first seen Sep 19, 2026
- gmanch94/claude-code-aidlc-templatetheir own version, first seen Jul 11, 2026
- Jinbae10/skillstheir own version, first seen Jul 7, 2026
Used with
Projects with it also use observability.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
OpenAISkillobservability
Vercel Observability expert guidance — Drains (logs, traces, speed insights, web analytics), Web Analytics, Speed Insights, runtime logs, custom events, OpenTelemetry integration, and monitoring dashboards. Use when instrumenting, debugging, or optimizing application performance and user experience on Vercel.
Also in 3 projects that use this
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- gmegidish/skills★ 13same name
- NotHarshhaa/devops-skills★ 8same name
- gmanch94/claude-code-aidlc-template★ 2same name
- gvago/unofficial-qodo-review-skills★ 2same name
- skwashd/skills★ 2same name
- Jinbae10/skills★ 0same name
- riteshsonawane1372/devops-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository45 other files it gives its agents.
- admission-policy-reviewSkill
- alert-rule-reviewSkill
- architecture-reviewSkill
- argocd-applicationsetSkill
- argocd-debugSkill
- argocdSkill
- cert-manager-debugSkill
- cicd-reviewSkill
- cilium-debugSkill
- ciliumSkill
- cluster-backupSkill
- dast-reviewSkill
- dockerfile-reviewSkill
- english-technical-messageSkill
- git-messageSkill
- gitops-reviewSkill
- go-bugfixSkill
- go-code-reviewSkill
- go-testing-reviewSkill
- grafana-dashboardsSkill
- helm-reviewSkill
- homelab-change-planSkill
- incident-analysisSkill
- ingressSkill
- interview-system-designSkill
- istio-debugSkill
- istioSkill
- kubernetes-autoscalingSkill
- kubernetes-debugSkill
- kubernetes-securitySkill
- kubernetes-yaml-reviewSkill
- migration-planSkill
- observability-reviewSkill
- observability-stackSkill
- production-readinessSkill
- pr-reviewSkill
- root-cause-analysisSkill
- runbook-writerSkill
- runtime-security-reviewSkill
- secrets-managementSkill
- storage-debugSkill
- supply-chain-securitySkill
- upgrade-readinessSkill
- vaultSkill
- vulnerability-triageSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 4 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 18
Read required_version, provider constraints, .terraform.lock.hcl, and the exact plan if supplied.
- Distinctive: line 22
Do not treat a state-changing command or destructive plan as routine.
- Distinctive: line 26
Follow the Workflow, Safety rules, and Quality checklist below.
- Very specific: line 37
Use when reviewing Terraform/OpenTofu modules, variables/outputs, provider configuration, or plan output — before anything is applied.
- Very specific: line 39
Use the third-party terraform-skill as a deeper reference when this bounded review needs additional detail.
- Very specific: line 56
Check module structure: single-responsibility modules, sane variable/output contracts, no hidden coupling via terraform_remote_state where …
- Very specific: line 58
Check variables: typed, validated (validation blocks) where input mistakes would be costly, sensible defaults or explicitly required with …
- Very specific: line 60
Check outputs: only what downstream consumers need.
- Distinctive: line 61
Check provider constraints: version pinned with a sensible range, not fully open or fully pinned to an exact patch that blocks security …
- Distinctive: line 63
Check for hardcoded values/secrets: credentials, account IDs, or environment-specific values that should be variables or come from a …
- Very specific: line 65
Check lifecycle rules: prevent_destroy on genuinely stateful/critical resources, create_before_destroy where replacement would otherwise …
- Very specific: line 68
Check plan output (if provided) for unexpected replacements (-/+) versus in-place updates — a replacement on a stateful resource (database, …
- Very specific: line 71
Check for destroy risk: never treat terraform destroy/-auto-approve as safe to run automatically.
- Very specific: line 94
Do not run terraform apply, destroy, or import — plan/read-only commands (terraform plan, validate, fmt -check, show) only, and only when …
- Very specific: line 96
Never run terraform apply -auto-approve or destroy -auto-approve under any circumstance.
- Very specific: line 97
Never echo secret values found in .tfvars, state, or plan output — describe the exposure without quoting the value.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Terraform Review
TL;DR checklist
- Identify the present risk: identity churn, secrets, blast radius, CI drift, or state corruption.
- Check module contracts, provider constraints, lifecycle rules, and the supplied plan.
- Flag unexpected replacement or destroy for explicit review.
Key read-only checks
- Read
required_version, provider constraints,.terraform.lock.hcl, and the exact plan if supplied.
Common pitfalls
- Do not treat a state-changing command or destructive plan as routine.
Agent procedure
Follow the Workflow, Safety rules, and Quality checklist below.
Quick references
- references/version-guards.md
- references/examples.md
Last verified: unverified
When to use
Use when reviewing Terraform/OpenTofu modules, variables/outputs, provider configuration, or
plan output — before anything is applied.
Use the third-party terraform-skill as a deeper reference when this bounded review needs
additional detail; keep this skill as the default entry point for a specific module or plan.
Goal
Diagnose the actual failure mode or risk category present, and give a response with explicit assumptions, risk, and a rollback-aware fix — not a generic "looks fine" or a wall of unranked opinions.
Workflow
- Identify the failure mode category present, if any: identity churn (resource replacement
forced by a rename/tag/provider change), secrets (hardcoded credentials, secrets in state
or outputs), blast radius (a change that affects far more than intended, e.g. a
module-wide variable change or a
count/for_eachkey change reshuffling resource addresses), CI drift (scheduled or hiddenapplydiverging from what's reviewed), or state corruption risk (manual state edits, missing lifecycle protections on stateful resources). - Check module structure: single-responsibility modules, sane variable/output contracts, no
hidden coupling via
terraform_remote_statewhere a proper interface would do. - Check variables: typed, validated (
validationblocks) where input mistakes would be costly, sensible defaults or explicitly required with no default. - Check outputs: only what downstream consumers need;
sensitive = trueon anything secret. - Check provider constraints: version pinned with a sensible range, not fully open or fully pinned to an exact patch that blocks security updates.
- Check for hardcoded values/secrets: credentials, account IDs, or environment-specific values that should be variables or come from a secrets manager.
- Check lifecycle rules:
prevent_destroyon genuinely stateful/critical resources,create_before_destroywhere replacement would otherwise cause an outage,ignore_changesused narrowly (not masking real drift). - Check
planoutput (if provided) for unexpected replacements (-/+) versus in-place updates — a replacement on a stateful resource (database, volume) is a red flag requiring explicit confirmation. - Check for destroy risk: never treat
terraform destroy/-auto-approveas safe to run automatically; if a destroy is genuinely needed, require aplan -destroyreview first.
References
references/version-guards.md— version floors for features you might recommend (native tests 1.6+, mocks 1.7+, moved/import blocks), Terraform vs OpenTofu divergence, the stuck state-lock protocol, and CI-vs-local version-skew diagnosis.references/examples.md— bad → good Terraform pairs mapped to the risk categories above.references/tools.md— optional local tools (tflint,checkov,trivy config,gitleaks) that can supplement this manual review. Never install these automatically.references/state-operations.md— state surgery decision table (moved/import/removed blocks vs CLI), backend migration, state splitting, drift reconciliation, disaster recovery, workspaces-vs-directories, and the safe-destroy protocol.references/module-design.md— module sizing/composition, variable and output contracts, version pinning, for_each/count keying rules, dynamic blocks, and named anti-patterns (god modules, thin wrappers, hardcoded env assumptions).references/security-compliance.md— what actually lands in state (write-only/ephemeral floors), OIDC vs static credentials, state backend encryption/hardening, policy-as-code pipeline placement, and compliance checklist items.
Safety rules
- Do not run
terraform apply,destroy, orimport— plan/read-only commands (terraform plan,validate,fmt -check,show) only, and only when explicitly requested. - Never run
terraform apply -auto-approveordestroy -auto-approveunder any circumstance. - Never echo secret values found in
.tfvars, state, or plan output — describe the exposure without quoting the value. - State every finding's risk category explicitly (identity churn / secrets / blast radius / CI drift / state corruption) so the user can prioritize.
Output format
## Assumptions
<Terraform/OpenTofu version, provider versions, what wasn't verifiable>
## Risk category: <identity churn | secrets | blast radius | CI drift | state corruption | none>
## Findings
- <finding> — risk: <what breaks / blast radius> — fix: <concrete change>
## Remediation tradeoffs
<if the fix has a cost — e.g. forces a resource replacement — state it explicitly>
## Validation plan
<terraform plan / validate steps to confirm the fix before apply>
## Rollback notes
<how to revert if the change causes a problem after apply>Quality checklist
- Risk category is stated explicitly, not left implicit
- Any finding involving a stateful resource replacement is flagged as high risk
- No
apply/destroywas run, and none was suggested with-auto-approve - Secret values were never echoed, only described
- A validation plan and rollback notes are included, not just the fix
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

