bmad-method 6.0.0-alpha.9 → 6.0.2

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 (933) hide show
  1. package/.augment/code_review_guidelines.yaml +271 -0
  2. package/.claude/skills/bmad-os-audit-file-refs/SKILL.md +6 -0
  3. package/.claude/skills/bmad-os-audit-file-refs/prompts/instructions.md +59 -0
  4. package/.claude/skills/bmad-os-changelog-social/SKILL.md +177 -0
  5. package/.claude/skills/bmad-os-changelog-social/examples/discord-example.md +53 -0
  6. package/.claude/skills/bmad-os-changelog-social/examples/linkedin-example.md +49 -0
  7. package/.claude/skills/bmad-os-changelog-social/examples/twitter-example.md +55 -0
  8. package/.claude/skills/bmad-os-diataxis-style-fix/SKILL.md +6 -0
  9. package/.claude/skills/bmad-os-diataxis-style-fix/prompts/instructions.md +229 -0
  10. package/.claude/skills/bmad-os-draft-changelog/SKILL.md +6 -0
  11. package/.claude/skills/bmad-os-draft-changelog/prompts/instructions.md +82 -0
  12. package/.claude/skills/bmad-os-gh-triage/SKILL.md +6 -0
  13. package/.claude/skills/bmad-os-gh-triage/prompts/agent-prompt.md +60 -0
  14. package/.claude/skills/bmad-os-gh-triage/prompts/instructions.md +74 -0
  15. package/.claude/skills/bmad-os-release-module/SKILL.md +6 -0
  16. package/.claude/skills/bmad-os-release-module/prompts/instructions.md +53 -0
  17. package/.claude/skills/bmad-os-review-pr/SKILL.md +6 -0
  18. package/.claude/skills/bmad-os-review-pr/prompts/instructions.md +231 -0
  19. package/.coderabbit.yaml +85 -0
  20. package/.github/CODE_OF_CONDUCT.md +128 -0
  21. package/.github/ISSUE_TEMPLATE/bug-report.yaml +124 -0
  22. package/.github/ISSUE_TEMPLATE/config.yaml +5 -2
  23. package/.github/ISSUE_TEMPLATE/documentation.yaml +55 -0
  24. package/.github/ISSUE_TEMPLATE/feature-request.md +22 -0
  25. package/.github/ISSUE_TEMPLATE/issue.md +32 -0
  26. package/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  27. package/.github/scripts/discord-helpers.sh +34 -0
  28. package/.github/workflows/coderabbit-review.yaml +22 -0
  29. package/.github/workflows/discord.yaml +82 -8
  30. package/.github/workflows/docs.yaml +64 -0
  31. package/.github/workflows/quality.yaml +40 -2
  32. package/.husky/pre-commit +13 -0
  33. package/.markdownlint-cli2.yaml +41 -0
  34. package/.prettierignore +10 -0
  35. package/.vscode/settings.json +4 -3
  36. package/CHANGELOG.md +1110 -673
  37. package/CNAME +1 -0
  38. package/CONTRIBUTING.md +97 -189
  39. package/CONTRIBUTORS.md +32 -0
  40. package/LICENSE +7 -3
  41. package/README.md +55 -388
  42. package/SECURITY.md +85 -0
  43. package/TRADEMARK.md +55 -0
  44. package/Wordmark.png +0 -0
  45. package/banner-bmad-method.png +0 -0
  46. package/docs/404.md +9 -0
  47. package/docs/_STYLE_GUIDE.md +370 -0
  48. package/docs/explanation/advanced-elicitation.md +49 -0
  49. package/docs/explanation/adversarial-review.md +59 -0
  50. package/docs/explanation/brainstorming.md +33 -0
  51. package/docs/explanation/established-projects-faq.md +50 -0
  52. package/docs/explanation/party-mode.md +59 -0
  53. package/docs/explanation/preventing-agent-conflicts.md +112 -0
  54. package/docs/explanation/project-context.md +157 -0
  55. package/docs/explanation/quick-flow.md +73 -0
  56. package/docs/explanation/why-solutioning-matters.md +77 -0
  57. package/docs/how-to/customize-bmad.md +172 -0
  58. package/docs/how-to/established-projects.md +117 -0
  59. package/docs/how-to/get-answers-about-bmad.md +134 -0
  60. package/docs/how-to/install-bmad.md +97 -0
  61. package/docs/how-to/non-interactive-installation.md +171 -0
  62. package/docs/how-to/project-context.md +136 -0
  63. package/docs/how-to/quick-fixes.md +123 -0
  64. package/docs/how-to/shard-large-documents.md +78 -0
  65. package/docs/how-to/upgrade-to-v6.md +97 -0
  66. package/docs/index.md +37 -204
  67. package/docs/reference/agents.md +28 -0
  68. package/docs/reference/commands.md +151 -0
  69. package/docs/reference/modules.md +76 -0
  70. package/docs/reference/testing.md +106 -0
  71. package/docs/reference/workflow-map.md +89 -0
  72. package/docs/roadmap.mdx +136 -0
  73. package/docs/tutorials/getting-started.md +273 -0
  74. package/eslint.config.mjs +26 -16
  75. package/package.json +35 -28
  76. package/src/bmm/agents/analyst.agent.yaml +43 -0
  77. package/src/bmm/agents/architect.agent.yaml +29 -0
  78. package/src/bmm/agents/dev.agent.yaml +38 -0
  79. package/src/bmm/agents/pm.agent.yaml +44 -0
  80. package/src/bmm/agents/qa.agent.yaml +58 -0
  81. package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  82. package/src/bmm/agents/sm.agent.yaml +37 -0
  83. package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  84. package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +46 -0
  85. package/src/bmm/agents/ux-designer.agent.yaml +27 -0
  86. package/src/bmm/data/project-context-template.md +26 -0
  87. package/src/bmm/module-help.csv +31 -0
  88. package/src/bmm/module.yaml +50 -0
  89. package/src/bmm/teams/default-party.csv +20 -0
  90. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  91. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  92. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  93. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  94. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  95. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  96. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  97. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  98. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
  99. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  100. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  101. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  102. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  103. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  104. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +444 -0
  105. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  106. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  107. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  108. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  109. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  110. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +476 -0
  111. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  112. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  113. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  114. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  115. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  116. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +233 -0
  117. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +487 -0
  118. package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  119. package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
  120. package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  121. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  122. package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  123. package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  124. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  125. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +152 -0
  126. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  127. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +154 -0
  128. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +170 -0
  129. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  130. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  131. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  132. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  133. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  134. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  135. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  136. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  137. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  138. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  139. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  140. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  141. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  142. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  143. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  144. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +226 -0
  145. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  146. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  147. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  148. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  149. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  150. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  151. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  152. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  153. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  154. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  155. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  156. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  157. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  158. package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  159. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
  160. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  161. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
  162. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  163. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  164. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  165. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  166. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  167. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  168. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  169. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  170. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  171. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  172. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  173. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  174. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  175. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  176. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  177. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  178. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
  179. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +184 -0
  180. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +172 -0
  181. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +173 -0
  182. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +133 -0
  183. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +245 -0
  184. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
  185. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  186. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  187. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  188. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
  189. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  190. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  191. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +173 -0
  192. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  193. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +329 -0
  194. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  195. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  196. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  197. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  198. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  199. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  200. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  201. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  202. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  203. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  204. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  205. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  206. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  207. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  208. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +43 -0
  209. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  210. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
  211. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -0
  212. package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  213. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +346 -0
  214. package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
  215. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -0
  216. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  217. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  218. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +20 -0
  219. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
  220. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -0
  221. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +226 -0
  222. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  223. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -0
  224. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
  225. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
  226. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +174 -0
  227. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +118 -0
  228. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +111 -0
  229. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +111 -0
  230. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +104 -0
  231. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
  232. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  233. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
  234. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +143 -0
  235. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +126 -0
  236. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +200 -0
  237. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  238. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  239. package/src/bmm/workflows/document-project/checklist.md +245 -0
  240. package/src/bmm/workflows/document-project/instructions.md +130 -0
  241. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  242. package/src/bmm/workflows/document-project/workflow.yaml +22 -0
  243. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  244. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  245. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  246. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  247. package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  248. package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  249. package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
  250. package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
  251. package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
  252. package/src/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -0
  253. package/src/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -0
  254. package/src/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -0
  255. package/src/core/agents/bmad-master.agent.yaml +12 -21
  256. package/src/core/module-help.csv +9 -0
  257. package/src/core/module.yaml +25 -0
  258. package/src/core/tasks/editorial-review-prose.xml +102 -0
  259. package/src/core/tasks/editorial-review-structure.xml +208 -0
  260. package/src/core/tasks/help.md +86 -0
  261. package/src/core/tasks/index-docs.xml +2 -2
  262. package/src/core/tasks/review-adversarial-general.xml +49 -0
  263. package/src/core/tasks/shard-doc.xml +108 -0
  264. package/src/core/tasks/workflow.xml +39 -74
  265. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  266. package/src/core/workflows/advanced-elicitation/workflow.xml +118 -0
  267. package/src/core/workflows/brainstorming/brain-methods.csv +62 -36
  268. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  269. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  270. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  271. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  272. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  273. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  274. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  275. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  276. package/src/core/workflows/brainstorming/template.md +13 -104
  277. package/src/core/workflows/brainstorming/workflow.md +58 -0
  278. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  279. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  280. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
  281. package/src/core/workflows/party-mode/workflow.md +194 -0
  282. package/src/utility/agent-components/activation-rules.txt +6 -0
  283. package/src/utility/agent-components/activation-steps.txt +14 -0
  284. package/src/utility/agent-components/agent-command-header.md +1 -0
  285. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  286. package/src/utility/agent-components/handler-action.txt +4 -0
  287. package/src/utility/agent-components/handler-exec.txt +6 -0
  288. package/src/utility/agent-components/handler-multi.txt +14 -0
  289. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  290. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  291. package/src/utility/agent-components/handler-workflow.txt +10 -0
  292. package/src/utility/agent-components/menu-handlers.txt +6 -0
  293. package/test/README.md +4 -4
  294. package/test/adversarial-review-tests/README.md +56 -0
  295. package/test/adversarial-review-tests/sample-content.md +46 -0
  296. package/test/adversarial-review-tests/test-cases.yaml +103 -0
  297. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
  298. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
  299. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
  300. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
  301. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
  302. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
  303. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
  304. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  305. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  306. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
  307. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
  308. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
  309. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
  310. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
  311. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +1 -1
  312. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
  313. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
  314. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
  315. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
  316. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
  317. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
  318. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
  319. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
  320. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
  321. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
  322. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
  323. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
  324. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
  325. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
  326. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
  327. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +2 -3
  328. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
  329. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  330. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +2 -1
  331. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  332. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
  333. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +2 -1
  334. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +2 -1
  335. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  336. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  337. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
  338. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
  339. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
  340. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
  341. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
  342. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
  343. package/test/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +3 -0
  344. package/test/fixtures/file-refs-csv/invalid/empty-data.csv +1 -0
  345. package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +3 -0
  346. package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +3 -0
  347. package/test/fixtures/file-refs-csv/valid/bmm-style.csv +3 -0
  348. package/test/fixtures/file-refs-csv/valid/core-style.csv +3 -0
  349. package/test/fixtures/file-refs-csv/valid/minimal.csv +2 -0
  350. package/test/test-agent-schema.js +4 -4
  351. package/test/test-file-refs-csv.js +133 -0
  352. package/test/test-installation-components.js +10 -12
  353. package/test/test-rehype-plugins.mjs +1050 -0
  354. package/test/unit-test-schema.js +2 -2
  355. package/tools/build-docs.mjs +463 -0
  356. package/tools/cli/README.md +41 -589
  357. package/tools/cli/bmad-cli.js +67 -1
  358. package/tools/cli/commands/install.js +42 -34
  359. package/tools/cli/commands/status.js +44 -26
  360. package/tools/cli/commands/uninstall.js +146 -23
  361. package/tools/cli/external-official-modules.yaml +53 -0
  362. package/tools/cli/installers/install-messages.yaml +39 -0
  363. package/tools/cli/installers/lib/core/config-collector.js +589 -95
  364. package/tools/cli/installers/lib/core/custom-module-cache.js +260 -0
  365. package/tools/cli/installers/lib/core/dependency-resolver.js +57 -39
  366. package/tools/cli/installers/lib/core/detector.js +19 -125
  367. package/tools/cli/installers/lib/core/ide-config-manager.js +12 -9
  368. package/tools/cli/installers/lib/core/installer.js +2075 -1161
  369. package/tools/cli/installers/lib/core/manifest-generator.js +494 -103
  370. package/tools/cli/installers/lib/core/manifest.js +544 -46
  371. package/tools/cli/installers/lib/custom/handler.js +358 -0
  372. package/tools/cli/installers/lib/ide/_base-ide.js +83 -44
  373. package/tools/cli/installers/lib/ide/_config-driven.js +559 -0
  374. package/tools/cli/installers/lib/ide/codex.js +301 -64
  375. package/tools/cli/installers/lib/ide/github-copilot.js +606 -209
  376. package/tools/cli/installers/lib/ide/kilo.js +169 -75
  377. package/tools/cli/installers/lib/ide/manager.js +179 -48
  378. package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
  379. package/tools/cli/installers/lib/ide/platform-codes.yaml +234 -0
  380. package/tools/cli/installers/lib/ide/rovodev.js +257 -0
  381. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +95 -5
  382. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +51 -20
  383. package/tools/cli/installers/lib/ide/shared/module-injections.js +6 -3
  384. package/tools/cli/installers/lib/ide/shared/path-utils.js +299 -0
  385. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +261 -14
  386. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +108 -27
  387. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  388. package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
  389. package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +15 -0
  390. package/tools/cli/installers/lib/ide/templates/combined/default-task.md +10 -0
  391. package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +10 -0
  392. package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +14 -0
  393. package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +6 -0
  394. package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
  395. package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +11 -0
  396. package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +11 -0
  397. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
  398. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
  399. package/tools/cli/installers/lib/ide/templates/combined/kiro-agent.md +16 -0
  400. package/tools/cli/installers/lib/ide/templates/combined/kiro-task.md +9 -0
  401. package/tools/cli/installers/lib/ide/templates/combined/kiro-tool.md +9 -0
  402. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow-yaml.md +15 -0
  403. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow.md +7 -0
  404. package/tools/cli/installers/lib/ide/templates/combined/opencode-agent.md +15 -0
  405. package/tools/cli/installers/lib/ide/templates/combined/opencode-task.md +14 -0
  406. package/tools/cli/installers/lib/ide/templates/combined/opencode-tool.md +14 -0
  407. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow-yaml.md +17 -0
  408. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow.md +17 -0
  409. package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
  410. package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
  411. package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
  412. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +1 -1
  413. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  414. package/tools/cli/installers/lib/message-loader.js +83 -0
  415. package/tools/cli/installers/lib/modules/external-manager.js +136 -0
  416. package/tools/cli/installers/lib/modules/manager.js +931 -207
  417. package/tools/cli/lib/activation-builder.js +13 -16
  418. package/tools/cli/lib/agent/compiler.js +525 -0
  419. package/tools/cli/lib/agent/installer.js +680 -0
  420. package/tools/cli/lib/agent/template-engine.js +152 -0
  421. package/tools/cli/lib/agent-analyzer.js +48 -20
  422. package/tools/cli/lib/agent-party-generator.js +5 -17
  423. package/tools/cli/lib/cli-utils.js +76 -104
  424. package/tools/cli/lib/config.js +4 -3
  425. package/tools/cli/lib/platform-codes.js +2 -2
  426. package/tools/cli/lib/project-root.js +6 -0
  427. package/tools/cli/lib/prompts.js +809 -0
  428. package/tools/cli/lib/ui.js +1600 -272
  429. package/tools/cli/lib/xml-handler.js +4 -55
  430. package/tools/cli/lib/yaml-format.js +4 -6
  431. package/tools/cli/lib/yaml-xml-builder.js +183 -61
  432. package/tools/docs/_prompt-external-modules-page.md +59 -0
  433. package/tools/docs/fix-refs.md +91 -0
  434. package/tools/fix-doc-links.js +285 -0
  435. package/tools/lib/xml-utils.js +13 -0
  436. package/tools/migrate-custom-module-paths.js +124 -0
  437. package/tools/platform-codes.yaml +30 -6
  438. package/tools/schema/agent.js +306 -53
  439. package/tools/validate-agent-schema.js +3 -3
  440. package/tools/validate-doc-links.js +407 -0
  441. package/tools/validate-file-refs.js +554 -0
  442. package/tools/validate-svg-changes.sh +356 -0
  443. package/website/README.md +75 -0
  444. package/website/astro.config.mjs +136 -0
  445. package/website/public/favicon.ico +0 -0
  446. package/website/public/img/bmad-dark.png +0 -0
  447. package/website/public/img/bmad-light.png +0 -0
  448. package/website/public/workflow-map-diagram.html +361 -0
  449. package/website/src/components/Banner.astro +62 -0
  450. package/website/src/components/Header.astro +96 -0
  451. package/website/src/components/MobileMenuFooter.astro +33 -0
  452. package/website/src/content/config.ts +6 -0
  453. package/website/src/lib/site-url.mjs +25 -0
  454. package/website/src/pages/404.astro +11 -0
  455. package/website/src/pages/robots.txt.ts +48 -0
  456. package/website/src/rehype-base-paths.js +112 -0
  457. package/website/src/rehype-markdown-links.js +119 -0
  458. package/website/src/styles/custom.css +805 -0
  459. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  460. package/.github/ISSUE_TEMPLATE/idea_submission.md +0 -109
  461. package/.github/workflows/bundle-latest.yaml +0 -277
  462. package/.github/workflows/manual-release.yaml +0 -212
  463. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +0 -95
  464. package/docs/agent-customization-guide.md +0 -208
  465. package/docs/document-sharding-guide.md +0 -447
  466. package/docs/ide-info/auggie.md +0 -31
  467. package/docs/ide-info/claude-code.md +0 -25
  468. package/docs/ide-info/cline.md +0 -31
  469. package/docs/ide-info/codex.md +0 -21
  470. package/docs/ide-info/crush.md +0 -30
  471. package/docs/ide-info/cursor.md +0 -25
  472. package/docs/ide-info/gemini.md +0 -25
  473. package/docs/ide-info/github-copilot.md +0 -26
  474. package/docs/ide-info/iflow.md +0 -33
  475. package/docs/ide-info/kilo.md +0 -24
  476. package/docs/ide-info/opencode.md +0 -24
  477. package/docs/ide-info/qwen.md +0 -25
  478. package/docs/ide-info/roo.md +0 -27
  479. package/docs/ide-info/trae.md +0 -25
  480. package/docs/ide-info/windsurf.md +0 -22
  481. package/docs/installers-bundlers/ide-injections.md +0 -186
  482. package/docs/installers-bundlers/installers-modules-platforms-reference.md +0 -388
  483. package/docs/installers-bundlers/web-bundler-usage.md +0 -54
  484. package/docs/v4-to-v6-upgrade.md +0 -227
  485. package/docs/web-bundles-gemini-gpt-guide.md +0 -473
  486. package/src/core/_module-installer/install-config.yaml +0 -35
  487. package/src/core/_module-installer/installer.js +0 -60
  488. package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -113
  489. package/src/core/tasks/adv-elicit-methods.csv +0 -39
  490. package/src/core/tasks/advanced-elicitation.xml +0 -106
  491. package/src/core/tasks/validate-workflow.xml +0 -89
  492. package/src/core/tools/shard-doc.xml +0 -109
  493. package/src/core/workflows/brainstorming/README.md +0 -261
  494. package/src/core/workflows/brainstorming/instructions.md +0 -315
  495. package/src/core/workflows/brainstorming/workflow.yaml +0 -43
  496. package/src/core/workflows/party-mode/instructions.md +0 -183
  497. package/src/core/workflows/party-mode/workflow.yaml +0 -27
  498. package/src/modules/bmb/README.md +0 -194
  499. package/src/modules/bmb/_module-installer/install-config.yaml +0 -31
  500. package/src/modules/bmb/agents/bmad-builder.agent.yaml +0 -59
  501. package/src/modules/bmb/workflows/audit-workflow/checklist.md +0 -142
  502. package/src/modules/bmb/workflows/audit-workflow/instructions.md +0 -341
  503. package/src/modules/bmb/workflows/audit-workflow/template.md +0 -118
  504. package/src/modules/bmb/workflows/audit-workflow/workflow.yaml +0 -25
  505. package/src/modules/bmb/workflows/convert-legacy/README.md +0 -262
  506. package/src/modules/bmb/workflows/convert-legacy/checklist.md +0 -205
  507. package/src/modules/bmb/workflows/convert-legacy/instructions.md +0 -377
  508. package/src/modules/bmb/workflows/convert-legacy/workflow.yaml +0 -34
  509. package/src/modules/bmb/workflows/create-agent/README.md +0 -203
  510. package/src/modules/bmb/workflows/create-agent/agent-architecture.md +0 -415
  511. package/src/modules/bmb/workflows/create-agent/agent-command-patterns.md +0 -759
  512. package/src/modules/bmb/workflows/create-agent/agent-types.md +0 -292
  513. package/src/modules/bmb/workflows/create-agent/brainstorm-context.md +0 -174
  514. package/src/modules/bmb/workflows/create-agent/checklist.md +0 -62
  515. package/src/modules/bmb/workflows/create-agent/communication-styles.md +0 -202
  516. package/src/modules/bmb/workflows/create-agent/instructions.md +0 -456
  517. package/src/modules/bmb/workflows/create-agent/workflow.yaml +0 -49
  518. package/src/modules/bmb/workflows/create-module/README.md +0 -229
  519. package/src/modules/bmb/workflows/create-module/brainstorm-context.md +0 -137
  520. package/src/modules/bmb/workflows/create-module/checklist.md +0 -235
  521. package/src/modules/bmb/workflows/create-module/installer-templates/install-config.yaml +0 -92
  522. package/src/modules/bmb/workflows/create-module/installer-templates/installer.js +0 -231
  523. package/src/modules/bmb/workflows/create-module/instructions.md +0 -576
  524. package/src/modules/bmb/workflows/create-module/module-structure.md +0 -400
  525. package/src/modules/bmb/workflows/create-module/workflow.yaml +0 -44
  526. package/src/modules/bmb/workflows/create-workflow/README.md +0 -277
  527. package/src/modules/bmb/workflows/create-workflow/brainstorm-context.md +0 -197
  528. package/src/modules/bmb/workflows/create-workflow/checklist.md +0 -94
  529. package/src/modules/bmb/workflows/create-workflow/instructions.md +0 -724
  530. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +0 -1306
  531. package/src/modules/bmb/workflows/create-workflow/workflow-template/checklist.md +0 -24
  532. package/src/modules/bmb/workflows/create-workflow/workflow-template/instructions.md +0 -13
  533. package/src/modules/bmb/workflows/create-workflow/workflow-template/template.md +0 -9
  534. package/src/modules/bmb/workflows/create-workflow/workflow-template/workflow.yaml +0 -65
  535. package/src/modules/bmb/workflows/create-workflow/workflow.yaml +0 -42
  536. package/src/modules/bmb/workflows/edit-agent/README.md +0 -112
  537. package/src/modules/bmb/workflows/edit-agent/checklist.md +0 -112
  538. package/src/modules/bmb/workflows/edit-agent/instructions.md +0 -290
  539. package/src/modules/bmb/workflows/edit-agent/workflow.yaml +0 -35
  540. package/src/modules/bmb/workflows/edit-module/README.md +0 -187
  541. package/src/modules/bmb/workflows/edit-module/checklist.md +0 -165
  542. package/src/modules/bmb/workflows/edit-module/instructions.md +0 -339
  543. package/src/modules/bmb/workflows/edit-module/workflow.yaml +0 -36
  544. package/src/modules/bmb/workflows/edit-workflow/README.md +0 -119
  545. package/src/modules/bmb/workflows/edit-workflow/checklist.md +0 -70
  546. package/src/modules/bmb/workflows/edit-workflow/instructions.md +0 -342
  547. package/src/modules/bmb/workflows/edit-workflow/workflow.yaml +0 -29
  548. package/src/modules/bmb/workflows/module-brief/README.md +0 -264
  549. package/src/modules/bmb/workflows/module-brief/checklist.md +0 -116
  550. package/src/modules/bmb/workflows/module-brief/instructions.md +0 -267
  551. package/src/modules/bmb/workflows/module-brief/template.md +0 -275
  552. package/src/modules/bmb/workflows/module-brief/workflow.yaml +0 -31
  553. package/src/modules/bmb/workflows/redoc/README.md +0 -87
  554. package/src/modules/bmb/workflows/redoc/checklist.md +0 -99
  555. package/src/modules/bmb/workflows/redoc/instructions.md +0 -265
  556. package/src/modules/bmb/workflows/redoc/workflow.yaml +0 -34
  557. package/src/modules/bmgd/README.md +0 -208
  558. package/src/modules/bmgd/_module-installer/install-config.yaml +0 -54
  559. package/src/modules/bmgd/agents/game-architect.agent.yaml +0 -33
  560. package/src/modules/bmgd/agents/game-designer.agent.yaml +0 -40
  561. package/src/modules/bmgd/agents/game-dev.agent.yaml +0 -40
  562. package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +0 -75
  563. package/src/modules/bmgd/teams/default-party.csv +0 -10
  564. package/src/modules/bmgd/teams/team-gamedev.yaml +0 -18
  565. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/game-brain-methods.csv +0 -26
  566. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/game-context.md +0 -115
  567. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +0 -128
  568. package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +0 -41
  569. package/src/modules/bmgd/workflows/1-preproduction/game-brief/checklist.md +0 -128
  570. package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +0 -371
  571. package/src/modules/bmgd/workflows/1-preproduction/game-brief/template.md +0 -205
  572. package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +0 -44
  573. package/src/modules/bmgd/workflows/2-design/gdd/checklist.md +0 -148
  574. package/src/modules/bmgd/workflows/2-design/gdd/game-types/action-platformer.md +0 -45
  575. package/src/modules/bmgd/workflows/2-design/gdd/game-types/adventure.md +0 -84
  576. package/src/modules/bmgd/workflows/2-design/gdd/game-types/card-game.md +0 -76
  577. package/src/modules/bmgd/workflows/2-design/gdd/game-types/fighting.md +0 -89
  578. package/src/modules/bmgd/workflows/2-design/gdd/game-types/horror.md +0 -86
  579. package/src/modules/bmgd/workflows/2-design/gdd/game-types/idle-incremental.md +0 -78
  580. package/src/modules/bmgd/workflows/2-design/gdd/game-types/metroidvania.md +0 -87
  581. package/src/modules/bmgd/workflows/2-design/gdd/game-types/moba.md +0 -74
  582. package/src/modules/bmgd/workflows/2-design/gdd/game-types/party-game.md +0 -79
  583. package/src/modules/bmgd/workflows/2-design/gdd/game-types/puzzle.md +0 -58
  584. package/src/modules/bmgd/workflows/2-design/gdd/game-types/racing.md +0 -88
  585. package/src/modules/bmgd/workflows/2-design/gdd/game-types/rhythm.md +0 -79
  586. package/src/modules/bmgd/workflows/2-design/gdd/game-types/roguelike.md +0 -69
  587. package/src/modules/bmgd/workflows/2-design/gdd/game-types/rpg.md +0 -70
  588. package/src/modules/bmgd/workflows/2-design/gdd/game-types/sandbox.md +0 -79
  589. package/src/modules/bmgd/workflows/2-design/gdd/game-types/shooter.md +0 -62
  590. package/src/modules/bmgd/workflows/2-design/gdd/game-types/simulation.md +0 -73
  591. package/src/modules/bmgd/workflows/2-design/gdd/game-types/sports.md +0 -75
  592. package/src/modules/bmgd/workflows/2-design/gdd/game-types/strategy.md +0 -71
  593. package/src/modules/bmgd/workflows/2-design/gdd/game-types/survival.md +0 -79
  594. package/src/modules/bmgd/workflows/2-design/gdd/game-types/text-based.md +0 -91
  595. package/src/modules/bmgd/workflows/2-design/gdd/game-types/tower-defense.md +0 -79
  596. package/src/modules/bmgd/workflows/2-design/gdd/game-types/turn-based-tactics.md +0 -88
  597. package/src/modules/bmgd/workflows/2-design/gdd/game-types/visual-novel.md +0 -89
  598. package/src/modules/bmgd/workflows/2-design/gdd/game-types.csv +0 -25
  599. package/src/modules/bmgd/workflows/2-design/gdd/gdd-template.md +0 -153
  600. package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -501
  601. package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +0 -81
  602. package/src/modules/bmgd/workflows/2-design/narrative/checklist.md +0 -139
  603. package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +0 -603
  604. package/src/modules/bmgd/workflows/2-design/narrative/narrative-template.md +0 -195
  605. package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +0 -38
  606. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-patterns.yaml +0 -321
  607. package/src/modules/bmgd/workflows/3-technical/game-architecture/architecture-template.md +0 -103
  608. package/src/modules/bmgd/workflows/3-technical/game-architecture/checklist.md +0 -240
  609. package/src/modules/bmgd/workflows/3-technical/game-architecture/decision-catalog.yaml +0 -222
  610. package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +0 -699
  611. package/src/modules/bmgd/workflows/3-technical/game-architecture/pattern-categories.csv +0 -13
  612. package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +0 -67
  613. package/src/modules/bmgd/workflows/4-production/code-review/backlog_template.md +0 -12
  614. package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +0 -22
  615. package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
  616. package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +0 -57
  617. package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +0 -279
  618. package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +0 -206
  619. package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +0 -52
  620. package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +0 -240
  621. package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
  622. package/src/modules/bmgd/workflows/4-production/create-story/template.md +0 -51
  623. package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +0 -68
  624. package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +0 -38
  625. package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
  626. package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +0 -53
  627. package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
  628. package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
  629. package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
  630. package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -52
  631. package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +0 -1442
  632. package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +0 -52
  633. package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +0 -234
  634. package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +0 -55
  635. package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +0 -50
  636. package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
  637. package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
  638. package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
  639. package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -57
  640. package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
  641. package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
  642. package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
  643. package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
  644. package/src/modules/bmm/README.md +0 -128
  645. package/src/modules/bmm/_module-installer/assets/bmm-kb.md +0 -1
  646. package/src/modules/bmm/_module-installer/assets/technical-decisions.md +0 -30
  647. package/src/modules/bmm/_module-installer/install-config.yaml +0 -60
  648. package/src/modules/bmm/_module-installer/installer.js +0 -131
  649. package/src/modules/bmm/_module-installer/platform-specifics/claude-code.js +0 -35
  650. package/src/modules/bmm/_module-installer/platform-specifics/windsurf.js +0 -32
  651. package/src/modules/bmm/agents/analyst.agent.yaml +0 -48
  652. package/src/modules/bmm/agents/architect.agent.yaml +0 -42
  653. package/src/modules/bmm/agents/dev.agent.yaml +0 -40
  654. package/src/modules/bmm/agents/pm.agent.yaml +0 -61
  655. package/src/modules/bmm/agents/sm.agent.yaml +0 -72
  656. package/src/modules/bmm/agents/tea.agent.yaml +0 -65
  657. package/src/modules/bmm/agents/tech-writer.agent.yaml +0 -73
  658. package/src/modules/bmm/agents/ux-designer.agent.yaml +0 -38
  659. package/src/modules/bmm/docs/README.md +0 -235
  660. package/src/modules/bmm/docs/agents-guide.md +0 -1056
  661. package/src/modules/bmm/docs/brownfield-guide.md +0 -754
  662. package/src/modules/bmm/docs/enterprise-agentic-development.md +0 -680
  663. package/src/modules/bmm/docs/faq.md +0 -587
  664. package/src/modules/bmm/docs/glossary.md +0 -320
  665. package/src/modules/bmm/docs/party-mode.md +0 -224
  666. package/src/modules/bmm/docs/quick-spec-flow.md +0 -652
  667. package/src/modules/bmm/docs/quick-start.md +0 -366
  668. package/src/modules/bmm/docs/scale-adaptive-system.md +0 -599
  669. package/src/modules/bmm/docs/test-architecture.md +0 -394
  670. package/src/modules/bmm/docs/workflow-architecture-reference.md +0 -371
  671. package/src/modules/bmm/docs/workflow-document-project-reference.md +0 -487
  672. package/src/modules/bmm/docs/workflows-analysis.md +0 -370
  673. package/src/modules/bmm/docs/workflows-implementation.md +0 -284
  674. package/src/modules/bmm/docs/workflows-planning.md +0 -601
  675. package/src/modules/bmm/docs/workflows-solutioning.md +0 -501
  676. package/src/modules/bmm/teams/default-party.csv +0 -19
  677. package/src/modules/bmm/testarch/knowledge/ci-burn-in.md +0 -675
  678. package/src/modules/bmm/testarch/knowledge/component-tdd.md +0 -486
  679. package/src/modules/bmm/testarch/knowledge/contract-testing.md +0 -957
  680. package/src/modules/bmm/testarch/knowledge/data-factories.md +0 -500
  681. package/src/modules/bmm/testarch/knowledge/email-auth.md +0 -721
  682. package/src/modules/bmm/testarch/knowledge/error-handling.md +0 -725
  683. package/src/modules/bmm/testarch/knowledge/feature-flags.md +0 -750
  684. package/src/modules/bmm/testarch/knowledge/fixture-architecture.md +0 -401
  685. package/src/modules/bmm/testarch/knowledge/network-first.md +0 -486
  686. package/src/modules/bmm/testarch/knowledge/nfr-criteria.md +0 -670
  687. package/src/modules/bmm/testarch/knowledge/playwright-config.md +0 -730
  688. package/src/modules/bmm/testarch/knowledge/probability-impact.md +0 -601
  689. package/src/modules/bmm/testarch/knowledge/risk-governance.md +0 -615
  690. package/src/modules/bmm/testarch/knowledge/selective-testing.md +0 -732
  691. package/src/modules/bmm/testarch/knowledge/selector-resilience.md +0 -527
  692. package/src/modules/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
  693. package/src/modules/bmm/testarch/knowledge/test-levels-framework.md +0 -473
  694. package/src/modules/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
  695. package/src/modules/bmm/testarch/knowledge/test-quality.md +0 -664
  696. package/src/modules/bmm/testarch/knowledge/timing-debugging.md +0 -372
  697. package/src/modules/bmm/testarch/knowledge/visual-debugging.md +0 -524
  698. package/src/modules/bmm/testarch/tea-index.csv +0 -22
  699. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -110
  700. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  701. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -39
  702. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +0 -423
  703. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  704. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -56
  705. package/src/modules/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  706. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +0 -522
  707. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  708. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -65
  709. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  710. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  711. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +0 -299
  712. package/src/modules/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  713. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -437
  714. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +0 -674
  715. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +0 -133
  716. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +0 -533
  717. package/src/modules/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  718. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +0 -347
  719. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  720. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +0 -62
  721. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  722. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1306
  723. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
  724. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -99
  725. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
  726. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +0 -80
  727. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +0 -292
  728. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +0 -53
  729. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
  730. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -525
  731. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -237
  732. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
  733. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -76
  734. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
  735. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
  736. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -434
  737. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -978
  738. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  739. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  740. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -57
  741. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
  742. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  743. package/src/modules/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
  744. package/src/modules/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
  745. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +0 -696
  746. package/src/modules/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
  747. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -96
  748. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +0 -169
  749. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +0 -302
  750. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +0 -146
  751. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +0 -66
  752. package/src/modules/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
  753. package/src/modules/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
  754. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
  755. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -57
  756. package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
  757. package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
  758. package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -52
  759. package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +0 -240
  760. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
  761. package/src/modules/bmm/workflows/4-implementation/create-story/template.md +0 -51
  762. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -68
  763. package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +0 -38
  764. package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
  765. package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -53
  766. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  767. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
  768. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  769. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -52
  770. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1442
  771. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -52
  772. package/src/modules/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
  773. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -234
  774. package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
  775. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -50
  776. package/src/modules/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  777. package/src/modules/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  778. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
  779. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -57
  780. package/src/modules/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  781. package/src/modules/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -28
  782. package/src/modules/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  783. package/src/modules/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -25
  784. package/src/modules/bmm/workflows/document-project/checklist.md +0 -245
  785. package/src/modules/bmm/workflows/document-project/instructions.md +0 -222
  786. package/src/modules/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
  787. package/src/modules/bmm/workflows/document-project/workflow.yaml +0 -36
  788. package/src/modules/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
  789. package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
  790. package/src/modules/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
  791. package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
  792. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +0 -262
  793. package/src/modules/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
  794. package/src/modules/bmm/workflows/testarch/atdd/checklist.md +0 -373
  795. package/src/modules/bmm/workflows/testarch/atdd/instructions.md +0 -785
  796. package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +0 -54
  797. package/src/modules/bmm/workflows/testarch/automate/checklist.md +0 -580
  798. package/src/modules/bmm/workflows/testarch/automate/instructions.md +0 -1303
  799. package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +0 -63
  800. package/src/modules/bmm/workflows/testarch/ci/checklist.md +0 -246
  801. package/src/modules/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
  802. package/src/modules/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
  803. package/src/modules/bmm/workflows/testarch/ci/instructions.md +0 -517
  804. package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +0 -55
  805. package/src/modules/bmm/workflows/testarch/framework/checklist.md +0 -321
  806. package/src/modules/bmm/workflows/testarch/framework/instructions.md +0 -455
  807. package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +0 -55
  808. package/src/modules/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
  809. package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
  810. package/src/modules/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
  811. package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -58
  812. package/src/modules/bmm/workflows/testarch/test-design/checklist.md +0 -234
  813. package/src/modules/bmm/workflows/testarch/test-design/instructions.md +0 -782
  814. package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
  815. package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +0 -58
  816. package/src/modules/bmm/workflows/testarch/test-review/checklist.md +0 -470
  817. package/src/modules/bmm/workflows/testarch/test-review/instructions.md +0 -608
  818. package/src/modules/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
  819. package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +0 -55
  820. package/src/modules/bmm/workflows/testarch/trace/checklist.md +0 -654
  821. package/src/modules/bmm/workflows/testarch/trace/instructions.md +0 -1045
  822. package/src/modules/bmm/workflows/testarch/trace/trace-template.md +0 -673
  823. package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +0 -68
  824. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +0 -823
  825. package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +0 -29
  826. package/src/modules/bmm/workflows/workflow-status/instructions.md +0 -387
  827. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -120
  828. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -108
  829. package/src/modules/bmm/workflows/workflow-status/paths/game-design.yaml +0 -52
  830. package/src/modules/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -104
  831. package/src/modules/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -95
  832. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  833. package/src/modules/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  834. package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +0 -59
  835. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
  836. package/src/modules/bmm/workflows/workflow-status/workflow.yaml +0 -30
  837. package/src/modules/cis/README.md +0 -153
  838. package/src/modules/cis/_module-installer/install-config.yaml +0 -16
  839. package/src/modules/cis/_module-installer/installer.js +0 -92
  840. package/src/modules/cis/agents/README.md +0 -104
  841. package/src/modules/cis/agents/brainstorming-coach.agent.yaml +0 -28
  842. package/src/modules/cis/agents/creative-problem-solver.agent.yaml +0 -28
  843. package/src/modules/cis/agents/design-thinking-coach.agent.yaml +0 -28
  844. package/src/modules/cis/agents/innovation-strategist.agent.yaml +0 -28
  845. package/src/modules/cis/agents/storyteller.agent.yaml +0 -28
  846. package/src/modules/cis/teams/creative-squad.yaml +0 -7
  847. package/src/modules/cis/teams/default-party.csv +0 -11
  848. package/src/modules/cis/workflows/README.md +0 -139
  849. package/src/modules/cis/workflows/design-thinking/README.md +0 -56
  850. package/src/modules/cis/workflows/design-thinking/design-methods.csv +0 -31
  851. package/src/modules/cis/workflows/design-thinking/instructions.md +0 -200
  852. package/src/modules/cis/workflows/design-thinking/template.md +0 -111
  853. package/src/modules/cis/workflows/design-thinking/workflow.yaml +0 -43
  854. package/src/modules/cis/workflows/innovation-strategy/README.md +0 -56
  855. package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +0 -31
  856. package/src/modules/cis/workflows/innovation-strategy/instructions.md +0 -274
  857. package/src/modules/cis/workflows/innovation-strategy/template.md +0 -189
  858. package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +0 -43
  859. package/src/modules/cis/workflows/problem-solving/README.md +0 -56
  860. package/src/modules/cis/workflows/problem-solving/instructions.md +0 -250
  861. package/src/modules/cis/workflows/problem-solving/solving-methods.csv +0 -31
  862. package/src/modules/cis/workflows/problem-solving/template.md +0 -165
  863. package/src/modules/cis/workflows/problem-solving/workflow.yaml +0 -43
  864. package/src/modules/cis/workflows/storytelling/README.md +0 -58
  865. package/src/modules/cis/workflows/storytelling/instructions.md +0 -291
  866. package/src/modules/cis/workflows/storytelling/story-types.csv +0 -26
  867. package/src/modules/cis/workflows/storytelling/template.md +0 -113
  868. package/src/modules/cis/workflows/storytelling/workflow.yaml +0 -43
  869. package/src/utility/models/agent-activation-ide.xml +0 -51
  870. package/src/utility/models/agent-activation-web.xml +0 -60
  871. package/src/utility/models/agent-command-header.md +0 -1
  872. package/src/utility/models/agent-config-template.md +0 -23
  873. package/src/utility/models/agent-in-team-activation.xml +0 -3
  874. package/src/utility/models/fragments/activation-rules.xml +0 -8
  875. package/src/utility/models/fragments/activation-steps.xml +0 -16
  876. package/src/utility/models/fragments/handler-action.xml +0 -4
  877. package/src/utility/models/fragments/handler-exec.xml +0 -5
  878. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  879. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  880. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  881. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  882. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  883. package/src/utility/templates/agent.customize.template.yaml +0 -42
  884. package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +0 -26
  885. package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +0 -25
  886. package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +0 -26
  887. package/tools/cli/bundlers/bundle-web.js +0 -179
  888. package/tools/cli/bundlers/test-analyst.js +0 -28
  889. package/tools/cli/bundlers/test-bundler.js +0 -118
  890. package/tools/cli/bundlers/web-bundler.js +0 -1667
  891. package/tools/cli/commands/build.js +0 -458
  892. package/tools/cli/commands/list.js +0 -28
  893. package/tools/cli/commands/update.js +0 -28
  894. package/tools/cli/installers/lib/ide/auggie.js +0 -179
  895. package/tools/cli/installers/lib/ide/claude-code.js +0 -471
  896. package/tools/cli/installers/lib/ide/cline.js +0 -220
  897. package/tools/cli/installers/lib/ide/crush.js +0 -240
  898. package/tools/cli/installers/lib/ide/cursor.js +0 -352
  899. package/tools/cli/installers/lib/ide/gemini.js +0 -206
  900. package/tools/cli/installers/lib/ide/iflow.js +0 -125
  901. package/tools/cli/installers/lib/ide/opencode.js +0 -212
  902. package/tools/cli/installers/lib/ide/qwen.js +0 -318
  903. package/tools/cli/installers/lib/ide/roo.js +0 -253
  904. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +0 -14
  905. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +0 -12
  906. package/tools/cli/installers/lib/ide/trae.js +0 -266
  907. package/tools/cli/installers/lib/ide/windsurf.js +0 -211
  908. package/tools/cli/lib/replace-project-root.js +0 -239
  909. package/tools/cli/regenerate-manifests.js +0 -28
  910. package/tools/cli/test-yaml-builder.js +0 -43
  911. package/tools/flattener/aggregate.js +0 -76
  912. package/tools/flattener/binary.js +0 -80
  913. package/tools/flattener/discovery.js +0 -71
  914. package/tools/flattener/files.js +0 -35
  915. package/tools/flattener/ignoreRules.js +0 -172
  916. package/tools/flattener/main.js +0 -483
  917. package/tools/flattener/projectRoot.js +0 -201
  918. package/tools/flattener/prompts.js +0 -44
  919. package/tools/flattener/stats.helpers.js +0 -368
  920. package/tools/flattener/stats.js +0 -75
  921. package/tools/flattener/test-matrix.js +0 -409
  922. package/tools/flattener/xml.js +0 -88
  923. package/tools/validate-bundles.js +0 -87
  924. package/v6-open-items.md +0 -17
  925. /package/src/{modules/bmm → bmm}/teams/team-fullstack.yaml +0 -0
  926. /package/src/{modules/bmgd/workflows/4-production → bmm/workflows/4-implementation}/sprint-planning/checklist.md +0 -0
  927. /package/src/{modules/bmm → bmm}/workflows/document-project/documentation-requirements.csv +0 -0
  928. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/deep-dive-template.md +0 -0
  929. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/index-template.md +0 -0
  930. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/project-overview-template.md +0 -0
  931. /package/src/{modules/bmm → bmm}/workflows/document-project/templates/source-tree-template.md +0 -0
  932. /package/src/utility/{models/fragments/handler-data.xml → agent-components/handler-data.txt} +0 -0
  933. /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,557 @@ 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
+ ---
170
+
171
+ You must fully embody this agent's persona and follow all activation instructions exactly as specified.
172
+
173
+ <agent-activation CRITICAL="TRUE">
174
+ 1. LOAD the FULL agent file from ${agentFilePath}
175
+ 2. READ its entire contents - this contains the complete agent persona, menu, and instructions
176
+ 3. FOLLOW every step in the <activation> section precisely
177
+ 4. DISPLAY the welcome/greeting as instructed
178
+ 5. PRESENT the numbered menu
179
+ 6. WAIT for user input before proceeding
180
+ </agent-activation>
181
+ `;
182
+ }
183
+
184
+ /**
185
+ * Generate .prompt.md files for workflows, tasks, tech-writer commands, and agent activators
186
+ * @param {string} projectDir - Project directory
187
+ * @param {string} bmadDir - BMAD installation directory
188
+ * @param {Array} agentArtifacts - Agent artifacts for activator generation
189
+ * @param {Map} agentManifest - Agent manifest data
190
+ * @returns {number} Count of prompts generated
191
+ */
192
+ async generatePromptFiles(projectDir, bmadDir, agentArtifacts, agentManifest) {
193
+ const promptsDir = path.join(projectDir, this.githubDir, this.promptsDir);
194
+ let promptCount = 0;
195
+
196
+ // Load bmad-help.csv to drive workflow/task prompt generation
197
+ const helpEntries = await this.loadBmadHelp(bmadDir);
198
+
199
+ if (helpEntries) {
200
+ for (const entry of helpEntries) {
201
+ const command = entry.command;
202
+ if (!command) continue; // Skip entries without a command (tech-writer commands have no command column)
203
+
204
+ const workflowFile = entry['workflow-file'];
205
+ if (!workflowFile) continue; // Skip entries with no workflow file path
206
+ const promptFileName = `${command}.prompt.md`;
207
+ const toolsStr = this.getToolsForFile(promptFileName);
208
+ const promptContent = this.createWorkflowPromptContent(entry, workflowFile, toolsStr);
209
+ const promptPath = path.join(promptsDir, promptFileName);
210
+ await this.writeFile(promptPath, promptContent);
211
+ promptCount++;
212
+ }
213
+
214
+ // Generate tech-writer command prompts (entries with no command column)
215
+ for (const entry of helpEntries) {
216
+ if (entry.command) continue; // Already handled above
217
+ const techWriterPrompt = this.createTechWriterPromptContent(entry);
218
+ if (techWriterPrompt) {
219
+ const promptFileName = `${techWriterPrompt.fileName}.prompt.md`;
220
+ const promptPath = path.join(promptsDir, promptFileName);
221
+ await this.writeFile(promptPath, techWriterPrompt.content);
222
+ promptCount++;
223
+ }
224
+ }
198
225
  }
199
226
 
200
- // Merge settings (existing take precedence)
201
- const mergedSettings = { ...bmadSettings, ...existingSettings };
227
+ // Generate agent activator prompts (Pattern D)
228
+ for (const artifact of agentArtifacts) {
229
+ const agentMeta = agentManifest.get(artifact.name);
230
+ const fileName = `bmad-${artifact.name}.prompt.md`;
231
+ const toolsStr = this.getToolsForFile(fileName);
232
+ const promptContent = this.createAgentActivatorPromptContent(artifact, agentMeta, toolsStr);
233
+ const promptPath = path.join(promptsDir, fileName);
234
+ await this.writeFile(promptPath, promptContent);
235
+ promptCount++;
236
+ }
202
237
 
203
- // Write settings
204
- await fs.writeFile(settingsPath, JSON.stringify(mergedSettings, null, 2));
205
- console.log(chalk.green(' ✓ VS Code settings configured'));
238
+ return promptCount;
206
239
  }
207
240
 
208
241
  /**
209
- * Create chat mode content
242
+ * Create prompt content for a workflow/task entry from bmad-help.csv
243
+ * Determines the pattern (A, B, or A for .xml tasks) based on file extension
244
+ * @param {Object} entry - bmad-help.csv row
245
+ * @param {string} workflowFile - Workflow file path
246
+ * @returns {string} Prompt file content
210
247
  */
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();
248
+ createWorkflowPromptContent(entry, workflowFile, toolsStr) {
249
+ const description = this.escapeYamlSingleQuote(this.createPromptDescription(entry.name));
250
+ // bmm/config.yaml is safe to hardcode here: these prompts are only generated when
251
+ // bmad-help.csv exists (bmm module data), so bmm is guaranteed to be installed.
252
+ const configLine = `1. Load {project-root}/${this.bmadFolderName}/bmm/config.yaml and store ALL fields as session variables`;
253
+
254
+ let body;
255
+ if (workflowFile.endsWith('.yaml')) {
256
+ // Pattern B: YAML-based workflows — use workflow engine
257
+ body = `${configLine}
258
+ 2. Load the workflow engine at {project-root}/${this.bmadFolderName}/core/tasks/workflow.xml
259
+ 3. Load and execute the workflow configuration at {project-root}/${workflowFile} using the engine from step 2`;
260
+ } else if (workflowFile.endsWith('.xml')) {
261
+ // Pattern A variant: XML tasks — load and execute directly
262
+ body = `${configLine}
263
+ 2. Load and execute the task at {project-root}/${workflowFile}`;
264
+ } else {
265
+ // Pattern A: MD workflows — load and follow directly
266
+ body = `${configLine}
267
+ 2. Load and follow the workflow at {project-root}/${workflowFile}`;
223
268
  }
224
269
 
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
- ];
270
+ return `---
271
+ description: '${description}'
272
+ agent: 'agent'
273
+ tools: ${toolsStr}
274
+ ---
275
+
276
+ ${body}
277
+ `;
278
+ }
279
+
280
+ /**
281
+ * Create a short 2-5 word description for a prompt from the entry name
282
+ * @param {string} name - Entry name from bmad-help.csv
283
+ * @returns {string} Short description
284
+ */
285
+ createPromptDescription(name) {
286
+ const descriptionMap = {
287
+ 'Brainstorm Project': 'Brainstorm ideas',
288
+ 'Market Research': 'Market research',
289
+ 'Domain Research': 'Domain research',
290
+ 'Technical Research': 'Technical research',
291
+ 'Create Brief': 'Create product brief',
292
+ 'Create PRD': 'Create PRD',
293
+ 'Validate PRD': 'Validate PRD',
294
+ 'Edit PRD': 'Edit PRD',
295
+ 'Create UX': 'Create UX design',
296
+ 'Create Architecture': 'Create architecture',
297
+ 'Create Epics and Stories': 'Create epics and stories',
298
+ 'Check Implementation Readiness': 'Check implementation readiness',
299
+ 'Sprint Planning': 'Sprint planning',
300
+ 'Sprint Status': 'Sprint status',
301
+ 'Create Story': 'Create story',
302
+ 'Validate Story': 'Validate story',
303
+ 'Dev Story': 'Dev story',
304
+ 'QA Automation Test': 'QA automation',
305
+ 'Code Review': 'Code review',
306
+ Retrospective: 'Retrospective',
307
+ 'Document Project': 'Document project',
308
+ 'Generate Project Context': 'Generate project context',
309
+ 'Quick Spec': 'Quick spec',
310
+ 'Quick Dev': 'Quick dev',
311
+ 'Correct Course': 'Correct course',
312
+ Brainstorming: 'Brainstorm ideas',
313
+ 'Party Mode': 'Party mode',
314
+ 'bmad-help': 'BMAD help',
315
+ 'Index Docs': 'Index documents',
316
+ 'Shard Document': 'Shard document',
317
+ 'Editorial Review - Prose': 'Editorial review prose',
318
+ 'Editorial Review - Structure': 'Editorial review structure',
319
+ 'Adversarial Review (General)': 'Adversarial review',
320
+ };
251
321
 
252
- let chatmodeContent = `---
253
- description: "${description.replaceAll('"', String.raw`\"`)}"
254
- tools: ${JSON.stringify(tools)}
322
+ return descriptionMap[name] || name;
323
+ }
324
+
325
+ /**
326
+ * Create prompt content for tech-writer agent-only commands (Pattern C)
327
+ * @param {Object} entry - bmad-help.csv row
328
+ * @returns {Object|null} { fileName, content } or null if not a tech-writer command
329
+ */
330
+ createTechWriterPromptContent(entry) {
331
+ if (entry['agent-name'] !== 'tech-writer') return null;
332
+
333
+ const techWriterCommands = {
334
+ 'Write Document': { code: 'WD', file: 'bmad-bmm-write-document', description: 'Write document' },
335
+ 'Update Standards': { code: 'US', file: 'bmad-bmm-update-standards', description: 'Update standards' },
336
+ 'Mermaid Generate': { code: 'MG', file: 'bmad-bmm-mermaid-generate', description: 'Mermaid generate' },
337
+ 'Validate Document': { code: 'VD', file: 'bmad-bmm-validate-document', description: 'Validate document' },
338
+ 'Explain Concept': { code: 'EC', file: 'bmad-bmm-explain-concept', description: 'Explain concept' },
339
+ };
340
+
341
+ const cmd = techWriterCommands[entry.name];
342
+ if (!cmd) return null;
343
+
344
+ const safeDescription = this.escapeYamlSingleQuote(cmd.description);
345
+ const toolsStr = this.getToolsForFile(`${cmd.file}.prompt.md`);
346
+
347
+ const content = `---
348
+ description: '${safeDescription}'
349
+ agent: 'agent'
350
+ tools: ${toolsStr}
255
351
  ---
256
352
 
257
- # ${title} Agent
353
+ 1. Load {project-root}/${this.bmadFolderName}/bmm/config.yaml and store ALL fields as session variables
354
+ 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
355
+ 3. Execute the ${entry.name} menu command (${cmd.code})
356
+ `;
357
+
358
+ return { fileName: cmd.file, content };
359
+ }
258
360
 
259
- ${cleanContent}
361
+ /**
362
+ * Create agent activator prompt content (Pattern D)
363
+ * @param {Object} artifact - Agent artifact
364
+ * @param {Object|undefined} manifestEntry - Agent manifest entry
365
+ * @returns {string} Prompt file content
366
+ */
367
+ createAgentActivatorPromptContent(artifact, manifestEntry, toolsStr) {
368
+ let description;
369
+ if (manifestEntry) {
370
+ description = manifestEntry.title || this.formatTitle(artifact.name);
371
+ } else {
372
+ description = this.formatTitle(artifact.name);
373
+ }
374
+
375
+ const safeDescription = this.escapeYamlSingleQuote(description);
376
+ const agentPath = artifact.agentPath || artifact.relativePath;
377
+ const agentFilePath = `{project-root}/${this.bmadFolderName}/${agentPath}`;
378
+
379
+ // bmm/config.yaml is safe to hardcode: agent activators are only generated from
380
+ // bmm agent artifacts, so bmm is guaranteed to be installed.
381
+ return `---
382
+ description: '${safeDescription}'
383
+ agent: 'agent'
384
+ tools: ${toolsStr}
385
+ ---
260
386
 
387
+ 1. Load {project-root}/${this.bmadFolderName}/bmm/config.yaml and store ALL fields as session variables
388
+ 2. Load the full agent file from ${agentFilePath}
389
+ 3. Follow ALL activation instructions in the agent file
390
+ 4. Display the welcome/greeting as instructed
391
+ 5. Present the numbered menu
392
+ 6. Wait for user input before proceeding
261
393
  `;
394
+ }
395
+
396
+ /**
397
+ * Generate copilot-instructions.md from module config
398
+ * @param {string} projectDir - Project directory
399
+ * @param {string} bmadDir - BMAD installation directory
400
+ * @param {Map} agentManifest - Agent manifest data
401
+ */
402
+ async generateCopilotInstructions(projectDir, bmadDir, agentManifest, options = {}) {
403
+ const configVars = await this.loadModuleConfig(bmadDir);
404
+
405
+ // Build the agents table from the manifest
406
+ let agentsTable = '| Agent | Persona | Title | Capabilities |\n|---|---|---|---|\n';
407
+ const agentOrder = [
408
+ 'bmad-master',
409
+ 'analyst',
410
+ 'architect',
411
+ 'dev',
412
+ 'pm',
413
+ 'qa',
414
+ 'quick-flow-solo-dev',
415
+ 'sm',
416
+ 'tech-writer',
417
+ 'ux-designer',
418
+ ];
419
+
420
+ for (const agentName of agentOrder) {
421
+ const meta = agentManifest.get(agentName);
422
+ if (meta) {
423
+ const capabilities = meta.capabilities || 'agent capabilities';
424
+ const cleanTitle = (meta.title || '').replaceAll('""', '"');
425
+ agentsTable += `| ${agentName} | ${meta.displayName} | ${cleanTitle} | ${capabilities} |\n`;
426
+ }
427
+ }
428
+
429
+ const bmad = this.bmadFolderName;
430
+ const bmadSection = `# BMAD Method — Project Instructions
431
+
432
+ ## Project Configuration
433
+
434
+ - **Project**: ${configVars.project_name || '{{project_name}}'}
435
+ - **User**: ${configVars.user_name || '{{user_name}}'}
436
+ - **Communication Language**: ${configVars.communication_language || '{{communication_language}}'}
437
+ - **Document Output Language**: ${configVars.document_output_language || '{{document_output_language}}'}
438
+ - **User Skill Level**: ${configVars.user_skill_level || '{{user_skill_level}}'}
439
+ - **Output Folder**: ${configVars.output_folder || '{{output_folder}}'}
440
+ - **Planning Artifacts**: ${configVars.planning_artifacts || '{{planning_artifacts}}'}
441
+ - **Implementation Artifacts**: ${configVars.implementation_artifacts || '{{implementation_artifacts}}'}
442
+ - **Project Knowledge**: ${configVars.project_knowledge || '{{project_knowledge}}'}
443
+
444
+ ## BMAD Runtime Structure
445
+
446
+ - **Agent definitions**: \`${bmad}/bmm/agents/\` (BMM module) and \`${bmad}/core/agents/\` (core)
447
+ - **Workflow definitions**: \`${bmad}/bmm/workflows/\` (organized by phase)
448
+ - **Core tasks**: \`${bmad}/core/tasks/\` (help, editorial review, indexing, sharding, adversarial review)
449
+ - **Core workflows**: \`${bmad}/core/workflows/\` (brainstorming, party-mode, advanced-elicitation)
450
+ - **Workflow engine**: \`${bmad}/core/tasks/workflow.xml\` (executes YAML-based workflows)
451
+ - **Module configuration**: \`${bmad}/bmm/config.yaml\`
452
+ - **Core configuration**: \`${bmad}/core/config.yaml\`
453
+ - **Agent manifest**: \`${bmad}/_config/agent-manifest.csv\`
454
+ - **Workflow manifest**: \`${bmad}/_config/workflow-manifest.csv\`
455
+ - **Help manifest**: \`${bmad}/_config/bmad-help.csv\`
456
+ - **Agent memory**: \`${bmad}/_memory/\`
457
+
458
+ ## Key Conventions
459
+
460
+ - Always load \`${bmad}/bmm/config.yaml\` before any agent activation or workflow execution
461
+ - Store all config fields as session variables: \`{user_name}\`, \`{communication_language}\`, \`{output_folder}\`, \`{planning_artifacts}\`, \`{implementation_artifacts}\`, \`{project_knowledge}\`
462
+ - MD-based workflows execute directly — load and follow the \`.md\` file
463
+ - YAML-based workflows require the workflow engine — load \`workflow.xml\` first, then pass the \`.yaml\` config
464
+ - Follow step-based workflow execution: load steps JIT, never multiple at once
465
+ - Save outputs after EACH step when using the workflow engine
466
+ - The \`{project-root}\` variable resolves to the workspace root at runtime
467
+
468
+ ## Available Agents
469
+
470
+ ${agentsTable}
471
+ ## Slash Commands
472
+
473
+ Type \`/bmad-\` in Copilot Chat to see all available BMAD workflows and agent activators. Agents are also available in the agents dropdown.`;
474
+
475
+ const instructionsPath = path.join(projectDir, this.githubDir, 'copilot-instructions.md');
476
+ const markerStart = '<!-- BMAD:START -->';
477
+ const markerEnd = '<!-- BMAD:END -->';
478
+ const markedContent = `${markerStart}\n${bmadSection}\n${markerEnd}`;
479
+
480
+ if (await fs.pathExists(instructionsPath)) {
481
+ const existing = await fs.readFile(instructionsPath, 'utf8');
482
+ const startIdx = existing.indexOf(markerStart);
483
+ const endIdx = existing.indexOf(markerEnd);
484
+
485
+ if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
486
+ // Replace only the BMAD section between markers
487
+ const before = existing.slice(0, startIdx);
488
+ const after = existing.slice(endIdx + markerEnd.length);
489
+ const merged = `${before}${markedContent}${after}`;
490
+ await this.writeFile(instructionsPath, merged);
491
+ } else {
492
+ // Existing file without markers — back it up before overwriting
493
+ const backupPath = `${instructionsPath}.bak`;
494
+ await fs.copy(instructionsPath, backupPath);
495
+ if (!options.silent) await prompts.log.warn(` Backed up copilot-instructions.md → .bak`);
496
+ await this.writeFile(instructionsPath, `${markedContent}\n`);
497
+ }
498
+ } else {
499
+ // No existing file — create fresh with markers
500
+ await this.writeFile(instructionsPath, `${markedContent}\n`);
501
+ }
502
+ }
503
+
504
+ /**
505
+ * Load module config.yaml for template variables
506
+ * @param {string} bmadDir - BMAD installation directory
507
+ * @returns {Object} Config variables
508
+ */
509
+ async loadModuleConfig(bmadDir) {
510
+ const bmmConfigPath = path.join(bmadDir, 'bmm', 'config.yaml');
511
+ const coreConfigPath = path.join(bmadDir, 'core', 'config.yaml');
512
+
513
+ for (const configPath of [bmmConfigPath, coreConfigPath]) {
514
+ if (await fs.pathExists(configPath)) {
515
+ try {
516
+ const content = await fs.readFile(configPath, 'utf8');
517
+ return yaml.parse(content) || {};
518
+ } catch {
519
+ // Fall through to next config
520
+ }
521
+ }
522
+ }
523
+
524
+ return {};
525
+ }
526
+
527
+ /**
528
+ * Escape a string for use inside YAML single-quoted values.
529
+ * In YAML, the only escape inside single quotes is '' for a literal '.
530
+ * @param {string} value - Raw string
531
+ * @returns {string} Escaped string safe for YAML single-quoted context
532
+ */
533
+ escapeYamlSingleQuote(value) {
534
+ return (value || '').replaceAll("'", "''");
535
+ }
536
+
537
+ /**
538
+ * Scan existing agent and prompt files for customised tool permissions before cleanup.
539
+ * Returns a Map<filename, toolsArray> so permissions can be preserved across reinstalls.
540
+ * @param {string} projectDir - Project directory
541
+ * @returns {Map} Existing tool permissions keyed by filename
542
+ */
543
+ async collectExistingToolPermissions(projectDir) {
544
+ const permissions = new Map();
545
+ const dirs = [
546
+ [path.join(projectDir, this.githubDir, this.agentsDir), /^bmad.*\.agent\.md$/],
547
+ [path.join(projectDir, this.githubDir, this.promptsDir), /^bmad-.*\.prompt\.md$/],
548
+ ];
549
+
550
+ for (const [dir, pattern] of dirs) {
551
+ if (!(await fs.pathExists(dir))) continue;
552
+ const files = await fs.readdir(dir);
553
+
554
+ for (const file of files) {
555
+ if (!pattern.test(file)) continue;
556
+
557
+ try {
558
+ const content = await fs.readFile(path.join(dir, file), 'utf8');
559
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
560
+ if (!fmMatch) continue;
561
+
562
+ const frontmatter = yaml.parse(fmMatch[1]);
563
+ if (frontmatter && Array.isArray(frontmatter.tools)) {
564
+ permissions.set(file, frontmatter.tools);
565
+ }
566
+ } catch {
567
+ // Skip unreadable files
568
+ }
569
+ }
570
+ }
262
571
 
263
- return chatmodeContent;
572
+ return permissions;
573
+ }
574
+
575
+ /**
576
+ * Get the tools array string for a file, preserving any existing customisation.
577
+ * Falls back to the default tools if no prior customisation exists.
578
+ * @param {string} fileName - Target filename (e.g. 'bmad-agent-bmm-pm.agent.md')
579
+ * @returns {string} YAML inline array string
580
+ */
581
+ getToolsForFile(fileName) {
582
+ const defaultTools = ['read', 'edit', 'search', 'execute'];
583
+ const tools = (this.existingToolPermissions && this.existingToolPermissions.get(fileName)) || defaultTools;
584
+ return '[' + tools.map((t) => `'${t}'`).join(', ') + ']';
264
585
  }
265
586
 
266
587
  /**
@@ -276,24 +597,100 @@ ${cleanContent}
276
597
  /**
277
598
  * Cleanup GitHub Copilot configuration - surgically remove only BMAD files
278
599
  */
279
- async cleanup(projectDir) {
280
- const fs = require('fs-extra');
281
- const chatmodesDir = path.join(projectDir, this.configDir, this.chatmodesDir);
600
+ async cleanup(projectDir, options = {}) {
601
+ // Clean up agents directory
602
+ const agentsDir = path.join(projectDir, this.githubDir, this.agentsDir);
603
+ if (await fs.pathExists(agentsDir)) {
604
+ const files = await fs.readdir(agentsDir);
605
+ let removed = 0;
282
606
 
283
- if (await fs.pathExists(chatmodesDir)) {
284
- // Only remove files that start with bmad- prefix
285
- const files = await fs.readdir(chatmodesDir);
607
+ for (const file of files) {
608
+ if (file.startsWith('bmad') && (file.endsWith('.agent.md') || file.endsWith('.md'))) {
609
+ await fs.remove(path.join(agentsDir, file));
610
+ removed++;
611
+ }
612
+ }
613
+
614
+ if (removed > 0 && !options.silent) {
615
+ await prompts.log.message(` Cleaned up ${removed} existing BMAD agents`);
616
+ }
617
+ }
618
+
619
+ // Clean up prompts directory
620
+ const promptsDir = path.join(projectDir, this.githubDir, this.promptsDir);
621
+ if (await fs.pathExists(promptsDir)) {
622
+ const files = await fs.readdir(promptsDir);
286
623
  let removed = 0;
287
624
 
288
625
  for (const file of files) {
289
- if (file.startsWith('bmad-') && file.endsWith('.chatmode.md')) {
290
- await fs.remove(path.join(chatmodesDir, file));
626
+ if (file.startsWith('bmad-') && file.endsWith('.prompt.md')) {
627
+ await fs.remove(path.join(promptsDir, file));
291
628
  removed++;
292
629
  }
293
630
  }
294
631
 
295
- if (removed > 0) {
296
- console.log(chalk.dim(` Cleaned up ${removed} existing BMAD chat modes`));
632
+ if (removed > 0 && !options.silent) {
633
+ await prompts.log.message(` Cleaned up ${removed} existing BMAD prompts`);
634
+ }
635
+ }
636
+
637
+ // During uninstall, also strip BMAD markers from copilot-instructions.md.
638
+ // During reinstall (default), this is skipped because generateCopilotInstructions()
639
+ // handles marker-based replacement in a single read-modify-write pass,
640
+ // which correctly preserves user content outside the markers.
641
+ if (options.isUninstall) {
642
+ await this.cleanupCopilotInstructions(projectDir, options);
643
+ }
644
+ }
645
+
646
+ /**
647
+ * Strip BMAD marker section from copilot-instructions.md
648
+ * If file becomes empty after stripping, delete it.
649
+ * If a .bak backup exists and the main file was deleted, restore the backup.
650
+ * @param {string} projectDir - Project directory
651
+ * @param {Object} [options] - Options (e.g. { silent: true })
652
+ */
653
+ async cleanupCopilotInstructions(projectDir, options = {}) {
654
+ const instructionsPath = path.join(projectDir, this.githubDir, 'copilot-instructions.md');
655
+ const backupPath = `${instructionsPath}.bak`;
656
+
657
+ if (!(await fs.pathExists(instructionsPath))) {
658
+ return;
659
+ }
660
+
661
+ const content = await fs.readFile(instructionsPath, 'utf8');
662
+ const markerStart = '<!-- BMAD:START -->';
663
+ const markerEnd = '<!-- BMAD:END -->';
664
+ const startIdx = content.indexOf(markerStart);
665
+ const endIdx = content.indexOf(markerEnd);
666
+
667
+ if (startIdx === -1 || endIdx === -1 || endIdx <= startIdx) {
668
+ return; // No valid markers found
669
+ }
670
+
671
+ // Strip the marker section (including markers)
672
+ const before = content.slice(0, startIdx);
673
+ const after = content.slice(endIdx + markerEnd.length);
674
+ const cleaned = before + after;
675
+
676
+ if (cleaned.trim().length === 0) {
677
+ // File is empty after stripping — delete it
678
+ await fs.remove(instructionsPath);
679
+
680
+ // If backup exists, restore it
681
+ if (await fs.pathExists(backupPath)) {
682
+ await fs.rename(backupPath, instructionsPath);
683
+ if (!options.silent) {
684
+ await prompts.log.message(' Restored copilot-instructions.md from backup');
685
+ }
686
+ }
687
+ } else {
688
+ // Write cleaned content back (preserve original whitespace)
689
+ await fs.writeFile(instructionsPath, cleaned, 'utf8');
690
+
691
+ // If backup exists, it's stale now — remove it
692
+ if (await fs.pathExists(backupPath)) {
693
+ await fs.remove(backupPath);
297
694
  }
298
695
  }
299
696
  }