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,6 +1,8 @@
1
1
  const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
3
  const crypto = require('node:crypto');
4
+ const { getProjectRoot } = require('../../../lib/project-root');
5
+ const prompts = require('../../../lib/prompts');
4
6
 
5
7
  class Manifest {
6
8
  /**
@@ -10,28 +12,51 @@ class Manifest {
10
12
  * @param {Array} installedFiles - List of installed files (no longer used, files tracked in files-manifest.csv)
11
13
  */
12
14
  async create(bmadDir, data, installedFiles = []) {
13
- const manifestPath = path.join(bmadDir, '_cfg', 'manifest.yaml');
14
- const yaml = require('js-yaml');
15
+ const manifestPath = path.join(bmadDir, '_config', 'manifest.yaml');
16
+ const yaml = require('yaml');
15
17
 
16
- // Ensure _cfg directory exists
18
+ // Ensure _config directory exists
17
19
  await fs.ensureDir(path.dirname(manifestPath));
18
20
 
21
+ // Get the BMad version from package.json
22
+ const bmadVersion = data.version || require(path.join(process.cwd(), 'package.json')).version;
23
+
24
+ // Convert module list to new detailed format
25
+ const moduleDetails = [];
26
+ if (data.modules && Array.isArray(data.modules)) {
27
+ for (const moduleName of data.modules) {
28
+ // Core and BMM modules use the BMad version
29
+ const moduleVersion = moduleName === 'core' || moduleName === 'bmm' ? bmadVersion : null;
30
+ const now = data.installDate || new Date().toISOString();
31
+
32
+ moduleDetails.push({
33
+ name: moduleName,
34
+ version: moduleVersion,
35
+ installDate: now,
36
+ lastUpdated: now,
37
+ source: moduleName === 'core' || moduleName === 'bmm' ? 'built-in' : 'unknown',
38
+ });
39
+ }
40
+ }
41
+
19
42
  // Structure the manifest data
20
43
  const manifestData = {
21
44
  installation: {
22
- version: data.version || require(path.join(process.cwd(), 'package.json')).version,
45
+ version: bmadVersion,
23
46
  installDate: data.installDate || new Date().toISOString(),
24
47
  lastUpdated: data.lastUpdated || new Date().toISOString(),
25
48
  },
26
- modules: data.modules || [],
49
+ modules: moduleDetails,
27
50
  ides: data.ides || [],
28
51
  };
29
52
 
30
53
  // Write YAML manifest
31
- const yamlContent = yaml.dump(manifestData, {
54
+ // Clean the manifest data to remove any non-serializable values
55
+ const cleanManifestData = structuredClone(manifestData);
56
+
57
+ const yamlContent = yaml.stringify(cleanManifestData, {
32
58
  indent: 2,
33
- lineWidth: -1,
34
- noRefs: true,
59
+ lineWidth: 0,
35
60
  sortKeys: false,
36
61
  });
37
62
 
@@ -47,24 +72,36 @@ class Manifest {
47
72
  * @returns {Object|null} Manifest data or null if not found
48
73
  */
49
74
  async read(bmadDir) {
50
- const yamlPath = path.join(bmadDir, '_cfg', 'manifest.yaml');
51
- const yaml = require('js-yaml');
75
+ const yamlPath = path.join(bmadDir, '_config', 'manifest.yaml');
76
+ const yaml = require('yaml');
52
77
 
53
78
  if (await fs.pathExists(yamlPath)) {
54
79
  try {
55
80
  const content = await fs.readFile(yamlPath, 'utf8');
56
- const manifestData = yaml.load(content);
81
+ const manifestData = yaml.parse(content);
82
+
83
+ // Handle new detailed module format
84
+ const modules = manifestData.modules || [];
85
+
86
+ // For backward compatibility: if modules is an array of strings (old format),
87
+ // the calling code may need the array of names
88
+ const moduleNames = modules.map((m) => (typeof m === 'string' ? m : m.name));
89
+
90
+ // Check if we have the new detailed format
91
+ const hasDetailedModules = modules.length > 0 && typeof modules[0] === 'object';
57
92
 
58
93
  // Flatten the structure for compatibility with existing code
59
94
  return {
60
95
  version: manifestData.installation?.version,
61
96
  installDate: manifestData.installation?.installDate,
62
97
  lastUpdated: manifestData.installation?.lastUpdated,
63
- modules: manifestData.modules || [],
98
+ modules: moduleNames, // Simple array of module names for backward compatibility
99
+ modulesDetailed: hasDetailedModules ? modules : null, // New detailed format
100
+ customModules: manifestData.customModules || [], // Keep for backward compatibility
64
101
  ides: manifestData.ides || [],
65
102
  };
66
103
  } catch (error) {
67
- console.error('Failed to read YAML manifest:', error.message);
104
+ await prompts.log.error(`Failed to read YAML manifest: ${error.message}`);
68
105
  }
69
106
  }
70
107
 
@@ -78,31 +115,97 @@ class Manifest {
78
115
  * @param {Array} installedFiles - Updated list of installed files
79
116
  */
80
117
  async update(bmadDir, updates, installedFiles = null) {
81
- const yaml = require('js-yaml');
82
- const manifest = (await this.read(bmadDir)) || {};
118
+ const yaml = require('yaml');
119
+ const manifest = (await this._readRaw(bmadDir)) || {
120
+ installation: {},
121
+ modules: [],
122
+ ides: [],
123
+ };
83
124
 
84
- // Merge updates
85
- Object.assign(manifest, updates);
86
- manifest.lastUpdated = new Date().toISOString();
125
+ // Handle module updates
126
+ if (updates.modules) {
127
+ // If modules is being updated, we need to preserve detailed module info
128
+ const existingDetailed = manifest.modules || [];
129
+ const incomingNames = updates.modules;
130
+
131
+ // Build updated modules array
132
+ const updatedModules = [];
133
+ for (const name of incomingNames) {
134
+ const existing = existingDetailed.find((m) => m.name === name);
135
+ if (existing) {
136
+ // Preserve existing details, update lastUpdated if this module is being updated
137
+ updatedModules.push({
138
+ ...existing,
139
+ lastUpdated: new Date().toISOString(),
140
+ });
141
+ } else {
142
+ // New module - add with minimal details
143
+ updatedModules.push({
144
+ name,
145
+ version: null,
146
+ installDate: new Date().toISOString(),
147
+ lastUpdated: new Date().toISOString(),
148
+ source: 'unknown',
149
+ });
150
+ }
151
+ }
87
152
 
88
- // Convert back to structured format for YAML
89
- const manifestData = {
90
- installation: {
91
- version: manifest.version,
92
- installDate: manifest.installDate,
93
- lastUpdated: manifest.lastUpdated,
94
- },
95
- modules: manifest.modules || [],
96
- ides: manifest.ides || [],
97
- };
153
+ manifest.modules = updatedModules;
154
+ }
155
+
156
+ // Merge other updates
157
+ if (updates.version) {
158
+ manifest.installation.version = updates.version;
159
+ }
160
+ if (updates.installDate) {
161
+ manifest.installation.installDate = updates.installDate;
162
+ }
163
+ manifest.installation.lastUpdated = new Date().toISOString();
98
164
 
99
- const manifestPath = path.join(bmadDir, '_cfg', 'manifest.yaml');
165
+ if (updates.ides) {
166
+ manifest.ides = updates.ides;
167
+ }
168
+
169
+ // Handle per-module version updates
170
+ if (updates.moduleVersions) {
171
+ for (const [moduleName, versionInfo] of Object.entries(updates.moduleVersions)) {
172
+ const moduleIndex = manifest.modules.findIndex((m) => m.name === moduleName);
173
+ if (moduleIndex !== -1) {
174
+ manifest.modules[moduleIndex] = {
175
+ ...manifest.modules[moduleIndex],
176
+ ...versionInfo,
177
+ lastUpdated: new Date().toISOString(),
178
+ };
179
+ }
180
+ }
181
+ }
182
+
183
+ // Handle adding a new module with version info
184
+ if (updates.addModule) {
185
+ const { name, version, source, npmPackage, repoUrl } = updates.addModule;
186
+ const existing = manifest.modules.find((m) => m.name === name);
187
+ if (!existing) {
188
+ manifest.modules.push({
189
+ name,
190
+ version: version || null,
191
+ installDate: new Date().toISOString(),
192
+ lastUpdated: new Date().toISOString(),
193
+ source: source || 'external',
194
+ npmPackage: npmPackage || null,
195
+ repoUrl: repoUrl || null,
196
+ });
197
+ }
198
+ }
199
+
200
+ const manifestPath = path.join(bmadDir, '_config', 'manifest.yaml');
100
201
  await fs.ensureDir(path.dirname(manifestPath));
101
202
 
102
- const yamlContent = yaml.dump(manifestData, {
203
+ // Clean the manifest data to remove any non-serializable values
204
+ const cleanManifestData = structuredClone(manifest);
205
+
206
+ const yamlContent = yaml.stringify(cleanManifestData, {
103
207
  indent: 2,
104
- lineWidth: -1,
105
- noRefs: true,
208
+ lineWidth: 0,
106
209
  sortKeys: false,
107
210
  });
108
211
 
@@ -110,16 +213,61 @@ class Manifest {
110
213
  const content = yamlContent.endsWith('\n') ? yamlContent : yamlContent + '\n';
111
214
  await fs.writeFile(manifestPath, content, 'utf8');
112
215
 
113
- return manifest;
216
+ // Return the flattened format for compatibility
217
+ return this._flattenManifest(manifest);
114
218
  }
115
219
 
116
220
  /**
117
- * Add a module to the manifest
221
+ * Read raw manifest data without flattening
222
+ * @param {string} bmadDir - Path to bmad directory
223
+ * @returns {Object|null} Raw manifest data or null if not found
224
+ */
225
+ async _readRaw(bmadDir) {
226
+ const yamlPath = path.join(bmadDir, '_config', 'manifest.yaml');
227
+ const yaml = require('yaml');
228
+
229
+ if (await fs.pathExists(yamlPath)) {
230
+ try {
231
+ const content = await fs.readFile(yamlPath, 'utf8');
232
+ return yaml.parse(content);
233
+ } catch (error) {
234
+ await prompts.log.error(`Failed to read YAML manifest: ${error.message}`);
235
+ }
236
+ }
237
+
238
+ return null;
239
+ }
240
+
241
+ /**
242
+ * Flatten manifest for backward compatibility
243
+ * @param {Object} manifest - Raw manifest data
244
+ * @returns {Object} Flattened manifest
245
+ */
246
+ _flattenManifest(manifest) {
247
+ const modules = manifest.modules || [];
248
+ const moduleNames = modules.map((m) => (typeof m === 'string' ? m : m.name));
249
+ const hasDetailedModules = modules.length > 0 && typeof modules[0] === 'object';
250
+
251
+ return {
252
+ version: manifest.installation?.version,
253
+ installDate: manifest.installation?.installDate,
254
+ lastUpdated: manifest.installation?.lastUpdated,
255
+ modules: moduleNames,
256
+ modulesDetailed: hasDetailedModules ? modules : null,
257
+ customModules: manifest.customModules || [],
258
+ ides: manifest.ides || [],
259
+ };
260
+ }
261
+
262
+ /**
263
+ * Add a module to the manifest with optional version info
264
+ * If module already exists, update its version info
118
265
  * @param {string} bmadDir - Path to bmad directory
119
266
  * @param {string} moduleName - Module name to add
267
+ * @param {Object} options - Optional version info
120
268
  */
121
- async addModule(bmadDir, moduleName) {
122
- const manifest = await this.read(bmadDir);
269
+ async addModule(bmadDir, moduleName, options = {}) {
270
+ const manifest = await this._readRaw(bmadDir);
123
271
  if (!manifest) {
124
272
  throw new Error('No manifest found');
125
273
  }
@@ -128,10 +276,33 @@ class Manifest {
128
276
  manifest.modules = [];
129
277
  }
130
278
 
131
- if (!manifest.modules.includes(moduleName)) {
132
- manifest.modules.push(moduleName);
133
- await this.update(bmadDir, { modules: manifest.modules });
279
+ const existingIndex = manifest.modules.findIndex((m) => m.name === moduleName);
280
+
281
+ if (existingIndex === -1) {
282
+ // Module doesn't exist, add it
283
+ manifest.modules.push({
284
+ name: moduleName,
285
+ version: options.version || null,
286
+ installDate: new Date().toISOString(),
287
+ lastUpdated: new Date().toISOString(),
288
+ source: options.source || 'unknown',
289
+ npmPackage: options.npmPackage || null,
290
+ repoUrl: options.repoUrl || null,
291
+ });
292
+ } else {
293
+ // Module exists, update its version info
294
+ const existing = manifest.modules[existingIndex];
295
+ manifest.modules[existingIndex] = {
296
+ ...existing,
297
+ version: options.version === undefined ? existing.version : options.version,
298
+ source: options.source || existing.source,
299
+ npmPackage: options.npmPackage === undefined ? existing.npmPackage : options.npmPackage,
300
+ repoUrl: options.repoUrl === undefined ? existing.repoUrl : options.repoUrl,
301
+ lastUpdated: new Date().toISOString(),
302
+ };
134
303
  }
304
+
305
+ await this._writeRaw(bmadDir, manifest);
135
306
  }
136
307
 
137
308
  /**
@@ -140,18 +311,93 @@ class Manifest {
140
311
  * @param {string} moduleName - Module name to remove
141
312
  */
142
313
  async removeModule(bmadDir, moduleName) {
143
- const manifest = await this.read(bmadDir);
314
+ const manifest = await this._readRaw(bmadDir);
144
315
  if (!manifest || !manifest.modules) {
145
316
  return;
146
317
  }
147
318
 
148
- const index = manifest.modules.indexOf(moduleName);
319
+ const index = manifest.modules.findIndex((m) => m.name === moduleName);
149
320
  if (index !== -1) {
150
321
  manifest.modules.splice(index, 1);
151
- await this.update(bmadDir, { modules: manifest.modules });
322
+ await this._writeRaw(bmadDir, manifest);
152
323
  }
153
324
  }
154
325
 
326
+ /**
327
+ * Update a single module's version info
328
+ * @param {string} bmadDir - Path to bmad directory
329
+ * @param {string} moduleName - Module name
330
+ * @param {Object} versionInfo - Version info to update
331
+ */
332
+ async updateModuleVersion(bmadDir, moduleName, versionInfo) {
333
+ const manifest = await this._readRaw(bmadDir);
334
+ if (!manifest || !manifest.modules) {
335
+ return;
336
+ }
337
+
338
+ const index = manifest.modules.findIndex((m) => m.name === moduleName);
339
+ if (index !== -1) {
340
+ manifest.modules[index] = {
341
+ ...manifest.modules[index],
342
+ ...versionInfo,
343
+ lastUpdated: new Date().toISOString(),
344
+ };
345
+ await this._writeRaw(bmadDir, manifest);
346
+ }
347
+ }
348
+
349
+ /**
350
+ * Get version info for a specific module
351
+ * @param {string} bmadDir - Path to bmad directory
352
+ * @param {string} moduleName - Module name
353
+ * @returns {Object|null} Module version info or null
354
+ */
355
+ async getModuleVersion(bmadDir, moduleName) {
356
+ const manifest = await this._readRaw(bmadDir);
357
+ if (!manifest || !manifest.modules) {
358
+ return null;
359
+ }
360
+
361
+ return manifest.modules.find((m) => m.name === moduleName) || null;
362
+ }
363
+
364
+ /**
365
+ * Get all modules with their version info
366
+ * @param {string} bmadDir - Path to bmad directory
367
+ * @returns {Array} Array of module info objects
368
+ */
369
+ async getAllModuleVersions(bmadDir) {
370
+ const manifest = await this._readRaw(bmadDir);
371
+ if (!manifest || !manifest.modules) {
372
+ return [];
373
+ }
374
+
375
+ return manifest.modules;
376
+ }
377
+
378
+ /**
379
+ * Write raw manifest data to file
380
+ * @param {string} bmadDir - Path to bmad directory
381
+ * @param {Object} manifestData - Raw manifest data to write
382
+ */
383
+ async _writeRaw(bmadDir, manifestData) {
384
+ const yaml = require('yaml');
385
+ const manifestPath = path.join(bmadDir, '_config', 'manifest.yaml');
386
+
387
+ await fs.ensureDir(path.dirname(manifestPath));
388
+
389
+ const cleanManifestData = structuredClone(manifestData);
390
+
391
+ const yamlContent = yaml.stringify(cleanManifestData, {
392
+ indent: 2,
393
+ lineWidth: 0,
394
+ sortKeys: false,
395
+ });
396
+
397
+ const content = yamlContent.endsWith('\n') ? yamlContent : yamlContent + '\n';
398
+ await fs.writeFile(manifestPath, content, 'utf8');
399
+ }
400
+
155
401
  /**
156
402
  * Add an IDE configuration to the manifest
157
403
  * @param {string} bmadDir - Path to bmad directory
@@ -227,7 +473,7 @@ class Manifest {
227
473
  }
228
474
  }
229
475
  } catch (error) {
230
- console.warn(`Warning: Could not parse ${filePath}:`, error.message);
476
+ await prompts.log.warn(`Could not parse ${filePath}: ${error.message}`);
231
477
  }
232
478
  }
233
479
  // Handle other file types (CSV, JSON, YAML, etc.)
@@ -524,17 +770,269 @@ class Manifest {
524
770
 
525
771
  try {
526
772
  if (await fs.pathExists(configPath)) {
527
- const yaml = require('js-yaml');
773
+ const yaml = require('yaml');
528
774
  const content = await fs.readFile(configPath, 'utf8');
529
- configs[moduleName] = yaml.load(content);
775
+ configs[moduleName] = yaml.parse(content);
530
776
  }
531
777
  } catch (error) {
532
- console.warn(`Could not load config for module ${moduleName}:`, error.message);
778
+ await prompts.log.warn(`Could not load config for module ${moduleName}: ${error.message}`);
533
779
  }
534
780
  }
535
781
 
536
782
  return configs;
537
783
  }
784
+ /**
785
+ * Add a custom module to the manifest with its source path
786
+ * @param {string} bmadDir - Path to bmad directory
787
+ * @param {Object} customModule - Custom module info
788
+ */
789
+ async addCustomModule(bmadDir, customModule) {
790
+ const manifest = await this.read(bmadDir);
791
+ if (!manifest) {
792
+ throw new Error('No manifest found');
793
+ }
794
+
795
+ if (!manifest.customModules) {
796
+ manifest.customModules = [];
797
+ }
798
+
799
+ // Check if custom module already exists
800
+ const existingIndex = manifest.customModules.findIndex((m) => m.id === customModule.id);
801
+ if (existingIndex === -1) {
802
+ // Add new entry
803
+ manifest.customModules.push(customModule);
804
+ } else {
805
+ // Update existing entry
806
+ manifest.customModules[existingIndex] = customModule;
807
+ }
808
+
809
+ await this.update(bmadDir, { customModules: manifest.customModules });
810
+ }
811
+
812
+ /**
813
+ * Remove a custom module from the manifest
814
+ * @param {string} bmadDir - Path to bmad directory
815
+ * @param {string} moduleId - Module ID to remove
816
+ */
817
+ async removeCustomModule(bmadDir, moduleId) {
818
+ const manifest = await this.read(bmadDir);
819
+ if (!manifest || !manifest.customModules) {
820
+ return;
821
+ }
822
+
823
+ const index = manifest.customModules.findIndex((m) => m.id === moduleId);
824
+ if (index !== -1) {
825
+ manifest.customModules.splice(index, 1);
826
+ await this.update(bmadDir, { customModules: manifest.customModules });
827
+ }
828
+ }
829
+
830
+ /**
831
+ * Get module version info from source
832
+ * @param {string} moduleName - Module name/code
833
+ * @param {string} bmadDir - Path to bmad directory
834
+ * @param {string} moduleSourcePath - Optional source path for custom modules
835
+ * @returns {Object} Version info object with version, source, npmPackage, repoUrl
836
+ */
837
+ async getModuleVersionInfo(moduleName, bmadDir, moduleSourcePath = null) {
838
+ const os = require('node:os');
839
+ const yaml = require('yaml');
840
+
841
+ // Built-in modules use BMad version (only core and bmm are in BMAD-METHOD repo)
842
+ if (['core', 'bmm'].includes(moduleName)) {
843
+ const bmadVersion = require(path.join(getProjectRoot(), 'package.json')).version;
844
+ return {
845
+ version: bmadVersion,
846
+ source: 'built-in',
847
+ npmPackage: null,
848
+ repoUrl: null,
849
+ };
850
+ }
851
+
852
+ // Check if this is an external official module
853
+ const { ExternalModuleManager } = require('../modules/external-manager');
854
+ const extMgr = new ExternalModuleManager();
855
+ const moduleInfo = await extMgr.getModuleByCode(moduleName);
856
+
857
+ if (moduleInfo) {
858
+ // External module - try to get version from npm registry first, then fall back to cache
859
+ let version = null;
860
+
861
+ if (moduleInfo.npmPackage) {
862
+ // Fetch version from npm registry
863
+ try {
864
+ version = await this.fetchNpmVersion(moduleInfo.npmPackage);
865
+ } catch {
866
+ // npm fetch failed, try cache as fallback
867
+ }
868
+ }
869
+
870
+ // If npm didn't work, try reading from cached repo's package.json
871
+ if (!version) {
872
+ const cacheDir = path.join(os.homedir(), '.bmad', 'cache', 'external-modules', moduleName);
873
+ const packageJsonPath = path.join(cacheDir, 'package.json');
874
+
875
+ if (await fs.pathExists(packageJsonPath)) {
876
+ try {
877
+ const pkg = require(packageJsonPath);
878
+ version = pkg.version;
879
+ } catch (error) {
880
+ await prompts.log.warn(`Failed to read package.json for ${moduleName}: ${error.message}`);
881
+ }
882
+ }
883
+ }
884
+
885
+ return {
886
+ version: version,
887
+ source: 'external',
888
+ npmPackage: moduleInfo.npmPackage || null,
889
+ repoUrl: moduleInfo.url || null,
890
+ };
891
+ }
892
+
893
+ // Custom module - check cache directory
894
+ const cacheDir = path.join(bmadDir, '_config', 'custom', moduleName);
895
+ const moduleYamlPath = path.join(cacheDir, 'module.yaml');
896
+
897
+ if (await fs.pathExists(moduleYamlPath)) {
898
+ try {
899
+ const yamlContent = await fs.readFile(moduleYamlPath, 'utf8');
900
+ const moduleConfig = yaml.parse(yamlContent);
901
+ return {
902
+ version: moduleConfig.version || null,
903
+ source: 'custom',
904
+ npmPackage: moduleConfig.npmPackage || null,
905
+ repoUrl: moduleConfig.repoUrl || null,
906
+ };
907
+ } catch (error) {
908
+ await prompts.log.warn(`Failed to read module.yaml for ${moduleName}: ${error.message}`);
909
+ }
910
+ }
911
+
912
+ // Unknown module
913
+ return {
914
+ version: null,
915
+ source: 'unknown',
916
+ npmPackage: null,
917
+ repoUrl: null,
918
+ };
919
+ }
920
+
921
+ /**
922
+ * Fetch latest version from npm for a package
923
+ * @param {string} packageName - npm package name
924
+ * @returns {string|null} Latest version or null
925
+ */
926
+ async fetchNpmVersion(packageName) {
927
+ try {
928
+ const https = require('node:https');
929
+ const { execSync } = require('node:child_process');
930
+
931
+ // Try using npm view first (more reliable)
932
+ try {
933
+ const result = execSync(`npm view ${packageName} version`, {
934
+ encoding: 'utf8',
935
+ stdio: 'pipe',
936
+ timeout: 10_000,
937
+ });
938
+ return result.trim();
939
+ } catch {
940
+ // Fallback to npm registry API
941
+ return new Promise((resolve, reject) => {
942
+ https
943
+ .get(`https://registry.npmjs.org/${packageName}`, (res) => {
944
+ let data = '';
945
+ res.on('data', (chunk) => (data += chunk));
946
+ res.on('end', () => {
947
+ try {
948
+ const pkg = JSON.parse(data);
949
+ resolve(pkg['dist-tags']?.latest || pkg.version || null);
950
+ } catch {
951
+ resolve(null);
952
+ }
953
+ });
954
+ })
955
+ .on('error', () => resolve(null));
956
+ });
957
+ }
958
+ } catch {
959
+ return null;
960
+ }
961
+ }
962
+
963
+ /**
964
+ * Check for available updates for installed modules
965
+ * @param {string} bmadDir - Path to bmad directory
966
+ * @returns {Array} Array of update info objects
967
+ */
968
+ async checkForUpdates(bmadDir) {
969
+ const modules = await this.getAllModuleVersions(bmadDir);
970
+ const updates = [];
971
+
972
+ for (const module of modules) {
973
+ if (!module.npmPackage) {
974
+ continue; // Skip modules without npm package (built-in)
975
+ }
976
+
977
+ const latestVersion = await this.fetchNpmVersion(module.npmPackage);
978
+ if (!latestVersion) {
979
+ continue;
980
+ }
981
+
982
+ if (module.version !== latestVersion) {
983
+ updates.push({
984
+ name: module.name,
985
+ installedVersion: module.version,
986
+ latestVersion: latestVersion,
987
+ npmPackage: module.npmPackage,
988
+ updateAvailable: true,
989
+ });
990
+ }
991
+ }
992
+
993
+ return updates;
994
+ }
995
+
996
+ /**
997
+ * Compare two semantic versions
998
+ * @param {string} v1 - First version
999
+ * @param {string} v2 - Second version
1000
+ * @returns {number} -1 if v1 < v2, 0 if v1 == v2, 1 if v1 > v2
1001
+ */
1002
+ compareVersions(v1, v2) {
1003
+ if (!v1 || !v2) return 0;
1004
+
1005
+ const normalize = (v) => {
1006
+ // Remove leading 'v' if present
1007
+ v = v.replace(/^v/, '');
1008
+ // Handle prerelease tags
1009
+ const parts = v.split('-');
1010
+ const main = parts[0].split('.');
1011
+ const prerelease = parts[1];
1012
+ return { main, prerelease };
1013
+ };
1014
+
1015
+ const n1 = normalize(v1);
1016
+ const n2 = normalize(v2);
1017
+
1018
+ // Compare main version parts
1019
+ for (let i = 0; i < 3; i++) {
1020
+ const num1 = parseInt(n1.main[i] || '0', 10);
1021
+ const num2 = parseInt(n2.main[i] || '0', 10);
1022
+ if (num1 !== num2) {
1023
+ return num1 < num2 ? -1 : 1;
1024
+ }
1025
+ }
1026
+
1027
+ // If main versions are equal, compare prerelease
1028
+ if (n1.prerelease && n2.prerelease) {
1029
+ return n1.prerelease < n2.prerelease ? -1 : n1.prerelease > n2.prerelease ? 1 : 0;
1030
+ }
1031
+ if (n1.prerelease) return -1; // Prerelease is older than stable
1032
+ if (n2.prerelease) return 1; // Stable is newer than prerelease
1033
+
1034
+ return 0;
1035
+ }
538
1036
  }
539
1037
 
540
1038
  module.exports = { Manifest };