bmad-method 6.0.0-Beta.5 → 6.0.0-Beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/.claude/skills/changelog-social/SKILL.md +178 -0
  2. package/.claude/skills/changelog-social/examples/discord-example.md +53 -0
  3. package/.claude/skills/changelog-social/examples/linkedin-example.md +49 -0
  4. package/.claude/skills/changelog-social/examples/twitter-example.md +55 -0
  5. package/.claude/skills/changelog-social.skill +0 -0
  6. package/.claude/skills/draft-changelog/SKILL.md +2 -2
  7. package/.claude/skills/draft-changelog/prompts/instructions.md +25 -1
  8. package/.claude/skills/gh-triage/SKILL.md +1 -1
  9. package/.claude/skills/release-module/SKILL.md +1 -1
  10. package/.claude/skills/release-module/prompts/instructions.md +0 -4
  11. package/.github/workflows/quality.yaml +3 -0
  12. package/.vscode/settings.json +1 -2
  13. package/CHANGELOG.md +65 -1
  14. package/docs/bmgd/game-types.md +1 -0
  15. package/docs/bmgd/index.md +1 -1
  16. package/docs/bmgd/quick-flow-workflows.md +1 -0
  17. package/docs/reference/agents.md +22 -0
  18. package/docs/reference/commands.md +34 -0
  19. package/docs/reference/testing.md +21 -0
  20. package/docs/reference/workflow-map.md +1 -1
  21. package/package.json +5 -2
  22. package/src/bmm/agents/analyst.agent.yaml +11 -5
  23. package/src/bmm/agents/dev.agent.yaml +0 -1
  24. package/src/bmm/agents/pm.agent.yaml +3 -6
  25. package/src/bmm/agents/{quinn.agent.yaml → qa.agent.yaml} +3 -3
  26. package/src/bmm/module-help.csv +13 -20
  27. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +0 -1
  28. package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  29. package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
  30. package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  31. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +2 -0
  32. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
  33. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  34. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +65 -0
  35. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +0 -1
  36. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +0 -1
  37. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +2 -0
  38. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +0 -1
  39. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +0 -1
  40. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -3
  41. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -4
  42. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -4
  43. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -4
  44. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -3
  45. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -4
  46. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +0 -6
  47. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +0 -1
  48. package/src/bmm/workflows/document-project/workflow.yaml +0 -8
  49. package/src/bmm/workflows/qa/automate/workflow.yaml +0 -2
  50. package/src/core/tasks/editorial-review-prose.xml +14 -12
  51. package/src/core/tasks/editorial-review-structure.xml +28 -28
  52. package/src/core/tasks/help.md +36 -16
  53. package/src/core/tasks/index-docs.xml +1 -1
  54. package/src/core/tasks/review-adversarial-general.xml +2 -2
  55. package/src/core/tasks/shard-doc.xml +1 -2
  56. package/src/core/tasks/workflow.xml +1 -1
  57. package/src/core/workflows/advanced-elicitation/workflow.xml +1 -1
  58. package/test/test-installation-components.js +1 -1
  59. package/tools/build-docs.js +21 -1
  60. package/tools/cli/bmad-cli.js +42 -3
  61. package/tools/cli/installers/lib/core/config-collector.js +5 -1
  62. package/tools/cli/installers/lib/core/dependency-resolver.js +1 -1
  63. package/tools/cli/installers/lib/core/installer.js +1 -6
  64. package/tools/cli/installers/lib/core/manifest-generator.js +149 -125
  65. package/tools/cli/installers/lib/custom/handler.js +1 -1
  66. package/tools/cli/installers/lib/ide/_base-ide.js +25 -15
  67. package/tools/cli/installers/lib/ide/_config-driven.js +79 -9
  68. package/tools/cli/installers/lib/ide/codex.js +7 -1
  69. package/tools/cli/installers/lib/ide/manager.js +8 -2
  70. package/tools/cli/installers/lib/ide/platform-codes.yaml +0 -3
  71. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +2 -2
  72. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +14 -3
  73. package/tools/cli/installers/lib/ide/shared/path-utils.js +9 -2
  74. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +126 -29
  75. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +2 -2
  76. package/tools/cli/installers/lib/ide/templates/combined/default-task.md +10 -0
  77. package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +10 -0
  78. package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +11 -0
  79. package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +11 -0
  80. package/tools/cli/installers/lib/modules/manager.js +3 -6
  81. package/tools/cli/lib/agent/installer.js +1 -1
  82. package/tools/cli/lib/prompts.js +192 -6
  83. package/tools/cli/lib/ui.js +124 -72
  84. package/tools/schema/agent.js +0 -1
  85. package/tools/validate-file-refs.js +480 -0
  86. package/website/astro.config.mjs +1 -35
  87. package/src/bmm/workflows/1-analysis/research/workflow.md +0 -173
  88. package/src/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +0 -433
  89. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow.md +0 -150
  90. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +0 -90
  91. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +0 -127
  92. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +0 -39
  93. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +0 -130
  94. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +0 -27
  95. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +0 -43
  96. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +0 -141
  97. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +0 -27
  98. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +0 -49
  99. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +0 -241
  100. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +0 -27
  101. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +0 -38
  102. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +0 -133
  103. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +0 -27
  104. package/src/core/resources/excalidraw/README.md +0 -160
  105. package/src/core/resources/excalidraw/excalidraw-helpers.md +0 -127
  106. package/src/core/resources/excalidraw/library-loader.md +0 -50
  107. package/src/core/resources/excalidraw/validate-json-instructions.md +0 -79
  108. package/tools/flattener/aggregate.js +0 -76
  109. package/tools/flattener/binary.js +0 -80
  110. package/tools/flattener/discovery.js +0 -71
  111. package/tools/flattener/files.js +0 -35
  112. package/tools/flattener/ignoreRules.js +0 -172
  113. package/tools/flattener/main.js +0 -483
  114. package/tools/flattener/projectRoot.js +0 -201
  115. package/tools/flattener/prompts.js +0 -44
  116. package/tools/flattener/stats.helpers.js +0 -368
  117. package/tools/flattener/stats.js +0 -75
  118. package/tools/flattener/test-matrix.js +0 -409
  119. package/tools/flattener/xml.js +0 -82
@@ -53,6 +53,3 @@ input_file_patterns:
53
53
  sprint_status_file: "{implementation_artifacts}/sprint-status.yaml"
54
54
  story_directory: "{implementation_artifacts}"
55
55
  retrospectives_folder: "{implementation_artifacts}"
56
-
57
- standalone: true
58
- web_bundle: false
@@ -49,7 +49,3 @@ input_file_patterns:
49
49
 
50
50
  # Output configuration
51
51
  default_output_file: "{status_file}"
52
-
53
- standalone: true
54
-
55
- web_bundle: false
@@ -28,9 +28,3 @@ input_file_patterns:
28
28
  description: "Sprint status file generated by sprint-planning"
29
29
  whole: "{implementation_artifacts}/sprint-status.yaml"
30
30
  load_strategy: "FULL_LOAD"
31
-
32
- # Standalone so IDE commands get generated
33
- standalone: true
34
-
35
- # No web bundle needed
36
- web_bundle: false
@@ -2,7 +2,6 @@
2
2
  name: quick-spec
3
3
  description: Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec.
4
4
  main_config: '{project-root}/_bmad/bmm/config.yaml'
5
- web_bundle: true
6
5
 
7
6
  # Checkpoint handler paths
8
7
  advanced_elicitation: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
@@ -20,11 +20,3 @@ validation: "{installed_path}/checklist.md"
20
20
 
21
21
  # Required data files - CRITICAL for project type detection and documentation requirements
22
22
  documentation_requirements_csv: "{installed_path}/documentation-requirements.csv"
23
-
24
- # Output configuration - Multiple files generated in output folder
25
- # Primary output: {output_folder}/project-documentation/
26
- # Additional files generated by sub-workflows based on project structure
27
-
28
- standalone: true
29
-
30
- web_bundle: false
@@ -45,5 +45,3 @@ execution_hints:
45
45
  interactive: false
46
46
  autonomous: true
47
47
  iterative: false
48
-
49
- web_bundle: false
@@ -1,7 +1,6 @@
1
1
  <task id="_bmad/core/tasks/editorial-review-prose.xml"
2
2
  name="Editorial Review - Prose"
3
- description="Clinical copy-editor that reviews text for communication issues"
4
- standalone="true">
3
+ description="Clinical copy-editor that reviews text for communication issues">
5
4
 
6
5
  <objective>Review text for communication issues that impede comprehension and output suggested fixes in a three-column table</objective>
7
6
 
@@ -10,7 +9,7 @@
10
9
  <input name="style_guide" required="false"
11
10
  desc="Project-specific style guide. When provided, overrides all generic
12
11
  principles in this task (except CONTENT IS SACROSANCT). The style guide
13
- is the final authority on tone, structure, and language choices."/>
12
+ is the final authority on tone, structure, and language choices." />
14
13
  <input name="reader_type" required="false" default="humans" desc="'humans' (default) for standard editorial, 'llm' for precision focus" />
15
14
  </inputs>
16
15
 
@@ -62,7 +61,8 @@
62
61
  </step>
63
62
 
64
63
  <step n="3" title="Editorial Review" critical="true">
65
- <action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this review</action>
64
+ <action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this
65
+ review</action>
66
66
  <action>Review all prose sections (skip code blocks, frontmatter, structural markup)</action>
67
67
  <action>Identify communication issues that impede comprehension</action>
68
68
  <action>For each issue, determine the minimal fix that achieves clarity</action>
@@ -77,16 +77,18 @@
77
77
  <action if="no issues found">Output: "No editorial issues identified"</action>
78
78
 
79
79
  <output-format>
80
- | Original Text | Revised Text | Changes |
81
- |---------------|--------------|---------|
82
- | The exact original passage | The suggested revision | Brief explanation of what changed and why |
80
+ | Original Text | Revised Text | Changes |
81
+ |---------------|--------------|---------|
82
+ | The exact original passage | The suggested revision | Brief explanation of what changed and why |
83
83
  </output-format>
84
84
 
85
85
  <example title="Correct output format">
86
- | Original Text | Revised Text | Changes |
87
- |---------------|--------------|---------|
88
- | The system will processes data and it handles errors. | The system processes data and handles errors. | Fixed subject-verb agreement ("will processes" to "processes"); removed redundant "it" |
89
- | Users can chose from options (lines 12, 45, 78) | Users can choose from options | Fixed spelling: "chose" to "choose" (appears in 3 locations) |
86
+ | Original Text | Revised Text | Changes |
87
+ |---------------|--------------|---------|
88
+ | The system will processes data and it handles errors. | The system processes data and handles errors. | Fixed subject-verb
89
+ agreement ("will processes" to "processes"); removed redundant "it" |
90
+ | Users can chose from options (lines 12, 45, 78) | Users can choose from options | Fixed spelling: "chose" to "choose" (appears in
91
+ 3 locations) |
90
92
  </example>
91
93
  </step>
92
94
  </flow>
@@ -97,4 +99,4 @@
97
99
  <condition>If no issues found after thorough review, output "No editorial issues identified" (this is valid completion, not an error)</condition>
98
100
  </halt-conditions>
99
101
 
100
- </task>
102
+ </task>
@@ -4,29 +4,28 @@
4
4
  <task id="_bmad/core/tasks/editorial-review-structure.xml"
5
5
  name="Editorial Review - Structure"
6
6
  description="Structural editor that proposes cuts, reorganization,
7
- and simplification while preserving comprehension"
8
- standalone="true">
7
+ and simplification while preserving comprehension">
9
8
  <objective>Review document structure and propose substantive changes
10
9
  to improve clarity and flow-run this BEFORE copy editing</objective>
11
10
  <inputs>
12
11
  <input name="content" required="true"
13
- desc="Document to review (markdown, plain text, or structured content)"/>
12
+ desc="Document to review (markdown, plain text, or structured content)" />
14
13
  <input name="style_guide" required="false"
15
14
  desc="Project-specific style guide. When provided, overrides all generic
16
15
  principles in this task (except CONTENT IS SACROSANCT). The style guide
17
- is the final authority on tone, structure, and language choices."/>
16
+ is the final authority on tone, structure, and language choices." />
18
17
  <input name="purpose" required="false"
19
18
  desc="Document's intended purpose (e.g., 'quickstart tutorial',
20
- 'API reference', 'conceptual overview')"/>
19
+ 'API reference', 'conceptual overview')" />
21
20
  <input name="target_audience" required="false"
22
21
  desc="Who reads this? (e.g., 'new users', 'experienced developers',
23
- 'decision makers')"/>
22
+ 'decision makers')" />
24
23
  <input name="reader_type" required="false" default="humans"
25
24
  desc="'humans' (default) preserves comprehension aids;
26
- 'llm' optimizes for precision and density"/>
25
+ 'llm' optimizes for precision and density" />
27
26
  <input name="length_target" required="false"
28
27
  desc="Target reduction (e.g., '30% shorter', 'half the length',
29
- 'no limit')"/>
28
+ 'no limit')" />
30
29
  </inputs>
31
30
  <llm critical="true">
32
31
  <i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
@@ -69,7 +68,7 @@
69
68
  <i>Cut emotional language, encouragement, and orientation sections</i>
70
69
  <i>
71
70
  IF concept is well-known from training (e.g., "conventional
72
- commits", "REST APIs"): Reference the standard-don't re-teach it
71
+ commits", "REST APIs"): Reference the standard-don't re-teach it
73
72
  ELSE: Be explicit-don't assume the LLM will infer correctly
74
73
  </i>
75
74
  <i>Use consistent terminology-same word for same concept throughout</i>
@@ -132,7 +131,8 @@
132
131
  <action>Note reader_type and which principles apply (human-reader-principles or llm-reader-principles)</action>
133
132
  </step>
134
133
  <step n="3" title="Structural Analysis" critical="true">
135
- <action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this analysis</action>
134
+ <action if="style_guide provided">Consult style_guide now and note its key requirements—these override default principles for this
135
+ analysis</action>
136
136
  <action>Map the document structure: list each major section with its word count</action>
137
137
  <action>Evaluate structure against the selected model's primary rules
138
138
  (e.g., 'Does recommendation come first?' for Pyramid)</action>
@@ -176,27 +176,27 @@
176
176
  <action>Output estimated total reduction if all recommendations accepted</action>
177
177
  <action if="no recommendations">Output: "No substantive changes recommended-document structure is sound"</action>
178
178
  <output-format>
179
- ## Document Summary
180
- - **Purpose:** [inferred or provided purpose]
181
- - **Audience:** [inferred or provided audience]
182
- - **Reader type:** [selected reader type]
183
- - **Structure model:** [selected structure model]
184
- - **Current length:** [X] words across [Y] sections
179
+ ## Document Summary
180
+ - **Purpose:** [inferred or provided purpose]
181
+ - **Audience:** [inferred or provided audience]
182
+ - **Reader type:** [selected reader type]
183
+ - **Structure model:** [selected structure model]
184
+ - **Current length:** [X] words across [Y] sections
185
185
 
186
- ## Recommendations
186
+ ## Recommendations
187
187
 
188
- ### 1. [CUT/MERGE/MOVE/CONDENSE/QUESTION/PRESERVE] - [Section or element name]
189
- **Rationale:** [One sentence explanation]
190
- **Impact:** ~[X] words
191
- **Comprehension note:** [If applicable, note impact on reader understanding]
188
+ ### 1. [CUT/MERGE/MOVE/CONDENSE/QUESTION/PRESERVE] - [Section or element name]
189
+ **Rationale:** [One sentence explanation]
190
+ **Impact:** ~[X] words
191
+ **Comprehension note:** [If applicable, note impact on reader understanding]
192
192
 
193
- ### 2. ...
193
+ ### 2. ...
194
194
 
195
- ## Summary
196
- - **Total recommendations:** [N]
197
- - **Estimated reduction:** [X] words ([Y]% of original)
198
- - **Meets length target:** [Yes/No/No target specified]
199
- - **Comprehension trade-offs:** [Note any cuts that sacrifice reader engagement for brevity]
195
+ ## Summary
196
+ - **Total recommendations:** [N]
197
+ - **Estimated reduction:** [X] words ([Y]% of original)
198
+ - **Meets length target:** [Yes/No/No target specified]
199
+ - **Comprehension trade-offs:** [Note any cuts that sacrifice reader engagement for brevity]
200
200
  </output-format>
201
201
  </step>
202
202
  </flow>
@@ -206,4 +206,4 @@
206
206
  <condition>If no structural issues found, output "No substantive changes
207
207
  recommended" (this is valid completion, not an error)</condition>
208
208
  </halt-conditions>
209
- </task>
209
+ </task>
@@ -1,12 +1,11 @@
1
1
  ---
2
2
  name: help
3
3
  description: Get unstuck by showing what workflow steps come next or answering questions about what to do
4
- standalone: true
5
4
  ---
6
5
 
7
6
  # Task: BMAD Help
8
7
 
9
- ## KEY RULES
8
+ ## ROUTING RULES
10
9
 
11
10
  - **Empty `phase` = anytime** — Universal tools work regardless of workflow state
12
11
  - **Numbered phases indicate sequence** — Phases like `1-discover` → `2-define` → `3-build` → `4-ship` flow in order (naming varies by module)
@@ -15,6 +14,26 @@ standalone: true
15
14
  - **`required=true` blocks progress** — Required workflows must complete before proceeding to later phases
16
15
  - **Artifacts reveal completion** — Search resolved output paths for `outputs` patterns, fuzzy-match found files to workflow rows
17
16
 
17
+ ## DISPLAY RULES
18
+
19
+ ### Command-Based Workflows
20
+ When `command` field has a value:
21
+ - Show the command prefixed with `/` (e.g., `/bmad-bmm-create-prd`)
22
+
23
+ ### Agent-Based Workflows
24
+ When `command` field is empty:
25
+ - User loads agent first via `/agent-command`
26
+ - Then invokes by referencing the `code` field or describing the `name` field
27
+ - Do NOT show a slash command — show the code value and agent load instruction instead
28
+
29
+ Example presentation for empty command:
30
+ ```
31
+ Explain Concept (EC)
32
+ Load: /tech-writer, then ask to "EC about [topic]"
33
+ Agent: Tech Writer
34
+ Description: Create clear technical explanations with examples...
35
+ ```
36
+
18
37
  ## MODULE DETECTION
19
38
 
20
39
  - **Empty `module` column** → universal tools (work across all modules)
@@ -25,10 +44,10 @@ Detect the active module from conversation context, recent workflows, or user qu
25
44
  ## INPUT ANALYSIS
26
45
 
27
46
  Determine what was just completed:
28
- - Did someone state they completed something? Proceed as if that was the input.
29
- - Was a workflow just completed in this conversation? Proceed as if that was the input.
30
- - Search resolved artifact locations for files; fuzzy-match to workflow `outputs` patterns.
31
- - If an `index.md` exists, read it for additional context.
47
+ - Explicit completion stated by user
48
+ - Workflow completed in current conversation
49
+ - Artifacts found matching `outputs` patterns
50
+ - If `index.md` exists, read it for additional context
32
51
  - If still unclear, ask: "What workflow did you most recently complete?"
33
52
 
34
53
  ## EXECUTION
@@ -37,26 +56,27 @@ Determine what was just completed:
37
56
 
38
57
  2. **Resolve output locations** — Scan each folder under `_bmad/` (except `_config`) for `config.yaml`. For each workflow row, resolve its `output-location` variables against that module's config so artifact paths can be searched.
39
58
 
40
- 3. **Analyze input** — Task may provide a workflow name/code, conversational phrase, or nothing. Infer what was just completed using INPUT ANALYSIS above.
41
-
42
- 4. **Detect active module** — Use MODULE DETECTION above to determine which module the user is working in.
59
+ 3. **Detect active module** — Use MODULE DETECTION above
43
60
 
44
- 5. **Present recommendations** — Show next steps based on completed workflows, phase/sequence ordering (KEY RULES), and artifact detection. Format per the following
61
+ 4. **Analyze input** — Task may provide a workflow name/code, conversational phrase, or nothing. Infer what was just completed using INPUT ANALYSIS above.
45
62
 
46
- ## RECOMMENDED OUTPUT FORMAT
63
+ 5. **Present recommendations** — Show next steps based on:
64
+ - Completed workflows detected
65
+ - Phase/sequence ordering (ROUTING RULES)
66
+ - Artifact presence
47
67
 
48
68
  **Optional items first** — List optional workflows until a required step is reached
49
69
  **Required items next** — List the next required workflow
50
- For each item show:
70
+
71
+ For each item, apply DISPLAY RULES above and include:
51
72
  - Workflow **name**
52
- - **Command** (prefixed with `/`, e.g., `/bmad:example:build-prototype`)
73
+ - **Command** OR **Code + Agent load instruction** (per DISPLAY RULES)
53
74
  - **Agent** title and display name from the CSV (e.g., "🎨 Alex (Designer)")
54
75
  - Brief **description**
55
76
 
56
- ### Additional response output guidance to convey:
77
+ 6. **Additional guidance to convey**:
57
78
  - Run each workflow in a **fresh context window**
58
- - Load the agent using (`/` + `agent-command`), or run the workflow command directly
59
79
  - For **validation workflows**: recommend using a different high-quality LLM if available
60
80
  - For conversational requests: match the user's tone while presenting clearly
61
81
 
62
- 6. Return to the calling process after presenting recommendations.
82
+ 7. Return to the calling process after presenting recommendations.
@@ -1,5 +1,5 @@
1
1
  <task id="_bmad/core/tasks/index-docs" name="Index Docs"
2
- description="Generates or updates an index.md of all documents in the specified directory" webskip="true" standalone="true">
2
+ description="Generates or updates an index.md of all documents in the specified directory">
3
3
  <llm critical="true">
4
4
  <i>MANDATORY: Execute ALL steps in the flow section IN EXACT ORDER</i>
5
5
  <i>DO NOT skip steps or change the sequence</i>
@@ -1,7 +1,7 @@
1
1
  <!-- if possible, run this in a separate subagent or process with read access to the project,
2
2
  but no context except the content to review -->
3
3
 
4
- <task id="_bmad/core/tasks/review-adversarial-general.xml" name="Adversarial Review (General)" standalone="true">
4
+ <task id="_bmad/core/tasks/review-adversarial-general.xml" name="Adversarial Review (General)">
5
5
  <objective>Cynically review content and produce findings</objective>
6
6
 
7
7
  <inputs>
@@ -45,4 +45,4 @@
45
45
  <condition>HALT if content is empty or unreadable</condition>
46
46
  </halt-conditions>
47
47
 
48
- </task>
48
+ </task>
@@ -1,6 +1,5 @@
1
1
  <task id="_bmad/core/tasks/shard-doc" name="Shard Document"
2
- description="Splits large markdown documents into smaller, organized files based on level 2 (default) sections" webskip="true"
3
- standalone="true">
2
+ description="Splits large markdown documents into smaller, organized files based on level 2 (default) sections">
4
3
  <objective>Split large markdown documents into smaller, organized files based on level 2 sections using @kayvan/markdown-tree-parser tool</objective>
5
4
 
6
5
  <llm critical="true">
@@ -1,4 +1,4 @@
1
- <task id="_bmad/core/tasks/workflow.xml" name="Execute Workflow" standalone="false">
1
+ <task id="_bmad/core/tasks/workflow.xml" name="Execute Workflow" internal="true">
2
2
  <objective>Execute given workflow by loading its configuration, following instructions, and producing output</objective>
3
3
 
4
4
  <llm critical="true">
@@ -1,4 +1,4 @@
1
- <task id="_bmad/core/workflows/advanced-elicitation/workflow.xml" name="Advanced Elicitation" standalone="true"
1
+ <task id="_bmad/core/workflows/advanced-elicitation/workflow.xml" name="Advanced Elicitation"
2
2
  methods="{project-root}/_bmad/core/workflows/advanced-elicitation/methods.csv"
3
3
  agent-party="{project-root}/_bmad/_config/agent-manifest.csv">
4
4
  <llm critical="true">
@@ -164,7 +164,7 @@ async function runTests() {
164
164
 
165
165
  try {
166
166
  const builder = new YamlXmlBuilder();
167
- const qaAgentPath = path.join(projectRoot, 'src/bmm/agents/quinn.agent.yaml');
167
+ const qaAgentPath = path.join(projectRoot, 'src/bmm/agents/qa.agent.yaml');
168
168
  const tempOutput = path.join(__dirname, 'temp-qa-agent.md');
169
169
 
170
170
  try {
@@ -38,6 +38,7 @@ const LLM_EXCLUDE_PATTERNS = [
38
38
  'faq',
39
39
  'reference/glossary/',
40
40
  'explanation/game-dev/',
41
+ 'bmgd/',
41
42
  // Note: Files/dirs starting with _ (like _STYLE_GUIDE.md, _archive/) are excluded in shouldExcludeFromLlm()
42
43
  ];
43
44
 
@@ -194,7 +195,7 @@ function generateLlmsFullTxt(docsDir, outputDir) {
194
195
  console.log(' → Generating llms-full.txt...');
195
196
 
196
197
  const date = new Date().toISOString().split('T')[0];
197
- const files = getAllMarkdownFiles(docsDir);
198
+ const files = getAllMarkdownFiles(docsDir).sort(compareLlmDocs);
198
199
 
199
200
  const output = [
200
201
  '# BMAD Method Documentation (Full)',
@@ -236,6 +237,25 @@ function generateLlmsFullTxt(docsDir, outputDir) {
236
237
  );
237
238
  }
238
239
 
240
+ function compareLlmDocs(a, b) {
241
+ const aKey = getLlmSortKey(a);
242
+ const bKey = getLlmSortKey(b);
243
+
244
+ if (aKey !== bKey) return aKey - bKey;
245
+ return a.localeCompare(b);
246
+ }
247
+
248
+ function getLlmSortKey(filePath) {
249
+ if (filePath === 'index.md') return 0;
250
+ if (filePath === 'downloads.md') return 1;
251
+ if (filePath.startsWith(`tutorials${path.sep}`) || filePath.startsWith('tutorials/')) return 2;
252
+ if (filePath.startsWith(`how-to${path.sep}`) || filePath.startsWith('how-to/')) return 3;
253
+ if (filePath.startsWith(`explanation${path.sep}`) || filePath.startsWith('explanation/')) return 4;
254
+ if (filePath.startsWith(`reference${path.sep}`) || filePath.startsWith('reference/')) return 5;
255
+ if (filePath.startsWith(`bmgd${path.sep}`) || filePath.startsWith('bmgd/')) return 6;
256
+ return 7;
257
+ }
258
+
239
259
  /**
240
260
  * Collects all Markdown (.md) files under a directory and returns their paths relative to a base directory.
241
261
  * @param {string} dir - Directory to search for Markdown files.
@@ -1,6 +1,48 @@
1
1
  const { program } = require('commander');
2
2
  const path = require('node:path');
3
3
  const fs = require('node:fs');
4
+ const { execSync } = require('node:child_process');
5
+
6
+ // Check for updates - do this asynchronously so it doesn't block startup
7
+ const packageJson = require('../../package.json');
8
+ const packageName = 'bmad-method';
9
+ checkForUpdate().catch(() => {
10
+ // Silently ignore errors - version check is best-effort
11
+ });
12
+
13
+ async function checkForUpdate() {
14
+ try {
15
+ // For beta versions, check the beta tag; otherwise check latest
16
+ const isBeta =
17
+ packageJson.version.includes('Beta') ||
18
+ packageJson.version.includes('beta') ||
19
+ packageJson.version.includes('alpha') ||
20
+ packageJson.version.includes('rc');
21
+ const tag = isBeta ? 'beta' : 'latest';
22
+
23
+ const result = execSync(`npm view ${packageName}@${tag} version`, {
24
+ encoding: 'utf8',
25
+ stdio: 'pipe',
26
+ timeout: 5000,
27
+ }).trim();
28
+
29
+ if (result && result !== packageJson.version) {
30
+ console.warn('');
31
+ console.warn(' ╔═══════════════════════════════════════════════════════════════════════════════╗');
32
+ console.warn(' ║ UPDATE AVAILABLE ║');
33
+ console.warn(' ║ ║');
34
+ console.warn(` ║ You are using version ${packageJson.version} but ${result} is available. ║`);
35
+ console.warn(' ║ ║');
36
+ console.warn(' ║ To update,exir and first run: ║');
37
+ console.warn(` ║ npm cache clean --force && npx bmad-method@${tag} install ║`);
38
+ console.warn(' ║ ║');
39
+ console.warn(' ╚═══════════════════════════════════════════════════════════════════════════════╝');
40
+ console.warn('');
41
+ }
42
+ } catch {
43
+ // Silently fail - network issues or npm not available
44
+ }
45
+ }
4
46
 
5
47
  // Fix for stdin issues when running through npm on Windows
6
48
  // Ensures keyboard interaction works properly with CLI prompts
@@ -20,9 +62,6 @@ if (process.stdin.isTTY) {
20
62
  }
21
63
  }
22
64
 
23
- // Load package.json from root for version info
24
- const packageJson = require('../../package.json');
25
-
26
65
  // Load all command modules
27
66
  const commandsPath = path.join(__dirname, 'commands');
28
67
  const commandFiles = fs.readdirSync(commandsPath).filter((file) => file.endsWith('.js'));
@@ -586,7 +586,11 @@ class ConfigCollector {
586
586
  console.log();
587
587
  console.log(chalk.cyan('?') + ' ' + chalk.magenta(moduleDisplayName));
588
588
  let customize = true;
589
- if (moduleName !== 'core') {
589
+ if (moduleName === 'core') {
590
+ // Core module: no confirm prompt, so add spacing manually to match visual style
591
+ console.log(chalk.gray('│'));
592
+ } else {
593
+ // Non-core modules: show "Accept Defaults?" confirm prompt (clack adds spacing)
590
594
  const customizeAnswer = await prompts.prompt([
591
595
  {
592
596
  type: 'confirm',
@@ -146,7 +146,7 @@ class DependencyResolver {
146
146
  const content = await fs.readFile(file.path, 'utf8');
147
147
 
148
148
  // Parse YAML frontmatter for explicit dependencies
149
- const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
149
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
150
150
  if (frontmatterMatch) {
151
151
  try {
152
152
  // Pre-process to handle backticks in YAML values
@@ -17,9 +17,7 @@ const { ManifestGenerator } = require('./manifest-generator');
17
17
  const { IdeConfigManager } = require('./ide-config-manager');
18
18
  const { CustomHandler } = require('../custom/handler');
19
19
  const prompts = require('../../../lib/prompts');
20
-
21
- // BMAD installation folder name - this is constant and should never change
22
- const BMAD_FOLDER_NAME = '_bmad';
20
+ const { BMAD_FOLDER_NAME } = require('../ide/shared/path-utils');
23
21
 
24
22
  class Installer {
25
23
  constructor() {
@@ -697,9 +695,6 @@ class Installer {
697
695
  config.skipIde = toolSelection.skipIde;
698
696
  const ideConfigurations = toolSelection.configurations;
699
697
 
700
- // Add spacing after prompts before installation progress
701
- console.log('');
702
-
703
698
  if (spinner.isSpinning) {
704
699
  spinner.text = 'Continuing installation...';
705
700
  } else {