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,87 +1,27 @@
1
1
  const path = require('node:path');
2
2
  const { BaseIdeSetup } = require('./_base-ide');
3
- const chalk = require('chalk');
4
- const inquirer = require('inquirer');
3
+ const prompts = require('../../../lib/prompts');
5
4
  const { AgentCommandGenerator } = require('./shared/agent-command-generator');
5
+ const { BMAD_FOLDER_NAME, toDashPath } = require('./shared/path-utils');
6
+ const fs = require('fs-extra');
7
+ const csv = require('csv-parse/sync');
8
+ const yaml = require('yaml');
6
9
 
7
10
  /**
8
11
  * GitHub Copilot setup handler
9
- * Creates chat modes in .github/chatmodes/ and configures VS Code settings
12
+ * Creates agents in .github/agents/, prompts in .github/prompts/,
13
+ * copilot-instructions.md, and configures VS Code settings
10
14
  */
11
15
  class GitHubCopilotSetup extends BaseIdeSetup {
12
16
  constructor() {
13
- super('github-copilot', 'GitHub Copilot', true); // preferred IDE
14
- this.configDir = '.github';
15
- this.chatmodesDir = 'chatmodes';
16
- this.vscodeDir = '.vscode';
17
- }
18
-
19
- /**
20
- * Collect configuration choices before installation
21
- * @param {Object} options - Configuration options
22
- * @returns {Object} Collected configuration
23
- */
24
- async collectConfiguration(options = {}) {
25
- const config = {};
26
-
27
- console.log('\n' + chalk.blue(' 🔧 VS Code Settings Configuration'));
28
- console.log(chalk.dim(' GitHub Copilot works best with specific settings\n'));
29
-
30
- const response = await inquirer.prompt([
31
- {
32
- type: 'list',
33
- name: 'configChoice',
34
- message: 'How would you like to configure VS Code settings?',
35
- choices: [
36
- { name: 'Use recommended defaults (fastest)', value: 'defaults' },
37
- { name: 'Configure each setting manually', value: 'manual' },
38
- { name: 'Skip settings configuration', value: 'skip' },
39
- ],
40
- default: 'defaults',
41
- },
42
- ]);
43
- config.vsCodeConfig = response.configChoice;
44
-
45
- if (response.configChoice === 'manual') {
46
- config.manualSettings = await inquirer.prompt([
47
- {
48
- type: 'input',
49
- name: 'maxRequests',
50
- message: 'Maximum requests per session (1-50)?',
51
- default: '15',
52
- validate: (input) => {
53
- const num = parseInt(input);
54
- return (num >= 1 && num <= 50) || 'Enter 1-50';
55
- },
56
- },
57
- {
58
- type: 'confirm',
59
- name: 'runTasks',
60
- message: 'Allow running workspace tasks?',
61
- default: true,
62
- },
63
- {
64
- type: 'confirm',
65
- name: 'mcpDiscovery',
66
- message: 'Enable MCP server discovery?',
67
- default: true,
68
- },
69
- {
70
- type: 'confirm',
71
- name: 'autoFix',
72
- message: 'Enable automatic error fixing?',
73
- default: true,
74
- },
75
- {
76
- type: 'confirm',
77
- name: 'autoApprove',
78
- message: 'Auto-approve tools (less secure)?',
79
- default: false,
80
- },
81
- ]);
82
- }
83
-
84
- return config;
17
+ super('github-copilot', 'GitHub Copilot', false);
18
+ // Don't set configDir to '.github' — nearly every GitHub repo has that directory,
19
+ // which would cause the base detect() to false-positive. Use detectionPaths instead.
20
+ this.configDir = null;
21
+ this.githubDir = '.github';
22
+ this.agentsDir = 'agents';
23
+ this.promptsDir = 'prompts';
24
+ this.detectionPaths = ['.github/copilot-instructions.md', '.github/agents'];
85
25
  }
86
26
 
87
27
  /**
@@ -91,176 +31,558 @@ class GitHubCopilotSetup extends BaseIdeSetup {
91
31
  * @param {Object} options - Setup options
92
32
  */
93
33
  async setup(projectDir, bmadDir, options = {}) {
94
- console.log(chalk.cyan(`Setting up ${this.name}...`));
34
+ if (!options.silent) await prompts.log.info(`Setting up ${this.name}...`);
95
35
 
96
- // Configure VS Code settings using pre-collected config if available
97
- const config = options.preCollectedConfig || {};
98
- await this.configureVsCodeSettings(projectDir, { ...options, ...config });
36
+ // Create .github/agents and .github/prompts directories
37
+ const githubDir = path.join(projectDir, this.githubDir);
38
+ const agentsDir = path.join(githubDir, this.agentsDir);
39
+ const promptsDir = path.join(githubDir, this.promptsDir);
40
+ await this.ensureDir(agentsDir);
41
+ await this.ensureDir(promptsDir);
99
42
 
100
- // Create .github/chatmodes directory
101
- const githubDir = path.join(projectDir, this.configDir);
102
- const chatmodesDir = path.join(githubDir, this.chatmodesDir);
103
- await this.ensureDir(chatmodesDir);
43
+ // Preserve any customised tool permissions from existing files before cleanup
44
+ this.existingToolPermissions = await this.collectExistingToolPermissions(projectDir);
104
45
 
105
46
  // Clean up any existing BMAD files before reinstalling
106
47
  await this.cleanup(projectDir);
107
48
 
49
+ // Load agent manifest for enriched descriptions
50
+ const agentManifest = await this.loadAgentManifest(bmadDir);
51
+
108
52
  // Generate agent launchers
109
53
  const agentGen = new AgentCommandGenerator(this.bmadFolderName);
110
54
  const { artifacts: agentArtifacts } = await agentGen.collectAgentArtifacts(bmadDir, options.selectedModules || []);
111
55
 
112
- // Create chat mode files with bmad- prefix
113
- let modeCount = 0;
56
+ // Create agent .agent.md files
57
+ let agentCount = 0;
114
58
  for (const artifact of agentArtifacts) {
115
- const content = artifact.content;
116
- const chatmodeContent = await this.createChatmodeContent({ module: artifact.module, name: artifact.name }, content);
59
+ const agentMeta = agentManifest.get(artifact.name);
60
+
61
+ // Compute fileName first so we can look up any existing tool permissions
62
+ const dashName = toDashPath(artifact.relativePath);
63
+ const fileName = dashName.replace(/\.md$/, '.agent.md');
64
+ const toolsStr = this.getToolsForFile(fileName);
65
+ const agentContent = this.createAgentContent(artifact, agentMeta, toolsStr);
66
+ const targetPath = path.join(agentsDir, fileName);
67
+ await this.writeFile(targetPath, agentContent);
68
+ agentCount++;
69
+ }
117
70
 
118
- // Use bmad- prefix: bmad-agent-{module}-{name}.chatmode.md
119
- const targetPath = path.join(chatmodesDir, `bmad-agent-${artifact.module}-${artifact.name}.chatmode.md`);
120
- await this.writeFile(targetPath, chatmodeContent);
121
- modeCount++;
71
+ // Generate prompt files from bmad-help.csv
72
+ const promptCount = await this.generatePromptFiles(projectDir, bmadDir, agentArtifacts, agentManifest);
122
73
 
123
- console.log(chalk.green(` ✓ Created chat mode: bmad-agent-${artifact.module}-${artifact.name}`));
124
- }
74
+ // Generate copilot-instructions.md
75
+ await this.generateCopilotInstructions(projectDir, bmadDir, agentManifest, options);
125
76
 
126
- console.log(chalk.green(`✓ ${this.name} configured:`));
127
- console.log(chalk.dim(` - ${modeCount} chat modes created`));
128
- console.log(chalk.dim(` - Chat modes directory: ${path.relative(projectDir, chatmodesDir)}`));
129
- console.log(chalk.dim(` - VS Code settings configured`));
130
- console.log(chalk.dim('\n Chat modes available in VS Code Chat view'));
77
+ if (!options.silent) await prompts.log.success(`${this.name} configured: ${agentCount} agents, ${promptCount} prompts → .github/`);
131
78
 
132
79
  return {
133
80
  success: true,
134
- chatmodes: modeCount,
135
- settings: true,
81
+ results: {
82
+ agents: agentCount,
83
+ workflows: promptCount,
84
+ tasks: 0,
85
+ tools: 0,
86
+ },
136
87
  };
137
88
  }
138
89
 
139
90
  /**
140
- * Configure VS Code settings for GitHub Copilot
91
+ * Load agent manifest CSV into a Map keyed by agent name
92
+ * @param {string} bmadDir - BMAD installation directory
93
+ * @returns {Map} Agent metadata keyed by name
141
94
  */
142
- async configureVsCodeSettings(projectDir, options) {
143
- const fs = require('fs-extra');
144
- const vscodeDir = path.join(projectDir, this.vscodeDir);
145
- const settingsPath = path.join(vscodeDir, 'settings.json');
146
-
147
- await this.ensureDir(vscodeDir);
148
-
149
- // Read existing settings
150
- let existingSettings = {};
151
- if (await fs.pathExists(settingsPath)) {
152
- try {
153
- const content = await fs.readFile(settingsPath, 'utf8');
154
- existingSettings = JSON.parse(content);
155
- console.log(chalk.yellow(' Found existing .vscode/settings.json'));
156
- } catch {
157
- console.warn(chalk.yellow(' Could not parse settings.json, creating new'));
95
+ async loadAgentManifest(bmadDir) {
96
+ const manifestPath = path.join(bmadDir, '_config', 'agent-manifest.csv');
97
+ const agents = new Map();
98
+
99
+ if (!(await fs.pathExists(manifestPath))) {
100
+ return agents;
101
+ }
102
+
103
+ try {
104
+ const csvContent = await fs.readFile(manifestPath, 'utf8');
105
+ const records = csv.parse(csvContent, {
106
+ columns: true,
107
+ skip_empty_lines: true,
108
+ });
109
+
110
+ for (const record of records) {
111
+ agents.set(record.name, record);
158
112
  }
113
+ } catch {
114
+ // Gracefully degrade if manifest is unreadable/malformed
159
115
  }
160
116
 
161
- // Use pre-collected configuration or skip if not available
162
- let configChoice = options.vsCodeConfig;
163
- if (!configChoice) {
164
- // If no pre-collected config, skip configuration
165
- console.log(chalk.yellow(' ⚠ No configuration collected, skipping VS Code settings'));
166
- return;
117
+ return agents;
118
+ }
119
+
120
+ /**
121
+ * Load bmad-help.csv to drive prompt generation
122
+ * @param {string} bmadDir - BMAD installation directory
123
+ * @returns {Array|null} Parsed CSV rows
124
+ */
125
+ async loadBmadHelp(bmadDir) {
126
+ const helpPath = path.join(bmadDir, '_config', 'bmad-help.csv');
127
+
128
+ if (!(await fs.pathExists(helpPath))) {
129
+ return null;
167
130
  }
168
131
 
169
- if (configChoice === 'skip') {
170
- console.log(chalk.yellow(' ⚠ Skipping VS Code settings'));
171
- return;
132
+ try {
133
+ const csvContent = await fs.readFile(helpPath, 'utf8');
134
+ return csv.parse(csvContent, {
135
+ columns: true,
136
+ skip_empty_lines: true,
137
+ });
138
+ } catch {
139
+ // Gracefully degrade if help CSV is unreadable/malformed
140
+ return null;
172
141
  }
142
+ }
173
143
 
174
- let bmadSettings = {};
175
-
176
- if (configChoice === 'defaults') {
177
- bmadSettings = {
178
- 'chat.agent.enabled': true,
179
- 'chat.agent.maxRequests': 15,
180
- 'github.copilot.chat.agent.runTasks': true,
181
- 'chat.mcp.discovery.enabled': true,
182
- 'github.copilot.chat.agent.autoFix': true,
183
- 'chat.tools.autoApprove': false,
184
- };
185
- console.log(chalk.green(' ✓ Using recommended defaults'));
144
+ /**
145
+ * Create agent .agent.md content with enriched description
146
+ * @param {Object} artifact - Agent artifact from AgentCommandGenerator
147
+ * @param {Object|undefined} manifestEntry - Agent manifest entry with metadata
148
+ * @returns {string} Agent file content
149
+ */
150
+ createAgentContent(artifact, manifestEntry, toolsStr) {
151
+ // Build enriched description from manifest metadata
152
+ let description;
153
+ if (manifestEntry) {
154
+ const persona = manifestEntry.displayName || artifact.name;
155
+ const title = manifestEntry.title || this.formatTitle(artifact.name);
156
+ const capabilities = manifestEntry.capabilities || 'agent capabilities';
157
+ description = `${persona} — ${title}: ${capabilities}`;
186
158
  } else {
187
- // Manual configuration - use pre-collected settings
188
- const manual = options.manualSettings || {};
189
-
190
- bmadSettings = {
191
- 'chat.agent.enabled': true,
192
- 'chat.agent.maxRequests': parseInt(manual.maxRequests || 15),
193
- 'github.copilot.chat.agent.runTasks': manual.runTasks === undefined ? true : manual.runTasks,
194
- 'chat.mcp.discovery.enabled': manual.mcpDiscovery === undefined ? true : manual.mcpDiscovery,
195
- 'github.copilot.chat.agent.autoFix': manual.autoFix === undefined ? true : manual.autoFix,
196
- 'chat.tools.autoApprove': manual.autoApprove || false,
197
- };
159
+ description = `Activates the ${this.formatTitle(artifact.name)} agent persona.`;
160
+ }
161
+
162
+ // Build the agent file path for the activation block
163
+ const agentPath = artifact.agentPath || artifact.relativePath;
164
+ const agentFilePath = `{project-root}/${this.bmadFolderName}/${agentPath}`;
165
+
166
+ return `---
167
+ description: '${description.replaceAll("'", "''")}'
168
+ tools: ${toolsStr}
169
+ disable-model-invocation: true
170
+ ---
171
+
172
+ You must fully embody this agent's persona and follow all activation instructions exactly as specified.
173
+
174
+ <agent-activation CRITICAL="TRUE">
175
+ 1. LOAD the FULL agent file from ${agentFilePath}
176
+ 2. READ its entire contents - this contains the complete agent persona, menu, and instructions
177
+ 3. FOLLOW every step in the <activation> section precisely
178
+ 4. DISPLAY the welcome/greeting as instructed
179
+ 5. PRESENT the numbered menu
180
+ 6. WAIT for user input before proceeding
181
+ </agent-activation>
182
+ `;
183
+ }
184
+
185
+ /**
186
+ * Generate .prompt.md files for workflows, tasks, tech-writer commands, and agent activators
187
+ * @param {string} projectDir - Project directory
188
+ * @param {string} bmadDir - BMAD installation directory
189
+ * @param {Array} agentArtifacts - Agent artifacts for activator generation
190
+ * @param {Map} agentManifest - Agent manifest data
191
+ * @returns {number} Count of prompts generated
192
+ */
193
+ async generatePromptFiles(projectDir, bmadDir, agentArtifacts, agentManifest) {
194
+ const promptsDir = path.join(projectDir, this.githubDir, this.promptsDir);
195
+ let promptCount = 0;
196
+
197
+ // Load bmad-help.csv to drive workflow/task prompt generation
198
+ const helpEntries = await this.loadBmadHelp(bmadDir);
199
+
200
+ if (helpEntries) {
201
+ for (const entry of helpEntries) {
202
+ const command = entry.command;
203
+ if (!command) continue; // Skip entries without a command (tech-writer commands have no command column)
204
+
205
+ const workflowFile = entry['workflow-file'];
206
+ if (!workflowFile) continue; // Skip entries with no workflow file path
207
+ const promptFileName = `${command}.prompt.md`;
208
+ const toolsStr = this.getToolsForFile(promptFileName);
209
+ const promptContent = this.createWorkflowPromptContent(entry, workflowFile, toolsStr);
210
+ const promptPath = path.join(promptsDir, promptFileName);
211
+ await this.writeFile(promptPath, promptContent);
212
+ promptCount++;
213
+ }
214
+
215
+ // Generate tech-writer command prompts (entries with no command column)
216
+ for (const entry of helpEntries) {
217
+ if (entry.command) continue; // Already handled above
218
+ const techWriterPrompt = this.createTechWriterPromptContent(entry);
219
+ if (techWriterPrompt) {
220
+ const promptFileName = `${techWriterPrompt.fileName}.prompt.md`;
221
+ const promptPath = path.join(promptsDir, promptFileName);
222
+ await this.writeFile(promptPath, techWriterPrompt.content);
223
+ promptCount++;
224
+ }
225
+ }
198
226
  }
199
227
 
200
- // Merge settings (existing take precedence)
201
- const mergedSettings = { ...bmadSettings, ...existingSettings };
228
+ // Generate agent activator prompts (Pattern D)
229
+ for (const artifact of agentArtifacts) {
230
+ const agentMeta = agentManifest.get(artifact.name);
231
+ const fileName = `bmad-${artifact.name}.prompt.md`;
232
+ const toolsStr = this.getToolsForFile(fileName);
233
+ const promptContent = this.createAgentActivatorPromptContent(artifact, agentMeta, toolsStr);
234
+ const promptPath = path.join(promptsDir, fileName);
235
+ await this.writeFile(promptPath, promptContent);
236
+ promptCount++;
237
+ }
202
238
 
203
- // Write settings
204
- await fs.writeFile(settingsPath, JSON.stringify(mergedSettings, null, 2));
205
- console.log(chalk.green(' ✓ VS Code settings configured'));
239
+ return promptCount;
206
240
  }
207
241
 
208
242
  /**
209
- * Create chat mode content
243
+ * Create prompt content for a workflow/task entry from bmad-help.csv
244
+ * Determines the pattern (A, B, or A for .xml tasks) based on file extension
245
+ * @param {Object} entry - bmad-help.csv row
246
+ * @param {string} workflowFile - Workflow file path
247
+ * @returns {string} Prompt file content
210
248
  */
211
- async createChatmodeContent(agent, content) {
212
- // Extract metadata from launcher frontmatter if present
213
- const descMatch = content.match(/description:\s*"([^"]+)"/);
214
- const title = descMatch ? descMatch[1] : this.formatTitle(agent.name);
215
-
216
- const description = `Activates the ${title} agent persona.`;
217
-
218
- // Strip any existing frontmatter from the content
219
- const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
220
- let cleanContent = content;
221
- if (frontmatterRegex.test(content)) {
222
- cleanContent = content.replace(frontmatterRegex, '').trim();
249
+ createWorkflowPromptContent(entry, workflowFile, toolsStr) {
250
+ const description = this.escapeYamlSingleQuote(this.createPromptDescription(entry.name));
251
+ // bmm/config.yaml is safe to hardcode here: these prompts are only generated when
252
+ // bmad-help.csv exists (bmm module data), so bmm is guaranteed to be installed.
253
+ const configLine = `1. Load {project-root}/${this.bmadFolderName}/bmm/config.yaml and store ALL fields as session variables`;
254
+
255
+ let body;
256
+ if (workflowFile.endsWith('.yaml')) {
257
+ // Pattern B: YAML-based workflows — use workflow engine
258
+ body = `${configLine}
259
+ 2. Load the workflow engine at {project-root}/${this.bmadFolderName}/core/tasks/workflow.xml
260
+ 3. Load and execute the workflow configuration at {project-root}/${workflowFile} using the engine from step 2`;
261
+ } else if (workflowFile.endsWith('.xml')) {
262
+ // Pattern A variant: XML tasks — load and execute directly
263
+ body = `${configLine}
264
+ 2. Load and execute the task at {project-root}/${workflowFile}`;
265
+ } else {
266
+ // Pattern A: MD workflows — load and follow directly
267
+ body = `${configLine}
268
+ 2. Load and follow the workflow at {project-root}/${workflowFile}`;
223
269
  }
224
270
 
225
- // Available GitHub Copilot tools (November 2025 - Official VS Code Documentation)
226
- // Reference: https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
227
- const tools = [
228
- 'changes', // List of source control changes
229
- 'codebase', // Perform code search in workspace
230
- 'createDirectory', // Create new directory in workspace
231
- 'createFile', // Create new file in workspace
232
- 'editFiles', // Apply edits to files in workspace
233
- 'fetch', // Fetch content from web page
234
- 'fileSearch', // Search files using glob patterns
235
- 'githubRepo', // Perform code search in GitHub repo
236
- 'listDirectory', // List files in a directory
237
- 'problems', // Add workspace issues from Problems panel
238
- 'readFile', // Read content of a file in workspace
239
- 'runInTerminal', // Run shell command in integrated terminal
240
- 'runTask', // Run existing task in workspace
241
- 'runTests', // Run unit tests in workspace
242
- 'runVscodeCommand', // Run VS Code command
243
- 'search', // Enable file searching in workspace
244
- 'searchResults', // Get search results from Search view
245
- 'terminalLastCommand', // Get last terminal command and output
246
- 'terminalSelection', // Get current terminal selection
247
- 'testFailure', // Get unit test failure information
248
- 'textSearch', // Find text in files
249
- 'usages', // Find references and navigate definitions
250
- ];
271
+ return `---
272
+ description: '${description}'
273
+ agent: 'agent'
274
+ tools: ${toolsStr}
275
+ ---
276
+
277
+ ${body}
278
+ `;
279
+ }
280
+
281
+ /**
282
+ * Create a short 2-5 word description for a prompt from the entry name
283
+ * @param {string} name - Entry name from bmad-help.csv
284
+ * @returns {string} Short description
285
+ */
286
+ createPromptDescription(name) {
287
+ const descriptionMap = {
288
+ 'Brainstorm Project': 'Brainstorm ideas',
289
+ 'Market Research': 'Market research',
290
+ 'Domain Research': 'Domain research',
291
+ 'Technical Research': 'Technical research',
292
+ 'Create Brief': 'Create product brief',
293
+ 'Create PRD': 'Create PRD',
294
+ 'Validate PRD': 'Validate PRD',
295
+ 'Edit PRD': 'Edit PRD',
296
+ 'Create UX': 'Create UX design',
297
+ 'Create Architecture': 'Create architecture',
298
+ 'Create Epics and Stories': 'Create epics and stories',
299
+ 'Check Implementation Readiness': 'Check implementation readiness',
300
+ 'Sprint Planning': 'Sprint planning',
301
+ 'Sprint Status': 'Sprint status',
302
+ 'Create Story': 'Create story',
303
+ 'Validate Story': 'Validate story',
304
+ 'Dev Story': 'Dev story',
305
+ 'QA Automation Test': 'QA automation',
306
+ 'Code Review': 'Code review',
307
+ Retrospective: 'Retrospective',
308
+ 'Document Project': 'Document project',
309
+ 'Generate Project Context': 'Generate project context',
310
+ 'Quick Spec': 'Quick spec',
311
+ 'Quick Dev': 'Quick dev',
312
+ 'Correct Course': 'Correct course',
313
+ Brainstorming: 'Brainstorm ideas',
314
+ 'Party Mode': 'Party mode',
315
+ 'bmad-help': 'BMAD help',
316
+ 'Index Docs': 'Index documents',
317
+ 'Shard Document': 'Shard document',
318
+ 'Editorial Review - Prose': 'Editorial review prose',
319
+ 'Editorial Review - Structure': 'Editorial review structure',
320
+ 'Adversarial Review (General)': 'Adversarial review',
321
+ };
251
322
 
252
- let chatmodeContent = `---
253
- description: "${description.replaceAll('"', String.raw`\"`)}"
254
- tools: ${JSON.stringify(tools)}
323
+ return descriptionMap[name] || name;
324
+ }
325
+
326
+ /**
327
+ * Create prompt content for tech-writer agent-only commands (Pattern C)
328
+ * @param {Object} entry - bmad-help.csv row
329
+ * @returns {Object|null} { fileName, content } or null if not a tech-writer command
330
+ */
331
+ createTechWriterPromptContent(entry) {
332
+ if (entry['agent-name'] !== 'tech-writer') return null;
333
+
334
+ const techWriterCommands = {
335
+ 'Write Document': { code: 'WD', file: 'bmad-bmm-write-document', description: 'Write document' },
336
+ 'Update Standards': { code: 'US', file: 'bmad-bmm-update-standards', description: 'Update standards' },
337
+ 'Mermaid Generate': { code: 'MG', file: 'bmad-bmm-mermaid-generate', description: 'Mermaid generate' },
338
+ 'Validate Document': { code: 'VD', file: 'bmad-bmm-validate-document', description: 'Validate document' },
339
+ 'Explain Concept': { code: 'EC', file: 'bmad-bmm-explain-concept', description: 'Explain concept' },
340
+ };
341
+
342
+ const cmd = techWriterCommands[entry.name];
343
+ if (!cmd) return null;
344
+
345
+ const safeDescription = this.escapeYamlSingleQuote(cmd.description);
346
+ const toolsStr = this.getToolsForFile(`${cmd.file}.prompt.md`);
347
+
348
+ const content = `---
349
+ description: '${safeDescription}'
350
+ agent: 'agent'
351
+ tools: ${toolsStr}
255
352
  ---
256
353
 
257
- # ${title} Agent
354
+ 1. Load {project-root}/${this.bmadFolderName}/bmm/config.yaml and store ALL fields as session variables
355
+ 2. Load the full agent file from {project-root}/${this.bmadFolderName}/bmm/agents/tech-writer/tech-writer.md and activate the Paige (Technical Writer) persona
356
+ 3. Execute the ${entry.name} menu command (${cmd.code})
357
+ `;
358
+
359
+ return { fileName: cmd.file, content };
360
+ }
258
361
 
259
- ${cleanContent}
362
+ /**
363
+ * Create agent activator prompt content (Pattern D)
364
+ * @param {Object} artifact - Agent artifact
365
+ * @param {Object|undefined} manifestEntry - Agent manifest entry
366
+ * @returns {string} Prompt file content
367
+ */
368
+ createAgentActivatorPromptContent(artifact, manifestEntry, toolsStr) {
369
+ let description;
370
+ if (manifestEntry) {
371
+ description = manifestEntry.title || this.formatTitle(artifact.name);
372
+ } else {
373
+ description = this.formatTitle(artifact.name);
374
+ }
375
+
376
+ const safeDescription = this.escapeYamlSingleQuote(description);
377
+ const agentPath = artifact.agentPath || artifact.relativePath;
378
+ const agentFilePath = `{project-root}/${this.bmadFolderName}/${agentPath}`;
379
+
380
+ // bmm/config.yaml is safe to hardcode: agent activators are only generated from
381
+ // bmm agent artifacts, so bmm is guaranteed to be installed.
382
+ return `---
383
+ description: '${safeDescription}'
384
+ agent: 'agent'
385
+ tools: ${toolsStr}
386
+ ---
260
387
 
388
+ 1. Load {project-root}/${this.bmadFolderName}/bmm/config.yaml and store ALL fields as session variables
389
+ 2. Load the full agent file from ${agentFilePath}
390
+ 3. Follow ALL activation instructions in the agent file
391
+ 4. Display the welcome/greeting as instructed
392
+ 5. Present the numbered menu
393
+ 6. Wait for user input before proceeding
261
394
  `;
395
+ }
396
+
397
+ /**
398
+ * Generate copilot-instructions.md from module config
399
+ * @param {string} projectDir - Project directory
400
+ * @param {string} bmadDir - BMAD installation directory
401
+ * @param {Map} agentManifest - Agent manifest data
402
+ */
403
+ async generateCopilotInstructions(projectDir, bmadDir, agentManifest, options = {}) {
404
+ const configVars = await this.loadModuleConfig(bmadDir);
405
+
406
+ // Build the agents table from the manifest
407
+ let agentsTable = '| Agent | Persona | Title | Capabilities |\n|---|---|---|---|\n';
408
+ const agentOrder = [
409
+ 'bmad-master',
410
+ 'analyst',
411
+ 'architect',
412
+ 'dev',
413
+ 'pm',
414
+ 'qa',
415
+ 'quick-flow-solo-dev',
416
+ 'sm',
417
+ 'tech-writer',
418
+ 'ux-designer',
419
+ ];
420
+
421
+ for (const agentName of agentOrder) {
422
+ const meta = agentManifest.get(agentName);
423
+ if (meta) {
424
+ const capabilities = meta.capabilities || 'agent capabilities';
425
+ const cleanTitle = (meta.title || '').replaceAll('""', '"');
426
+ agentsTable += `| ${agentName} | ${meta.displayName} | ${cleanTitle} | ${capabilities} |\n`;
427
+ }
428
+ }
429
+
430
+ const bmad = this.bmadFolderName;
431
+ const bmadSection = `# BMAD Method — Project Instructions
432
+
433
+ ## Project Configuration
434
+
435
+ - **Project**: ${configVars.project_name || '{{project_name}}'}
436
+ - **User**: ${configVars.user_name || '{{user_name}}'}
437
+ - **Communication Language**: ${configVars.communication_language || '{{communication_language}}'}
438
+ - **Document Output Language**: ${configVars.document_output_language || '{{document_output_language}}'}
439
+ - **User Skill Level**: ${configVars.user_skill_level || '{{user_skill_level}}'}
440
+ - **Output Folder**: ${configVars.output_folder || '{{output_folder}}'}
441
+ - **Planning Artifacts**: ${configVars.planning_artifacts || '{{planning_artifacts}}'}
442
+ - **Implementation Artifacts**: ${configVars.implementation_artifacts || '{{implementation_artifacts}}'}
443
+ - **Project Knowledge**: ${configVars.project_knowledge || '{{project_knowledge}}'}
444
+
445
+ ## BMAD Runtime Structure
446
+
447
+ - **Agent definitions**: \`${bmad}/bmm/agents/\` (BMM module) and \`${bmad}/core/agents/\` (core)
448
+ - **Workflow definitions**: \`${bmad}/bmm/workflows/\` (organized by phase)
449
+ - **Core tasks**: \`${bmad}/core/tasks/\` (help, editorial review, indexing, sharding, adversarial review)
450
+ - **Core workflows**: \`${bmad}/core/workflows/\` (brainstorming, party-mode, advanced-elicitation)
451
+ - **Workflow engine**: \`${bmad}/core/tasks/workflow.xml\` (executes YAML-based workflows)
452
+ - **Module configuration**: \`${bmad}/bmm/config.yaml\`
453
+ - **Core configuration**: \`${bmad}/core/config.yaml\`
454
+ - **Agent manifest**: \`${bmad}/_config/agent-manifest.csv\`
455
+ - **Workflow manifest**: \`${bmad}/_config/workflow-manifest.csv\`
456
+ - **Help manifest**: \`${bmad}/_config/bmad-help.csv\`
457
+ - **Agent memory**: \`${bmad}/_memory/\`
458
+
459
+ ## Key Conventions
460
+
461
+ - Always load \`${bmad}/bmm/config.yaml\` before any agent activation or workflow execution
462
+ - Store all config fields as session variables: \`{user_name}\`, \`{communication_language}\`, \`{output_folder}\`, \`{planning_artifacts}\`, \`{implementation_artifacts}\`, \`{project_knowledge}\`
463
+ - MD-based workflows execute directly — load and follow the \`.md\` file
464
+ - YAML-based workflows require the workflow engine — load \`workflow.xml\` first, then pass the \`.yaml\` config
465
+ - Follow step-based workflow execution: load steps JIT, never multiple at once
466
+ - Save outputs after EACH step when using the workflow engine
467
+ - The \`{project-root}\` variable resolves to the workspace root at runtime
468
+
469
+ ## Available Agents
470
+
471
+ ${agentsTable}
472
+ ## Slash Commands
473
+
474
+ Type \`/bmad-\` in Copilot Chat to see all available BMAD workflows and agent activators. Agents are also available in the agents dropdown.`;
475
+
476
+ const instructionsPath = path.join(projectDir, this.githubDir, 'copilot-instructions.md');
477
+ const markerStart = '<!-- BMAD:START -->';
478
+ const markerEnd = '<!-- BMAD:END -->';
479
+ const markedContent = `${markerStart}\n${bmadSection}\n${markerEnd}`;
480
+
481
+ if (await fs.pathExists(instructionsPath)) {
482
+ const existing = await fs.readFile(instructionsPath, 'utf8');
483
+ const startIdx = existing.indexOf(markerStart);
484
+ const endIdx = existing.indexOf(markerEnd);
485
+
486
+ if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
487
+ // Replace only the BMAD section between markers
488
+ const before = existing.slice(0, startIdx);
489
+ const after = existing.slice(endIdx + markerEnd.length);
490
+ const merged = `${before}${markedContent}${after}`;
491
+ await this.writeFile(instructionsPath, merged);
492
+ } else {
493
+ // Existing file without markers — back it up before overwriting
494
+ const backupPath = `${instructionsPath}.bak`;
495
+ await fs.copy(instructionsPath, backupPath);
496
+ if (!options.silent) await prompts.log.warn(` Backed up copilot-instructions.md → .bak`);
497
+ await this.writeFile(instructionsPath, `${markedContent}\n`);
498
+ }
499
+ } else {
500
+ // No existing file — create fresh with markers
501
+ await this.writeFile(instructionsPath, `${markedContent}\n`);
502
+ }
503
+ }
504
+
505
+ /**
506
+ * Load module config.yaml for template variables
507
+ * @param {string} bmadDir - BMAD installation directory
508
+ * @returns {Object} Config variables
509
+ */
510
+ async loadModuleConfig(bmadDir) {
511
+ const bmmConfigPath = path.join(bmadDir, 'bmm', 'config.yaml');
512
+ const coreConfigPath = path.join(bmadDir, 'core', 'config.yaml');
513
+
514
+ for (const configPath of [bmmConfigPath, coreConfigPath]) {
515
+ if (await fs.pathExists(configPath)) {
516
+ try {
517
+ const content = await fs.readFile(configPath, 'utf8');
518
+ return yaml.parse(content) || {};
519
+ } catch {
520
+ // Fall through to next config
521
+ }
522
+ }
523
+ }
524
+
525
+ return {};
526
+ }
527
+
528
+ /**
529
+ * Escape a string for use inside YAML single-quoted values.
530
+ * In YAML, the only escape inside single quotes is '' for a literal '.
531
+ * @param {string} value - Raw string
532
+ * @returns {string} Escaped string safe for YAML single-quoted context
533
+ */
534
+ escapeYamlSingleQuote(value) {
535
+ return (value || '').replaceAll("'", "''");
536
+ }
537
+
538
+ /**
539
+ * Scan existing agent and prompt files for customised tool permissions before cleanup.
540
+ * Returns a Map<filename, toolsArray> so permissions can be preserved across reinstalls.
541
+ * @param {string} projectDir - Project directory
542
+ * @returns {Map} Existing tool permissions keyed by filename
543
+ */
544
+ async collectExistingToolPermissions(projectDir) {
545
+ const permissions = new Map();
546
+ const dirs = [
547
+ [path.join(projectDir, this.githubDir, this.agentsDir), /^bmad.*\.agent\.md$/],
548
+ [path.join(projectDir, this.githubDir, this.promptsDir), /^bmad-.*\.prompt\.md$/],
549
+ ];
550
+
551
+ for (const [dir, pattern] of dirs) {
552
+ if (!(await fs.pathExists(dir))) continue;
553
+ const files = await fs.readdir(dir);
554
+
555
+ for (const file of files) {
556
+ if (!pattern.test(file)) continue;
557
+
558
+ try {
559
+ const content = await fs.readFile(path.join(dir, file), 'utf8');
560
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
561
+ if (!fmMatch) continue;
562
+
563
+ const frontmatter = yaml.parse(fmMatch[1]);
564
+ if (frontmatter && Array.isArray(frontmatter.tools)) {
565
+ permissions.set(file, frontmatter.tools);
566
+ }
567
+ } catch {
568
+ // Skip unreadable files
569
+ }
570
+ }
571
+ }
262
572
 
263
- return chatmodeContent;
573
+ return permissions;
574
+ }
575
+
576
+ /**
577
+ * Get the tools array string for a file, preserving any existing customisation.
578
+ * Falls back to the default tools if no prior customisation exists.
579
+ * @param {string} fileName - Target filename (e.g. 'bmad-agent-bmm-pm.agent.md')
580
+ * @returns {string} YAML inline array string
581
+ */
582
+ getToolsForFile(fileName) {
583
+ const defaultTools = ['read', 'edit', 'search', 'execute'];
584
+ const tools = (this.existingToolPermissions && this.existingToolPermissions.get(fileName)) || defaultTools;
585
+ return '[' + tools.map((t) => `'${t}'`).join(', ') + ']';
264
586
  }
265
587
 
266
588
  /**
@@ -276,24 +598,100 @@ ${cleanContent}
276
598
  /**
277
599
  * Cleanup GitHub Copilot configuration - surgically remove only BMAD files
278
600
  */
279
- async cleanup(projectDir) {
280
- const fs = require('fs-extra');
281
- const chatmodesDir = path.join(projectDir, this.configDir, this.chatmodesDir);
601
+ async cleanup(projectDir, options = {}) {
602
+ // Clean up agents directory
603
+ const agentsDir = path.join(projectDir, this.githubDir, this.agentsDir);
604
+ if (await fs.pathExists(agentsDir)) {
605
+ const files = await fs.readdir(agentsDir);
606
+ let removed = 0;
282
607
 
283
- if (await fs.pathExists(chatmodesDir)) {
284
- // Only remove files that start with bmad- prefix
285
- const files = await fs.readdir(chatmodesDir);
608
+ for (const file of files) {
609
+ if (file.startsWith('bmad') && (file.endsWith('.agent.md') || file.endsWith('.md'))) {
610
+ await fs.remove(path.join(agentsDir, file));
611
+ removed++;
612
+ }
613
+ }
614
+
615
+ if (removed > 0 && !options.silent) {
616
+ await prompts.log.message(` Cleaned up ${removed} existing BMAD agents`);
617
+ }
618
+ }
619
+
620
+ // Clean up prompts directory
621
+ const promptsDir = path.join(projectDir, this.githubDir, this.promptsDir);
622
+ if (await fs.pathExists(promptsDir)) {
623
+ const files = await fs.readdir(promptsDir);
286
624
  let removed = 0;
287
625
 
288
626
  for (const file of files) {
289
- if (file.startsWith('bmad-') && file.endsWith('.chatmode.md')) {
290
- await fs.remove(path.join(chatmodesDir, file));
627
+ if (file.startsWith('bmad-') && file.endsWith('.prompt.md')) {
628
+ await fs.remove(path.join(promptsDir, file));
291
629
  removed++;
292
630
  }
293
631
  }
294
632
 
295
- if (removed > 0) {
296
- console.log(chalk.dim(` Cleaned up ${removed} existing BMAD chat modes`));
633
+ if (removed > 0 && !options.silent) {
634
+ await prompts.log.message(` Cleaned up ${removed} existing BMAD prompts`);
635
+ }
636
+ }
637
+
638
+ // During uninstall, also strip BMAD markers from copilot-instructions.md.
639
+ // During reinstall (default), this is skipped because generateCopilotInstructions()
640
+ // handles marker-based replacement in a single read-modify-write pass,
641
+ // which correctly preserves user content outside the markers.
642
+ if (options.isUninstall) {
643
+ await this.cleanupCopilotInstructions(projectDir, options);
644
+ }
645
+ }
646
+
647
+ /**
648
+ * Strip BMAD marker section from copilot-instructions.md
649
+ * If file becomes empty after stripping, delete it.
650
+ * If a .bak backup exists and the main file was deleted, restore the backup.
651
+ * @param {string} projectDir - Project directory
652
+ * @param {Object} [options] - Options (e.g. { silent: true })
653
+ */
654
+ async cleanupCopilotInstructions(projectDir, options = {}) {
655
+ const instructionsPath = path.join(projectDir, this.githubDir, 'copilot-instructions.md');
656
+ const backupPath = `${instructionsPath}.bak`;
657
+
658
+ if (!(await fs.pathExists(instructionsPath))) {
659
+ return;
660
+ }
661
+
662
+ const content = await fs.readFile(instructionsPath, 'utf8');
663
+ const markerStart = '<!-- BMAD:START -->';
664
+ const markerEnd = '<!-- BMAD:END -->';
665
+ const startIdx = content.indexOf(markerStart);
666
+ const endIdx = content.indexOf(markerEnd);
667
+
668
+ if (startIdx === -1 || endIdx === -1 || endIdx <= startIdx) {
669
+ return; // No valid markers found
670
+ }
671
+
672
+ // Strip the marker section (including markers)
673
+ const before = content.slice(0, startIdx);
674
+ const after = content.slice(endIdx + markerEnd.length);
675
+ const cleaned = before + after;
676
+
677
+ if (cleaned.trim().length === 0) {
678
+ // File is empty after stripping — delete it
679
+ await fs.remove(instructionsPath);
680
+
681
+ // If backup exists, restore it
682
+ if (await fs.pathExists(backupPath)) {
683
+ await fs.rename(backupPath, instructionsPath);
684
+ if (!options.silent) {
685
+ await prompts.log.message(' Restored copilot-instructions.md from backup');
686
+ }
687
+ }
688
+ } else {
689
+ // Write cleaned content back (preserve original whitespace)
690
+ await fs.writeFile(instructionsPath, cleaned, 'utf8');
691
+
692
+ // If backup exists, it's stale now — remove it
693
+ if (await fs.pathExists(backupPath)) {
694
+ await fs.remove(backupPath);
297
695
  }
298
696
  }
299
697
  }