feat(monorepo): fix project_name resolution and variable leakage

This commit is contained in:
sno 2026-02-22 15:09:57 +01:00
parent 9d00f69680
commit efc2152ad8
4 changed files with 13 additions and 7 deletions

View File

@ -29,6 +29,7 @@
<output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, underscores, or slashes.</output> <output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, underscores, or slashes.</output>
<action>HALT</action> <action>HALT</action>
</check> </check>
<action>Override project_name to {project_suffix}</action>
<action>Override output_folder to {project-root}/_bmad-output/{project_suffix}</action> <action>Override output_folder to {project-root}/_bmad-output/{project_suffix}</action>
</check> </check>

View File

@ -18,8 +18,8 @@
<flow> <flow>
<step n="1" title="Load and Initialize Workflow"> <step n="1" title="Load and Initialize Workflow">
<substep n="1a" title="Monorepo Context Injection"> <substep n="1a" title="Initialize Environment Variables">
{{monorepo_context_logic}} <action>Resolve system variables (date:system-generated) and paths ({project-root}, {installed_path})</action>
</substep> </substep>
<substep n="1b" title="Load Configuration and Resolve Variables"> <substep n="1b" title="Load Configuration and Resolve Variables">
@ -27,11 +27,14 @@
<mandate>Load config_source (REQUIRED for all modules)</mandate> <mandate>Load config_source (REQUIRED for all modules)</mandate>
<phase n="1">Load external config from config_source path</phase> <phase n="1">Load external config from config_source path</phase>
<phase n="2">Resolve all {config_source}: references with values from config</phase> <phase n="2">Resolve all {config_source}: references with values from config</phase>
<phase n="3">Resolve system variables (date:system-generated) and paths ({project-root}, {installed_path})</phase> <phase n="3">Ask user for input of any variables that are still unknown</phase>
<phase n="4">Ask user for input of any variables that are still unknown</phase>
</substep> </substep>
<substep n="1c" title="Load Required Components"> <substep n="1c" title="Monorepo Context Enforcement">
{{monorepo_context_logic}}
</substep>
<substep n="1d" title="Load Required Components">
<mandate>Instructions: Read COMPLETE file from path OR embedded list (REQUIRED)</mandate> <mandate>Instructions: Read COMPLETE file from path OR embedded list (REQUIRED)</mandate>
<check>If template path → Read COMPLETE template file</check> <check>If template path → Read COMPLETE template file</check>
<check>If validation path → Note path for later loading when needed</check> <check>If validation path → Note path for later loading when needed</check>
@ -39,7 +42,7 @@
<note>Data files (csv, json) → Store paths only, load on-demand when instructions reference them</note> <note>Data files (csv, json) → Store paths only, load on-demand when instructions reference them</note>
</substep> </substep>
<substep n="1d" title="Initialize Output" if="template-workflow"> <substep n="1e" title="Initialize Output" if="template-workflow">
<action>Resolve default_output_file path with all variables and {{date}}</action> <action>Resolve default_output_file path with all variables and {{date}}</action>
<action>Create output directory if doesn't exist</action> <action>Create output directory if doesn't exist</action>
<action>If template-workflow → Write template to output file with placeholders</action> <action>If template-workflow → Write template to output file with placeholders</action>

View File

@ -47,6 +47,7 @@
<action>HALT</action> <action>HALT</action>
</check> </check>
<action>Override project_name to {project_suffix}</action>
<action>Override output_folder to {project-root}/_bmad-output/{project_suffix}</action> <action>Override output_folder to {project-root}/_bmad-output/{project_suffix}</action>
<action>Override planning_artifacts to {project-root}/_bmad-output/{project_suffix}</action> <action>Override planning_artifacts to {project-root}/_bmad-output/{project_suffix}</action>
<action>Override implementation_artifacts to {project-root}/_bmad-output/{project_suffix}</action> <action>Override implementation_artifacts to {project-root}/_bmad-output/{project_suffix}</action>

View File

@ -36,7 +36,8 @@ const MONOREPO_CONTEXT_LOGIC = `
<action>HALT</action> <action>HALT</action>
</check> </check>
<!-- Step 4: Override path variables --> <!-- Step 4: Override path and identification variables -->
<action>Override project_name = {project_suffix}</action>
<action>Override output_folder = {project-root}/_bmad-output/{project_suffix}</action> <action>Override output_folder = {project-root}/_bmad-output/{project_suffix}</action>
<action>Override planning_artifacts = {output_folder}/planning-artifacts</action> <action>Override planning_artifacts = {output_folder}/planning-artifacts</action>
<action>Override implementation_artifacts = {output_folder}/implementation-artifacts</action> <action>Override implementation_artifacts = {output_folder}/implementation-artifacts</action>