Compare commits

...

3 Commits

Author SHA1 Message Date
Autopsias 0bdf0e1c9a
Merge 199f4201f4 into 05ddc2d29b 2026-01-02 18:58:46 -08:00
Alex Verkhovsky 05ddc2d29b
fix(dev): allow full project-context usage with conflict precedence (#1220) 2026-01-03 09:14:09 +08:00
Brian Madison c748f0f6cc paths for workflow and sprint tatus files fixed 2026-01-01 21:20:14 +08:00
13 changed files with 21 additions and 21 deletions

View File

@ -161,7 +161,7 @@ Production workflows inherit from BMM and add game-specific overrides.
**Command:** `sprint-planning` **Command:** `sprint-planning`
**Agent:** Game Scrum Master **Agent:** Game Scrum Master
**Input:** GDD with epics **Input:** GDD with epics
**Output:** `{output_folder}/sprint-status.yaml` **Output:** `{implementation_artifacts}/sprint-status.yaml`
**Description:** **Description:**
Generates or updates sprint tracking from epic files. Sets up the sprint backlog and tracking. Generates or updates sprint tracking from epic files. Sets up the sprint backlog and tracking.

View File

@ -12,7 +12,7 @@ user_skill_level: "{config_source}:user_skill_level"
document_output_language: "{config_source}:document_output_language" document_output_language: "{config_source}:document_output_language"
date: system-generated date: system-generated
implementation_artifacts: "{config_source}:implementation_artifacts" implementation_artifacts: "{config_source}:implementation_artifacts"
sprint_status: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status: "{implementation_artifacts}/sprint-status.yaml"
# Workflow components # Workflow components
installed_path: "{project-root}/_bmad/bmgd/workflows/4-production/code-review" installed_path: "{project-root}/_bmad/bmgd/workflows/4-production/code-review"

View File

@ -11,7 +11,7 @@ user_skill_level: "{config_source}:user_skill_level"
document_output_language: "{config_source}:document_output_language" document_output_language: "{config_source}:document_output_language"
date: system-generated date: system-generated
implementation_artifacts: "{config_source}:implementation_artifacts" implementation_artifacts: "{config_source}:implementation_artifacts"
sprint_status: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status: "{implementation_artifacts}/sprint-status.yaml"
# Smart input file references - handles both whole docs and sharded docs # Smart input file references - handles both whole docs and sharded docs
# Priority: Whole document first, then sharded version # Priority: Whole document first, then sharded version

View File

@ -19,7 +19,7 @@ validation: "{installed_path}/checklist.md"
# Variables and inputs # Variables and inputs
variables: variables:
sprint_status: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" # Primary source for story tracking sprint_status: "{implementation_artifacts}/sprint-status.yaml || {implementation_artifacts}/sprint-status.yaml" # Primary source for story tracking
epics_file: "{output_folder}/epics.md" # Preferred source for epic/story breakdown epics_file: "{output_folder}/epics.md" # Preferred source for epic/story breakdown
prd_file: "{output_folder}/PRD.md" # Fallback for requirements prd_file: "{output_folder}/PRD.md" # Fallback for requirements
architecture_file: "{planning_artifacts}/architecture.md" # Optional architecture context architecture_file: "{planning_artifacts}/architecture.md" # Optional architecture context

View File

@ -16,7 +16,7 @@ story_file: "" # Explicit story path; auto-discovered if empty
# Context file uses same story_key as story file (e.g., "1-2-user-authentication.context.xml") # Context file uses same story_key as story file (e.g., "1-2-user-authentication.context.xml")
context_file: "{story_dir}/{{story_key}}.context.xml" context_file: "{story_dir}/{{story_key}}.context.xml"
implementation_artifacts: "{config_source}:implementation_artifacts" implementation_artifacts: "{config_source}:implementation_artifacts"
sprint_status: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status: "{implementation_artifacts}/sprint-status.yaml || {implementation_artifacts}/sprint-status.yaml"
# Smart input file references - handles both whole docs and sharded docs # Smart input file references - handles both whole docs and sharded docs
# Priority: Whole document first, then sharded version # Priority: Whole document first, then sharded version

View File

@ -54,7 +54,7 @@ input_file_patterns:
load_strategy: "INDEX_GUIDED" load_strategy: "INDEX_GUIDED"
# Required files # Required files
sprint_status_file: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status_file: "{implementation_artifacts}/sprint-status.yaml || {implementation_artifacts}/sprint-status.yaml"
story_directory: "{implementation_artifacts}" story_directory: "{implementation_artifacts}"
retrospectives_folder: "{implementation_artifacts}" retrospectives_folder: "{implementation_artifacts}"

View File

@ -18,14 +18,14 @@ instructions: "{installed_path}/instructions.md"
# Inputs # Inputs
variables: variables:
sprint_status_file: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status_file: "{implementation_artifacts}/sprint-status.yaml || {implementation_artifacts}/sprint-status.yaml"
tracking_system: "file-system" tracking_system: "file-system"
# Smart input file references # Smart input file references
input_file_patterns: input_file_patterns:
sprint_status: sprint_status:
description: "Sprint status file generated by sprint-planning" description: "Sprint status file generated by sprint-planning"
whole: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" whole: "{implementation_artifacts}/sprint-status.yaml || {implementation_artifacts}/sprint-status.yaml"
load_strategy: "FULL_LOAD" load_strategy: "FULL_LOAD"
# Standalone so IDE commands get generated # Standalone so IDE commands get generated

View File

@ -20,12 +20,12 @@ agent:
- Never implement anything not mapped to a specific task/subtask in the story file - Never implement anything not mapped to a specific task/subtask in the story file
- All existing tests must pass 100% before story is ready for review - All existing tests must pass 100% before story is ready for review
- Every task/subtask must be covered by comprehensive unit tests before marking complete - Every task/subtask must be covered by comprehensive unit tests before marking complete
- Project context provides coding standards but never overrides story requirements - Follow project-context.md guidance; when conflicts exist, story requirements take precedence
- Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` - Find and load `**/project-context.md` if it exists - essential reference for implementation
critical_actions: critical_actions:
- "READ the entire story file BEFORE any implementation - tasks/subtasks sequence is your authoritative implementation guide" - "READ the entire story file BEFORE any implementation - tasks/subtasks sequence is your authoritative implementation guide"
- "Load project-context.md if available for coding standards only - never let it override story requirements" - "Load project-context.md if available and follow its guidance - when conflicts exist, story requirements always take precedence"
- "Execute tasks/subtasks IN ORDER as written in story file - no skipping, no reordering, no doing what you want" - "Execute tasks/subtasks IN ORDER as written in story file - no skipping, no reordering, no doing what you want"
- "For each task/subtask: follow red-green-refactor cycle - write failing test first, then implementation" - "For each task/subtask: follow red-green-refactor cycle - write failing test first, then implementation"
- "Mark task/subtask [x] ONLY when both implementation AND tests are complete and passing" - "Mark task/subtask [x] ONLY when both implementation AND tests are complete and passing"

View File

@ -13,7 +13,7 @@ implementation_artifacts: "{config_source}:implementation_artifacts"
planning_artifacts: "{config_source}:planning_artifacts" planning_artifacts: "{config_source}:planning_artifacts"
project_knowledge: "{config_source}:project_knowledge" project_knowledge: "{config_source}:project_knowledge"
output_folder: "{implementation_artifacts}" output_folder: "{implementation_artifacts}"
sprint_status: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status: "{implementation_artifacts}/sprint-status.yaml"
# Smart input file references - handles both whole docs and sharded docs # Smart input file references - handles both whole docs and sharded docs
# Priority: Whole document first, then sharded version # Priority: Whole document first, then sharded version

View File

@ -20,7 +20,7 @@ validation: "{installed_path}/checklist.md"
# Variables and inputs # Variables and inputs
variables: variables:
sprint_status: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" # Primary source for story tracking sprint_status: "{implementation_artifacts}/sprint-status.yaml" # Primary source for story tracking
epics_file: "{planning_artifacts}/epics.md" # Enhanced epics+stories with BDD and source hints epics_file: "{planning_artifacts}/epics.md" # Enhanced epics+stories with BDD and source hints
prd_file: "{planning_artifacts}/prd.md" # Fallback for requirements (if not in epics file) prd_file: "{planning_artifacts}/prd.md" # Fallback for requirements (if not in epics file)
architecture_file: "{planning_artifacts}/architecture.md" # Fallback for constraints (if not in epics file) architecture_file: "{planning_artifacts}/architecture.md" # Fallback for constraints (if not in epics file)

View File

@ -19,14 +19,14 @@ instructions: "{installed_path}/instructions.md"
# Inputs # Inputs
variables: variables:
sprint_status_file: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" sprint_status_file: "{implementation_artifacts}/sprint-status.yaml"
tracking_system: "file-system" tracking_system: "file-system"
# Smart input file references # Smart input file references
input_file_patterns: input_file_patterns:
sprint_status: sprint_status:
description: "Sprint status file generated by sprint-planning" description: "Sprint status file generated by sprint-planning"
whole: "{implementation_artifacts}/sprint-status.yaml || {output_folder}/sprint-status.yaml" whole: "{implementation_artifacts}/sprint-status.yaml"
load_strategy: "FULL_LOAD" load_strategy: "FULL_LOAD"
# Standalone so IDE commands get generated # Standalone so IDE commands get generated

View File

@ -25,11 +25,11 @@ The workflow auto-detects which mode to use based on project phase.
### Mode Detection ### Mode Detection
1. **Check for sprint-status.yaml** 1. **Check for sprint-status.yaml**
- If `{output_folder}/bmm-sprint-status.yaml` exists → **Epic-Level Mode** (Phase 4) - If `{implementation_artifacts}/sprint-status.yaml` exists → **Epic-Level Mode** (Phase 4)
- If NOT exists → Check workflow status - If NOT exists → Check workflow status
2. **Check workflow-status.yaml** 2. **Check workflow-status.yaml**
- Read `{output_folder}/bmm-workflow-status.yaml` - Read `{planning_artifacts}/bmm-workflow-status.yaml`
- If `implementation-readiness: required` or `implementation-readiness: recommended`**System-Level Mode** (Phase 3) - If `implementation-readiness: required` or `implementation-readiness: recommended`**System-Level Mode** (Phase 3)
- Otherwise → **Epic-Level Mode** (Phase 4 without sprint status yet) - Otherwise → **Epic-Level Mode** (Phase 4 without sprint status yet)

View File

@ -197,7 +197,7 @@ Your choice:</ask>
<!-- ============================================= --> <!-- ============================================= -->
<step n="10" goal="Validate mode - Check if calling workflow should proceed"> <step n="10" goal="Validate mode - Check if calling workflow should proceed">
<action>Read {output_folder}/bmm-workflow-status.yaml if exists</action> <action>Read {planning_artifacts}/bmm-workflow-status.yaml if exists</action>
<check if="status file not found"> <check if="status file not found">
<template-output>status_exists = false</template-output> <template-output>status_exists = false</template-output>
@ -261,7 +261,7 @@ Your choice:</ask>
</step> </step>
<step n="20" goal="Data mode - Extract specific information"> <step n="20" goal="Data mode - Extract specific information">
<action>Read {output_folder}/bmm-workflow-status.yaml if exists</action> <action>Read {planning_artifacts}/bmm-workflow-status.yaml if exists</action>
<check if="status file not found"> <check if="status file not found">
<template-output>status_exists = false</template-output> <template-output>status_exists = false</template-output>
@ -309,7 +309,7 @@ Your choice:</ask>
</step> </step>
<step n="30" goal="Init-check mode - Simple existence check"> <step n="30" goal="Init-check mode - Simple existence check">
<action>Check if {output_folder}/bmm-workflow-status.yaml exists</action> <action>Check if {planning_artifacts}/bmm-workflow-status.yaml exists</action>
<check if="exists"> <check if="exists">
<template-output>status_exists = true</template-output> <template-output>status_exists = true</template-output>
@ -325,7 +325,7 @@ Your choice:</ask>
</step> </step>
<step n="40" goal="Update mode - Centralized status file updates"> <step n="40" goal="Update mode - Centralized status file updates">
<action>Read {output_folder}/bmm-workflow-status.yaml</action> <action>Read {planning_artifacts}/bmm-workflow-status.yaml</action>
<check if="status file not found"> <check if="status file not found">
<template-output>success = false</template-output> <template-output>success = false</template-output>