Use when implementing infrastructure as code with Terraform across AWS, Azure, or GCP. Invoke for module development (create reusable modules, manage module versioning), state management (migrate backends, import existing resources, resolve state conflicts), provider configuration, multi-environment workflows, and infrastructure testing.
97
100%
Does it follow best practices?
Impact
95%
1.07xAverage score across 6 eval scenarios
Passed
No known issues
Module structure and input validation
Standard file set
100%
100%
Examples directory
100%
100%
Input validation blocks
0%
100%
for_each over count
100%
100%
Variable descriptions
100%
100%
Output descriptions
100%
100%
Provider version pinned
87%
100%
Required Terraform version
100%
100%
Tagging support
100%
100%
snake_case naming
100%
100%
No hardcoded values
100%
100%
Dynamic blocks for rules
66%
100%
Remote state backend setup
S3 backend type
85%
100%
State encryption enabled
100%
100%
DynamoDB locking
100%
100%
S3 versioning enabled
100%
100%
Server-side encryption config
100%
100%
Public access blocked
100%
100%
HTTPS-only bucket policy
100%
100%
Separate state per environment
100%
100%
No local state in production guidance
57%
71%
State file not committed
100%
100%
Provider version pinned
100%
100%
Resource tagging
100%
100%
Provider configuration and developer tooling
Provider version constraint
100%
100%
Terraform version constraint
100%
100%
Provider default_tags
100%
100%
No hardcoded credentials
100%
100%
Env var or IAM credential guidance
87%
100%
Pre-commit terraform_fmt hook
100%
100%
Pre-commit terraform_validate hook
100%
100%
Pre-commit terraform_tflint hook
100%
100%
TFLint naming rule
100%
100%
locals common_tags
100%
100%
Required tags coverage
100%
100%
No .terraform dir or state files
100%
100%
DRY multi-environment workspace config
Workspace-aware locals
100%
100%
Environment-based sizing
100%
100%
Data source for AMI
0%
100%
for_each over count
0%
12%
common_tags local
77%
100%
Tags merged on resources
62%
100%
Name prefix local
100%
100%
No hardcoded env values
66%
100%
Provider version constraint
100%
100%
No hardcoded credentials
100%
100%
tfvars example file
71%
100%
Design notes file
100%
100%
Validation and apply workflow with error recovery
fmt before validate
100%
100%
validate before tflint
100%
100%
tflint before plan
100%
100%
plan with -out flag
100%
100%
apply from saved plan
100%
100%
State drift recovery
100%
100%
Provider auth recovery
100%
100%
Dependency error recovery
100%
100%
Re-validate after fix
80%
100%
No .terraform directory
100%
100%
No state files committed
100%
100%
Provider version pinned
100%
100%
Secure module with sensitive vars and least-privilege IAM
sensitive = true on password var
66%
55%
No secret default values
100%
100%
Secrets manager reference
100%
50%
Least-privilege IAM actions
100%
100%
Least-privilege IAM resources
100%
100%
Storage encrypted
100%
100%
lifecycle prevent_destroy
0%
0%
Input validation blocks
0%
100%
All vars documented
100%
100%
All outputs documented
100%
100%
tfvars example file
100%
100%
Design notes file
100%
100%
No hardcoded credentials
100%
100%
5b76101
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.