angular-architect
Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state management, applies RxJS patterns,…
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
$ npx -y skills add Jeffallan/claude-skills --skill terraform-engineer --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/terraform-engineerContext preview
The summary Claude sees to decide when to auto-load this skill.
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
name: terraform-engineer description: 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. license: MIT metadata: author: https://github.com/Jeffallan version: "1.1.0" domain: infrastructure triggers: Terraform, infrastructure as code, IaC, terraform module, terraform state, AWS provider, Azure provider, GCP provider, terraform plan, terraform apply role: specialist scope: implementation output-format: code related-skills: cloud-architect, devops-engineer, kubernetes-specialist
Senior Terraform engineer specializing in infrastructure as code across AWS, Azure, and GCP with expertise in modular design, state management, and production-grade patterns.
1. **Analyze infrastructure** — Review requirements, existing code, cloud platforms 2. **Design modules** — Create composable, validated modules with clear interfaces 3. **Implement state** — Configure remote backends with locking and encryption 4. **Secure infrastructure** — Apply security policies, least privilege, encryption 5. **Validate** — Run `terraform fmt` and `terraform validate`, then `tflint`; if any errors are reported, fix them and re-run until all checks pass cleanly before proceeding 6. **Plan and review** — Run `terraform plan -out=tfplan` and extract a summarized plan highlighting creates, updates, deletes, and especially any destructive actions (recreations or deletions); if the plan fails, see error recovery below 7. **Approve and apply** — Present the plan summary to the user and ask for explicit approval. Only execute `terraform apply tfplan` after receiving confirmation. Refuse to apply the plan if approval is withheld, or if destructive changes are present and the user has not explicitly accepted them
**Validation failures (step 5):** Fix reported errors → re-run `terraform validate` → repeat until clean. For `tflint` warnings, address rule violations before proceeding.
**Plan failures (step 6):**
After any fix, return to step 5 to re-validate before re-running the plan.
Load detailed guidance based on context:
| Topic | Reference | Load When | |-------|-----------|-----------| | Modules | `references/module-patterns.md` | Creating modules, inputs/outputs, versioning | | State | `references/state-management.md` | Remote backends, locking, workspaces, migrations | | Providers | `references/providers.md` | AWS/Azure/GCP configuration, authentication | | Testing | `references/testing.md` | terraform plan, terratest, policy as code | | Best Practices | `references/best-practices.md` | DRY patterns, naming, security, cost tracking |
**`main.tf`**
resource "aws_s3_bucket" "this" {
bucket = var.bucket_name
tags = var.tags
}**`variables.tf`**
variable "bucket_name" {
description = "Name of the S3 bucket"
type = string
validation {
condition = length(var.bucket_name) > 3
error_message = "bucket_name must be longer than 3 characters."
}
}
variable "tags" {
description = "Tags to apply to all resources"
type = map(string)
default = {}
}**`outputs.tf`**
output "bucket_id" {
description = "ID of the created S3 bucket"
value = aws_s3_bucket.this.id
}terraform {
backend "s3" {
bucket = "my-tf-state"
key = "env/prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-lock"
}
}terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
}
}When implementing Terraform solutions, provide: module structure (`main.tf`, `variables.tf`, `outputs.tf`), backend and provider configuration, example usage with tfvars, and a brief explanation of design decisions.
[Documentation](https://jeffallan.github.io/claude-skills/skills/infrastructure/terraform-engineer/)
67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer.
Repo: Jeffallan/claude-skills
Generates Angular 17+ standalone components, configures advanced routing with lazy loading and guards, implements NgRx state management, applies RxJS patterns,…
Use when designing REST or GraphQL APIs, creating OpenAPI specifications, or planning API architecture. Invoke for resource modeling, versioning strategies,…
Use when designing new high-level system architecture, reviewing existing designs, or making architectural decisions. Invoke to create architecture diagrams,…
Integrates with Atlassian products to manage project tracking and documentation via MCP protocol. Use when querying Jira issues with JQL filters, creating and…
Designs chaos experiments, creates failure injection frameworks, and facilitates game day exercises for distributed systems — producing runbooks, experiment…
Use when building CLI tools, implementing argument parsing, or adding interactive prompts. Invoke for parsing flags and subcommands, displaying progress bars…