Analyze design docs, calculate velocity from recent work, and create realistic sprint plans with day-by-day breakdowns. Use when user asks to "plan sprint", "create sprint plan", or wants to estimate development timeline.
Create comprehensive, data-driven sprint plans by analyzing design documentation, current implementation status, and recent velocity.
Use the data above first. Only re-run these commands manually if the injected context is empty or you need to refresh after making changes.
Most common usage:
# User says: "Plan the next sprint based on v0.4.0 roadmap"
# This skill will:
# 1. Read design doc (design_docs/planned/v0.4-roadmap.md)
# 2. Analyze CHANGELOG for recent velocity
# 3. Review current implementation status
# 4. Propose realistic milestones with LOC estimates
# 5. Create day-by-day task breakdown
Invoke this skill when:
When invoked by the AILANG Coordinator (detected by GitHub issue reference in the prompt), you MUST output these markers at the end of your response:
SPRINT_PLAN_PATH: design_docs/planned/vX_Y/sprint-plan-name.md
SPRINT_JSON_PATH: .ailang/state/sprints/sprint_ID.json
Why? The coordinator uses these markers to:
Example completion:
## Sprint Plan Created
I've created the sprint plan with 3 milestones...
**SPRINT_PLAN_PATH**: `design_docs/planned/v0_6_3/m-feature-sprint-plan.md`
**SPRINT_JSON_PATH**: `.ailang/state/sprints/sprint_M-FEATURE.json`
When planning sprints that involve adding error messages, help text, or documentation links:
Website: https://ailang.sunholo.com/
Documentation Source: The website documentation lives in this repo at docs/
docs/docs/ (guides, reference, etc.)docs/static/docs/docusaurus.config.jsCommon Documentation Paths:
/docs/reference/language-syntax/docs/guides/module_execution/docs/guides/getting-started/docs/guides/getting-started#repl/docs/reference/implementation-status/docs/guides/benchmarking/docs/guides/evaluation/READMEFull URL Example:
https://ailang.sunholo.com/docs/reference/language-syntax
Best Practices:
docs/docs/ to verify the file exists locallyls docs/docs/reference/ or ls docs/docs/guides/ to find available pagessprint-planner acts as the "Initializer" agent in the two-phase pattern from Anthropic's long-running agent article:
Initializer (sprint-planner): Creates infrastructure for execution
Coding Agent (sprint-executor): Works incrementally across sessions
passes field as milestones completeThis separation enables multi-session continuity - sprints can span days or weeks with Claude resuming work from where it left off.
scripts/analyze_velocity.sh [days]Analyze recent development velocity from CHANGELOG and git commits.
Usage:
# Analyze last 7 days (default)
.claude/skills/sprint-planner/scripts/analyze_velocity.sh
# Analyze last 14 days
.claude/skills/sprint-planner/scripts/analyze_velocity.sh 14
Output:
Analyzing velocity for last 7 days...
=== Recent CHANGELOG Entries ===
Total: ~1,200 LOC
Total: ~800 LOC
=== Recent Commits (last 7 days) ===
abc1234 Complete M-DX1.5: Migrate all builtins
def5678 Add Type Builder DSL
=== Files Changed (last 7 days) ===
15 files changed, 1200 insertions(+), 300 deletions(-)
=== Velocity Summary ===
Based on CHANGELOG entries and git history, estimate:
- Average LOC/day from recent milestones
- Typical milestone duration
- Current development pace
scripts/create_sprint_json.sh <sprint_id> <sprint_plan_md> [design_doc_md]NEW: Create structured JSON progress file for multi-session sprint execution.
Usage:
# Create JSON progress file from sprint plan
.claude/skills/sprint-planner/scripts/create_sprint_json.sh \
"M-S1" \
"design_docs/planned/v0_4_0/m-s1-sprint-plan.md" \
"design_docs/planned/v0_4_0/m-s1-parser-improvements.md"
What it does:
.ailang/state/sprints/sprint_<id>.json with feature listpasses field changes)Output:
.ailang/state/sprints/sprint_<id>.jsonFile Organization:
Sprint JSON files are stored in .ailang/state/sprints/ to keep the state directory organized.
Integration with sprint-executor: After creating the JSON file, sprint-executor can:
CRITICAL: Always end by handing off to sprint-executor after user approval!
Input: Path to design doc (e.g., design_docs/planned/v0.4-roadmap.md)
What to extract:
Check these sources:
CHANGELOG.md - Recent features and LOC countsgit log --oneline --since="1 week ago" - Actual commitsmake test-coverage-badge - Current test coverageUse the velocity script:
.claude/skills/sprint-planner/scripts/analyze_velocity.sh
Calculate:
List incomplete milestones with:
Use the template:
See resources/sprint_plan_template.md
Include:
Show user:
Be ready to revise based on user priorities or constraints.
Once approved:
# Create sprint plan document (markdown - human-readable)
# Naming: M-<type><number>.md (M-P1 for parser, M-T1 for types, etc.)
Include in sprint plan:
NEW: Create JSON progress file (machine-readable):
# Create structured progress file for multi-session execution
.claude/skills/sprint-planner/scripts/create_sprint_json.sh \
"<sprint-id>" \
"design_docs/planned/vX_Y/<sprint-id>-plan.md" \
"design_docs/planned/vX_Y/<feature>-design.md"
The script creates a TEMPLATE - you MUST populate it with real data!
The create_sprint_json.sh script generates placeholder content. Before handing off to sprint-executor, you MUST edit the JSON file to include actual milestones.
Required edits to .ailang/state/sprints/sprint_<id>.json:
Replace placeholder features array with real milestones:
"features": [
{
"id": "M1_ACTUAL_NAME",
"description": "Real description from your sprint plan",
"estimated_loc": 150,
"dependencies": [],
"acceptance_criteria": [
"Actual criterion from sprint plan",
"Another real criterion"
],
"passes": null,
"started": null,
"completed": null,
"notes": null
}
]
Update velocity estimates to match your sprint plan:
"velocity": {
"target_loc_per_day": 150,
"estimated_total_loc": 670,
"estimated_days": 4
}
Validation checklist before handoff:
"id": "MILESTONE_ID" (placeholder)estimated_total_loc matches sum of milestone LOCestimated_days matches sprint plan durationsprint-executor will REJECT the sprint if placeholders remain!
The script automatically discovers related GitHub issues using ailang messages integration.
The create_sprint_json.sh script automatically:
ailang messages import-githubmsg_YYYYMMDD_HHMMSS_hash)#123 references from the design docgithub_issues: [...] to the sprint JSONWhy link GitHub issues?
refs #123 to link without closingFixes #123 to AUTO-CLOSE issue on mergeImportant: "refs" vs "Fixes"
refs #17 - Links commit to issue (NO auto-close) - use during developmentFixes #17, Closes #17, Resolves #17 - AUTO-CLOSES issue when merged - use in final commitDeduplication: ailang messages import-github checks existing issues by number before importing. Issues are never duplicated.
Manual linking (if auto-extraction misses issues):
# Add GitHub issues to sprint JSON
jq '.github_issues = [17, 42]' .ailang/state/sprints/sprint_<id>.json > tmp && mv tmp .ailang/state/sprints/sprint_<id>.json
Example JSON with linked issues:
{
"sprint_id": "M-BUG-FIX",
"github_issues": [17, 42],
"features": [...]
}
Workflow with GitHub integration:
ailang messages send user "Bug: ..." --type bug --github**Bug Report**: msg_20251210_..._abc123create_sprint_json.sh extracts message ID, looks up issue #17, adds to JSONrefs #17 in milestone commits (links, no close)Fixes #17 to auto-close issue on mergeCRITICAL: After creating an approved sprint plan, ALWAYS hand off to sprint-executor immediately.
This is the standard workflow:
Send handoff message:
ailang agent send sprint-executor '{
"type": "plan_ready",
"correlation_id": "sprint_<sprint-id>_<date>",
"sprint_id": "<sprint-id>",
"plan_path": "design_docs/planned/vX_Y/<sprint-id>-plan.md",
"progress_path": ".ailang/state/sprints/sprint_<id>.json",
"estimated_duration": "X days (Y hours)",
"milestones": [
{"id": "M1", "name": "...", "estimated_hours": X},
{"id": "M2", "name": "...", "estimated_hours": Y}
],
"discovery": "Key findings from analysis",
"total_loc_estimate": N,
"risk_level": "low|medium|high"
}'
Why this workflow?
Optional: Commit before handoff:
git add design_docs/YYYYMMDD/M-<milestone>.md
git add .ailang/state/sprints/sprint_<id>.json
git commit -m "Add M-<milestone> sprint plan with JSON progress tracking"
examples/ directory)See resources/sprint_plan_template.md for complete sprint plan structure.
Before planning a sprint for a bug fix, verify the design doc addresses systemic issues.
The design-doc-creator skill includes guidance for auditing related code paths before writing a design doc. If the design doc only fixes the reported symptom without checking for similar gaps, send it back for revision.
Quick check: Does the design doc mention:
If not: Ask user to revise design doc before planning sprint.
See design-doc-creator skill for full systemic analysis checklist.
See resources/sprint_plan_template.md for full template.
Key sections:
This skill loads information progressively:
scripts/ (velocity analysis)resources/sprint_plan_template.md (template)Scripts execute without loading into context window, saving tokens.
The sprint-planner skill integrates with the AILANG Coordinator for automated workflows.
When configured in ~/.ailang/config.yaml, the sprint-planner agent:
coordinator:
agents:
- id: sprint-planner
inbox: sprint-planner
workspace: /path/to/ailang
capabilities: [research, docs, planning]
trigger_on_complete: [sprint-executor]
auto_approve_handoffs: false
session_continuity: true
The sprint-planner receives:
{
"type": "design_doc_ready",
"correlation_id": "task-123",
"design_doc_path": "design_docs/planned/v0_6_3/m-semantic-caching.md",
"session_id": "claude-session-abc"
}
# Direct task (skip design-doc-creator)
ailang messages send sprint-planner "Plan sprint for M-CACHE feature" \
--title "Sprint: M-CACHE" --from "user"
# Reference existing design doc
ailang messages send sprint-planner '{"design_doc_path": "design_docs/planned/v0_6_3/m-cache.md"}' \
--title "Sprint: M-CACHE" --from "design-doc-creator"
On completion, sprint-planner sends:
{
"type": "plan_ready",
"correlation_id": "sprint_M-CACHE_20251231",
"sprint_id": "M-CACHE",
"plan_path": "design_docs/planned/v0_6_3/m-cache-sprint-plan.md",
"progress_path": ".ailang/state/sprints/sprint_M-CACHE.json",
"session_id": "claude-session-xyz",
"estimated_duration": "3 days",
"total_loc_estimate": 650,
"risk_level": "medium"
}
With auto_approve_handoffs: false:
With session_continuity: true:
session_id from design-doc-creator handoff--resume SESSION_ID for Claude Code CLInpx skills add sunholo-data/AILANG Sprint Planner下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer