Best for
- Use this skill when writing or modifying Terraform configurations (.tf files), creating new infrastructure modules, or understanding AWS resource definitions.
event4u-app/agent-config/src/skills/terraform/SKILL.md
Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform.
Decision brief
Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/terraform"Inspect the Agent Skill "terraform" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/terraform/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Read the infrastructure repo structure (check agents/overrides/skills/terraform.md for the repo location). 2. Check existing modules in modules/ for patterns and conventions. 3. Read variables.tf of the target module to understand required inputs. 4. Check versions.tf for pro…
Use this skill when writing or modifying Terraform configurations (.tf files), creating new infrastructure modules, or understanding AWS resource definitions.
Read agents/overrides/skills/terraform.md for the actual repository layout and service names.
Prefer community or organization-specific Terraform modules from the Terraform Registry:
Always pin provider versions in versions.tf.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Read the infrastructure repo structure (check `agents/overrides/skills/terraform.md` for the repo location).Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill when writing or modifying Terraform configurations (.tf files), creating new infrastructure modules, or understanding AWS resource definitions.
agents/overrides/skills/terraform.md for the repo location).modules/ for patterns and conventions.variables.tf of the target module to understand required inputs.versions.tf for provider version constraints.{infrastructure-repo}/
├── environments/
│ ├── pro/ # Production environment
│ │ ├── root.hcl # Terragrunt root config
│ │ ├── core/ # Core infrastructure (VPC, DNS zones)
│ │ └── {service}/ # Per-service resources
│ └── sta/ # Stage environment
│ └── ...
├── modules/
│ ├── core/ # VPC, DNS, shared resources
│ └── {service}/ # Per-service module (ECS, ALB, ECR, etc.)
└── Taskfile.yml # Task runner commands (or Makefile)
Read agents/overrides/skills/terraform.md for the actual repository layout and service names.
versions.tf.versions.tf in the existing modules for the project's version constraints.Prefer community or organization-specific Terraform modules from the Terraform Registry:
module "alb" {
source = "{org}/application-load-balancer/aws"
version = ">= 1.0.0, < 2.0.0"
}
Check existing modules in the project for which registry modules are used.
var.global_prefix (e.g., {project}-{env})tags = var.tags${var.global_prefix}-<purpose> (e.g., -ecs, -mysql, -redis)/aws/ecs/${cluster}/${service}${path_relative_to_include()}/terraform.tfstatevariable blocks with description.object() types for complex inputs (not any unless unavoidable).optional() with defaults where appropriate.ignore_changes = [task_definition] on ECS services — task definitions are managed by CI/CD, not Terraform.deletion_protection = true on databases.Used for web services with zero-downtime deployments:
Used for workers and schedulers:
deployment_controller { type = "ECS" }lifecycle { ignore_changes = [task_definition] }Each environment has a GitHub IAM role with:
| Symptom | Root cause | Fix |
|---|---|---|
Error acquiring the state lock blocks every command | A prior apply crashed / was killed and left the lock held (DynamoDB / backend lock) | Confirm no apply is actually running, then terraform force-unlock <lock-id> — never delete the lock table |
plan wants to destroy+recreate a resource after a rename | Renaming a resource block changes its address; Terraform sees the old address gone and a new one added | terraform state mv <old.addr> <new.addr> (or a moved {} block) so it tracks the same object |
count/for_each errors with "value depends on resource attributes that cannot be determined until apply" | The count/for_each expression reads an unknown (not-yet-created) value | Key for_each off a static/known map, or split into a two-stage apply with -target |
A change applies but the next plan shows the same diff again (perpetual diff) | The provider normalizes/computes the attribute differently than written (ordering, defaults, case) | Match the provider's canonical form, or ignore_changes on that attribute in lifecycle |
plan shows a resource as tainted/replaced after a manual console change | Out-of-band drift — someone edited the resource outside Terraform | terraform apply -refresh-only to reconcile state, then decide code-vs-cloud; stop the manual edits |
terraform apply without -auto-approve requires interactive confirmation — don't use in CI without the flag.terraform plan before apply — always plan first, review changes.* in IAM resource ARNs unless absolutely necessary.deletion_protection from databases.data.aws_caller_identity.current.Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
event4u-app/agent-config
Grounded design brief from the adopted corpus — style, WCAG-checked color tokens, typography, layout pattern, anti-patterns. Use on ui-design-brief or any which-style/palette/font/chart decision.
event4u-app/agent-config
Use BEFORE writing or editing any non-trivial UI — inventories components, design tokens, shadcn primitives, and reusable patterns into state.ui_audit. Hard gate for the ui directive set.
event4u-app/agent-config
Use BEFORE writing/changing tests, adding mocks, or test-only methods on production classes — vs mocking-the-mock, production pollution, partial mocks, and overfit/tautological assertions