Install
$ agentstack add skill-grndlvl-software-patterns-ddd ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Domain-Driven Design Skill
Reference for domain modeling concepts from Eric Evans' "Domain-Driven Design: Tackling Complexity in the Heart of Software."
Activation Triggers
Use this skill when discussing:
- Domain modeling and ubiquitous language
- Bounded contexts and context mapping
- Entities vs value objects
- Aggregates and aggregate roots
- Repository and factory patterns
- Domain events and event storming
- Anti-corruption layers
Quick Reference
Strategic DDD Patterns
| Pattern | Purpose | When to Use | |---------|---------|-------------| | Bounded Context | Define clear boundaries | Different teams, different models | | Ubiquitous Language | Shared vocabulary | Always within a context | | Context Map | Show relationships | Multiple bounded contexts | | Anti-Corruption Layer | Protect from external models | Integrating legacy/external systems |
Tactical DDD Patterns
| Pattern | Characteristics | Identity | |---------|-----------------|----------| | Entity | Mutable, lifecycle, identity matters | Has unique ID | | Value Object | Immutable, no identity, equality by attributes | No ID needed | | Aggregate | Consistency boundary, transactional unit | Has aggregate root | | Domain Event | Something that happened, immutable | Named in past tense |
Building Blocks
| Block | Responsibility | |-------|----------------| | Entity | Model with identity and lifecycle | | Value Object | Describe characteristics | | Aggregate | Enforce invariants, transactional boundary | | Repository | Persist and retrieve aggregates | | Factory | Complex object creation | | Domain Service | Stateless domain operations | | Application Service | Orchestrate use cases | | Domain Event | Capture something that happened |
Context Mapping Relationships
| Relationship | Description | |--------------|-------------| | Partnership | Two teams cooperate | | Shared Kernel | Shared subset of model | | Customer-Supplier | Upstream/downstream dependency | | Conformist | Downstream conforms to upstream | | Anti-Corruption Layer | Translate between models | | Open Host Service | Published API for many consumers | | Published Language | Well-documented interchange format | | Separate Ways | No integration |
Aggregate Design Rules
- Protect invariants - Aggregate root enforces all rules
- Design for consistency - One aggregate per transaction
- Reference by identity - Don't hold direct references to other aggregates
- Use eventual consistency - Between aggregates, not within
- Keep aggregates small - Focused on true invariants
Entity vs Value Object Decision
Does identity matter beyond its attributes?
├── YES → Entity (e.g., User, Order, Product)
└── NO → Value Object (e.g., Address, Money, DateRange)
Will instances be shared?
├── YES → Entity (needs identity for references)
└── NO → Value Object (can be replaced/copied)
Directory Structure
ddd/
├── SKILL.md
├── strategic/
│ ├── ubiquitous-language.md
│ ├── bounded-contexts.md
│ ├── context-mapping.md
│ └── anti-corruption-layer.md
├── tactical/
│ ├── entities.md
│ ├── value-objects.md
│ ├── aggregates.md
│ ├── domain-services.md
│ └── domain-events.md
├── patterns/
│ ├── repositories.md
│ ├── factories.md
│ └── specifications.md
└── practices/
├── event-storming.md
└── model-exploration.md
Usage Examples
Modeling a Domain
Question: "How should I model orders?"
Consider:
1. Define Ubiquitous Language - See strategic/ubiquitous-language.md
2. Identify Entities vs Value Objects - See tactical/
3. Find Aggregates - See tactical/aggregates.md
4. Design Repositories - See patterns/repositories.md
Integrating Systems
Question: "How do I integrate with legacy system?"
Consider:
- Define Bounded Context boundary
- Use Anti-Corruption Layer
- Map contexts with Context Map
Based on concepts from "Domain-Driven Design" by Eric Evans.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: grndlvl
- Source: grndlvl/software-patterns
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.