Compare commits
No commits in common. "6df9369cd064a4f94ec6b7bae99a620f3f64638f" and "a023178c0c392b31bf676642542677d77879646f" have entirely different histories.
6df9369cd0
...
a023178c0c
|
|
@ -24,11 +24,11 @@ Load and read full config from {main_config} and resolve basic variables.
|
||||||
2. **Wait for Input.**
|
2. **Wait for Input.**
|
||||||
3. **Process Input:**
|
3. **Process Input:**
|
||||||
- **Case: CLEAR**:
|
- **Case: CLEAR**:
|
||||||
- Delete file: `{project-root}/_bmad/.current_project`
|
- Delete file: `_bmad/.current_project`
|
||||||
- Output: "✅ Project context cleared. Artifacts will go to root `_bmad-output/`."
|
- Output: "✅ Project context cleared. Artifacts will go to root `_bmad-output/`."
|
||||||
- **Case: Path Provided**:
|
- **Case: Path Provided**:
|
||||||
- **Sanitize:** Remove leading `/` or `_bmad-output/` if present in the input.
|
- **Sanitize:** Remove leading `/` or `_bmad-output/` if present in the input.
|
||||||
- Write file: `{project-root}/_bmad/.current_project` with content `<sanitized_path>`
|
- Write file: `_bmad/.current_project` with content `<sanitized_path>`
|
||||||
- Output: "✅ Project context set to: `<sanitized_path>`. Artifacts will go to `_bmad-output/<sanitized_path>/`."
|
- Output: "✅ Project context set to: `<sanitized_path>`. Artifacts will go to `_bmad-output/<sanitized_path>/`."
|
||||||
|
|
||||||
### 3. Verification
|
### 3. Verification
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ This uses **step-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ main_config: '{project-root}/_bmad/bmm/config.yaml'
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ This uses **step-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ This uses **step-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
- `project_name`, `output_folder`, `planning_artifacts`, `user_name`
|
- `project_name`, `output_folder`, `planning_artifacts`, `user_name`
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ This uses **step-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ This uses **micro-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ description: 'Critical validation workflow that assesses PRD, Architecture, and
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ This uses **micro-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ This uses **step-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,18 +16,8 @@
|
||||||
|
|
||||||
|
|
||||||
<step n="1" goal="Load story and discover changes">
|
<step n="1" goal="Load story and discover changes">
|
||||||
<check if="{project-root}/_bmad/.current_project exists">
|
<check if="_bmad/.current_project exists">
|
||||||
<action>Read content as project_suffix</action>
|
<action>Read content as project_suffix</action>
|
||||||
<!-- Sanitization and Validation -->
|
|
||||||
<action>Trim whitespace and newlines from project_suffix</action>
|
|
||||||
<check if="project_suffix contains '..' or starts with '/' or starts with '\'">
|
|
||||||
<output>🚫 Security Error: Invalid project context path detected.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<check if="project_suffix matches regex '[^a-zA-Z0-9._-]|^\s*$'">
|
|
||||||
<output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, or underscores.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
<action>Maintain running notes of findings and impacts discovered</action>
|
<action>Maintain running notes of findings and impacts discovered</action>
|
||||||
|
|
|
||||||
|
|
@ -18,20 +18,9 @@
|
||||||
<critical>🎯 ZERO USER INTERVENTION: Process should be fully automated except for initial epic/story selection or missing documents</critical>
|
<critical>🎯 ZERO USER INTERVENTION: Process should be fully automated except for initial epic/story selection or missing documents</critical>
|
||||||
|
|
||||||
<step n="1" goal="Determine target story">
|
<step n="1" goal="Determine target story">
|
||||||
<check if="{project-root}/_bmad/.current_project exists">
|
<check if="_bmad/.current_project exists">
|
||||||
<action>Read content as project_suffix</action>
|
<action>Read content as project_suffix</action>
|
||||||
<!-- Sanitization and Validation -->
|
|
||||||
<action>Trim whitespace and newlines from project_suffix</action>
|
|
||||||
<check if="project_suffix contains '..' or starts with '/' or starts with '\'">
|
|
||||||
<output>🚫 Security Error: Invalid project context path detected.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<check if="project_suffix matches regex '[^a-zA-Z0-9._-]|^\s*$'">
|
|
||||||
<output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, or underscores.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<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>Output "Monorepo context detected. Output folder redirected to: {output_folder}"</action>
|
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<check if="{{story_path}} is provided by user or user provided the epic and story number such as 2-4 or 1.6 or epic 1 story 5">
|
<check if="{{story_path}} is provided by user or user provided the epic and story number such as 2-4 or 1.6 or epic 1 story 5">
|
||||||
|
|
@ -276,52 +265,48 @@
|
||||||
<step n="5" goal="Create comprehensive story file">
|
<step n="5" goal="Create comprehensive story file">
|
||||||
<critical>📝 CREATE ULTIMATE STORY FILE - The developer's master implementation guide!</critical>
|
<critical>📝 CREATE ULTIMATE STORY FILE - The developer's master implementation guide!</critical>
|
||||||
|
|
||||||
<!-- Recompute output file path with correct output_folder and story_key -->
|
|
||||||
<action>Set {target_story_file} = {output_folder}/{story_key}.md</action>
|
|
||||||
<action>Output "Generating story file at: {target_story_file}"</action>
|
|
||||||
|
|
||||||
<action>Initialize from template.md:
|
<action>Initialize from template.md:
|
||||||
{target_story_file}</action>
|
{default_output_file}</action>
|
||||||
<template-output file="{target_story_file}">story_header</template-output>
|
<template-output file="{default_output_file}">story_header</template-output>
|
||||||
|
|
||||||
<!-- Story foundation from epics analysis -->
|
<!-- Story foundation from epics analysis -->
|
||||||
<template-output
|
<template-output
|
||||||
file="{target_story_file}">story_requirements</template-output>
|
file="{default_output_file}">story_requirements</template-output>
|
||||||
|
|
||||||
<!-- Developer context section - MOST IMPORTANT PART -->
|
<!-- Developer context section - MOST IMPORTANT PART -->
|
||||||
<template-output file="{target_story_file}">
|
<template-output file="{default_output_file}">
|
||||||
developer_context_section</template-output> **DEV AGENT GUARDRAILS:** <template-output file="{target_story_file}">
|
developer_context_section</template-output> **DEV AGENT GUARDRAILS:** <template-output file="{default_output_file}">
|
||||||
technical_requirements</template-output>
|
technical_requirements</template-output>
|
||||||
<template-output file="{target_story_file}">architecture_compliance</template-output>
|
<template-output file="{default_output_file}">architecture_compliance</template-output>
|
||||||
<template-output
|
<template-output
|
||||||
file="{target_story_file}">library_framework_requirements</template-output>
|
file="{default_output_file}">library_framework_requirements</template-output>
|
||||||
<template-output file="{target_story_file}">
|
<template-output file="{default_output_file}">
|
||||||
file_structure_requirements</template-output>
|
file_structure_requirements</template-output>
|
||||||
<template-output file="{target_story_file}">testing_requirements</template-output>
|
<template-output file="{default_output_file}">testing_requirements</template-output>
|
||||||
|
|
||||||
<!-- Previous story intelligence -->
|
<!-- Previous story intelligence -->
|
||||||
<check
|
<check
|
||||||
if="previous story learnings available">
|
if="previous story learnings available">
|
||||||
<template-output file="{target_story_file}">previous_story_intelligence</template-output>
|
<template-output file="{default_output_file}">previous_story_intelligence</template-output>
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<!-- Git intelligence -->
|
<!-- Git intelligence -->
|
||||||
<check
|
<check
|
||||||
if="git analysis completed">
|
if="git analysis completed">
|
||||||
<template-output file="{target_story_file}">git_intelligence_summary</template-output>
|
<template-output file="{default_output_file}">git_intelligence_summary</template-output>
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<!-- Latest technical specifics -->
|
<!-- Latest technical specifics -->
|
||||||
<check if="web research completed">
|
<check if="web research completed">
|
||||||
<template-output file="{target_story_file}">latest_tech_information</template-output>
|
<template-output file="{default_output_file}">latest_tech_information</template-output>
|
||||||
</check>
|
</check>
|
||||||
|
|
||||||
<!-- Project context reference -->
|
<!-- Project context reference -->
|
||||||
<template-output
|
<template-output
|
||||||
file="{target_story_file}">project_context_reference</template-output>
|
file="{default_output_file}">project_context_reference</template-output>
|
||||||
|
|
||||||
<!-- Final status update -->
|
<!-- Final status update -->
|
||||||
<template-output file="{target_story_file}">
|
<template-output file="{default_output_file}">
|
||||||
story_completion_status</template-output>
|
story_completion_status</template-output>
|
||||||
|
|
||||||
<!-- CRITICAL: Set status to ready-for-dev -->
|
<!-- CRITICAL: Set status to ready-for-dev -->
|
||||||
|
|
|
||||||
|
|
@ -13,22 +13,8 @@
|
||||||
<critical>User skill level ({user_skill_level}) affects conversation style ONLY, not code updates.</critical>
|
<critical>User skill level ({user_skill_level}) affects conversation style ONLY, not code updates.</critical>
|
||||||
|
|
||||||
<step n="1" goal="Find next ready story and load it" tag="sprint-status">
|
<step n="1" goal="Find next ready story and load it" tag="sprint-status">
|
||||||
<check if="{project-root}/_bmad/.current_project exists">
|
<check if="_bmad/.current_project exists">
|
||||||
<action>Read content as project_suffix</action>
|
<action>Read content as project_suffix</action>
|
||||||
<!-- Sanitization and Validation -->
|
|
||||||
<action>Trim whitespace and newlines from project_suffix</action>
|
|
||||||
<check if="project_suffix contains '..' or starts with '/' or starts with '\'">
|
|
||||||
<output>🚫 Security Error: Invalid project context path detected.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<check if="project_suffix matches regex '[^a-zA-Z0-9._-]|^\s*$'">
|
|
||||||
<output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, or underscores.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<check if="project_suffix.length > 100">
|
|
||||||
<output>🚫 Error: Project context name is too long (max 100 characters).</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,12 +8,9 @@
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
3. Re-derive dependent path variables to reflect the new `output_folder`:
|
|
||||||
- `implementation_artifacts`: `{output_folder}/implementation`
|
|
||||||
- `planning_artifacts`: `{output_folder}/planning`
|
|
||||||
|
|
||||||
<critical>Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level}</critical>
|
<critical>Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level}</critical>
|
||||||
<critical>Generate all documents in {document_output_language}</critical>
|
<critical>Generate all documents in {document_output_language}</critical>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml</critical>
|
<critical>You MUST have already loaded and processed: {project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml</critical>
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ This uses **step-file architecture** for focused execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ This uses **step-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,23 +11,6 @@
|
||||||
<action>Load existing project structure from index.md and project-parts.json (if exists)</action>
|
<action>Load existing project structure from index.md and project-parts.json (if exists)</action>
|
||||||
<action>Load source tree analysis to understand available areas</action>
|
<action>Load source tree analysis to understand available areas</action>
|
||||||
|
|
||||||
<check if="{project-root}/_bmad/.current_project exists">
|
|
||||||
<action>Read content as project_suffix</action>
|
|
||||||
<!-- Sanitization and Validation -->
|
|
||||||
<action>Trim whitespace and newlines from project_suffix</action>
|
|
||||||
<check if="project_suffix contains '..' or starts with '/' or starts with '\'">
|
|
||||||
<output>🚫 Security Error: Invalid project context path detected.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<check if="project_suffix matches regex '[^a-zA-Z0-9._-]|^\s*$'">
|
|
||||||
<output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, or underscores.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<action>Override output_folder to {project-root}/_bmad-output/{project_suffix}</action>
|
|
||||||
<action>Override project_knowledge to {project-root}/_bmad-output/{project_suffix}</action>
|
|
||||||
<action>Output "Monorepo context detected. Writing deep-dive artifacts to: {project_knowledge}"</action>
|
|
||||||
</check>
|
|
||||||
|
|
||||||
<step n="13a" goal="Identify area for deep-dive">
|
<step n="13a" goal="Identify area for deep-dive">
|
||||||
<action>Analyze existing documentation to suggest deep-dive options</action>
|
<action>Analyze existing documentation to suggest deep-dive options</action>
|
||||||
|
|
||||||
|
|
@ -271,7 +254,10 @@ Detailed exhaustive analysis of specific areas:
|
||||||
|
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
|
**Monorepo Context Check:**
|
||||||
|
1. Check if `_bmad/.current_project exists`.
|
||||||
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
- Related code and reuse opportunities
|
- Related code and reuse opportunities
|
||||||
- Implementation guidance
|
- Implementation guidance
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -100,7 +100,7 @@ Your choice [1/2/3]:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
json, etc.)
|
json, etc.)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ This uses **micro-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ Check project for existing test framework:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project exists`.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,18 +20,8 @@
|
||||||
|
|
||||||
<flow>
|
<flow>
|
||||||
<step n="1" title="Method Registry Loading">
|
<step n="1" title="Method Registry Loading">
|
||||||
<check if="{project-root}/_bmad/.current_project exists">
|
<check if="_bmad/.current_project exists">
|
||||||
<action>Read content as project_suffix</action>
|
<action>Read content as project_suffix</action>
|
||||||
<!-- Sanitization and Validation -->
|
|
||||||
<action>Trim whitespace and newlines from project_suffix</action>
|
|
||||||
<check if="project_suffix contains '..' or starts with '/' or starts with '\'">
|
|
||||||
<output>🚫 Security Error: Invalid project context path detected.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<check if="project_suffix matches regex '[^a-zA-Z0-9._-]|^\s*$'">
|
|
||||||
<output>🚫 Error: Project context must only contain alphanumeric characters, dots, dashes, or underscores.</output>
|
|
||||||
<action>HALT</action>
|
|
||||||
</check>
|
|
||||||
<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>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ This uses **micro-file architecture** for disciplined execution:
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ This uses **micro-file architecture** with **sequential conversation orchestrati
|
||||||
Load and read full config from {main_config} and resolve basic variables.
|
Load and read full config from {main_config} and resolve basic variables.
|
||||||
|
|
||||||
**Monorepo Context Check:**
|
**Monorepo Context Check:**
|
||||||
1. Check if `{project-root}/_bmad/.current_project` exists.
|
1. Check if `_bmad/.current_project` exists.
|
||||||
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
2. If it exists, read its content as `{project_suffix}` and override output folder:
|
||||||
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
- `output_folder`: `{project-root}/_bmad-output/{project_suffix}`
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue