cloudposse/docs/developing-stacks
- community
Checking that the SKILL.md file is still in the repository.
Use when deploying components via Atmos stacks, configuring stack YAML, or understanding inheritance patterns. Covers catalog defaults, abstract components, stack imports, and how to wire components into target stacks.
Install
npx vskill@latest install cloudposse/docs/developing-stacksSKILL.md
Developing Stacks
Scope: This skill is specific to the acme infrastructure repository. It documents thestack structure, naming conventions, and deployment patterns used here. For generic component development, seedeveloping-components.
Guide for configuring Atmos stacks to deploy Terraform components across environments.
Stack Architecture Overview
This repository uses a multi-tenant, multi-stage stack structure:
Stack name format: {namespace}-{tenant}-{region_short}-{stage}
Examples for this repository:
acme-core-use1-root- Core root account in us-east-1acme-plat-use1-dev- Platform dev in us-east-1acme-plat-use1-prod- Platform prod in us-east-1
Core Patterns
1. Catalog Defaults (Recommended Starting Point)
Define component defaults in stacks/catalog/<component>/defaults.yaml. These are imported into target stacks.
Key points:
- Use
type: abstractto prevent accidental deployment of the base configuration - Name the component with a
/defaultssuffix (e.g.,vpc/defaults) to indicate it's a base - Define sensible defaults that work across most environments
2. Inheriting into Target Stacks
Import the catalog and inherit from the abstract component in your target stack:
Inheritance merging:
vars,settings,env,backendare deep-merged- Later values override earlier ones
- The component's own
varsoverride inheritedvars
3. Abstract Components
Abstract components (type: abstract) serve as base configurations that cannot be deployed directly.
Use abstract components when:
- Creating reusable base configurations
- Defining organization-wide defaults
- Building component "archetypes" (e.g.,
s3-bucket/logging,s3-bucket/public)
4. Multiple Inheritance
Components can inherit from multiple bases. Order matters - later items override earlier ones.
5. Stack Defaults Hierarchy
The _defaults.yaml files create an inheritance chain:
Deploying a Component
Step 1: Check if Catalog Defaults Exist
If defaults exist, skip to Step 3.
Step 2: Create Catalog Defaults (if needed)
Step 3: Add to Target Stack
Edit the appropriate stack file (foundation.yaml, platform.yaml, app.yaml, etc.):
Step 4: Validate and Plan
Stack File Organization
Stack files are organized by layer:
| File | Purpose | Examples | |
|---|---|---|---|
foundation.yaml | Core infrastructure (VPC, DNS, TGW) | vpc, dns-delegated, bastion | |
platform.yaml | Platform services (ECS, RDS, monitoring) | ecs, aurora-postgres, alb | |
app.yaml | Application-specific resources | ecs-service, s3-bucket | |
network.yaml | Network-specific (routes, peering) | vpc-routes, tgw-attachment | |
monitor.yaml | Observability (CloudWatch, Grafana) | managed-grafana, alarms |
Common Patterns
Catalog Organization for Multiple Purposes
When deploying multiple instances of the same component for different purposes, organize the catalog with abstract defaults and purpose-specific files that inherit from them:
Abstract defaults file (stacks/catalog/<component>/defaults.yaml):
Purpose-specific catalog file (stacks/catalog/<component>/<purpose>.yaml):
Import in target stack:
Deploy:
Environment-Specific CIDR Blocks
Cross-Component Dependencies
Use !terraform.state to wire outputs between components:
See the atmos-functions skill for more details.
Multiple Instances of a Component
Deploy multiple instances by using different component names:
Debugging Stack Configuration
For more debugging techniques, see the debugging-atmos skill.
References
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingexamples/snippets/.claude/skills/developing-stacks/SKILL.md
Popularity
- Repository stars
- 96
- Repository forks
- 35
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 1 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/cloudposse/docs/developing-stacks)