
Ddd Validate
- 640 installs
- 67k repo stars
- Updated August 4, 2026
- ruvnet/ruflo
ddd-validate is an agent skill that validates domain boundaries and bounded contexts for developers who need to catch DDD leaks before merging cross-cutting backend changes.
About
ddd-validate is a ruflo skill that systematically validates domain boundaries across bounded contexts in a DDD codebase. It discovers contexts by scanning `src/*/domain/`, then checks cross-boundary import violations and aggregate invariant issues that erode isolation between contexts. Developers reach for ddd-validate when auditing a DDD codebase for leaks, before merging cross-cutting changes, or as a CI gate to catch boundary erosion early. It integrates claude-flow memory store, memory search, and pre/post-task hooks alongside Bash, Read, Grep, and Glob for repository scans.
- Applies Domain-Driven Design validation patterns to catch modeling errors early
- Produces explicit bounded-context and aggregate checklists
- Hard-gate: blocks implementation until domain model passes validation
- Works with both event-storming and traditional DDD artifacts
- Next-skill handoff to implementation planning once approved
Ddd Validate by the numbers
- 640 all-time installs (skills.sh)
- +10 installs in the week ending Jul 26, 2026 (Skillselion tracking)
- Ranked #644 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/ruvnet/ruflo --skill ddd-validateAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 640 |
|---|---|
| repo stars | ★ 67k |
| Last updated | August 4, 2026 |
| Repository | ruvnet/ruflo ↗ |
How do you validate DDD bounded context boundaries?
Systematically validate domain models and bounded contexts before writing production code.
Who is it for?
Backend developers enforcing DDD boundaries who need automated scans before merge or in CI.
Skip if: Codebases without `src/*/domain/` bounded-context layout or teams not using domain-driven design.
When should I use this skill?
Auditing DDD leaks, reviewing cross-cutting backend changes, or adding a CI gate for bounded-context integrity.
What you get
Bounded context map with cross-boundary violation report and aggregate invariant findings.
- Boundary violation report
- Bounded context inventory
Files
Validate domain boundary integrity across all bounded contexts.
Steps
1. Discover contexts: Scan src/*/domain/ to find all bounded contexts.
2. Check cross-boundary violations:
- For each context, scan all
.tsfiles for import statements - Flag any import that reaches into another context's
domain/directory directly - Allowed: importing from another context's public
index.ts(application layer) - Violation: importing from
src/<other-context>/domain/entities/...directly
# Find cross-boundary imports
for ctx in $(find src -maxdepth 2 -name "domain" -type d | sed 's|src/||;s|/domain||'); do
grep -rn "from ['\"].*src/" "src/$ctx/" --include="*.ts" | grep -v "src/$ctx/" || true
done3. Check aggregate invariant enforcement:
- Scan aggregate root entities for public setters that bypass validation
- Flag mutable public properties without invariant checks
- Verify that child entities are not directly accessible (must go through aggregate root)
4. Check event naming conventions:
- Domain events should be past-tense named (e.g.,
OrderCreated, notCreateOrder) - Events should be immutable (no public setters)
- Events should carry the aggregate ID
5. Check repository patterns:
- Repository interfaces should exist in
domain/repositories/, notinfrastructure/ - Repository implementations should exist in
infrastructure/, notdomain/ - Each aggregate root should have exactly one repository
6. Report findings:
- Output a table of violations with file path, line number, violation type, and suggestion
- Categorize as:
BOUNDARY,INVARIANT,EVENT,REPOSITORY - Exit with summary: total violations, by category, severity
7. Store results:
npx @claude-flow/cli@latest memory store --key "ddd-validation-TIMESTAMP" --value "RESULTS_SUMMARY" --namespace tasks
npx @claude-flow/cli@latest hooks post-task --task-id "ddd-validate" --success true --store-results trueRelated skills
FAQ
What does ddd-validate scan?
ddd-validate scans `src/*/domain/` to discover bounded contexts, then checks for cross-context import violations and aggregate invariant issues that break domain boundary isolation.
When should ddd-validate run in CI?
Run ddd-validate as a CI gate before merging cross-cutting backend changes to catch bounded-context erosion and import leaks early instead of after production coupling spreads.