Skip to content

Commit 8d041ad

Browse files
author
aligneddev
committed
constitution add vertical slice
1 parent c0553cb commit 8d041ad

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

.specify/memory/constitution.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,26 @@ Example: "User records a bike ride" slice includes:
150150
- Background function listening to CES to update RideProjection
151151
- Aspire AppHost configuration for frontend + API + database orchestration; Azure CLI deployment scripts for Static Web Apps (frontend) and Container Apps (API)
152152

153+
### Vertical Slice Implementation Strategy: Minimal-First Approach
154+
155+
After the application structure is built, implementation proceeds in **vertical slices with minimal functionality first**:
156+
157+
1. **Identify Minimal Viable Feature**: Extract the smallest, testable piece of the specification that delivers user value (e.g., "User records a basic ride with just distance and date" vs. "User records ride with weather, auto-capture, and expense associations").
158+
2. **Implement Minimal Functionality**: Build only what's needed for this slice to work end-to-end:
159+
- Blazor form with essential fields only
160+
- API endpoint handling the core command
161+
- Event and projection for persistence
162+
- Database schema (migrations)
163+
- No bells, whistles, or optional features
164+
3. **Test & Verify**: Run full test suite (unit, integration, E2E); deploy locally via `dotnet run` and manually verify the slice works as specified.
165+
4. **User Decision Point**: Once minimal slice is verified and working, present the user with options:
166+
- **Approve Minimal & Iterate**: User approves the working slice, then we build next priority feature (additional fields, refinements, enhancement)
167+
- **Expand Current Slice**: User requests additional functionality for the current slice before finalizing (e.g., "add weather capture" to the ride recording feature)
168+
- **Pivot**: User validates that the minimal approach solves the problem; if solution is sufficient, ship as-is; otherwise, refine or fold into next slice
169+
5. **Repeat**: Each new feature/slice follows the same pattern: minimal implementation → test → user approval → expand or next slice
170+
171+
**Rationale**: Minimal-first approach de-risks development by getting working code to user quickly; validates assumptions early; prevents over-engineering; enables user feedback to guide remaining work; reduces scope creep. Vertical slices remain deployable and testable at each iteration boundary. The Pragmatic Programmer calls this "Tracer Bullets" — get something working end-to-end before perfecting it.
172+
153173
### Definition of Done: Vertical Slice Completeness
154174

155175
A vertical slice is **production-ready** only when all items are verified:

0 commit comments

Comments
 (0)