14 KiB
Workflow Init - Project Setup Instructions
The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml You MUST have already loaded and processed: workflow-init/workflow.yaml Communicate in {communication_language} with {user_name}
Welcome to BMad Method, {user_name}!Quick scan for context (do NOT analyze in depth yet):
- Check for codebase: src/, lib/, package.json, .git, etc.
- Check for BMM artifacts: PRD, epics, stories, tech-spec, architecture docs
- Store what was found but do NOT infer project details yet
What's your project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}} Set project_name project_name
I found some existing work here. Let me understand what you're working on: **Planning Documents Found:** {{#each artifacts}} - {{artifact_name}} ({{artifact_type}}, {{story_count}} stories, modified {{date}}) {{/each}} **Codebase Found:** - Source code in: {{source_dirs}} - Tech stack: {{detected_tech_stack}} {{#if git_history}} - Git history: {{commit_count}} commits, last commit {{last_commit_date}} {{/if}}Looking at what I found, are these:
a) Works in progress you're finishing - continuing the work described in these documents b) Documents from a previous effort - you're starting something NEW and different now c) The proposed work you're about to start - these describe what you want to do d) None of these - let me explain what I'm actually working on
Your choice [a/b/c/d]:
User is continuing old work - analyze artifacts to get details Set continuing_old_work = true Go to Step 2 (Analyze artifacts for details) User is doing NEW work - old artifacts are just context Set continuing_old_work = false Go to Step 3 (Ask about NEW work) Artifacts describe proposed work Set continuing_old_work = true Go to Step 2 (Analyze artifacts for details) User will explain their situation Go to Step 3 (Ask about their work) I don't see any existing code or planning documents. Looks like we're starting fresh! Go to Step 3 (Ask about their work) Analyze found artifacts in detail: Extract project type from content (game vs software) Count stories/epics to estimate level: - Level 0: 1 story - Level 1: 1-10 stories - Level 2: 5-15 stories - Level 3: 12-40 stories - Level 4: 40+ stories Detect field type from codebase presence (greenfield vs brownfield)Based on the artifacts you're continuing, I'm suggesting Level {{project_level}} because I found {{story_count}} stories across {{epic_count}} epics.
Here's the complexity scale for reference:
{{field_type}} Project Levels:
- Level 0 - Single atomic change (1 story) - bug fixes, typos, minor updates
- Level 1 - Small feature (1-10 stories) - simple additions, isolated features
- Level 2 - Medium feature set (5-15 stories) - dashboards, multiple related features
- Level 3 - Complex integration (12-40 stories) - platform features, major integrations
- Level 4 - Enterprise expansion (40+ stories) - multi-tenant, ecosystem changes
My suggestion: Level {{project_level}} {{field_type}} {{project_type}} project
Does this match what you're working on? (y/n or tell me what's different)
Use analyzed values Go to Step 4 (Load workflow path) Update values based on user corrections Updated to: Level {{project_level}} {{field_type}} {{project_type}}. Correct? (y/n) Go to Step 4 (Load workflow path)project_name project_type project_level field_type
Tell me about what you're working on. What's the goal?Analyze user's description using keyword detection:
- Level 0 keywords: "fix", "bug", "typo", "small change", "update", "patch", "one file"
- Level 1 keywords: "simple", "basic", "small feature", "add", "minor", "single feature"
- Level 2 keywords: "dashboard", "several features", "admin panel", "medium", "feature set"
- Level 3 keywords: "platform", "integration", "complex", "system", "architecture"
- Level 4 keywords: "enterprise", "multi-tenant", "multiple products", "ecosystem", "phased"
Make initial determination:
- project_type (game or software)
- project_level (0-4) - tentative based on keywords
- field_type (greenfield or brownfield)
- confidence (high/medium/low) - based on clarity of description
1. Roughly how many distinct features or changes do you think this involves?
- Just one thing (e.g., fix a bug, add one button, update one API)
- A small feature (2-5 related changes)
- Several features (5-15 related things)
- A major addition (15-40 things to do)
- A large initiative (40+ changes across many areas)
Adjust project_level based on response
2. How much of the existing codebase will this touch?
- Single file or small area
- One module or component
- Multiple modules (2-4 areas)
- Many modules with integration needs
- System-wide changes
Validate and adjust project_level based on scope
3. Is this a game or a software application? Set project_type based on response I see you have existing code here. Are you:- Adding to or modifying the existing codebase (brownfield)
- Starting fresh - the existing code is just a scaffold/template (greenfield)
- Something else - let me clarify
Your choice [1/2/3]:
Set field_type = "brownfield" Set field_type = "greenfield" Got it - treating as greenfield despite the scaffold. Please explain your situation: Analyze explanation and set field_type accordinglyBuild reasoning for suggestion Store detected_indicators (keywords, scope indicators, complexity signals)
Based on what you've described, I'm suggesting Level {{project_level}} because:
{{reasoning}} (detected: {{detected_indicators}})
Here's the complexity scale for reference:
{{field_type}} Project Levels:
- Level 0 - Single atomic change (1 story) - bug fixes, typos, minor updates, single file changes
- Level 1 - Small feature (1-10 stories) - simple additions, isolated features, one module
- Level 2 - Medium feature set (5-15 stories) - dashboards, multiple related features, several modules
- Level 3 - Complex integration (12-40 stories) - platform features, major integrations, architectural changes
- Level 4 - Enterprise expansion (40+ stories) - multi-tenant, ecosystem changes, system-wide initiatives
My suggestion: Level {{project_level}} {{field_type}} {{project_type}} project
Does this match what you're working on? (y/n or tell me what's different)
Use determined values Go to Step 4 (Load workflow path) Update values based on corrections Updated to: Level {{project_level}} {{field_type}} {{project_type}} Does that look right now? (y/n) If yes, go to Step 4. If no, ask what needs adjustment and repeat.project_name project_type project_level field_type
Determine path file based on selections: Load {path_files}/game-design.yaml Set workflow_path_file = "game-design.yaml" Build filename: {field_type}-level-{project_level}.yaml Load {path_files}/{field_type}-level-{project_level}.yaml Set workflow_path_file = constructed filenameParse workflow path file to extract phases and workflows workflow_path_file
Parse the loaded workflow path file and extract all workflowsFor each phase in the path file:
- Extract phase number and name
- Extract all workflows in that phase
- For each workflow, determine its status type:
- required: true → status = "required"
- recommended: true → status = "recommended"
- conditional: "if_has_ui" → status = "conditional"
- optional: true → status = "optional"
- Default if not specified → status = "required"
Build the workflow_items list in this format:
For each phase:
- Add comment header:
# Phase {n}: {Phase Name} - For each workflow in phase:
- Add entry:
{workflow-id}: {status}
- Add entry:
- Add blank line between phases
Example structure:
# Phase 1: Analysis
brainstorm-project: optional
research: optional
product-brief: recommended
# Phase 2: Planning
prd: required
validate-prd: optional
create-design: conditional
Scan for existing workflow output files to auto-detect completion:
For each workflow in the list, check common output locations:
- {output_folder}/brainstorm-*.md for brainstorm-project
- {output_folder}/research-*.md for research
- {output_folder}/product-brief.md for product-brief
- {output_folder}/prd.md for prd
- {output_folder}/ux-design.md for create-design
- {output_folder}/architecture.md for create-architecture
- {output_folder}/tech-spec.md for tech-spec
- {output_folder}/sprint-status.yaml for sprint-planning
CRITICAL: If file exists, replace status with ONLY the file path - nothing else. Example: product-brief: docs/product-brief.md NOT: product-brief: "completed - docs/product-brief.md" or any other text.
workflow_items
Set generated date to current date generatedPrepare all template variables for workflow-status-template.yaml:
- generated: {current_date}
- project_name: {project_name}
- project_type: {project_type}
- project_level: {project_level}
- field_type: {field_type}
- workflow_path_file: {workflow_path_file}
- workflow_items: {workflow_items from step 5}
Display a preview of what will be created:
Show the first workflow in each phase and total count:
"Ready to create workflow status tracking:
- Phase 1 ({phase_1_workflow_count} workflows): Starting with {first_workflow_phase_1}
- Phase 2 ({phase_2_workflow_count} workflows): Starting with {first_workflow_phase_2}
- Phase 3 ({phase_3_workflow_count} workflows): Starting with {first_workflow_phase_3}
- Phase 4 (Implementation tracked separately in sprint-status.yaml)
{{#if detected_completed_workflows}} Found existing work: {{#each detected_files}}
- {{workflow_name}}: {{file_path}} {{/each}} {{/if}}"
Ready to create your workflow status file? (y/n)
Generate YAML from workflow-status-template.yaml with all variables Save status file to {output_folder}/bmm-workflow-status.yamlIdentify the first non-completed workflow in the list Look up that workflow's agent and command from the path file
✅ Workflow status file created at {output_folder}/bmm-workflow-status.yaml
Next Steps:
{{#if detected_completed_workflows}} You have {{detected_count}} workflow(s) already completed. Great progress! {{/if}}
Next Workflow: {{next_workflow_name}}
Agent: {{next_agent}}
Command: /bmad:bmm:workflows:{{next_workflow_id}}
{{#if next_agent !== 'pm'}} It is recommended to start a new chat and load the {{next_agent}} agent before running the next workflow. {{/if}}