[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSHFDTH0BVJH65VZ6MXJ1X":3,"skill-same:01M6CSHFDTH0BVJH65VZ6MXJ1X":89},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6CSHFDTH0BVJH65VZ6MXJ1X","cloudformation-best-practices",null,"CloudFormation template optimization, nested stacks, drift detection, and production-ready patterns. Use when writing or reviewing CF templates.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fcloudformation-best-practices\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"best practices","cloudformation best practices","writing","Optimization","Production","templates","detection","template","use","ready","nested","community","patterns","drift","2026-11-10 10:12:30",false,"---\nname: cloudformation-best-practices\ndescription: \"CloudFormation template optimization, nested stacks, drift detection, and production-ready patterns. Use when writing or reviewing CF templates.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\nYou 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\u002FJSON)\n- Optimizing existing templates for maintainability and cost\n- Designing nested or cross-stack architectures\n- Troubleshooting stack creation\u002Fupdate 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\u002F16\"\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","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\u002FJSON)\n- Optimizing existing templates for maintainability and cost\n- Designing nested or cross-stack architectures\n- Troubleshooting stack creation\u002Fupdate 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\u002F16\"\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",{"name":5,"risk":38,"source":30,"date_added":39,"description":7},"unknown","2026-02-27","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fcloudformation-best-practices",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill cloudformation-best-practices",{"tool":54,"command":55},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill cloudformation-best-practices",{"tool":57,"command":58},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill cloudformation-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fcloudformation-best-practices\u002FSKILL.md",true,[62,67,73,77,81,85],{"path":63,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"LICENSE","许可证",1065,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-avoid-any\u002FLICENSE",{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"repos\u002Fcore.md","REFERENCE","参考文档",6158,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-avoid-any\u002Frepos\u002Fcore.md",{"path":74,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":75,"sourceHtmlUrl":76},"repos\u002Fmetamask-extension.md",7032,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-avoid-any\u002Frepos\u002Fmetamask-extension.md",{"path":78,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":79,"sourceHtmlUrl":80},"repos\u002Fmetamask-mobile.md",6642,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-avoid-any\u002Frepos\u002Fmetamask-mobile.md",{"path":82,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":83,"sourceHtmlUrl":84},"SOURCE.md",363,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-avoid-any\u002FSOURCE.md",{"path":86,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":87,"sourceHtmlUrl":88},"TRUST.auto.yaml",2197,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-avoid-any\u002FTRUST.auto.yaml",[90,103,118,145,164,191],{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":100,"publishedAt":33},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[101,102],"Test Skill","test",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":33},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[110,111,112,113,114,115,31,30,116,117],"zustand store ts","zustand","store","with","types","middleware","create","typescript",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":127,"publishedAt":33},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[124],{"categoryNo":125,"categoryName":126,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000023","Skill与智能体开发",[128,129,130,131,132,133,134,135,136,137,138,139,140,141,30,142,143,144],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":152,"publishedAt":33},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[151],{"categoryNo":125,"categoryName":126,"taxonomyType":98,"taxonomyTypeDesc":99},[153,128,154,155,156,157,158,30,133,159,141,160,138,137,132,161,116,162,134,163],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":33},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000009","前端开发",[174,175,176,177,178,117,179,180,181,182,183,184,113,185,186,187,188,30,189,190],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":198,"publishedAt":33},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[197],{"categoryNo":125,"categoryName":126,"taxonomyType":98,"taxonomyTypeDesc":99},[199,200,201,202,203,204,205,206,30,207,208,209,210,211,212,213,214,215,216,134],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","data","flow","verification","code","rust"]