separation-of-concerns
Separation of Concerns
Mental Model: Verticals and Horizontals
Vertical = all code for ONE feature, grouped together Horizontal = capabilities used by MULTIPLE features
features/— verticals, containing some combination of entrypoint/, commands/, queries/, domain/, infra/- commands/ orchestrates write operations (state mutations or external side-effects)
- queries/ usually queries database directly but can query domain if easier
- domain/ contains business rules
- entrypoint/ only needed when exposing external interface (HTTP, CLI, events)
- infra/ feature-specific infrastructure (mappers, middleware, persistence implementations)
platform/— horizontals, containsdomain/andinfra/- domain/ depends on nothing — never imports from infra/
- infra/ CAN depend on domain/ (implements domain contracts)
shell/— app wiring/routing only (no business logic). Registers routes, bootstraps frameworks, connects message brokers. Not a package entry point — libraries usesrc/index.tsfor that.src/index.ts— library package entry point. Pure barrel file (only re-export statements, no logic). Only needed for packages consumed by other packages.
More from ntcoding/claude-skillz
critical-peer-personality
Professional, skeptical communication style. Never over-enthusiastic, verifies before agreeing, challenges constructively, proposes instead of asking preferences. Expert peer who coaches, not serves. Triggers on: composing responses, agreeing with user, making recommendations, giving feedback.
38data-visualization
Comprehensive data visualization skill covering visual execution and technical implementation. Includes perceptual foundations, chart selection, layout algorithms, and library guidance. Triggers on: charts, graphs, dashboards, 'visualize', 'plot', data presentation, D3, Recharts, Victory.
32create-tasks
Creates well-formed tasks following a template that engineers can implement. Triggers on: 'create tasks', 'define work items', 'break this down', creating tasks from PRD, converting requirements into actionable tasks, feature breakdown, sprint planning.
30switch-persona
Quick persona switching. Triggers: 'switch persona', 'switch to X', 'become X'. Lists personas, reads selected file, switches immediately.
29concise-output
Enforces brevity and signal-over-noise in all outputs. Eliminates verbose explanations, filler phrases, and unnecessary elaboration. Triggers on: every response (governs output length and density when loaded).
28challenge-that
Force critical evaluation of proposals, requirements, or decisions by analyzing from multiple adversarial perspectives. Triggers on: accepting a proposal without pushback, 'sounds good', 'let's go with', design decisions with unstated tradeoffs, unchallenged assumptions, premature consensus. Invoke with /challenge-that.
26