Update 9 files that referenced the old path
bmm/workflows/3-solutioning/architecture/steps/ to the correct
bmm/workflows/3-solutioning/create-architecture/steps/ after the
directory was renamed.
Fixes#1625
Co-authored-by: Junie <junie@jetbrains.com>
- create-architecture/workflow.md: fix installed_path dir name
from 'architecture' to 'create-architecture'
- create-story/checklist.md: fix 2 refs from validate-workflow.xml
to workflow.xml (file does not exist with validate- prefix)
- package.json: add --strict to validate:refs so broken references
fail CI instead of logging warnings and exiting 0
Co-authored-by: Brian <bmadcode@gmail.com>
* fix: replace bare _bmad/ backtick refs with {project-root}/_bmad/
Closes#1718 (partial — bare _bmad/ category only)
* fix: replace relative step refs with {project-root}/_bmad/ paths
Converts all ./step-XX.md, step-XX.md, and steps/step-XX.md
backtick references in new-format workflow and step files to
full {project-root}/_bmad/... paths.
Refs #1718
* fix: correct create-architecture installed path and remaining relative refs
- replace create-architecture with architecture in all step path refs
to match workflow.md installed_path definition
- convert ../data/ relative refs in create-prd step-05/06/11 frontmatter
- fix stale nextStepFile example in create-prd step-01b-continue
- fix bare step-01-init.md ref in create-architecture step-01b-continue
Fixes#1718
* fix: convert remaining relative data refs and fix stale examples in continue steps
* fix: inline quick-spec step navigation paths, remove frontmatter tokens
Replace {nextStepFile} and {skipToStepFile} frontmatter tokens with
explicit {project-root}/_bmad/ paths in all quick-spec step files.
These are LLM prompts, not config files -- inline paths are clearer
and carry semantic information without indirection. Also standardize
wording from "Load" to "Read fully and follow:" for consistency.
Also add .junie/ to .prettierignore to fix unrelated CI noise.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
The 4-backtick markdown fence closed prematurely at line 235,
orphaning template content and causing a stray 3-backtick fence
to swallow sections 9-13 into an unclosed code block.
The PRD workflow step-02 was refactored to be discovery-only with
forward references to steps 2b and 2c, but those files were never
created. This left a gap where the workflow jumped from classification
directly to success criteria with no executive summary generation.
- Add step-02b-vision.md: collaborative vision/differentiator discovery
- Add step-02c-executive-summary.md: generate and append exec summary
- Update step-02 nextStepFile to chain through 02b instead of skipping to 03
* fix: remove output_folder/story_dir aliases, flatten variables sections (#1602)
Drop pointless alias variables (output_folder, story_dir, story_directory)
from Phase 4, Quick Flow, and QA workflows. Replace all references with
the canonical {implementation_artifacts} or {planning_artifacts} variables.
Also flatten unnecessary `variables:` YAML nesting in all affected
workflow.yaml files — the workflow engine treats all keys as top-level,
so the nesting added complexity with no semantic value.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add missing config declarations, remove remaining aliases and dead variables
- Add missing document_output_language and user_skill_level to create-story
(referenced in instructions.xml but never declared)
- Remove retrospectives_folder alias, replace with canonical implementation_artifacts
- Remove unused sprint_status and duplicate validation alias from correct-course
- Remove unused date, planning_artifacts, tracking_system from sprint-status
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: address PR review findings and rename shadowed output_folder variable
- Fix single/double brace mismatch for {implementation_artifacts} in
create-story instructions.xml (F1)
- Remove escaped asterisks in glob patterns in retrospective
instructions.md (F2)
- Eliminate redundant {config_source} re-resolution for story_location
in sprint-planning workflow.yaml (F5)
- Add explicit instruction to discover previous_story_num by scanning
artifacts instead of leaving it undefined (#7)
- Rename output_folder to project_knowledge in document-project
workflows to stop shadowing the canonical core config variable (#13)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: use plural retrospectives in previous retro search instructions
The glob pattern can match multiple retrospective files for the same
epic (e.g., partial mid-sprint retro and full completion retro). Use
plural "retrospectives" to make clear the LLM should load all matches.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
When only one PRD exists in planning_artifacts, use it automatically
instead of prompting the user for its path. Still asks when multiple
PRDs are found or falls back to manual input when none are discovered.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* fix(bmm): add missing project-context references to workflows
correct-course, retrospective, and sprint-status workflows were missing
project_context entirely. quick-spec referenced it in step files but not
in the initialization sequence.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(bmm): add explicit project-context load instructions to workflows
Add Load project_context if exists action to instruction files for
correct-course, retrospective, sprint-status, and sprint-planning.
The workflow.yaml declarations alone do not cause the file to be loaded;
the instruction files must explicitly reference it.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add custom GitHub Copilot installer handler
Adds a dedicated GitHub Copilot handler that generates:
- Agent files with .agent.md extension and enriched descriptions
- Prompt files (.prompt.md) for workflows, tasks, and agent activators
- copilot-instructions.md with project config and agent reference table
Replaces the generic config-driven handler with a custom one that
properly supports Copilot's agent/prompt file conventions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: escape YAML descriptions and preserve user copilot-instructions
- Escape single quotes in YAML frontmatter descriptions across all prompt
generators (createWorkflowPromptContent, createTechWriterPromptContent,
createAgentActivatorPromptContent) to match createAgentContent behavior
- Make copilot-instructions.md non-destructive using BMAD markers
(<!-- BMAD:START --> / <!-- BMAD:END -->) to preserve user content
- On cleanup, only remove content between markers; skip files without markers
- Back up existing unmarked files before overwriting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: add error handling for CSV read/parse in loadAgentManifest and loadBmadHelp
Wrap file read and csv.parse in try/catch blocks so malformed or
unreadable CSV files gracefully degrade instead of aborting setup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: use specific detection paths instead of .github configDir
Set configDir to null and use detectionPaths with
.github/copilot-instructions.md and .github/agents/ so the base
detect() doesn't false-positive on every GitHub repo.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: add comments explaining hardcoded bmm/config.yaml in prompts
Clarify that bmm/config.yaml is safe to hardcode in generated prompt
content because these prompts are only created when bmm module data
(bmad-help.csv, agent artifacts) exists.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: guard against missing workflow-file in bmad-help.csv entries
Skip entries where workflow-file is empty/undefined to prevent
workflowFile.endsWith() from throwing during prompt generation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: guard escapeYamlSingleQuote against undefined input
Default to empty string when value is undefined/null to prevent
replaceAll from throwing on missing CSV fields.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: preserve customised tool permissions across reinstalls
Before this change, reinstalling would overwrite any user-customised
tools arrays in agent and prompt frontmatter with the hardcoded default.
Now the installer reads existing tool permissions from .agent.md and
.prompt.md files before cleanup, and re-applies them to the regenerated
files. Falls back to the default ['read', 'edit', 'search', 'execute']
for new files or files without prior customisation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: prevent cleanup from stripping copilot-instructions.md markers before generation
The cleanup() method was removing the BMAD marker section from
copilot-instructions.md, leaving user content without markers.
generateCopilotInstructions() then treated the markerless file as
legacy, backed it up, and overwrote user content.
Fix: remove the copilot-instructions.md block from cleanup() entirely.
generateCopilotInstructions() already handles marker-based replacement
in a single read-modify-write pass that correctly preserves user content.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* docs: update manager.js comments to include github-copilot.js
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: make agent capabilities data-driven via agent YAML metadata
Replace the hardcoded getAgentCapabilities() map with a data-driven
pipeline. Capabilities are now defined in each .agent.yaml source file,
compiled into the XML output, extracted into agent-manifest.csv by the
manifest generator, and read by the GitHub Copilot handler at install
time. New agents automatically get their capabilities without code
changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: use this.bmadFolderName instead of hardcoded _bmad in template paths
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Removes the security-risky _module-installer pattern (code execution at
install time) in favor of a declarative `directories` key in module.yaml.
The main installer now handles directory creation centrally based on this
config, eliminating per-module installer.js scripts and their CJS/ESM issues.
Changes:
- Delete src/bmm/_module-installer/installer.js
- Delete src/core/_module-installer/installer.js
- Add `directories` key to src/bmm/module.yaml
- Rename runModuleInstaller() -> createModuleDirectories()
- Remove _module-installer from ESLint overrides
- Remove _module-installer from file-ref validator skip dirs
Update all references to the help task file from the old path
`_bmad/core/tasks/bmad-help.md` to the new path `_bmad/core/tasks/help.md`.
Affected files:
- 7 workflow step files across multiple workflows
- 1 IDE tool command generator (updated comments)
Remove the forbidden `workflow_path` frontmatter variable from 16 step files
across 3 workflows (quick-dev, quick-spec, check-implementation-readiness).
Per BMAD workflow standards, step files should use relative paths or
{project-root} references instead.
Changes:
- quick-dev (6 files): removed workflow_path and unused thisStepFile
- quick-spec (4 files): removed workflow_path, updated templateFile to use relative path
- check-implementation-readiness (6 files): removed workflow_path, updated all references to use relative paths
Also fixes incorrect path in check-implementation-readiness that referenced
non-existent 'implementation-readiness' folder instead of 'check-implementation-readiness'.
Fixes#1546
Fixes#1547
- step-05 now correctly routes to step-06-research-synthesis.md instead of presenting itself as the final step
- Fixed step-04 stepsCompleted: [1,2,3] → [1,2,3,4]
- Fixed step-05 stepsCompleted: [1,2,3,4] → [1,2,3,4,5]
- Fixed step-06 stepsCompleted: [1,2,3,4,5] → [1,2,3,4,5,6]
- Fixed step-05 title from "Step 4" to "Step 5"
- Fixed step-06 title from "Step 5" to "Step 6"
- Updated success/failure metrics and NEXT STEP sections
This mirrors the fix applied to market research in Beta.5, ensuring the technical research workflow properly completes through all 6 steps.
- Replace "invoke the review task" with "load and follow the review task"
- Replace "run this step/task" with "load this step/task"
- Aligns with canonical phrasing from PR #1387Closes#1378
Adds two operational technology domains to domain-complexity.csv
in both PRD and architecture workflows. Addresses the gap in OT
domain coverage for physical process control and building systems.
process_control: industrial automation, SCADA, PLC, DCS, I&C,
P&ID — covers power/utilities, water treatment, oil & gas,
manufacturing, chemical, pharmaceutical, food & beverage, mining,
and other sectors where software controls physical processes.
Key concerns include functional safety, process safety and hazard
analysis, environmental compliance, OT cybersecurity, and plant
reliability/maintainability. Requires engineering_authority PRD
section for PE/EOR credential requirements.
building_automation: BAS/BMS, HVAC, fire alarm, fire protection,
life safety, elevators, lighting, access control, commissioning —
covers commercial and institutional building systems. Key concerns
include life safety codes, multi-trade coordination, commissioning,
and indoor environmental quality.
Both domains are high complexity, include engineering_authority
as a required PRD section, and follow established entry patterns.
Fixes#1240
Co-authored-by: Brian <bmadcode@gmail.com>
Replace /src/core/ paths with {project-root}/_bmad/core/ convention
in validation-report-prd-workflow.md lines 293-294.
These paths reference party-mode and advanced-elicitation workflows
using the source tree layout (/src/core/) instead of the installed
layout ({project-root}/_bmad/core/) that Beta.4 standardized
across all other files.
This is the remaining half of the fix for #1435, which was closed
as "will fix with .4 release" but only the brianmadison path on
line 11 and the XML syntax issue were addressed. The /src/core/
paths on lines 293-294 were missed.
Fixes#1480
Connect orphaned detailed customer analysis chain (steps 02-behavior,
03-pain-points, 04-decisions) by updating step-01-init to load
step-02-customer-behavior instead of the condensed
step-02-customer-insights. Remove the now-superseded monolithic file.
Fixes#1399
Co-authored-by: Brian <bmadcode@gmail.com>
The validationWorkflow reference uses ./steps-v/step-v-01-discovery.md
but steps-v/ is a sibling of steps-e/, not a child. Corrected to
../steps-v/step-v-01-discovery.md.
Fixes#1496
Co-authored-by: Brian <bmadcode@gmail.com>
* fix: correct malformed XML syntax and remove hardcoded path
- Fix missing opening quote in activation-steps.txt: `n={HELP_STEP}"` → `n="{HELP_STEP}"`
- Remove spurious hyphen: `-Let` → `Let`
- Replace hardcoded `/Users/brianmadison/...` path with relative path
Fixes#1435
* fix: add missing HELP_STEP placeholder replacement
The activation-steps.txt template includes a {HELP_STEP} placeholder,
but activation-builder.js never calculated or replaced it. This caused
the literal string "{HELP_STEP}" to appear in compiled agent files.
Added helpStep calculation between menuStep and haltStep, and adjusted
subsequent step numbers accordingly.
Fixes#1441
* Update src/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md
---------
Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>
- Fix workflow_path in step-01-understand.md, step-02-investigate.md, and step-03-generate.md
- Changed from non-existent 'create-tech-spec' to correct 'quick-spec'
- Aligns with step-04-review.md which already had correct path
Co-authored-by: Your Name <you@example.com>
Co-authored-by: Brian <bmadcode@gmail.com>
* docs: radical reduction of documentation scope for v6 beta
Archive and basement unreviewed content to ship a focused, minimal doc set.
Changes:
- Archive stale how-to workflow guides (will rewrite for v6)
- Archive outdated explanation and reference content
- Move unreviewed content to basement for later review
- Reorganize TEA docs into dedicated /tea/ section
- Add workflow-map visual reference page
- Simplify getting-started tutorial and sidebar navigation
- Add explanation pages: brainstorming, adversarial-review, party-mode,
quick-flow, advanced-elicitation
- Fix base URL handling for subdirectory deployments (GitHub Pages forks)
The goal is a minimal, accurate doc set for beta rather than
comprehensive but potentially misleading content.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor: restructure BMM and agents documentation by consolidating and flattening index files.
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Directory was renamed in 1da77058 but step file contents weren't updated.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
Group "go-on" options first (Done, Begin Dev), then reasoning options
(Advanced Elicitation, Party Mode, Adversarial Review).
Follows established pattern: most common action first, related options grouped.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* fix(quick-spec): change menu shortcuts to avoid Approve/Advanced confusion
Users were typing 'a' expecting to Approve (since it starts with A) but
triggering Advanced Elicitation instead. Changed shortcuts to:
- [C] Continue (was [Y] Approve)
- [E] Edit (was [C] Changes)
This keeps [A] for Advanced Elicitation consistent with other workflows.
Fixes user-reported UX issue with confusing menu shortcuts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(quick-dev): standardize menu shortcuts to use intuitive letters
- Change [T] to [P] for "Plan first" (P matches the label)
- Change [1][2][3] to [W][F][S] for findings resolution:
- [W] Walk through
- [F] Fix automatically
- [S] Skip
Consistent with letter-based menu pattern used elsewhere.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Update quick-spec and quick-dev workflow menus to match established standards:
- Uppercase all menu option letters ([A], [P], [C], [T], [E], [W], etc.)
- Add "Menu Handling Logic:" sections with IF/THEN structure
- Add "EXECUTION RULES:" sections with halt/wait behavior
- Add chat handling for checkpoint menus (A/P/C)
- Remove code blocks from Display patterns, use standard format
- Add header for adversarial review process block
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
Replace ambiguous "execute" terminology with explicit "Read fully and follow:"
phrasing across all workflow files to prevent LLM goal-seeking behavior where
models attempt to "achieve the end result" rather than following step-by-step
instructions verbatim.
Changes:
- Update 5 handler templates with canonical phrasing
- Replace ~150 INSTRUCTIONAL patterns across 87 workflow files
- Add "[Workflow] complete." prefix to 7 workflow endpoints
- Preserve BEHAVIORAL/STRUCTURAL patterns (agent descriptions, XML tags)
- Fix gitignore and markdownlint to ignore all node_modules directories
Closes#1372
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
The correct-course workflow restructures epics but did not update
sprint-status.yaml, leaving tracking out of sync. Added check-item 6.4
to Section 6 (after user approval) to update sprint-status.yaml when
epics are added, removed, renumbered, or stories are modified.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>