[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QQ623FMWN0DTXRWFT212VZ":3,"skill-same:01M6QQ623FMWN0DTXRWFT212VZ":64},{"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":23,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":14,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":48,"updatedAt":49,"install":50,"resources":63},"01M6QQ623FMWN0DTXRWFT212VZ","ddd",null,"Domain-Driven Design tactical patterns for the domain layer. Use when designing entities, value objects, aggregates, or reviewing domain model compliance.","lfr-ai\u002Fcopier-fullstack-template","lfr-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F233346551?v=4","01M6QPWTJWTSJV1TQTTY8ZPBYJ","Laurits Fromberg","01M6QPWTQ47BZGA4TH17H14N80",0,"MIT","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fddd\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"design","compliance","model","use","patterns","objects","tactical","aggregates","domain","domain model","driven","layer","for","value","2026-11-10 10:12:30",false,"---\nname: ddd\ndescription: \"Domain-Driven Design tactical patterns for the domain layer. Use when designing entities, value objects, aggregates, or reviewing domain model compliance.\"\n---\n\n# Domain-Driven Design (DDD) Skill\n\nTactical DDD patterns for the domain layer (`core\u002F`).\n\n## When to Use This Skill\n\n- Designing new domain concepts (entities, value objects, aggregates)\n- Reviewing domain model for DDD compliance\n- Identifying aggregate boundaries\n- Extracting value objects from primitives\n- Modeling domain events\n- Creating repository protocols\n\n## DDD Tactical Patterns\n\n### 1. Entities\n\n**Definition**: Objects with identity that persists over time.\n\n### 2. Value Objects\n\n**Definition**: Immutable objects defined by their attributes, not identity.\n\n### 3. Aggregates\n\n**Definition**: Cluster of domain objects treated as a unit for consistency.\n\n### 4. Ports (Interfaces)\n\n**Definition**: Abstract protocols defining contracts between layers.\n\n## Clean Architecture Mapping\n\n| DDD Concept | Location | Example |\n|------------|----------|---------|\n| Entity | `core\u002Fentities\u002F` | `User`, `Document` |\n| Value Object | `core\u002Fvalue_objects\u002F` | `Email`, `CPR` |\n| Port | `core\u002Finterfaces\u002F` | `UserRepository`, `LLMGateway` |\n| Domain Service | `core\u002Fdomain_services\u002F` | `PasswordPolicy` |\n| Application Service | `application\u002Fservices\u002F` | `UserService` |\n| Repository Impl | `infrastructure\u002Fpersistence\u002Frepositories\u002F` | `SQLAlchemyUserRepository` |\n","# Domain-Driven Design (DDD) Skill\n\nTactical DDD patterns for the domain layer (`core\u002F`).\n\n## When to Use This Skill\n\n- Designing new domain concepts (entities, value objects, aggregates)\n- Reviewing domain model for DDD compliance\n- Identifying aggregate boundaries\n- Extracting value objects from primitives\n- Modeling domain events\n- Creating repository protocols\n\n## DDD Tactical Patterns\n\n### 1. Entities\n\n**Definition**: Objects with identity that persists over time.\n\n### 2. Value Objects\n\n**Definition**: Immutable objects defined by their attributes, not identity.\n\n### 3. Aggregates\n\n**Definition**: Cluster of domain objects treated as a unit for consistency.\n\n### 4. Ports (Interfaces)\n\n**Definition**: Abstract protocols defining contracts between layers.\n\n## Clean Architecture Mapping\n\n| DDD Concept | Location | Example |\n|------------|----------|---------|\n| Entity | `core\u002Fentities\u002F` | `User`, `Document` |\n| Value Object | `core\u002Fvalue_objects\u002F` | `Email`, `CPR` |\n| Port | `core\u002Finterfaces\u002F` | `UserRepository`, `LLMGateway` |\n| Domain Service | `core\u002Fdomain_services\u002F` | `PasswordPolicy` |\n| Application Service | `application\u002Fservices\u002F` | `UserService` |\n| Repository Impl | `infrastructure\u002Fpersistence\u002Frepositories\u002F` | `SQLAlchemyUserRepository` |\n",{"name":5,"description":7},"main","f726ce2f2bb4e3bcc2f56c066598f4acd910c5ee",".github\u002Fskills\u002Fddd","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template","https:\u002F\u002Fgithub.com\u002Flfr-ai","Optimizing for elegance","2026-07-20 12:19:48",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add lfr-ai\u002Fcopier-fullstack-template --skill ddd",{"tool":56,"command":57},"bunx","bunx skills add lfr-ai\u002Fcopier-fullstack-template --skill ddd",{"tool":59,"command":60},"pnpm","pnpm dlx skills add lfr-ai\u002Fcopier-fullstack-template --skill ddd","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fddd\u002FSKILL.md",true,[],[65,96,108,114,130,136],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":79,"publishedAt":38},"01M6QQGVYW8BZ3W165A5YMJ1PF","ui-ux-frontend","Frontend UX, accessibility, responsive layout, and Storybook interaction quality standards.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002Ftemplate\u002F.github\u002Fskills\u002Fui-ux-frontend\u002FSKILL.md",[71,74],{"categoryNo":72,"categoryName":73,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],"ui ux","ui ux frontend","ui","ux","frontend","storybook","frontend ux","interaction","layout","responsive","mdx","tsx","standards","quality","accessibility","css",{"skillNo":97,"name":98,"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":99,"categories":100,"keywords":104,"publishedAt":38},"01M6QQGS7N3ENQZR2Y5JBRYDHD","testing-conventions","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002Ftemplate\u002F.github\u002Fskills\u002Ftesting-conventions\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[105,106,107],"conventions","testing conventions","testing",{"skillNo":109,"name":110,"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":111,"categories":112,"keywords":113,"publishedAt":38},"01M6QQGQKA9Q6A147WXMS7QPGX","tdd","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002Ftemplate\u002F.github\u002Fskills\u002Ftdd\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":38},"01M6QQG5AZPRWSR6SSCCDDPAM3","shadcn-ui","shadcn\u002Fui component conventions and composition patterns","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002Ftemplate\u002F.github\u002Fskills\u002Fshadcn-ui\u002FSKILL.md",[120],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[122,82,123,124,91,125,126,127,128,105,28,129],"shadcn ui","shadcn","component","Composition","src","composition patterns","presentation","ui component",{"skillNo":131,"name":132,"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":133,"categories":134,"keywords":135,"publishedAt":38},"01M6QQG3WMMB8X8C4T8PR7WBV4","sdd","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002Ftemplate\u002F.github\u002Fskills\u002Fsdd\u002FSKILL.md",[],[132],{"skillNo":137,"name":138,"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":139,"categories":140,"keywords":141,"publishedAt":38},"01M6QQG241NAC5PQFXFD01NR16","quality-gate","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002Ftemplate\u002F.github\u002Fskills\u002Fquality-gate\u002FSKILL.md",[],[142,93,143],"quality gate","gate"]