All skills
deanpeters avatar

/user-story-splitting

@b68bf96

Break a large story or epic into smaller deliverable stories using proven split patterns. Use when backlog items are too big for estimation, sequencing, or independent release.

Use this Skill: https://skilld.dev/gh/deanpeters/product-manager-skills/user-story-splitting

This session only. Nothing lands on disk.

examplessample-industrial.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

User Story Splitting Examples — Industrial

Splitting oversized stories on Northfield Automation's NFA-500 platform.

The industrial twist: the usual tempting split — frontend/backend, or firmware/console — is especially wrong here, because a firmware-only slice ships nothing a customer can use and a console-only slice has nothing to talk to. Worse, firmware releases are expensive and infrequent, so a bad split can strand a half-feature in the field for a quarter.


Example 1: Splitting by Workflow Steps

Original Story:

As a field service technician, I want to manage firmware across my installed base
so that units stay current without site visits.

Too big: spans enrollment, visibility, updating, and rollback.

Split:

  1. See firmware version for each enrolled unit in the service console
  2. Enroll a unit in remote management during commissioning
  3. Push an update to one enrolled unit during a maintenance window
  4. Push to a group of units on the same schedule
  5. Roll back automatically when an update fails mid-apply

Why this works: each slice is independently useful. Slice 1 alone answers "which units are behind?" — a question techs ask weekly — and it ships without touching firmware at all.

The sequencing trap: slice 5 looks like error handling to defer. It cannot be. Slice 3 must not ship without it, because a failed update on an un-rolled-back controller stops a production line. In this domain the failure path is part of the walking skeleton, not a follow-up.


Example 2: Splitting by Business Rule

Original Story:

As a technician, I want the controller to refuse unsafe operations
so that I cannot accidentally stop a running line.

Split by rule:

  1. Refuse firmware push when the line is running
  2. Refuse firmware push when the unit reports an active fault
  3. Refuse configuration change when the unit is in a safety-interlocked state
  4. Allow override with explicit confirmation for units in maintenance mode

Why this works: each rule is independently testable and independently valuable. Rule 1 alone prevents the most likely accident.

Note on rule 4: an override is a separate story on purpose. Bundled into rules 1-3, "refuse unless overridden" gets built as one permissive path and the refusal becomes advisory. Split out, the refusal ships strict first and the override arrives as a deliberate decision with its own review.


Example 3: Splitting by Hardware Variant

A split that has no clean SaaS equivalent.

Original Story:

As a technician, I want fault isolation on the front panel
so that I know which module failed.

Split by variant:

  1. Fault isolation on the 4-slot base unit (the highest-volume configuration)
  2. Fault isolation on the 8-slot expanded unit
  3. Fault isolation for third-party modules in a mixed configuration

Why this works: slice 1 covers the majority of the installed base and can ship on the existing panel hardware. Slice 2 needs a display change. Slice 3 depends on data third parties may not expose — genuinely risky, and worth isolating so it can't sink the first two.

The trap this avoids: "support all configurations" as one story means the hardest variant sets the timeline for the easiest, and the highest-volume customers wait on an edge case.


❌ The Split to Avoid: By Component

Tempting split:

  1. Firmware: detect and report slot-level faults
  2. Console: display fault data
  3. Panel: add slot indicators

Why this is wrong:

  • No slice delivers anything alone. Firmware that reports to nothing, a console with no data, indicators with nothing driving them
  • Nothing is demonstrable until all three land, so you learn nothing until you've spent everything
  • It's especially costly here. Firmware release windows are infrequent; shipping slice 1 alone means a firmware revision in the field that does nothing observable, and you'll need another revision to make it useful
  • It splits by who does the work, not by what a user gets — the most common splitting mistake in any domain, and the most expensive one in this one

The fix: Example 3's variant split. Every slice crosses firmware, console, and panel together for a narrower set of hardware — thin in scope, complete in function.

Source: SKILL.md on GitHub

No alerts16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill provides a framework and templates for product managers to break down large user stories and epics. It operates purely as a set of instructions for text analysis and does not contain any executable code, network operations, or sensitive data access patterns.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer6mo

    3 files scanned · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at b68bf96. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last month.

Activeupdated 2 months ago
argument-hint
[story or epic to split]
type
component
theme
pm-artifacts
Other metadata
intent
Break down large user stories, epics, or features into smaller, independently deliverable stories using systematic splitting patterns. Use this to make work more manageable, reduce risk, enable faster feedback cycles, and maintain flow in agile development. This skill applies to user stories, epics, and any work that's too large to complete in a single sprint.
best_for
[
  "Breaking a story that's too big to estimate or finish in a sprint",
  "Applying proven split patterns instead of splitting by component",
  "Keeping each slice independently valuable and releasable"
]
scenarios
[
  "This story is too big for a sprint and splitting by frontend/backend isn't working",
  "Our backlog items keep carrying over — I need real split patterns"
]
estimated_time
15-25 min

README badge

README badge for deanpeters/product-manager-skills/user-story-splitting