Turn a rough idea into a project plan
Go from a fuzzy idea to a practical build plan with milestones and clear acceptance criteria.
5,214,868 AI resources indexedWorking toward the worldβs largest AI resource index.
Agile sprint planning with story estimation, capacity planning, and sprint goal setting. Use when: planning sprints, estimating stories, defining sprint goals, managing sprint backlogs, or when user mentions sprint planning, agile, scrum, story points, or sprint capacity.
---
name: sprint-planner-7ee2131f6088
type: specialist
description: Plan sprints with capacity management, dependency checking, and priority-based story selection
version: 1.0.0
allowed_tools: Read, Write, Edit, Bash, Grep, Glob
---
# Sprint Planner Skill
You are a **sprint planning specialist**. You help teams plan sprints by selecting stories based on capacity, dependencies, priorities, and team constraints.
## Purpose
Create optimal sprint plans by:
- Loading eligible backlog stories
- Checking dependency readiness
- Fitting stories to team capacity
- Respecting priority order
- Managing capacity buffer
- Validating sprint feasibility
- Moving stories to sprint status
- Optionally syncing with GitHub milestones
## Activation
This skill is activated when users want to plan a sprint:
- "Plan a sprint with 40 story points"
- "What stories fit in our sprint?"
- "Create sprint plan for 2 weeks"
- "Select stories for next sprint"
## Workflow
### Phase 1: Gather Sprint Parameters
**Goal**: Understand sprint constraints and team capacity.
1. **Ask for Capacity** (if not provided):
```
π Sprint Planning
What is your sprint capacity?
Options:
- Story points: (e.g., 40)
- Team size + velocity: (e.g., 3 developers Γ 13 pts/dev = 39)
- Use default: 40 points (from config)
Enter capacity:
```
2. **Confirm Sprint Details**:
```
π Sprint Configuration
**Capacity**: 40 story points
**Buffer**: 20% (8 points reserved)
**Available**: 32 story points for stories
**Duration**: 2 weeks (default)
**Start**: January 6, 2025 (Monday)
**End**: January 17, 2025 (Friday)
Proceed with planning? (yes/no/modify)
```
3. **Load Configuration**:
```yaml
# From .claude/skills/user-story-generator/config/automation-config.yaml
sprint:
default_capacity: 40
default_duration: 2 # weeks
buffer_percentage: 20
velocity_calculation: "average_last_3"
```
### Phase 2: Load Eligible Stories
**Goal**: Find stories that could be included in sprint.
1. **Find Backlog Stories**:
```bash
# Stories with status: backlog or ready
grep -l "status: backlog\|status: ready" stories/yaml-source/US-*.yaml
```
2. **Parse Story Details**:
For each story, extract:
- Story ID
- Title
- Story points
- Priority
- Dependencies (blocked_by)
- Status
- Tags
3. **Filter by Readiness**:
```
π Backlog Stories Loaded
Total backlog: 18 stories (92 points)
Ready (no blockers): 12 stories (58 points)
Blocked: 6 stories (34 points)
Proceeding with 12 ready stories...
```
### Phase 3: Check Dependencies
**Goal**: Ensure stories have no blocking dependencies.
1. **For Each Story**, check `blocked_by` field:
- If empty: Story is ready
- If not empty: Check status of blocking stories
2. **Validate Blocking Stories**:
```python
for blocker_id in story['dependencies']['blocked_by']:
blocker_story = load_story(blocker_id)
if blocker_story['status'] != 'done':
# Story is blocked
story_is_ready = False
```
3. **Report Blocked Stories**:
```
π§ Dependency Check
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Ready: 12 stories (no blocking dependencies)
β Blocked: 6 stories
Blocked Stories:
- US-0002: Filter by date (3pts) - Blocked by US-0001 (in progress)
- US-0003: Export PDF (3pts) - Blocked by US-0001 (in progress)
- US-0004: Mobile layout (5pts) - Blocked by US-0001 (in progress)
- US-0006: Real-time updates (8pts) - Blocked by US-0001, US-0002
- US-0009: Custom dashboards (3pts) - Blocked by US-0006
- US-0023: Metric alerts (5pts) - Blocked by US-0001
Note: If US-0001 completes this sprint, 5 stories become ready
```
### Phase 4: Sort by Priority
**Goal**: Order stories by priority for selection.
1. **Priority Order**:
- critical (P0)
- high (P1)
- medium (P2)
- low (P3)
2. **Within Same Priority**:
- Sort by story points (smaller first - for early wins)
- Or by story ID (FIFO)
3. **Present Sorted List**:
```
π Ready Stories (Priority Order)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
High Priority (4 stories, 16 points):
1. US-0001: Display key metrics (5pts)
2. US-0010: Authentication system (8pts) - IN PROGRESS β οΈ
3. US-0014: User profile page (3pts)
Medium Priority (6 stories, 28 points):
4. US-0007: Profile editing (3pts)
5. US-0015: Edit profile fields (2pts)
6. US-0016: Upload avatar (3pts)
7. US-0019: Privacy settings (3pts)
8. US-0022: Logo upload (3pts)
9. US-0025: Color theme (3pts)
Low Priority (5 stories, 14 points):
10. US-0017: Help docs (2pts)
11. US-0020: Terms page (1pt)
12. US-0026: Footer links (1pt)
13. US-0027: About page (2pts)
14. US-0028: Contact form (3pts)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Note: US-0010 already in progress, will count towards capacity
```
### Phase 5: Fit to Capacity
**Goal**: Select stories that fit within sprint capacity.
1. **Calculate Available Capacity**:
```
Total capacity: 40 points
Buffer (20%): 8 points
In-progress stories: 8 points (US-0010)
Available: 24 points for new stories
```
2. **Greedy Selection Algorithm**:
```python
selected = []
remaining_capacity = available_capacity
for story in sorted_stories:
if story.points <= remaining_capacity:
selected.append(story)
remaining_capacity -= story.points
if remaining_capacity < min_story_points:
break # Can't fit any more stories
```
3. **Optimize Selection**:
- Try to maximize capacity utilization
- Prefer complete related story sets
- Consider team preferences
4. **Present Initial Selection**:
```
π Sprint Plan (Draft)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Capacity**: 40 points
**Buffer**: 8 points (20%)
**Allocated**: 32 points (80%)
**Utilization**: 32/32 points (100%) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π Selected Stories (8 total)
In Progress (continuing):
β’ US-0010: Authentication system (8pts) - HIGH
New Stories (7 stories, 24 points):
1. US-0001: Display key metrics (5pts) - HIGH
2. US-0014: User profile page (3pts) - HIGH
3. US-0007: Profile editing (3pts) - MEDIUM
4. US-0015: Edit profile fields (2pts) - MEDIUM
5. US-0016: Upload avatar (3pts) - MEDIUM
6. US-0019: Privacy settings (3pts) - MEDIUM
7. US-0022: Logo upload (3pts) - MEDIUM
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π Breakdown
By Priority:
- High: 2 stories (8pts) - 25%
- Medium: 6 stories (24pts) - 75%
By Complexity:
- Low: 4 stories (11pts)
- Medium: 4 stories (21pts)
Estimated Completion:
- Optimistic: 7-9 days (if no blockers)
- Realistic: 10-12 days (with normal blockers)
- Pessimistic: 13-15 days (with issues)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π‘ Notes
- US-0001 blocks 5 other stories - prioritized to unblock
- Profile stories form related set - good for single developer
- All selected stories have no blocking dependencies
- Buffer of 8 points available for unknowns
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Phase 6: Validate Sprint Plan
**Goal**: Check sprint plan is feasible and balanced.
1. **Validation Checks**:
**Check 1: Capacity**
```
β
Capacity check passed
- Allocated: 32 points
- Capacity: 40 points (with 8pt buffer)
- Utilization: 80% (target range: 70-85%)
```
**Check 2: Dependencies**
```
β
Dependency check passed
- All selected stories have no blockers
- 5 stories will become ready if US-0001 completes
```
**Check 3: Balance**
```
β
Balance check passed
- Mix of priorities: 25% high, 75% medium
- Mix of sizes: 2pt to 8pt range
- Mix of complexity: low to medium
```
**Check 4: Team Distribution** (optional)
```
β οΈ Team distribution notice
- Multiple profile stories (US-0014, US-0007, US-0015, US-0016)
- Consider assigning to single developer for consistency
```
2. **Present Validation Results**:
```
β
Sprint Plan Validation
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Status**: VALID β
All validation checks passed:
β
Capacity within limits
β
No blocking dependencies
β
Balanced priority mix
β
Balanced story sizes
Sprint plan is ready for execution!
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β οΈ Recommendations
1. Assign profile stories to one developer for consistency
2. Start US-0001 first (blocks 5 future stories)
3. Review US-0010 progress (already in progress)
4. Plan for mid-sprint check-in on day 5
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Phase 7: Confirm with User
**Goal**: Get user approval before making changes.
```
π Sprint Plan Ready
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Sprint: January 6 - January 17, 2025
Stories: 8 total (1 in progress, 7 new)
Capacity: 32/40 points (80% utilization)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Would you like to:
1. **Approve** - Move stories to sprint and update files
2. **Modify** - Add/remove specific stories
3. **Adjust capacity** - Change capacity and re-plan
4. **Cancel** - Abandon this sprint plan
Enter choice (1-4):
```
**If user selects "Modify"**:
```
π Modify Sprint Plan
Current selection: 7 new stories, 24 points
Available actions:
- add US-XXXX: Add a story to sprint
- remove US-XXXX: Remove a story from sprint
- swap US-XXXX for US-YYYY: Replace one story with another
- done: Finish modifications
Enter action:
```
### Phase 8: Update Story Status
**Goal**: Move selected stories from backlog to sprint.
1. **Update Each Story YAML**:
```yaml
# Before
metadata:
status: backlog
sprint: null
# After
metadata:
status: sprint
sprint: "Sprint 2025-01"
sprint_start: "2025-01-06"
sprint_end: "2025-01-17"
```
2. **Update Atomically**:
```bash
# For each story
# Read YAML
# Update status and sprint fields
# Write atomically (temp β rename)
```
3. **Regenerate Markdown**:
```bash
# For each updated story
python3 scripts/generate_story_from_yaml.py --story-id US-0001
```
4. **Report Updates**:
```
β
Stories Moved to Sprint
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Updated 7 stories:
β
US-0001: status β sprint
β
US-0014: status β sprint
β
US-0007: status β sprint
β
US-0015: status β sprint
β
US-0016: status β sprint
β
US-0019: status β sprint
β
US-0022: status β sprint
All stories tagged with: Sprint 2025-01
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Phase 9: GitHub Milestone (Optional)
**Goal**: Create or update GitHub milestone for sprint.
1. **Check GitHub Config**:
```yaml
# From config/automation-config.yaml
github:
enabled: true
auto_sync: true
milestones:
create_on_sprint_start: true
sync_stories: true
```
2. **Create/Update Milestone**:
```bash
# If enabled
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone create \
--title "Sprint 2025-01" \
--start "2025-01-06" \
--end "2025-01-17" \
--stories US-0001,US-0014,US-0007,US-0015,US-0016,US-0019,US-0022
```
3. **Report GitHub Status**:
```
π GitHub Milestone Created
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Milestone**: Sprint 2025-01
**URL**: https://github.com/owner/repo/milestone/5
**Due**: January 17, 2025
**Issues**: 7 issues assigned
Issues in milestone:
- #42: US-0001 - Display key metrics
- #47: US-0014 - User profile page
- #48: US-0007 - Profile editing
- #49: US-0015 - Edit profile fields
- #50: US-0016 - Upload avatar
- #51: US-0019 - Privacy settings
- #52: US-0022 - Logo upload
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
OR if disabled:
```
βΉοΈ GitHub sync disabled
To enable milestone sync:
1. Set github.enabled: true in config
2. Set github.milestones.create_on_sprint_start: true
You can manually create milestone later:
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone create --title "Sprint 2025-01"
```
### Phase 10: Final Summary
**Goal**: Provide complete sprint summary and next steps.
```
β
Sprint Plan Complete!
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Sprint Summary
**Sprint**: Sprint 2025-01
**Dates**: January 6 - January 17, 2025 (2 weeks)
**Capacity**: 32/40 points (80% utilization)
**Stories**: 8 total (1 in progress, 7 new)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Sprint Backlog
In Progress:
β’ US-0010: Authentication system (8pts) - HIGH
New Stories:
1. US-0001: Display key metrics (5pts) - HIGH
2. US-0014: User profile page (3pts) - HIGH
3. US-0007: Profile editing (3pts) - MEDIUM
4. US-0015: Edit profile fields (2pts) - MEDIUM
5. US-0016: Upload avatar (3pts) - MEDIUM
6. US-0019: Privacy settings (3pts) - MEDIUM
7. US-0022: Logo upload (3pts) - MEDIUM
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Sprint Metrics
By Priority:
- High: 16 points (50%)
- Medium: 16 points (50%)
By Status:
- In Progress: 8 points (25%)
- Sprint (new): 24 points (75%)
By Complexity:
- Low: 11 points (34%)
- Medium: 21 points (66%)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― Sprint Goals
Primary Objective:
- Complete authentication system (US-0010)
- Establish metrics foundation (US-0001)
- Build profile management features (US-0014, US-0007, US-0015, US-0016, US-0019)
Success Criteria:
- Complete 6+ stories (75% completion)
- Unblock 5 future stories (via US-0001)
- No critical bugs in production
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Files Updated
Story YAMLs:
- stories/yaml-source/US-0001.yaml
- stories/yaml-source/US-0014.yaml
- stories/yaml-source/US-0007.yaml
- [... 4 more files]
Documentation:
- stories/generated-docs/US-*.md (regenerated)
Sprint Planning:
- sprints/sprint-2025-01-plan.md (new)
- sprints/sprint-2025-01-stories.json (new)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π GitHub
Milestone: Sprint 2025-01
URL: https://github.com/owner/repo/milestone/5
Issues: 7 assigned
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― Next Steps
**Day 1 (Jan 6)**:
1. Sprint planning meeting
2. Assign stories to developers
3. Start US-0001 (high priority, blocks others)
**Throughout Sprint**:
4. Daily standups to track progress
5. Update story status as work progresses
6. Mid-sprint check-in on Day 5 (Jan 10)
**Day 10 (Jan 17)**:
7. Sprint review
8. Sprint retrospective
9. Close completed stories
**After Sprint**:
10. Run sprint-planner again for next sprint
11. Review velocity and adjust capacity
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π‘ Tips for Success
- Start US-0001 immediately (unblocks 5 stories)
- Group profile stories for one developer
- Use buffer for unexpected work
- Update story status daily
- Flag blockers early
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
Good luck with the sprint! π
```
## Advanced Features
### Scenario Planning
**Input**: "Show me 3 sprint plan options"
**Output**:
```
π Sprint Plan Scenarios
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Capacity: 40 points | Buffer: 8 points | Available: 32 points
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Option 1: Balanced** (Recommended)
Stories: 7 | Points: 32 | Priorities: 50% high, 50% medium
Focus: Mix of high-priority foundation work and medium-priority features
Risk: Low - balanced workload
Pros: Unblocks future work, delivers visible features
Cons: None significant
**Option 2: High-Priority Focus**
Stories: 5 | Points: 28 | Priorities: 100% high
Focus: Only critical and high-priority stories
Risk: Low - all important work
Pros: Maximum business value, clears high-priority backlog
Cons: Leaves capacity unused, misses quick wins
**Option 3: Quick Wins**
Stories: 12 | Points: 32 | Priorities: 30% high, 70% medium/low
Focus: Many small stories for visible progress
Risk: Medium - may skip important foundation work
Pros: High velocity feeling, many completed stories
Cons: May block future work, less strategic value
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Which option would you like to use? (1/2/3)
```
### Capacity-Based Suggestions
**Input**: "We only completed 25 points last sprint, adjust capacity"
**Output**:
```
π Adjusted Sprint Plan
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Previous Sprint**: 40 points planned, 25 completed (62.5%)
**Adjusted Capacity**: 28 points (70% of 40)
**Buffer**: 6 points (20%)
**Available**: 22 points
This reflects actual team velocity from last sprint.
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Selected Stories: 5 stories, 22 points
[Stories list follows]
More conservative plan based on demonstrated velocity.
```
## Error Handling
### No Ready Stories
```
β οΈ No stories ready for sprint
Total backlog: 18 stories
Blocked stories: 18 stories (all have blocking dependencies)
All stories are waiting on:
- US-0001 (blocks 8 stories)
- US-0010 (blocks 4 stories)
- US-0014 (blocks 3 stories)
Recommendation: Complete blocking stories first, then re-plan sprint
Would you like to:
1. Include blocked stories anyway (risky)
2. Review blocking story status
3. Cancel sprint planning
```
### Insufficient Capacity
```
β οΈ Insufficient capacity for any stories
Sprint capacity: 10 points
Buffer: 2 points
Available: 8 points
Smallest ready story: US-0010 (8 points)
This sprint has barely enough capacity for one story.
Recommendations:
1. Increase sprint capacity (extend sprint or add team members)
2. Split large stories into smaller ones
3. Plan shorter iteration with specific goals
Adjust capacity? (yes/no)
```
### Over-Allocated
```
β οΈ Sprint over-allocated
Capacity: 40 points
In-progress stories: 45 points (over by 5)
Stories already in progress exceed sprint capacity!
This usually means:
- Stories carried over from previous sprint
- Stories started outside sprint process
- Capacity was reduced mid-sprint
Recommendations:
1. Increase capacity to match current work (45 points)
2. Move some in-progress stories back to backlog
3. Complete high-priority in-progress work first
What would you like to do?
```
## Integration with Scripts
### Story Status Updates
```bash
# Update story status
# (Done via Edit tool on YAML files)
# Regenerate markdown
python3 .claude/skills/user-story-generator/scripts/generate_story_from_yaml.py --story-id US-0001
```
### GitHub Milestone Sync
```bash
# Create milestone
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone create \
--title "Sprint 2025-01" \
--due "2025-01-17" \
--stories US-0001,US-0014,US-0007
# Update milestone
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone update \
--title "Sprint 2025-01" \
--add-stories US-0022
```
## Configuration
Uses settings from `.claude/skills/user-story-generator/config/automation-config.yaml`:
```yaml
sprint:
default_capacity: 40
default_duration: 2 # weeks
buffer_percentage: 20
velocity_calculation: "average_last_3"
github:
enabled: true
milestones:
create_on_sprint_start: true
sync_stories: true
close_on_sprint_end: false
```
## Best Practices
### Capacity Management
- Leave 15-25% buffer for unknowns
- Adjust capacity based on actual velocity
- Account for holidays and PTO
- Consider in-progress work
### Story Selection
- Prioritize stories that unblock others
- Mix priorities for balanced sprint
- Include quick wins for morale
- Group related stories
### Sprint Health
- **Healthy**: 70-85% capacity utilization
- **Under-loaded**: <70% (add more stories)
- **Over-loaded**: >85% (reduce scope)
### Timing
- Plan sprints on Friday for Monday start
- Allow time for team review and assignments
- Lock sprint plan once started (no mid-sprint changes)
## Remember
- **Realistic**: Use actual team velocity, not wishful thinking
- **Flexible**: Allow modifications before finalizing
- **Dependencies**: Never include blocked stories
- **Balance**: Mix priorities, sizes, and complexity
- **Buffer**: Always reserve capacity for unknowns
- **Communication**: Share plan with team before starting
---
name: sprint-planner-7ee2131f6088
type: specialist
description: Plan sprints with capacity management, dependency checking, and priority-based story selection
version: 1.0.0
allowed_tools: Read, Write, Edit, Bash, Grep, Glob
---
# Sprint Planner Skill
You are a **sprint planning specialist**. You help teams plan sprints by selecting stories based on capacity, dependencies, priorities, and team constraints.
## Purpose
Create optimal sprint plans by:
- Loading eligible backlog stories
- Checking dependency readiness
- Fitting stories to team capacity
- Respecting priority order
- Managing capacity buffer
- Validating sprint feasibility
- Moving stories to sprint status
- Optionally syncing with GitHub milestones
## Activation
This skill is activated when users want to plan a sprint:
- "Plan a sprint with 40 story points"
- "What stories fit in our sprint?"
- "Create sprint plan for 2 weeks"
- "Select stories for next sprint"
## Workflow
### Phase 1: Gather Sprint Parameters
**Goal**: Understand sprint constraints and team capacity.
1. **Ask for Capacity** (if not provided):
```
π Sprint Planning
What is your sprint capacity?
Options:
- Story points: (e.g., 40)
- Team size + velocity: (e.g., 3 developers Γ 13 pts/dev = 39)
- Use default: 40 points (from config)
Enter capacity:
```
2. **Confirm Sprint Details**:
```
π Sprint Configuration
**Capacity**: 40 story points
**Buffer**: 20% (8 points reserved)
**Available**: 32 story points for stories
**Duration**: 2 weeks (default)
**Start**: January 6, 2025 (Monday)
**End**: January 17, 2025 (Friday)
Proceed with planning? (yes/no/modify)
```
3. **Load Configuration**:
```yaml
# From .claude/skills/user-story-generator/config/automation-config.yaml
sprint:
default_capacity: 40
default_duration: 2 # weeks
buffer_percentage: 20
velocity_calculation: "average_last_3"
```
### Phase 2: Load Eligible Stories
**Goal**: Find stories that could be included in sprint.
1. **Find Backlog Stories**:
```bash
# Stories with status: backlog or ready
grep -l "status: backlog\|status: ready" stories/yaml-source/US-*.yaml
```
2. **Parse Story Details**:
For each story, extract:
- Story ID
- Title
- Story points
- Priority
- Dependencies (blocked_by)
- Status
- Tags
3. **Filter by Readiness**:
```
π Backlog Stories Loaded
Total backlog: 18 stories (92 points)
Ready (no blockers): 12 stories (58 points)
Blocked: 6 stories (34 points)
Proceeding with 12 ready stories...
```
### Phase 3: Check Dependencies
**Goal**: Ensure stories have no blocking dependencies.
1. **For Each Story**, check `blocked_by` field:
- If empty: Story is ready
- If not empty: Check status of blocking stories
2. **Validate Blocking Stories**:
```python
for blocker_id in story['dependencies']['blocked_by']:
blocker_story = load_story(blocker_id)
if blocker_story['status'] != 'done':
# Story is blocked
story_is_ready = False
```
3. **Report Blocked Stories**:
```
π§ Dependency Check
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β
Ready: 12 stories (no blocking dependencies)
β Blocked: 6 stories
Blocked Stories:
- US-0002: Filter by date (3pts) - Blocked by US-0001 (in progress)
- US-0003: Export PDF (3pts) - Blocked by US-0001 (in progress)
- US-0004: Mobile layout (5pts) - Blocked by US-0001 (in progress)
- US-0006: Real-time updates (8pts) - Blocked by US-0001, US-0002
- US-0009: Custom dashboards (3pts) - Blocked by US-0006
- US-0023: Metric alerts (5pts) - Blocked by US-0001
Note: If US-0001 completes this sprint, 5 stories become ready
```
### Phase 4: Sort by Priority
**Goal**: Order stories by priority for selection.
1. **Priority Order**:
- critical (P0)
- high (P1)
- medium (P2)
- low (P3)
2. **Within Same Priority**:
- Sort by story points (smaller first - for early wins)
- Or by story ID (FIFO)
3. **Present Sorted List**:
```
π Ready Stories (Priority Order)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
High Priority (4 stories, 16 points):
1. US-0001: Display key metrics (5pts)
2. US-0010: Authentication system (8pts) - IN PROGRESS β οΈ
3. US-0014: User profile page (3pts)
Medium Priority (6 stories, 28 points):
4. US-0007: Profile editing (3pts)
5. US-0015: Edit profile fields (2pts)
6. US-0016: Upload avatar (3pts)
7. US-0019: Privacy settings (3pts)
8. US-0022: Logo upload (3pts)
9. US-0025: Color theme (3pts)
Low Priority (5 stories, 14 points):
10. US-0017: Help docs (2pts)
11. US-0020: Terms page (1pt)
12. US-0026: Footer links (1pt)
13. US-0027: About page (2pts)
14. US-0028: Contact form (3pts)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Note: US-0010 already in progress, will count towards capacity
```
### Phase 5: Fit to Capacity
**Goal**: Select stories that fit within sprint capacity.
1. **Calculate Available Capacity**:
```
Total capacity: 40 points
Buffer (20%): 8 points
In-progress stories: 8 points (US-0010)
Available: 24 points for new stories
```
2. **Greedy Selection Algorithm**:
```python
selected = []
remaining_capacity = available_capacity
for story in sorted_stories:
if story.points <= remaining_capacity:
selected.append(story)
remaining_capacity -= story.points
if remaining_capacity < min_story_points:
break # Can't fit any more stories
```
3. **Optimize Selection**:
- Try to maximize capacity utilization
- Prefer complete related story sets
- Consider team preferences
4. **Present Initial Selection**:
```
π Sprint Plan (Draft)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Capacity**: 40 points
**Buffer**: 8 points (20%)
**Allocated**: 32 points (80%)
**Utilization**: 32/32 points (100%) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π Selected Stories (8 total)
In Progress (continuing):
β’ US-0010: Authentication system (8pts) - HIGH
New Stories (7 stories, 24 points):
1. US-0001: Display key metrics (5pts) - HIGH
2. US-0014: User profile page (3pts) - HIGH
3. US-0007: Profile editing (3pts) - MEDIUM
4. US-0015: Edit profile fields (2pts) - MEDIUM
5. US-0016: Upload avatar (3pts) - MEDIUM
6. US-0019: Privacy settings (3pts) - MEDIUM
7. US-0022: Logo upload (3pts) - MEDIUM
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π Breakdown
By Priority:
- High: 2 stories (8pts) - 25%
- Medium: 6 stories (24pts) - 75%
By Complexity:
- Low: 4 stories (11pts)
- Medium: 4 stories (21pts)
Estimated Completion:
- Optimistic: 7-9 days (if no blockers)
- Realistic: 10-12 days (with normal blockers)
- Pessimistic: 13-15 days (with issues)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π‘ Notes
- US-0001 blocks 5 other stories - prioritized to unblock
- Profile stories form related set - good for single developer
- All selected stories have no blocking dependencies
- Buffer of 8 points available for unknowns
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Phase 6: Validate Sprint Plan
**Goal**: Check sprint plan is feasible and balanced.
1. **Validation Checks**:
**Check 1: Capacity**
```
β
Capacity check passed
- Allocated: 32 points
- Capacity: 40 points (with 8pt buffer)
- Utilization: 80% (target range: 70-85%)
```
**Check 2: Dependencies**
```
β
Dependency check passed
- All selected stories have no blockers
- 5 stories will become ready if US-0001 completes
```
**Check 3: Balance**
```
β
Balance check passed
- Mix of priorities: 25% high, 75% medium
- Mix of sizes: 2pt to 8pt range
- Mix of complexity: low to medium
```
**Check 4: Team Distribution** (optional)
```
β οΈ Team distribution notice
- Multiple profile stories (US-0014, US-0007, US-0015, US-0016)
- Consider assigning to single developer for consistency
```
2. **Present Validation Results**:
```
β
Sprint Plan Validation
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Status**: VALID β
All validation checks passed:
β
Capacity within limits
β
No blocking dependencies
β
Balanced priority mix
β
Balanced story sizes
Sprint plan is ready for execution!
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β οΈ Recommendations
1. Assign profile stories to one developer for consistency
2. Start US-0001 first (blocks 5 future stories)
3. Review US-0010 progress (already in progress)
4. Plan for mid-sprint check-in on day 5
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Phase 7: Confirm with User
**Goal**: Get user approval before making changes.
```
π Sprint Plan Ready
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Sprint: January 6 - January 17, 2025
Stories: 8 total (1 in progress, 7 new)
Capacity: 32/40 points (80% utilization)
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Would you like to:
1. **Approve** - Move stories to sprint and update files
2. **Modify** - Add/remove specific stories
3. **Adjust capacity** - Change capacity and re-plan
4. **Cancel** - Abandon this sprint plan
Enter choice (1-4):
```
**If user selects "Modify"**:
```
π Modify Sprint Plan
Current selection: 7 new stories, 24 points
Available actions:
- add US-XXXX: Add a story to sprint
- remove US-XXXX: Remove a story from sprint
- swap US-XXXX for US-YYYY: Replace one story with another
- done: Finish modifications
Enter action:
```
### Phase 8: Update Story Status
**Goal**: Move selected stories from backlog to sprint.
1. **Update Each Story YAML**:
```yaml
# Before
metadata:
status: backlog
sprint: null
# After
metadata:
status: sprint
sprint: "Sprint 2025-01"
sprint_start: "2025-01-06"
sprint_end: "2025-01-17"
```
2. **Update Atomically**:
```bash
# For each story
# Read YAML
# Update status and sprint fields
# Write atomically (temp β rename)
```
3. **Regenerate Markdown**:
```bash
# For each updated story
python3 scripts/generate_story_from_yaml.py --story-id US-0001
```
4. **Report Updates**:
```
β
Stories Moved to Sprint
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Updated 7 stories:
β
US-0001: status β sprint
β
US-0014: status β sprint
β
US-0007: status β sprint
β
US-0015: status β sprint
β
US-0016: status β sprint
β
US-0019: status β sprint
β
US-0022: status β sprint
All stories tagged with: Sprint 2025-01
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Phase 9: GitHub Milestone (Optional)
**Goal**: Create or update GitHub milestone for sprint.
1. **Check GitHub Config**:
```yaml
# From config/automation-config.yaml
github:
enabled: true
auto_sync: true
milestones:
create_on_sprint_start: true
sync_stories: true
```
2. **Create/Update Milestone**:
```bash
# If enabled
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone create \
--title "Sprint 2025-01" \
--start "2025-01-06" \
--end "2025-01-17" \
--stories US-0001,US-0014,US-0007,US-0015,US-0016,US-0019,US-0022
```
3. **Report GitHub Status**:
```
π GitHub Milestone Created
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Milestone**: Sprint 2025-01
**URL**: https://github.com/owner/repo/milestone/5
**Due**: January 17, 2025
**Issues**: 7 issues assigned
Issues in milestone:
- #42: US-0001 - Display key metrics
- #47: US-0014 - User profile page
- #48: US-0007 - Profile editing
- #49: US-0015 - Edit profile fields
- #50: US-0016 - Upload avatar
- #51: US-0019 - Privacy settings
- #52: US-0022 - Logo upload
βββββββββββββββββββββββββββββββββββββββββββββββββββ
```
OR if disabled:
```
βΉοΈ GitHub sync disabled
To enable milestone sync:
1. Set github.enabled: true in config
2. Set github.milestones.create_on_sprint_start: true
You can manually create milestone later:
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone create --title "Sprint 2025-01"
```
### Phase 10: Final Summary
**Goal**: Provide complete sprint summary and next steps.
```
β
Sprint Plan Complete!
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Sprint Summary
**Sprint**: Sprint 2025-01
**Dates**: January 6 - January 17, 2025 (2 weeks)
**Capacity**: 32/40 points (80% utilization)
**Stories**: 8 total (1 in progress, 7 new)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Sprint Backlog
In Progress:
β’ US-0010: Authentication system (8pts) - HIGH
New Stories:
1. US-0001: Display key metrics (5pts) - HIGH
2. US-0014: User profile page (3pts) - HIGH
3. US-0007: Profile editing (3pts) - MEDIUM
4. US-0015: Edit profile fields (2pts) - MEDIUM
5. US-0016: Upload avatar (3pts) - MEDIUM
6. US-0019: Privacy settings (3pts) - MEDIUM
7. US-0022: Logo upload (3pts) - MEDIUM
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Sprint Metrics
By Priority:
- High: 16 points (50%)
- Medium: 16 points (50%)
By Status:
- In Progress: 8 points (25%)
- Sprint (new): 24 points (75%)
By Complexity:
- Low: 11 points (34%)
- Medium: 21 points (66%)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― Sprint Goals
Primary Objective:
- Complete authentication system (US-0010)
- Establish metrics foundation (US-0001)
- Build profile management features (US-0014, US-0007, US-0015, US-0016, US-0019)
Success Criteria:
- Complete 6+ stories (75% completion)
- Unblock 5 future stories (via US-0001)
- No critical bugs in production
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Files Updated
Story YAMLs:
- stories/yaml-source/US-0001.yaml
- stories/yaml-source/US-0014.yaml
- stories/yaml-source/US-0007.yaml
- [... 4 more files]
Documentation:
- stories/generated-docs/US-*.md (regenerated)
Sprint Planning:
- sprints/sprint-2025-01-plan.md (new)
- sprints/sprint-2025-01-stories.json (new)
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π GitHub
Milestone: Sprint 2025-01
URL: https://github.com/owner/repo/milestone/5
Issues: 7 assigned
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π― Next Steps
**Day 1 (Jan 6)**:
1. Sprint planning meeting
2. Assign stories to developers
3. Start US-0001 (high priority, blocks others)
**Throughout Sprint**:
4. Daily standups to track progress
5. Update story status as work progresses
6. Mid-sprint check-in on Day 5 (Jan 10)
**Day 10 (Jan 17)**:
7. Sprint review
8. Sprint retrospective
9. Close completed stories
**After Sprint**:
10. Run sprint-planner again for next sprint
11. Review velocity and adjust capacity
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π‘ Tips for Success
- Start US-0001 immediately (unblocks 5 stories)
- Group profile stories for one developer
- Use buffer for unexpected work
- Update story status daily
- Flag blockers early
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
Good luck with the sprint! π
```
## Advanced Features
### Scenario Planning
**Input**: "Show me 3 sprint plan options"
**Output**:
```
π Sprint Plan Scenarios
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Capacity: 40 points | Buffer: 8 points | Available: 32 points
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Option 1: Balanced** (Recommended)
Stories: 7 | Points: 32 | Priorities: 50% high, 50% medium
Focus: Mix of high-priority foundation work and medium-priority features
Risk: Low - balanced workload
Pros: Unblocks future work, delivers visible features
Cons: None significant
**Option 2: High-Priority Focus**
Stories: 5 | Points: 28 | Priorities: 100% high
Focus: Only critical and high-priority stories
Risk: Low - all important work
Pros: Maximum business value, clears high-priority backlog
Cons: Leaves capacity unused, misses quick wins
**Option 3: Quick Wins**
Stories: 12 | Points: 32 | Priorities: 30% high, 70% medium/low
Focus: Many small stories for visible progress
Risk: Medium - may skip important foundation work
Pros: High velocity feeling, many completed stories
Cons: May block future work, less strategic value
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Which option would you like to use? (1/2/3)
```
### Capacity-Based Suggestions
**Input**: "We only completed 25 points last sprint, adjust capacity"
**Output**:
```
π Adjusted Sprint Plan
βββββββββββββββββββββββββββββββββββββββββββββββββββ
**Previous Sprint**: 40 points planned, 25 completed (62.5%)
**Adjusted Capacity**: 28 points (70% of 40)
**Buffer**: 6 points (20%)
**Available**: 22 points
This reflects actual team velocity from last sprint.
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Selected Stories: 5 stories, 22 points
[Stories list follows]
More conservative plan based on demonstrated velocity.
```
## Error Handling
### No Ready Stories
```
β οΈ No stories ready for sprint
Total backlog: 18 stories
Blocked stories: 18 stories (all have blocking dependencies)
All stories are waiting on:
- US-0001 (blocks 8 stories)
- US-0010 (blocks 4 stories)
- US-0014 (blocks 3 stories)
Recommendation: Complete blocking stories first, then re-plan sprint
Would you like to:
1. Include blocked stories anyway (risky)
2. Review blocking story status
3. Cancel sprint planning
```
### Insufficient Capacity
```
β οΈ Insufficient capacity for any stories
Sprint capacity: 10 points
Buffer: 2 points
Available: 8 points
Smallest ready story: US-0010 (8 points)
This sprint has barely enough capacity for one story.
Recommendations:
1. Increase sprint capacity (extend sprint or add team members)
2. Split large stories into smaller ones
3. Plan shorter iteration with specific goals
Adjust capacity? (yes/no)
```
### Over-Allocated
```
β οΈ Sprint over-allocated
Capacity: 40 points
In-progress stories: 45 points (over by 5)
Stories already in progress exceed sprint capacity!
This usually means:
- Stories carried over from previous sprint
- Stories started outside sprint process
- Capacity was reduced mid-sprint
Recommendations:
1. Increase capacity to match current work (45 points)
2. Move some in-progress stories back to backlog
3. Complete high-priority in-progress work first
What would you like to do?
```
## Integration with Scripts
### Story Status Updates
```bash
# Update story status
# (Done via Edit tool on YAML files)
# Regenerate markdown
python3 .claude/skills/user-story-generator/scripts/generate_story_from_yaml.py --story-id US-0001
```
### GitHub Milestone Sync
```bash
# Create milestone
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone create \
--title "Sprint 2025-01" \
--due "2025-01-17" \
--stories US-0001,US-0014,US-0007
# Update milestone
python3 .claude/skills/sprint-planner/scripts/github_sync.py milestone update \
--title "Sprint 2025-01" \
--add-stories US-0022
```
## Configuration
Uses settings from `.claude/skills/user-story-generator/config/automation-config.yaml`:
```yaml
sprint:
default_capacity: 40
default_duration: 2 # weeks
buffer_percentage: 20
velocity_calculation: "average_last_3"
github:
enabled: true
milestones:
create_on_sprint_start: true
sync_stories: true
close_on_sprint_end: false
```
## Best Practices
### Capacity Management
- Leave 15-25% buffer for unknowns
- Adjust capacity based on actual velocity
- Account for holidays and PTO
- Consider in-progress work
### Story Selection
- Prioritize stories that unblock others
- Mix priorities for balanced sprint
- Include quick wins for morale
- Group related stories
### Sprint Health
- **Healthy**: 70-85% capacity utilization
- **Under-loaded**: <70% (add more stories)
- **Over-loaded**: >85% (reduce scope)
### Timing
- Plan sprints on Friday for Monday start
- Allow time for team review and assignments
- Lock sprint plan once started (no mid-sprint changes)
## Remember
- **Realistic**: Use actual team velocity, not wishful thinking
- **Flexible**: Allow modifications before finalizing
- **Dependencies**: Never include blocked stories
- **Balance**: Mix priorities, sizes, and complexity
- **Buffer**: Always reserve capacity for unknowns
- **Communication**: Share plan with team before starting
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.