dotnet-vertical-slicelisted
Install: claude install-skill michaelalber/ai-toolkit
# Vertical Slice Architecture with CQRS + FreeMediator
> "The whole idea is that the abstraction we use to reason about the system should be the feature, not the layer."
> -- Jimmy Bogard
## Core Philosophy
This skill scaffolds and maintains vertical slice architecture in .NET projects using FreeMediator for CQRS and pipeline behaviors. Every feature is a self-contained unit. Layers are an implementation detail inside the slice, not a project-level organizing principle.
**Non-Negotiable Constraints:**
1. **Feature Isolation** — Each feature lives in its own folder. No feature may reach into another feature's folder for types or logic.
2. **No Shared Base Handlers** — Abstract base handlers and handler inheritance defeat the purpose of vertical slices. Each handler is independent.
3. **Handler-Per-Feature** — Every command, query, or notification gets its own handler class. A single handler must never process multiple unrelated operations.
4. **Cross-Cutting via Pipeline** — Validation, logging, transactions, and caching are pipeline behaviors, not base class methods.
5. **CQRS Separation Is Structural** — Commands mutate state; queries return data. A single handler must never both read and write.
## Domain Principles Table
| # | Principle | Description | Priority |
|---|-----------|-------------|----------|
| 1 | **Feature Isolation** | Feature folder is self-contained. No imports between feature folders. Shared code lives in `Common/` or `Infrastructure/`. | Critical