bmad-elsabro 1.0.0

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 (572) hide show
  1. package/.auto-claude-security.json +209 -0
  2. package/.claude_settings.json +34 -0
  3. package/.coderabbit.yaml +40 -0
  4. package/.nvmrc +1 -0
  5. package/.prettierignore +9 -0
  6. package/AI_TEST_GENERATOR_VERIFICATION.md +260 -0
  7. package/BUDGET_ALERT_TESTING.md +325 -0
  8. package/CHANGELOG.md +1488 -0
  9. package/CNAME +1 -0
  10. package/CONTRIBUTING.md +167 -0
  11. package/CONTRIBUTORS.md +32 -0
  12. package/LEGACY_MIGRATION_TESTING.md +428 -0
  13. package/LICENSE +30 -0
  14. package/PARTY_MODE_VERIFICATION.md +274 -0
  15. package/PROJECT_DETECTOR_TESTING.md +288 -0
  16. package/README.md +236 -0
  17. package/SECURITY.md +85 -0
  18. package/TRADEMARK.md +55 -0
  19. package/WORKFLOW_ROUTER_IMPLEMENTATION.md +379 -0
  20. package/Wordmark.png +0 -0
  21. package/banner-bmad-method.png +0 -0
  22. package/build/icons/512x512.png +0 -0
  23. package/build-mac.sh +3 -0
  24. package/docs/404.md +9 -0
  25. package/docs/_STYLE_GUIDE.md +367 -0
  26. package/docs/developer/api-reference.md +945 -0
  27. package/docs/developer/architecture.md +563 -0
  28. package/docs/developer/contributing.md +831 -0
  29. package/docs/downloads.md +74 -0
  30. package/docs/explanation/advanced-elicitation.md +24 -0
  31. package/docs/explanation/adversarial-review.md +57 -0
  32. package/docs/explanation/brainstorming.md +31 -0
  33. package/docs/explanation/brownfield-faq.md +55 -0
  34. package/docs/explanation/party-mode.md +57 -0
  35. package/docs/explanation/preventing-agent-conflicts.md +110 -0
  36. package/docs/explanation/quick-flow.md +27 -0
  37. package/docs/explanation/why-solutioning-matters.md +75 -0
  38. package/docs/how-to/brownfield/index.md +84 -0
  39. package/docs/how-to/brownfield/quick-fix-in-brownfield.md +76 -0
  40. package/docs/how-to/customize-bmad.md +158 -0
  41. package/docs/how-to/get-answers-about-bmad.md +102 -0
  42. package/docs/how-to/install-bmad.md +82 -0
  43. package/docs/how-to/shard-large-documents.md +101 -0
  44. package/docs/how-to/upgrade-to-v6.md +131 -0
  45. package/docs/index.md +56 -0
  46. package/docs/reference/workflow-map.md +83 -0
  47. package/docs/tea/explanation/engagement-models.md +710 -0
  48. package/docs/tea/explanation/fixture-architecture.md +457 -0
  49. package/docs/tea/explanation/knowledge-base-system.md +554 -0
  50. package/docs/tea/explanation/network-first-patterns.md +853 -0
  51. package/docs/tea/explanation/risk-based-testing.md +586 -0
  52. package/docs/tea/explanation/tea-overview.md +410 -0
  53. package/docs/tea/explanation/test-quality-standards.md +907 -0
  54. package/docs/tea/explanation/testing-as-engineering.md +112 -0
  55. package/docs/tea/glossary/index.md +159 -0
  56. package/docs/tea/how-to/brownfield/use-tea-for-enterprise.md +525 -0
  57. package/docs/tea/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
  58. package/docs/tea/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
  59. package/docs/tea/how-to/customization/integrate-playwright-utils.md +813 -0
  60. package/docs/tea/how-to/workflows/run-atdd.md +436 -0
  61. package/docs/tea/how-to/workflows/run-automate.md +653 -0
  62. package/docs/tea/how-to/workflows/run-nfr-assess.md +679 -0
  63. package/docs/tea/how-to/workflows/run-test-design.md +135 -0
  64. package/docs/tea/how-to/workflows/run-test-review.md +605 -0
  65. package/docs/tea/how-to/workflows/run-trace.md +883 -0
  66. package/docs/tea/how-to/workflows/setup-ci.md +712 -0
  67. package/docs/tea/how-to/workflows/setup-test-framework.md +98 -0
  68. package/docs/tea/reference/commands.md +276 -0
  69. package/docs/tea/reference/configuration.md +678 -0
  70. package/docs/tea/reference/knowledge-base.md +340 -0
  71. package/docs/tea/tutorials/tea-lite-quickstart.md +444 -0
  72. package/docs/tutorials/getting-started.md +205 -0
  73. package/docs/user-guide/getting-started.md +348 -0
  74. package/docs/user-guide/token-economy.md +601 -0
  75. package/docs/user-guide/workflows.md +546 -0
  76. package/electron-builder.yml +75 -0
  77. package/eslint.config.mjs +152 -0
  78. package/package.json +162 -0
  79. package/prettier.config.mjs +32 -0
  80. package/public/monaco-workers/index.js +21 -0
  81. package/renderer/App.tsx +311 -0
  82. package/renderer/components/ChatPanel.tsx +285 -0
  83. package/renderer/components/CodeEditor.tsx +327 -0
  84. package/renderer/components/CodeEditor.types.ts +245 -0
  85. package/renderer/components/FlowSelector.tsx +534 -0
  86. package/renderer/components/MessageInput.tsx +252 -0
  87. package/renderer/components/MessageList.tsx +204 -0
  88. package/renderer/components/MigrationWizard.tsx +896 -0
  89. package/renderer/components/NotificationCenter.tsx +291 -0
  90. package/renderer/components/OnboardingWizard.tsx +112 -0
  91. package/renderer/components/PartyMode.tsx +555 -0
  92. package/renderer/components/Sidebar.module.css +258 -0
  93. package/renderer/components/Sidebar.tsx +157 -0
  94. package/renderer/components/TemplateSelector.tsx +553 -0
  95. package/renderer/components/Terminal.tsx +523 -0
  96. package/renderer/components/TestCenter.tsx +364 -0
  97. package/renderer/components/TokenAnalytics.tsx +607 -0
  98. package/renderer/components/TokenMonitor.tsx +331 -0
  99. package/renderer/components/TutorialOverlay.tsx +483 -0
  100. package/renderer/components/WorkflowEditor.tsx +470 -0
  101. package/renderer/components/onboarding/Step1Welcome.tsx +72 -0
  102. package/renderer/components/onboarding/Step2Setup.tsx +193 -0
  103. package/renderer/components/onboarding/Step3CreateProject.tsx +209 -0
  104. package/renderer/components/test-center/CoverageDashboard.tsx +588 -0
  105. package/renderer/components/test-center/ELI5Guide.tsx +521 -0
  106. package/renderer/components/test-center/TestList.tsx +381 -0
  107. package/renderer/components/test-center/TestRunner.tsx +431 -0
  108. package/renderer/components/test-center/TestStepWizard.tsx +1000 -0
  109. package/renderer/components/test-center/VisualTestBuilder.tsx +460 -0
  110. package/renderer/components/workflow/DependencyEdge.tsx +200 -0
  111. package/renderer/components/workflow/StepNode.tsx +234 -0
  112. package/renderer/components/workflow/StepPalette.tsx +412 -0
  113. package/renderer/context/ThemeContext.tsx +97 -0
  114. package/renderer/data/shortcuts.json +94 -0
  115. package/renderer/data/testing-guides.json +261 -0
  116. package/renderer/data/tutorials.json +546 -0
  117. package/renderer/hooks/useKeyboardShortcuts.ts +249 -0
  118. package/renderer/hooks/useNotifications.ts +267 -0
  119. package/renderer/hooks/useTheme.ts +149 -0
  120. package/renderer/hooks/useTokenTracking.ts +464 -0
  121. package/renderer/hooks/useWorkflowState.ts +309 -0
  122. package/renderer/index.html +16 -0
  123. package/renderer/index.tsx +17 -0
  124. package/renderer/lib/MONACO_OFFLINE_CONFIG.md +153 -0
  125. package/renderer/lib/chart-utils.ts +472 -0
  126. package/renderer/lib/file-system-provider.ts +295 -0
  127. package/renderer/lib/monaco-loader.ts +247 -0
  128. package/renderer/renderer/components/NOTIFICATION_SYSTEM.md +192 -0
  129. package/renderer/styles.css +55 -0
  130. package/renderer/types/css-modules.d.ts +21 -0
  131. package/renderer/types/electron.d.ts +316 -0
  132. package/src/bmm/_module-installer/installer.js +48 -0
  133. package/src/bmm/agents/analyst.agent.yaml +36 -0
  134. package/src/bmm/agents/architect.agent.yaml +28 -0
  135. package/src/bmm/agents/dev.agent.yaml +38 -0
  136. package/src/bmm/agents/parallel-orchestrator.agent.yaml +50 -0
  137. package/src/bmm/agents/pm.agent.yaml +46 -0
  138. package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
  139. package/src/bmm/agents/sm.agent.yaml +36 -0
  140. package/src/bmm/agents/tea.agent.yaml +63 -0
  141. package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  142. package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +45 -0
  143. package/src/bmm/agents/ux-designer.agent.yaml +26 -0
  144. package/src/bmm/agents/yolo-dev.agent.yaml +41 -0
  145. package/src/bmm/data/auto-testing-config.yaml +84 -0
  146. package/src/bmm/data/guided-mode-instructions.yaml +112 -0
  147. package/src/bmm/data/parallelization-config.yaml +136 -0
  148. package/src/bmm/data/project-context-template.md +26 -0
  149. package/src/bmm/data/speed-profiles.yaml +127 -0
  150. package/src/bmm/module-help.csv +32 -0
  151. package/src/bmm/module.yaml +60 -0
  152. package/src/bmm/teams/default-party.csv +21 -0
  153. package/src/bmm/teams/team-fullstack.yaml +12 -0
  154. package/src/bmm/testarch/knowledge/adr-quality-readiness-checklist.md +350 -0
  155. package/src/bmm/testarch/knowledge/api-request.md +442 -0
  156. package/src/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
  157. package/src/bmm/testarch/knowledge/auth-session.md +552 -0
  158. package/src/bmm/testarch/knowledge/burn-in.md +273 -0
  159. package/src/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  160. package/src/bmm/testarch/knowledge/component-tdd.md +486 -0
  161. package/src/bmm/testarch/knowledge/contract-testing.md +957 -0
  162. package/src/bmm/testarch/knowledge/data-factories.md +500 -0
  163. package/src/bmm/testarch/knowledge/email-auth.md +721 -0
  164. package/src/bmm/testarch/knowledge/error-handling.md +725 -0
  165. package/src/bmm/testarch/knowledge/feature-flags.md +750 -0
  166. package/src/bmm/testarch/knowledge/file-utils.md +463 -0
  167. package/src/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  168. package/src/bmm/testarch/knowledge/fixtures-composition.md +382 -0
  169. package/src/bmm/testarch/knowledge/intercept-network-call.md +430 -0
  170. package/src/bmm/testarch/knowledge/log.md +429 -0
  171. package/src/bmm/testarch/knowledge/network-error-monitor.md +405 -0
  172. package/src/bmm/testarch/knowledge/network-first.md +486 -0
  173. package/src/bmm/testarch/knowledge/network-recorder.md +527 -0
  174. package/src/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  175. package/src/bmm/testarch/knowledge/overview.md +286 -0
  176. package/src/bmm/testarch/knowledge/playwright-config.md +730 -0
  177. package/src/bmm/testarch/knowledge/probability-impact.md +601 -0
  178. package/src/bmm/testarch/knowledge/recurse.md +421 -0
  179. package/src/bmm/testarch/knowledge/risk-governance.md +615 -0
  180. package/src/bmm/testarch/knowledge/selective-testing.md +732 -0
  181. package/src/bmm/testarch/knowledge/selector-resilience.md +527 -0
  182. package/src/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  183. package/src/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  184. package/src/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  185. package/src/bmm/testarch/knowledge/test-quality.md +664 -0
  186. package/src/bmm/testarch/knowledge/timing-debugging.md +372 -0
  187. package/src/bmm/testarch/knowledge/visual-debugging.md +524 -0
  188. package/src/bmm/testarch/tea-index.csv +35 -0
  189. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  190. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
  191. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
  192. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
  193. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
  194. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
  195. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
  196. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
  197. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
  198. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
  199. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
  200. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
  201. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
  202. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
  203. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
  204. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
  205. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
  206. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
  207. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
  208. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
  209. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
  210. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
  211. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  212. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
  213. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
  214. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
  215. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
  216. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
  217. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
  218. package/src/bmm/workflows/1-analysis/research/workflow.md +173 -0
  219. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +13 -0
  220. package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  221. package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  222. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
  223. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
  224. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
  225. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
  226. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
  227. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
  228. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
  229. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
  230. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
  231. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
  232. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
  233. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
  234. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
  235. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
  236. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  237. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
  238. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
  239. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
  240. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
  241. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
  242. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
  243. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
  244. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  245. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  246. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  247. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  248. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  249. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  250. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
  251. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  252. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  253. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
  254. package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  255. package/src/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +433 -0
  256. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow.md +150 -0
  257. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
  258. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
  259. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
  260. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
  261. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
  262. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
  263. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
  264. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
  265. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  266. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
  267. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
  268. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
  269. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  270. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  271. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
  272. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  273. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
  274. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
  275. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
  276. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
  277. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
  278. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
  279. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
  280. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  281. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
  282. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  283. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
  284. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  285. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
  286. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
  287. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
  288. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
  289. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
  290. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
  291. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
  292. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
  293. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
  294. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
  295. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
  296. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
  297. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
  298. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
  299. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  300. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
  301. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  302. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  303. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
  304. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  305. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  306. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
  307. package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
  308. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
  309. package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
  310. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
  311. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  312. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
  313. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +32 -0
  314. package/src/bmm/workflows/4-implementation/fix-and-test/workflow.md +197 -0
  315. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  316. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
  317. package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  318. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
  319. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  320. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
  321. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
  322. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
  323. package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/steps/step-01-detect.md +55 -0
  324. package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/steps/step-02-confirm.md +48 -0
  325. package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/steps/step-03-implement.md +61 -0
  326. package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/workflow.md +41 -0
  327. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
  328. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
  329. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +153 -0
  330. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
  331. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
  332. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
  333. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +73 -0
  334. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
  335. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
  336. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
  337. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  338. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  339. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +93 -0
  340. package/src/bmm/workflows/bmad-quick-flow/yolo-mode/steps/step-01-rapid-spec.md +54 -0
  341. package/src/bmm/workflows/bmad-quick-flow/yolo-mode/steps/step-02-ship-it.md +65 -0
  342. package/src/bmm/workflows/bmad-quick-flow/yolo-mode/workflow.md +54 -0
  343. package/src/bmm/workflows/document-project/checklist.md +245 -0
  344. package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  345. package/src/bmm/workflows/document-project/instructions.md +221 -0
  346. package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  347. package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
  348. package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  349. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  350. package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  351. package/src/bmm/workflows/document-project/workflow.yaml +30 -0
  352. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  353. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  354. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  355. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  356. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
  357. package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
  358. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
  359. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
  360. package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
  361. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
  362. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
  363. package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
  364. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
  365. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
  366. package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
  367. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
  368. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
  369. package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
  370. package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-01-parse-target.md +49 -0
  371. package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-02-launch-streams.md +135 -0
  372. package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-03-sync-point.md +74 -0
  373. package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-04-merge-insights.md +179 -0
  374. package/src/bmm/workflows/parallel-work/parallel-analysis/workflow.md +55 -0
  375. package/src/bmm/workflows/parallel-work/parallel-generation/workflow.md +109 -0
  376. package/src/bmm/workflows/parallel-work/parallel-reviews/workflow.md +111 -0
  377. package/src/bmm/workflows/parallel-work/parallel-stories/workflow.md +112 -0
  378. package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-01-load-sprint.md +54 -0
  379. package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-02-plan-execution.md +63 -0
  380. package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-03-execute-stories.md +112 -0
  381. package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-04-code-review.md +148 -0
  382. package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-05-integration-testing.md +200 -0
  383. package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-06-sprint-report.md +290 -0
  384. package/src/bmm/workflows/parallel-work/sprint-mode/workflow.md +58 -0
  385. package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  386. package/src/bmm/workflows/testarch/atdd/checklist.md +374 -0
  387. package/src/bmm/workflows/testarch/atdd/instructions.md +806 -0
  388. package/src/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
  389. package/src/bmm/workflows/testarch/automate/checklist.md +582 -0
  390. package/src/bmm/workflows/testarch/automate/instructions.md +1324 -0
  391. package/src/bmm/workflows/testarch/automate/workflow.yaml +54 -0
  392. package/src/bmm/workflows/testarch/ci/checklist.md +247 -0
  393. package/src/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
  394. package/src/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
  395. package/src/bmm/workflows/testarch/ci/instructions.md +536 -0
  396. package/src/bmm/workflows/testarch/ci/workflow.yaml +47 -0
  397. package/src/bmm/workflows/testarch/framework/checklist.md +320 -0
  398. package/src/bmm/workflows/testarch/framework/instructions.md +481 -0
  399. package/src/bmm/workflows/testarch/framework/workflow.yaml +49 -0
  400. package/src/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
  401. package/src/bmm/workflows/testarch/nfr-assess/instructions.md +726 -0
  402. package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +461 -0
  403. package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
  404. package/src/bmm/workflows/testarch/test-design/checklist.md +407 -0
  405. package/src/bmm/workflows/testarch/test-design/instructions.md +1158 -0
  406. package/src/bmm/workflows/testarch/test-design/test-design-architecture-template.md +213 -0
  407. package/src/bmm/workflows/testarch/test-design/test-design-qa-template.md +286 -0
  408. package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
  409. package/src/bmm/workflows/testarch/test-design/workflow.yaml +71 -0
  410. package/src/bmm/workflows/testarch/test-review/checklist.md +472 -0
  411. package/src/bmm/workflows/testarch/test-review/instructions.md +628 -0
  412. package/src/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
  413. package/src/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
  414. package/src/bmm/workflows/testarch/trace/checklist.md +642 -0
  415. package/src/bmm/workflows/testarch/trace/instructions.md +1030 -0
  416. package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
  417. package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
  418. package/src/core/_module-installer/installer.js +60 -0
  419. package/src/core/agents/bmad-master.agent.yaml +29 -0
  420. package/src/core/module-help.csv +9 -0
  421. package/src/core/module.yaml +25 -0
  422. package/src/core/resources/excalidraw/README.md +160 -0
  423. package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
  424. package/src/core/resources/excalidraw/library-loader.md +50 -0
  425. package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
  426. package/src/core/tasks/editorial-review-prose.xml +100 -0
  427. package/src/core/tasks/editorial-review-structure.xml +209 -0
  428. package/src/core/tasks/help.md +62 -0
  429. package/src/core/tasks/index-docs.xml +65 -0
  430. package/src/core/tasks/review-adversarial-general.xml +48 -0
  431. package/src/core/tasks/shard-doc.xml +109 -0
  432. package/src/core/tasks/workflow.xml +235 -0
  433. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  434. package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
  435. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  436. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
  437. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  438. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  439. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  440. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  441. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  442. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
  443. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  444. package/src/core/workflows/brainstorming/template.md +15 -0
  445. package/src/core/workflows/brainstorming/workflow.md +58 -0
  446. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
  447. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  448. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
  449. package/src/core/workflows/party-mode/workflow.md +194 -0
  450. package/src/utility/agent-components/activation-rules.txt +6 -0
  451. package/src/utility/agent-components/activation-steps.txt +14 -0
  452. package/src/utility/agent-components/agent-command-header.md +1 -0
  453. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  454. package/src/utility/agent-components/handler-action.txt +4 -0
  455. package/src/utility/agent-components/handler-data.txt +5 -0
  456. package/src/utility/agent-components/handler-exec.txt +6 -0
  457. package/src/utility/agent-components/handler-multi.txt +14 -0
  458. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  459. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  460. package/src/utility/agent-components/handler-workflow.txt +10 -0
  461. package/src/utility/agent-components/menu-handlers.txt +6 -0
  462. package/tools/bmad-npx-wrapper.js +69 -0
  463. package/tools/build-docs.js +577 -0
  464. package/tools/cli/README.md +7 -0
  465. package/tools/cli/bmad-cli.js +65 -0
  466. package/tools/cli/commands/diagnostics.js +303 -0
  467. package/tools/cli/commands/install.js +87 -0
  468. package/tools/cli/commands/module.js +210 -0
  469. package/tools/cli/commands/status.js +65 -0
  470. package/tools/cli/commands/uninstall.js +86 -0
  471. package/tools/cli/external-official-modules.yaml +54 -0
  472. package/tools/cli/installers/install-messages.yaml +59 -0
  473. package/tools/cli/installers/lib/core/config-collector.js +1079 -0
  474. package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
  475. package/tools/cli/installers/lib/core/dependency-resolver.js +739 -0
  476. package/tools/cli/installers/lib/core/detector.js +223 -0
  477. package/tools/cli/installers/lib/core/ide-config-manager.js +156 -0
  478. package/tools/cli/installers/lib/core/installer.js +2812 -0
  479. package/tools/cli/installers/lib/core/manifest-generator.js +1054 -0
  480. package/tools/cli/installers/lib/core/manifest.js +1036 -0
  481. package/tools/cli/installers/lib/custom/handler.js +363 -0
  482. package/tools/cli/installers/lib/ide/_base-ide.js +655 -0
  483. package/tools/cli/installers/lib/ide/_config-driven.js +450 -0
  484. package/tools/cli/installers/lib/ide/codex.js +440 -0
  485. package/tools/cli/installers/lib/ide/kilo.js +250 -0
  486. package/tools/cli/installers/lib/ide/kiro-cli.js +326 -0
  487. package/tools/cli/installers/lib/ide/manager.js +271 -0
  488. package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
  489. package/tools/cli/installers/lib/ide/platform-codes.yaml +227 -0
  490. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +181 -0
  491. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +163 -0
  492. package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
  493. package/tools/cli/installers/lib/ide/shared/path-utils.js +292 -0
  494. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +270 -0
  495. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +319 -0
  496. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  497. package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
  498. package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +15 -0
  499. package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +14 -0
  500. package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +6 -0
  501. package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
  502. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
  503. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
  504. package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
  505. package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
  506. package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
  507. package/tools/cli/installers/lib/ide/templates/split/opencode/body.md +10 -0
  508. package/tools/cli/installers/lib/ide/templates/split/opencode/header.md +4 -0
  509. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  510. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  511. package/tools/cli/installers/lib/message-loader.js +85 -0
  512. package/tools/cli/installers/lib/modules/external-manager.js +135 -0
  513. package/tools/cli/installers/lib/modules/manager.js +1375 -0
  514. package/tools/cli/lib/activation-builder.js +163 -0
  515. package/tools/cli/lib/agent/compiler.js +522 -0
  516. package/tools/cli/lib/agent/compiler.ts +572 -0
  517. package/tools/cli/lib/agent/installer.js +716 -0
  518. package/tools/cli/lib/agent/template-engine.js +152 -0
  519. package/tools/cli/lib/agent/types.ts +155 -0
  520. package/tools/cli/lib/agent-analyzer.js +109 -0
  521. package/tools/cli/lib/agent-party-generator.js +194 -0
  522. package/tools/cli/lib/cli-utils.js +227 -0
  523. package/tools/cli/lib/config.js +213 -0
  524. package/tools/cli/lib/config.ts +227 -0
  525. package/tools/cli/lib/file-ops.js +204 -0
  526. package/tools/cli/lib/file-ops.ts +215 -0
  527. package/tools/cli/lib/platform-codes.js +116 -0
  528. package/tools/cli/lib/project-root.js +77 -0
  529. package/tools/cli/lib/prompts.js +433 -0
  530. package/tools/cli/lib/prompts.ts +541 -0
  531. package/tools/cli/lib/types/config.types.ts +43 -0
  532. package/tools/cli/lib/types/xml-handler.types.ts +50 -0
  533. package/tools/cli/lib/ui.js +1660 -0
  534. package/tools/cli/lib/xml-handler.js +177 -0
  535. package/tools/cli/lib/xml-handler.ts +188 -0
  536. package/tools/cli/lib/xml-to-markdown.js +82 -0
  537. package/tools/cli/lib/yaml-format.js +245 -0
  538. package/tools/cli/lib/yaml-xml-builder.js +587 -0
  539. package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
  540. package/tools/docs/fix-refs.md +91 -0
  541. package/tools/docs/index.md +2 -0
  542. package/tools/fix-doc-links.js +288 -0
  543. package/tools/flattener/aggregate.js +76 -0
  544. package/tools/flattener/aggregate.ts +78 -0
  545. package/tools/flattener/binary.js +80 -0
  546. package/tools/flattener/discovery.js +71 -0
  547. package/tools/flattener/files.js +35 -0
  548. package/tools/flattener/files.ts +31 -0
  549. package/tools/flattener/ignoreRules.js +172 -0
  550. package/tools/flattener/main.js +483 -0
  551. package/tools/flattener/main.ts +262 -0
  552. package/tools/flattener/projectRoot.js +201 -0
  553. package/tools/flattener/prompts.js +44 -0
  554. package/tools/flattener/stats.helpers.js +368 -0
  555. package/tools/flattener/stats.js +75 -0
  556. package/tools/flattener/test-matrix.js +409 -0
  557. package/tools/flattener/types.ts +53 -0
  558. package/tools/flattener/xml.js +82 -0
  559. package/tools/format-workflow-md.js +263 -0
  560. package/tools/lib/xml-utils.js +13 -0
  561. package/tools/maintainer/review-pr-README.md +55 -0
  562. package/tools/maintainer/review-pr.md +242 -0
  563. package/tools/migrate-custom-module-paths.js +124 -0
  564. package/tools/platform-codes.yaml +157 -0
  565. package/tools/schema/agent.js +491 -0
  566. package/tools/schema/agent.ts +489 -0
  567. package/tools/schema/agent.types.ts +31 -0
  568. package/tools/update-bmad.sh +24 -0
  569. package/tools/validate-agent-schema.js +110 -0
  570. package/tools/validate-doc-links.js +371 -0
  571. package/tools/validate-svg-changes.sh +356 -0
  572. package/vite-plugin-monaco-editor.ts +108 -0
@@ -0,0 +1,227 @@
1
+ # BMAD Platform Codes Configuration
2
+ # Central configuration for all platform/IDE codes used in the BMAD system
3
+ #
4
+ # This file defines:
5
+ # 1. Platform metadata (name, preferred status, category, description)
6
+ # 2. Installer configuration (target directories, templates, artifact types)
7
+ #
8
+ # Format:
9
+ # code: Platform identifier used internally
10
+ # name: Display name shown to users
11
+ # preferred: Whether this platform is shown as a recommended option on install
12
+ # category: Type of platform (ide, cli, tool, service)
13
+ # description: Brief description of the platform
14
+ # installer: Installation configuration (optional - omit for custom installers)
15
+
16
+ platforms:
17
+ antigravity:
18
+ name: "Google Antigravity"
19
+ preferred: false
20
+ category: ide
21
+ description: "Google's AI development environment"
22
+ installer:
23
+ target_dir: .agent/workflows
24
+ template_type: antigravity
25
+
26
+ auggie:
27
+ name: "Auggie"
28
+ preferred: false
29
+ category: cli
30
+ description: "AI development tool"
31
+ installer:
32
+ target_dir: .augment/commands
33
+ template_type: default
34
+
35
+ claude-code:
36
+ name: "Claude Code"
37
+ preferred: true
38
+ category: cli
39
+ description: "Anthropic's official CLI for Claude"
40
+ installer:
41
+ target_dir: .claude/commands
42
+ template_type: default
43
+
44
+ cline:
45
+ name: "Cline"
46
+ preferred: false
47
+ category: ide
48
+ description: "AI coding assistant"
49
+ installer:
50
+ target_dir: .clinerules/workflows
51
+ template_type: windsurf
52
+
53
+ codex:
54
+ name: "Codex"
55
+ preferred: false
56
+ category: cli
57
+ description: "OpenAI Codex integration"
58
+ # No installer config - uses custom codex.js
59
+
60
+ crush:
61
+ name: "Crush"
62
+ preferred: false
63
+ category: ide
64
+ description: "AI development assistant"
65
+ installer:
66
+ target_dir: .crush/commands
67
+ template_type: default
68
+
69
+ cursor:
70
+ name: "Cursor"
71
+ preferred: true
72
+ category: ide
73
+ description: "AI-first code editor"
74
+ installer:
75
+ target_dir: .cursor/commands
76
+ template_type: default
77
+
78
+ gemini:
79
+ name: "Gemini CLI"
80
+ preferred: false
81
+ category: cli
82
+ description: "Google's CLI for Gemini"
83
+ installer:
84
+ target_dir: .gemini/commands
85
+ template_type: gemini
86
+
87
+ github-copilot:
88
+ name: "GitHub Copilot"
89
+ preferred: false
90
+ category: ide
91
+ description: "GitHub's AI pair programmer"
92
+ installer:
93
+ targets:
94
+ - target_dir: .github/agents
95
+ template_type: copilot_agents
96
+ artifact_types: [agents]
97
+ - target_dir: .vscode
98
+ template_type: vscode_settings
99
+ artifact_types: []
100
+
101
+ iflow:
102
+ name: "iFlow"
103
+ preferred: false
104
+ category: ide
105
+ description: "AI workflow automation"
106
+ installer:
107
+ target_dir: .iflow/commands
108
+ template_type: default
109
+
110
+ kilo:
111
+ name: "KiloCoder"
112
+ preferred: false
113
+ category: ide
114
+ description: "AI coding platform"
115
+ # No installer config - uses custom kilo.js (creates .kilocodemodes file)
116
+
117
+ kiro-cli:
118
+ name: "Kiro CLI"
119
+ preferred: false
120
+ category: cli
121
+ description: "Kiro command-line interface"
122
+ # No installer config - uses custom kiro-cli.js (YAML→JSON conversion)
123
+
124
+ opencode:
125
+ name: "OpenCode"
126
+ preferred: false
127
+ category: ide
128
+ description: "OpenCode terminal coding assistant"
129
+ installer:
130
+ target_dir: .opencode/command
131
+ template_type: opencode
132
+
133
+ qwen:
134
+ name: "QwenCoder"
135
+ preferred: false
136
+ category: ide
137
+ description: "Qwen AI coding assistant"
138
+ installer:
139
+ target_dir: .qwen/commands
140
+ template_type: default
141
+
142
+ roo:
143
+ name: "Roo Cline"
144
+ preferred: false
145
+ category: ide
146
+ description: "Enhanced Cline fork"
147
+ installer:
148
+ target_dir: .roo/commands
149
+ template_type: default
150
+
151
+ rovo-dev:
152
+ name: "Rovo Dev"
153
+ preferred: false
154
+ category: ide
155
+ description: "Atlassian's Rovo development environment"
156
+ installer:
157
+ target_dir: .rovodev/workflows
158
+ template_type: rovodev
159
+
160
+ trae:
161
+ name: "Trae"
162
+ preferred: false
163
+ category: ide
164
+ description: "AI coding tool"
165
+ installer:
166
+ target_dir: .trae/rules
167
+ template_type: trae
168
+
169
+ windsurf:
170
+ name: "Windsurf"
171
+ preferred: true
172
+ category: ide
173
+ description: "AI-powered IDE with cascade flows"
174
+ installer:
175
+ target_dir: .windsurf/workflows
176
+ template_type: windsurf
177
+
178
+ # ============================================================================
179
+ # Installer Config Schema
180
+ # ============================================================================
181
+ #
182
+ # installer:
183
+ # target_dir: string # Directory where artifacts are installed
184
+ # template_type: string # Default template type to use
185
+ # header_template: string (optional) # Override for header/frontmatter template
186
+ # body_template: string (optional) # Override for body/content template
187
+ # targets: array (optional) # For multi-target installations
188
+ # - target_dir: string
189
+ # template_type: string
190
+ # artifact_types: [agents, workflows, tasks, tools]
191
+ # artifact_types: array (optional) # Filter which artifacts to install (default: all)
192
+ # skip_existing: boolean (optional) # Skip files that already exist (default: false)
193
+
194
+ # ============================================================================
195
+ # Platform Categories
196
+ # ============================================================================
197
+
198
+ categories:
199
+ ide:
200
+ name: "Integrated Development Environment"
201
+ description: "Full-featured code editors with AI assistance"
202
+
203
+ cli:
204
+ name: "Command Line Interface"
205
+ description: "Terminal-based tools"
206
+
207
+ tool:
208
+ name: "Development Tool"
209
+ description: "Standalone development utilities"
210
+
211
+ service:
212
+ name: "Cloud Service"
213
+ description: "Cloud-based development platforms"
214
+
215
+ extension:
216
+ name: "Editor Extension"
217
+ description: "Plugins for existing editors"
218
+
219
+ # ============================================================================
220
+ # Naming Conventions and Rules
221
+ # ============================================================================
222
+
223
+ conventions:
224
+ code_format: "lowercase-kebab-case"
225
+ name_format: "Title Case"
226
+ max_code_length: 20
227
+ allowed_characters: "a-z0-9-"
@@ -0,0 +1,181 @@
1
+ const path = require('node:path');
2
+ const fs = require('fs-extra');
3
+ const chalk = require('chalk');
4
+ const { toColonPath, toDashPath, customAgentColonName, customAgentDashName } = require('./path-utils');
5
+
6
+ /**
7
+ * Generates launcher command files for each agent
8
+ * Similar to WorkflowCommandGenerator but for agents
9
+ */
10
+ class AgentCommandGenerator {
11
+ constructor(bmadFolderName = 'bmad') {
12
+ this.templatePath = path.join(__dirname, '../templates/agent-command-template.md');
13
+ this.bmadFolderName = bmadFolderName;
14
+ }
15
+
16
+ /**
17
+ * Collect agent artifacts for IDE installation
18
+ * @param {string} bmadDir - BMAD installation directory
19
+ * @param {Array} selectedModules - Modules to include
20
+ * @returns {Object} Artifacts array with metadata
21
+ */
22
+ async collectAgentArtifacts(bmadDir, selectedModules = []) {
23
+ const { getAgentsFromBmad } = require('./bmad-artifacts');
24
+
25
+ // Get agents from INSTALLED bmad/ directory
26
+ const agents = await getAgentsFromBmad(bmadDir, selectedModules);
27
+
28
+ const artifacts = [];
29
+
30
+ for (const agent of agents) {
31
+ const launcherContent = await this.generateLauncherContent(agent);
32
+ // Use relativePath if available (for nested agents), otherwise just name with .md
33
+ const agentPathInModule = agent.relativePath || `${agent.name}.md`;
34
+ // Calculate the relative agent path (e.g., bmm/agents/pm.md)
35
+ let agentRelPath = agent.path || '';
36
+ // Normalize path separators for cross-platform compatibility
37
+ agentRelPath = agentRelPath.replaceAll('\\', '/');
38
+ // Remove _bmad/ prefix if present to get relative path from project root
39
+ // Handle both absolute paths (/path/to/_bmad/...) and relative paths (_bmad/...)
40
+ if (agentRelPath.includes('_bmad/')) {
41
+ const parts = agentRelPath.split(/_bmad\//);
42
+ if (parts.length > 1) {
43
+ agentRelPath = parts.slice(1).join('/');
44
+ }
45
+ }
46
+ artifacts.push({
47
+ type: 'agent-launcher',
48
+ name: agent.name,
49
+ description: agent.description || `${agent.name} agent`,
50
+ module: agent.module,
51
+ relativePath: path.join(agent.module, 'agents', agentPathInModule), // For command filename
52
+ agentPath: agentRelPath, // Relative path to actual agent file
53
+ content: launcherContent,
54
+ sourcePath: agent.path,
55
+ });
56
+ }
57
+
58
+ return {
59
+ artifacts,
60
+ counts: {
61
+ agents: agents.length,
62
+ },
63
+ };
64
+ }
65
+
66
+ /**
67
+ * Generate launcher content for an agent
68
+ * @param {Object} agent - Agent metadata
69
+ * @returns {string} Launcher file content
70
+ */
71
+ async generateLauncherContent(agent) {
72
+ // Load the template
73
+ const template = await fs.readFile(this.templatePath, 'utf8');
74
+
75
+ // Replace template variables
76
+ // Use relativePath if available (for nested agents), otherwise just name with .md
77
+ const agentPathInModule = agent.relativePath || `${agent.name}.md`;
78
+ return template
79
+ .replaceAll('{{name}}', agent.name)
80
+ .replaceAll('{{module}}', agent.module)
81
+ .replaceAll('{{path}}', agentPathInModule)
82
+ .replaceAll('{{description}}', agent.description || `${agent.name} agent`)
83
+ .replaceAll('_bmad', this.bmadFolderName)
84
+ .replaceAll('_bmad', '_bmad');
85
+ }
86
+
87
+ /**
88
+ * Write agent launcher artifacts to IDE commands directory
89
+ * @param {string} baseCommandsDir - Base commands directory for the IDE
90
+ * @param {Array} artifacts - Agent launcher artifacts
91
+ * @returns {number} Count of launchers written
92
+ */
93
+ async writeAgentLaunchers(baseCommandsDir, artifacts) {
94
+ let writtenCount = 0;
95
+
96
+ for (const artifact of artifacts) {
97
+ if (artifact.type === 'agent-launcher') {
98
+ const moduleAgentsDir = path.join(baseCommandsDir, artifact.module, 'agents');
99
+ await fs.ensureDir(moduleAgentsDir);
100
+
101
+ const launcherPath = path.join(moduleAgentsDir, `${artifact.name}.md`);
102
+ await fs.writeFile(launcherPath, artifact.content);
103
+ writtenCount++;
104
+ }
105
+ }
106
+
107
+ return writtenCount;
108
+ }
109
+
110
+ /**
111
+ * Write agent launcher artifacts using underscore format (Windows-compatible)
112
+ * Creates flat files like: bmad_bmm_pm.md
113
+ *
114
+ * @param {string} baseCommandsDir - Base commands directory for the IDE
115
+ * @param {Array} artifacts - Agent launcher artifacts
116
+ * @returns {number} Count of launchers written
117
+ */
118
+ async writeColonArtifacts(baseCommandsDir, artifacts) {
119
+ let writtenCount = 0;
120
+
121
+ for (const artifact of artifacts) {
122
+ if (artifact.type === 'agent-launcher') {
123
+ // Convert relativePath to underscore format: bmm/agents/pm.md → bmad_bmm_pm.md
124
+ const flatName = toColonPath(artifact.relativePath);
125
+ const launcherPath = path.join(baseCommandsDir, flatName);
126
+ await fs.ensureDir(path.dirname(launcherPath));
127
+ await fs.writeFile(launcherPath, artifact.content);
128
+ writtenCount++;
129
+ }
130
+ }
131
+
132
+ return writtenCount;
133
+ }
134
+
135
+ /**
136
+ * Write agent launcher artifacts using dash format (NEW STANDARD)
137
+ * Creates flat files like: bmad-agent-bmm-pm.md
138
+ *
139
+ * The bmad-agent- prefix distinguishes agents from workflows/tasks/tools.
140
+ *
141
+ * @param {string} baseCommandsDir - Base commands directory for the IDE
142
+ * @param {Array} artifacts - Agent launcher artifacts
143
+ * @returns {number} Count of launchers written
144
+ */
145
+ async writeDashArtifacts(baseCommandsDir, artifacts) {
146
+ let writtenCount = 0;
147
+
148
+ for (const artifact of artifacts) {
149
+ if (artifact.type === 'agent-launcher') {
150
+ // Convert relativePath to dash format: bmm/agents/pm.md → bmad-agent-bmm-pm.md
151
+ const flatName = toDashPath(artifact.relativePath);
152
+ const launcherPath = path.join(baseCommandsDir, flatName);
153
+ await fs.ensureDir(path.dirname(launcherPath));
154
+ await fs.writeFile(launcherPath, artifact.content);
155
+ writtenCount++;
156
+ }
157
+ }
158
+
159
+ return writtenCount;
160
+ }
161
+
162
+ /**
163
+ * Get the custom agent name in underscore format (Windows-compatible)
164
+ * @param {string} agentName - Custom agent name
165
+ * @returns {string} Underscore-formatted filename
166
+ */
167
+ getCustomAgentColonName(agentName) {
168
+ return customAgentColonName(agentName);
169
+ }
170
+
171
+ /**
172
+ * Get the custom agent name in underscore format (Windows-compatible)
173
+ * @param {string} agentName - Custom agent name
174
+ * @returns {string} Underscore-formatted filename
175
+ */
176
+ getCustomAgentDashName(agentName) {
177
+ return customAgentDashName(agentName);
178
+ }
179
+ }
180
+
181
+ module.exports = { AgentCommandGenerator };
@@ -0,0 +1,163 @@
1
+ const path = require('node:path');
2
+ const fs = require('fs-extra');
3
+
4
+ /**
5
+ * Helpers for gathering BMAD agents/tasks from the installed tree.
6
+ * Shared by installers that need Claude-style exports.
7
+ */
8
+ async function getAgentsFromBmad(bmadDir, selectedModules = []) {
9
+ const agents = [];
10
+
11
+ // Get core agents
12
+ if (await fs.pathExists(path.join(bmadDir, 'core', 'agents'))) {
13
+ const coreAgents = await getAgentsFromDir(path.join(bmadDir, 'core', 'agents'), 'core');
14
+ agents.push(...coreAgents);
15
+ }
16
+
17
+ // Get module agents
18
+ for (const moduleName of selectedModules) {
19
+ const agentsPath = path.join(bmadDir, moduleName, 'agents');
20
+
21
+ if (await fs.pathExists(agentsPath)) {
22
+ const moduleAgents = await getAgentsFromDir(agentsPath, moduleName);
23
+ agents.push(...moduleAgents);
24
+ }
25
+ }
26
+
27
+ // Get standalone agents from bmad/agents/ directory
28
+ const standaloneAgentsDir = path.join(bmadDir, 'agents');
29
+ if (await fs.pathExists(standaloneAgentsDir)) {
30
+ const agentDirs = await fs.readdir(standaloneAgentsDir, { withFileTypes: true });
31
+
32
+ for (const agentDir of agentDirs) {
33
+ if (!agentDir.isDirectory()) continue;
34
+
35
+ const agentDirPath = path.join(standaloneAgentsDir, agentDir.name);
36
+ const agentFiles = await fs.readdir(agentDirPath);
37
+
38
+ for (const file of agentFiles) {
39
+ if (!file.endsWith('.md')) continue;
40
+ if (file.includes('.customize.')) continue;
41
+
42
+ const filePath = path.join(agentDirPath, file);
43
+ const content = await fs.readFile(filePath, 'utf8');
44
+
45
+ if (content.includes('localskip="true"')) continue;
46
+
47
+ agents.push({
48
+ path: filePath,
49
+ name: file.replace('.md', ''),
50
+ module: 'standalone', // Mark as standalone agent
51
+ });
52
+ }
53
+ }
54
+ }
55
+
56
+ return agents;
57
+ }
58
+
59
+ async function getTasksFromBmad(bmadDir, selectedModules = []) {
60
+ const tasks = [];
61
+
62
+ if (await fs.pathExists(path.join(bmadDir, 'core', 'tasks'))) {
63
+ const coreTasks = await getTasksFromDir(path.join(bmadDir, 'core', 'tasks'), 'core');
64
+ tasks.push(...coreTasks);
65
+ }
66
+
67
+ for (const moduleName of selectedModules) {
68
+ const tasksPath = path.join(bmadDir, moduleName, 'tasks');
69
+
70
+ if (await fs.pathExists(tasksPath)) {
71
+ const moduleTasks = await getTasksFromDir(tasksPath, moduleName);
72
+ tasks.push(...moduleTasks);
73
+ }
74
+ }
75
+
76
+ return tasks;
77
+ }
78
+
79
+ async function getAgentsFromDir(dirPath, moduleName, relativePath = '') {
80
+ const agents = [];
81
+
82
+ if (!(await fs.pathExists(dirPath))) {
83
+ return agents;
84
+ }
85
+
86
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
87
+
88
+ for (const entry of entries) {
89
+ // Skip if entry.name is undefined or not a string
90
+ if (!entry.name || typeof entry.name !== 'string') {
91
+ continue;
92
+ }
93
+
94
+ const fullPath = path.join(dirPath, entry.name);
95
+ const newRelativePath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
96
+
97
+ if (entry.isDirectory()) {
98
+ // Recurse into subdirectories
99
+ const subDirAgents = await getAgentsFromDir(fullPath, moduleName, newRelativePath);
100
+ agents.push(...subDirAgents);
101
+ } else if (entry.name.endsWith('.md')) {
102
+ // Skip README files and other non-agent files
103
+ if (entry.name.toLowerCase() === 'readme.md' || entry.name.toLowerCase().startsWith('readme-')) {
104
+ continue;
105
+ }
106
+
107
+ if (entry.name.includes('.customize.')) {
108
+ continue;
109
+ }
110
+
111
+ const content = await fs.readFile(fullPath, 'utf8');
112
+
113
+ if (content.includes('localskip="true"')) {
114
+ continue;
115
+ }
116
+
117
+ // Only include files that have agent-specific content (compiled agents have <agent> tag)
118
+ if (!content.includes('<agent')) {
119
+ continue;
120
+ }
121
+
122
+ agents.push({
123
+ path: fullPath,
124
+ name: entry.name.replace('.md', ''),
125
+ module: moduleName,
126
+ relativePath: newRelativePath, // Keep the .md extension for the full path
127
+ });
128
+ }
129
+ }
130
+
131
+ return agents;
132
+ }
133
+
134
+ async function getTasksFromDir(dirPath, moduleName) {
135
+ const tasks = [];
136
+
137
+ if (!(await fs.pathExists(dirPath))) {
138
+ return tasks;
139
+ }
140
+
141
+ const files = await fs.readdir(dirPath);
142
+
143
+ for (const file of files) {
144
+ if (!file.endsWith('.md')) {
145
+ continue;
146
+ }
147
+
148
+ tasks.push({
149
+ path: path.join(dirPath, file),
150
+ name: file.replace('.md', ''),
151
+ module: moduleName,
152
+ });
153
+ }
154
+
155
+ return tasks;
156
+ }
157
+
158
+ module.exports = {
159
+ getAgentsFromBmad,
160
+ getTasksFromBmad,
161
+ getAgentsFromDir,
162
+ getTasksFromDir,
163
+ };
@@ -0,0 +1,136 @@
1
+ const path = require('node:path');
2
+ const fs = require('fs-extra');
3
+ const yaml = require('yaml');
4
+ const { glob } = require('glob');
5
+ const { getSourcePath } = require('../../../../lib/project-root');
6
+
7
+ async function loadModuleInjectionConfig(handler, moduleName) {
8
+ const sourceModulesPath = getSourcePath('modules');
9
+ const handlerBaseDir = path.join(sourceModulesPath, moduleName, 'sub-modules', handler);
10
+ const configPath = path.join(handlerBaseDir, 'injections.yaml');
11
+
12
+ if (!(await fs.pathExists(configPath))) {
13
+ return null;
14
+ }
15
+
16
+ const configContent = await fs.readFile(configPath, 'utf8');
17
+ const config = yaml.parse(configContent) || {};
18
+
19
+ return {
20
+ config,
21
+ handlerBaseDir,
22
+ configPath,
23
+ };
24
+ }
25
+
26
+ function shouldApplyInjection(injection, subagentChoices) {
27
+ if (!subagentChoices || subagentChoices.install === 'none') {
28
+ return false;
29
+ }
30
+
31
+ if (subagentChoices.install === 'all') {
32
+ return true;
33
+ }
34
+
35
+ if (subagentChoices.install === 'selective') {
36
+ const selected = subagentChoices.selected || [];
37
+
38
+ if (injection.requires === 'any' && selected.length > 0) {
39
+ return true;
40
+ }
41
+
42
+ if (injection.requires) {
43
+ const required = `${injection.requires}.md`;
44
+ return selected.includes(required);
45
+ }
46
+
47
+ if (injection.point) {
48
+ const selectedNames = selected.map((file) => file.replace('.md', ''));
49
+ return selectedNames.some((name) => injection.point.includes(name));
50
+ }
51
+ }
52
+
53
+ return false;
54
+ }
55
+
56
+ function filterAgentInstructions(content, selectedFiles) {
57
+ if (!selectedFiles || selectedFiles.length === 0) {
58
+ return '';
59
+ }
60
+
61
+ const selectedAgents = selectedFiles.map((file) => file.replace('.md', ''));
62
+ const lines = content.split('\n');
63
+ const filteredLines = [];
64
+
65
+ for (const line of lines) {
66
+ if (line.includes('<llm') || line.includes('</llm>')) {
67
+ filteredLines.push(line);
68
+ } else if (line.includes('subagent')) {
69
+ let shouldInclude = false;
70
+ for (const agent of selectedAgents) {
71
+ if (line.includes(agent)) {
72
+ shouldInclude = true;
73
+ break;
74
+ }
75
+ }
76
+
77
+ if (shouldInclude) {
78
+ filteredLines.push(line);
79
+ }
80
+ } else if (line.includes('When creating PRDs') || line.includes('ACTIVELY delegate')) {
81
+ filteredLines.push(line);
82
+ }
83
+ }
84
+
85
+ if (filteredLines.length > 2) {
86
+ return filteredLines.join('\n');
87
+ }
88
+
89
+ return '';
90
+ }
91
+
92
+ async function resolveSubagentFiles(handlerBaseDir, subagentConfig, subagentChoices) {
93
+ if (!subagentConfig || !subagentConfig.files) {
94
+ return [];
95
+ }
96
+
97
+ if (!subagentChoices || subagentChoices.install === 'none') {
98
+ return [];
99
+ }
100
+
101
+ let filesToCopy = subagentConfig.files;
102
+
103
+ if (subagentChoices.install === 'selective') {
104
+ filesToCopy = subagentChoices.selected || [];
105
+ }
106
+
107
+ const sourceDir = path.join(handlerBaseDir, subagentConfig.source || '');
108
+ const resolved = [];
109
+
110
+ for (const file of filesToCopy) {
111
+ // Use forward slashes for glob pattern (works on both Windows and Unix)
112
+ // Convert backslashes to forward slashes for glob compatibility
113
+ const normalizedSourceDir = sourceDir.replaceAll('\\', '/');
114
+ const pattern = `${normalizedSourceDir}/**/${file}`;
115
+ const matches = await glob(pattern);
116
+
117
+ if (matches.length > 0) {
118
+ const absolutePath = matches[0];
119
+ resolved.push({
120
+ file,
121
+ absolutePath,
122
+ relativePath: path.relative(sourceDir, absolutePath),
123
+ sourceDir,
124
+ });
125
+ }
126
+ }
127
+
128
+ return resolved;
129
+ }
130
+
131
+ module.exports = {
132
+ loadModuleInjectionConfig,
133
+ shouldApplyInjection,
134
+ filterAgentInstructions,
135
+ resolveSubagentFiles,
136
+ };