name: sprint-plan type: workflow description: "Generates or updates sprint plans with task breakdowns, capacity estimates, dependencies, and risk flags based on milestone goals and past velocity. Use when starting a new sprint, updating sprint progress, or checking sprint status." argument-hint: "[new|update|status]" user-invocable: true allowed-tools: Read, Glob, Grep, Write, Edit context: | !ls production/sprints/ 2>/dev/null effort: 3 when_to_use: "Use when starting a new sprint, updating sprint progress mid-sprint, or checking current sprint status against milestone goals."
When this skill is invoked:
-
Read the current milestone from
production/milestones/. -
Read the previous sprint (if any) from
production/sprints/to understand velocity and carryover. UseGlob("production/sprints/*.md")then read the file with the highest sprint number. -
Scan design documents in
design/for features tagged as ready for implementation. -
Check the risk register at
production/risk-register/if it exists.
For new:
-
Determine sprint number — count existing files in
production/sprints/and increment by 1. Sprint N = number of existing sprint files + 1. -
Generate a sprint plan following this format, then save to
production/sprints/sprint-{N}.md(confirm path with user before writing):
# Sprint [N] -- [Start Date] to [End Date]
## Sprint Goal
[One sentence describing what this sprint achieves toward the milestone]
## Capacity
- Total days: [X]
- Buffer (20%): [Y days reserved for unplanned work]
- Available: [Z days]
## Tasks
### Must Have (Critical Path)
| ID | Task | Agent/Owner | Est. Days | Dependencies | Acceptance Criteria |
|----|------|-------------|-----------|-------------|-------------------|
### Should Have
| ID | Task | Agent/Owner | Est. Days | Dependencies | Acceptance Criteria |
|----|------|-------------|-----------|-------------|-------------------|
### Nice to Have
| ID | Task | Agent/Owner | Est. Days | Dependencies | Acceptance Criteria |
|----|------|-------------|-----------|-------------|-------------------|
## Carryover from Previous Sprint
| Task | Reason | New Estimate |
|------|--------|-------------|
## Risks
| Risk | Probability | Impact | Mitigation |
|------|------------|--------|------------|
## Dependencies on External Factors
- [List any external dependencies]
## Definition of Done for this Sprint
- [ ] All Must Have tasks completed
- [ ] All tasks pass acceptance criteria
- [ ] No S1 or S2 bugs in delivered features
- [ ] Design documents updated for any deviations
- [ ] Code reviewed and merged
For update:
-
Identify the current sprint file — find the latest file in
production/sprints/(highest sprint number). Read it. -
Ask the user which task(s) to update: task ID, new status (
done/in-progress/blocked), and any notes or blocker details. -
Edit the sprint file in place using the Edit tool:
- Move completed tasks to the "Completed" section if tracking status inline
- Add blocker info to the Blocked table
- Update
% Doneestimates for in-progress tasks
-
Append a brief update log at the bottom of the file:
## Update Log - [YYYY-MM-DD]: [Summary of changes made] -
Confirm the edit to the user: "Sprint {N} updated — {X} task(s) changed."
For status:
- Generate a status report:
# Sprint [N] Status -- [Date]
## Progress: [X/Y tasks complete] ([Z%])
### Completed
| Task | Completed By | Notes |
|------|-------------|-------|
### In Progress
| Task | Owner | % Done | Blockers |
|------|-------|--------|----------|
### Not Started
| Task | Owner | At Risk? | Notes |
|------|-------|----------|-------|
### Blocked
| Task | Blocker | Owner of Blocker | ETA |
|------|---------|-----------------|-----|
## Burndown Assessment
[On track / Behind / Ahead]
[If behind: What is being cut or deferred]
## Emerging Risks
- [Any new risks identified this sprint]
Agent Consultation
For comprehensive sprint planning, consider consulting:
produceragent for capacity planning, risk assessment, and cross-department coordinationproduct-manageragent for feature prioritization and design readiness assessment
Protocol
- Question: Reads mode from argument (
new/update/status);updatemode asks which tasks changed - Options: Skip — mode drives execution path
- Decision:
updatemode — user specifies task IDs, new status, and blocker details - Draft: Plan or status report shown in conversation before writing
- Approval: "May I write to
production/sprints/sprint-[N].md?"
Output
Deliver exactly:
new: Sprint file saved toproduction/sprints/sprint-[N].mdwith Must Have / Should Have / Nice to Have tasks, estimates, and risksupdate: In-place edit to current sprint file + update log entry appendedstatus: Status report with progress %, completed/in-progress/blocked tables, and burndown assessment- Next action: One sentence on what the team should do immediately