← ClaudeAtlas

dca-reviewlisted

Reviews Java/Spring or .NET/C# code against Domain-Centric Architecture (DCA) conventions. Complements ArchUnit by checking semantic aspects that static rules can't: aggregate-design quality, use-case granularity, port semantics, domain-event hygiene, failure types and their translation, cross-context boundaries, naming consistency. Use when the user asks to "review my DCA code", "is this DCA-compliant", "audit the changes for DCA", or "/dca-review". Default scope is the git diff against main; the user can pass explicit paths instead.
domain-centric-development/dca-marketplace · ★ 0 · Code & Development · score 72
Install: claude install-skill domain-centric-development/dca-marketplace
# dca-review Reviews changed code (or specific paths) for **DCA compliance** — focusing on issues that ArchUnit rules can't detect because they are semantic, not structural. This is the third skill in the DCA suite. It assumes `dca-bootstrap` may or may not have run. If it ran, the review reads the project's `DcaLayout` from the architecture test (and the conventions overlay, `.agents/dca/conventions.md` (or `.claude/dca/conventions.md`)) for naming conventions; otherwise it falls back to defaults. Java and C# are reviewed against the same checklist — `reference/naming-conventions.md` carries the language mapping. ## Where ArchUnit ends and dca-review begins | Checked by ArchUnit | Checked by dca-review | |---|---| | Class names match suffix patterns | Whether the names actually describe what the class does | | Domain doesn't depend on adapters | Whether use cases hold too many output ports (god-use-case) | | Aggregates implement marker | Whether aggregates have real invariants vs. anemic | | Domain events implement marker | Whether events are emitted at the right state-transition points | | Cross-context refs forbidden | Whether the cross-context API is well-designed | | Records/finals on value objects | Whether value objects model the domain or just hold getters | | Failures extend the base type of their layer | Whether a refusal should have been a named failure at all, and whether an adapter catches too widely — a `throw` and a `catch` are not in the import model | Th