Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate IaC templates for Terraform, CloudFormation, and Pulumi with modules for compute, storage, networking, and multi-environment support.
.claude/skills/williamzujkowski-infrastructure-as-code-template-generator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 85% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 181% | 0% |
Trigger conditions:
Use this skill when you need production-ready Infrastructure as Code templates with modules, variables, and remote state management.
Before execution, verify:
NOW_ET = 2025-10-26T01:33:56-04:00 (NIST/time.gov semantics, America/New_York)iac_tool is one of: terraform, cloudformation, pulumi, cdkcloud_provider is one of: aws, azure, gcp, multi-cloudresources contains valid resource typesenvironments list is non-empty if multi-environment support neededNOW_ET; verify documentation links currentAbort conditions:
Token budget: ≤2k tokens
Scope: Generate basic IaC templates for common resources in single environment.
Steps:
Decision point: If requirements include multiple environments, custom networking, or advanced security → escalate to T2.
Token budget: ≤6k tokens
Scope: Multi-environment IaC with workspaces, advanced networking, security hardening, and compliance.
Steps:
Sources cited (accessed 2025-10-26T01:33:56-04:00):
Token budget: ≤12k tokens
Scope: Enterprise IaC with policy-as-code, compliance automation, and multi-cloud orchestration.
Steps:
Additional sources (accessed 2025-10-26T01:33:56-04:00):
IaC tool selection:
Resource organization:
Environment strategy:
Escalation conditions:
Abort conditions:
Required outputs:
json{ "iac_templates": { "type": "object", "properties": { "tool": "string (terraform|cloudformation|pulumi|cdk)", "modules": [ { "name": "string (networking, compute, storage, etc.)", "file_path": "string (relative path to module)", "content": "string (IaC code)", "variables": ["array of input variable definitions"], "outputs": ["array of output value definitions"] } ] } }, "state_config": { "type": "object", "properties": { "backend": "string (s3, azurerm, gcs, pulumi-cloud)", "config": "object (backend-specific configuration)", "content": "string (backend configuration code)" } } }
Quality guarantees:
Example: Terraform AWS VPC module
hcl# modules/networking/main.tf variable "environment" { type = string description = "Environment name (dev, staging, prod)" } variable "vpc_cidr" { type = string description = "CIDR block for VPC" } resource "aws_vpc" "main" { cidr_block = var.vpc_cidr enable_dns_hostnames = true enable_dns_support = true tags = { Name = "${var.environment}-vpc" Environment = var.environment } } output "vpc_id" { value = aws_vpc.main.id }
Token budgets:
Safety checks:
Auditability:
Determinism:
Official Documentation (accessed 2025-10-26T01:33:56-04:00):
Best Practices (accessed 2025-10-26T01:33:56-04:00):
Templates (in repository /resources/):
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 11,148 | 9,186 | -18% | 1 | 1 | 0% | 2,450 | 4,938 | +102% | 0 | 0 | — |
case-02 | pass→pass | 7,759 | 7,681 | -1% | 1 | 1 | 0% | 1,782 | 4,644 | +161% | 0 | 0 | — |
case-03 | pass→pass | 10,813 | 9,550 | -12% | 1 | 1 | 0% | 2,206 | 4,794 | +117% | 0 | 0 | — |
case-04 | fail→pass | 18,699 | 17,073 | -9% | 1 | 1 | 0% | 5,361 | 7,606 | +42% | 0 | 0 | — |
case-05 | fail→pass | 20,745 | 18,043 | -13% | 1 | 1 | 0% | 6,248 | 7,944 | +27% | 0 | 0 | — |
case-06 | fail→pass | 18,025 | 20,898 | +16% | 1 | 1 | 0% | 4,572 | 8,468 | +85% | 0 | 0 | — |
case-07 | pass→pass | 10,674 | 9,472 | -11% | 1 | 1 | 0% | 2,453 | 4,848 | +98% | 0 | 0 | — |
case-08 | fail→pass | 13,966 | 11,939 | -15% | 1 | 1 | 0% | 3,459 | 6,063 | +75% | 0 | 0 | — |
case-09 | fail→pass | 8,377 | 10,056 | +20% | 1 | 1 | 0% | 1,954 | 5,481 | +181% | 0 | 0 | — |
case-10 | fail→pass | 9,603 | 13,783 | +44% | 1 | 1 | 0% | 2,294 | 6,516 | +184% | 0 | 0 | — |
case-11 | fail→pass | 12,599 | 12,208 | -3% | 1 | 1 | 0% | 2,847 | 5,891 | +107% | 0 | 0 | — |
case-12 | fail→pass | 10,230 | 7,204 | -30% | 1 | 1 | 0% | 2,515 | 4,547 | +81% | 0 | 0 | — |
case-13 | pass→pass | 21,257 | 25,874 | +22% | 1 | 1 | 0% | 4,693 | 8,917 | +90% | 0 | 0 | — |
case-14 | pass→pass | 17,234 | 16,687 | -3% | 1 | 1 | 0% | 4,379 | 6,787 | +55% | 0 | 0 | — |
case-15 | pass→pass | 18,723 | 16,992 | -9% | 1 | 1 | 0% | 4,712 | 6,622 | +41% | 0 | 0 | — |
case-16 | fail→pass | 12,179 | 9,103 | -25% | 1 | 1 | 0% | 3,137 | 5,175 | +65% | 0 | 0 | — |
case-17 | pass→pass | 11,094 | 16,358 | +47% | 1 | 1 | 0% | 2,874 | 7,025 | +144% | 0 | 0 | — |
case-18 | fail→pass | 12,918 | 14,316 | +11% | 1 | 1 | 0% | 2,923 | 6,355 | +117% | 0 | 0 | — |
case-19 | fail→pass | 11,824 | 12,717 | +8% | 1 | 1 | 0% | 2,750 | 5,796 | +111% | 0 | 0 | — |
case-20 | pass→pass | 23,117 | 23,006 | -0% | 1 | 1 | 0% | 5,494 | 8,778 | +60% | 0 | 0 | — |
case-21 | fail→pass | 11,240 | 8,613 | -23% | 1 | 1 | 0% | 2,753 | 4,868 | +77% | 0 | 0 | — |
case-22 | fail→pass | 11,436 | 18,736 | +64% | 1 | 1 | 0% | 2,598 | 6,734 | +159% | 0 | 0 | — |
case-23 | pass→fail | 18,490 | 16,964 | -8% | 1 | 1 | 0% | 4,186 | 6,875 | +64% | 0 | 0 | — |
case-24 | pass→pass | 13,863 | 14,240 | +3% | 1 | 1 | 0% | 3,005 | 6,381 | +112% | 0 | 0 | — |
case-25 | fail→pass | 9,749 | 13,434 | +38% | 1 | 1 | 0% | 2,308 | 6,184 | +168% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +52 percentage points is the difference between those two pass rates over the 25 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.