bmad-stella 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 (398) hide show
  1. package/.github/FORK_GUIDE.md +106 -0
  2. package/.github/FUNDING.yaml +15 -0
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
  5. package/.github/workflows/discord.yaml +26 -0
  6. package/.github/workflows/format-check.yaml +44 -0
  7. package/.github/workflows/manual-release.yaml +174 -0
  8. package/.github/workflows/pr-validation.yaml +55 -0
  9. package/.husky/pre-commit +3 -0
  10. package/.vscode/settings.json +69 -0
  11. package/CHANGELOG.md +686 -0
  12. package/CONTRIBUTING.md +243 -0
  13. package/LICENSE +26 -0
  14. package/PR-opencode-agents-generator.md +40 -0
  15. package/README.md +159 -0
  16. package/REVIEWER-AGENT-SIMPLE.md +66 -0
  17. package/bmad-core/agent-teams/team-all.yaml +15 -0
  18. package/bmad-core/agent-teams/team-fullstack.yaml +19 -0
  19. package/bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
  20. package/bmad-core/agent-teams/team-no-ui.yaml +14 -0
  21. package/bmad-core/agents/analyst.md +84 -0
  22. package/bmad-core/agents/architect.md +85 -0
  23. package/bmad-core/agents/bmad-master.md +110 -0
  24. package/bmad-core/agents/bmad-orchestrator.md +147 -0
  25. package/bmad-core/agents/dev.md +96 -0
  26. package/bmad-core/agents/planner.md +86 -0
  27. package/bmad-core/agents/pm.md +84 -0
  28. package/bmad-core/agents/po.md +79 -0
  29. package/bmad-core/agents/qa.md +80 -0
  30. package/bmad-core/agents/reviewer.md +61 -0
  31. package/bmad-core/agents/sm.md +65 -0
  32. package/bmad-core/agents/ux-expert.md +69 -0
  33. package/bmad-core/checklists/architect-checklist.md +440 -0
  34. package/bmad-core/checklists/change-checklist.md +184 -0
  35. package/bmad-core/checklists/planner-validation-checklist.md +167 -0
  36. package/bmad-core/checklists/pm-checklist.md +372 -0
  37. package/bmad-core/checklists/po-master-checklist.md +434 -0
  38. package/bmad-core/checklists/story-dod-checklist.md +96 -0
  39. package/bmad-core/checklists/story-draft-checklist.md +155 -0
  40. package/bmad-core/checklists/task-dod-checklist.md +110 -0
  41. package/bmad-core/core-config.yaml +26 -0
  42. package/bmad-core/data/bmad-kb.md +809 -0
  43. package/bmad-core/data/brainstorming-techniques.md +38 -0
  44. package/bmad-core/data/elicitation-methods.md +156 -0
  45. package/bmad-core/data/technical-preferences.md +5 -0
  46. package/bmad-core/data/test-levels-framework.md +148 -0
  47. package/bmad-core/data/test-priorities-matrix.md +174 -0
  48. package/bmad-core/tasks/advanced-elicitation.md +119 -0
  49. package/bmad-core/tasks/apply-qa-fixes.md +150 -0
  50. package/bmad-core/tasks/brownfield-create-epic.md +162 -0
  51. package/bmad-core/tasks/brownfield-create-story.md +149 -0
  52. package/bmad-core/tasks/correct-course.md +72 -0
  53. package/bmad-core/tasks/create-brownfield-story.md +314 -0
  54. package/bmad-core/tasks/create-deep-research-prompt.md +280 -0
  55. package/bmad-core/tasks/create-implementation-plan.md +298 -0
  56. package/bmad-core/tasks/create-next-story.md +114 -0
  57. package/bmad-core/tasks/decompose-task.md +162 -0
  58. package/bmad-core/tasks/document-project.md +345 -0
  59. package/bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
  60. package/bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
  61. package/bmad-core/tasks/identify-dependencies.md +347 -0
  62. package/bmad-core/tasks/implement-test.md +188 -0
  63. package/bmad-core/tasks/index-docs.md +175 -0
  64. package/bmad-core/tasks/kb-mode-interaction.md +77 -0
  65. package/bmad-core/tasks/nfr-assess.md +345 -0
  66. package/bmad-core/tasks/qa-gate.md +163 -0
  67. package/bmad-core/tasks/review-and-improve.md +95 -0
  68. package/bmad-core/tasks/review-story.md +316 -0
  69. package/bmad-core/tasks/risk-profile.md +355 -0
  70. package/bmad-core/tasks/shard-doc.md +187 -0
  71. package/bmad-core/tasks/test-design.md +176 -0
  72. package/bmad-core/tasks/trace-requirements.md +266 -0
  73. package/bmad-core/tasks/validate-next-story.md +136 -0
  74. package/bmad-core/templates/architecture-tmpl.yaml +651 -0
  75. package/bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  76. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
  77. package/bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
  78. package/bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
  79. package/bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
  80. package/bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
  81. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
  82. package/bmad-core/templates/implementation-plan-tmpl.yaml +224 -0
  83. package/bmad-core/templates/market-research-tmpl.yaml +253 -0
  84. package/bmad-core/templates/prd-tmpl.yaml +203 -0
  85. package/bmad-core/templates/project-brief-tmpl.yaml +222 -0
  86. package/bmad-core/templates/qa-gate-tmpl.yaml +103 -0
  87. package/bmad-core/templates/story-tmpl.yaml +138 -0
  88. package/bmad-core/workflows/brownfield-fullstack.yaml +298 -0
  89. package/bmad-core/workflows/brownfield-service.yaml +188 -0
  90. package/bmad-core/workflows/brownfield-ui.yaml +198 -0
  91. package/bmad-core/workflows/greenfield-fullstack.yaml +241 -0
  92. package/bmad-core/workflows/greenfield-service.yaml +207 -0
  93. package/bmad-core/workflows/greenfield-ui.yaml +236 -0
  94. package/common/tasks/create-doc.md +103 -0
  95. package/common/tasks/execute-checklist.md +88 -0
  96. package/common/utils/bmad-doc-template.md +327 -0
  97. package/common/utils/workflow-management.md +71 -0
  98. package/dist/agents/analyst.txt +2907 -0
  99. package/dist/agents/architect.txt +3567 -0
  100. package/dist/agents/bmad-master.txt +8828 -0
  101. package/dist/agents/bmad-orchestrator.txt +1520 -0
  102. package/dist/agents/dev.txt +576 -0
  103. package/dist/agents/pm.txt +2226 -0
  104. package/dist/agents/po.txt +1359 -0
  105. package/dist/agents/qa.txt +2001 -0
  106. package/dist/agents/sm.txt +667 -0
  107. package/dist/agents/ux-expert.txt +703 -0
  108. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2386 -0
  109. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +1627 -0
  110. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +822 -0
  111. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +11008 -0
  112. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +4031 -0
  113. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3717 -0
  114. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +456 -0
  115. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +982 -0
  116. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +15450 -0
  117. package/dist/expansion-packs/bmad-creative-writing/agents/beta-reader.txt +921 -0
  118. package/dist/expansion-packs/bmad-creative-writing/agents/book-critic.txt +81 -0
  119. package/dist/expansion-packs/bmad-creative-writing/agents/character-psychologist.txt +886 -0
  120. package/dist/expansion-packs/bmad-creative-writing/agents/cover-designer.txt +85 -0
  121. package/dist/expansion-packs/bmad-creative-writing/agents/dialog-specialist.txt +903 -0
  122. package/dist/expansion-packs/bmad-creative-writing/agents/editor.txt +837 -0
  123. package/dist/expansion-packs/bmad-creative-writing/agents/genre-specialist.txt +989 -0
  124. package/dist/expansion-packs/bmad-creative-writing/agents/narrative-designer.txt +888 -0
  125. package/dist/expansion-packs/bmad-creative-writing/agents/plot-architect.txt +1173 -0
  126. package/dist/expansion-packs/bmad-creative-writing/agents/world-builder.txt +914 -0
  127. package/dist/expansion-packs/bmad-creative-writing/teams/agent-team.txt +6511 -0
  128. package/dist/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.txt +1513 -0
  129. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-analyst.txt +3190 -0
  130. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-architect.txt +4499 -0
  131. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-designer.txt +3925 -0
  132. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-developer.txt +666 -0
  133. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-pm.txt +2381 -0
  134. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-po.txt +1612 -0
  135. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-qa.txt +1741 -0
  136. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-sm.txt +1208 -0
  137. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.txt +958 -0
  138. package/dist/expansion-packs/bmad-godot-game-dev/teams/godot-game-team.txt +27717 -0
  139. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2087 -0
  140. package/dist/teams/team-all.txt +12911 -0
  141. package/dist/teams/team-fullstack.txt +10477 -0
  142. package/dist/teams/team-ide-minimal.txt +5299 -0
  143. package/dist/teams/team-no-ui.txt +9029 -0
  144. package/docs/GUIDING-PRINCIPLES.md +91 -0
  145. package/docs/core-architecture.md +219 -0
  146. package/docs/enhanced-ide-development-workflow.md +248 -0
  147. package/docs/expansion-packs.md +200 -0
  148. package/docs/flattener.md +91 -0
  149. package/docs/how-to-contribute-with-pull-requests.md +158 -0
  150. package/docs/stella-user-guide.md +637 -0
  151. package/docs/user-guide.md +577 -0
  152. package/docs/versioning-and-releases.md +155 -0
  153. package/docs/versions.md +48 -0
  154. package/docs/working-in-the-brownfield.md +606 -0
  155. package/eslint.config.mjs +119 -0
  156. package/expansion-packs/README.md +3 -0
  157. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +14 -0
  158. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +73 -0
  159. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +80 -0
  160. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +66 -0
  161. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +203 -0
  162. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +162 -0
  163. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +9 -0
  164. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +252 -0
  165. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +649 -0
  166. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +112 -0
  167. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +218 -0
  168. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +292 -0
  169. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +614 -0
  170. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +357 -0
  171. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +344 -0
  172. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +254 -0
  173. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
  174. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +184 -0
  175. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +176 -0
  176. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +15 -0
  177. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +82 -0
  178. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +79 -0
  179. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +80 -0
  180. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +67 -0
  181. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +393 -0
  182. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +205 -0
  183. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +203 -0
  184. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +126 -0
  185. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +7 -0
  186. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +771 -0
  187. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +588 -0
  188. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +112 -0
  189. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +143 -0
  190. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +186 -0
  191. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +292 -0
  192. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +202 -0
  193. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +1031 -0
  194. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +357 -0
  195. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +706 -0
  196. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +257 -0
  197. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
  198. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +184 -0
  199. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +176 -0
  200. package/expansion-packs/bmad-creative-writing/README.md +146 -0
  201. package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +20 -0
  202. package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +94 -0
  203. package/expansion-packs/bmad-creative-writing/agents/book-critic.md +40 -0
  204. package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +93 -0
  205. package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +46 -0
  206. package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +92 -0
  207. package/expansion-packs/bmad-creative-writing/agents/editor.md +93 -0
  208. package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +95 -0
  209. package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +93 -0
  210. package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +95 -0
  211. package/expansion-packs/bmad-creative-writing/agents/world-builder.md +94 -0
  212. package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +23 -0
  213. package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +23 -0
  214. package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +23 -0
  215. package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +23 -0
  216. package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +21 -0
  217. package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +23 -0
  218. package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +23 -0
  219. package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +22 -0
  220. package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +22 -0
  221. package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +23 -0
  222. package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +23 -0
  223. package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +25 -0
  224. package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +23 -0
  225. package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +23 -0
  226. package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +23 -0
  227. package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +23 -0
  228. package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +59 -0
  229. package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +23 -0
  230. package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +23 -0
  231. package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +23 -0
  232. package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +22 -0
  233. package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +23 -0
  234. package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +23 -0
  235. package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +23 -0
  236. package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +23 -0
  237. package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +23 -0
  238. package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +23 -0
  239. package/expansion-packs/bmad-creative-writing/config.yaml +12 -0
  240. package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +209 -0
  241. package/expansion-packs/bmad-creative-writing/data/story-structures.md +67 -0
  242. package/expansion-packs/bmad-creative-writing/docs/brief.md +212 -0
  243. package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +119 -0
  244. package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +23 -0
  245. package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +67 -0
  246. package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +29 -0
  247. package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +23 -0
  248. package/expansion-packs/bmad-creative-writing/tasks/build-world.md +24 -0
  249. package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +22 -0
  250. package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +103 -0
  251. package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +26 -0
  252. package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +26 -0
  253. package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +24 -0
  254. package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +88 -0
  255. package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +23 -0
  256. package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +23 -0
  257. package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +23 -0
  258. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +25 -0
  259. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +26 -0
  260. package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +23 -0
  261. package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +25 -0
  262. package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +23 -0
  263. package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +24 -0
  264. package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +23 -0
  265. package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +22 -0
  266. package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +23 -0
  267. package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +64 -0
  268. package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +97 -0
  269. package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +82 -0
  270. package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
  271. package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +98 -0
  272. package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +78 -0
  273. package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +55 -0
  274. package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
  275. package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +89 -0
  276. package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +218 -0
  277. package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +56 -0
  278. package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +50 -0
  279. package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
  280. package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +91 -0
  281. package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +85 -0
  282. package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +78 -0
  283. package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +64 -0
  284. package/expansion-packs/bmad-godot-game-dev/README.md +244 -0
  285. package/expansion-packs/bmad-godot-game-dev/agent-teams/godot-game-team.yaml +18 -0
  286. package/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.md +147 -0
  287. package/expansion-packs/bmad-godot-game-dev/agents/game-analyst.md +84 -0
  288. package/expansion-packs/bmad-godot-game-dev/agents/game-architect.md +146 -0
  289. package/expansion-packs/bmad-godot-game-dev/agents/game-designer.md +78 -0
  290. package/expansion-packs/bmad-godot-game-dev/agents/game-developer.md +124 -0
  291. package/expansion-packs/bmad-godot-game-dev/agents/game-pm.md +82 -0
  292. package/expansion-packs/bmad-godot-game-dev/agents/game-po.md +115 -0
  293. package/expansion-packs/bmad-godot-game-dev/agents/game-qa.md +159 -0
  294. package/expansion-packs/bmad-godot-game-dev/agents/game-sm.md +66 -0
  295. package/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.md +75 -0
  296. package/expansion-packs/bmad-godot-game-dev/checklists/game-architect-checklist.md +377 -0
  297. package/expansion-packs/bmad-godot-game-dev/checklists/game-change-checklist.md +250 -0
  298. package/expansion-packs/bmad-godot-game-dev/checklists/game-design-checklist.md +225 -0
  299. package/expansion-packs/bmad-godot-game-dev/checklists/game-po-checklist.md +448 -0
  300. package/expansion-packs/bmad-godot-game-dev/checklists/game-story-dod-checklist.md +202 -0
  301. package/expansion-packs/bmad-godot-game-dev/config.yaml +30 -0
  302. package/expansion-packs/bmad-godot-game-dev/data/bmad-kb.md +811 -0
  303. package/expansion-packs/bmad-godot-game-dev/data/brainstorming-techniques.md +36 -0
  304. package/expansion-packs/bmad-godot-game-dev/data/development-guidelines.md +893 -0
  305. package/expansion-packs/bmad-godot-game-dev/data/elicitation-methods.md +156 -0
  306. package/expansion-packs/bmad-godot-game-dev/data/technical-preferences.md +3 -0
  307. package/expansion-packs/bmad-godot-game-dev/tasks/advanced-elicitation.md +110 -0
  308. package/expansion-packs/bmad-godot-game-dev/tasks/apply-qa-fixes.md +224 -0
  309. package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-epic.md +162 -0
  310. package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-story.md +149 -0
  311. package/expansion-packs/bmad-godot-game-dev/tasks/correct-course-game.md +159 -0
  312. package/expansion-packs/bmad-godot-game-dev/tasks/create-deep-research-prompt.md +278 -0
  313. package/expansion-packs/bmad-godot-game-dev/tasks/create-doc.md +103 -0
  314. package/expansion-packs/bmad-godot-game-dev/tasks/create-game-story.md +202 -0
  315. package/expansion-packs/bmad-godot-game-dev/tasks/document-project.md +343 -0
  316. package/expansion-packs/bmad-godot-game-dev/tasks/execute-checklist.md +88 -0
  317. package/expansion-packs/bmad-godot-game-dev/tasks/facilitate-brainstorming-session.md +136 -0
  318. package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-epic.md +160 -0
  319. package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-story.md +147 -0
  320. package/expansion-packs/bmad-godot-game-dev/tasks/game-design-brainstorming.md +290 -0
  321. package/expansion-packs/bmad-godot-game-dev/tasks/game-risk-profile.md +368 -0
  322. package/expansion-packs/bmad-godot-game-dev/tasks/game-test-design.md +219 -0
  323. package/expansion-packs/bmad-godot-game-dev/tasks/generate-ai-frontend-prompt.md +51 -0
  324. package/expansion-packs/bmad-godot-game-dev/tasks/kb-mode-interaction.md +77 -0
  325. package/expansion-packs/bmad-godot-game-dev/tasks/review-game-story.md +364 -0
  326. package/expansion-packs/bmad-godot-game-dev/tasks/shard-doc.md +187 -0
  327. package/expansion-packs/bmad-godot-game-dev/tasks/validate-game-story.md +208 -0
  328. package/expansion-packs/bmad-godot-game-dev/templates/brainstorming-output-tmpl.yaml +156 -0
  329. package/expansion-packs/bmad-godot-game-dev/templates/brownfield-prd-tmpl.yaml +281 -0
  330. package/expansion-packs/bmad-godot-game-dev/templates/competitor-analysis-tmpl.yaml +306 -0
  331. package/expansion-packs/bmad-godot-game-dev/templates/game-architecture-tmpl.yaml +1111 -0
  332. package/expansion-packs/bmad-godot-game-dev/templates/game-brief-tmpl.yaml +356 -0
  333. package/expansion-packs/bmad-godot-game-dev/templates/game-design-doc-tmpl.yaml +724 -0
  334. package/expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml +209 -0
  335. package/expansion-packs/bmad-godot-game-dev/templates/game-qa-gate-tmpl.yaml +186 -0
  336. package/expansion-packs/bmad-godot-game-dev/templates/game-story-tmpl.yaml +406 -0
  337. package/expansion-packs/bmad-godot-game-dev/templates/game-ui-spec-tmpl.yaml +601 -0
  338. package/expansion-packs/bmad-godot-game-dev/templates/level-design-doc-tmpl.yaml +620 -0
  339. package/expansion-packs/bmad-godot-game-dev/templates/market-research-tmpl.yaml +418 -0
  340. package/expansion-packs/bmad-godot-game-dev/utils/bmad-doc-template.md +327 -0
  341. package/expansion-packs/bmad-godot-game-dev/utils/workflow-management.md +71 -0
  342. package/expansion-packs/bmad-godot-game-dev/workflows/game-dev-greenfield.yaml +245 -0
  343. package/expansion-packs/bmad-godot-game-dev/workflows/game-prototype.yaml +213 -0
  344. package/expansion-packs/bmad-infrastructure-devops/README.md +147 -0
  345. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +73 -0
  346. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +486 -0
  347. package/expansion-packs/bmad-infrastructure-devops/config.yaml +10 -0
  348. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +307 -0
  349. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +161 -0
  350. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +155 -0
  351. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +425 -0
  352. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +630 -0
  353. package/package.json +116 -0
  354. package/prettier.config.mjs +32 -0
  355. package/tools/bmad-npx-wrapper.js +39 -0
  356. package/tools/builders/web-builder.js +675 -0
  357. package/tools/bump-all-versions.js +115 -0
  358. package/tools/bump-expansion-version.js +90 -0
  359. package/tools/cli.js +152 -0
  360. package/tools/flattener/aggregate.js +76 -0
  361. package/tools/flattener/binary.js +80 -0
  362. package/tools/flattener/discovery.js +71 -0
  363. package/tools/flattener/files.js +35 -0
  364. package/tools/flattener/ignoreRules.js +178 -0
  365. package/tools/flattener/main.js +568 -0
  366. package/tools/flattener/projectRoot.js +206 -0
  367. package/tools/flattener/prompts.js +44 -0
  368. package/tools/flattener/stats.helpers.js +395 -0
  369. package/tools/flattener/stats.js +80 -0
  370. package/tools/flattener/test-matrix.js +413 -0
  371. package/tools/flattener/xml.js +88 -0
  372. package/tools/implement-fork-friendly-ci.sh +229 -0
  373. package/tools/installer/README.md +8 -0
  374. package/tools/installer/bin/bmad.js +633 -0
  375. package/tools/installer/config/ide-agent-config.yaml +58 -0
  376. package/tools/installer/config/install.config.yaml +184 -0
  377. package/tools/installer/lib/config-loader.js +257 -0
  378. package/tools/installer/lib/dependency-manager.js +383 -0
  379. package/tools/installer/lib/file-manager.js +394 -0
  380. package/tools/installer/lib/ide-base-setup.js +228 -0
  381. package/tools/installer/lib/ide-setup.js +2461 -0
  382. package/tools/installer/lib/installer.js +2094 -0
  383. package/tools/installer/lib/memory-profiler.js +225 -0
  384. package/tools/installer/lib/module-manager.js +114 -0
  385. package/tools/installer/lib/resource-locator.js +308 -0
  386. package/tools/installer/package.json +47 -0
  387. package/tools/lib/dependency-resolver.js +175 -0
  388. package/tools/lib/yaml-utils.js +29 -0
  389. package/tools/md-assets/web-agent-startup-instructions.md +39 -0
  390. package/tools/preview-release-notes.js +66 -0
  391. package/tools/setup-hooks.sh +37 -0
  392. package/tools/shared/bannerArt.js +105 -0
  393. package/tools/sync-installer-version.js +32 -0
  394. package/tools/sync-version.sh +23 -0
  395. package/tools/update-expansion-version.js +53 -0
  396. package/tools/upgraders/v3-to-v4-upgrader.js +673 -0
  397. package/tools/version-bump.js +94 -0
  398. package/tools/yaml-format.js +253 -0
@@ -0,0 +1,184 @@
1
+ installation-options:
2
+ full:
3
+ name: Complete BMad Core
4
+ description: Copy the entire .bmad-core folder with all agents, templates, and tools
5
+ action: copy-folder
6
+ source: bmad-core
7
+ single-agent:
8
+ name: Single Agent
9
+ description: Select and install a single agent with its dependencies
10
+ action: copy-agent
11
+ ide-configurations:
12
+ cursor:
13
+ name: Cursor
14
+ rule-dir: .cursor/rules/bmad/
15
+ format: multi-file
16
+ command-suffix: .mdc
17
+ instructions: |
18
+ # To use BMad agents in Cursor:
19
+ # 1. Press Ctrl+L (Cmd+L on Mac) to open the chat
20
+ # 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
21
+ # 3. The agent will adopt that persona for the conversation
22
+ claude-code:
23
+ name: Claude Code
24
+ rule-dir: .claude/commands/BMad/
25
+ format: multi-file
26
+ command-suffix: .md
27
+ instructions: |
28
+ # To use BMad agents in Claude Code:
29
+ # 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
30
+ # 2. Claude will switch to that agent's persona
31
+ iflow-cli:
32
+ name: iFlow CLI
33
+ rule-dir: .iflow/commands/BMad/
34
+ format: multi-file
35
+ command-suffix: .md
36
+ instructions: |
37
+ # To use BMad agents in iFlow CLI:
38
+ # 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
39
+ # 2. iFlow will switch to that agent's persona
40
+ crush:
41
+ name: Crush
42
+ rule-dir: .crush/commands/BMad/
43
+ format: multi-file
44
+ command-suffix: .md
45
+ instructions: |
46
+ # To use BMad agents in Crush:
47
+ # 1. Press CTRL + P and press TAB
48
+ # 2. Select agent or task
49
+ # 3. Crush will switch to that agent's persona / task
50
+ windsurf:
51
+ name: Windsurf
52
+ rule-dir: .windsurf/workflows/
53
+ format: multi-file
54
+ command-suffix: .md
55
+ instructions: |
56
+ # To use BMad agents in Windsurf:
57
+ # 1. Type /agent-name (e.g., "/dev", "/pm")
58
+ # 2. Windsurf will adopt that agent's persona
59
+ trae:
60
+ name: Trae
61
+ rule-dir: .trae/rules/
62
+ format: multi-file
63
+ command-suffix: .md
64
+ instructions: |
65
+ # To use BMad agents in Trae:
66
+ # 1. Type @agent-name (e.g., "@dev", "@pm", "@architect")
67
+ # 2. Trae will adopt that agent's persona
68
+ roo:
69
+ name: Roo Code
70
+ format: custom-modes
71
+ file: .roomodes
72
+ instructions: |
73
+ # To use BMad agents in Roo Code:
74
+ # 1. Open the mode selector (usually in the status bar)
75
+ # 2. Select any bmad-{agent} mode (e.g., "bmad-dev", "bmad-pm")
76
+ # 3. The AI will adopt that agent's full personality and capabilities
77
+ cline:
78
+ name: Cline
79
+ rule-dir: .clinerules/
80
+ format: multi-file
81
+ command-suffix: .md
82
+ instructions: |
83
+ # To use BMad agents in Cline:
84
+ # 1. Open the Cline chat panel in VS Code
85
+ # 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
86
+ # 3. The agent will adopt that persona for the conversation
87
+ # 4. Rules are stored in .clinerules/ directory in your project
88
+ gemini:
89
+ name: Gemini CLI
90
+ rule-dir: .gemini/commands/BMad/
91
+ format: multi-file
92
+ command-suffix: .toml
93
+ instructions: |
94
+ # To use BMad agents with the Gemini CLI:
95
+ # 1. The installer creates a `BMad` folder in `.gemini/commands`.
96
+ # 2. This adds custom commands for each agent and task.
97
+ # 3. Type /BMad:agents:<agent-name> (e.g., "/BMad:agents:dev", "/BMad:agents:pm") or /BMad:tasks:<task-name> (e.g., "/BMad:tasks:create-doc").
98
+ # 4. The agent will adopt that persona for the conversation or preform the task.
99
+ github-copilot:
100
+ name: Github Copilot
101
+ rule-dir: .github/chatmodes/
102
+ format: multi-file
103
+ command-suffix: .md
104
+ instructions: |
105
+ # To use BMad agents with Github Copilot:
106
+ # 1. The installer creates a .github/chatmodes/ directory in your project
107
+ # 2. Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
108
+ # 3. The agent will adopt that persona for the conversation
109
+ # 4. Requires VS Code 1.101+ with `chat.agent.enabled: true` in settings
110
+ # 5. Agent files are stored in .github/chatmodes/
111
+ # 6. Use `*help` to see available commands and agents
112
+ kilo:
113
+ name: Kilo Code
114
+ format: custom-modes
115
+ file: .kilocodemodes
116
+ instructions: |
117
+ # To use BMADâ„¢ agents in Kilo Code:
118
+ # 1. Open the mode selector in VSCode
119
+ # 2. Select a bmad-{agent} mode (e.g. "bmad-dev")
120
+ # 3. The AI adopts that agent's persona and capabilities
121
+
122
+ qwen-code:
123
+ name: Qwen Code
124
+ rule-dir: .qwen/bmad-method/
125
+ format: single-file
126
+ command-suffix: .md
127
+ instructions: |
128
+ # To use BMad agents with Qwen Code:
129
+ # 1. The installer creates a .qwen/bmad-method/ directory in your project.
130
+ # 2. It concatenates all agent files into a single QWEN.md file.
131
+ # 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
132
+ # 4. The Qwen Code CLI will automatically have the context for that agent.
133
+
134
+ auggie-cli:
135
+ name: Auggie CLI (Augment Code)
136
+ format: multi-location
137
+ locations:
138
+ user:
139
+ name: User Commands (Global)
140
+ rule-dir: ~/.augment/commands/bmad/
141
+ description: Available across all your projects (user-wide)
142
+ workspace:
143
+ name: Workspace Commands (Project)
144
+ rule-dir: ./.augment/commands/bmad/
145
+ description: Stored in your repository and shared with your team
146
+ command-suffix: .md
147
+ instructions: |
148
+ # To use BMad agents in Auggie CLI (Augment Code):
149
+ # 1. Type /bmad:agent-name (e.g., "/bmad:dev", "/bmad:pm", "/bmad:architect")
150
+ # 2. The agent will adopt that persona for the conversation
151
+ # 3. Commands are available based on your selected location(s)
152
+
153
+ codex:
154
+ name: Codex CLI
155
+ format: project-memory
156
+ file: AGENTS.md
157
+ instructions: |
158
+ # To use BMAD agents with Codex CLI:
159
+ # 1. The installer updates/creates AGENTS.md at your project root with BMAD agents and tasks.
160
+ # 2. Run `codex` in your project. Codex automatically reads AGENTS.md as project memory.
161
+ # 3. Mention agents in your prompt (e.g., "As dev, please implement ...") or reference tasks.
162
+ # 4. You can further customize global Codex behavior via ~/.codex/config.toml.
163
+
164
+ codex-web:
165
+ name: Codex Web Enabled
166
+ format: project-memory
167
+ file: AGENTS.md
168
+ instructions: |
169
+ # To enable BMAD agents for Codex Web (cloud):
170
+ # 1. The installer updates/creates AGENTS.md and ensures `.bmad-core` is NOT ignored by git.
171
+ # 2. Commit `.bmad-core/` and `AGENTS.md` to your repository.
172
+ # 3. Open the repo in Codex Web and reference agents naturally (e.g., "As dev, ...").
173
+ # 4. Re-run this installer to refresh agent sections when the core changes.
174
+
175
+ opencode:
176
+ name: OpenCode CLI
177
+ format: jsonc-config
178
+ file: opencode.jsonc
179
+ instructions: |
180
+ # To use BMAD agents with OpenCode CLI:
181
+ # 1. The installer creates/updates `opencode.jsonc` at your project root.
182
+ # 2. It ensures the BMAD core instructions file is referenced: `./.bmad-core/core-config.yaml`.
183
+ # 3. If an existing `opencode.json` or `opencode.jsonc` is present, it is preserved and only `instructions` are minimally merged.
184
+ # 4. Run `opencode` in this project to use your configured agents and commands.
@@ -0,0 +1,257 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('node:path');
3
+ const yaml = require('js-yaml');
4
+ const { extractYamlFromAgent } = require('../../lib/yaml-utils');
5
+
6
+ class ConfigLoader {
7
+ constructor() {
8
+ this.configPath = path.join(__dirname, '..', 'config', 'install.config.yaml');
9
+ this.config = null;
10
+ }
11
+
12
+ async load() {
13
+ if (this.config) return this.config;
14
+
15
+ try {
16
+ const configContent = await fs.readFile(this.configPath, 'utf8');
17
+ this.config = yaml.load(configContent);
18
+ return this.config;
19
+ } catch (error) {
20
+ throw new Error(`Failed to load configuration: ${error.message}`);
21
+ }
22
+ }
23
+
24
+ async getInstallationOptions() {
25
+ const config = await this.load();
26
+ return config['installation-options'] || {};
27
+ }
28
+
29
+ async getAvailableAgents() {
30
+ const agentsDir = path.join(this.getBmadCorePath(), 'agents');
31
+
32
+ try {
33
+ const entries = await fs.readdir(agentsDir, { withFileTypes: true });
34
+ const agents = [];
35
+
36
+ for (const entry of entries) {
37
+ if (entry.isFile() && entry.name.endsWith('.md')) {
38
+ const agentPath = path.join(agentsDir, entry.name);
39
+ const agentId = path.basename(entry.name, '.md');
40
+
41
+ try {
42
+ const agentContent = await fs.readFile(agentPath, 'utf8');
43
+
44
+ // Extract YAML block from agent file
45
+ const yamlContentText = extractYamlFromAgent(agentContent);
46
+ if (yamlContentText) {
47
+ const yamlContent = yaml.load(yamlContentText);
48
+ const agentConfig = yamlContent.agent || {};
49
+
50
+ agents.push({
51
+ id: agentId,
52
+ name: agentConfig.title || agentConfig.name || agentId,
53
+ file: `bmad-core/agents/${entry.name}`,
54
+ description: agentConfig.whenToUse || 'No description available',
55
+ });
56
+ }
57
+ } catch (error) {
58
+ console.warn(`Failed to read agent ${entry.name}: ${error.message}`);
59
+ }
60
+ }
61
+ }
62
+
63
+ // Sort agents by name for consistent display
64
+ agents.sort((a, b) => a.name.localeCompare(b.name));
65
+
66
+ return agents;
67
+ } catch (error) {
68
+ console.warn(`Failed to read agents directory: ${error.message}`);
69
+ return [];
70
+ }
71
+ }
72
+
73
+ async getAvailableExpansionPacks() {
74
+ const expansionPacksDir = path.join(this.getBmadCorePath(), '..', 'expansion-packs');
75
+
76
+ try {
77
+ const entries = await fs.readdir(expansionPacksDir, { withFileTypes: true });
78
+ const expansionPacks = [];
79
+
80
+ for (const entry of entries) {
81
+ if (entry.isDirectory() && !entry.name.startsWith('.')) {
82
+ const packPath = path.join(expansionPacksDir, entry.name);
83
+ const configPath = path.join(packPath, 'config.yaml');
84
+
85
+ try {
86
+ // Read config.yaml
87
+ const configContent = await fs.readFile(configPath, 'utf8');
88
+ const config = yaml.load(configContent);
89
+
90
+ expansionPacks.push({
91
+ id: entry.name,
92
+ name: config.name || entry.name,
93
+ description:
94
+ config['short-title'] || config.description || 'No description available',
95
+ fullDescription:
96
+ config.description || config['short-title'] || 'No description available',
97
+ version: config.version || '1.0.0',
98
+ author: config.author || 'BMad Team',
99
+ packPath: packPath,
100
+ dependencies: config.dependencies?.agents || [],
101
+ });
102
+ } catch (error) {
103
+ // Fallback if config.yaml doesn't exist or can't be read
104
+ console.warn(
105
+ `Failed to read config for expansion pack ${entry.name}: ${error.message}`,
106
+ );
107
+
108
+ // Try to derive info from directory name as fallback
109
+ const name = entry.name
110
+ .split('-')
111
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
112
+ .join(' ');
113
+
114
+ expansionPacks.push({
115
+ id: entry.name,
116
+ name: name,
117
+ description: 'No description available',
118
+ fullDescription: 'No description available',
119
+ version: '1.0.0',
120
+ author: 'BMad Team',
121
+ packPath: packPath,
122
+ dependencies: [],
123
+ });
124
+ }
125
+ }
126
+ }
127
+
128
+ return expansionPacks;
129
+ } catch (error) {
130
+ console.warn(`Failed to read expansion packs directory: ${error.message}`);
131
+ return [];
132
+ }
133
+ }
134
+
135
+ async getAgentDependencies(agentId) {
136
+ // Use DependencyResolver to dynamically parse agent dependencies
137
+ const DependencyResolver = require('../../lib/dependency-resolver');
138
+ const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
139
+
140
+ const agentDeps = await resolver.resolveAgentDependencies(agentId);
141
+
142
+ // Convert to flat list of file paths
143
+ const depPaths = [];
144
+
145
+ // Core files and utilities are included automatically by DependencyResolver
146
+
147
+ // Add agent file itself is already handled by installer
148
+
149
+ // Add all resolved resources
150
+ for (const resource of agentDeps.resources) {
151
+ const filePath = `.bmad-core/${resource.type}/${resource.id}.md`;
152
+ if (!depPaths.includes(filePath)) {
153
+ depPaths.push(filePath);
154
+ }
155
+ }
156
+
157
+ return depPaths;
158
+ }
159
+
160
+ async getIdeConfiguration(ide) {
161
+ const config = await this.load();
162
+ const ideConfigs = config['ide-configurations'] || {};
163
+ return ideConfigs[ide] || null;
164
+ }
165
+
166
+ getBmadCorePath() {
167
+ // Get the path to bmad-core relative to the installer (now under tools)
168
+ return path.join(__dirname, '..', '..', '..', 'bmad-core');
169
+ }
170
+
171
+ getDistPath() {
172
+ // Get the path to dist directory relative to the installer
173
+ return path.join(__dirname, '..', '..', '..', 'dist');
174
+ }
175
+
176
+ getAgentPath(agentId) {
177
+ return path.join(this.getBmadCorePath(), 'agents', `${agentId}.md`);
178
+ }
179
+
180
+ async getAvailableTeams() {
181
+ const teamsDir = path.join(this.getBmadCorePath(), 'agent-teams');
182
+
183
+ try {
184
+ const entries = await fs.readdir(teamsDir, { withFileTypes: true });
185
+ const teams = [];
186
+
187
+ for (const entry of entries) {
188
+ if (entry.isFile() && entry.name.endsWith('.yaml')) {
189
+ const teamPath = path.join(teamsDir, entry.name);
190
+
191
+ try {
192
+ const teamContent = await fs.readFile(teamPath, 'utf8');
193
+ const teamConfig = yaml.load(teamContent);
194
+
195
+ if (teamConfig.bundle) {
196
+ teams.push({
197
+ id: path.basename(entry.name, '.yaml'),
198
+ name: teamConfig.bundle.name || entry.name,
199
+ description: teamConfig.bundle.description || 'Team configuration',
200
+ icon: teamConfig.bundle.icon || '📋',
201
+ });
202
+ }
203
+ } catch (error) {
204
+ console.warn(`Warning: Could not load team config ${entry.name}: ${error.message}`);
205
+ }
206
+ }
207
+ }
208
+
209
+ return teams;
210
+ } catch (error) {
211
+ console.warn(`Warning: Could not scan teams directory: ${error.message}`);
212
+ return [];
213
+ }
214
+ }
215
+
216
+ getTeamPath(teamId) {
217
+ return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yaml`);
218
+ }
219
+
220
+ async getTeamDependencies(teamId) {
221
+ // Use DependencyResolver to dynamically parse team dependencies
222
+ const DependencyResolver = require('../../lib/dependency-resolver');
223
+ const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
224
+
225
+ try {
226
+ const teamDeps = await resolver.resolveTeamDependencies(teamId);
227
+
228
+ // Convert to flat list of file paths
229
+ const depPaths = [];
230
+
231
+ // Add team config file
232
+ depPaths.push(`.bmad-core/agent-teams/${teamId}.yaml`);
233
+
234
+ // Add all agents
235
+ for (const agent of teamDeps.agents) {
236
+ const filePath = `.bmad-core/agents/${agent.id}.md`;
237
+ if (!depPaths.includes(filePath)) {
238
+ depPaths.push(filePath);
239
+ }
240
+ }
241
+
242
+ // Add all resolved resources
243
+ for (const resource of teamDeps.resources) {
244
+ const filePath = `.bmad-core/${resource.type}/${resource.id}.${resource.type === 'workflows' ? 'yaml' : 'md'}`;
245
+ if (!depPaths.includes(filePath)) {
246
+ depPaths.push(filePath);
247
+ }
248
+ }
249
+
250
+ return depPaths;
251
+ } catch (error) {
252
+ throw new Error(`Failed to resolve team dependencies for ${teamId}: ${error.message}`);
253
+ }
254
+ }
255
+ }
256
+
257
+ module.exports = new ConfigLoader();