bmad-method 6.0.0-alpha.9 → 6.0.1

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 (931) hide show
  1. package/.augment/code_review_guidelines.yaml +271 -0
  2. package/.claude/skills/bmad-os-changelog-social/SKILL.md +178 -0
  3. package/.claude/skills/bmad-os-changelog-social/examples/discord-example.md +53 -0
  4. package/.claude/skills/bmad-os-changelog-social/examples/linkedin-example.md +49 -0
  5. package/.claude/skills/bmad-os-changelog-social/examples/twitter-example.md +55 -0
  6. package/.claude/skills/bmad-os-diataxis-style-fix/SKILL.md +7 -0
  7. package/.claude/skills/bmad-os-diataxis-style-fix/prompts/instructions.md +229 -0
  8. package/.claude/skills/bmad-os-draft-changelog/SKILL.md +7 -0
  9. package/.claude/skills/bmad-os-draft-changelog/prompts/instructions.md +82 -0
  10. package/.claude/skills/bmad-os-gh-triage/README.md +14 -0
  11. package/.claude/skills/bmad-os-gh-triage/SKILL.md +12 -0
  12. package/.claude/skills/bmad-os-gh-triage/prompts/agent-prompt.md +60 -0
  13. package/.claude/skills/bmad-os-gh-triage/prompts/instructions.md +74 -0
  14. package/.claude/skills/bmad-os-release-module/README.md +24 -0
  15. package/.claude/skills/bmad-os-release-module/SKILL.md +7 -0
  16. package/.claude/skills/bmad-os-release-module/prompts/instructions.md +53 -0
  17. package/.coderabbit.yaml +85 -0
  18. package/.github/CODE_OF_CONDUCT.md +128 -0
  19. package/.github/ISSUE_TEMPLATE/bug-report.yaml +124 -0
  20. package/.github/ISSUE_TEMPLATE/config.yaml +5 -2
  21. package/.github/ISSUE_TEMPLATE/documentation.yaml +55 -0
  22. package/.github/ISSUE_TEMPLATE/feature-request.md +22 -0
  23. package/.github/ISSUE_TEMPLATE/issue.md +32 -0
  24. package/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  25. package/.github/scripts/discord-helpers.sh +34 -0
  26. package/.github/workflows/coderabbit-review.yaml +22 -0
  27. package/.github/workflows/discord.yaml +82 -8
  28. package/.github/workflows/docs.yaml +64 -0
  29. package/.github/workflows/quality.yaml +40 -2
  30. package/.husky/pre-commit +13 -0
  31. package/.markdownlint-cli2.yaml +41 -0
  32. package/.prettierignore +7 -0
  33. package/.vscode/settings.json +4 -3
  34. package/CHANGELOG.md +1074 -674
  35. package/CNAME +1 -0
  36. package/CONTRIBUTING.md +97 -189
  37. package/CONTRIBUTORS.md +32 -0
  38. package/LICENSE +7 -3
  39. package/README.md +51 -396
  40. package/SECURITY.md +85 -0
  41. package/TRADEMARK.md +55 -0
  42. package/Wordmark.png +0 -0
  43. package/banner-bmad-method.png +0 -0
  44. package/docs/404.md +9 -0
  45. package/docs/_STYLE_GUIDE.md +370 -0
  46. package/docs/explanation/advanced-elicitation.md +49 -0
  47. package/docs/explanation/adversarial-review.md +59 -0
  48. package/docs/explanation/brainstorming.md +33 -0
  49. package/docs/explanation/established-projects-faq.md +50 -0
  50. package/docs/explanation/party-mode.md +59 -0
  51. package/docs/explanation/preventing-agent-conflicts.md +112 -0
  52. package/docs/explanation/project-context.md +157 -0
  53. package/docs/explanation/quick-flow.md +73 -0
  54. package/docs/explanation/why-solutioning-matters.md +77 -0
  55. package/docs/how-to/customize-bmad.md +172 -0
  56. package/docs/how-to/established-projects.md +105 -0
  57. package/docs/how-to/get-answers-about-bmad.md +103 -0
  58. package/docs/how-to/install-bmad.md +88 -0
  59. package/docs/how-to/non-interactive-installation.md +171 -0
  60. package/docs/how-to/project-context.md +136 -0
  61. package/docs/how-to/quick-fixes.md +123 -0
  62. package/docs/how-to/shard-large-documents.md +78 -0
  63. package/docs/how-to/upgrade-to-v6.md +97 -0
  64. package/docs/index.md +33 -206
  65. package/docs/reference/agents.md +28 -0
  66. package/docs/reference/commands.md +131 -0
  67. package/docs/reference/modules.md +76 -0
  68. package/docs/reference/testing.md +106 -0
  69. package/docs/reference/workflow-map.md +122 -0
  70. package/docs/tutorials/getting-started.md +219 -0
  71. package/eslint.config.mjs +26 -16
  72. package/package.json +35 -28
  73. package/src/bmm/agents/analyst.agent.yaml +43 -0
  74. package/src/bmm/agents/architect.agent.yaml +29 -0
  75. package/src/bmm/agents/dev.agent.yaml +38 -0
  76. package/src/bmm/agents/pm.agent.yaml +44 -0
  77. package/src/bmm/agents/qa.agent.yaml +58 -0
  78. package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  79. package/src/bmm/agents/sm.agent.yaml +37 -0
  80. package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  81. package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +46 -0
  82. package/src/bmm/agents/ux-designer.agent.yaml +27 -0
  83. package/src/bmm/data/project-context-template.md +26 -0
  84. package/src/bmm/module-help.csv +31 -0
  85. package/src/bmm/module.yaml +50 -0
  86. package/src/bmm/teams/default-party.csv +20 -0
  87. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  88. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  89. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  90. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  91. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  92. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  93. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  94. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  95. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
  96. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  97. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  98. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  99. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  100. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  101. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  102. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  103. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  104. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  105. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  106. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  107. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  108. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  109. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  110. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  111. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  112. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  113. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +233 -0
  114. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  115. package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  116. package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
  117. package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  118. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  119. package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  120. package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  121. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  122. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
  123. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  124. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +154 -0
  125. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +170 -0
  126. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  127. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  128. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  129. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  130. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  131. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  132. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  133. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  134. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  135. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  136. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  137. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  138. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  139. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  140. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  141. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +226 -0
  142. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  143. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  144. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  145. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  146. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  147. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  148. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  149. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  150. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  151. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  152. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  153. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  154. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  155. package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  156. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
  157. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  158. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
  159. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  160. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  161. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  162. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  163. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  164. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  165. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  166. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  167. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  168. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  169. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  170. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  171. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  172. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  173. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  174. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  175. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
  176. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +184 -0
  177. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +172 -0
  178. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +173 -0
  179. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +133 -0
  180. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +245 -0
  181. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
  182. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  183. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  184. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  185. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
  186. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  187. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  188. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  189. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  190. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  191. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  192. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  193. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  194. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  195. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  196. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  197. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  198. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  199. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  200. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  201. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  202. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  203. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  204. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  205. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +44 -0
  206. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  207. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
  208. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +54 -0
  209. package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  210. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +346 -0
  211. package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
  212. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +53 -0
  213. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  214. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  215. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +21 -0
  216. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
  217. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +53 -0
  218. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +226 -0
  219. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  220. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -0
  221. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
  222. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
  223. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +174 -0
  224. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +118 -0
  225. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +111 -0
  226. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +111 -0
  227. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +104 -0
  228. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
  229. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  230. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +191 -0
  231. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -0
  232. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +127 -0
  233. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +200 -0
  234. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  235. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  236. package/src/bmm/workflows/document-project/checklist.md +245 -0
  237. package/src/bmm/workflows/document-project/instructions.md +130 -0
  238. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  239. package/src/bmm/workflows/document-project/workflow.yaml +22 -0
  240. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  241. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  242. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  243. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  244. package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  245. package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  246. package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
  247. package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
  248. package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
  249. package/src/bmm/workflows/qa/automate/checklist.md +33 -0
  250. package/src/bmm/workflows/qa/automate/instructions.md +110 -0
  251. package/src/bmm/workflows/qa/automate/workflow.yaml +44 -0
  252. package/src/core/agents/bmad-master.agent.yaml +12 -21
  253. package/src/core/module-help.csv +9 -0
  254. package/src/core/module.yaml +25 -0
  255. package/src/core/tasks/editorial-review-prose.xml +102 -0
  256. package/src/core/tasks/editorial-review-structure.xml +209 -0
  257. package/src/core/tasks/help.md +85 -0
  258. package/src/core/tasks/index-docs.xml +2 -2
  259. package/src/core/tasks/review-adversarial-general.xml +48 -0
  260. package/src/core/tasks/shard-doc.xml +108 -0
  261. package/src/core/tasks/workflow.xml +39 -74
  262. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  263. package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
  264. package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
  265. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  266. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  267. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  268. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  269. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  270. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  271. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  272. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  273. package/src/core/workflows/brainstorming/template.md +13 -104
  274. package/src/core/workflows/brainstorming/workflow.md +58 -0
  275. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  276. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  277. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
  278. package/src/core/workflows/party-mode/workflow.md +194 -0
  279. package/src/utility/agent-components/activation-rules.txt +6 -0
  280. package/src/utility/agent-components/activation-steps.txt +14 -0
  281. package/src/utility/agent-components/agent-command-header.md +1 -0
  282. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  283. package/src/utility/agent-components/handler-action.txt +4 -0
  284. package/src/utility/agent-components/handler-exec.txt +6 -0
  285. package/src/utility/agent-components/handler-multi.txt +14 -0
  286. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  287. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  288. package/src/utility/agent-components/handler-workflow.txt +10 -0
  289. package/src/utility/agent-components/menu-handlers.txt +6 -0
  290. package/test/README.md +4 -4
  291. package/test/adversarial-review-tests/README.md +56 -0
  292. package/test/adversarial-review-tests/sample-content.md +46 -0
  293. package/test/adversarial-review-tests/test-cases.yaml +103 -0
  294. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
  295. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
  296. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
  297. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
  298. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
  299. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
  300. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
  301. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  302. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  303. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
  304. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
  305. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
  306. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
  307. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
  308. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +1 -1
  309. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
  310. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
  311. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
  312. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
  313. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
  314. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
  315. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
  316. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
  317. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
  318. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
  319. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
  320. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
  321. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
  322. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
  323. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
  324. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +2 -3
  325. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
  326. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  327. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +2 -1
  328. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  329. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
  330. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +2 -1
  331. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +2 -1
  332. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  333. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  334. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
  335. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
  336. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
  337. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
  338. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
  339. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
  340. package/test/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +3 -0
  341. package/test/fixtures/file-refs-csv/invalid/empty-data.csv +1 -0
  342. package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +3 -0
  343. package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +3 -0
  344. package/test/fixtures/file-refs-csv/valid/bmm-style.csv +3 -0
  345. package/test/fixtures/file-refs-csv/valid/core-style.csv +3 -0
  346. package/test/fixtures/file-refs-csv/valid/minimal.csv +2 -0
  347. package/test/test-agent-schema.js +4 -4
  348. package/test/test-file-refs-csv.js +133 -0
  349. package/test/test-installation-components.js +10 -12
  350. package/test/test-rehype-plugins.mjs +1050 -0
  351. package/test/unit-test-schema.js +2 -2
  352. package/tools/build-docs.mjs +463 -0
  353. package/tools/cli/README.md +41 -589
  354. package/tools/cli/bmad-cli.js +67 -1
  355. package/tools/cli/commands/install.js +42 -34
  356. package/tools/cli/commands/status.js +44 -26
  357. package/tools/cli/commands/uninstall.js +146 -23
  358. package/tools/cli/external-official-modules.yaml +53 -0
  359. package/tools/cli/installers/install-messages.yaml +39 -0
  360. package/tools/cli/installers/lib/core/config-collector.js +589 -95
  361. package/tools/cli/installers/lib/core/custom-module-cache.js +260 -0
  362. package/tools/cli/installers/lib/core/dependency-resolver.js +57 -39
  363. package/tools/cli/installers/lib/core/detector.js +19 -125
  364. package/tools/cli/installers/lib/core/ide-config-manager.js +12 -9
  365. package/tools/cli/installers/lib/core/installer.js +2075 -1161
  366. package/tools/cli/installers/lib/core/manifest-generator.js +494 -103
  367. package/tools/cli/installers/lib/core/manifest.js +544 -46
  368. package/tools/cli/installers/lib/custom/handler.js +358 -0
  369. package/tools/cli/installers/lib/ide/_base-ide.js +83 -44
  370. package/tools/cli/installers/lib/ide/_config-driven.js +560 -0
  371. package/tools/cli/installers/lib/ide/codex.js +277 -54
  372. package/tools/cli/installers/lib/ide/github-copilot.js +607 -209
  373. package/tools/cli/installers/lib/ide/kilo.js +169 -75
  374. package/tools/cli/installers/lib/ide/manager.js +179 -48
  375. package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
  376. package/tools/cli/installers/lib/ide/platform-codes.yaml +227 -0
  377. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +95 -5
  378. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +51 -20
  379. package/tools/cli/installers/lib/ide/shared/module-injections.js +6 -3
  380. package/tools/cli/installers/lib/ide/shared/path-utils.js +299 -0
  381. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +262 -14
  382. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +108 -27
  383. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +2 -1
  384. package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
  385. package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +16 -0
  386. package/tools/cli/installers/lib/ide/templates/combined/default-task.md +10 -0
  387. package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +10 -0
  388. package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +15 -0
  389. package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +7 -0
  390. package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
  391. package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +11 -0
  392. package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +11 -0
  393. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
  394. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
  395. package/tools/cli/installers/lib/ide/templates/combined/kiro-agent.md +16 -0
  396. package/tools/cli/installers/lib/ide/templates/combined/kiro-task.md +9 -0
  397. package/tools/cli/installers/lib/ide/templates/combined/kiro-tool.md +9 -0
  398. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow-yaml.md +15 -0
  399. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow.md +7 -0
  400. package/tools/cli/installers/lib/ide/templates/combined/opencode-agent.md +15 -0
  401. package/tools/cli/installers/lib/ide/templates/combined/opencode-task.md +14 -0
  402. package/tools/cli/installers/lib/ide/templates/combined/opencode-tool.md +14 -0
  403. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow-yaml.md +17 -0
  404. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow.md +17 -0
  405. package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
  406. package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
  407. package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
  408. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +2 -1
  409. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +6 -0
  410. package/tools/cli/installers/lib/message-loader.js +83 -0
  411. package/tools/cli/installers/lib/modules/external-manager.js +136 -0
  412. package/tools/cli/installers/lib/modules/manager.js +931 -207
  413. package/tools/cli/lib/activation-builder.js +13 -16
  414. package/tools/cli/lib/agent/compiler.js +525 -0
  415. package/tools/cli/lib/agent/installer.js +680 -0
  416. package/tools/cli/lib/agent/template-engine.js +152 -0
  417. package/tools/cli/lib/agent-analyzer.js +48 -20
  418. package/tools/cli/lib/agent-party-generator.js +5 -17
  419. package/tools/cli/lib/cli-utils.js +76 -104
  420. package/tools/cli/lib/config.js +4 -3
  421. package/tools/cli/lib/platform-codes.js +2 -2
  422. package/tools/cli/lib/project-root.js +6 -0
  423. package/tools/cli/lib/prompts.js +809 -0
  424. package/tools/cli/lib/ui.js +1600 -272
  425. package/tools/cli/lib/xml-handler.js +4 -55
  426. package/tools/cli/lib/yaml-format.js +4 -6
  427. package/tools/cli/lib/yaml-xml-builder.js +183 -61
  428. package/tools/docs/_prompt-external-modules-page.md +59 -0
  429. package/tools/docs/fix-refs.md +91 -0
  430. package/tools/fix-doc-links.js +285 -0
  431. package/tools/lib/xml-utils.js +13 -0
  432. package/tools/maintainer/review-pr-README.md +55 -0
  433. package/tools/maintainer/review-pr.md +242 -0
  434. package/tools/migrate-custom-module-paths.js +124 -0
  435. package/tools/platform-codes.yaml +24 -0
  436. package/tools/schema/agent.js +306 -53
  437. package/tools/validate-agent-schema.js +3 -3
  438. package/tools/validate-doc-links.js +393 -0
  439. package/tools/validate-file-refs.js +554 -0
  440. package/tools/validate-svg-changes.sh +356 -0
  441. package/website/README.md +75 -0
  442. package/website/astro.config.mjs +135 -0
  443. package/website/public/favicon.ico +0 -0
  444. package/website/public/img/bmad-dark.png +0 -0
  445. package/website/public/img/bmad-light.png +0 -0
  446. package/website/public/workflow-map-diagram.html +361 -0
  447. package/website/src/components/Banner.astro +62 -0
  448. package/website/src/components/Header.astro +96 -0
  449. package/website/src/components/MobileMenuFooter.astro +33 -0
  450. package/website/src/content/config.ts +6 -0
  451. package/website/src/lib/site-url.mjs +25 -0
  452. package/website/src/pages/404.astro +11 -0
  453. package/website/src/pages/robots.txt.ts +48 -0
  454. package/website/src/rehype-base-paths.js +112 -0
  455. package/website/src/rehype-markdown-links.js +111 -0
  456. package/website/src/styles/custom.css +509 -0
  457. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  458. package/.github/ISSUE_TEMPLATE/idea_submission.md +0 -109
  459. package/.github/workflows/bundle-latest.yaml +0 -277
  460. package/.github/workflows/manual-release.yaml +0 -212
  461. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +0 -95
  462. package/docs/agent-customization-guide.md +0 -208
  463. package/docs/document-sharding-guide.md +0 -447
  464. package/docs/ide-info/auggie.md +0 -31
  465. package/docs/ide-info/claude-code.md +0 -25
  466. package/docs/ide-info/cline.md +0 -31
  467. package/docs/ide-info/codex.md +0 -21
  468. package/docs/ide-info/crush.md +0 -30
  469. package/docs/ide-info/cursor.md +0 -25
  470. package/docs/ide-info/gemini.md +0 -25
  471. package/docs/ide-info/github-copilot.md +0 -26
  472. package/docs/ide-info/iflow.md +0 -33
  473. package/docs/ide-info/kilo.md +0 -24
  474. package/docs/ide-info/opencode.md +0 -24
  475. package/docs/ide-info/qwen.md +0 -25
  476. package/docs/ide-info/roo.md +0 -27
  477. package/docs/ide-info/trae.md +0 -25
  478. package/docs/ide-info/windsurf.md +0 -22
  479. package/docs/installers-bundlers/ide-injections.md +0 -186
  480. package/docs/installers-bundlers/installers-modules-platforms-reference.md +0 -388
  481. package/docs/installers-bundlers/web-bundler-usage.md +0 -54
  482. package/docs/v4-to-v6-upgrade.md +0 -227
  483. package/docs/web-bundles-gemini-gpt-guide.md +0 -473
  484. package/src/core/_module-installer/install-config.yaml +0 -35
  485. package/src/core/_module-installer/installer.js +0 -60
  486. package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -113
  487. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  488. package/src/core/tasks/advanced-elicitation.xml +0 -106
  489. package/src/core/tasks/validate-workflow.xml +0 -89
  490. package/src/core/tools/shard-doc.xml +0 -109
  491. package/src/core/workflows/brainstorming/README.md +0 -261
  492. package/src/core/workflows/brainstorming/instructions.md +0 -315
  493. package/src/core/workflows/brainstorming/workflow.yaml +0 -43
  494. package/src/core/workflows/party-mode/instructions.md +0 -183
  495. package/src/core/workflows/party-mode/workflow.yaml +0 -27
  496. package/src/modules/bmb/README.md +0 -194
  497. package/src/modules/bmb/_module-installer/install-config.yaml +0 -31
  498. package/src/modules/bmb/agents/bmad-builder.agent.yaml +0 -59
  499. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -142
  500. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  501. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  502. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  503. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  504. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  505. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  506. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -34
  507. package/src/modules/bmb/workflows/create-agent/README.md +0 -203
  508. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +0 -415
  509. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  510. package/src/modules/bmb/workflows/create-agent/agent-types.md +0 -292
  511. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  512. package/src/modules/bmb/workflows/create-agent/checklist.md +0 -62
  513. package/src/modules/bmb/workflows/create-agent/communication-styles.md +0 -202
  514. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -456
  515. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -49
  516. package/src/modules/bmb/workflows/create-module/README.md +0 -229
  517. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
  518. package/src/modules/bmb/workflows/create-module/checklist.md +0 -235
  519. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  520. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  521. package/src/modules/bmb/workflows/create-module/instructions.md +0 -576
  522. package/src/modules/bmb/workflows/create-module/module-structure.md +0 -400
  523. package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -44
  524. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  525. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  526. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  527. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -724
  528. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1306
  529. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  530. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  531. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  532. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -65
  533. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -42
  534. package/src/modules/bmb/workflows/edit-agent/README.md +0 -112
  535. package/src/modules/bmb/workflows/edit-agent/checklist.md +0 -112
  536. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -290
  537. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -35
  538. package/src/modules/bmb/workflows/edit-module/README.md +0 -187
  539. package/src/modules/bmb/workflows/edit-module/checklist.md +0 -165
  540. package/src/modules/bmb/workflows/edit-module/instructions.md +0 -339
  541. package/src/modules/bmb/workflows/edit-module/workflow.yaml +0 -36
  542. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  543. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  544. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  545. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -29
  546. package/src/modules/bmb/workflows/module-brief/README.md +0 -264
  547. package/src/modules/bmb/workflows/module-brief/checklist.md +0 -116
  548. package/src/modules/bmb/workflows/module-brief/instructions.md +0 -267
  549. package/src/modules/bmb/workflows/module-brief/template.md +0 -275
  550. package/src/modules/bmb/workflows/module-brief/workflow.yaml +0 -31
  551. package/src/modules/bmb/workflows/redoc/README.md +0 -87
  552. package/src/modules/bmb/workflows/redoc/checklist.md +0 -99
  553. package/src/modules/bmb/workflows/redoc/instructions.md +0 -265
  554. package/src/modules/bmb/workflows/redoc/workflow.yaml +0 -34
  555. package/src/modules/bmgd/README.md +0 -208
  556. package/src/modules/bmgd/_module-installer/install-config.yaml +0 -54
  557. package/src/modules/bmgd/agents/game-architect.agent.yaml +0 -33
  558. package/src/modules/bmgd/agents/game-designer.agent.yaml +0 -40
  559. package/src/modules/bmgd/agents/game-dev.agent.yaml +0 -40
  560. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +0 -75
  561. package/src/modules/bmgd/teams/default-party.csv +0 -10
  562. package/src/modules/bmgd/teams/team-gamedev.yaml +0 -18
  563. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/game-brain-methods.csv +0 -26
  564. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/game-context.md +0 -115
  565. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +0 -128
  566. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +0 -41
  567. package/src/modules/bmgd/workflows/1-preproduction/game-brief/checklist.md +0 -128
  568. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +0 -371
  569. package/src/modules/bmgd/workflows/1-preproduction/game-brief/template.md +0 -205
  570. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +0 -44
  571. package/src/modules/bmgd/workflows/2-design/gdd/checklist.md +0 -148
  572. package/src/modules/bmgd/workflows/2-design/gdd/game-types/action-platformer.md +0 -45
  573. package/src/modules/bmgd/workflows/2-design/gdd/game-types/adventure.md +0 -84
  574. package/src/modules/bmgd/workflows/2-design/gdd/game-types/card-game.md +0 -76
  575. package/src/modules/bmgd/workflows/2-design/gdd/game-types/fighting.md +0 -89
  576. package/src/modules/bmgd/workflows/2-design/gdd/game-types/horror.md +0 -86
  577. package/src/modules/bmgd/workflows/2-design/gdd/game-types/idle-incremental.md +0 -78
  578. package/src/modules/bmgd/workflows/2-design/gdd/game-types/metroidvania.md +0 -87
  579. package/src/modules/bmgd/workflows/2-design/gdd/game-types/moba.md +0 -74
  580. package/src/modules/bmgd/workflows/2-design/gdd/game-types/party-game.md +0 -79
  581. package/src/modules/bmgd/workflows/2-design/gdd/game-types/puzzle.md +0 -58
  582. package/src/modules/bmgd/workflows/2-design/gdd/game-types/racing.md +0 -88
  583. package/src/modules/bmgd/workflows/2-design/gdd/game-types/rhythm.md +0 -79
  584. package/src/modules/bmgd/workflows/2-design/gdd/game-types/roguelike.md +0 -69
  585. package/src/modules/bmgd/workflows/2-design/gdd/game-types/rpg.md +0 -70
  586. package/src/modules/bmgd/workflows/2-design/gdd/game-types/sandbox.md +0 -79
  587. package/src/modules/bmgd/workflows/2-design/gdd/game-types/shooter.md +0 -62
  588. package/src/modules/bmgd/workflows/2-design/gdd/game-types/simulation.md +0 -73
  589. package/src/modules/bmgd/workflows/2-design/gdd/game-types/sports.md +0 -75
  590. package/src/modules/bmgd/workflows/2-design/gdd/game-types/strategy.md +0 -71
  591. package/src/modules/bmgd/workflows/2-design/gdd/game-types/survival.md +0 -79
  592. package/src/modules/bmgd/workflows/2-design/gdd/game-types/text-based.md +0 -91
  593. package/src/modules/bmgd/workflows/2-design/gdd/game-types/tower-defense.md +0 -79
  594. package/src/modules/bmgd/workflows/2-design/gdd/game-types/turn-based-tactics.md +0 -88
  595. package/src/modules/bmgd/workflows/2-design/gdd/game-types/visual-novel.md +0 -89
  596. package/src/modules/bmgd/workflows/2-design/gdd/game-types.csv +0 -25
  597. package/src/modules/bmgd/workflows/2-design/gdd/gdd-template.md +0 -153
  598. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -501
  599. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +0 -81
  600. package/src/modules/bmgd/workflows/2-design/narrative/checklist.md +0 -139
  601. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +0 -603
  602. package/src/modules/bmgd/workflows/2-design/narrative/narrative-template.md +0 -195
  603. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +0 -38
  604. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +0 -321
  605. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +0 -103
  606. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +0 -240
  607. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +0 -222
  608. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +0 -699
  609. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +0 -13
  610. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +0 -67
  611. package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +0 -12
  612. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +0 -22
  613. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
  614. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +0 -57
  615. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +0 -279
  616. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +0 -206
  617. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +0 -52
  618. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +0 -240
  619. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
  620. package/src/modules/bmgd/workflows/4-production/create-story/template.md +0 -51
  621. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +0 -68
  622. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +0 -38
  623. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
  624. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +0 -53
  625. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
  626. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
  627. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
  628. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -52
  629. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +0 -1442
  630. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +0 -52
  631. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +0 -234
  632. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +0 -55
  633. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +0 -50
  634. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
  635. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
  636. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
  637. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -57
  638. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
  639. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
  640. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
  641. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
  642. package/src/modules/bmm/README.md +0 -128
  643. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  644. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  645. package/src/modules/bmm/_module-installer/install-config.yaml +0 -60
  646. package/src/modules/bmm/_module-installer/installer.js +0 -131
  647. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +0 -35
  648. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +0 -32
  649. package/src/modules/bmm/agents/analyst.agent.yaml +0 -48
  650. package/src/modules/bmm/agents/architect.agent.yaml +0 -42
  651. package/src/modules/bmm/agents/dev.agent.yaml +0 -40
  652. package/src/modules/bmm/agents/pm.agent.yaml +0 -61
  653. package/src/modules/bmm/agents/sm.agent.yaml +0 -72
  654. package/src/modules/bmm/agents/tea.agent.yaml +0 -65
  655. package/src/modules/bmm/agents/tech-writer.agent.yaml +0 -73
  656. package/src/modules/bmm/agents/ux-designer.agent.yaml +0 -38
  657. package/src/modules/bmm/docs/README.md +0 -235
  658. package/src/modules/bmm/docs/agents-guide.md +0 -1056
  659. package/src/modules/bmm/docs/brownfield-guide.md +0 -754
  660. package/src/modules/bmm/docs/enterprise-agentic-development.md +0 -680
  661. package/src/modules/bmm/docs/faq.md +0 -587
  662. package/src/modules/bmm/docs/glossary.md +0 -320
  663. package/src/modules/bmm/docs/party-mode.md +0 -224
  664. package/src/modules/bmm/docs/quick-spec-flow.md +0 -652
  665. package/src/modules/bmm/docs/quick-start.md +0 -366
  666. package/src/modules/bmm/docs/scale-adaptive-system.md +0 -599
  667. package/src/modules/bmm/docs/test-architecture.md +0 -394
  668. package/src/modules/bmm/docs/workflow-architecture-reference.md +0 -371
  669. package/src/modules/bmm/docs/workflow-document-project-reference.md +0 -487
  670. package/src/modules/bmm/docs/workflows-analysis.md +0 -370
  671. package/src/modules/bmm/docs/workflows-implementation.md +0 -284
  672. package/src/modules/bmm/docs/workflows-planning.md +0 -601
  673. package/src/modules/bmm/docs/workflows-solutioning.md +0 -501
  674. package/src/modules/bmm/teams/default-party.csv +0 -19
  675. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +0 -675
  676. package/src/modules/bmm/testarch/knowledge/component-tdd.md +0 -486
  677. package/src/modules/bmm/testarch/knowledge/contract-testing.md +0 -957
  678. package/src/modules/bmm/testarch/knowledge/data-factories.md +0 -500
  679. package/src/modules/bmm/testarch/knowledge/email-auth.md +0 -721
  680. package/src/modules/bmm/testarch/knowledge/error-handling.md +0 -725
  681. package/src/modules/bmm/testarch/knowledge/feature-flags.md +0 -750
  682. package/src/modules/bmm/testarch/knowledge/fixture-architecture.md +0 -401
  683. package/src/modules/bmm/testarch/knowledge/network-first.md +0 -486
  684. package/src/modules/bmm/testarch/knowledge/nfr-criteria.md +0 -670
  685. package/src/modules/bmm/testarch/knowledge/playwright-config.md +0 -730
  686. package/src/modules/bmm/testarch/knowledge/probability-impact.md +0 -601
  687. package/src/modules/bmm/testarch/knowledge/risk-governance.md +0 -615
  688. package/src/modules/bmm/testarch/knowledge/selective-testing.md +0 -732
  689. package/src/modules/bmm/testarch/knowledge/selector-resilience.md +0 -527
  690. package/src/modules/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
  691. package/src/modules/bmm/testarch/knowledge/test-levels-framework.md +0 -473
  692. package/src/modules/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
  693. package/src/modules/bmm/testarch/knowledge/test-quality.md +0 -664
  694. package/src/modules/bmm/testarch/knowledge/timing-debugging.md +0 -372
  695. package/src/modules/bmm/testarch/knowledge/visual-debugging.md +0 -524
  696. package/src/modules/bmm/testarch/tea-index.csv +0 -22
  697. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -110
  698. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  699. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  700. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +0 -423
  701. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  702. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -56
  703. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  704. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -522
  705. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  706. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -65
  707. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  708. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  709. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -299
  710. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  711. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -437
  712. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -674
  713. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -133
  714. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -533
  715. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  716. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -347
  717. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  718. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -62
  719. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  720. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1306
  721. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
  722. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -99
  723. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
  724. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +0 -80
  725. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +0 -292
  726. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +0 -53
  727. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
  728. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -525
  729. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -237
  730. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
  731. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -76
  732. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
  733. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
  734. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -434
  735. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -978
  736. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  737. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  738. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -57
  739. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
  740. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  741. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
  742. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
  743. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -696
  744. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
  745. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -96
  746. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -169
  747. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -302
  748. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -146
  749. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -66
  750. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
  751. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
  752. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
  753. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -57
  754. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
  755. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
  756. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -52
  757. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +0 -240
  758. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
  759. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +0 -51
  760. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -68
  761. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +0 -38
  762. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
  763. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -53
  764. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  765. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
  766. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  767. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -52
  768. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1442
  769. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -52
  770. package/src/modules/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
  771. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -234
  772. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
  773. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -50
  774. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  775. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  776. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
  777. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -57
  778. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  779. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -28
  780. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  781. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -25
  782. package/src/modules/bmm/workflows/document-project/checklist.md +0 -245
  783. package/src/modules/bmm/workflows/document-project/instructions.md +0 -222
  784. package/src/modules/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
  785. package/src/modules/bmm/workflows/document-project/workflow.yaml +0 -36
  786. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
  787. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
  788. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
  789. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
  790. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +0 -262
  791. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
  792. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +0 -373
  793. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +0 -785
  794. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +0 -54
  795. package/src/modules/bmm/workflows/testarch/automate/checklist.md +0 -580
  796. package/src/modules/bmm/workflows/testarch/automate/instructions.md +0 -1303
  797. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +0 -63
  798. package/src/modules/bmm/workflows/testarch/ci/checklist.md +0 -246
  799. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
  800. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
  801. package/src/modules/bmm/workflows/testarch/ci/instructions.md +0 -517
  802. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +0 -55
  803. package/src/modules/bmm/workflows/testarch/framework/checklist.md +0 -321
  804. package/src/modules/bmm/workflows/testarch/framework/instructions.md +0 -455
  805. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +0 -55
  806. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
  807. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
  808. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
  809. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -58
  810. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +0 -234
  811. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +0 -782
  812. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
  813. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +0 -58
  814. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +0 -470
  815. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +0 -608
  816. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
  817. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +0 -55
  818. package/src/modules/bmm/workflows/testarch/trace/checklist.md +0 -654
  819. package/src/modules/bmm/workflows/testarch/trace/instructions.md +0 -1045
  820. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +0 -673
  821. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +0 -68
  822. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +0 -823
  823. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +0 -29
  824. package/src/modules/bmm/workflows/workflow-status/instructions.md +0 -387
  825. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -120
  826. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -108
  827. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +0 -52
  828. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -104
  829. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -95
  830. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  831. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  832. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +0 -59
  833. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
  834. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +0 -30
  835. package/src/modules/cis/README.md +0 -153
  836. package/src/modules/cis/_module-installer/install-config.yaml +0 -16
  837. package/src/modules/cis/_module-installer/installer.js +0 -92
  838. package/src/modules/cis/agents/README.md +0 -104
  839. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +0 -28
  840. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +0 -28
  841. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +0 -28
  842. package/src/modules/cis/agents/innovation-strategist.agent.yaml +0 -28
  843. package/src/modules/cis/agents/storyteller.agent.yaml +0 -28
  844. package/src/modules/cis/teams/creative-squad.yaml +0 -7
  845. package/src/modules/cis/teams/default-party.csv +0 -11
  846. package/src/modules/cis/workflows/README.md +0 -139
  847. package/src/modules/cis/workflows/design-thinking/README.md +0 -56
  848. package/src/modules/cis/workflows/design-thinking/design-methods.csv +0 -31
  849. package/src/modules/cis/workflows/design-thinking/instructions.md +0 -200
  850. package/src/modules/cis/workflows/design-thinking/template.md +0 -111
  851. package/src/modules/cis/workflows/design-thinking/workflow.yaml +0 -43
  852. package/src/modules/cis/workflows/innovation-strategy/README.md +0 -56
  853. package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +0 -31
  854. package/src/modules/cis/workflows/innovation-strategy/instructions.md +0 -274
  855. package/src/modules/cis/workflows/innovation-strategy/template.md +0 -189
  856. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +0 -43
  857. package/src/modules/cis/workflows/problem-solving/README.md +0 -56
  858. package/src/modules/cis/workflows/problem-solving/instructions.md +0 -250
  859. package/src/modules/cis/workflows/problem-solving/solving-methods.csv +0 -31
  860. package/src/modules/cis/workflows/problem-solving/template.md +0 -165
  861. package/src/modules/cis/workflows/problem-solving/workflow.yaml +0 -43
  862. package/src/modules/cis/workflows/storytelling/README.md +0 -58
  863. package/src/modules/cis/workflows/storytelling/instructions.md +0 -291
  864. package/src/modules/cis/workflows/storytelling/story-types.csv +0 -26
  865. package/src/modules/cis/workflows/storytelling/template.md +0 -113
  866. package/src/modules/cis/workflows/storytelling/workflow.yaml +0 -43
  867. package/src/utility/models/agent-activation-ide.xml +0 -51
  868. package/src/utility/models/agent-activation-web.xml +0 -60
  869. package/src/utility/models/agent-command-header.md +0 -1
  870. package/src/utility/models/agent-config-template.md +0 -23
  871. package/src/utility/models/agent-in-team-activation.xml +0 -3
  872. package/src/utility/models/fragments/activation-rules.xml +0 -8
  873. package/src/utility/models/fragments/activation-steps.xml +0 -16
  874. package/src/utility/models/fragments/handler-action.xml +0 -4
  875. package/src/utility/models/fragments/handler-exec.xml +0 -5
  876. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  877. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  878. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  879. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  880. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  881. package/src/utility/templates/agent.customize.template.yaml +0 -42
  882. package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +0 -26
  883. package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +0 -25
  884. package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +0 -26
  885. package/tools/cli/bundlers/bundle-web.js +0 -179
  886. package/tools/cli/bundlers/test-analyst.js +0 -28
  887. package/tools/cli/bundlers/test-bundler.js +0 -118
  888. package/tools/cli/bundlers/web-bundler.js +0 -1667
  889. package/tools/cli/commands/build.js +0 -458
  890. package/tools/cli/commands/list.js +0 -28
  891. package/tools/cli/commands/update.js +0 -28
  892. package/tools/cli/installers/lib/ide/auggie.js +0 -179
  893. package/tools/cli/installers/lib/ide/claude-code.js +0 -471
  894. package/tools/cli/installers/lib/ide/cline.js +0 -220
  895. package/tools/cli/installers/lib/ide/crush.js +0 -240
  896. package/tools/cli/installers/lib/ide/cursor.js +0 -352
  897. package/tools/cli/installers/lib/ide/gemini.js +0 -206
  898. package/tools/cli/installers/lib/ide/iflow.js +0 -125
  899. package/tools/cli/installers/lib/ide/opencode.js +0 -212
  900. package/tools/cli/installers/lib/ide/qwen.js +0 -318
  901. package/tools/cli/installers/lib/ide/roo.js +0 -253
  902. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +0 -14
  903. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +0 -12
  904. package/tools/cli/installers/lib/ide/trae.js +0 -266
  905. package/tools/cli/installers/lib/ide/windsurf.js +0 -211
  906. package/tools/cli/lib/replace-project-root.js +0 -239
  907. package/tools/cli/regenerate-manifests.js +0 -28
  908. package/tools/cli/test-yaml-builder.js +0 -43
  909. package/tools/flattener/aggregate.js +0 -76
  910. package/tools/flattener/binary.js +0 -80
  911. package/tools/flattener/discovery.js +0 -71
  912. package/tools/flattener/files.js +0 -35
  913. package/tools/flattener/ignoreRules.js +0 -172
  914. package/tools/flattener/main.js +0 -483
  915. package/tools/flattener/projectRoot.js +0 -201
  916. package/tools/flattener/prompts.js +0 -44
  917. package/tools/flattener/stats.helpers.js +0 -368
  918. package/tools/flattener/stats.js +0 -75
  919. package/tools/flattener/test-matrix.js +0 -409
  920. package/tools/flattener/xml.js +0 -88
  921. package/tools/validate-bundles.js +0 -87
  922. package/v6-open-items.md +0 -17
  923. /package/src/{modules/bmm → bmm}/teams/team-fullstack.yaml +0 -0
  924. /package/src/{modules/bmgd/workflows/4-production → bmm/workflows/4-implementation}/sprint-planning/checklist.md +0 -0
  925. /package/src/{modules/bmm → bmm}/workflows/document-project/documentation-requirements.csv +0 -0
  926. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/deep-dive-template.md +0 -0
  927. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/index-template.md +0 -0
  928. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/project-overview-template.md +0 -0
  929. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/source-tree-template.md +0 -0
  930. /package/src/utility/{models/fragments/handler-data.xml → agent-components/handler-data.txt} +0 -0
  931. /package/{src/utility/models/action-command-header.md → tools/cli/installers/lib/ide/templates/split/.gitkeep} +0 -0
@@ -1,8 +1,10 @@
1
1
  const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
- const yaml = require('js-yaml');
3
+ const yaml = require('yaml');
4
4
  const crypto = require('node:crypto');
5
+ const csv = require('csv-parse/sync');
5
6
  const { getSourcePath, getModulePath } = require('../../../lib/project-root');
7
+ const prompts = require('../../../lib/prompts');
6
8
 
7
9
  // Load package.json for version info
8
10
  const packageJson = require('../../../../../package.json');
@@ -21,25 +23,49 @@ class ManifestGenerator {
21
23
  this.selectedIdes = [];
22
24
  }
23
25
 
26
+ /**
27
+ * Clean text for CSV output by normalizing whitespace and escaping quotes
28
+ * @param {string} text - Text to clean
29
+ * @returns {string} Cleaned text safe for CSV
30
+ */
31
+ cleanForCSV(text) {
32
+ if (!text) return '';
33
+ return text
34
+ .trim()
35
+ .replaceAll(/\s+/g, ' ') // Normalize all whitespace (including newlines) to single space
36
+ .replaceAll('"', '""'); // Escape quotes for CSV
37
+ }
38
+
24
39
  /**
25
40
  * Generate all manifests for the installation
26
- * @param {string} bmadDir - BMAD installation directory
41
+ * @param {string} bmadDir - _bmad
27
42
  * @param {Array} selectedModules - Selected modules for installation
28
43
  * @param {Array} installedFiles - All installed files (optional, for hash tracking)
29
44
  */
30
45
  async generateManifests(bmadDir, selectedModules, installedFiles = [], options = {}) {
31
- // Create _cfg directory if it doesn't exist
32
- const cfgDir = path.join(bmadDir, '_cfg');
46
+ // Create _config directory if it doesn't exist
47
+ const cfgDir = path.join(bmadDir, '_config');
33
48
  await fs.ensureDir(cfgDir);
34
49
 
35
50
  // Store modules list (all modules including preserved ones)
36
51
  const preservedModules = options.preservedModules || [];
37
- // Deduplicate modules list to prevent duplicates
38
- this.modules = [...new Set(['core', ...selectedModules, ...preservedModules])];
39
- this.updatedModules = [...new Set(['core', ...selectedModules])]; // Only these get rescanned
40
- this.preservedModules = preservedModules; // These stay as-is in CSVs
52
+
53
+ // Scan the bmad directory to find all actually installed modules
54
+ const installedModules = await this.scanInstalledModules(bmadDir);
55
+
56
+ // Since custom modules are now installed the same way as regular modules,
57
+ // we don't need to exclude them from manifest generation
58
+ const allModules = [...new Set(['core', ...selectedModules, ...preservedModules, ...installedModules])];
59
+
60
+ this.modules = allModules;
61
+ this.updatedModules = allModules; // Include ALL modules (including custom) for scanning
62
+
63
+ // For CSV manifests, we need to include ALL modules that are installed
64
+ // preservedModules controls which modules stay as-is in the CSV (don't get rescanned)
65
+ // But all modules should be included in the final manifest
66
+ this.preservedModules = allModules; // Include ALL modules (including custom)
41
67
  this.bmadDir = bmadDir;
42
- this.bmadFolderName = path.basename(bmadDir); // Get the actual folder name (e.g., '.bmad' or 'bmad')
68
+ this.bmadFolderName = path.basename(bmadDir); // Get the actual folder name (e.g., '_bmad' or 'bmad')
43
69
  this.allInstalledFiles = installedFiles;
44
70
 
45
71
  if (!Object.prototype.hasOwnProperty.call(options, 'ides')) {
@@ -57,14 +83,14 @@ class ManifestGenerator {
57
83
  // Collect workflow data
58
84
  await this.collectWorkflows(selectedModules);
59
85
 
60
- // Collect agent data
61
- await this.collectAgents(selectedModules);
86
+ // Collect agent data - use updatedModules which includes all installed modules
87
+ await this.collectAgents(this.updatedModules);
62
88
 
63
89
  // Collect task data
64
- await this.collectTasks(selectedModules);
90
+ await this.collectTasks(this.updatedModules);
65
91
 
66
92
  // Collect tool data
67
- await this.collectTools(selectedModules);
93
+ await this.collectTools(this.updatedModules);
68
94
 
69
95
  // Write manifest files and collect their paths
70
96
  const manifestFiles = [
@@ -105,13 +131,21 @@ class ManifestGenerator {
105
131
  }
106
132
 
107
133
  /**
108
- * Recursively find and parse workflow.yaml files
134
+ * Recursively find and parse workflow.yaml and workflow.md files
109
135
  */
110
136
  async getWorkflowsFromPath(basePath, moduleName) {
111
137
  const workflows = [];
112
138
  const workflowsPath = path.join(basePath, 'workflows');
139
+ const debug = process.env.BMAD_DEBUG_MANIFEST === 'true';
140
+
141
+ if (debug) {
142
+ console.log(`[DEBUG] Scanning workflows in: ${workflowsPath}`);
143
+ }
113
144
 
114
145
  if (!(await fs.pathExists(workflowsPath))) {
146
+ if (debug) {
147
+ console.log(`[DEBUG] Workflows path does not exist: ${workflowsPath}`);
148
+ }
115
149
  return workflows;
116
150
  }
117
151
 
@@ -126,14 +160,53 @@ class ManifestGenerator {
126
160
  // Recurse into subdirectories
127
161
  const newRelativePath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
128
162
  await findWorkflows(fullPath, newRelativePath);
129
- } else if (entry.name === 'workflow.yaml') {
130
- // Parse workflow file
163
+ } else if (
164
+ entry.name === 'workflow.yaml' ||
165
+ entry.name === 'workflow.md' ||
166
+ (entry.name.startsWith('workflow-') && entry.name.endsWith('.md'))
167
+ ) {
168
+ // Parse workflow file (both YAML and MD formats)
169
+ if (debug) {
170
+ console.log(`[DEBUG] Found workflow file: ${fullPath}`);
171
+ }
131
172
  try {
132
- const content = await fs.readFile(fullPath, 'utf8');
133
- const workflow = yaml.load(content);
173
+ // Read and normalize line endings (fix Windows CRLF issues)
174
+ const rawContent = await fs.readFile(fullPath, 'utf8');
175
+ const content = rawContent.replaceAll('\r\n', '\n').replaceAll('\r', '\n');
176
+
177
+ let workflow;
178
+ if (entry.name === 'workflow.yaml') {
179
+ // Parse YAML workflow
180
+ workflow = yaml.parse(content);
181
+ } else {
182
+ // Parse MD workflow with YAML frontmatter
183
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
184
+ if (!frontmatterMatch) {
185
+ if (debug) {
186
+ console.log(`[DEBUG] Skipped (no frontmatter): ${fullPath}`);
187
+ }
188
+ continue; // Skip MD files without frontmatter
189
+ }
190
+ workflow = yaml.parse(frontmatterMatch[1]);
191
+ }
192
+
193
+ if (debug) {
194
+ console.log(`[DEBUG] Parsed: name="${workflow.name}", description=${workflow.description ? 'OK' : 'MISSING'}`);
195
+ }
134
196
 
135
197
  // Skip template workflows (those with placeholder values)
136
198
  if (workflow.name && workflow.name.includes('{') && workflow.name.includes('}')) {
199
+ if (debug) {
200
+ console.log(`[DEBUG] Skipped (template placeholder): ${workflow.name}`);
201
+ }
202
+ continue;
203
+ }
204
+
205
+ // Skip workflows marked as non-standalone (reference/example workflows)
206
+ if (workflow.standalone === false) {
207
+ if (debug) {
208
+ console.log(`[DEBUG] Skipped (standalone=false): ${workflow.name}`);
209
+ }
137
210
  continue;
138
211
  }
139
212
 
@@ -141,18 +214,15 @@ class ManifestGenerator {
141
214
  // Build relative path for installation
142
215
  const installPath =
143
216
  moduleName === 'core'
144
- ? `${this.bmadFolderName}/core/workflows/${relativePath}/workflow.yaml`
145
- : `${this.bmadFolderName}/${moduleName}/workflows/${relativePath}/workflow.yaml`;
146
-
147
- // Check for standalone property (default: false)
148
- const standalone = workflow.standalone === true;
217
+ ? `${this.bmadFolderName}/core/workflows/${relativePath}/${entry.name}`
218
+ : `${this.bmadFolderName}/${moduleName}/workflows/${relativePath}/${entry.name}`;
149
219
 
220
+ // Workflows with standalone: false are filtered out above
150
221
  workflows.push({
151
222
  name: workflow.name,
152
- description: workflow.description.replaceAll('"', '""'), // Escape quotes for CSV
223
+ description: this.cleanForCSV(workflow.description),
153
224
  module: moduleName,
154
225
  path: installPath,
155
- standalone: standalone,
156
226
  });
157
227
 
158
228
  // Add to files list
@@ -162,15 +232,28 @@ class ManifestGenerator {
162
232
  module: moduleName,
163
233
  path: installPath,
164
234
  });
235
+
236
+ if (debug) {
237
+ console.log(`[DEBUG] ✓ Added workflow: ${workflow.name} (${moduleName})`);
238
+ }
239
+ } else {
240
+ if (debug) {
241
+ console.log(`[DEBUG] Skipped (missing name or description): ${fullPath}`);
242
+ }
165
243
  }
166
244
  } catch (error) {
167
- console.warn(`Warning: Failed to parse workflow at ${fullPath}: ${error.message}`);
245
+ await prompts.log.warn(`Failed to parse workflow at ${fullPath}: ${error.message}`);
168
246
  }
169
247
  }
170
248
  }
171
249
  };
172
250
 
173
251
  await findWorkflows(workflowsPath);
252
+
253
+ if (debug) {
254
+ console.log(`[DEBUG] Total workflows found in ${moduleName}: ${workflows.length}`);
255
+ }
256
+
174
257
  return workflows;
175
258
  }
176
259
 
@@ -207,18 +290,23 @@ class ManifestGenerator {
207
290
  }
208
291
 
209
292
  /**
210
- * Get agents from a directory
293
+ * Get agents from a directory recursively
211
294
  * Only includes compiled .md files (not .agent.yaml source files)
212
295
  */
213
- async getAgentsFromDir(dirPath, moduleName) {
296
+ async getAgentsFromDir(dirPath, moduleName, relativePath = '') {
214
297
  const agents = [];
215
- const files = await fs.readdir(dirPath);
298
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
216
299
 
217
- for (const file of files) {
218
- // Only include .md files, skip .agent.yaml source files and README.md
219
- if (file.endsWith('.md') && !file.endsWith('.agent.yaml') && file.toLowerCase() !== 'readme.md') {
220
- const filePath = path.join(dirPath, file);
221
- const content = await fs.readFile(filePath, 'utf8');
300
+ for (const entry of entries) {
301
+ const fullPath = path.join(dirPath, entry.name);
302
+
303
+ if (entry.isDirectory()) {
304
+ // Recurse into subdirectories
305
+ const newRelativePath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
306
+ const subDirAgents = await this.getAgentsFromDir(fullPath, moduleName, newRelativePath);
307
+ agents.push(...subDirAgents);
308
+ } else if (entry.name.endsWith('.md') && !entry.name.endsWith('.agent.yaml') && entry.name.toLowerCase() !== 'readme.md') {
309
+ const content = await fs.readFile(fullPath, 'utf8');
222
310
 
223
311
  // Skip files that don't contain <agent> tag (e.g., README files)
224
312
  if (!content.includes('<agent')) {
@@ -234,6 +322,7 @@ class ManifestGenerator {
234
322
  const nameMatch = content.match(/name="([^"]+)"/);
235
323
  const titleMatch = content.match(/title="([^"]+)"/);
236
324
  const iconMatch = content.match(/icon="([^"]+)"/);
325
+ const capabilitiesMatch = content.match(/capabilities="([^"]+)"/);
237
326
 
238
327
  // Extract persona fields
239
328
  const roleMatch = content.match(/<role>([^<]+)<\/role>/);
@@ -242,29 +331,24 @@ class ManifestGenerator {
242
331
  const principlesMatch = content.match(/<principles>([\s\S]*?)<\/principles>/);
243
332
 
244
333
  // Build relative path for installation
334
+ const fileRelativePath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
245
335
  const installPath =
246
- moduleName === 'core' ? `${this.bmadFolderName}/core/agents/${file}` : `${this.bmadFolderName}/${moduleName}/agents/${file}`;
336
+ moduleName === 'core'
337
+ ? `${this.bmadFolderName}/core/agents/${fileRelativePath}`
338
+ : `${this.bmadFolderName}/${moduleName}/agents/${fileRelativePath}`;
247
339
 
248
- const agentName = file.replace('.md', '');
249
-
250
- // Helper function to clean and escape CSV content
251
- const cleanForCSV = (text) => {
252
- if (!text) return '';
253
- return text
254
- .trim()
255
- .replaceAll(/\s+/g, ' ') // Normalize whitespace
256
- .replaceAll('"', '""'); // Escape quotes for CSV
257
- };
340
+ const agentName = entry.name.replace('.md', '');
258
341
 
259
342
  agents.push({
260
343
  name: agentName,
261
344
  displayName: nameMatch ? nameMatch[1] : agentName,
262
345
  title: titleMatch ? titleMatch[1] : '',
263
346
  icon: iconMatch ? iconMatch[1] : '',
264
- role: roleMatch ? cleanForCSV(roleMatch[1]) : '',
265
- identity: identityMatch ? cleanForCSV(identityMatch[1]) : '',
266
- communicationStyle: styleMatch ? cleanForCSV(styleMatch[1]) : '',
267
- principles: principlesMatch ? cleanForCSV(principlesMatch[1]) : '',
347
+ capabilities: capabilitiesMatch ? this.cleanForCSV(capabilitiesMatch[1]) : '',
348
+ role: roleMatch ? this.cleanForCSV(roleMatch[1]) : '',
349
+ identity: identityMatch ? this.cleanForCSV(identityMatch[1]) : '',
350
+ communicationStyle: styleMatch ? this.cleanForCSV(styleMatch[1]) : '',
351
+ principles: principlesMatch ? this.cleanForCSV(principlesMatch[1]) : '',
268
352
  module: moduleName,
269
353
  path: installPath,
270
354
  });
@@ -313,27 +397,55 @@ class ManifestGenerator {
313
397
  const filePath = path.join(dirPath, file);
314
398
  const content = await fs.readFile(filePath, 'utf8');
315
399
 
316
- // Extract task metadata from content if possible
317
- const nameMatch = content.match(/name="([^"]+)"/);
400
+ // Skip internal/engine files (not user-facing tasks)
401
+ if (content.includes('internal="true"')) {
402
+ continue;
403
+ }
404
+
405
+ let name = file.replace(/\.(xml|md)$/, '');
406
+ let displayName = name;
407
+ let description = '';
408
+ let standalone = false;
409
+
410
+ if (file.endsWith('.md')) {
411
+ // Parse YAML frontmatter for .md tasks
412
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
413
+ if (frontmatterMatch) {
414
+ try {
415
+ const frontmatter = yaml.parse(frontmatterMatch[1]);
416
+ name = frontmatter.name || name;
417
+ displayName = frontmatter.displayName || frontmatter.name || name;
418
+ description = this.cleanForCSV(frontmatter.description || '');
419
+ // Tasks are standalone by default unless explicitly false (internal=true is already filtered above)
420
+ standalone = frontmatter.standalone !== false && frontmatter.standalone !== 'false';
421
+ } catch {
422
+ // If YAML parsing fails, use defaults
423
+ standalone = true; // Default to standalone
424
+ }
425
+ } else {
426
+ standalone = true; // No frontmatter means standalone
427
+ }
428
+ } else {
429
+ // For .xml tasks, extract from tag attributes
430
+ const nameMatch = content.match(/name="([^"]+)"/);
431
+ displayName = nameMatch ? nameMatch[1] : name;
318
432
 
319
- // Try description attribute first, fall back to <objective> element
320
- const descMatch = content.match(/description="([^"]+)"/);
321
- const objMatch = content.match(/<objective>([^<]+)<\/objective>/);
322
- const description = descMatch ? descMatch[1] : objMatch ? objMatch[1].trim() : '';
433
+ const descMatch = content.match(/description="([^"]+)"/);
434
+ const objMatch = content.match(/<objective>([^<]+)<\/objective>/);
435
+ description = this.cleanForCSV(descMatch ? descMatch[1] : objMatch ? objMatch[1].trim() : '');
323
436
 
324
- // Check for standalone attribute in <task> tag (default: false)
325
- const standaloneMatch = content.match(/<task[^>]+standalone="true"/);
326
- const standalone = !!standaloneMatch;
437
+ const standaloneFalseMatch = content.match(/<task[^>]+standalone="false"/);
438
+ standalone = !standaloneFalseMatch;
439
+ }
327
440
 
328
441
  // Build relative path for installation
329
442
  const installPath =
330
443
  moduleName === 'core' ? `${this.bmadFolderName}/core/tasks/${file}` : `${this.bmadFolderName}/${moduleName}/tasks/${file}`;
331
444
 
332
- const taskName = file.replace(/\.(xml|md)$/, '');
333
445
  tasks.push({
334
- name: taskName,
335
- displayName: nameMatch ? nameMatch[1] : taskName,
336
- description: description.replaceAll('"', '""'),
446
+ name: name,
447
+ displayName: displayName,
448
+ description: description,
337
449
  module: moduleName,
338
450
  path: installPath,
339
451
  standalone: standalone,
@@ -342,7 +454,7 @@ class ManifestGenerator {
342
454
  // Add to files list
343
455
  this.files.push({
344
456
  type: 'task',
345
- name: taskName,
457
+ name: name,
346
458
  module: moduleName,
347
459
  path: installPath,
348
460
  });
@@ -383,27 +495,55 @@ class ManifestGenerator {
383
495
  const filePath = path.join(dirPath, file);
384
496
  const content = await fs.readFile(filePath, 'utf8');
385
497
 
386
- // Extract tool metadata from content if possible
387
- const nameMatch = content.match(/name="([^"]+)"/);
498
+ // Skip internal tools (same as tasks)
499
+ if (content.includes('internal="true"')) {
500
+ continue;
501
+ }
502
+
503
+ let name = file.replace(/\.(xml|md)$/, '');
504
+ let displayName = name;
505
+ let description = '';
506
+ let standalone = false;
507
+
508
+ if (file.endsWith('.md')) {
509
+ // Parse YAML frontmatter for .md tools
510
+ const frontmatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
511
+ if (frontmatterMatch) {
512
+ try {
513
+ const frontmatter = yaml.parse(frontmatterMatch[1]);
514
+ name = frontmatter.name || name;
515
+ displayName = frontmatter.displayName || frontmatter.name || name;
516
+ description = this.cleanForCSV(frontmatter.description || '');
517
+ // Tools are standalone by default unless explicitly false (internal=true is already filtered above)
518
+ standalone = frontmatter.standalone !== false && frontmatter.standalone !== 'false';
519
+ } catch {
520
+ // If YAML parsing fails, use defaults
521
+ standalone = true; // Default to standalone
522
+ }
523
+ } else {
524
+ standalone = true; // No frontmatter means standalone
525
+ }
526
+ } else {
527
+ // For .xml tools, extract from tag attributes
528
+ const nameMatch = content.match(/name="([^"]+)"/);
529
+ displayName = nameMatch ? nameMatch[1] : name;
388
530
 
389
- // Try description attribute first, fall back to <objective> element
390
- const descMatch = content.match(/description="([^"]+)"/);
391
- const objMatch = content.match(/<objective>([^<]+)<\/objective>/);
392
- const description = descMatch ? descMatch[1] : objMatch ? objMatch[1].trim() : '';
531
+ const descMatch = content.match(/description="([^"]+)"/);
532
+ const objMatch = content.match(/<objective>([^<]+)<\/objective>/);
533
+ description = this.cleanForCSV(descMatch ? descMatch[1] : objMatch ? objMatch[1].trim() : '');
393
534
 
394
- // Check for standalone attribute in <tool> tag (default: false)
395
- const standaloneMatch = content.match(/<tool[^>]+standalone="true"/);
396
- const standalone = !!standaloneMatch;
535
+ const standaloneFalseMatch = content.match(/<tool[^>]+standalone="false"/);
536
+ standalone = !standaloneFalseMatch;
537
+ }
397
538
 
398
539
  // Build relative path for installation
399
540
  const installPath =
400
541
  moduleName === 'core' ? `${this.bmadFolderName}/core/tools/${file}` : `${this.bmadFolderName}/${moduleName}/tools/${file}`;
401
542
 
402
- const toolName = file.replace(/\.(xml|md)$/, '');
403
543
  tools.push({
404
- name: toolName,
405
- displayName: nameMatch ? nameMatch[1] : toolName,
406
- description: description.replaceAll('"', '""'),
544
+ name: name,
545
+ displayName: displayName,
546
+ description: description,
407
547
  module: moduleName,
408
548
  path: installPath,
409
549
  standalone: standalone,
@@ -412,7 +552,7 @@ class ManifestGenerator {
412
552
  // Add to files list
413
553
  this.files.push({
414
554
  type: 'tool',
415
- name: toolName,
555
+ name: name,
416
556
  module: moduleName,
417
557
  path: installPath,
418
558
  });
@@ -424,25 +564,80 @@ class ManifestGenerator {
424
564
 
425
565
  /**
426
566
  * Write main manifest as YAML with installation info only
567
+ * Fetches fresh version info for all modules
427
568
  * @returns {string} Path to the manifest file
428
569
  */
429
570
  async writeMainManifest(cfgDir) {
430
571
  const manifestPath = path.join(cfgDir, 'manifest.yaml');
431
572
 
573
+ // Read existing manifest to preserve install date
574
+ let existingInstallDate = null;
575
+ const existingModulesMap = new Map();
576
+
577
+ if (await fs.pathExists(manifestPath)) {
578
+ try {
579
+ const existingContent = await fs.readFile(manifestPath, 'utf8');
580
+ const existingManifest = yaml.parse(existingContent);
581
+
582
+ // Preserve original install date
583
+ if (existingManifest.installation?.installDate) {
584
+ existingInstallDate = existingManifest.installation.installDate;
585
+ }
586
+
587
+ // Build map of existing modules for quick lookup
588
+ if (existingManifest.modules && Array.isArray(existingManifest.modules)) {
589
+ for (const m of existingManifest.modules) {
590
+ if (typeof m === 'object' && m.name) {
591
+ existingModulesMap.set(m.name, m);
592
+ } else if (typeof m === 'string') {
593
+ existingModulesMap.set(m, { installDate: existingInstallDate });
594
+ }
595
+ }
596
+ }
597
+ } catch {
598
+ // If we can't read existing manifest, continue with defaults
599
+ }
600
+ }
601
+
602
+ // Fetch fresh version info for all modules
603
+ const { Manifest } = require('./manifest');
604
+ const manifestObj = new Manifest();
605
+ const updatedModules = [];
606
+
607
+ for (const moduleName of this.modules) {
608
+ // Get fresh version info from source
609
+ const versionInfo = await manifestObj.getModuleVersionInfo(moduleName, this.bmadDir);
610
+
611
+ // Get existing install date if available
612
+ const existing = existingModulesMap.get(moduleName);
613
+
614
+ updatedModules.push({
615
+ name: moduleName,
616
+ version: versionInfo.version,
617
+ installDate: existing?.installDate || new Date().toISOString(),
618
+ lastUpdated: new Date().toISOString(),
619
+ source: versionInfo.source,
620
+ npmPackage: versionInfo.npmPackage,
621
+ repoUrl: versionInfo.repoUrl,
622
+ });
623
+ }
624
+
432
625
  const manifest = {
433
626
  installation: {
434
627
  version: packageJson.version,
435
- installDate: new Date().toISOString(),
628
+ installDate: existingInstallDate || new Date().toISOString(),
436
629
  lastUpdated: new Date().toISOString(),
437
630
  },
438
- modules: this.modules,
631
+ modules: updatedModules,
439
632
  ides: this.selectedIdes,
440
633
  };
441
634
 
442
- const yamlStr = yaml.dump(manifest, {
635
+ // Clean the manifest to remove any non-serializable values
636
+ const cleanManifest = structuredClone(manifest);
637
+
638
+ const yamlStr = yaml.stringify(cleanManifest, {
443
639
  indent: 2,
444
- lineWidth: -1,
445
- noRefs: true,
640
+ lineWidth: 0,
446
641
  sortKeys: false,
447
642
  });
448
643
 
@@ -499,7 +694,7 @@ class ManifestGenerator {
499
694
 
500
695
  return preservedRows;
501
696
  } catch (error) {
502
- console.warn(`Warning: Failed to read existing CSV ${csvPath}:`, error.message);
697
+ await prompts.log.warn(`Failed to read existing CSV ${csvPath}: ${error.message}`);
503
698
  return [];
504
699
  }
505
700
  }
@@ -540,13 +735,30 @@ class ManifestGenerator {
540
735
  */
541
736
  async writeWorkflowManifest(cfgDir) {
542
737
  const csvPath = path.join(cfgDir, 'workflow-manifest.csv');
738
+ const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
543
739
 
544
- // Create CSV header with standalone column
545
- let csv = 'name,description,module,path,standalone\n';
740
+ // Create CSV header - standalone column removed, everything is canonicalized to 4 columns
741
+ let csv = 'name,description,module,path\n';
742
+
743
+ // Build workflows map from discovered workflows only
744
+ // Old entries are NOT preserved - the manifest reflects what actually exists on disk
745
+ const allWorkflows = new Map();
546
746
 
547
- // Add all workflows
747
+ // Only add workflows that were actually discovered in this scan
548
748
  for (const workflow of this.workflows) {
549
- csv += `"${workflow.name}","${workflow.description}","${workflow.module}","${workflow.path}","${workflow.standalone}"\n`;
749
+ const key = `${workflow.module}:${workflow.name}`;
750
+ allWorkflows.set(key, {
751
+ name: workflow.name,
752
+ description: workflow.description,
753
+ module: workflow.module,
754
+ path: workflow.path,
755
+ });
756
+ }
757
+
758
+ // Write all workflows
759
+ for (const [, value] of allWorkflows) {
760
+ const row = [escapeCsv(value.name), escapeCsv(value.description), escapeCsv(value.module), escapeCsv(value.path)].join(',');
761
+ csv += row + '\n';
550
762
  }
551
763
 
552
764
  await fs.writeFile(csvPath, csv);
@@ -559,16 +771,69 @@ class ManifestGenerator {
559
771
  */
560
772
  async writeAgentManifest(cfgDir) {
561
773
  const csvPath = path.join(cfgDir, 'agent-manifest.csv');
774
+ const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
775
+
776
+ // Read existing manifest to preserve entries
777
+ const existingEntries = new Map();
778
+ if (await fs.pathExists(csvPath)) {
779
+ const content = await fs.readFile(csvPath, 'utf8');
780
+ const records = csv.parse(content, {
781
+ columns: true,
782
+ skip_empty_lines: true,
783
+ });
784
+ for (const record of records) {
785
+ existingEntries.set(`${record.module}:${record.name}`, record);
786
+ }
787
+ }
562
788
 
563
789
  // Create CSV header with persona fields
564
- let csv = 'name,displayName,title,icon,role,identity,communicationStyle,principles,module,path\n';
790
+ let csvContent = 'name,displayName,title,icon,capabilities,role,identity,communicationStyle,principles,module,path\n';
791
+
792
+ // Combine existing and new agents, preferring new data for duplicates
793
+ const allAgents = new Map();
794
+
795
+ // Add existing entries
796
+ for (const [key, value] of existingEntries) {
797
+ allAgents.set(key, value);
798
+ }
565
799
 
566
- // Add all agents
800
+ // Add/update new agents
567
801
  for (const agent of this.agents) {
568
- csv += `"${agent.name}","${agent.displayName}","${agent.title}","${agent.icon}","${agent.role}","${agent.identity}","${agent.communicationStyle}","${agent.principles}","${agent.module}","${agent.path}"\n`;
802
+ const key = `${agent.module}:${agent.name}`;
803
+ allAgents.set(key, {
804
+ name: agent.name,
805
+ displayName: agent.displayName,
806
+ title: agent.title,
807
+ icon: agent.icon,
808
+ capabilities: agent.capabilities,
809
+ role: agent.role,
810
+ identity: agent.identity,
811
+ communicationStyle: agent.communicationStyle,
812
+ principles: agent.principles,
813
+ module: agent.module,
814
+ path: agent.path,
815
+ });
569
816
  }
570
817
 
571
- await fs.writeFile(csvPath, csv);
818
+ // Write all agents
819
+ for (const [, record] of allAgents) {
820
+ const row = [
821
+ escapeCsv(record.name),
822
+ escapeCsv(record.displayName),
823
+ escapeCsv(record.title),
824
+ escapeCsv(record.icon),
825
+ escapeCsv(record.capabilities),
826
+ escapeCsv(record.role),
827
+ escapeCsv(record.identity),
828
+ escapeCsv(record.communicationStyle),
829
+ escapeCsv(record.principles),
830
+ escapeCsv(record.module),
831
+ escapeCsv(record.path),
832
+ ].join(',');
833
+ csvContent += row + '\n';
834
+ }
835
+
836
+ await fs.writeFile(csvPath, csvContent);
572
837
  return csvPath;
573
838
  }
574
839
 
@@ -578,16 +843,59 @@ class ManifestGenerator {
578
843
  */
579
844
  async writeTaskManifest(cfgDir) {
580
845
  const csvPath = path.join(cfgDir, 'task-manifest.csv');
846
+ const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
847
+
848
+ // Read existing manifest to preserve entries
849
+ const existingEntries = new Map();
850
+ if (await fs.pathExists(csvPath)) {
851
+ const content = await fs.readFile(csvPath, 'utf8');
852
+ const records = csv.parse(content, {
853
+ columns: true,
854
+ skip_empty_lines: true,
855
+ });
856
+ for (const record of records) {
857
+ existingEntries.set(`${record.module}:${record.name}`, record);
858
+ }
859
+ }
581
860
 
582
861
  // Create CSV header with standalone column
583
- let csv = 'name,displayName,description,module,path,standalone\n';
862
+ let csvContent = 'name,displayName,description,module,path,standalone\n';
863
+
864
+ // Combine existing and new tasks
865
+ const allTasks = new Map();
866
+
867
+ // Add existing entries
868
+ for (const [key, value] of existingEntries) {
869
+ allTasks.set(key, value);
870
+ }
584
871
 
585
- // Add all tasks
872
+ // Add/update new tasks
586
873
  for (const task of this.tasks) {
587
- csv += `"${task.name}","${task.displayName}","${task.description}","${task.module}","${task.path}","${task.standalone}"\n`;
874
+ const key = `${task.module}:${task.name}`;
875
+ allTasks.set(key, {
876
+ name: task.name,
877
+ displayName: task.displayName,
878
+ description: task.description,
879
+ module: task.module,
880
+ path: task.path,
881
+ standalone: task.standalone,
882
+ });
588
883
  }
589
884
 
590
- await fs.writeFile(csvPath, csv);
885
+ // Write all tasks
886
+ for (const [, record] of allTasks) {
887
+ const row = [
888
+ escapeCsv(record.name),
889
+ escapeCsv(record.displayName),
890
+ escapeCsv(record.description),
891
+ escapeCsv(record.module),
892
+ escapeCsv(record.path),
893
+ escapeCsv(record.standalone),
894
+ ].join(',');
895
+ csvContent += row + '\n';
896
+ }
897
+
898
+ await fs.writeFile(csvPath, csvContent);
591
899
  return csvPath;
592
900
  }
593
901
 
@@ -597,16 +905,59 @@ class ManifestGenerator {
597
905
  */
598
906
  async writeToolManifest(cfgDir) {
599
907
  const csvPath = path.join(cfgDir, 'tool-manifest.csv');
908
+ const escapeCsv = (value) => `"${String(value ?? '').replaceAll('"', '""')}"`;
909
+
910
+ // Read existing manifest to preserve entries
911
+ const existingEntries = new Map();
912
+ if (await fs.pathExists(csvPath)) {
913
+ const content = await fs.readFile(csvPath, 'utf8');
914
+ const records = csv.parse(content, {
915
+ columns: true,
916
+ skip_empty_lines: true,
917
+ });
918
+ for (const record of records) {
919
+ existingEntries.set(`${record.module}:${record.name}`, record);
920
+ }
921
+ }
600
922
 
601
923
  // Create CSV header with standalone column
602
- let csv = 'name,displayName,description,module,path,standalone\n';
924
+ let csvContent = 'name,displayName,description,module,path,standalone\n';
925
+
926
+ // Combine existing and new tools
927
+ const allTools = new Map();
928
+
929
+ // Add existing entries
930
+ for (const [key, value] of existingEntries) {
931
+ allTools.set(key, value);
932
+ }
603
933
 
604
- // Add all tools
934
+ // Add/update new tools
605
935
  for (const tool of this.tools) {
606
- csv += `"${tool.name}","${tool.displayName}","${tool.description}","${tool.module}","${tool.path}","${tool.standalone}"\n`;
936
+ const key = `${tool.module}:${tool.name}`;
937
+ allTools.set(key, {
938
+ name: tool.name,
939
+ displayName: tool.displayName,
940
+ description: tool.description,
941
+ module: tool.module,
942
+ path: tool.path,
943
+ standalone: tool.standalone,
944
+ });
607
945
  }
608
946
 
609
- await fs.writeFile(csvPath, csv);
947
+ // Write all tools
948
+ for (const [, record] of allTools) {
949
+ const row = [
950
+ escapeCsv(record.name),
951
+ escapeCsv(record.displayName),
952
+ escapeCsv(record.description),
953
+ escapeCsv(record.module),
954
+ escapeCsv(record.path),
955
+ escapeCsv(record.standalone),
956
+ ].join(',');
957
+ csvContent += row + '\n';
958
+ }
959
+
960
+ await fs.writeFile(csvPath, csvContent);
610
961
  return csvPath;
611
962
  }
612
963
 
@@ -641,13 +992,14 @@ class ManifestGenerator {
641
992
  if (this.allInstalledFiles && this.allInstalledFiles.length > 0) {
642
993
  // Process all installed files
643
994
  for (const filePath of this.allInstalledFiles) {
644
- const relativePath = 'bmad' + filePath.replace(this.bmadDir, '').replaceAll('\\', '/');
995
+ // Store paths relative to bmadDir (no folder prefix)
996
+ const relativePath = filePath.replace(this.bmadDir, '').replaceAll('\\', '/').replace(/^\//, '');
645
997
  const ext = path.extname(filePath).toLowerCase();
646
998
  const fileName = path.basename(filePath, ext);
647
999
 
648
- // Determine module from path
1000
+ // Determine module from path (first directory component)
649
1001
  const pathParts = relativePath.split('/');
650
- const module = pathParts.length > 1 ? pathParts[1] : 'unknown';
1002
+ const module = pathParts.length > 0 ? pathParts[0] : 'unknown';
651
1003
 
652
1004
  // Calculate hash
653
1005
  const hash = await this.calculateFileHash(filePath);
@@ -663,10 +1015,13 @@ class ManifestGenerator {
663
1015
  } else {
664
1016
  // Fallback: use the collected workflows/agents/tasks
665
1017
  for (const file of this.files) {
666
- const filePath = path.join(this.bmadDir, file.path.replace(this.bmadFolderName + '/', ''));
1018
+ // Strip the folder prefix if present (for consistency)
1019
+ const relPath = file.path.replace(this.bmadFolderName + '/', '');
1020
+ const filePath = path.join(this.bmadDir, relPath);
667
1021
  const hash = await this.calculateFileHash(filePath);
668
1022
  allFiles.push({
669
1023
  ...file,
1024
+ path: relPath,
670
1025
  hash: hash,
671
1026
  });
672
1027
  }
@@ -687,6 +1042,42 @@ class ManifestGenerator {
687
1042
  await fs.writeFile(csvPath, csv);
688
1043
  return csvPath;
689
1044
  }
1045
+
1046
+ /**
1047
+ * Scan the bmad directory to find all installed modules
1048
+ * @param {string} bmadDir - Path to bmad directory
1049
+ * @returns {Array} List of module names
1050
+ */
1051
+ async scanInstalledModules(bmadDir) {
1052
+ const modules = [];
1053
+
1054
+ try {
1055
+ const entries = await fs.readdir(bmadDir, { withFileTypes: true });
1056
+
1057
+ for (const entry of entries) {
1058
+ // Skip if not a directory or is a special directory
1059
+ if (!entry.isDirectory() || entry.name.startsWith('.') || entry.name === '_config') {
1060
+ continue;
1061
+ }
1062
+
1063
+ // Check if this looks like a module (has agents, workflows, or tasks directory)
1064
+ const modulePath = path.join(bmadDir, entry.name);
1065
+ const hasAgents = await fs.pathExists(path.join(modulePath, 'agents'));
1066
+ const hasWorkflows = await fs.pathExists(path.join(modulePath, 'workflows'));
1067
+ const hasTasks = await fs.pathExists(path.join(modulePath, 'tasks'));
1068
+ const hasTools = await fs.pathExists(path.join(modulePath, 'tools'));
1069
+
1070
+ // If it has any of these directories, it's likely a module
1071
+ if (hasAgents || hasWorkflows || hasTasks || hasTools) {
1072
+ modules.push(entry.name);
1073
+ }
1074
+ }
1075
+ } catch (error) {
1076
+ await prompts.log.warn(`Could not scan for installed modules: ${error.message}`);
1077
+ }
1078
+
1079
+ return modules;
1080
+ }
690
1081
  }
691
1082
 
692
1083
  module.exports = { ManifestGenerator };