Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Vertical-slicing playbook with 9 canonical Lawrence patterns for splitting epics into shippable user stories without losing user value. Use when a story is too big, exceeds cycle time, or fails INVEST-S.
.claude/skills/borghei-story-splitting/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 194% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 87% | 0% |
A pattern catalog for splitting epics and large stories into smaller, shippable, end-to-end slices that still deliver user value. Built on Richard Lawrence's canonical story-splitting flowchart (the 9 patterns most product teams converge on) with worked before/after examples and a quick-reference decision tree.
The single most common reason teams fail to deliver predictably is that stories are too large. Large stories balloon in cycle time (see cycle-time-analyzer/), create coordination overhead, and resist incremental release. The remedy is not to estimate more carefully; it is to split smaller — vertically, so each slice (1) delivers value the end user can perceive, (2) fits in a single sprint, (3) is independently shippable, and (4) passes INVEST quality gates (see wwas/). The skill is pattern-based — no Python tool is needed; the value is the recipes and the worked examples.
create-prd/ or story-mapping/ needs to be broken into a release backlog.Before splitting, confirm these inputs. If any is unknown or vague, ASK — do not assume:
create-prd/), not split (gates the whole procedure, Step 1)Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the artifact.
create-prd/, don't split.)references/story-splitting-procedure.md); stop at the first pattern that applies.wwas/ or job-stories/ format; verify each is vertical (crosses all layers, independently demoable).Load the reference that matches the task — keep this file lean and pull detail on demand:
In Scope:
wwas/) and story mapping (via story-mapping/)Out of Scope:
wwas/, job-stories/)scrum-master/sprint_capacity_calculator.py)prioritization-frameworks/)story-mapping/)Important Caveats:
create-prd/), not slicing.| Integration | Direction | What Flows | |-------------|-----------|------------| | wwas/ | Output format | Split slices are written as WWAS items | | job-stories/ | Output format | Alternative format for situation-driven slices | | create-prd/ | Receives from | Epic-level scope from PRD feeds splitting | | story-mapping/ | Complementary | Story map identifies the slices that need splitting | | prioritization-frameworks/ | Feeds into | Split slices get individually scored (RICE/ICE) for ordering | | cycle-time-analyzer/ | Diagnostic for | Long cycle times indicate stories that should have been split | | backlog-refinement/ | Used in | Splitting is the core activity in refinement sessions | | scrum-master/ | Improves | Predictability improves dramatically when stories are uniformly small |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-16 | fail→pass | 14,990 | 16,460 | +10% | 1 | 1 | 0% | 2,227 | 4,182 | +88% | 0 | 0 | — |
case-01 | fail→fail | 18,458 | 17,584 | -5% | 1 | 1 | 0% | 3,031 | 4,670 | +54% | 0 | 0 | — |
case-02 | fail→fail | 18,010 | 19,243 | +7% | 1 | 1 | 0% | 2,783 | 4,868 | +75% | 0 | 0 | — |
case-03 | fail→fail | 16,755 | 24,215 | +45% | 1 | 1 | 0% | 2,691 | 5,762 | +114% | 0 | 0 | — |
case-04 | fail→pass | 10,331 | 20,463 | +98% | 1 | 1 | 0% | 1,752 | 5,151 | +194% | 0 | 0 | — |
case-05 | pass→pass | 5,884 | 11,406 | +94% | 1 | 1 | 0% | 939 | 3,545 | +278% | 0 | 0 | — |
case-06 | pass→pass | 11,013 | 11,406 | +4% | 1 | 1 | 0% | 1,745 | 3,518 | +102% | 0 | 0 | — |
case-07 | pass→pass | 11,567 | 11,222 | -3% | 1 | 1 | 0% | 1,777 | 3,518 | +98% | 0 | 0 | — |
case-08 | fail→pass | 14,164 | 8,917 | -37% | 1 | 1 | 0% | 2,144 | 3,171 | +48% | 0 | 0 | — |
case-09 | fail→pass | 11,732 | 11,373 | -3% | 1 | 1 | 0% | 1,949 | 3,617 | +86% | 0 | 0 | — |
case-10 | fail→pass | 13,460 | 11,791 | -12% | 1 | 1 | 0% | 2,018 | 3,782 | +87% | 0 | 0 | — |
case-11 | pass→pass | 9,773 | 13,054 | +34% | 1 | 1 | 0% | 1,599 | 3,868 | +142% | 0 | 0 | — |
case-12 | pass→pass | 11,061 | 12,469 | +13% | 1 | 1 | 0% | 1,567 | 3,590 | +129% | 0 | 0 | — |
case-13 | pass→pass | 14,465 | 16,324 | +13% | 1 | 1 | 0% | 2,077 | 4,154 | +100% | 0 | 0 | — |
case-14 | pass→pass | 7,955 | 11,188 | +41% | 1 | 1 | 0% | 1,177 | 3,611 | +207% | 0 | 0 | — |
case-15 | pass→pass | 10,191 | 13,860 | +36% | 1 | 1 | 0% | 1,445 | 3,851 | +167% | 0 | 0 | — |
case-17 | pass→pass | 16,383 | 22,159 | +35% | 1 | 1 | 0% | 2,529 | 5,218 | +106% | 0 | 0 | — |
case-18 | fail→pass | 14,430 | 17,324 | +20% | 1 | 1 | 0% | 2,116 | 4,321 | +104% | 0 | 0 | — |
case-19 | pass→pass | 7,004 | 6,549 | -6% | 1 | 1 | 0% | 1,245 | 2,861 | +130% | 0 | 0 | — |
case-20 | pass→pass | 5,994 | 7,236 | +21% | 1 | 1 | 0% | 1,196 | 2,887 | +141% | 0 | 0 | — |
case-21 | pass→fail | 3,050 | 4,320 | +42% | 1 | 1 | 0% | 586 | 2,502 | +327% | 0 | 0 | — |
case-22 | pass→pass | 16,319 | 13,550 | -17% | 1 | 1 | 0% | 2,563 | 3,944 | +54% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +23 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.