Sprint Planning Skill

Structure and facilitate sprint planning sessions.

Sprint Planning Skill — The Skill Playground: pick the Executive Update skill, fill in a few notes, hit run, and watch a structured executive… (from the mohitagw15856/pm-claude-skills README)

From the mohitagw15856/pm-claude-skills README — shows the whole collection, not only this skill. · view on GitHub

How to use it

Claude Code
  1. Run the line below. It pulls the whole folder into ~/.claude/skills/sprint-planning, including the files SKILL.md points to.
  2. Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit mohitagw15856/pm-claude-skills/skills/sprint-planning#main ~/.claude/skills/sprint-planning

For one project only, change the path to .claude/skills/sprint-planning. This skill also uses file.json, SKILLSPEC.md — copying SKILL.md alone won't be enough. See the folder on GitHub.

Claude (web or desktop app)
  1. On this page open ⋯ → Download .md.
  2. Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
  3. Pick the file and Save. Claude shows the name and description and runs a security scan.
  4. Check the skill is switched on.
  5. Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
  1. ChatGPT: make a Project and paste it into Instructions.
  2. Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Source of Sprint Planning Skill

Show the full text175 lines
namedescription
sprint-planningStructure and facilitate sprint planning sessions. Use when asked to plan a sprint, organise backlog items, assign story points, create sprint goals, or prepare sprint planning agendas. Produces a sprint goal, velocity-calibrated backlog, capacity plan, risk flags, and a structured sprint planning meeting agenda.

Sprint Planning Skill

Transform raw backlog items into a structured, achievable sprint with clear goals, velocity-calibrated scope, and team-ready output.

Reads from / Writes to the Brain

If a professional-brain (brain/) exists, ground in it instead of re-asking for what you already know:

  • Read first: priority decisions/ (what the team agreed matters), feature entities/, and open hypotheses/ the sprint might test. Run python3 ../professional-brain/scripts/brain_query.py ./brain "<sprint goal>" and carry each fact's provenance tag through.
  • 📥 Propose to the Brain: after producing, propose logging the sprint commitment (goal + committed scope) as a decisions/ record, provenance-tagged. Show it, get a yes, then write with ../professional-brain/scripts/brain_write.py … --commit (append-only, dry-run by default).

Proposes Actions

Once the sprint is agreed, hand it to action-runner: it previews (dry-run, risk-rated), runs only what you approve via the connected action MCP, and records what was done back to the brain. Typical: create a ticket per committed backlog item and set the sprint milestone (🟡). This skill proposes; action-runner gates and runs — never silently.

What This Skill Produces

  • Sprint Goal — single, outcome-focused sentence the whole team can rally around
  • Sprint Backlog — prioritised list of user stories with story point estimates and acceptance criteria
  • Capacity Plan — team availability breakdown accounting for holidays, meetings, and focus time
  • Sprint Planning Agenda — structured 2-hour meeting agenda with timings
  • Risk Flags — blockers or dependencies that could derail the sprint

Required Inputs

Ask for (if not already provided):

  • Sprint duration (1 or 2 weeks)
  • Team size and velocity (average story points per sprint)
  • Top 3–5 backlog items or epics to pull from
  • Any known absences, holidays, or team events
  • Previous sprint's incomplete items (carry-overs)

Sprint Goal Formula

Use this structure:

"This sprint we will [deliver X outcome] so that [user/business benefit], measured by [success indicator]."

Never write sprint goals as task lists. Always outcome-first.

Story Point Calibration

Complexity Points Description
Trivial 1 Clearly understood, no unknowns
Small 2 Straightforward, minor effort
Medium 3 Some complexity, clear path
Large 5 Complex, needs design or research
Very Large 8 High uncertainty, may need splitting
Epic 13+ Too large — must be split before sprint

Flag any item estimated at 8+ and recommend splitting.

Capacity Formula

Available capacity = (Team size × Sprint days × Focus hours/day) × Availability factor
Focus hours/day: 6 (accounting for meetings, Slack, admin)
Availability factor: 0.7–0.85 depending on holidays/events
Story points to commit = Historical velocity × Availability factor

Programmatic Helper

This skill ships with a stdlib-only Python script that computes capacity instead of estimating it by hand. Use it whenever the team's numbers are known — it applies the availability and 80% commit-ratio rules consistently.

# Quick estimate from flags
python3 scripts/capacity_calculator.py --team 5 --days 10 --velocity 30 --availability 0.8 --carryover 5

# Detailed estimate from per-member availability (JSON via stdin or --input file.json)
echo '{"sprint_days":10,"historical_velocity":40,"carryover_points":8,
       "members":[{"name":"Ada","available_days":10},{"name":"Linus","available_days":7}]}' \
  | python3 scripts/capacity_calculator.py --input -

The script returns available focus hours, a velocity figure adjusted for real availability, the recommended commitment (capped at 80% of velocity), and the remaining capacity for new work after carry-overs. Run it first, then build the sprint backlog to fit the recommended number. Add --json to pipe the result into other tooling.

Output Format

Sprint [N] — [Start Date] to [End Date]

Sprint Goal:

[Goal statement]

Team Capacity: [X] story points available (based on [Y] team members, [Z]% availability)

Sprint Backlog:

Priority Story Points Owner Acceptance Criteria
1 [Story title] [N] [Team member] [When X then Y]

Carry-Overs from Previous Sprint:

  • [Item] — Reason for carry-over: [brief explanation]

Risks & Dependencies:

  • [Risk description] → Mitigation: [action]

Sprint Planning Agenda:

  • 00:00–00:10 — Review sprint goal and team capacity
  • 00:10–00:40 — Walk through backlog items, confirm estimates
  • 00:40–01:20 — Assign stories, identify dependencies
  • 01:20–01:50 — Review acceptance criteria per story
  • 01:50–02:00 — Confirm sprint commitment and close

Guidelines

  • Always challenge stories missing acceptance criteria — flag them explicitly
  • Recommend the team commits to 80% of available capacity, not 100%
  • If no velocity data is provided, assume 20–30 points for a 5-person team as a starting point
  • Highlight any story with unclear ownership as a blocker

Deeper Materials

This skill ships with support files — use them when they are available:

  • references/capacity-honesty.md — Capacity Honesty — the numbers teams lie to themselves about. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.
  • templates/planning-worksheet.md — a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.

Scoring Rubric (0–40)

Score any output of this skill before handing it over; 32+ is ship-quality.

Dimension 0 5 10
Sprint goal quality Goal is a task list ("do stories 1–8") or missing entirely Outcome-flavoured but vague — not scoreable pass/fail at sprint end Single outcome sentence with user/business benefit and a success indicator, unambiguously scoreable at sprint end
Capacity honesty Commitment assumes 100% of theoretical capacity; carry-overs ignored Availability adjusted, but the 80% commit ratio is skipped or carry-over points not subtracted before pulling new work Real availability (holidays, meetings, focus hours), carry-overs deducted first, and commitment capped at 80% of adjusted velocity
Story readiness Stories lack acceptance criteria, estimates, or owners Most stories estimated and owned, but 8+ pointers are unsplit or acceptance criteria are untestable Every story has one owner, calibrated points, and testable acceptance criteria; every 8+ pointer is flagged for splitting
Risk & dependency surfacing No risks or dependencies listed Generic risks ("might slip") with no mitigations or owners Specific blockers and cross-team dependencies, each with a concrete mitigation and a named owner

Quality Checks

  • Sprint goal is outcome-focused (not "implement X" — something like "users can do Y")
  • Team capacity is calculated using actual availability, not theoretical 100%
  • Every story has an acceptance criterion (flag any that don't)
  • Stories estimated at 8+ points are flagged for splitting
  • Carry-overs from last sprint are accounted for in capacity

Anti-Patterns

  • Do not write sprint goals as task lists — goals must be outcome-focused and scoreable pass/fail at sprint end
  • Do not commit to 100% of available capacity — always recommend 80% to preserve slack for unplanned work
  • Do not carry stories with no acceptance criteria into the sprint — flag them as blockers before committing
  • Do not allow stories estimated at 8+ points into the sprint without splitting them first
  • Do not ignore carry-over items when calculating capacity — they consume capacity and must be accounted for before new work is pulled in

Execution

For tool-using or computer-use agents that can reach the team's tracker (Jira, Linear, GitHub Projects). Runtimes without tool access ignore this section and deliver the document. See SKILLSPEC.md §5 for the rules this block follows.

Preconditions
  • The sprint plan above has been produced and explicitly approved by a human — never build a sprint from an unreviewed draft.
  • Tracker access is already authenticated in the agent's environment; the target board/project is named by the user.
  • A dry-run listing of intended changes has been shown and confirmed.
Allowed actions
  • Create the sprint/iteration container with the approved name and dates.
  • Move the approved, already-existing backlog items into the sprint — only the items listed in the approved plan.
  • Set story-point estimates on those items to the approved values.
  • Post the sprint goal as the sprint description or a pinned comment.
  • Nothing else: no creating new issues, no deleting or closing anything, no editing item descriptions, no touching other sprints.
Verification
  • Re-read the sprint from the tracker: item count and total points equal the approved plan; every moved item is in the sprint; sprint dates match.
  • Post the verification summary (items, points, dates) back to the user.
Rollback
  • Undo = move the items back to the backlog and delete the empty sprint container.
  • Stop and ask a human if: any item in the plan no longer exists or changed since approval, the tracker rejects an action, or the board contains an active sprint with overlapping dates.
1---
2name: sprint-planning
3description: "Structure and facilitate sprint planning sessions. Use when asked to plan a sprint, organise backlog items, assign story points, create sprint goals, or prepare sprint planning agendas. Produces a sprint goal, velocity-calibrated backlog, capacity plan, risk flags, and a structured sprint planning meeting agenda."
4---
5 
6# Sprint Planning Skill
7 
8Transform raw backlog items into a structured, achievable sprint with clear goals, velocity-calibrated scope, and team-ready output.
9 
10## Reads from / Writes to the Brain
11 
12If a [`professional-brain`](../professional-brain/SKILL.md) (`brain/`) exists, ground in it instead of re-asking for what you already know:
13 
14- **Read first:** priority `decisions/` (what the team agreed matters), feature `entities/`, and open `hypotheses/` the sprint might test. Run `python3 ../professional-brain/scripts/brain_query.py ./brain "<sprint goal>"` and carry each fact's provenance tag through.
15- **📥 Propose to the Brain:** after producing, propose logging the sprint commitment (goal + committed scope) as a `decisions/` record, provenance-tagged. Show it, get a yes, then write with `../professional-brain/scripts/brain_write.py … --commit` (append-only, dry-run by default).
16 
17## Proposes Actions
18 
19Once the sprint is agreed, hand it to [`action-runner`](../action-runner/SKILL.md): it previews (dry-run, risk-rated), runs only what you approve via the connected action MCP, and records what was done back to the brain. Typical: **create a ticket per committed backlog item** and **set the sprint milestone** (🟡). This skill proposes; action-runner gates and runs — never silently.
20 
21## What This Skill Produces
22 
23- **Sprint Goal** — single, outcome-focused sentence the whole team can rally around
24- **Sprint Backlog** — prioritised list of user stories with story point estimates and acceptance criteria
25- **Capacity Plan** — team availability breakdown accounting for holidays, meetings, and focus time
26- **Sprint Planning Agenda** — structured 2-hour meeting agenda with timings
27- **Risk Flags** — blockers or dependencies that could derail the sprint
28 
29## Required Inputs
30 
31Ask for (if not already provided):
32- Sprint duration (1 or 2 weeks)
33- Team size and velocity (average story points per sprint)
34- Top 3–5 backlog items or epics to pull from
35- Any known absences, holidays, or team events
36- Previous sprint's incomplete items (carry-overs)
37 
38## Sprint Goal Formula
39 
40Use this structure:
41> "This sprint we will [deliver X outcome] so that [user/business benefit], measured by [success indicator]."
42 
43Never write sprint goals as task lists. Always outcome-first.
44 
45## Story Point Calibration
46 
47| Complexity | Points | Description |
48|---|---|---|
49| Trivial | 1 | Clearly understood, no unknowns |
50| Small | 2 | Straightforward, minor effort |
51| Medium | 3 | Some complexity, clear path |
52| Large | 5 | Complex, needs design or research |
53| Very Large | 8 | High uncertainty, may need splitting |
54| Epic | 13+ | Too large — must be split before sprint |
55 
56Flag any item estimated at 8+ and recommend splitting.
57 
58## Capacity Formula
59 
60```
61Available capacity = (Team size × Sprint days × Focus hours/day) × Availability factor
62Focus hours/day: 6 (accounting for meetings, Slack, admin)
63Availability factor: 0.7–0.85 depending on holidays/events
64Story points to commit = Historical velocity × Availability factor
65```
66 
67## Programmatic Helper
68 
69This skill ships with a stdlib-only Python script that computes capacity instead of estimating it by hand. Use it whenever the team's numbers are known — it applies the availability and 80% commit-ratio rules consistently.
70 
71```bash
72# Quick estimate from flags
73python3 scripts/capacity_calculator.py --team 5 --days 10 --velocity 30 --availability 0.8 --carryover 5
74 
75# Detailed estimate from per-member availability (JSON via stdin or --input file.json)
76echo '{"sprint_days":10,"historical_velocity":40,"carryover_points":8,
77 "members":[{"name":"Ada","available_days":10},{"name":"Linus","available_days":7}]}' \
78 | python3 scripts/capacity_calculator.py --input -
79```
80 
81The script returns available focus hours, a velocity figure adjusted for real availability, the **recommended commitment** (capped at 80% of velocity), and the remaining **capacity for new work** after carry-overs. Run it first, then build the sprint backlog to fit the recommended number. Add `--json` to pipe the result into other tooling.
82 
83## Output Format
84 
85### Sprint [N] — [Start Date] to [End Date]
86 
87**Sprint Goal:**
88> [Goal statement]
89 
90**Team Capacity:** [X] story points available (based on [Y] team members, [Z]% availability)
91 
92**Sprint Backlog:**
93 
94| Priority | Story | Points | Owner | Acceptance Criteria |
95|---|---|---|---|---|
96| 1 | [Story title] | [N] | [Team member] | [When X then Y] |
97 
98**Carry-Overs from Previous Sprint:**
99- [Item] — Reason for carry-over: [brief explanation]
100 
101**Risks & Dependencies:**
102- [Risk description] → Mitigation: [action]
103 
104**Sprint Planning Agenda:**
105- 00:00–00:10 — Review sprint goal and team capacity
106- 00:10–00:40 — Walk through backlog items, confirm estimates
107- 00:40–01:20 — Assign stories, identify dependencies
108- 01:20–01:50 — Review acceptance criteria per story
109- 01:50–02:00 — Confirm sprint commitment and close
110 
111## Guidelines
112 
113- Always challenge stories missing acceptance criteria — flag them explicitly
114- Recommend the team commits to 80% of available capacity, not 100%
115- If no velocity data is provided, assume 20–30 points for a 5-person team as a starting point
116- Highlight any story with unclear ownership as a blocker
117 
118## Deeper Materials
119 
120This skill ships with support files — use them when they are available:
121 
122- **`references/capacity-honesty.md`** — Capacity Honesty — the numbers teams lie to themselves about. Apply it while producing the output; it carries the calibration and judgment calls the method summary above compresses.
123- **`templates/planning-worksheet.md`** — a fill-in version of the deliverable with the quality gates inline. Offer it when the user wants to work the document themselves rather than have it generated.
124 
125## Scoring Rubric (0–40)
126 
127Score any output of this skill before handing it over; 32+ is ship-quality.
128 
129| Dimension | 0 | 5 | 10 |
130|---|---|---|---|
131| Sprint goal quality | Goal is a task list ("do stories 1–8") or missing entirely | Outcome-flavoured but vague — not scoreable pass/fail at sprint end | Single outcome sentence with user/business benefit and a success indicator, unambiguously scoreable at sprint end |
132| Capacity honesty | Commitment assumes 100% of theoretical capacity; carry-overs ignored | Availability adjusted, but the 80% commit ratio is skipped or carry-over points not subtracted before pulling new work | Real availability (holidays, meetings, focus hours), carry-overs deducted first, and commitment capped at 80% of adjusted velocity |
133| Story readiness | Stories lack acceptance criteria, estimates, or owners | Most stories estimated and owned, but 8+ pointers are unsplit or acceptance criteria are untestable | Every story has one owner, calibrated points, and testable acceptance criteria; every 8+ pointer is flagged for splitting |
134| Risk & dependency surfacing | No risks or dependencies listed | Generic risks ("might slip") with no mitigations or owners | Specific blockers and cross-team dependencies, each with a concrete mitigation and a named owner |
135 
136## Quality Checks
137 
138- [ ] Sprint goal is outcome-focused (not "implement X" — something like "users can do Y")
139- [ ] Team capacity is calculated using actual availability, not theoretical 100%
140- [ ] Every story has an acceptance criterion (flag any that don't)
141- [ ] Stories estimated at 8+ points are flagged for splitting
142- [ ] Carry-overs from last sprint are accounted for in capacity
143 
144## Anti-Patterns
145 
146- [ ] Do not write sprint goals as task lists — goals must be outcome-focused and scoreable pass/fail at sprint end
147- [ ] Do not commit to 100% of available capacity — always recommend 80% to preserve slack for unplanned work
148- [ ] Do not carry stories with no acceptance criteria into the sprint — flag them as blockers before committing
149- [ ] Do not allow stories estimated at 8+ points into the sprint without splitting them first
150- [ ] Do not ignore carry-over items when calculating capacity — they consume capacity and must be accounted for before new work is pulled in
151 
152## Execution
153 
154For tool-using or computer-use agents that can reach the team's tracker (Jira, Linear, GitHub Projects). Runtimes without tool access ignore this section and deliver the document. See [SKILLSPEC.md §5](../../SKILLSPEC.md) for the rules this block follows.
155 
156### Preconditions
157- The sprint plan above has been produced and **explicitly approved by a human** — never build a sprint from an unreviewed draft.
158- Tracker access is already authenticated in the agent's environment; the target board/project is named by the user.
159- A dry-run listing of intended changes has been shown and confirmed.
160 
161### Allowed actions
162- Create the sprint/iteration container with the approved name and dates.
163- Move the approved, already-existing backlog items into the sprint — only the items listed in the approved plan.
164- Set story-point estimates on those items to the approved values.
165- Post the sprint goal as the sprint description or a pinned comment.
166- Nothing else: no creating new issues, no deleting or closing anything, no editing item descriptions, no touching other sprints.
167 
168### Verification
169- Re-read the sprint from the tracker: item count and total points equal the approved plan; every moved item is in the sprint; sprint dates match.
170- Post the verification summary (items, points, dates) back to the user.
171 
172### Rollback
173- Undo = move the items back to the backlog and delete the empty sprint container.
174- Stop and ask a human if: any item in the plan no longer exists or changed since approval, the tracker rejects an action, or the board contains an active sprint with overlapping dates.
175 

Discussion

Alternatives

Also in Roadmap & prioritiesSee all 277 in Product →