Designs CloudFormation stack structure, nested stacks, and resource organization. Use when designing CloudFormation infrastructure, organizing resources into stacks, or planning nested stack hierarchies.
View on GitHubarmanzeroeight/fastagent-plugins
cloudformation-toolkit
plugins/cloudformation-toolkit/skills/stack-designer/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/armanzeroeight/fastagent-plugins/blob/main/plugins/cloudformation-toolkit/skills/stack-designer/SKILL.md -a claude-code --skill stack-designerInstallation paths:
.claude/skills/stack-designer/# Stack Designer
## Quick Start
Design well-organized CloudFormation stacks with proper resource grouping, parameters, outputs, and cross-stack references.
## Instructions
### Step 1: Identify stack boundaries
Determine how to organize resources into stacks:
**By lifecycle:**
- Resources that change together should be in the same stack
- Separate frequently updated resources from stable infrastructure
- Group by deployment frequency
**By ownership:**
- Network stack (VPC, subnets, route tables)
- Security stack (security groups, IAM roles)
- Application stack (EC2, ECS, Lambda)
- Data stack (RDS, DynamoDB, S3)
**By environment:**
- Separate dev, staging, production stacks
- Use parameters for environment-specific values
- Share common resources via cross-stack references
### Step 2: Design stack structure
**Simple stack (single template):**
```yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: Simple web application stack
Parameters:
EnvironmentName:
Type: String
Default: dev
AllowedValues: [dev, staging, prod]
InstanceType:
Type: String
Default: t3.micro
AllowedValues: [t3.micro, t3.small, t3.medium]
Resources:
WebServer:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref InstanceType
ImageId: !Sub '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}'
Tags:
- Key: Environment
Value: !Ref EnvironmentName
Outputs:
InstanceId:
Description: EC2 instance ID
Value: !Ref WebServer
Export:
Name: !Sub '${AWS::StackName}-InstanceId'
```
**Multi-stack architecture:**
```
Root Stack
├── Network Stack (VPC, subnets)
├── Security Stack (security groups, IAM)
├── Database Stack (RDS)
└── Application Stack (EC2, ALB)
```
### Step 3: Define parameters
**Parameter best practices:**
```yaml
Parameters:
# Use descriptive names
DatabaseInstanceClass:
Type: String
Default: db.t3.micro
AllowedValues:
- db.t3.micro