| name | AILANG Sprint Executor |
| description | Execute approved sprint plans with test-driven development, continuous linting, progress tracking, and pause points. Use when user says "execute sprint", "start sprint", or wants to implement an approved sprint plan. |
AILANG Sprint Executor
Execute an approved sprint plan with continuous progress tracking, testing, and documentation updates.
Quick Start
Most common usage:
# User says: "Execute the sprint plan in design_docs/20251019/M-S1.md"
# This skill will:
# 1. Validate prerequisites (tests pass, linting clean)
# 2. Create TodoWrite tasks for all milestones
# 3. Execute each milestone with test-driven development
# 4. Run checkpoint after each milestone (tests + lint)
# 5. Update CHANGELOG and sprint plan progressively
# 6. Pause after each milestone for user review
When to Use This Skill
Invoke this skill when:
- User says "execute sprint", "start sprint", "begin implementation"
- User has an approved sprint plan ready to implement
- User wants guided execution with built-in quality checks
- User needs progress tracking and pause points
Core Principles
- Test-Driven: All code must pass tests before moving to next milestone
- Lint-Clean: All code must pass linting before moving to next milestone
- Document as You Go: Update CHANGELOG.md and sprint plan progressively
- Pause for Breath: Stop at natural breakpoints for review and approval
- Track Everything: Use TodoWrite to maintain visible progress
- DX-First: Improve AILANG development experience as we go - make it easier next time
Multi-Session Continuity (NEW)
Sprint execution can now span multiple Claude Code sessions!
Based on Anthropic's long-running agent patterns, sprint-executor implements the "Coding Agent" pattern:
Session Startup Routine: Every session starts with
session_start.sh- Checks working directory
- Reads JSON progress file (
.ailang/state/sprints/sprint_<id>.json) - Reviews recent git commits
- Validates tests pass
- Prints "Here's where we left off" summary
Structured Progress Tracking: JSON file tracks state
- Features with
passes: true/false/null(follows "constrained modification" pattern) - Velocity metrics updated automatically
- Clear checkpoint messages
- Session timestamps
- Features with
Pause and Resume: Work can be interrupted at any time
- Status saved to JSON:
not_started,in_progress,paused,completed - Next session picks up exactly where you left off
- No loss of context or progress
- Status saved to JSON:
For JSON schema details, see `resources/json_progress_schema.md`
Available Scripts
scripts/session_start.sh <sprint_id> NEW
Resume sprint execution across multiple sessions.
When to use: ALWAYS at the start of EVERY session continuing a sprint.
What it does:
- Syncs GitHub issues via
ailang messages import-github - Loads sprint JSON progress file
- Shows linked GitHub issues with titles from local messages
- Displays feature progress summary
- Shows velocity metrics
- Runs tests to verify clean state
- Prints "Here's where we left off" summary
scripts/validate_prerequisites.sh
Validate prerequisites before starting sprint execution.
What it checks:
- Syncs GitHub issues via
ailang messages import-github - Working directory status (clean/uncommitted changes)
- Current branch (dev or main)
- Test suite passes
- Linting passes
- Shows unread messages (potential issues/feedback)
scripts/validate_sprint_json.sh <sprint_id> NEW
REQUIRED before starting any sprint. Validates that sprint JSON has real milestones (not placeholders).
What it checks:
- No placeholder milestone IDs (
MILESTONE_ID) - No placeholder acceptance criteria (
Criterion 1/2) - At least 2 milestones defined
- All milestones have custom values (not defaults)
- Dependencies reference valid milestone IDs
Exit codes:
0- Valid JSON, ready for execution1- Invalid JSON or placeholders detected (sprint-planner must fix)
scripts/milestone_checkpoint.sh <milestone_name>
Run checkpoint after completing a milestone (tests, linting, git diff). Now includes JSON update reminder! Shows current milestone statuses and prompts you to update the sprint JSON.
scripts/acceptance_test.sh <milestone_id> <test_type> NEW
Run end-to-end acceptance tests (parser, builtin, examples, REPL, e2e).
scripts/finalize_sprint.sh <sprint_id> [version] NEW
Finalize a completed sprint by moving design docs and updating status.
What it does:
- Moves design doc from
planned/toimplemented/<version>/ - Moves sprint plan markdown to
implemented/<version>/ - Updates design doc status to "IMPLEMENTED"
- Updates sprint JSON status to "completed"
- Updates file paths in sprint JSON
When to use: After all milestones pass and sprint is complete.
Example:
.claude/skills/sprint-executor/scripts/finalize_sprint.sh M-BUG-RECORD-UPDATE-INFERENCE v0_4_9
Execution Flow
Phase 0: Session Resumption (for continuing sprints)
If this is NOT the first session for this sprint:
# ALWAYS run session_start.sh first!
.claude/skills/sprint-executor/scripts/session_start.sh <sprint-id>
This prints "Here's where we left off" summary. Then skip to Phase 2 to continue with the next milestone.
Phase 1: Initialize Sprint (first session only)
- Validate Sprint JSON - Run
validate_sprint_json.sh <sprint-id>REQUIRED FIRST- If validation fails, STOP and notify user that sprint-planner must fix the JSON
- Do NOT proceed with placeholder milestones
- Read Sprint Plan - Parse markdown + load JSON progress file (
.ailang/state/sprints/sprint_<id>.json) - Validate Prerequisites - Run
validate_prerequisites.sh(tests, linting, git status) - Create Todo List - Use TodoWrite to track all milestones
- Initial Status Update - Mark sprint as "🔄 In Progress"
- Initial DX Review - Consider tools/helpers that would make sprint easier (see resources/dx_improvement_patterns.md)
Phase 2: Execute Milestones
For each milestone:
- Pre-Implementation - Mark milestone as
in_progressin TodoWrite - Implement - Write code with DX awareness (helper functions, debug flags, better errors)
- Write Tests - TDD recommended for complex logic, comprehensive coverage required
- Verify Quality - Run
milestone_checkpoint.sh <milestone-name>(tests + lint must pass) - Update Documentation:
- CHANGELOG.md (what, LOC, key decisions)
- Example files (REQUIRED for new features)
- Sprint plan markdown (mark milestone as ✅)
- Update Sprint JSON ⚠️ CRITICAL - The checkpoint script reminds you!
- Update
passes: true/falsein.ailang/state/sprints/sprint_<id>.json - Set
completed: "<ISO timestamp>" - Add
notes: "<summary of what was done>"
- Update
- DX Reflection - Identify and implement quick wins (<15 min), defer larger improvements
- Pause for Breath - Show progress, ask user if ready to continue
Quick tips:
- Use parser test helpers from
internal/parser/test_helpers.go - Use
DEBUG_PARSER=1for token flow tracing - Use
make doc PKG=<package>for API discovery - See resources/parser_patterns.md for parser/pattern matching
- See resources/codegen_patterns.md for Go code generation (builtins, expressions)
- See resources/api_patterns.md for common API patterns
- See resources/dx_improvement_patterns.md for DX opportunities
Phase 3: Finalize Sprint
- Final Testing - Run
make test,make lint,make test-coverage-badge - Documentation Review - Verify CHANGELOG.md, example files, sprint plan complete
- Final Commit - Git commit with sprint summary (milestones, LOC, velocity)
- Move Design Docs - Run
finalize_sprint.sh <sprint-id> [version]to:- Move design docs from
planned/toimplemented/<version>/ - Update design doc status to IMPLEMENTED
- Update sprint JSON status to "completed"
- Update file paths in sprint JSON
- Move design docs from
- Summary Report - Compare planned vs actual (LOC, time, velocity)
- DX Impact Summary - Document improvements made during sprint
Key Features
Continuous Testing
- Run
make testafter every file change - Never proceed if tests fail
- Track test count increase
Continuous Linting
- Run
make lintafter implementation - Fix linting issues immediately
- Use
make fmtfor formatting
Progress Tracking
- TodoWrite shows real-time progress
- Sprint plan updated at each milestone
- CHANGELOG.md grows incrementally
- JSON file tracks structured state (NEW)
- Git commits create audit trail
GitHub Issue Integration (NEW)
Uses ailang messages for GitHub sync and issue tracking!
Automatic sync:
session_start.shandvalidate_prerequisites.shrunailang messages import-githubfirst- Linked issues shown with titles from local message database
If github_issues is set in sprint JSON:
validate_sprint_json.shshows linked issuessession_start.shdisplays issue titles from messagesmilestone_checkpoint.shreminds you to includeRefs #...in commitsfinalize_sprint.shsuggests commit message with issue references
Commit message format:
# During development - use "refs" to LINK without closing
git commit -m "Complete M1: Parser foundation, refs #17"
# Final sprint commit - use "Fixes" to AUTO-CLOSE issues on merge
git commit -m "Finalize sprint M-BUG-FIX
Fixes #17
Fixes #42"
Important: "refs" vs "Fixes"
refs #17- Links commit to issue (NO auto-close)Fixes #17,Closes #17,Resolves #17- AUTO-CLOSES issue when merged
Workflow:
- Sprint JSON has
github_issues: [17, 42](set by sprint-planner, deduplicated) - During development: Use
refs #17to link commits without closing - Final commit: Use
Fixes #17to auto-close issues on merge - No duplicates:
ailang messages import-githubchecks existing issues before importing
Pause Points
- After each milestone completion
- When tests or linting fail (fix before continuing)
- When user requests "pause"
- When encountering unexpected issues
Error Handling
- If tests fail: Show output, ask how to fix, don't proceed
- If linting fails: Show output, ask how to fix, don't proceed
- If implementation unclear: Ask for clarification, don't guess
- If milestone takes much longer than estimated: Pause and reassess
Resources
Multi-Session State
- JSON Schema: `resources/json_progress_schema.md` - Sprint progress format
- Session Startup: Use
session_start.shALWAYS for continuing sprints
Development Tools
- Parser & Patterns: `resources/parser_patterns.md` - Parser development + pattern matching pipeline
- Codegen Patterns: `resources/codegen_patterns.md` - Go code generation for new features/builtins
- API Patterns: `resources/api_patterns.md` - Common constructor signatures and API gotchas
- Developer Tools: `resources/developer_tools.md` - Make targets, ailang commands, workflows
- DX Improvements: `resources/dx_improvement_patterns.md` - Identifying and implementing DX wins
- DX Quick Reference: `resources/dx_quick_reference.md` - ROI calculator, decision matrix
- Milestone Checklist: `resources/milestone_checklist.md` - Step-by-step per milestone
External Documentation
- Parser Guide: docs/guides/parser_development.md
- Website: https://ailang.sunholo.com/
Progressive Disclosure
This skill loads information progressively:
- Always loaded: This SKILL.md file (YAML frontmatter + execution workflow) - ~250 lines
- Execute as needed: Scripts in
scripts/directory (validation, checkpoints, testing) - Load on demand: Resources in
resources/directory (detailed guides, patterns, references)
Prerequisites
- Working directory clean (or only sprint-related changes)
- Current branch
dev(or specified in sprint plan) - All existing tests pass
- All existing linting passes
- Sprint plan approved and documented
- JSON progress file created AND POPULATED by sprint-planner (not just template!)
- JSON must pass validation:
scripts/validate_sprint_json.sh <sprint-id>
Failure Recovery
If Tests Fail During Sprint
- Show test failure output
- Ask user: "Tests failing. Options: (a) fix now, (b) revert change, (c) pause sprint"
- Don't proceed until tests pass
If Linting Fails During Sprint
- Show linting output
- Try auto-fix:
make fmt - If still failing, ask user for guidance
- Don't proceed until linting passes
If Implementation Blocked
- Show what's blocking progress
- Ask user for guidance or clarification
- Consider simplifying the approach
- Document the blocker in sprint plan
If Velocity Much Lower Than Expected
- Pause and reassess after 2-3 milestones
- Calculate actual velocity
- Propose: (a) continue as-is, (b) reduce scope, (c) extend timeline
- Update sprint plan with revised estimates
Notes
- This skill is long-running - expect it to take hours or days
- Pause points are built in - you're not locked into finishing
- Sprint plan is the source of truth - but reality may require adjustments
- Git commits create a reversible audit trail
- TodoWrite provides real-time visibility into progress
- Test-driven development is non-negotiable - tests must pass
- Multi-session continuity - Sprint can span multiple Claude Code sessions (NEW)
- JSON state tracking - Structured progress in
.ailang/state/sprints/sprint_<id>.json(NEW)