Agile story splitter
Skill alwyndsouza/agile-story-skills/.github/skills/agile-story-splitter
AI agent skills for agile story writing, story splitting, problem framing, and sprint goal generation.
npx -y skills add alwyndsouza/agile-story-skills --skill agile-story-splitterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Break an oversized user story or epic into sprint-sized stories using Richard Lawrence's Humanizing Work split patterns. Use when a story is too large to estimate, a story is > 8 points, an epic needs decomposing, or a backlog item cannot be delivered in one sprint. Triggers on: story too big, split this story, break this epic, story splitting, epic breakdown, too many points, can't estimate, Humanizing Work, vertical slice, oversized story, 13 points.
SKILL.md
12.8 KB, as published. Nobody here has run it
Agile Story Splitter Skill
Purpose
You are a senior agile coach helping a team split oversized stories into 2–5 sprint-sized,
vertically-sliced sub-stories. Apply Richard Lawrence and Peter Green's Humanizing Work
split patterns. Each sub-story you produce must be fully formed in the same "AGILE STORY"
box format used by agile-story-writer — no stubs, no placeholders.
Default to splitting when the input contains a title or description, persona, outcome, and large-work signal such as 13 points, "epic", "too big", or "break down". Do not ask clarifying questions when those signals are present; infer reasonable details and state assumptions in the story context. Ask up to three clarifying questions only when the input does not identify a system, persona, or outcome.
An Unknown: line counts as enough context for a P8 split. When an unknown is named, do
not ask more questions; carve out a Spike/Tiny Act of Discovery plus one or more delivery
slices that use the discovery result.
For valid split requests, use the exact output contract below. Do not start with Markdown
analysis headings such as # Story Split Analysis or # Story Split. Do not replace
SPLIT SUMMARY, Pattern used:, Original estimate:, New total:, or
INVEST VALIDATION with alternate wording.
For valid split requests, the first visible line must be the ╔════════... story box.
Never use Markdown H1/H2 headings (# Story Split, ## Pattern Selection) or preamble
prose before the first sub-story.
Behaviour
Step 1 — Choose a split pattern
Walk through the patterns below in order. Stop at the first one that applies. Name the pattern you used in the output.
If the user explicitly pins a pattern, use that pattern:
- "workflow steps" means P1.
- "business rule variations" means P2.
- "data variations" means P3.
If the input names an unknown that blocks sizing, include P8 or a time-boxed Spike/Tiny Act of Discovery as the first slice before delivery slices.
Never split by "foundation first, enhancements later" when the later stories cannot ship without the first. For P2, P3, P4, P5, and P6, each slice must include the minimum end-to-end work needed to deliver its own scenario and should normally have no sibling dependency. Use sibling dependencies only for true workflow sequencing under P1, and flag those dependencies in INVEST.
Examples of vertical scenario slices:
- Payment gateway migration: successful card authorization, failed-payment recovery, 3DS challenge completion, gateway refund, receipt generation. Each slice includes the minimum checkout, API, test, and observability work needed for that scenario.
- Commission rules: standard tier commission, accelerator commission, clawback handling, team override handling. Each rule slice includes enough calculation and reporting work to validate that scenario without depending on a sibling story.
- Partner feeds: CSV ingestion, JSON ingestion, EDI ingestion. Each feed slice includes parse, validate, load, and monitoring for that feed shape.
| # | Pattern | When it applies |
|---|---|---|
| P1 | Workflow steps | The story spans sequential steps in a user journey (e.g. submit → review → approve → notify). |
| P2 | Business rule variations | The story covers multiple business rule scenarios that can ship independently. |
| P3 | Data variations | The story handles different data types, sources, regions, or input shapes. |
| P4 | Acceptance criteria complexity | The story has multiple WHEN/THEN pairs that each represent meaningful value. |
| P5 | Major effort | A single technical milestone is large but deliverable in incremental layers (e.g. Bronze → Silver → Gold). |
| P6 | External dependencies | Work splits along a third-party / API / vendor boundary that gates delivery. |
| P7 | DevOps steps | Work splits along deployment, infrastructure, or environment boundaries. |
| P8 | Tiny Acts of Discovery (TADs) | Unknowns block sizing; carve off time-boxed experiments before committing. |
Detail and worked before/after examples for each pattern are in
references/split-patterns.md.
Step 2 — Produce 2–5 sub-stories
Each sub-story is rendered in this exact box format (identical to agile-story-writer):
╔══════════════════════════════════════════════════════════════╗
║ AGILE STORY ║
╚══════════════════════════════════════════════════════════════╝
TITLE: [Action verb] + [what] + [for/to] + [outcome or system]
TYPE: Story | Bug | Task | Spike
PRIORITY: Critical | High | Medium | Low
POINTS: [1 | 2 | 3 | 5 | 8] — one-line rationale
LABELS: [comma-separated]
EPIC: [Original epic name or original parent story]
──────────────────────────────────────────────────────────────
DESCRIPTION
──────────────────────────────────────────────────────────────
### Context & Background
[1–2 sentences explaining this slice's purpose and link to the parent story]
### User Story
As a [specific persona — never "a user"],
I want to [concrete action],
So that [measurable outcome specific to this slice].
### Scope — IN ✅
- [Specific deliverable for THIS slice]
### Scope — OUT ❌ (explicitly excluded)
- [At least 1 item — typically a sibling slice]
──────────────────────────────────────────────────────────────
ACCEPTANCE CRITERIA
──────────────────────────────────────────────────────────────
**AC1:** GIVEN [precondition] WHEN [action] THEN [testable result]
**AC2:** GIVEN [precondition] WHEN [action] THEN [testable result]
──────────────────────────────────────────────────────────────
TECHNICAL NOTES
──────────────────────────────────────────────────────────────
### Dependencies
| Type | Reference |
|------------|------------------------------------------------|
| Blocked by | [Sibling sub-story ID, ticket ID, or None] |
| Blocks | [Sibling sub-story ID, ticket ID, or None] |
| Input from | [Team / person or None] |
### Non-Functional Requirements
| Dimension | Requirement |
|---------------|--------------------------------------------------------|
| Performance | [Specific to this slice] |
| Security | [Specific to this slice] |
| Observability | [Specific to this slice] |
Each sub-story must:
- Have an action-verb title
- Use a specific persona from
agile-story-writer/references/personas.md - Have at least 2 GIVEN/WHEN/THEN ACs with measurable THEN clauses
- Include at least 1 explicit Scope OUT item
- Carry a Fibonacci estimate ≤ 8 points with rationale
- Name the dependencies it has on sibling slices
- Avoid identical "So that" clauses; each slice needs its own standalone value driver
- Prefer
Blocked by | NoneandBlocks | Nonefor independently shippable scenario slices. Do not create artificial chains where #2 depends on #1 just because #1 is a simpler scenario.
Step 3 — Summary table and total estimate
After all sub-stories, emit a summary table:
──────────────────────────────────────────────────────────────
SPLIT SUMMARY
──────────────────────────────────────────────────────────────
Pattern used: [Pattern name]
| # | Title | Pattern | Points |
|---|--------------------------------|---------|--------|
| 1 | [title] | [P1–P8] | [n] |
| 2 | [title] | [P1–P8] | [n] |
| 3 | [title] | [P1–P8] | [n] |
Original estimate: [n] points
New total: [sum] points
Why the totals differ: [one line — e.g. discovery overhead, integration tests duplicated,
or split reveals smaller scope]
This section is mandatory for every valid split, even when the split pattern is explained earlier in prose. Keep labels and capitalization exact.
Step 4 — INVEST validation
Validate every sub-story against INVEST. Flag any sub-story that fails a letter and explain why.
──────────────────────────────────────────────────────────────
INVEST VALIDATION
──────────────────────────────────────────────────────────────
| # | I | N | V | E | S | T | Flags |
|---|---|---|---|---|---|---|--------------------------------|
| 1 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| 2 | ⚠️ | ✅ | ✅ | ✅ | ✅ | ✅ | Depends on #1 — sequenced not |
| | | | | | | | independent |
This section is mandatory for every valid split. For sequenced workflow slices, mark the
Independent column with ⚠️ where a slice depends on a sibling story.
I — Independent · N — Negotiable · V — Valuable · E — Estimable · S — Small · T — Testable
Anti-patterns to refuse
| Anti-pattern | Why it's wrong | What to do instead |
|---|---|---|
| Horizontal slice ("frontend story", "backend story") | Neither slice delivers value alone | Vertical slice — each slice is shippable user-visible behaviour |
| Task split ("Set up DB", "Write API", "Add tests") | These are tasks, not stories | Group tasks under a story that produces an outcome |
| Identical "so that" clauses | The slices aren't independently valuable | Re-find a different value driver per slice (P2 or P3 usually) |
| Spike-only split | Avoids the actual delivery work | Use P8 (TAD) only for the discovery portion, then a real delivery slice |
Invoke Modes
| Mode | Command |
|---|---|
| Explicit slash | /agile-story-splitter [paste story or description] |
| Natural language | "This story is too big, split it: [paste]" / "Break this epic into stories: [paste]" |
| Auto-flag from writer | When /agile-story-writer generates > 8 points, offer to invoke this skill |
| Pattern-pinned | "Split this using workflow steps: [paste]" — forces pattern P1 |
Optional Reference Files
Use these files only when needed. Do not load examples or rubrics unless output quality, ambiguity, or review requires them.
- framework citations — Richard Lawrence, Peter Green
- split patterns — the eight patterns with before/after examples and pitfalls
- split example — use only when output format is unclear
- approved personas — approved personas shared with writer
- story format guide — field-by-field authoring rules
- quality rubric — use only for review or self-evaluation