| name | sprint-executor |
| description | Execute approved sprint plans with test-driven development, continuous linting, progress tracking, and pause points. Supports parallel milestone execution via Task sub-agents. Use when user says "execute sprint", "start sprint", "begin implementation", "run the sprint plan", or wants to implement an approved sprint plan. Also use when resuming a paused sprint across sessions. |
Sprint Executor
Execute an approved sprint plan with continuous progress tracking, testing, and documentation updates. Supports parallel execution of independent milestones using Task sub-agents.
Quick Start
Sequential execution (default):
Parallel execution (for independent milestones):
When to Use This Skill
- User says "execute sprint", "start sprint", "begin implementation"
- User has an approved sprint plan ready to implement
- User wants to resume a paused sprint from a previous session
Choose parallel when: 3+ milestones with independent work, different files
Choose sequential when: milestones have strict dependencies, shared files, or sprint is small
Core Principles
- Test-Driven: All code must pass tests before moving to next milestone
- Lint-Clean: All code must pass linting and typecheck before proceeding
- Document as You Go: Update sprint plan progressively
- Pause for Breath: Stop at natural breakpoints for user review
- Track Everything: Use TodoWrite for visible progress
- Parallelize When Possible: Independent milestones run as concurrent Task sub-agents
Multi-Session Continuity
Sprint execution can span multiple Claude Code sessions using JSON progress files.
- Session Startup: Every continuing session starts with
scripts/session_start.sh
- Progress Tracking: JSON file at
.claude/state/sprints/sprint_<id>.json
- Pause and Resume: Status saved; next session picks up where you left off
- Constrained Modification: Only
passes, completed, notes, actual_loc change during execution
Available Scripts
scripts/session_start.sh <sprint_id>
Resume sprint across sessions. Run ALWAYS at session start for continuing sprints.
scripts/validate_prerequisites.sh
Pre-flight checks before starting sprint execution.
Checks: git status, branch, frontend tests + lint, backend tests.
scripts/milestone_checkpoint.sh <milestone_name> [sprint_id]
Post-milestone quality gate. Run after completing each milestone.
Checks: npm run quality:check:fast, cd backend && pytest, git diff, file sizes.
scripts/finalize_sprint.sh <sprint_id>
Complete sprint: move design doc to implemented, update JSON status.
Execution Flow
Phase 0: Session Resumption (continuing sprints)
.claude/skills/sprint-executor/scripts/session_start.sh <sprint-id>
Prints "Here's where we left off" summary. Then skip to Phase 2.
Phase 1: Initialize Sprint (first session only)
- Read Sprint Plan - Parse markdown + load JSON progress file
- Validate Prerequisites - Run
scripts/validate_prerequisites.sh
- Create Todo List - Use TodoWrite to track all milestones
- Initial Status - Mark sprint as in_progress in JSON
Phase 2: Choose Execution Mode
Sequential (Phase 2A): Milestones form a dependency chain
Parallel (Phase 2B): 2+ milestones are independent
Phase 2A: Sequential Execution
For each milestone:
- Pre-Implementation - Mark milestone in_progress in TodoWrite
- Write Failing Tests First - TDD: write tests that capture expected behavior, verify they fail
- Implement - Write code to make tests pass
- Verify Quality - Run
scripts/milestone_checkpoint.sh <name>
npm run quality:check:fast
cd backend && pytest tests/ -m "not slow" -v --tb=short
- Update Sprint JSON - Set
passes: true/false, completed timestamp, notes
- Commit - Git commit with milestone reference
- Pause for Breath - Show progress, ask user if ready to continue
Phase 2B: Parallel Milestone Execution
Step 1: Dependency Analysis
Build dependency graph from sprint JSON. Group into parallelizable waves:
Wave 1: [M1-frontend, M2-backend] <- no dependencies, different files
Wave 2: [M3-fullstack] <- depends on Wave 1
Step 2: Spawn Sub-Agents
For each wave, spawn one Task sub-agent per milestone in a single message:
Each sub-agent:
- Works on its own branch (
sprint/<milestone-slug>)
- Writes failing tests FIRST
- Implements until tests pass
- Runs quality checks
- Commits with milestone reference
- Reports back with MILESTONE_REPORT
Step 3: Collect Results
Parse sub-agent reports. If any failed, do NOT proceed to next wave.
Step 4: Repeat for Each Wave
Waves execute sequentially; milestones within a wave run in parallel.
Phase 3: Integration (after parallel execution)
- Create integration branch from dev
- Merge milestone branches in dependency order
- Run full test suite:
npm run docker:check
cd backend && pytest tests/ -v
- Resolve conflicts if any, preserving both milestones' functionality
- Update sprint JSON with final status
Phase 4: Finalize Sprint
- Final Commit with sprint summary
- Run finalize script:
.claude/skills/sprint-executor/scripts/finalize_sprint.sh <sprint-id>
- Summary Report - Compare planned vs actual (LOC, time)
Phase 5: Hand Off to Sprint Evaluator
After finalizing, invoke the sprint-evaluator skill for independent quality assessment.
Quality Commands Reference
npm run quality:check:fast
npm run docker:check
cd backend && source .venv/bin/activate
pytest tests/ -m "not slow" -v --tb=short
pytest tests/ -v --tb=short
npm run lint
npx tsc --noEmit
npm run test:run
npm run build
File Size Guidelines
Soft cap: 800 lines for any file. Past that, consider splitting by responsibility. No hard per-type limits.
Error Handling
- Tests fail: Show output, fix before proceeding. Never skip.
- Lint/typecheck fail: Show output, fix immediately.
- Implementation unclear: Ask user for clarification.
- Velocity much lower than expected: Pause after 2-3 milestones, reassess scope.
- Sub-agent fails (parallel): Report failure, options: retry, fix manually, or skip.
- Merge conflicts (parallel): Resolve preserving both milestones, run tests after.
Prerequisites
- Working directory clean (or only sprint-related changes)
- Current branch
dev (or sprint feature branch)
- All existing tests pass
- Sprint plan approved and documented
- JSON progress file created and populated by sprint-planner
Notes
- This skill is long-running - expect it to take hours or days
- Pause points are built in at each milestone
- Sprint plan is source of truth, but reality may require adjustments
- Git commits create a reversible audit trail
- Test-driven development is non-negotiable
- Multi-session continuity via JSON state tracking