# DO NOT EDIT -- overwritten on every update. # # Workflow customization surface for bmad-code-review. Mirrors the # agent customization shape under the [workflow] namespace. [workflow] # --- Configurable below. Overrides merge per BMad structural rules: --- # scalars: override wins • arrays (persistent_facts, activation_steps_*): append # arrays-of-tables with `code`/`id`: replace matching items, append new ones. # Steps to run before the standard activation (config load, greet). # Overrides append. Use for pre-flight loads, compliance checks, etc. activation_steps_prepend = [] # Steps to run after greet but before the workflow begins. # Overrides append. Use for context-heavy setup that should happen # once the user has been acknowledged. activation_steps_append = [] # Persistent facts the workflow keeps in mind for the whole run # (standards, compliance constraints, stylistic guardrails). # Distinct from the runtime memory sidecar — these are static context # loaded on activation. Overrides append. # # Each entry is either: # - a literal sentence, e.g. "All stories must include testable acceptance criteria." # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md" # (glob patterns are supported; the file's contents are loaded and treated as facts). persistent_facts = [ "file:{project-root}/**/project-context.md", "Memtrace structural deep audit is available for independent code review verification. Use the adapter at _bmad/scripts/memtrace/memtrace-adapter.mjs with --query get_impact --target --check-freshness --summarize to independently verify the blast radius of modified symbols. Use --query find_dead_code --target --check-freshness for dead code detection in modified modules. Run these during Step 1 (gather context) after constructing the diff. All queries MUST use sequential for...of with await — NEVER Promise.all. Index freshness check via list_indexed_repositories is mandatory before trusting graph output. Structural audit is advisory/supplemental — NEVER block the review on Memtrace availability. Timeout (MEMTRACE_MCP_ERROR_TIMEOUT) or stale index ([FRESHNESS] in STDERR) means skip and continue.", ] # Scalar: executed when the workflow reaches its final step, # after review findings are presented and sprint status is synced. Override wins. # Leave empty for no custom post-completion behavior. on_complete = ""