bmad-method 4.37.0-beta.6 → 4.39.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 (276) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +3 -3
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +3 -3
  3. package/.github/workflows/discord.yaml +11 -2
  4. package/.github/workflows/format-check.yaml +42 -0
  5. package/.github/workflows/manual-release.yaml +173 -0
  6. package/.husky/pre-commit +3 -0
  7. package/.vscode/settings.json +26 -1
  8. package/CHANGELOG.md +3 -6
  9. package/README.md +2 -0
  10. package/bmad-core/agent-teams/team-all.yaml +1 -1
  11. package/bmad-core/agents/analyst.md +17 -16
  12. package/bmad-core/agents/architect.md +12 -13
  13. package/bmad-core/agents/bmad-master.md +23 -23
  14. package/bmad-core/agents/bmad-orchestrator.md +22 -27
  15. package/bmad-core/agents/dev.md +19 -17
  16. package/bmad-core/agents/pm.md +15 -14
  17. package/bmad-core/agents/po.md +10 -9
  18. package/bmad-core/agents/qa.md +43 -23
  19. package/bmad-core/agents/sm.md +8 -7
  20. package/bmad-core/agents/ux-expert.md +7 -6
  21. package/bmad-core/checklists/architect-checklist.md +0 -5
  22. package/bmad-core/checklists/pm-checklist.md +0 -5
  23. package/bmad-core/checklists/po-master-checklist.md +0 -9
  24. package/bmad-core/checklists/story-dod-checklist.md +0 -7
  25. package/bmad-core/checklists/story-draft-checklist.md +0 -3
  26. package/bmad-core/core-config.yaml +2 -0
  27. package/bmad-core/data/bmad-kb.md +6 -3
  28. package/bmad-core/data/elicitation-methods.md +20 -0
  29. package/bmad-core/data/test-levels-framework.md +146 -0
  30. package/bmad-core/data/test-priorities-matrix.md +172 -0
  31. package/bmad-core/tasks/apply-qa-fixes.md +148 -0
  32. package/bmad-core/tasks/create-brownfield-story.md +11 -3
  33. package/bmad-core/tasks/create-deep-research-prompt.md +0 -11
  34. package/bmad-core/tasks/document-project.md +15 -13
  35. package/bmad-core/tasks/facilitate-brainstorming-session.md +2 -2
  36. package/bmad-core/tasks/index-docs.md +0 -6
  37. package/bmad-core/tasks/kb-mode-interaction.md +3 -3
  38. package/bmad-core/tasks/nfr-assess.md +343 -0
  39. package/bmad-core/tasks/qa-gate.md +161 -0
  40. package/bmad-core/tasks/review-story.md +243 -74
  41. package/bmad-core/tasks/risk-profile.md +353 -0
  42. package/bmad-core/tasks/shard-doc.md +0 -2
  43. package/bmad-core/tasks/test-design.md +174 -0
  44. package/bmad-core/tasks/trace-requirements.md +264 -0
  45. package/bmad-core/templates/architecture-tmpl.yaml +49 -49
  46. package/bmad-core/templates/brainstorming-output-tmpl.yaml +5 -5
  47. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +31 -31
  48. package/bmad-core/templates/brownfield-prd-tmpl.yaml +13 -13
  49. package/bmad-core/templates/competitor-analysis-tmpl.yaml +19 -6
  50. package/bmad-core/templates/front-end-architecture-tmpl.yaml +21 -9
  51. package/bmad-core/templates/front-end-spec-tmpl.yaml +24 -24
  52. package/bmad-core/templates/fullstack-architecture-tmpl.yaml +122 -104
  53. package/bmad-core/templates/market-research-tmpl.yaml +2 -2
  54. package/bmad-core/templates/prd-tmpl.yaml +9 -9
  55. package/bmad-core/templates/project-brief-tmpl.yaml +4 -4
  56. package/bmad-core/templates/qa-gate-tmpl.yaml +102 -0
  57. package/bmad-core/templates/story-tmpl.yaml +12 -12
  58. package/bmad-core/workflows/brownfield-fullstack.yaml +9 -9
  59. package/bmad-core/workflows/brownfield-service.yaml +1 -1
  60. package/bmad-core/workflows/brownfield-ui.yaml +1 -1
  61. package/bmad-core/workflows/greenfield-fullstack.yaml +1 -1
  62. package/bmad-core/workflows/greenfield-service.yaml +1 -1
  63. package/bmad-core/workflows/greenfield-ui.yaml +1 -1
  64. package/common/tasks/execute-checklist.md +0 -7
  65. package/common/utils/bmad-doc-template.md +5 -5
  66. package/dist/agents/analyst.txt +1086 -1079
  67. package/dist/agents/architect.txt +1534 -1526
  68. package/dist/agents/bmad-master.txt +646 -632
  69. package/dist/agents/bmad-orchestrator.txt +40 -18
  70. package/dist/agents/dev.txt +158 -19
  71. package/dist/agents/pm.txt +1082 -1107
  72. package/dist/agents/po.txt +314 -332
  73. package/dist/agents/qa.txt +1754 -151
  74. package/dist/agents/sm.txt +88 -98
  75. package/dist/agents/ux-expert.txt +80 -87
  76. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +109 -146
  77. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +75 -86
  78. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +41 -48
  79. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +1903 -1941
  80. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +15 -50
  81. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +149 -195
  82. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +0 -15
  83. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +20 -37
  84. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +2660 -2752
  85. package/dist/expansion-packs/bmad-creative-writing/agents/beta-reader.txt +871 -0
  86. package/dist/expansion-packs/bmad-creative-writing/agents/book-critic.txt +78 -0
  87. package/dist/expansion-packs/bmad-creative-writing/agents/character-psychologist.txt +839 -0
  88. package/dist/expansion-packs/bmad-creative-writing/agents/cover-designer.txt +85 -0
  89. package/dist/expansion-packs/bmad-creative-writing/agents/dialog-specialist.txt +861 -0
  90. package/dist/expansion-packs/bmad-creative-writing/agents/editor.txt +796 -0
  91. package/dist/expansion-packs/bmad-creative-writing/agents/genre-specialist.txt +927 -0
  92. package/dist/expansion-packs/bmad-creative-writing/agents/narrative-designer.txt +842 -0
  93. package/dist/expansion-packs/bmad-creative-writing/agents/plot-architect.txt +1126 -0
  94. package/dist/expansion-packs/bmad-creative-writing/agents/world-builder.txt +864 -0
  95. package/dist/expansion-packs/bmad-creative-writing/teams/agent-team.txt +5917 -0
  96. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +25 -27
  97. package/dist/teams/team-all.txt +5541 -3768
  98. package/dist/teams/team-fullstack.txt +3014 -2987
  99. package/dist/teams/team-ide-minimal.txt +2219 -469
  100. package/dist/teams/team-no-ui.txt +2993 -2966
  101. package/docs/enhanced-ide-development-workflow.md +220 -15
  102. package/docs/user-guide.md +271 -18
  103. package/docs/versioning-and-releases.md +122 -44
  104. package/docs/working-in-the-brownfield.md +265 -32
  105. package/eslint.config.mjs +119 -0
  106. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +4 -4
  107. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +1 -1
  108. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +1 -1
  109. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +0 -4
  110. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +26 -30
  111. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +0 -1
  112. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +0 -18
  113. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +50 -50
  114. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +23 -23
  115. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +24 -24
  116. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +42 -42
  117. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  118. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  119. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +1 -1
  120. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +3 -3
  121. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +0 -5
  122. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +0 -8
  123. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +1 -1
  124. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +1 -8
  125. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +0 -4
  126. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +0 -1
  127. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +0 -10
  128. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +0 -18
  129. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +23 -23
  130. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +63 -63
  131. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +20 -20
  132. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +65 -65
  133. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +5 -5
  134. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +1 -1
  135. package/expansion-packs/bmad-creative-writing/README.md +132 -0
  136. package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +19 -0
  137. package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +91 -0
  138. package/expansion-packs/bmad-creative-writing/agents/book-critic.md +35 -0
  139. package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +90 -0
  140. package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +41 -0
  141. package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +89 -0
  142. package/expansion-packs/bmad-creative-writing/agents/editor.md +90 -0
  143. package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +92 -0
  144. package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +90 -0
  145. package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +92 -0
  146. package/expansion-packs/bmad-creative-writing/agents/world-builder.md +91 -0
  147. package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +16 -0
  148. package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +16 -0
  149. package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +16 -0
  150. package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +16 -0
  151. package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +15 -0
  152. package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +16 -0
  153. package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +16 -0
  154. package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +15 -0
  155. package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +15 -0
  156. package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +16 -0
  157. package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +16 -0
  158. package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +18 -0
  159. package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +16 -0
  160. package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +16 -0
  161. package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +16 -0
  162. package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +16 -0
  163. package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +49 -0
  164. package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +16 -0
  165. package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +16 -0
  166. package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +16 -0
  167. package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +15 -0
  168. package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +16 -0
  169. package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +16 -0
  170. package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +16 -0
  171. package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +16 -0
  172. package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +16 -0
  173. package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +16 -0
  174. package/expansion-packs/bmad-creative-writing/config.yaml +11 -0
  175. package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +197 -0
  176. package/expansion-packs/bmad-creative-writing/data/story-structures.md +58 -0
  177. package/expansion-packs/bmad-creative-writing/docs/brief.md +183 -0
  178. package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +117 -0
  179. package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +16 -0
  180. package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +55 -0
  181. package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +22 -0
  182. package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +16 -0
  183. package/expansion-packs/bmad-creative-writing/tasks/build-world.md +17 -0
  184. package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +15 -0
  185. package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +101 -0
  186. package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +19 -0
  187. package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +19 -0
  188. package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +17 -0
  189. package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +93 -0
  190. package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +16 -0
  191. package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +16 -0
  192. package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +16 -0
  193. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +18 -0
  194. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +19 -0
  195. package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +16 -0
  196. package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +18 -0
  197. package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +16 -0
  198. package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +17 -0
  199. package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +16 -0
  200. package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +15 -0
  201. package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +16 -0
  202. package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +51 -0
  203. package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +96 -0
  204. package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +81 -0
  205. package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
  206. package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +97 -0
  207. package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +77 -0
  208. package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +54 -0
  209. package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
  210. package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +88 -0
  211. package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +176 -0
  212. package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +58 -0
  213. package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +51 -0
  214. package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
  215. package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +92 -0
  216. package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +86 -0
  217. package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +79 -0
  218. package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +65 -0
  219. package/expansion-packs/bmad-infrastructure-devops/config.yaml +1 -1
  220. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +0 -3
  221. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +0 -1
  222. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +0 -1
  223. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +20 -20
  224. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +7 -7
  225. package/package.json +62 -39
  226. package/prettier.config.mjs +32 -0
  227. package/sync-version.sh +23 -0
  228. package/tools/bmad-npx-wrapper.js +10 -10
  229. package/tools/builders/web-builder.js +124 -130
  230. package/tools/bump-all-versions.js +42 -33
  231. package/tools/bump-expansion-version.js +23 -16
  232. package/tools/cli.js +10 -12
  233. package/tools/flattener/aggregate.js +10 -10
  234. package/tools/flattener/binary.js +44 -17
  235. package/tools/flattener/discovery.js +19 -18
  236. package/tools/flattener/files.js +6 -6
  237. package/tools/flattener/ignoreRules.js +125 -125
  238. package/tools/flattener/main.js +426 -70
  239. package/tools/flattener/projectRoot.js +186 -25
  240. package/tools/flattener/prompts.js +9 -9
  241. package/tools/flattener/stats.helpers.js +395 -0
  242. package/tools/flattener/stats.js +64 -14
  243. package/tools/flattener/test-matrix.js +413 -0
  244. package/tools/flattener/xml.js +33 -31
  245. package/tools/installer/bin/bmad.js +156 -113
  246. package/tools/installer/config/ide-agent-config.yaml +1 -1
  247. package/tools/installer/config/install.config.yaml +13 -3
  248. package/tools/installer/lib/config-loader.js +46 -42
  249. package/tools/installer/lib/file-manager.js +91 -113
  250. package/tools/installer/lib/ide-base-setup.js +57 -56
  251. package/tools/installer/lib/ide-setup.js +545 -399
  252. package/tools/installer/lib/installer.js +875 -714
  253. package/tools/installer/lib/memory-profiler.js +54 -53
  254. package/tools/installer/lib/module-manager.js +19 -15
  255. package/tools/installer/lib/resource-locator.js +26 -28
  256. package/tools/installer/package.json +19 -19
  257. package/tools/lib/dependency-resolver.js +26 -30
  258. package/tools/lib/yaml-utils.js +7 -7
  259. package/tools/preview-release-notes.js +66 -0
  260. package/tools/shared/bannerArt.js +3 -3
  261. package/tools/sync-installer-version.js +7 -9
  262. package/tools/update-expansion-version.js +14 -15
  263. package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
  264. package/tools/version-bump.js +41 -26
  265. package/tools/yaml-format.js +56 -43
  266. package/.github/workflows/release.yaml +0 -60
  267. package/.releaserc.json +0 -21
  268. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/Complete AI Agent System - Flowchart.svg +0 -102
  269. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash copy.txt +0 -13
  270. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.1 Google Cloud Project Setup/1.1.1 - Initial Project Configuration - bash.txt +0 -13
  271. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.2 Agent Development Kit Installation/1.2.2 - Basic Project Structure - txt.txt +0 -25
  272. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.1 - settings.py +0 -34
  273. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.3 Core Configuration Files/1.3.2 - main.py - Base Application.py +0 -70
  274. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/PART 1 - Google Cloud Vertex AI Setup Documentation/1.4 Deployment Configuration/1.4.2 - cloudbuild.yaml +0 -26
  275. package/expansion-packs/Complete AI Agent System - Blank Templates & Google Cloud Setup/README.md +0 -109
  276. package/tools/semantic-release-sync-installer.js +0 -30
@@ -0,0 +1,119 @@
1
+ import js from '@eslint/js';
2
+ import eslintConfigPrettier from 'eslint-config-prettier/flat';
3
+ import nodePlugin from 'eslint-plugin-n';
4
+ import unicorn from 'eslint-plugin-unicorn';
5
+ import yml from 'eslint-plugin-yml';
6
+
7
+ export default [
8
+ // Global ignores for files/folders that should not be linted
9
+ {
10
+ ignores: ['dist/**', 'coverage/**', '**/*.min.js'],
11
+ },
12
+
13
+ // Base JavaScript recommended rules
14
+ js.configs.recommended,
15
+
16
+ // Node.js rules
17
+ ...nodePlugin.configs['flat/mixed-esm-and-cjs'],
18
+
19
+ // Unicorn rules (modern best practices)
20
+ unicorn.configs.recommended,
21
+
22
+ // YAML linting
23
+ ...yml.configs['flat/recommended'],
24
+
25
+ // Place Prettier last to disable conflicting stylistic rules
26
+ eslintConfigPrettier,
27
+
28
+ // Project-specific tweaks
29
+ {
30
+ rules: {
31
+ // Allow console for CLI tools in this repo
32
+ 'no-console': 'off',
33
+ // Enforce .yaml file extension for consistency
34
+ 'yml/file-extension': [
35
+ 'error',
36
+ {
37
+ extension: 'yaml',
38
+ caseSensitive: true,
39
+ },
40
+ ],
41
+ // Prefer double quotes in YAML wherever quoting is used, but allow the other to avoid escapes
42
+ 'yml/quotes': [
43
+ 'error',
44
+ {
45
+ prefer: 'double',
46
+ avoidEscape: true,
47
+ },
48
+ ],
49
+ // Relax some Unicorn rules that are too opinionated for this codebase
50
+ 'unicorn/prevent-abbreviations': 'off',
51
+ 'unicorn/no-null': 'off',
52
+ },
53
+ },
54
+
55
+ // CLI/CommonJS scripts under tools/**
56
+ {
57
+ files: ['tools/**/*.js'],
58
+ rules: {
59
+ // Allow CommonJS patterns for Node CLI scripts
60
+ 'unicorn/prefer-module': 'off',
61
+ 'unicorn/import-style': 'off',
62
+ 'unicorn/no-process-exit': 'off',
63
+ 'n/no-process-exit': 'off',
64
+ 'unicorn/no-await-expression-member': 'off',
65
+ 'unicorn/prefer-top-level-await': 'off',
66
+ // Avoid failing CI on incidental unused vars in internal scripts
67
+ 'no-unused-vars': 'off',
68
+ // Reduce style-only churn in internal tools
69
+ 'unicorn/prefer-ternary': 'off',
70
+ 'unicorn/filename-case': 'off',
71
+ 'unicorn/no-array-reduce': 'off',
72
+ 'unicorn/no-array-callback-reference': 'off',
73
+ 'unicorn/consistent-function-scoping': 'off',
74
+ 'n/no-extraneous-require': 'off',
75
+ 'n/no-extraneous-import': 'off',
76
+ 'n/no-unpublished-require': 'off',
77
+ 'n/no-unpublished-import': 'off',
78
+ // Some scripts intentionally use globals provided at runtime
79
+ 'no-undef': 'off',
80
+ // Additional relaxed rules for legacy/internal scripts
81
+ 'no-useless-catch': 'off',
82
+ 'unicorn/prefer-number-properties': 'off',
83
+ 'no-unreachable': 'off',
84
+ },
85
+ },
86
+
87
+ // ESLint config file should not be checked for publish-related Node rules
88
+ {
89
+ files: ['eslint.config.mjs'],
90
+ rules: {
91
+ 'n/no-unpublished-import': 'off',
92
+ },
93
+ },
94
+
95
+ // YAML workflow templates allow empty mapping values intentionally
96
+ {
97
+ files: ['bmad-core/workflows/**/*.yaml'],
98
+ rules: {
99
+ 'yml/no-empty-mapping-value': 'off',
100
+ },
101
+ },
102
+
103
+ // GitHub workflow files in this repo may use empty mapping values
104
+ {
105
+ files: ['.github/workflows/**/*.yaml'],
106
+ rules: {
107
+ 'yml/no-empty-mapping-value': 'off',
108
+ },
109
+ },
110
+
111
+ // Other GitHub YAML files may intentionally use empty values and reserved filenames
112
+ {
113
+ files: ['.github/**/*.yaml'],
114
+ rules: {
115
+ 'yml/no-empty-mapping-value': 'off',
116
+ 'unicorn/filename-case': 'off',
117
+ },
118
+ },
119
+ ];
@@ -60,10 +60,10 @@ commands:
60
60
  task-execution:
61
61
  flow: Read story → Implement game feature → Write tests → Pass tests → Update [x] → Next task
62
62
  updates-ONLY:
63
- - "Checkboxes: [ ] not started | [-] in progress | [x] complete"
64
- - "Debug Log: | Task | File | Change | Reverted? |"
65
- - "Completion Notes: Deviations only, <50 words"
66
- - "Change Log: Requirement changes only"
63
+ - 'Checkboxes: [ ] not started | [-] in progress | [x] complete'
64
+ - 'Debug Log: | Task | File | Change | Reverted? |'
65
+ - 'Completion Notes: Deviations only, <50 words'
66
+ - 'Change Log: Requirement changes only'
67
67
  blocking: Unapproved deps | Ambiguous after story check | 3 failures | Missing game config
68
68
  done: Game feature works + Tests pass + 60 FPS + No lint errors + Follows Phaser 3 best practices
69
69
  dependencies:
@@ -27,7 +27,7 @@ activation-instructions:
27
27
  - When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
28
28
  - STAY IN CHARACTER!
29
29
  - CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
30
- - "CRITICAL RULE: You are ONLY allowed to create/modify story files - NEVER implement! If asked to implement, tell user they MUST switch to Game Developer Agent"
30
+ - 'CRITICAL RULE: You are ONLY allowed to create/modify story files - NEVER implement! If asked to implement, tell user they MUST switch to Game Developer Agent'
31
31
  agent:
32
32
  name: Jordan
33
33
  id: game-sm
@@ -1,5 +1,5 @@
1
1
  name: bmad-2d-phaser-game-dev
2
- version: 1.12.0
2
+ version: 1.13.0
3
3
  short-title: Phaser 3 2D Game Dev Pack
4
4
  description: >-
5
5
  2D Game Development expansion pack for BMad Method - Phaser 3 & TypeScript
@@ -39,13 +39,11 @@ You are developing games as a "Player Experience CEO" - thinking like a game dir
39
39
  ### Phase 1: Game Concept and Design
40
40
 
41
41
  1. **Game Designer**: Start with brainstorming and concept development
42
-
43
42
  - Use \*brainstorm to explore game concepts and mechanics
44
43
  - Create Game Brief using game-brief-tmpl
45
44
  - Develop core game pillars and player experience goals
46
45
 
47
46
  2. **Game Designer**: Create comprehensive Game Design Document
48
-
49
47
  - Use game-design-doc-tmpl to create detailed GDD
50
48
  - Define all game mechanics, progression, and balance
51
49
  - Specify technical requirements and platform targets
@@ -65,13 +63,11 @@ You are developing games as a "Player Experience CEO" - thinking like a game dir
65
63
  ### Phase 3: Story-Driven Development
66
64
 
67
65
  5. **Game Scrum Master**: Break down design into development stories
68
-
69
66
  - Use create-game-story task to create detailed implementation stories
70
67
  - Each story should be immediately actionable by game developers
71
68
  - Apply game-story-dod-checklist to ensure story quality
72
69
 
73
70
  6. **Game Developer**: Implement game features story by story
74
-
75
71
  - Follow TypeScript strict mode and Phaser 3 best practices
76
72
  - Maintain 60 FPS performance target throughout development
77
73
  - Use test-driven development for game logic components
@@ -73,7 +73,7 @@ interface GameState {
73
73
  interface GameSettings {
74
74
  musicVolume: number;
75
75
  sfxVolume: number;
76
- difficulty: "easy" | "normal" | "hard";
76
+ difficulty: 'easy' | 'normal' | 'hard';
77
77
  controls: ControlScheme;
78
78
  }
79
79
  ```
@@ -114,12 +114,12 @@ class GameScene extends Phaser.Scene {
114
114
  private inputManager!: InputManager;
115
115
 
116
116
  constructor() {
117
- super({ key: "GameScene" });
117
+ super({ key: 'GameScene' });
118
118
  }
119
119
 
120
120
  preload(): void {
121
121
  // Load only scene-specific assets
122
- this.load.image("player", "assets/player.png");
122
+ this.load.image('player', 'assets/player.png');
123
123
  }
124
124
 
125
125
  create(data: SceneData): void {
@@ -144,7 +144,7 @@ class GameScene extends Phaser.Scene {
144
144
  this.inputManager.destroy();
145
145
 
146
146
  // Remove event listeners
147
- this.events.off("*");
147
+ this.events.off('*');
148
148
  }
149
149
  }
150
150
  ```
@@ -153,13 +153,13 @@ class GameScene extends Phaser.Scene {
153
153
 
154
154
  ```typescript
155
155
  // Proper scene transitions with data
156
- this.scene.start("NextScene", {
156
+ this.scene.start('NextScene', {
157
157
  playerScore: this.playerScore,
158
158
  currentLevel: this.currentLevel + 1,
159
159
  });
160
160
 
161
161
  // Scene overlays for UI
162
- this.scene.launch("PauseMenuScene");
162
+ this.scene.launch('PauseMenuScene');
163
163
  this.scene.pause();
164
164
  ```
165
165
 
@@ -203,7 +203,7 @@ class Player extends GameEntity {
203
203
  private health!: HealthComponent;
204
204
 
205
205
  constructor(scene: Phaser.Scene, x: number, y: number) {
206
- super(scene, x, y, "player");
206
+ super(scene, x, y, 'player');
207
207
 
208
208
  this.movement = this.addComponent(new MovementComponent(this));
209
209
  this.health = this.addComponent(new HealthComponent(this, 100));
@@ -223,7 +223,7 @@ class GameManager {
223
223
 
224
224
  constructor(scene: Phaser.Scene) {
225
225
  if (GameManager.instance) {
226
- throw new Error("GameManager already exists!");
226
+ throw new Error('GameManager already exists!');
227
227
  }
228
228
 
229
229
  this.scene = scene;
@@ -233,7 +233,7 @@ class GameManager {
233
233
 
234
234
  static getInstance(): GameManager {
235
235
  if (!GameManager.instance) {
236
- throw new Error("GameManager not initialized!");
236
+ throw new Error('GameManager not initialized!');
237
237
  }
238
238
  return GameManager.instance;
239
239
  }
@@ -280,7 +280,7 @@ class BulletPool {
280
280
  }
281
281
 
282
282
  // Pool exhausted - create new bullet
283
- console.warn("Bullet pool exhausted, creating new bullet");
283
+ console.warn('Bullet pool exhausted, creating new bullet');
284
284
  return new Bullet(this.scene, 0, 0);
285
285
  }
286
286
 
@@ -380,12 +380,12 @@ class InputManager {
380
380
  }
381
381
 
382
382
  private setupKeyboard(): void {
383
- this.keys = this.scene.input.keyboard.addKeys("W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT");
383
+ this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
384
384
  }
385
385
 
386
386
  private setupTouch(): void {
387
- this.scene.input.on("pointerdown", this.handlePointerDown, this);
388
- this.scene.input.on("pointerup", this.handlePointerUp, this);
387
+ this.scene.input.on('pointerdown', this.handlePointerDown, this);
388
+ this.scene.input.on('pointerup', this.handlePointerUp, this);
389
389
  }
390
390
 
391
391
  update(): void {
@@ -412,9 +412,9 @@ class InputManager {
412
412
  class AssetManager {
413
413
  loadAssets(): Promise<void> {
414
414
  return new Promise((resolve, reject) => {
415
- this.scene.load.on("filecomplete", this.handleFileComplete, this);
416
- this.scene.load.on("loaderror", this.handleLoadError, this);
417
- this.scene.load.on("complete", () => resolve());
415
+ this.scene.load.on('filecomplete', this.handleFileComplete, this);
416
+ this.scene.load.on('loaderror', this.handleLoadError, this);
417
+ this.scene.load.on('complete', () => resolve());
418
418
 
419
419
  this.scene.load.start();
420
420
  });
@@ -430,8 +430,8 @@ class AssetManager {
430
430
  private loadFallbackAsset(key: string): void {
431
431
  // Load placeholder or default assets
432
432
  switch (key) {
433
- case "player":
434
- this.scene.load.image("player", "assets/defaults/default-player.png");
433
+ case 'player':
434
+ this.scene.load.image('player', 'assets/defaults/default-player.png');
435
435
  break;
436
436
  default:
437
437
  console.warn(`No fallback for asset: ${key}`);
@@ -458,11 +458,11 @@ class GameSystem {
458
458
 
459
459
  private attemptRecovery(context: string): void {
460
460
  switch (context) {
461
- case "update":
461
+ case 'update':
462
462
  // Reset system state
463
463
  this.reset();
464
464
  break;
465
- case "render":
465
+ case 'render':
466
466
  // Disable visual effects
467
467
  this.disableEffects();
468
468
  break;
@@ -482,7 +482,7 @@ class GameSystem {
482
482
 
483
483
  ```typescript
484
484
  // Example test for game mechanics
485
- describe("HealthComponent", () => {
485
+ describe('HealthComponent', () => {
486
486
  let healthComponent: HealthComponent;
487
487
 
488
488
  beforeEach(() => {
@@ -490,18 +490,18 @@ describe("HealthComponent", () => {
490
490
  healthComponent = new HealthComponent(mockEntity, 100);
491
491
  });
492
492
 
493
- test("should initialize with correct health", () => {
493
+ test('should initialize with correct health', () => {
494
494
  expect(healthComponent.currentHealth).toBe(100);
495
495
  expect(healthComponent.maxHealth).toBe(100);
496
496
  });
497
497
 
498
- test("should handle damage correctly", () => {
498
+ test('should handle damage correctly', () => {
499
499
  healthComponent.takeDamage(25);
500
500
  expect(healthComponent.currentHealth).toBe(75);
501
501
  expect(healthComponent.isAlive()).toBe(true);
502
502
  });
503
503
 
504
- test("should handle death correctly", () => {
504
+ test('should handle death correctly', () => {
505
505
  healthComponent.takeDamage(150);
506
506
  expect(healthComponent.currentHealth).toBe(0);
507
507
  expect(healthComponent.isAlive()).toBe(false);
@@ -514,7 +514,7 @@ describe("HealthComponent", () => {
514
514
  **Scene Testing:**
515
515
 
516
516
  ```typescript
517
- describe("GameScene Integration", () => {
517
+ describe('GameScene Integration', () => {
518
518
  let scene: GameScene;
519
519
  let mockGame: Phaser.Game;
520
520
 
@@ -524,7 +524,7 @@ describe("GameScene Integration", () => {
524
524
  scene = new GameScene();
525
525
  });
526
526
 
527
- test("should initialize all systems", () => {
527
+ test('should initialize all systems', () => {
528
528
  scene.create({});
529
529
 
530
530
  expect(scene.gameManager).toBeDefined();
@@ -585,25 +585,21 @@ src/
585
585
  ### Story Implementation Process
586
586
 
587
587
  1. **Read Story Requirements:**
588
-
589
588
  - Understand acceptance criteria
590
589
  - Identify technical requirements
591
590
  - Review performance constraints
592
591
 
593
592
  2. **Plan Implementation:**
594
-
595
593
  - Identify files to create/modify
596
594
  - Consider component architecture
597
595
  - Plan testing approach
598
596
 
599
597
  3. **Implement Feature:**
600
-
601
598
  - Follow TypeScript strict mode
602
599
  - Use established patterns
603
600
  - Maintain 60 FPS performance
604
601
 
605
602
  4. **Test Implementation:**
606
-
607
603
  - Write unit tests for game logic
608
604
  - Test cross-platform functionality
609
605
  - Validate performance targets
@@ -18,7 +18,6 @@
18
18
  2. If the section contains game flow diagrams, level layouts, or system diagrams, explain each diagram briefly with game development context before offering elicitation options (e.g., "The gameplay loop diagram shows how player actions lead to rewards and progression. Notice how each step maintains player engagement and creates opportunities for skill development.")
19
19
 
20
20
  3. If the section contains multiple game elements (like multiple mechanics, multiple levels, multiple systems, etc.), inform the user they can apply elicitation actions to:
21
-
22
21
  - The entire section as a whole
23
22
  - Individual game elements within the section (specify which element when selecting an action)
24
23
 
@@ -9,7 +9,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
9
9
  [[LLM: Begin by understanding the game design context and goals. Ask clarifying questions if needed to determine the best approach for game-specific ideation.]]
10
10
 
11
11
  1. **Establish Game Context**
12
-
13
12
  - Understand the game genre or opportunity area
14
13
  - Identify target audience and platform constraints
15
14
  - Determine session goals (concept exploration vs. mechanic refinement)
@@ -27,7 +26,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
27
26
 
28
27
  1. **"What If" Game Scenarios**
29
28
  [[LLM: Generate provocative what-if questions that challenge game design assumptions and expand thinking beyond current genre limitations.]]
30
-
31
29
  - What if players could rewind time in any genre?
32
30
  - What if the game world reacted to the player's real-world location?
33
31
  - What if failure was more rewarding than success?
@@ -36,7 +34,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
36
34
 
37
35
  2. **Cross-Genre Fusion**
38
36
  [[LLM: Help user combine unexpected game genres and mechanics to create unique experiences.]]
39
-
40
37
  - "How might [genre A] mechanics work in [genre B]?"
41
38
  - Puzzle mechanics in action games
42
39
  - Dating sim elements in strategy games
@@ -45,7 +42,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
45
42
 
46
43
  3. **Player Motivation Reversal**
47
44
  [[LLM: Flip traditional player motivations to reveal new gameplay possibilities.]]
48
-
49
45
  - What if losing was the goal?
50
46
  - What if cooperation was forced in competitive games?
51
47
  - What if players had to help their enemies?
@@ -62,7 +58,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
62
58
 
63
59
  1. **SCAMPER for Game Mechanics**
64
60
  [[LLM: Guide through each SCAMPER prompt specifically for game design.]]
65
-
66
61
  - **S** = Substitute: What mechanics can be substituted? (walking → flying → swimming)
67
62
  - **C** = Combine: What systems can be merged? (inventory + character growth)
68
63
  - **A** = Adapt: What mechanics from other media? (books, movies, sports)
@@ -73,7 +68,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
73
68
 
74
69
  2. **Player Agency Spectrum**
75
70
  [[LLM: Explore different levels of player control and agency across game systems.]]
76
-
77
71
  - Full Control: Direct character movement, combat, building
78
72
  - Indirect Control: Setting rules, giving commands, environmental changes
79
73
  - Influence Only: Suggestions, preferences, emotional reactions
@@ -81,7 +75,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
81
75
 
82
76
  3. **Temporal Game Design**
83
77
  [[LLM: Explore how time affects gameplay and player experience.]]
84
-
85
78
  - Real-time vs. turn-based mechanics
86
79
  - Time travel and manipulation
87
80
  - Persistent vs. session-based progress
@@ -92,7 +85,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
92
85
 
93
86
  1. **Emotion-First Design**
94
87
  [[LLM: Start with target emotions and work backward to mechanics that create them.]]
95
-
96
88
  - Target Emotion: Wonder → Mechanics: Discovery, mystery, scale
97
89
  - Target Emotion: Triumph → Mechanics: Challenge, skill growth, recognition
98
90
  - Target Emotion: Connection → Mechanics: Cooperation, shared goals, communication
@@ -100,7 +92,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
100
92
 
101
93
  2. **Player Archetype Brainstorming**
102
94
  [[LLM: Design for different player types and motivations.]]
103
-
104
95
  - Achievers: Progression, completion, mastery
105
96
  - Explorers: Discovery, secrets, world-building
106
97
  - Socializers: Interaction, cooperation, community
@@ -109,7 +100,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
109
100
 
110
101
  3. **Accessibility-First Innovation**
111
102
  [[LLM: Generate ideas that make games more accessible while creating new gameplay.]]
112
-
113
103
  - Visual impairment considerations leading to audio-focused mechanics
114
104
  - Motor accessibility inspiring one-handed or simplified controls
115
105
  - Cognitive accessibility driving clear feedback and pacing
@@ -119,7 +109,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
119
109
 
120
110
  1. **Environmental Storytelling**
121
111
  [[LLM: Brainstorm ways the game world itself tells stories without explicit narrative.]]
122
-
123
112
  - How does the environment show history?
124
113
  - What do interactive objects reveal about characters?
125
114
  - How can level design communicate mood?
@@ -127,7 +116,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
127
116
 
128
117
  2. **Player-Generated Narrative**
129
118
  [[LLM: Explore ways players create their own stories through gameplay.]]
130
-
131
119
  - Emergent storytelling through player choices
132
120
  - Procedural narrative generation
133
121
  - Player-to-player story sharing
@@ -135,7 +123,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
135
123
 
136
124
  3. **Genre Expectation Subversion**
137
125
  [[LLM: Identify and deliberately subvert player expectations within genres.]]
138
-
139
126
  - Fantasy RPG where magic is mundane
140
127
  - Horror game where monsters are friendly
141
128
  - Racing game where going slow is optimal
@@ -145,7 +132,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
145
132
 
146
133
  1. **Platform-Specific Design**
147
134
  [[LLM: Generate ideas that leverage unique platform capabilities.]]
148
-
149
135
  - Mobile: GPS, accelerometer, camera, always-connected
150
136
  - Web: URLs, tabs, social sharing, real-time collaboration
151
137
  - Console: Controllers, TV viewing, couch co-op
@@ -153,7 +139,6 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
153
139
 
154
140
  2. **Constraint-Based Creativity**
155
141
  [[LLM: Use technical or design constraints as creative catalysts.]]
156
-
157
142
  - One-button games
158
143
  - Games without graphics
159
144
  - Games that play in notification bars
@@ -199,19 +184,16 @@ This task provides a comprehensive toolkit of creative brainstorming techniques
199
184
  [[LLM: Guide the brainstorming session with appropriate pacing for game design exploration.]]
200
185
 
201
186
  1. **Inspiration Phase** (10-15 min)
202
-
203
187
  - Reference existing games and mechanics
204
188
  - Explore player experiences and emotions
205
189
  - Gather visual and thematic inspiration
206
190
 
207
191
  2. **Divergent Exploration** (25-35 min)
208
-
209
192
  - Generate many game concepts or mechanics
210
193
  - Use expansion and fusion techniques
211
194
  - Encourage wild and impossible ideas
212
195
 
213
196
  3. **Player-Centered Filtering** (15-20 min)
214
-
215
197
  - Consider target audience reactions
216
198
  - Evaluate emotional impact and engagement
217
199
  - Group ideas by player experience goals