Skip to content
🤖 AI-optimized docs: llms-full.txt

Workflow Variables Reference

Complete reference for workflow frontmatter variables, path rules, and naming conventions.

Available to all workflows regardless of module affiliation:

VariableExampleDescription
{project-root}/Users/user/dev/my-projectProject root directory
{project_name}my-projectProject name from configuration
{output_folder}/Users/user/dev/my-project/outputConfigured output folder
{user_name}BrianUser name from configuration
{communication_language}englishLanguage for AI responses
{document_output_language}englishLanguage for document output

Available to workflows within a module (defined in module.yaml):

VariableExampleDescription
{bmb_creations_output_folder}{project-root}/_bmad/bmb-creationsOutput for BMB-created workflows
VariableExampleDescription
{planning_artifacts}{project-root}/_bmad/bmm/planning-artifactsPlanning document storage

Define module variables in module.yaml:

module:
config:
variables:
my_custom_folder: '{project-root}/custom/output'

Use relative paths for references within the same workflow:

TypeFormatExample
Step to Step (same folder)./filename.md./step-02-vision.md
Step to Template (parent)../filename.md../template.md
Step to Subfolder./subfolder/file.md./data/config.csv

Use {project-root} for references outside the workflow folder:

TypeFormatExample
Core workflows{project-root}/_bmad/core/workflows/...{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml
Module outputs{module_output_folder}/...{bmm_creations_output_folder}/prd-my-project.md

Use folder variables for output file paths:

TypeFormatExample
Standard output{output_folder}/file.md{output_folder}/workflow-output.md
Module output{module_folder}/file.md{bmb_creations_output_folder}/my-workflow.md
Time-stamped{output_folder}/file-{timestamp}.md{output_folder}/plan-2025-01-15.md

Use snake_case with descriptive suffixes:

SuffixUsageExample
*_FileFile referencesoutputFile, nextStepFile
*_TaskTask referencesadvancedElicitationTask
*_WorkflowWorkflow referencespartyModeWorkflow
*_TemplateTemplatesproductBriefTemplate
*_DataData filesdietaryData
TypePatternExample
File paths*_File, *_PathoutputFile, workflowPath
Workflow references*_WorkflowpartyModeWorkflow
Task references*_TaskadvancedElicitationTask
Template references*_TemplateprofileTemplate

Every step frontmatter must include:

---
name: 'step-01-init'
description: 'What this step does'
---

Only include variables actually used in the step body:

---
# Required fields
name: 'step-01-init'
description: 'Initialize the workflow'
# File references (only if used)
nextStepFile: './step-02-discovery.md'
outputFile: '{output_folder}/workflow-plan.md'
workflowPlanTemplate: '../templates/plan-template.md'
---

Steps can define new variables for future steps:

Step 01 defines:

---
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{workflow_name}'
---

Step 02 uses:

---
targetWorkflowPath: '{bmb_creations_output_folder}/workflows/{workflow_name}'
workflowPlanFile: '{targetWorkflowPath}/plan.md'
---

For continuable workflows, track progress in output file frontmatter:

---
stepsCompleted: ['step-01-init', 'step-02-discovery', 'step-03-strategy']
lastStep: 'step-03-strategy'
lastContinued: '2025-01-15'
status: IN_PROGRESS
date: '2025-01-14'
user_name: 'Brian'
---
FieldTypeDescription
stepsCompletedarrayList of completed step names
lastStepstringMost recent completed step
lastContinueddateLast continuation date
statusstringIN_PROGRESS or COMPLETE
datedateWorkflow start date
user_namestringUser who created the workflow

Templates use placeholder syntax for dynamic content:

# {{title}}
Created: {{date}}
## Summary
{{summary}}
## Details
{{details}}
SyntaxExample
{{variable}}{{title}} (preferred)
[variable][title] (also supported)

For workflows that require input from prior workflows:

---
inputDocuments: []
requiredInputCount: 1
moduleInputFolder: '{module_output_folder}'
inputFilePatterns:
- '*-prd.md'
- '*-ux.md'
---

For workflows that produce output:

---
outputFile: '{output_folder}/workflow-output-{project_name}.md'
---

For workflows that use templates:

---
workflowPlanTemplate: '../templates/plan-template.md'
productBriefTemplate: '../templates/brief-template.md'
---

For workflows that invoke other workflows:

---
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
---

Variables resolve in this order:

  1. Standard variables — Always available from global config
  2. Module variables — Available if workflow is in a module
  3. User-defined variables — Defined in prior steps, available to subsequent steps
  4. Output frontmatter variables — Available to continuation steps
RuleCorrectIncorrect
Step to step./step-02.md{workflow_path}/step-02.md
Step to template../template.md{workflow_path}/template.md
Step to data./data/file.csv{workflow_path}/data/file.csv
External ref{project-root}/_bmad/...Hardcoded absolute path
Output file{output_folder}/file.mdHardcoded absolute path
ViolationFix
Unused variable in frontmatterRemove unused variables
Hardcoded file pathUse {variable} format
{workflow_path} in same-folder referenceUse relative path ./file.md
Absolute path for external referenceUse {project-root}/...
ResourceDescription
Workflow SchemaComplete workflow structure reference
Frontmatter StandardsSource documentation
Menu Handling StandardsMenu patterns