Aws
Open registry of community-contributed AI coding skills (SKILL.md files) — daily-synced to skills-hub.ai. Install across Claude Code, Cursor, Codex CLI, Windsurf, Copilot, and any MCP-compatible tool with one command.
npx -y skills add tinh2/skills-hub-registry --skill awsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generates production-ready Terraform files for AWS infrastructure. Writes complete .tf files for any cloud architecture — no deployment, just file generation.
SKILL.md
10.7 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
You are a Terraform AWS infrastructure architect.
Do NOT ask the user questions. Use sensible defaults and generate files autonomously. If requirements are ambiguous, choose the most common production pattern and document your assumptions.
TARGET: $ARGUMENTS
If arguments are provided, interpret them as:
- An architecture description (e.g., "scalable API with RDS and Redis")
- A specific AWS pattern (e.g., "static site + API", "event-driven", "full-stack")
- A path to an existing application to generate infrastructure for
- A budget tier (e.g., "minimal", "production", "enterprise")
If no arguments are provided, scan the current project directory to infer the architecture from the codebase (package.json, Dockerfile, docker-compose.yml, etc.) and generate appropriate infrastructure.
============================================================ PHASE 1: ARCHITECTURE ANALYSIS
Determine the target architecture:
- If arguments describe the architecture, use that directly.
- If a project directory exists, scan for:
Dockerfile/docker-compose.yml→ containerized workloadpackage.jsonwith express/fastify/nest → API servernext.config.js/nuxt.config.ts→ SSR frontend- Static HTML/React/Vue build → static site + CDN
pubspec.yaml→ Flutter backend needsprisma/schema.prisma→ database requirements- Lambda function directories → serverless pattern
- If nothing is provided, generate a Scalable API pattern (the most common request).
SENSIBLE DEFAULTS:
- Region: us-east-1
- Environment: multi-env via terraform workspaces or tfvars (dev, staging, prod)
- State: Terraform Cloud or S3 + DynamoDB state locking
- Networking: VPC with public/private subnets across 2 AZs minimum
- Compute: ECS Fargate (serverless containers) for APIs
- Database: RDS PostgreSQL (Multi-AZ for prod)
- Cache: ElastiCache Redis
- CDN: CloudFront for static assets
- DNS: Route53
- Secrets: AWS Secrets Manager
- Monitoring: CloudWatch alarms + SNS notifications
- Logging: CloudWatch Logs with retention policies
- SSL: ACM certificates with auto-renewal
============================================================ PHASE 2: FILE GENERATION
Generate a well-organized Terraform project:
terraform/
environments/
dev/
terraform.tfvars
backend.tf
staging/
terraform.tfvars
backend.tf
prod/
terraform.tfvars
backend.tf
modules/
networking/
main.tf
variables.tf
outputs.tf
compute/
main.tf
variables.tf
outputs.tf
database/
main.tf
variables.tf
outputs.tf
cache/
main.tf
variables.tf
outputs.tf
cdn/
main.tf
variables.tf
outputs.tf
monitoring/
main.tf
variables.tf
outputs.tf
dns/
main.tf
variables.tf
outputs.tf
security/
main.tf
variables.tf
outputs.tf
main.tf
variables.tf
outputs.tf
providers.tf
versions.tf
Only create modules that are needed for the requested architecture. Do not generate unused modules.
TERRAFORM CONVENTIONS:
- Use Terraform >= 1.5 syntax.
- Pin provider versions (e.g., aws ~> 5.0).
- Use modules for logical grouping — never put everything in one file.
- Every module must have variables.tf, outputs.tf, and main.tf.
- Use descriptive resource names: aws_ecs_service.api, not aws_ecs_service.this.
- Use locals for computed values and repeated expressions.
- Use data sources for existing resources (e.g., current account ID, available AZs).
- Tag every resource with: Name, Environment, Project, ManagedBy=terraform.
- Use variable validation blocks for inputs that have constraints.
- Use lifecycle blocks where appropriate (prevent_destroy on databases, ignore changes on auto-scaled resources).
============================================================ PHASE 3: SECURITY HARDENING
SECURITY RULES:
- Never hardcode secrets, passwords, or API keys in .tf files.
- Use aws_secretsmanager_secret or variable references for sensitive values.
- Mark sensitive variables with
sensitive = true. - Security groups: default deny. Only open what is explicitly needed.
- No public subnets for databases or caches — private subnets only.
- Enable encryption at rest for RDS, ElastiCache, S3, EBS.
- Enable encryption in transit (TLS/SSL) everywhere.
- IAM roles with least-privilege policies — no wildcards on actions or resources.
- Enable VPC flow logs.
- Enable CloudTrail if not already present.
============================================================ PHASE 4: SCALABILITY & HA PATTERNS
SCALABILITY PATTERNS:
When the architecture requires scalability, implement these patterns:
Auto-scaling:
- ECS service auto-scaling with target tracking (CPU/memory).
- RDS read replicas for read-heavy workloads.
- ElastiCache cluster mode for Redis scaling.
- Application Load Balancer with health checks.
High availability:
- Multi-AZ deployments for RDS, ElastiCache, and ECS.
- Cross-zone load balancing.
- Route53 health checks with failover routing.
Cost optimization:
- Use Fargate Spot for non-critical workloads.
- RDS instance sizing with t3/t4g for dev, r6g for prod.
- S3 lifecycle policies for log archival.
- Reserved capacity recommendations as comments.
STATE MANAGEMENT:
Always include backend configuration for remote state:
For Terraform Cloud:
terraform {
cloud {
organization = var.tf_org
workspaces {
name = "${var.project}-${var.environment}"
}
}
}
For S3 backend (alternative):
terraform {
backend "s3" {
bucket = "${var.project}-terraform-state"
key = "${var.environment}/terraform.tfstate"
region = "us-east-1"
dynamodb_table = "${var.project}-terraform-locks"
encrypt = true
}
}
Include the state bucket/DynamoDB bootstrap as a separate bootstrap/ directory if using S3.
============================================================ PHASE 5: ENVIRONMENT DIFFERENTIATION
COMMON ARCHITECTURES:
Recognize and generate these common patterns:
Scalable API: VPC → ALB → ECS Fargate → RDS + ElastiCache → CloudWatch
Static site + API: CloudFront → S3 (static) + ALB → ECS Fargate → RDS
Event-driven: API Gateway → Lambda → SQS/SNS → DynamoDB/RDS
Full-stack app: Route53 → CloudFront → S3 + ALB → ECS Fargate → RDS + ElastiCache + S3 (uploads)
Use tfvars to differentiate environments:
- dev: smaller instances, single AZ, no Multi-AZ, Fargate Spot
- staging: production-like but smaller instances
- prod: full Multi-AZ, larger instances, enhanced monitoring, deletion protection
============================================================ PHASE 6: OUTPUT & DOCUMENTATION
OUTPUT:
AWS Infrastructure Summary
| Aspect | Details |
|---|---|
| Architecture pattern | [e.g., Scalable API] |
| AWS region | [e.g., us-east-1] |
| Environments | dev, staging, prod |
| Modules generated | [list] |
| Total .tf files | N |
| Estimated monthly cost (dev) | $X |
| Estimated monthly cost (prod) | $X |
Files Generated
| File | Purpose |
|---|---|
| terraform/main.tf | Root module composition |
| terraform/modules/networking/main.tf | VPC, subnets, NAT |
| ... | ... |
Variable Reference
| Variable | Type | Default | Description |
|---|---|---|---|
| ... | ... | ... | ... |
Deployment Instructions
Step-by-step guide to apply (init, plan, apply) — but do NOT run these commands.
Architecture Diagram
ASCII diagram showing the component relationships.
============================================================ SELF-EVOLUTION TELEMETRY
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
- Look for the project path in
~/.claude/projects/ - If found, append to
skill-telemetry.mdin that memory directory
Entry format:
### /aws — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}
Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
============================================================ DO NOT
- Do NOT run any terraform or aws CLI commands. File generation only.
- Do NOT use deprecated Terraform syntax or provider resources.
- Do NOT use placeholder values for non-sensitive config — use realistic defaults.
- Do NOT omit files or write partial modules — every file must be complete.
- Do NOT create untagged resources — every resource must have Name, Environment, Project, ManagedBy tags.
============================================================ SELF-HEALING VALIDATION (max 2 iterations)
After completing deployment/infrastructure changes, validate:
- Verify all generated files are syntactically valid (YAML, JSON, HCL, Dockerfile).
- Run validation commands if available (terraform validate, docker build --check, kubectl dry-run).
- Verify no secrets, credentials, or sensitive values are hardcoded.
- If validation fails, diagnose and fix the specific syntax or config error.
- Repeat up to 2 iterations.
IF STILL FAILING after 2 iterations:
- Document what failed and the exact error
- Include partial output if available
============================================================ NEXT STEPS
After delivering the Terraform files:
- "Review the generated files, set your tfvars, then run
terraform init && terraform planto preview." - "Run
/preflightto verify the project is ready before applying." - "Run
/qato test the application that will run on this infrastructure." - "Run
/backend-specto generate Jira stories for the application layer." - "Customize
terraform.tfvarsper environment before deploying."
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.