mcpField
I
infrastructure-coder

infrastructure-coder

github.com/wyattowalshCloud & DevOps549 installsUpdated 8w ago
Repository

About infrastructure-coder

A skill for generating and reviewing infrastructure code across Terraform/OpenTofu, Kubernetes, and Dockerfiles. Its modes cover generation, relative cost comparisons, and security checks, while excluding CI/CD, application code, and absolute pricing.

Key features

  1. 01Generate Terraform/OpenTofu modules
  2. 02Create Kubernetes manifests and Helm charts
  3. 03Optimize Dockerfiles
  4. 04Review IaC correctness and reliability
  5. 05Scan for security misconfigurations
  6. 06Compare relative resource costs

Use cases

  1. 01Build cloud infrastructure modules
  2. 02Write Kubernetes deployment configurations
  3. 03Optimize container image builds
  4. 04Check existing IaC for risks

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/wyattowalsh/agents --skill infrastructure-coder

After installing, type/infrastructure-coderin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

data/
cloud-equivalents.json
dockerfile-rules.json
k8s-best-practices.json
evals/
docker-optimize.json
evals.json
explicit-terraform.json
implicit-trigger.json
kubernetes-manifest.json
negative-control.json
security-scan.json
references/
cloud-equivalents.md
cost-comparison.md
dockerfile-guide.md
kubernetes-patterns.md
security-hardening.md
terraform-patterns.md
scripts/
check.py
dockerfile-analyzer.py
k8s-manifest-validator.py
terraform-module-scanner.py
scripts/asset_toolkit/
__init__.py
_shared.py
common.py
package.py
validate_evals.py
validate_hooks.py
validate_skill.py
templates/
dashboard.html

Details

From the project README

Infrastructure Coder

Generate, review, and analyze Infrastructure-as-Code. Terraform/OpenTofu modules, Kubernetes manifests, Dockerfiles.

Scope: IaC generation and analysis only. NOT for CI/CD pipelines (devops-engineer), application code, cloud console operations, or actual cost calculation.

Canonical Vocabulary

TermDefinition
moduleA self-contained Terraform/OpenTofu unit with variables, resources, and outputs
manifestA Kubernetes YAML resource definition
chartA Helm package containing templated K8s manifests
stageA Docker build stage in a multi-stage Dockerfile
resourceA cloud infrastructure primitive (instance, bucket, network, etc.)
misconfigurationA security or reliability issue in IaC (open ports, missing encryption, no limits)
cost-relativeComparison between resource types/tiers, NOT absolute dollar pricing
hardeningApplying security best practices to reduce attack surface
driftDifference between declared IaC state and actual infrastructure
blast radiusHow many dependent resources would be affected by a change

Dispatch

$ARGUMENTSMode
terraform <requirements>Generate Terraform/OpenTofu modules
kubernetes <requirements> / k8s <requirements>Generate K8s manifests and Helm charts
docker <requirements>Optimize Dockerfiles (multi-stage, caching, security)
review <file-or-path>Audit IaC for correctness and best practices
cost <config-or-path>Cost-relative estimation (compare resource types)
security <config-or-path>Security scan for IaC misconfigurations
EmptyShow mode menu with examples

Mode: Terraform

Generate production-ready Terraform/OpenTofu modules.

Terraform Steps
  1. Parse requirements — identify resources, provider, region, dependencies
  2. Run uv run python scripts/terraform-module-scanner.py <path> on any existing .tf files to understand current state
  3. Generate module structure:
    • main.tf — resource definitions
    • variables.tf — input variables with descriptions, types, defaults, validation
    • outputs.tf — useful outputs for downstream consumption
    • versions.tf — required providers and version constraints
  4. Apply patterns from references/terraform-patterns.md
Generation Rules
  • Always pin provider versions with ~> constraints
  • Use for_each over count for named resources
  • Tag all resources with Name, Environment, ManagedBy = "terraform"
  • Use data sources for existing infrastructure, never hardcode ARNs/IDs
  • Separate state per environment using workspaces or backend config
  • Reference references/cloud-equivalents.md for multi-cloud alternatives

Mode: Kubernetes

Generate Kubernetes manifests or Helm charts.

Manifest Steps
  1. Parse requirements — identify workload type, scaling, networking, storage
  2. Run uv run python scripts/k8s-manifest-validator.py <path> on existing manifests
  3. Generate manifests with best practices:
    • Resource limits and requests on every container
    • Health checks (liveness, readiness, startup probes)
    • Security context (non-root, read-only root filesystem, drop capabilities)
    • Pod disruption budgets for HA workloads
    • NetworkPolicies for pod-to-pod communication
Helm Charts
  1. For Helm charts: parameterize environment-specific values, use values.yaml defaults
  2. Apply patterns from references/kubernetes-patterns.md

Mode: Docker

Optimize Dockerfiles for size, build speed, and security.

  1. Run uv run python scripts/dockerfile-analyzer.py <path> on existing Dockerfile
  2. Parse JSON output for issues and optimization opportunities
  3. Apply optimizations:
    • Multi-stage builds separating build and runtime
    • Order layers by change frequency (dependencies before source)
    • Use specific base image tags (never latest)
    • Distroless or Alpine for runtime images
    • Non-root USER directive
    • COPY specific files, avoid COPY . .
    • Combine RUN commands to reduce layers
    • Use .dockerignore
  4. Reference references/dockerfile-guide.md for detailed patterns

Mode: Review

Audit IaC files for correctness, best practices, and reliability.

Analysis Pipeline
  1. Identify file type (Terraform, K8s manifest, Dockerfile, Helm chart)
  2. Run the appropriate analysis script:
    • .tf files: terraform-module-scanner.py
    • K8s YAML: k8s-manifest-validator.py
    • Dockerfile: dockerfile-analyzer.py
  3. Multi-pass analysis (adapted from review pipeline):
    • Pass 1 — Correctness: syntax, valid references, API version compatibility
    • Pass 2 — Best practices: patterns from reference files, anti-patterns
    • Pass 3 — Reliability: failure modes, blast radius, recovery paths
Findings Report
  1. Present findings grouped by severity (Critical / Warning / Info)
  2. For each finding: file location, issue description, recommended fix
  3. Reference references/security-hardening.md for security-specific checks

Mode: Cost

Cost-relative comparison between resource configurations. NOT absolute pricing.

  1. Identify resources in the configuration
  2. Reference references/cloud-equivalents.md for cross-cloud mapping
  3. Compare configurations on relative axes:
    • Instance families: compute-optimized vs memory-optimized vs general-purpose
    • Storage tiers: standard vs infrequent-access vs archive
    • Network: inter-region vs intra-region vs same-AZ
    • Managed vs self-hosted trade-offs
  4. Present as relative comparison table (e.g., "~2x cost of...", "comparable to...")
  5. Reference references/cost-comparison.md for tier mappings

Output relative comparisons only. Never state dollar amounts — pricing changes constantly and varies by contract.

Mode: Security

Scan IaC for security misconfigurations.

  1. Run the appropriate analysis script for file type
  2. Check against references/security-hardening.md checklist:
    • Network: open security groups, public subnets, missing NACLs
    • Encryption: unencrypted storage, missing TLS, plaintext secrets
    • Access: overly permissive IAM, missing MFA, wildcard policies
    • Containers: privileged mode, root user, host networking, latest tags
    • Secrets: hardcoded credentials, API keys in config, missing vault integration
  3. Classify findings by severity:
    • Critical: exploitable without authentication, data exposure
    • High: requires some access but significant impact
    • Medium: defense-in-depth violation, potential escalation path
    • Low: informational, hardening recommendation
  4. Present findings with CIS/cloud-specific benchmark references where applicable

Dashboard

After any review, cost, or security scan, render an IaC overview dashboard.

  1. Collect all findings and resource inventory
  2. Inject as JSON into templates/dashboard.html:
    {
      "view": "iac-overview",
      "resources": [...],
      "findings": [...],
      "dockerfile_layers": [...],
      "cost_comparison": [...]
    }
    
  3. Copy template to a temporary file, inject data, open in browser

Reference Files

Load ONE reference at a time. Do not preload all references.

FileContentRead When
references/terraform-patterns.mdModule patterns, state management, provider configTerraform mode
references/kubernetes-patterns.mdResource patterns, Helm conventions, scalingKubernetes mode
references/dockerfile-guide.mdMulti-stage builds, layer optimization, distrolessDocker mode
references/cloud-equivalents.mdAWS/GCP/Azure resource mappingCost mode, multi-cloud generation
references/security-hardening.mdIaC security checklist by categorySecurity mode, Review mode
references/cost-comparison.mdRelative cost tiers and trade-offsCost mode
ScriptWhen to Run
scripts/dockerfile-analyzer.pyDocker mode, Review mode (Dockerfiles)
scripts/terraform-module-scanner.pyTerraform mode, Review mode (.tf files)
scripts/k8s-manifest-validator.pyKubernetes mode, Review mode (K8s YAML)
TemplateWhen to Render
templates/dashboard.htmlAfter review, cost, or security scan

Critical Rules

  1. Never state absolute dollar pricing — use relative comparisons only ("~2x", "comparable to")
  2. Always pin versions — provider versions, base image tags, chart versions. Never latest
  3. Never generate IaC with hardcoded secrets — use variables, vault references, or secret managers
  4. Always include resource limits in K8s manifests — CPU, memory requests and limits
  5. Always run the appropriate analysis script before review/security mode output
  6. Never skip security context in K8s — non-root, read-only root FS, dropped capabilities
  7. Tag all cloud resources — Name, Environment, ManagedBy at minimum
  8. Use for_each over count in Terraform for named resources
  9. Never generate overly permissive IAM policies — principle of least privilege
  10. Always include health checks in K8s manifests — liveness, readiness probes
  11. Present review findings grouped by severity — Critical before Info
  12. Load ONE reference file at a time — do not preload all references into context
  13. Refuse CI/CD pipeline requests — redirect to devops-engineer skill
  14. Refuse application code requests — this skill is IaC only
  15. Refuse absolute cost estimation requests — explain why relative comparison is provided instead

Comments

Markdown supported