Use when preparing for or running sprint planning. Use after backlog refined. Produces capacity analysis, story recommendations, dependency mapping, risk flags, and meeting agenda.
Prepare for and facilitate effective sprint planning sessions. Produces capacity analysis, recommends stories based on priority and capacity, identifies dependencies and risks, and provides structured meeting agendas.
Core principle: Sprint planning should result in a realistic commitment with clear goals—not an overloaded wishlist.
sprint_planning:
sprint_number: "[N]"
sprint_dates:
start: "[YYYY-MM-DD]"
end: "[YYYY-MM-DD]"
working_days: "[N]"
capacity_analysis:
team_members:
- name: "[Name]"
role: "[Role]"
availability: "[%]" # 100% = full sprint, 80% = 1 day off, etc.
notes: "[PTO, training, etc.]"
total_capacity:
available_person_days: "[N]"
historical_velocity: "[Points from last 3 sprints]"
recommended_commitment: "[Points range]"
capacity_confidence: "[High | Medium | Low]"
sprint_goal:
primary: "[One sentence goal]"
success_criteria:
- "[Measurable outcome 1]"
- "[Measurable outcome 2]"
recommended_stories:
committed:
- id: "[Story ID]"
title: "[Title]"
points: "[N]"
priority: "[P1 | P2 | P3]"
assignee_suggestion: "[Name or skill needed]"
dependencies: ["[Dependency if any]"]
risk_flag: "[None | Low | Medium | High]"
stretch:
- id: "[Story ID]"
title: "[Title]"
points: "[N]"
condition: "[When to pull in]"
dependencies:
internal:
- story: "[Story ID]"
depends_on: "[Story ID]"
type: "[Blocks | Informs | Shares-data]"
external:
- story: "[Story ID]"
depends_on: "[External team/system]"
status: "[Confirmed | Pending | At-risk]"
mitigation: "[If at-risk]"
risks:
- risk: "[Description]"
likelihood: "[High | Medium | Low]"
impact: "[High | Medium | Low]"
mitigation: "[Plan]"
carryover:
from_previous_sprint:
- id: "[Story ID]"
title: "[Title]"
remaining_points: "[N]"
reason: "[Why not completed]"
meeting_agenda:
pre_planning:
- "[Preparation item]"
planning_part_1: # What to build
duration: "[Minutes]"
activities:
- "[Activity]"
planning_part_2: # How to build
duration: "[Minutes]"
activities:
- "[Activity]"
sprint_days: 10 # 2-week sprint
team_size: 5
availability:
- name: "Alice"
days_off: 0
available: 10
- name: "Bob"
days_off: 2 # PTO
available: 8
- name: "Carol"
days_off: 1 # Training
available: 9
- name: "David"
days_off: 0
available: 10
- name: "Eve"
days_off: 3 # Conference
available: 7
total_person_days: 44 # vs 50 theoretical max
focus_factor: 0.7 # Account for meetings, support, etc.
effective_capacity: 31 # 44 × 0.7
historical_velocity:
sprint_n_minus_1: 34
sprint_n_minus_2: 28
sprint_n_minus_3: 31
average: 31
# Adjust for capacity difference
normal_capacity: 35 # person-days in those sprints
this_sprint_capacity: 31
capacity_ratio: 0.89 # 31/35
recommended_commitment: 28 # 31 × 0.89, rounded
commitment_range: "25-30" # ±10% for uncertainty
A good sprint goal is:
| Attribute | Description | Example |
|---|---|---|
| Outcome-focused | What value delivered, not tasks done | "Users can complete checkout" not "Build checkout page" |
| Measurable | Can verify achievement | "90% of test users complete flow" |
| Achievable | Realistic given capacity | Based on story selection |
| Singular | One primary objective | Not "A and B and C" |
By the end of this sprint, [user segment] will be able to [capability]
as measured by [success metric].
Example:
By the end of this sprint, beta users will be able to complete the full onboarding flow as measured by 80% completion rate in testing.
include_if:
- Story is refined (acceptance criteria defined)
- Story is estimated
- Dependencies are resolved or scheduled
- Required skills available this sprint
flag_if:
- Story larger than 1/3 sprint capacity
- Story has external dependency
- Story is first of its type
- Story touches unfamiliar code
| Type | Description | Risk Level |
|---|---|---|
| Blocks | Cannot start until other completes | High |
| Informs | Needs information from other | Medium |
| Shares-data | Uses same data structures | Low |
Story A ──blocks──> Story B ──blocks──> Story C
│
└──informs──> Story D
External: API Team delivery ──blocks──> Story E
Status: Confirmed for Day 3
| Risk | Indicators | Mitigation |
|---|---|---|
| Overcommitment | Points > 110% velocity | Reduce scope, add stretch |
| Single point of failure | Only one person can do story | Pair programming, knowledge share |
| External dependency | Waiting on other team | Confirm timing, have backup work |
| Unknown complexity | New technology/domain | Spike first, time-box |
| Carryover debt | Multiple sprints of carryover | Address root cause |
| Mistake | Problem | Prevention |
|---|---|---|
| Planning to 100% capacity | No buffer for unknowns | Target 70-80% |
| Ignoring carryover | Compounds sprint-over-sprint | Address first |
| Vague sprint goal | No focus, no success measure | Use template |
| Skipping Part 2 | Poor task understanding | Allocate full time |
| Not confirming dependencies | Blocked mid-sprint | Verify before planning |
Before sprint planning is complete: