terraform-engineer — скилл для Claude Code: IaC на AWS, Azure, GCP
Скилл для написания и управления инфраструктурой через Terraform. Помогает проектировать модули, настраивать удалённое состояние, валидировать код и применять изменения безопасно.
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a claude-codeЧто делает terraform-engineer
terraform-engineer — специализированный скилл для работы с инфраструктурой как кодом на AWS, Azure и GCP. Проводит анализ требований, проектирует переиспользуемые модули с чёткими интерфейсами, настраивает удалённые бэкенды с блокировкой и шифрованием. На каждом шаге валидирует код через terraform fmt, terraform validate и tflint, затем выполняет terraform plan, извлекает итоговый план с выделением создаваемых, изменяемых и удаляемых ресурсов — и просит явное одобрение перед terraform apply. Отказывает применять план, если в нём деструктивные операции, а пользователь их не подтвердил.
В скилле встроена логика восстановления при ошибках: если terraform refresh показывает дрейф состояния, скилл выравнивает его через terraform state rm или terraform import; если слетели credentials, проверяет переменные окружения и конфиг провайдера. Использует семантическое версионирование, требует пинирования версий провайдеров, запрещает хардкод секретов и локальное состояние для production. Выдаёт готовую структуру модуля (main.tf, variables.tf, outputs.tf) с примерами конфига бэкенда и пинирования версий.
Какие задачи решает
- Спроектировать переиспользуемые Terraform-модули с валидацией входов
- Настроить удалённое состояние с блокировкой для многопользовательской работы
- Выявить и разрешить конфликты состояния через импорт и удаление ресурсов
- Валидировать конфиг и рецензировать план перед применением изменений
- Настроить мультиоблачную инфраструктуру с единообразной структурой
Примеры запросов агенту
- Напиши модуль S3 с валидацией имени бакета и тегами
- Настрой удалённый бэкенд на S3 с DynamoDB-локом для prod-окружения
- Пересенеси состояние из локального в удалённый бэкенд и разреши конфликты
Как установить terraform-engineer
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a claude-code2Вручную: положить файлы
~/.claude/skills/terraform-engineer/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/terraform-engineer/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a codex2Вручную: положить файлы
.agents/skills/terraform-engineer/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a cursor2Вручную: положить файлы
.cursor/skills/terraform-engineer/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills terraform-engineer2Вручную: положить файлы
.github/skills/terraform-engineer/SKILL.md1Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a gemini-cli2Командой платформы
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/terraform-engineerВручную: положить файлы
.devin/skills/terraform-engineer/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill terraform-engineer -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора61
Весь набор →Похожие
Вопросы о terraform-engineer
Как установить terraform-engineer в Claude Code?
Выполни npx skills add Jeffallan/claude-skills --skill terraform-engineer -a claude-code, затем проверь, что файл SKILL.md доступен в ~/.claude/skills/terraform-engineer/SKILL.md.
Что делает terraform-engineer?
Проводит полный цикл: анализирует инфраструктуру, проектирует модули, настраивает состояние и провайдеры, валидирует код, создаёт план и просит одобрение перед применением. Ловит и разрешает ошибки (дрейф состояния, проблемы auth, зависимости).
Какие облачные платформы поддерживаются?
AWS, Azure и GCP. Скилл конфигурирует провайдеры для каждой и умеет работать с ними одновременно в одном проекте.
Исходный текст
SKILL.md · MIT
---
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
company: https://synergetic.solutions
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
---
# Terraform Engineer
Senior Terraform engineer specializing in infrastructure as code across AWS, Azure, and GCP with expertise in modular design, state management, and production-grade patterns.
## Core Workflow
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
### Error Recovery
**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):**
- *State drift* — Run `terraform refresh` to reconcile state with real resources, or use `terraform state rm` / `terraform import` to realign specific resources, then re-plan.
- *Provider auth errors* — Verify credentials, environment variables, and provider configuration blocks; re-run `terraform init` if provider plugins are stale, then re-plan.
- *Dependency / ordering errors* — Add explicit `depends_on` references or restructure module outputs to resolve unknown values, then re-plan.
After any fix, return to step 5 to re-validate before re-running the plan.
## Reference Guide
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 |
## Constraints
### MUST DO
- Use semantic versioning and pin provider versions
- Enable remote state with locking and encryption
- Validate inputs with validation blocks
- Use consistent naming conventions and tag all resources
- Document module interfaces
- Run `terraform fmt` and `terraform validate`
### MUST NOT DO
- Store secrets in plain text or hardcode environment-specific values
- Use local state for production or skip state locking
- Mix provider versions without constraints
- Create circular module dependencies or skip input validation
- Commit `.terraform` directories
## Code Examples
### Minimal Module Structure
**`main.tf`**
```hcl
resource "aws_s3_bucket" "this" {
bucket = var.bucket_name
tags = var.tags
}
```
**`variables.tf`**
```hcl
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`**
```hcl
output "bucket_id" {
description = "ID of the created S3 bucket"
value = aws_s3_bucket.this.id
}
```
### Remote Backend Configuration (S3 + DynamoDB)
```hcl
terraform {
backend "s3" {
bucket = "my-tf-state"
key = "env/prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-lock"
}
}
```
### Provider Version Pinning
```hcl
terraform {
required_version = ">= 1.5.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
}
}
```
## Output Format
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.
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/infrastructure/terraform-engineer/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills