[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N8776NF2CSZ5THX5T6GMC9":3,"skill-same:01M6N8776NF2CSZ5THX5T6GMC9":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":13,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6N8776NF2CSZ5THX5T6GMC9","ddd-tactical-patterns",null,"Apply DDD tactical patterns in code using entities, value objects, aggregates, repositories, and domain events with explicit invariants.","JackSmack1971\u002Fantigravity-meta","JackSmack1971","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F128181597?v=4","01M6KS1FH32N6WNWZ68JC9FFDJ","01M6N7JCBG1NDFN2ZNKGMKMFMQ",0,"MIT","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fddd-tactical-patterns\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"ddd","patterns","ddd tactical patterns","tactical","value-objects","apply","value","invariants","with","events","self","domain","domain-events","safe","aggregates","objects","[ddd, tactical, aggregates, value-objects, domain-events]","code","2026-11-10 10:12:30",false,"---\nname: ddd-tactical-patterns\ndescription: \"Apply DDD tactical patterns in code using entities, value objects, aggregates, repositories, and domain events with explicit invariants.\"\nrisk: safe\nsource: self\ntags: \"[ddd, tactical, aggregates, value-objects, domain-events]\"\ndate_added: \"2026-02-27\"\n---\n\n# DDD Tactical Patterns\n\n## Use this skill when\n\n- Translating domain rules into code structures.\n- Designing aggregate boundaries and invariants.\n- Refactoring an anemic model into behavior-rich domain objects.\n- Defining repository contracts and domain event boundaries.\n\n## Do not use this skill when\n\n- You are still defining strategic boundaries.\n- The task is only API documentation or UI layout.\n- Full DDD complexity is not justified.\n\n## Instructions\n\n1. Identify invariants first and design aggregates around them.\n2. Model immutable value objects for validated concepts.\n3. Keep domain behavior in domain objects, not controllers.\n4. Emit domain events for meaningful state transitions.\n5. Keep repositories at aggregate root boundaries.\n\nIf detailed checklists are needed, open `references\u002Ftactical-checklist.md`.\n\n## Example\n\n```typescript\nclass Order {\n  private status: \"draft\" | \"submitted\" = \"draft\";\n\n  submit(itemsCount: number): void {\n    if (itemsCount === 0) throw new Error(\"Order cannot be submitted empty\");\n    if (this.status !== \"draft\") throw new Error(\"Order already submitted\");\n    this.status = \"submitted\";\n  }\n}\n```\n\n## Limitations\n\n- This skill does not define deployment architecture.\n- It does not choose databases or transport protocols.\n- It should be paired with testing patterns for invariant coverage.\n","# DDD Tactical Patterns\n\n## Use this skill when\n\n- Translating domain rules into code structures.\n- Designing aggregate boundaries and invariants.\n- Refactoring an anemic model into behavior-rich domain objects.\n- Defining repository contracts and domain event boundaries.\n\n## Do not use this skill when\n\n- You are still defining strategic boundaries.\n- The task is only API documentation or UI layout.\n- Full DDD complexity is not justified.\n\n## Instructions\n\n1. Identify invariants first and design aggregates around them.\n2. Model immutable value objects for validated concepts.\n3. Keep domain behavior in domain objects, not controllers.\n4. Emit domain events for meaningful state transitions.\n5. Keep repositories at aggregate root boundaries.\n\nIf detailed checklists are needed, open `references\u002Ftactical-checklist.md`.\n\n## Example\n\n```typescript\nclass Order {\n  private status: \"draft\" | \"submitted\" = \"draft\";\n\n  submit(itemsCount: number): void {\n    if (itemsCount === 0) throw new Error(\"Order cannot be submitted empty\");\n    if (this.status !== \"draft\") throw new Error(\"Order already submitted\");\n    this.status = \"submitted\";\n  }\n}\n```\n\n## Limitations\n\n- This skill does not define deployment architecture.\n- It does not choose databases or transport protocols.\n- It should be paired with testing patterns for invariant coverage.\n",{"name":5,"risk":31,"tags":34,"source":28,"date_added":41,"description":7},"2026-02-27","main","d47cc0de4d70e7006abaebc8a07a7c7d626c6ccb",".agents\u002Fskills\u002Fddd-tactical-patterns","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta","https:\u002F\u002Fgithub.com\u002FJackSmack1971","2026-04-19 04:53:59",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add JackSmack1971\u002Fantigravity-meta --skill ddd-tactical-patterns",{"tool":54,"command":55},"bunx","bunx skills add JackSmack1971\u002Fantigravity-meta --skill ddd-tactical-patterns",{"tool":57,"command":58},"pnpm","pnpm dlx skills add JackSmack1971\u002Fantigravity-meta --skill ddd-tactical-patterns","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fddd-tactical-patterns\u002FSKILL.md",true,[62],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"references\u002Ftactical-checklist.md","REFERENCE","参考文档",611,"https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fddd-tactical-patterns\u002Freferences\u002Ftactical-checklist.md",[69,89,115,140,159,174],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":36},"01M6N8FMBDREJBRGQ37HAFBWWS","wcag-audit-patterns","Comprehensive guide to auditing web content against WCAG 2.2 guidelines with actionable remediation strategies.","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwcag-audit-patterns\u002FSKILL.md",[],[76,77,19,78,79,26,80,81,82,83,84,85,86,87,31,88],"wcag audit","audit","wcag audit patterns","WCAG","web content","strategies","actionable","content","guidelines","web","remediation","guide","community",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":100,"publishedAt":36},"01M6N8FEJG7PTGF6G16JW4HJV1","unit-testing-test-generate","Generate comprehensive, maintainable unit tests across languages with strong coverage and edge case focus.","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Funit-testing-test-generate\u002FSKILL.md",[95],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[101,102,103,104,105,106,107,108,109,26,110,111,112,113,88,114],"testing","test","generate","unit testing","unit testing test generate","unit","unit tests","case","unknown","edge","tests","across","focus","coverage",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":125,"publishedAt":36},"01M6N8FAAMS0QNTPD51FMYHAXE","testing-qa","Comprehensive testing and QA workflow covering unit testing, integration testing, E2E testing, browser automation, and quality assurance.","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ftesting-qa\u002FSKILL.md",[121,122],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},{"categoryNo":123,"categoryName":124,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000023","Skill与智能体开发",[126,101,127,128,104,129,130,131,106,132,133,134,135,136,137,31,138,139],"qa","testing qa","quality assurance","quality","bundle","integration testing","e2e","integration","browser","personal","automation","workflow","browser automation","e2e testing",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":147,"publishedAt":36},"01M6N8EXMACVX27C0TXFT0E48Q","test-fixing","Systematically identify and fix all failing tests using smart grouping strategies. Use when explicitly asks to fix tests (\"fix these tests\", \"make tests pass\"), reports test failures (\"tests are failing\", \"test suite is broken\"), or completes implementation and wants tests passing.","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ftest-fixing\u002FSKILL.md",[146],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},[148,102,88,149,150,111,81,151,152,153,154,155,156,157,158,31],"test fixing","suite","make","grouping","make tests","implementation","reports","test suite","use","fix","broken",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":36},"01M6N8ERMMBFTRRNK0T7H2S6R2","test-driven-development","Use when implementing any feature or bugfix, before writing implementation code","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[165],{"categoryNo":96,"categoryName":97,"taxonomyType":98,"taxonomyTypeDesc":99},[167,168,169,102,170,171,88,153,156,35,172,173,109],"driven","development","test driven development","bugfix","feature","writing","implementing",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":184,"publishedAt":36},"01M6N8EKRM0XQX5BKR8NJ2YAGF","terraform-infrastructure","Terraform infrastructure as code workflow for provisioning cloud resources, creating reusable modules, and managing infrastructure at scale.","https:\u002F\u002Fgithub.com\u002FJackSmack1971\u002Fantigravity-meta\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fterraform-infrastructure\u002FSKILL.md",[180,183],{"categoryNo":181,"categoryName":182,"taxonomyType":98,"taxonomyTypeDesc":99},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":123,"categoryName":124,"taxonomyType":98,"taxonomyTypeDesc":99},[185,186,187,188,189,190,191,130,192,193,194,195,196,197,35,137,31,135],"terraform","infrastructure","terraform infrastructure","resources","for","at","scale","as","reusable","modules","provisioning","cloud","infrastructure as code"]