npx claudepluginhub techygarg/lattice --plugin latticeThis skill uses the workspace's default tool permissions.
Skill support project-custom. Resolution:
Provides Domain-Driven Design tactical patterns for modeling entities, value objects, domain services, repositories, aggregates, and bounded contexts in complex business domains.
Guides Domain-Driven Design for complex business logic: aggregates, bounded contexts, ubiquitous language, value objects, entities, and TypeScript implementations with invariants.
Apply DDD principles to model business domains, design aggregates, and establish clear language across teams. Use when modeling complex business logic or integrating domain experts.
Share bugs, ideas, or general feedback.
Skill support project-custom. Resolution:
.lattice/config.yaml repo rootpaths.ddd_principles custom doc pathmode:
mode: override (or no mode): Custom doc full precedence.
Use instead embed default. Must comprehensive -- sole reference.mode: overlay: Read embed ./references/defaults.md first, then apply
custom doc section on top. Section custom replace match
section default (match by heading). New section append after default../references/defaults.mdpaths.language_idioms exist in config, read "Type System & Object Model" section and adapt entity, value object, and aggregate implementation patterns to language constructs (e.g., struct vs class, trait vs interface, data class vs record). Language idioms take precedence over pseudocode defaults.Default ship with skill, represent opinionated best practice. Work out box any project. Override only when team have specific standard differ from default.
STOP after generate each component. Verify ALL follow before proceed. If check clearly fail, fix code before present. If check judgment call with multiple valid approach (see Ambiguity Signal), flag — present option and reasoning rather than silent choose.
Order.create(...)) or standalone factory class? Initial creation and reconstitution from persistence handle separate?After verify checklist above, scan output these specific anti-pattern. If find any, fix before present code.
These check often have multiple valid outcome. When encounter, present option rather than silent choose.
Address or Money) may or may not need identity depend domain complexity. Apply identity test, but acknowledge when borderline.Skill operate within single repo, single bounded context (e.g., one API -- Order, User, Pricing). Cover tactical DDD pattern only -- not strategic DDD (no context map, no microservice topology, no bounded context integration).
If task appear span multiple bounded context (e.g., Order feature call Shipping logic), flag before proceed: "This task touches [Context A] and [Context B]. Cross-context integration is strategic DDD — outside this skill's scope. Would you like to scope to one context, or proceed knowing cross-context coordination is your responsibility?"
framework:architecture provide structural envelope -- where code live, which layer exist, which direction dependency flow. This skill define how craft domain within envelope: rich model, invariant, aggregate boundary, ubiquitous language.
Domain model authoritative expression business rule. Rich domain object encapsulate behavior and enforce invariant. Code speak ubiquitous language business.
If business rule exist, should expressible through domain model -- not scatter across controller, application service, or infrastructure. Entity only data holder with external service do all work is anemic model, primary anti-pattern this skill prevent.
See ./references/defaults.md for aggregate design rules, entity/value object/domain service/domain event/repository/creation patterns with code examples, inline anti-pattern warnings, and decomposition guide.