---
name: vertical-slicing
type: workflow
description: "Guidelines and procedures for planning and implementing end-to-end functional slices for fullstack features."
user-invocable: true
allowed-tools: Read, Glob, Grep, Write
effort: 3
argument-hint: "[feature, epic, or PRD name]"
when_to_use: "Use when planning a fullstack feature that should be delivered as end-to-end user-value slices instead of separate backend and frontend layers."
Skill: /vertical-slicing
Use this skill when planning complex fullstack features to ensure delivery by user-value units rather than technical layers.
Vertical slices should not merely cross layers. They should also protect depth:
keep complexity concentrated behind small interfaces instead of smearing logic
across DB, API, and UI callers.
The Vertical Slicing Workflow
1. Identify the Smallest Value Unit
Decompose the PRD into slices that represent a functional path.
Example: Instead of "Authentication System," start with "Login with Email and Password".
Good slice shape:
Narrow enough to demo or verify independently
Complete enough to exercise the real seam end-to-end
Small enough that one RED -> GREEN loop can prove meaningful progress
Not a horizontal placeholder like "backend groundwork" unless that groundwork
is a real prerequisite with its own verification
2. Define the Contract
Before implementing, the lead-programmer or backend-developer must define the API contract.
Document this in a Design Doc or temporary spec.
Prefer contracts that create deep modules: small interfaces with meaningful
behavior hidden behind them. If a contract mostly forwards data or mirrors
caller complexity, it is probably too shallow.
3. Plan the Slice Tasks
Organize each phase to contain:
Database/Data Model: Schema changes required for this slice.
Backend Implementation: Logic and API endpoints.
Frontend Integration: UI components and API consumption.
Interface risk: where a shallow seam or pass-through wrapper could appear
4. Implementation Rules
Do not confuse "deepest" with "lowest layer". Start where the slice creates
the strongest behavior seam, then drive outward through the stack.
Do not move to the next slice until the current one is "Integration Complete".
If a horizontal change is absolutely necessary (e.g., shared middleware), implement it as a prerequisite phase 0.
Apply the deletion test to new wrappers and adapters. If deleting the new
abstraction would mostly simplify the code instead of reintroducing complexity
across callers, the seam is too shallow.
Benefits for Agents
Context Management: Focusing on a slice keeps the context window filled with relevant code for that specific path.
Early Feedback: The user can verify functional pieces earlier.
Reduced Integration Risk: Cross-layer issues are caught within the slice implementation.
Better Architecture: Tracer-bullet slices expose where interfaces are deep
enough to keep leverage and where they are only moving complexity around.
1---2name: vertical-slicing3description: ---4---5---6name: vertical-slicing7type: workflow8description: "Guidelines and procedures for planning and implementing end-to-end functional slices for fullstack features."9user-invocable: true10allowed-tools: Read, Glob, Grep, Write11effort: 312argument-hint: "[feature, epic, or PRD name]"13when_to_use: "Use when planning a fullstack feature that should be delivered as end-to-end user-value slices instead of separate backend and frontend layers."14---1516# Skill: /vertical-slicing1718Use this skill when planning complex fullstack features to ensure delivery by user-value units rather than technical layers.1920Vertical slices should not merely cross layers. They should also protect depth:21keep complexity concentrated behind small interfaces instead of smearing logic22across DB, API, and UI callers.2324## The Vertical Slicing Workflow2526### 1. Identify the Smallest Value Unit27- Decompose the PRD into slices that represent a functional path.28- Example: Instead of "Authentication System," start with "Login with Email and Password".2930Good slice shape:3132- Narrow enough to demo or verify independently33- Complete enough to exercise the real seam end-to-end34- Small enough that one RED -> GREEN loop can prove meaningful progress35- Not a horizontal placeholder like "backend groundwork" unless that groundwork36 is a real prerequisite with its own verification3738### 2. Define the Contract39- Before implementing, the `lead-programmer` or `backend-developer` must define the API contract.40- Document this in a Design Doc or temporary spec.4142Prefer contracts that create deep modules: small interfaces with meaningful43behavior hidden behind them. If a contract mostly forwards data or mirrors44caller complexity, it is probably too shallow.4546### 3. Plan the Slice Tasks47Organize each phase to contain:48- **Database/Data Model**: Schema changes required for this slice.49- **Backend Implementation**: Logic and API endpoints.50- **Frontend Integration**: UI components and API consumption.51- **E2E Verification**: Test verifying the whole path.5253For each slice, also record:5455- **Blocked by**: exact prerequisite slice(s) or `None`56- **Acceptance criteria**: observable end-to-end outcomes57- **Verification**: exact command/check for the slice58- **Interface risk**: where a shallow seam or pass-through wrapper could appear5960### 4. Implementation Rules61- Do not confuse "deepest" with "lowest layer". Start where the slice creates62 the strongest behavior seam, then drive outward through the stack.63- Do not move to the next slice until the current one is "Integration Complete".64- If a horizontal change is absolutely necessary (e.g., shared middleware), implement it as a prerequisite phase 0.65- Apply the deletion test to new wrappers and adapters. If deleting the new66 abstraction would mostly simplify the code instead of reintroducing complexity67 across callers, the seam is too shallow.6869## Benefits for Agents70- **Context Management**: Focusing on a slice keeps the context window filled with relevant code for that specific path.71- **Early Feedback**: The user can verify functional pieces earlier.72- **Reduced Integration Risk**: Cross-layer issues are caught within the slice implementation.73- **Better Architecture**: Tracer-bullet slices expose where interfaces are deep74 enough to keep leverage and where they are only moving complexity around.
Run npx skillmds@latest add tranhieutt/vertical-slicing in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
--- It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tranhieutt (@tranhieutt) published this skill. Their other Agent Skills are listed on their SkillMD profile.