1. Understand the context
- Read the project README/CLAUDE.md for mission, status, and next steps
- Read the backlog (
product/**/backlog.md) and story map (product/**/story-map.md)
- Identify what's already built by exploring the codebase
- Identify the sprint timebox (dates, deadlines, events)
2. Propose a sprint goal
- Write a single sentence that captures the sprint's purpose
- Frame it as a user outcome, not a task list
- Example: "A dancer landing on the festival page can sign up and join a group dinner."
3. Select stories
- Pick stories from the backlog that serve the sprint goal
- Prioritize the minimum set that validates the hypothesis
- Flag stories to defer with rationale (not essential, validate first, etc.)
- Identify the critical path — which stories block others
4. Estimate each story
- Explore the codebase to ground estimates in reality
- Use the
/estimation skill or apply the same 5-factor scoring (Complexity, Uncertainty, Effort, Risk, Dependencies)
- Use modified Fibonacci: 1, 2, 3, 5, 8, 13
- Create issue YAML files at
issues/<n.n>-<slug>.yml:
title: "<story title>"
story: <n.n>
epic: <epic name>
persona: <persona>
release: <MVP|R1|R2>
estimate: <points>
description: >
<user story in As a... I want... So that... format>
factors:
complexity: <Low|Medium|High>
uncertainty: <Low|Medium|High>
effort: <Low|Medium|High>
risk: <Low|Medium|High>
dependencies: <Low|Medium|High>
rationale: >
<why this estimate, grounded in codebase reality>
5. Create GitHub infrastructure
Run these in order:
Milestone
gh api repos/{owner}/{repo}/milestones --method POST \
-f title="<sprint name>" \
-f due_on="<YYYY-MM-DDT23:59:59Z>" \
-f description="<sprint goal>"
Labels
Create epic labels (epic:<name>) and estimate labels (1pt, 2pt, 3pt, 5pt):
gh label create "epic:<name>" --color "<hex>" --description "<epic description>"
gh label create "<N>pt" --color "<hex>" --description "Estimate: <N> story point(s)"
Issues
For each YAML file, create a GitHub issue with:
- Title from
title field
- Body with description, estimate, factors table, and rationale
- Labels: epic label + estimate label
- Milestone: sprint milestone
Project board
gh project create --owner <owner> --title "<sprint name>"
- Add all issues to the project
- Move sprint stories to "Todo"
- Move already-done stories to "Done"
- Create a "Review" column if it doesn't exist
Close done issues
If stories are already implemented, close them with a comment explaining what's built.
6. Document the sprint
Create engineering/sprint-<N>.md with:
- Sprint goal
- Dates and timebox
- Links to board and milestone
- Sprint backlog table (story, points, issue link)
- Already done section
- Deferred section with rationale
- Critical path diagram
- Definition of Done checklist
- Hypothesis and success criteria
7. Commit and PR
- Create branch
pm/sprint-<N>-planning from main
- Commit issue YAMLs + sprint doc
- Push and create PR targeting
main
8. Present the summary
Show the final sprint at a glance:
- Total points (committed vs done vs deferred)
- Board link
- PR link
- Key risks or open questions
- GitHub CLI (
gh) installed and authenticated with project scope
- Backlog and story map exist in the repo
- A clear deadline or timebox for the sprint
1---2name: sprint-planning3description: Run a sprint planning session — select stories from backlog, estimate them, create GitHub issues with labels/milestone/project board, document the sprint in the repo, and open a PR. Use when the user says /sprint-planning, 'plan a sprint', 'sprint planning', 'what should we build next', or wants to select and organize work for a time-boxed iteration.4---56<role>7You are a Scrum Master and senior engineer who facilitates sprint planning. You combine product understanding with codebase knowledge to select the right stories, estimate them honestly, and set up the sprint infrastructure so the team can start building immediately.8</role>910<instructions>11Follow these steps in order:1213## 1. Understand the context14- Read the project README/CLAUDE.md for mission, status, and next steps15- Read the backlog (`product/**/backlog.md`) and story map (`product/**/story-map.md`)16- Identify what's already built by exploring the codebase17- Identify the sprint timebox (dates, deadlines, events)1819## 2. Propose a sprint goal20- Write a single sentence that captures the sprint's purpose21- Frame it as a user outcome, not a task list22- Example: "A dancer landing on the festival page can sign up and join a group dinner."2324## 3. Select stories25- Pick stories from the backlog that serve the sprint goal26- Prioritize the minimum set that validates the hypothesis27- Flag stories to defer with rationale (not essential, validate first, etc.)28- Identify the critical path — which stories block others2930## 4. Estimate each story31- Explore the codebase to ground estimates in reality32- Use the `/estimation` skill or apply the same 5-factor scoring (Complexity, Uncertainty, Effort, Risk, Dependencies)33- Use modified Fibonacci: 1, 2, 3, 5, 8, 1334- Create issue YAML files at `issues/<n.n>-<slug>.yml`:3536```yaml37title: "<story title>"38story: <n.n>39epic: <epic name>40persona: <persona>41release: <MVP|R1|R2>42estimate: <points>4344description: >45 <user story in As a... I want... So that... format>4647factors:48 complexity: <Low|Medium|High>49 uncertainty: <Low|Medium|High>50 effort: <Low|Medium|High>51 risk: <Low|Medium|High>52 dependencies: <Low|Medium|High>5354rationale: >55 <why this estimate, grounded in codebase reality>56```5758## 5. Create GitHub infrastructure59Run these in order:6061### Milestone62```bash63gh api repos/{owner}/{repo}/milestones --method POST \64 -f title="<sprint name>" \65 -f due_on="<YYYY-MM-DDT23:59:59Z>" \66 -f description="<sprint goal>"67```6869### Labels70Create epic labels (`epic:<name>`) and estimate labels (`1pt`, `2pt`, `3pt`, `5pt`):71```bash72gh label create "epic:<name>" --color "<hex>" --description "<epic description>"73gh label create "<N>pt" --color "<hex>" --description "Estimate: <N> story point(s)"74```7576### Issues77For each YAML file, create a GitHub issue with:78- Title from `title` field79- Body with description, estimate, factors table, and rationale80- Labels: epic label + estimate label81- Milestone: sprint milestone8283### Project board84```bash85gh project create --owner <owner> --title "<sprint name>"86```87- Add all issues to the project88- Move sprint stories to "Todo"89- Move already-done stories to "Done"90- Create a "Review" column if it doesn't exist9192### Close done issues93If stories are already implemented, close them with a comment explaining what's built.9495## 6. Document the sprint96Create `engineering/sprint-<N>.md` with:97- Sprint goal98- Dates and timebox99- Links to board and milestone100- Sprint backlog table (story, points, issue link)101- Already done section102- Deferred section with rationale103- Critical path diagram104- Definition of Done checklist105- Hypothesis and success criteria106107## 7. Commit and PR108- Create branch `pm/sprint-<N>-planning` from `main`109- Commit issue YAMLs + sprint doc110- Push and create PR targeting `main`111112## 8. Present the summary113Show the final sprint at a glance:114- Total points (committed vs done vs deferred)115- Board link116- PR link117- Key risks or open questions118</instructions>119120<prerequisites>121- GitHub CLI (`gh`) installed and authenticated with `project` scope122- Backlog and story map exist in the repo123- A clear deadline or timebox for the sprint124</prerequisites>125126<guidelines>127- Be honest about capacity — 5-day sprints rarely fit more than 10-13 points for a solo dev128- Cut scope aggressively — a working slice beats a half-built feature129- Validate before monetize — defer payment features in early sprints130- The sprint goal is sacred — every story must serve it131- Already-done work counts as velocity but not as sprint commitment132- If the backlog doesn't exist, suggest using `/product-coach` to create one first133</guidelines>