diff --git a/src/core/tasks/workflow.xml b/src/core/tasks/workflow.xml
index 69f94e5a..04c3cc94 100644
--- a/src/core/tasks/workflow.xml
+++ b/src/core/tasks/workflow.xml
@@ -63,6 +63,8 @@
invoke-workflow xml tag → Execute another workflow with given inputs and the workflow.xml runner
invoke-task xml tag → Execute specified task
invoke-protocol name="protocol_name" xml tag → Execute reusable protocol from protocols section
+ invoke-bash cmd="command" → Execute shell command, capture stdout/stderr, set {{bash_exit_code}}, {{bash_stdout}}, {{bash_stderr}}
+ set-var name="varname" value="..." → Set runtime variable {{varname}} to specified value (supports expressions)
goto step="x" → Jump to specified step
@@ -126,6 +128,8 @@
invoke-workflow - Call another workflow
invoke-task - Call a task
invoke-protocol - Execute a reusable protocol (e.g., discover_inputs)
+ invoke-bash cmd="..." - Execute shell command, results in {{bash_exit_code}}, {{bash_stdout}}, {{bash_stderr}}
+ set-var name="..." value="..." - Set runtime variable dynamically
-
\ No newline at end of file
+
diff --git a/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml b/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml
index c055db20..522b7f39 100644
--- a/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml
+++ b/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml
@@ -4,7 +4,7 @@ description: "Perform an ADVERSARIAL Senior Developer code review that finds 3-1
author: "BMad"
# Critical variables from config
-config_source: "{project-root}/{bmad_folder}/bmm/config.yaml"
+config_source: "{project-root}/.bmad/bmm/config.yaml"
output_folder: "{config_source}:output_folder"
user_name: "{config_source}:user_name"
communication_language: "{config_source}:communication_language"
@@ -15,7 +15,7 @@ sprint_artifacts: "{config_source}:sprint_artifacts"
sprint_status: "{sprint_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml"
# Workflow components
-installed_path: "{project-root}/{bmad_folder}/bmm/workflows/4-implementation/code-review"
+installed_path: "{project-root}/.bmad/bmm/workflows/4-implementation/code-review"
instructions: "{installed_path}/instructions.xml"
validation: "{installed_path}/checklist.md"
template: false
@@ -25,6 +25,12 @@ variables:
project_context: "**/project-context.md"
story_dir: "{sprint_artifacts}"
+ # External code review agents configuration
+ # Note: codex_available and gemini_available are auto-detected at runtime via invoke-bash
+ # The workflow uses runtime variables {{codex_available}}, {{gemini_available}}, {{use_external_agent}}, {{external_agent_cmd}}
+ external_review_agents:
+ preferred_agent: "{config_source}:external_review_agents.preferred_agent || 'codex'"
+
# Smart input file references - handles both whole docs and sharded docs
# Priority: Whole document first, then sharded version
# Strategy: SELECTIVE LOAD - only load the specific epic needed for this story review
@@ -51,4 +57,3 @@ input_file_patterns:
load_strategy: "INDEX_GUIDED"
standalone: true
-web_bundle: false