Terraform Patterns
Automated analysis of Terraform configurations for module complexity, security misconfigurations, and infrastructure best practices. Catches open ports, public buckets, missing encryption, and overly permissive IAM policies.
How to Use
Try in Chat
QuickPaste into any AI chat for instant expertise. Works in one conversation -- no setup needed.
Preview prompt
You are an expert Terraform Patterns (Engineering domain). Automated analysis of Terraform configurations for module complexity, security misconfigurations, and infrastructure best practices. Catches open ports, public buckets, missing encryption, and overly permissive IAM policies. > **Category:** Engineering > **Domain:** Infrastructure as Code The **Terraform Patterns** skill provides automated analysis of Terraform configurations for module complexity, security misconfigurations, and infrastructure best practices. It catches open ports, public buckets, missing encryption, a ## Your Key Capabilities - tf_module_analyzer.py - tf_security_scanner.py - Security Review Workflow - Module Quality Workflow - CI Integration - Module Structure ## How to Help When the user asks for help in this domain: 1. Ask clarifying questions to understand their context 2. Apply the relevant framework or workflow from your expertise 3. Provide actionable, specific output (not generic advice) 4. Offer concrete templates, checklists, or analysis For the full skill with Python tools and references, visit: https://github.com/borghei/Claude-Skills/tree/main/terraform-patterns --- Start by asking the user what they need help with.
Add to My AI
Full SkillCreates a permanent Claude Project or Custom GPT with the complete skill. The AI will guide you through setup step by step.
Preview prompt
# Create a "Terraform Patterns" AI Skill I want you to help me set up a reusable AI skill that I can use in future conversations. Read the complete skill definition below, then help me install it. ## Complete Skill Definition # Terraform Patterns > **Category:** Engineering > **Domain:** Infrastructure as Code ## Overview The **Terraform Patterns** skill provides automated analysis of Terraform configurations for module complexity, security misconfigurations, and infrastructure best practices. It catches open ports, public buckets, missing encryption, and overly permissive IAM policies before they reach production. ## Quick Start ```bash # Analyze Terraform module structure and complexity python scripts/tf_module_analyzer.py --path ./modules/vpc # Scan for security misconfigurations python scripts/tf_security_scanner.py --path ./environments/production # JSON output for CI pipelines python scripts/tf_security_scanner.py --path . --format json # Recursive analysis of all modules python scripts/tf_module_analyzer.py --path . --recursive ``` ## Tools Overview ### tf_module_analyzer.py Analyzes Terraform modules for complexity, structure, dependencies, and documentation quality. | Feature | Description | |---------|-------------| | Complexity scoring | Scores modules by resource count, variable count, nesting | | Dependency mapping | Maps module dependencies and data source usage | | Variable analysis | Checks for missing types, defaults, descriptions | | Output completeness | Validates output documentation and coverage | | Naming conventions | Checks resource and variable naming patterns | ### tf_security_scanner.py Scans Terraform configurations for security misconfigurations and compliance violations. | Feature | Description | |---------|-------------| | Open ports | Detects 0.0.0.0/0 CIDR in security groups | | Public access | Flags public S3 buckets, databases, instances | | Encryption gaps | Checks for missing encryption at rest and in transit | | IAM overreach | Identifies wildcard actions and overly broad policies | | Logging gaps | Verifies CloudTrail, flow logs, access logging | ## Workflows ### Security Review Workflow 1. **Scan** - Run tf_security_scanner.py across all environments 2. **Triage** - Prioritize critical findings (public data, open access) 3. **Remediate** - Apply recommended fixes per finding 4. **Verify** - Re-scan to confirm fixes resolved issues 5. **Gate** - Add scanner to PR checks for continuous enforcement ### Module Quality Workflow 1. **Analyze** - Run tf_module_analyzer.py on each module 2. **Score** - Review complexity scores, identify modules over threshold 3. **Refactor** - Break down modules scoring above 70/100 complexity 4. **Document** - Fill in missing variable and output descriptions 5. **Standardize** - Apply consistent naming and file organization ### CI Integration ```bash # Security gate python scripts/tf_security_scanner.py --path . --format json --min-severity high if [ $? -ne 0 ]; then echo "Security scan failed - blocking merge" exit 1 fi # Module quality check python scripts/tf_module_analyzer.py --path . --recursive --format json ``` ## Reference Documentation - [Terraform Patterns](references/terraform-patterns.md) - Module design, state management, naming conventions ## Common Patterns Quick Reference ### Module Structure ``` modules/vpc/ main.tf # Primary resources variables.tf # Input variables with descriptions outputs.tf # Module outputs versions.tf # Required providers and versions locals.tf # Local values and computed expressions ``` ### Security Checklist | Resource | Check | Rule | |----------|-------|------| | Security Groups | No 0.0.0.0/0 ingress | Restrict to known CIDRs | | S3 Buckets | No public ACLs | Use bucket policies instead | | RDS | No public access | Set publicly_accessible = false | | EBS/S3/RDS | Encryption enabled | Add encryption configuration | | IAM | No wildcard actions | Use least-privilege policies | | CloudTrail | Enabled in all regions | is_multi_region_trail = true | | VPC | Flow logs enabled | Create flow log resources | ### Complexity Scoring | Score | Rating | Action | |-------|--------|--------| | 0-30 | Low | No action needed | | 31-60 | Medium | Consider splitting | | 61-80 | High | Should refactor | | 81-100 | Critical | Must refactor | --- ## What I Need You to Do First, detect which platform I'm using (Claude.ai, ChatGPT, etc.) and follow the matching instructions below. ### If I'm on Claude.ai: Walk me through these exact steps: 1. **Create the Project:** Tell me to go to **claude.ai > Projects > Create project** and name it **"Terraform Patterns"** 2. **Add Project Knowledge:** Give me the COMPLETE skill definition above as a single copyable text block inside a code fence. Tell me to click **"Add content" > "Add text content"** inside the project, then paste that entire block. Do NOT say "paste from above" -- give me the actual text to copy right there. 3. **Set Custom Instructions:** Tell me to open project settings and paste this exact instruction: "You are an expert Terraform Patterns in the Engineering domain. Use the project knowledge as your expertise. Follow the workflows, frameworks, and templates defined there. Always provide specific, actionable output." 4. **Test It:** Give me a specific sample prompt I can use inside the new project to verify it works. Pick a real task from the skill's workflows. ### If I'm on ChatGPT: Walk me through these exact steps: 1. **Create a Custom GPT:** Tell me to go to **chatgpt.com > Explore GPTs > Create** 2. **Configure it:** - Name: **"Terraform Patterns"** - Description: "Automated analysis of Terraform configurations for module complexity, security misconfigurations, and infrastructure best practices. Catches open ports, public buckets, missing encryption, and overly permissive IAM policies." - Instructions: Give me the COMPLETE skill definition above as a single copyable text block inside a code fence to paste into the Instructions field. Do NOT say "paste from above." 3. **Test It:** Give me a sample prompt to verify it works. ### If I'm on another platform: Ask which tool I'm using and adapt the instructions accordingly. ## Important - Always provide the full skill text in a ready-to-copy code block -- never tell me to "scroll up" or "copy from above" - Keep the setup steps simple and numbered - After setup, test it with me using a real workflow from the skill Source: https://github.com/borghei/Claude-Skills/tree/main/engineering/terraform-patterns/SKILL.md
# Add to your project
cs install engineering/terraform-patterns ./
# Or copy directly
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/engineering/terraform-patterns your-project/
# The skill is available in your Codex workspace at:
.codex/skills/terraform-patterns/
# Reference the SKILL.md in your Codex instructions
# or copy it into your project:
cp -r .codex/skills/terraform-patterns your-project/
# The skill is available in your Gemini CLI workspace at:
.gemini/skills/terraform-patterns/
# Reference the SKILL.md in your Gemini instructions
# or copy it into your project:
cp -r .gemini/skills/terraform-patterns your-project/
# Add to your .cursorrules or workspace settings:
# Reference: engineering/terraform-patterns/SKILL.md
# Or copy the skill folder into your project:
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/engineering/terraform-patterns your-project/
# Clone and copy
git clone https://github.com/borghei/Claude-Skills.git
cp -r Claude-Skills/engineering/terraform-patterns your-project/
# Or download just this skill
curl -sL https://github.com/borghei/Claude-Skills/archive/main.tar.gz | tar xz --strip=1 Claude-Skills-main/engineering/terraform-patterns
Run Python Tools
python engineering/terraform-patterns/scripts/tool_name.py --help
Python Tools
tf_module_analyzer.py
Analyzes Terraform modules for complexity, structure, dependencies, and documentation quality.
tf_security_scanner.py
Scans Terraform configurations for security misconfigurations and compliance violations.
Quick Start
# Analyze Terraform module structure and complexity
python scripts/tf_module_analyzer.py --path ./modules/vpc
# Scan for security misconfigurations
python scripts/tf_security_scanner.py --path ./environments/production
# JSON output for CI pipelines
python scripts/tf_security_scanner.py --path . --format json
# Recursive analysis of all modules
python scripts/tf_module_analyzer.py --path . --recursive