From atum-stack-backend
Structure software around the Dependency Rule: source code dependencies point inward from frameworks to use cases to entities. Use when the user mentions "architecture layers", "dependency rule", "ports and adapters", "hexagonal architecture", or "use case boundary". Covers component principles, boundaries, and SOLID.
npx claudepluginhub arnwaldn/atum-plugins-collection --plugin atum-stack-backendThis skill uses the workspace's default tool permissions.
A disciplined approach to structuring software so that business rules remain independent of frameworks, databases, and delivery mechanisms.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
A disciplined approach to structuring software so that business rules remain independent of frameworks, databases, and delivery mechanisms.
Source code dependencies must point inward -- toward higher-level policies. Nothing in an inner circle can know anything about something in an outer circle.
Goal: 10/10. Rate software architecture 0-10 based on adherence to these principles.
Innermost → Outermost:
Data crossing boundaries: Always in a form convenient for the inner circle (DTOs, not ORM models).
| Topic | Reference | Load When |
|---|---|---|
| Layers & Boundaries | references/layers-and-boundaries.md | Detailed layer patterns, humble object, composition root |
| Component & SOLID Principles | references/component-principles.md | REP, CCP, CRP, ADP, SDP, SAP, SRP, OCP, LSP, ISP, DIP |
| Question | If No | Action |
|---|---|---|
| Test business rules without DB/web? | Coupled to infra | Extract behind interfaces |
| Dependencies point inward? | Rule violated | Introduce interfaces; invert |
| Can swap database? | Persistence leaking | Repository pattern |
| Use Cases delivery-independent? | HTTP leaking | Use plain DTOs |
| Framework in outermost circle? | Framework is architecture | Push to edges |
| Mistake | Fix |
|---|---|
| ORM leaking into business logic | Separate domain from persistence models |
| Business rules in controllers | Move logic into Use Case Interactors |
| Framework-first architecture | Treat framework as outermost plugin |
| Circular dependencies | Apply DIP or extract shared abstraction |
| Giant Use Cases | Split into single-operation Use Cases |