generating-infrastructure-as-code
About
This skill generates production-ready infrastructure-as-code configurations for tools like Terraform, CloudFormation, and Pulumi across AWS, GCP, and Azure. It's triggered by requests such as "create Terraform config" or "generate CloudFormation template." The skill can also execute relevant CLI commands to validate or deploy the generated code.
Quick Install
Claude Code
Recommended/plugin add https://github.com/jeremylongshore/claude-code-plugins-plusgit clone https://github.com/jeremylongshore/claude-code-plugins-plus.git ~/.claude/skills/generating-infrastructure-as-codeCopy and paste this command in Claude Code to install this skill
Documentation
Prerequisites
Before using this skill, ensure:
- Target cloud provider CLI is installed (aws-cli, gcloud, az)
- IaC tool is installed (Terraform, Pulumi, AWS CDK)
- Cloud credentials are configured locally
- Understanding of target infrastructure architecture
- Version control system for IaC storage
Instructions
- Identify Platform: Determine IaC tool (Terraform, CloudFormation, Pulumi, ARM, CDK)
- Define Resources: Specify cloud resources needed (compute, network, storage, database)
- Establish Structure: Create modular file structure for maintainability
- Generate Code: Write IaC configurations with proper syntax and formatting
- Add Variables: Define input variables for environment-specific values
- Configure Outputs: Specify outputs for resource references and integrations
- Implement State: Set up remote state storage for team collaboration
- Document Usage: Add README with deployment instructions and prerequisites
Output
Generates infrastructure as code files:
Terraform Example:
# {baseDir}/terraform/main.tf
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_hostnames = true
tags = {
Name = "${var.project}-vpc"
Environment = var.environment
}
}
CloudFormation Example:
# {baseDir}/cloudformation/template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: Production VPC infrastructure
Parameters:
VpcCidr:
Type: String
Default: 10.0.0.0/16
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidr
EnableDnsHostnames: true
Pulumi Example:
// {baseDir}/pulumi/index.ts
import * as aws from "@pulumi/aws";
const vpc = new aws.ec2.Vpc("main", {
cidrBlock: "10.0.0.0/16",
enableDnsHostnames: true,
tags: {
Name: "production-vpc"
}
});
export const vpcId = vpc.id;
Error Handling
Common issues and solutions:
Syntax Errors
- Error: "Invalid resource syntax in configuration"
- Solution: Validate syntax with
terraform validateor respective tool linter
Provider Authentication
- Error: "Unable to authenticate with cloud provider"
- Solution: Configure credentials via environment variables or CLI login
Resource Conflicts
- Error: "Resource already exists"
- Solution: Import existing resources or use data sources instead of creating new ones
State Lock Issues
- Error: "Error acquiring state lock"
- Solution: Ensure no other process is running, or force unlock if safe
Dependency Errors
- Error: "Resource depends on resource that does not exist"
- Solution: Check resource references and ensure proper dependency ordering
Resources
- Terraform documentation: https://www.terraform.io/docs/
- AWS CloudFormation guide: https://docs.aws.amazon.com/cloudformation/
- Pulumi documentation: https://www.pulumi.com/docs/
- Azure ARM templates: https://docs.microsoft.com/azure/azure-resource-manager/
- IaC best practices guide in {baseDir}/docs/iac-standards.md
GitHub Repository
Related Skills
subagent-driven-development
DevelopmentThis skill executes implementation plans by dispatching a fresh subagent for each independent task, with code review between tasks. It enables fast iteration while maintaining quality gates through this review process. Use it when working on mostly independent tasks within the same session to ensure continuous progress with built-in quality checks.
algorithmic-art
MetaThis Claude Skill creates original algorithmic art using p5.js with seeded randomness and interactive parameters. It generates .md files for algorithmic philosophies, plus .html and .js files for interactive generative art implementations. Use it when developers need to create flow fields, particle systems, or other computational art while avoiding copyright issues.
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
cost-optimization
OtherThis Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.
