{"id":"de929e0f-b874-4317-93b7-f35d4231f073","shortId":"nDDWHb","kind":"skill","title":"cloudformation-best-practices","tagline":"CloudFormation template optimization, nested stacks, drift detection, and production-ready patterns. Use when writing or reviewing CF templates.","description":"You are an expert in AWS CloudFormation specializing in template optimization, stack architecture, and production-grade infrastructure deployment.\n\n## Use this skill when\n\n- Writing or reviewing CloudFormation templates (YAML/JSON)\n- Optimizing existing templates for maintainability and cost\n- Designing nested or cross-stack architectures\n- Troubleshooting stack creation/update failures and drift\n\n## Do not use this skill when\n\n- The user prefers CDK or Terraform over raw CloudFormation\n- The task is application code, not infrastructure\n\n## Instructions\n\n1. Use YAML over JSON for readability.\n2. Parameterize environment-specific values; use `Mappings` for static lookups.\n3. Apply `DeletionPolicy: Retain` on stateful resources (RDS, S3, DynamoDB).\n4. Use `Conditions` to support multi-environment templates.\n5. Validate templates with `aws cloudformation validate-template` before deployment.\n6. Prefer `!Sub` over `!Join` for string interpolation.\n\n## Examples\n\n### Example 1: Parameterized VPC Template\n\n```yaml\nAWSTemplateFormatVersion: \"2010-09-09\"\nDescription: Production VPC with public and private subnets\n\nParameters:\n  Environment:\n    Type: String\n    AllowedValues: [dev, staging, prod]\n  VpcCidr:\n    Type: String\n    Default: \"10.0.0.0/16\"\n\nConditions:\n  IsProd: !Equals [!Ref Environment, prod]\n\nResources:\n  VPC:\n    Type: AWS::EC2::VPC\n    Properties:\n      CidrBlock: !Ref VpcCidr\n      EnableDnsSupport: true\n      EnableDnsHostnames: true\n      Tags:\n        - Key: Name\n          Value: !Sub \"${Environment}-vpc\"\n\nOutputs:\n  VpcId:\n    Value: !Ref VPC\n    Export:\n      Name: !Sub \"${Environment}-VpcId\"\n```\n\n## Best Practices\n\n- ✅ **Do:** Use `Outputs` with `Export` for cross-stack references\n- ✅ **Do:** Add `DeletionPolicy` and `UpdateReplacePolicy` on stateful resources\n- ✅ **Do:** Use `cfn-lint` and `cfn-nag` in CI pipelines\n- ❌ **Don't:** Hardcode ARNs or account IDs — use `!Sub` with pseudo parameters\n- ❌ **Don't:** Put all resources in a single monolithic template\n\n## Troubleshooting\n\n**Problem:** Stack stuck in `UPDATE_ROLLBACK_FAILED`\n**Solution:** Use `continue-update-rollback` with `--resources-to-skip` for the failing resource, then fix the root cause.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["cloudformation","best","practices","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-cloudformation-best-practices","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/cloudformation-best-practices","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34882 github stars · SKILL.md body (2,522 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T12:50:47.257Z","embedding":null,"createdAt":"2026-04-18T21:34:33.819Z","updatedAt":"2026-04-24T12:50:47.257Z","lastSeenAt":"2026-04-24T12:50:47.257Z","tsv":"'-09':161,162 '/16':184 '1':96,154 '10.0.0.0':183 '2':103 '2010':160 '3':114 '4':124 '5':133 '6':144 'account':259 'add':235 'allowedvalu':175 'appli':115 'applic':91 'architectur':36,66 'arn':257 'ask':337 'aw':29,137,194 'awstemplateformatvers':159 'best':3,222 'boundari':345 'caus':303 'cdk':82 'cf':22 'cfn':245,249 'cfn-lint':244 'cfn-nag':248 'ci':252 'cidrblock':198 'clarif':339 'clear':312 'cloudform':2,5,30,50,87,138 'cloudformation-best-practic':1 'code':92 'condit':126,185 'continu':287 'continue-update-rollback':286 'cost':59 'creation/update':69 'criteria':348 'cross':64,231 'cross-stack':63,230 'default':182 'deletionpolici':116,236 'deploy':42,143 'describ':316 'descript':163 'design':60 'detect':11 'dev':176 'drift':10,72 'dynamodb':123 'ec2':195 'enablednshostnam':203 'enablednssupport':201 'environ':106,131,172,189,210,220,328 'environment-specif':105,327 'equal':187 'exampl':152,153 'exist':54 'expert':27,333 'export':217,228 'fail':283,297 'failur':70 'fix':300 'grade':40 'hardcod':256 'id':260 'infrastructur':41,94 'input':342 'instruct':95 'interpol':151 'isprod':186 'join':148 'json':100 'key':206 'limit':304 'lint':246 'lookup':113 'maintain':57 'map':110 'match':313 'miss':350 'monolith':274 'multi':130 'multi-environ':129 'nag':250 'name':207,218 'nest':8,61 'optim':7,34,53 'output':212,226,322 'paramet':171,265 'parameter':104,155 'pattern':16 'permiss':343 'pipelin':253 'practic':4,223 'prefer':81,145 'privat':169 'problem':277 'prod':178,190 'product':14,39,164 'production-grad':38 'production-readi':13 'properti':197 'pseudo':264 'public':167 'put':268 'raw':86 'rds':121 'readabl':102 'readi':15 'ref':188,199,215 'refer':233 'requir':341 'resourc':120,191,241,270,292,298 'resources-to-skip':291 'retain':117 'review':21,49,334 'rollback':282,289 'root':302 's3':122 'safeti':344 'scope':315 'singl':273 'skill':45,77,307 'skill-cloudformation-best-practices' 'skip':294 'solut':284 'source-sickn33' 'special':31 'specif':107,329 'stack':9,35,65,68,232,278 'stage':177 'state':119,240 'static':112 'stop':335 'string':150,174,181 'stuck':279 'sub':146,209,219,262 'subnet':170 'substitut':325 'success':347 'support':128 'tag':205 'task':89,311 'templat':6,23,33,51,55,132,135,141,157,275 'terraform':84 'test':331 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':320 'troubleshoot':67,276 'true':202,204 'type':173,180,193 'updat':281,288 'updatereplacepolici':238 'use':17,43,75,97,109,125,225,243,261,285,305 'user':80 'valid':134,140,330 'validate-templ':139 'valu':108,208,214 'vpc':156,165,192,196,211,216 'vpccidr':179,200 'vpcid':213,221 'write':19,47 'yaml':98,158 'yaml/json':52","prices":[{"id":"04e9fd4d-71b4-4d1e-9807-80b9eda47392","listingId":"de929e0f-b874-4317-93b7-f35d4231f073","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:34:33.819Z"}],"sources":[{"listingId":"de929e0f-b874-4317-93b7-f35d4231f073","source":"github","sourceId":"sickn33/antigravity-awesome-skills/cloudformation-best-practices","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/cloudformation-best-practices","isPrimary":false,"firstSeenAt":"2026-04-18T21:34:33.819Z","lastSeenAt":"2026-04-24T12:50:47.257Z"}],"details":{"listingId":"de929e0f-b874-4317-93b7-f35d4231f073","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"cloudformation-best-practices","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34882,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"d3e2145e3b81c0de41fdab1f74cc339602452bf2","skill_md_path":"skills/cloudformation-best-practices/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/cloudformation-best-practices"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"cloudformation-best-practices","description":"CloudFormation template optimization, nested stacks, drift detection, and production-ready patterns. Use when writing or reviewing CF templates."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/cloudformation-best-practices"},"updatedAt":"2026-04-24T12:50:47.257Z"}}