Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates a new sprint plan or updates an existing one based on the current milestone, completed work, and available capacity. Pulls context from production documents and design backlogs.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 589% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 140% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 79% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 412% | 0% |
Extract the mode argument (new, update, or status) and resolve the review mode (once, store for all gate spawns this run):
--review [full|lean|solo] was passed → use thatproduction/review-mode.txt → use that valueleanSee .claude/docs/director-gates.md for the full check pattern.
Review mode check (before gates run):
production/review-mode.txt if it exists. Use that mode.new sprint: use AskUserQuestion:[A] full — spawn all director and lead gates[B] lean — skip non-phase-gate director reviews (recommended for most sprints)[C] solo — skip all gate spawningproduction/review-mode.txt with the chosen mode. Say: "Review mode set to mode] and saved to production/review-mode.txt."new sprint (e.g., updating an existing sprint): default to lean silently.production/milestones/.production/sprints/ tounderstand velocity and carryover.
design/gdd/ for features tagged as readyfor implementation.
production/risk-register/.For new:
Generate a sprint plan following this format and present it to the user. Do NOT ask to write yet — the producer feasibility gate (Phase 4) runs first and may require revisions before the file is written.
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 - [ ] QA plan exists (`production/qa/qa-plan-sprint-[N].md`) - [ ] All Logic/Integration stories have passing unit/integration tests - [ ] Smoke check passed (`/smoke-check sprint`) - [ ] QA sign-off report: APPROVED or APPROVED WITH CONDITIONS (`/team-qa sprint`) - [ ] No S1 or S2 bugs in delivered features - [ ] Design documents updated for any deviations - [ ] Code reviewed and merged
For update:
Update an existing sprint plan:
production/sprints/.production/sprint-status.yaml.AskUserQuestion to gather changes.new mode).Note: update mode does not reset story statuses. Stories already marked in-progress or done keep their status. Only backlog and ready-for-dev stories can be removed or reprioritized freely.
For status:
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]
After generating a new sprint plan, also prepare the production/sprint-status.yaml content. This is the machine-readable source of truth for story status — read by /sprint-status, /story-done, and /help without markdown parsing.
Do not write the yaml yet — hold it in context. The producer feasibility gate (Phase 4) may revise the story list. Both files will be written together after Phase 4 in a single write approval.
Format:
yaml# Auto-generated by /sprint-plan. Updated by /story-done and /dev-story. # DO NOT edit manually — use /story-done to update story status. # # Status value mapping (yaml ↔ story file Status field): # backlog ↔ Not Started # ready-for-dev ↔ Ready # in-progress ↔ In Progress # review ↔ In Review # done ↔ Complete # blocked ↔ Blocked sprint: [N] goal: "[sprint goal]" start: "[YYYY-MM-DD]" end: "[YYYY-MM-DD]" generated: "[YYYY-MM-DD]" updated: "[YYYY-MM-DD]" stories: - id: "[epic-story, e.g. 1-1]" name: "[story name]" file: "[production/stories/path.md]" priority: must-have # must-have | should-have | nice-to-have status: ready-for-dev # backlog | ready-for-dev | in-progress | review | done | blocked owner: "" estimate_days: 0 blocker: "" completed: ""
Initialize each story from the sprint plan's task tables:
priority: must-have, status: ready-for-devpriority: should-have, status: backlogpriority: nice-to-have, status: backlogFor update: read the existing sprint-status.yaml, carry over statuses for stories that haven't changed, add new stories, remove dropped ones.
Review mode check — apply before spawning PR-SPRINT:
solo → skip. Note: "PR-SPRINT skipped — Solo mode." Proceed to Phase 5 (QA plan gate).lean → skip (not a PHASE-GATE). Note: "PR-SPRINT skipped — Lean mode." Proceed to Phase 5 (QA plan gate).full → spawn as normal.Before finalising the sprint plan, spawn producer via Task using gate PR-SPRINT (.claude/docs/director-gates.md).
Pass: proposed story list (titles, estimates, dependencies), total team capacity in hours/days, any carryover from the previous sprint, milestone constraints and deadline.
Present the producer's assessment.
If UNREALISTIC: revise the story selection (defer stories to Should Have or Nice to Have) and re-present the updated plan before asking for write approval.
If CONCERNS, use AskUserQuestion:
[A] Proceed as planned — I accept the risk[B] Adjust scope — defer some Should Have stories[C] Extend the sprint timelineIf A]: proceed to write approval. If B]: revise the story list, re-present the updated plan, then proceed to write approval. If C]: adjust sprint dates and capacity, re-present the updated plan, then proceed to write approval.
After handling the producer's verdict, ask: "May I write the sprint plan to production/sprints/sprint-[N].md and production/sprint-status.yaml?" If yes, write both files (creating directories as needed). Verdict: COMPLETE — sprint plan and status file created. If no: Verdict: BLOCKED — user declined write.
After writing, add:
> Scope check: If this sprint includes stories added beyond the original epic scope, run /scope-check [epic] to detect scope creep before implementation begins.
Before closing the sprint plan, check whether a QA plan exists for this sprint.
Use Glob to look for production/qa/qa-plan-sprint-[N].md or any file in production/qa/ referencing this sprint number.
If a QA plan is found: note it in the sprint plan output — "QA Plan: [path]" — and proceed.
If no QA plan exists: do not silently proceed. Surface this explicitly:
> "This sprint has no QA plan. A sprint plan without a QA plan means test requirements are undefined — developers won't know what 'done' looks like from a QA perspective, and the sprint cannot pass the Production → Polish gate without one. > > Run /qa-plan sprint now, before starting any implementation. It takes one session and produces the test case requirements each story needs."
Use AskUserQuestion:
[A] Run /qa-plan sprint now — I'll do that before starting implementation (Recommended)[B] Skip for now — I understand QA sign-off will be blocked at the Production → Polish gateIf A]: close with "Sprint plan written. Run /qa-plan sprint next — then begin implementation." If B]: add a warning block to the sprint plan document:
markdown> ⚠️ **No QA Plan**: This sprint was started without a QA plan. Run `/qa-plan sprint` > before the last story is implemented. The Production → Polish gate requires a QA > sign-off report, which requires a QA plan.
After the sprint plan is written and QA plan status is resolved:
/qa-plan sprint — required before implementation begins — defines test cases per story so developers implement against QA specs, not a blank slate/story-readiness [story-file] — validate a story is ready before starting it/dev-story [story-file] — begin implementing the first story/sprint-status — check progress mid-sprint/scope-check [epic] — verify no scope creep before implementation beginsReview mode configuration: All director gates (producer feasibility, QA review, code review) respect the project review mode. The review mode is set in Phase 0 when the file does not exist (for new sprints), or can be overridden per-run with --review full|lean|solo as an argument. The file production/review-mode.txt contains one of:
lean — skip automated director gates (default if file is absent — fastest for solo dev)full — run all director gates as spawned sub-agentssolo — skip all gates unconditionally (single-developer, no review)This file is read by /sprint-plan, /story-readiness, /story-done, and other skills at startup.
Other measured skills in the registry, with their headline benchmark lift.