bmad-sprint-planning
Skill0 starsChanged 7 months agoMITView on GitHub
Generate sprint status tracking from epics. Use when the user says "run sprint planning" or "generate sprint plan"
We split this skill into the rules it gives an agent
12 rules. 0 are common, 3 are distinctive, and 9 are very specific to this project.
0
Common
Most of the 19 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 39
Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run.
- Very specific: line 88
Search for whole document first: - Look for epics.md, bmm-epics.md, or any *epic*.md file
- Very specific: line 89
Check for sharded version: - If whole document not found, look for epics/index.md
- Very specific: line 91
Read index.md to understand the document structure
- Very specific: line 92
Read ALL epic section files listed in the index (e.g., epic-1.md, epic-2.md, etc.)
- Distinctive: line 95
Priority: If both whole and sharded versions exist, use the whole document
- Very specific: line 147
Check: {story_location_absolute}/{story-key}.md (e.g., stories/1-1-user-authentication.md)
- Very specific: line 148
If exists → upgrade status to at least ready-for-dev
- Very specific: line 152
If existing {status_file} exists and has more advanced status, preserve it
- Very specific: line 153
Never downgrade status (e.g., don't change done to ready-for-dev)
- Distinctive: line 250
Use this file to track development progress
- Distinctive: line 271
done: All stories in epic completed
“Common” is measured: kept by at least 6 in 10 of the 19 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Sprint Planning Workflow
Goal: Generate sprint status tracking from epics, detecting current story statuses and building a complete sprint-status.yaml file.
Your Role: You are a Developer generating and maintaining sprint tracking. Parse epic files, detect story statuses, and produce a structured sprint-status.yaml.
Conventions
- Bare paths (e.g.
checklist.md) resolve from the skill root. {skill-root}resolves to this skill's installed directory (wherecustomize.tomllives).{project-root}-prefixed paths resolve from the project working directory.{skill-name}resolves to the skill directory's basename.
On Activation
Step 1: Resolve the Workflow Block
Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow
If the script fails, resolve the workflow block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
{skill-root}/customize.toml— defaults{project-root}/_bmad/custom/{skill-name}.toml— team overrides{project-root}/_bmad/custom/{skill-name}.user.toml— personal overrides
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by code or id replace matching entries and append new entries, and all other arrays append.
Step 2: Execute Prepend Steps
Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.
Step 3: Load Persistent Facts
Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run. Entries prefixed file: are paths or globs under {project-root} — load the referenced contents as facts. All other entries are facts verbatim.
Step 4: Load Config
Load config from {project-root}/_bmad/bmm/config.yaml and resolve:
project_name,user_namecommunication_language,document_output_languageimplementation_artifactsplanning_artifactsdateas system-generated current datetimeproject_context=**/project-context.md(load if exists)- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config
{communication_language} - Generate all documents in
{document_output_language}
Step 5: Greet the User
Greet {user_name}, speaking in {communication_language}.
Step 6: Execute Append Steps
Execute each entry in {workflow.activation_steps_append} in order.
Activation is complete. If activation_steps_prepend or activation_steps_append were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
Paths
tracking_system=file-systemproject_key=NOKEYstory_location={implementation_artifacts}story_location_absolute={implementation_artifacts}epics_location={planning_artifacts}epics_pattern=*epic*.mdstatus_file={implementation_artifacts}/sprint-status.yaml
Input Files
| Input | Path | Load Strategy |
| Epics | {planning_artifacts}/*epic*.md (whole) or {planning_artifacts}/*epic*/*.md (sharded) | FULL_LOAD |
Execution
Document Discovery - Full Epic Loading
Strategy: Sprint planning needs ALL epics and stories to build complete status tracking.
Epic Discovery Process:
- Search for whole document first - Look for
epics.md,bmm-epics.md, or any*epic*.mdfile - Check for sharded version - If whole document not found, look for
epics/index.md - If sharded version found:
- Read
index.mdto understand the document structure - Read ALL epic section files listed in the index (e.g.,
epic-1.md,epic-2.md, etc.) - Process all epics and their stories from the combined content
- This ensures complete sprint status coverage
- Read
- Priority: If both whole and sharded versions exist, use the whole document
Fuzzy matching: Be flexible with document names - users may use variations like epics.md, bmm-epics.md, user-stories.md, etc.
<workflow><step n="1" goal="Parse epic files and extract all work items">
<action>Load {project_context} for project-wide patterns and conventions (if exists)</action>
<action>Communicate in {communication_language} with {user_name}</action>
<action>Look for all files matching `{epics_pattern}` in {epics_location}</action>
<action>Could be a single `epics.md` file or multiple `epic-1.md`, `epic-2.md` files</action><action>For each epic file found, extract:</action>
- Epic numbers from headers like
## Epic 1:or## Epic 2: - Story IDs and titles from patterns like
### Story 1.1: User Authentication - Convert story format from
Epic.Story: Titleto kebab-case key:epic-story-title
Story ID Conversion Rules:
- Original:
### Story 1.1: User Authentication - Replace period with dash:
1-1 - Convert title to kebab-case:
user-authentication - Final key:
1-1-user-authentication
<action>Build complete inventory of all epics and stories from all epic files</action>
</step>
<step n="2" goal="Build sprint status structure">
<action>For each epic found, create entries in this order:</action>- Epic entry - Key:
epic-{num}, Default status:backlog - Story entries - Key:
{epic}-{story}-{title}, Default status:backlog - Retrospective entry - Key:
epic-{num}-retrospective, Default status:optional
Example structure:
development_status:
epic-1: backlog
1-1-user-authentication: backlog
1-2-account-management: backlog
epic-1-retrospective: optional</step><step n="3" goal="Apply intelligent status detection">
<action>For each story, detect current status by checking files:</action>Story file detection:
- Check:
{story_location_absolute}/{story-key}.md(e.g.,stories/1-1-user-authentication.md) - If exists → upgrade status to at least
ready-for-dev
Preservation rule:
- If existing
{status_file}exists and has more advanced status, preserve it - Never downgrade status (e.g., don't change
donetoready-for-dev)
Status Flow Reference:
- Epic:
backlog→in-progress→done - Story:
backlog→ready-for-dev→in-progress→review→done - Retrospective:
optional↔done</step>
<step n="4" goal="Generate sprint status file">
<action>Create or update {status_file} with:</action>File Structure:
# generated: {date}
# last_updated: {date}
# project: {project_name}
# project_key: {project_key}
# tracking_system: {tracking_system}
# story_location: {story_location}
# STATUS DEFINITIONS:
# ==================
# Epic Status:
# - backlog: Epic not yet started
# - in-progress: Epic actively being worked on
# - done: All stories in epic completed
#
# Epic Status Transitions:
# - backlog → in-progress: Automatically when first story is created (via create-story)
# - in-progress → done: Manually when all stories reach 'done' status
#
# Story Status:
# - backlog: Story only exists in epic file
# - ready-for-dev: Story file created in stories folder
# - in-progress: Developer actively working on implementation
# - review: Ready for code review (via Dev's code-review workflow)
# - done: Story completed
#
# Retrospective Status:
# - optional: Can be completed but not required
# - done: Retrospective has been completed
#
# WORKFLOW NOTES:
# ===============
# - Epic transitions to 'in-progress' automatically when first story is created
# - Stories can be worked in parallel if team capacity allows
# - Developer typically creates next story after previous one is 'done' to incorporate learnings
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
generated: { date }
last_updated: { date }
project: { project_name }
project_key: { project_key }
tracking_system: { tracking_system }
story_location: { story_location }
development_status:
# All epics, stories, and retrospectives in order<action>Write the complete sprint status YAML to {status_file}</action>
<action>CRITICAL: Metadata appears TWICE - once as comments (#) for documentation, once as YAML key:value fields for parsing</action>
<action>Ensure all items are ordered: epic, its stories, its retrospective, next epic...</action>
</step>
<step n="5" goal="Validate and report">
<action>Perform validation checks:</action>- Every epic in epic files appears in {status_file}
- Every story in epic files appears in {status_file}
- Every epic has a corresponding retrospective entry
- No items in {status_file} that don't exist in epic files
- All status values are legal (match state machine definitions)
- File is valid YAML syntax
<action>Count totals:</action>
- Total epics: {{epic_count}}
- Total stories: {{story_count}}
- Epics in-progress: {{in_progress_count}}
- Stories done: {{done_count}}
<action>Display completion summary to {user_name} in {communication_language}:</action>
Sprint Status Generated Successfully
- File Location: {status_file}
- Total Epics: {{epic_count}}
- Total Stories: {{story_count}}
- Epics In Progress: {{in_progress_count}}
- Stories Completed: {{done_count}}
Next Steps:
- Review the generated {status_file}
- Use this file to track development progress
- Agents will update statuses as they work
- Re-run this workflow to refresh auto-detected statuses
<action>Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.</action>
</step>
</workflow>Additional Documentation
Status State Machine
Epic Status Flow:
backlog → in-progress → done- backlog: Epic not yet started
- in-progress: Epic actively being worked on (stories being created/implemented)
- done: All stories in epic completed
Story Status Flow:
backlog → ready-for-dev → in-progress → review → done- backlog: Story only exists in epic file
- ready-for-dev: Story file created (e.g.,
stories/1-3-plant-naming.md) - in-progress: Developer actively working
- review: Ready for code review (via Dev's code-review workflow)
- done: Completed
Retrospective Status:
optional ↔ done- optional: Ready to be conducted but not required
- done: Finished
Guidelines
- Epic Activation: Mark epic as
in-progresswhen starting work on its first story - Sequential Default: Stories are typically worked in order, but parallel work is supported
- Parallel Work Supported: Multiple stories can be
in-progressif team capacity allows - Review Before Done: Stories should pass through
reviewbeforedone - Learning Transfer: Developer typically creates next story after previous one is
doneto incorporate learnings
Other versions20 projects use a version of this.
Word for word · 1
- jeffrey2423/commit-like-pro★ 2100% same
Edited · 17
- delorenj/mcp-server-trello★ 44699% same
- paulpreibisch/AgentVibes★ 15576% same
- laraxot/laravelpizza.com★ 2676% same
- 2233admin/opencli-Razormind★ 1811% same
- DogaOztuzun/branchdeck★ 1876% same
- marlonvidal/tech-manager-os★ 1793% same
- mugsun/curdx-flow★ 499% same
- MysterionRise/forgetest★ 411% same
- salacoste/oh-my-bmad★ 210% same
- AvishkaGihan/ventureiq★ 176% same
7 more not listed
Wrote their own version · 2
- delorenj/skills★ 16same name
- mannnrachman/pi-bmad★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use bmad-dev-auto.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
PaulKnauerSkillbmad-dev-auto
One iteration of an unattended development loop. Use when invoked by name.
Also in 6 projects that use this
In this repository55 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- templates/CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/caveman.mdcCursor rule
- bmad-advanced-elicitationSkill
- bmad-agent-analystSkill
- bmad-agent-architectSkill
- bmad-agent-builderSkill
- bmad-agent-devSkill
- bmad-agent-pmSkill
- bmad-agent-tech-writerSkill
- bmad-agent-ux-designerSkill
- bmad-bmb-setupSkill
- bmad-brainstormingSkill
- bmad-check-implementation-readinessSkill
- bmad-checkpoint-previewSkill
- bmad-code-reviewSkill
- bmad-correct-courseSkill
- bmad-create-architectureSkill
- bmad-create-epics-and-storiesSkill
- bmad-create-prdSkill
- bmad-create-storySkill
- bmad-customizeSkill
- bmad-dev-storySkill
- bmad-document-projectSkill
- bmad-domain-researchSkill
- bmad-editorial-review-proseSkill
- bmad-editorial-review-structureSkill
- bmad-edit-prdSkill
- bmad-eval-runnerSkill
- bmad-generate-project-contextSkill
- bmad-helpSkill
- bmad-index-docsSkill
- bmad-investigateSkill
- bmad-market-researchSkill
- bmad-module-builderSkill
- bmad-party-modeSkill
- bmad-prdSkill
- bmad-prfaqSkill
- bmad-product-briefSkill
- bmad-qa-generate-e2e-testsSkill
- bmad-quick-devSkill
- bmad-retrospectiveSkill
- bmad-review-adversarial-generalSkill
- bmad-review-edge-case-hunterSkill
- bmad-shard-docSkill
- bmad-specSkill
- bmad-sprint-statusSkill
- bmad-technical-researchSkill
- bmad-uxSkill
- bmad-validate-prdSkill
- bmad-workflow-builderSkill
- caveman-commitSkill
- caveman-reviewSkill
- cavemanSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

