Slice Work Vertically
Convert approved outcomes into the smallest reviewable increments that prove user value end to end.
Establish the Baseline
- Locate the approved specification and its acceptance criteria.
- Stop and request definition or approval when either is missing, ambiguous, or still disputed. Do not silently invent product intent.
- Read the repository instructions, architecture, tests, and current task state. Read
AGENTS.md and CLAUDE.md when present, but never overwrite them automatically.
- Reuse the repository's task-state convention. If none exists, write the slice plan to
.agent/tasks/<slug>.md.
- State assumptions, competing interpretations, constraints, and unresolved risks before choosing slices.
Build the Slice Map
- Trace each acceptance criterion through the relevant data, domain, API, UI, integration, and operations boundaries. Include only layers the outcome actually needs.
- Select the thinnest capability a user or stakeholder can demonstrate independently. Prefer delivered user value and risk reduction over minimum file count.
- Carry the minimum required work across relevant layers inside the same slice. Do not create horizontal phases such as "all database work," then "all APIs," then "all UI."
- Put dependency blockers and high-impact unknowns into the earliest slice that can test them through a real end-to-end path. If a standalone investigation is unavoidable, mark it as an enabling checkpoint rather than completed product value.
- Order the remaining slices by dependency, risk, and incremental user value. Keep each slice independently reviewable as one PR-sized checkpoint.
- Keep exactly one slice
Active; mark all others Pending, Blocked, or Done.
Define Every Slice
Record all of these fields:
- User outcome: the observable value or learned constraint.
- Scope: behavior included in this slice.
- Not in scope: behavior deliberately deferred.
- Dependencies: prior slices, decisions, services, or data required.
- Likely paths: repository areas expected to change; label uncertainty instead of fabricating paths.
- Done when: fresh executable checks and observable assertions that prove the outcome.
- Demo method: exact user or stakeholder path for showing the increment.
- Status:
Pending, Active, Blocked, or Done.
Map each slice to one or more approved acceptance criteria. Split a slice further when its evidence cannot isolate the promised outcome or when it cannot be reviewed coherently.
Apply Delivery Guardrails
- Treat roughly 150 changed lines as a signal to reconsider scope, not as a universal pass/fail gate. Keep a larger slice when splitting would obscure one coherent behavior, and record why.
- Batch purely mechanical refactors in coherent dependency-safe groups. Prove preserved behavior with executable checks instead of inventing a UI slice where no user-facing path exists.
- Preserve unrelated and pre-existing worktree changes. Never use
git reset --hard.
- Prepare each slice so it could become one commit, PR, or checkpoint, but commit, open a PR, or push only with explicit user authorization and only for task-owned changes.
- Update status and evidence after each checkpoint. Do not activate the next slice until the current one is
Done or explicitly Blocked with a recorded reason.
Read slice examples and the record template when drafting or reviewing a slice plan.
1---2name: slice-vertical3description: Turn an approved specification into ordered, independently demonstrable vertical slices with executable evidence. Use for requests such as 'break this approved team-invitations spec into vertical slices', 'plan tracer-bullet delivery', 'разбей утверждённую фичу на вертикальные срезы', or 'составь план вертикальных срезов'; do not use before the specification and acceptance criteria are approved.4---56# Slice Work Vertically78Convert approved outcomes into the smallest reviewable increments that prove user value end to end.910## Establish the Baseline11121. Locate the approved specification and its acceptance criteria.132. Stop and request definition or approval when either is missing, ambiguous, or still disputed. Do not silently invent product intent.143. Read the repository instructions, architecture, tests, and current task state. Read `AGENTS.md` and `CLAUDE.md` when present, but never overwrite them automatically.154. Reuse the repository's task-state convention. If none exists, write the slice plan to `.agent/tasks/<slug>.md`.165. State assumptions, competing interpretations, constraints, and unresolved risks before choosing slices.1718## Build the Slice Map19201. Trace each acceptance criterion through the relevant data, domain, API, UI, integration, and operations boundaries. Include only layers the outcome actually needs.212. Select the thinnest capability a user or stakeholder can demonstrate independently. Prefer delivered user value and risk reduction over minimum file count.223. Carry the minimum required work across relevant layers inside the same slice. Do not create horizontal phases such as "all database work," then "all APIs," then "all UI."234. Put dependency blockers and high-impact unknowns into the earliest slice that can test them through a real end-to-end path. If a standalone investigation is unavoidable, mark it as an enabling checkpoint rather than completed product value.245. Order the remaining slices by dependency, risk, and incremental user value. Keep each slice independently reviewable as one PR-sized checkpoint.256. Keep exactly one slice `Active`; mark all others `Pending`, `Blocked`, or `Done`.2627## Define Every Slice2829Record all of these fields:3031- **User outcome**: the observable value or learned constraint.32- **Scope**: behavior included in this slice.33- **Not in scope**: behavior deliberately deferred.34- **Dependencies**: prior slices, decisions, services, or data required.35- **Likely paths**: repository areas expected to change; label uncertainty instead of fabricating paths.36- **Done when**: fresh executable checks and observable assertions that prove the outcome.37- **Demo method**: exact user or stakeholder path for showing the increment.38- **Status**: `Pending`, `Active`, `Blocked`, or `Done`.3940Map each slice to one or more approved acceptance criteria. Split a slice further when its evidence cannot isolate the promised outcome or when it cannot be reviewed coherently.4142## Apply Delivery Guardrails4344- Treat roughly 150 changed lines as a signal to reconsider scope, not as a universal pass/fail gate. Keep a larger slice when splitting would obscure one coherent behavior, and record why.45- Batch purely mechanical refactors in coherent dependency-safe groups. Prove preserved behavior with executable checks instead of inventing a UI slice where no user-facing path exists.46- Preserve unrelated and pre-existing worktree changes. Never use `git reset --hard`.47- Prepare each slice so it could become one commit, PR, or checkpoint, but commit, open a PR, or push only with explicit user authorization and only for task-owned changes.48- Update status and evidence after each checkpoint. Do not activate the next slice until the current one is `Done` or explicitly `Blocked` with a recorded reason.4950Read [slice examples and the record template](references/slice-examples.md) when drafting or reviewing a slice plan.