# 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}
Search {output_folder}/ for existing BMM artifacts:
- PRD files (*prd*.md)
- Architecture docs (architecture*.md, solution-architecture*.md, architecture/*)
- Briefs (*brief*.md)
- Brainstorming docs (brainstorm*.md)
- Research docs (*research*.md)
- Tech specs (tech-spec*.md)
- GDD files (gdd*.md)
- Story files (story-*.md)
- Epic files (epic*.md)
- Documentation files (index.md (and referenced files within), other files in docs or provided)
Check for existing codebase indicators:
- src/ or lib/ directories
- package.json, requirements.txt, go.mod, Cargo.toml, etc.
- .git directory (check git log for commit history age)
- README.md (check if it describes existing functionality)
- Test directories (tests/, **tests**/, spec/)
- Existing source files (_.js, _.py, _.go, _.rs, etc.)
Also check config for existing {project_name} variable
Analyze documents to infer project details
Guess project type (game vs software) from content
Estimate level based on scope:
- Level 0: Single atomic change (1 story)
- Level 1: Small feature (1-10 stories)
- Level 2: Medium project (5-15 stories)
- Level 3: Complex system (12-40 stories)
- Level 4: Enterprise scale (40+ stories)
Detect if greenfield (only planning) or brownfield (has code)
Go to Step 2 (Confirm inferred settings)
Set fresh_start = true
Go to Step 3 (Gather project info)
Is this correct?
1. **Yes** - Use these settings
2. **Start Fresh** - Ignore existing work
Or tell me what's different:
Use inferred settings
Go to Step 5 (Generate workflow)
Set fresh_start = true
Go to Step 3 (Gather project info)
Update inferred values based on user input
Go to Step 5 (Generate workflow)
project_name
project_type
project_level
field_type
What's your project called? {{#if project_name}}(Config shows: {{project_name}}){{/if}}
Set project_name
project_name
Tell me about what you're building. What's the goal? are we adding on to something or starting fresh.
Analyze description to determine project type, level, and field type
Set project_type (game or software)
Set project_level (0-4 based on complexity)
Set field_type (greenfield or brownfield based on description)
Based on your description: Level {{project_level}} {{field_type}} {{project_type}} project.
Is that correct? (y/n or tell me what's different)
Update values based on corrections
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 filename
Parse workflow path file to extract phases and workflows
workflow_path_file
Build workflow from loaded path file
Display phases and workflows
Set initial values for status file
current_phase
current_workflow
current_agent
next_action
next_command
next_agent
Initialize all status values
start_date
last_updated
phase_1_complete
phase_2_complete
phase_3_complete
phase_4_complete
ordered_story_list = "[]"
todo_story
todo_title
in_progress_story
in_progress_title
completed_story_list = "[]"
backlog_count
done_count
total_stories
Ready to create your workflow status file? (y/n)
Save status file to {output_folder}/bmm-workflow-status.md