# Sprint Plan

> ---

- Skill: `tranhieutt/sprint-plan` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tranhieutt/sprint-plan`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tranhieutt/sprint-plan/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tranhieutt (https://skillmd.com/u/tranhieutt)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tranhieutt/sprint-plan

---

﻿---
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:

1. **Read the current milestone** from `production/milestones/`.

2. **Read the previous sprint** (if any) from `production/sprints/` to
   understand velocity and carryover. Use `Glob("production/sprints/*.md")`
   then read the file with the highest sprint number.

3. **Scan design documents** in `design/` for features tagged as ready
   for implementation.

4. **Check the risk register** at `production/risk-register/` if it exists.

For `new`:

1. **Determine sprint number** — count existing files in `production/sprints/`
   and increment by 1. Sprint N = number of existing sprint files + 1.

2. **Generate a sprint plan** following this format, then **save to
   `production/sprints/sprint-{N}.md`** (confirm path with user before writing):

```markdown
# 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`:

1. **Identify the current sprint file** — find the latest file in
   `production/sprints/` (highest sprint number). Read it.

2. **Ask the user** which task(s) to update: task ID, new status
   (`done` / `in-progress` / `blocked`), and any notes or blocker details.

3. **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 `% Done` estimates for in-progress tasks

4. **Append a brief update log** at the bottom of the file:

   ```markdown
   ## Update Log
   - [YYYY-MM-DD]: [Summary of changes made]
   ```

5. **Confirm** the edit to the user: "Sprint {N} updated — {X} task(s) changed."

For `status`:

1. **Generate a status report**:

```markdown
# 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:

- `producer` agent for capacity planning, risk assessment, and cross-department coordination
- `product-manager` agent for feature prioritization and design readiness assessment

## Protocol

- **Question**: Reads mode from argument (`new` / `update` / `status`); `update` mode asks which tasks changed
- **Options**: Skip — mode drives execution path
- **Decision**: `update` mode — 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 to `production/sprints/sprint-[N].md` with Must Have / Should Have / Nice to Have tasks, estimates, and risks
- **`update`**: In-place edit to current sprint file + update log entry appended
- **`status`**: Status report with progress %, completed/in-progress/blocked tables, and burndown assessment
- **Next action**: One sentence on what the team should do immediately

