@zeyue0329/xiaoma-cli 1.0.8 → 1.0.10

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 (326) 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 +26 -1
  11. package/CHANGELOG.md +686 -0
  12. package/CONTRIBUTING.md +250 -0
  13. package/LICENSE +6 -1
  14. package/common/tasks/create-doc.md +2 -0
  15. package/common/tasks/execute-checklist.md +2 -7
  16. package/common/utils/bmad-doc-template.md +7 -5
  17. package/common/utils/workflow-management.md +2 -0
  18. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2103 -0
  19. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +1627 -0
  20. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +822 -0
  21. package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +8486 -0
  22. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +3210 -0
  23. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3244 -0
  24. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +317 -0
  25. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +982 -0
  26. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +12854 -0
  27. package/dist/expansion-packs/bmad-creative-writing/agents/beta-reader.txt +921 -0
  28. package/dist/expansion-packs/bmad-creative-writing/agents/book-critic.txt +81 -0
  29. package/dist/expansion-packs/bmad-creative-writing/agents/character-psychologist.txt +886 -0
  30. package/dist/expansion-packs/bmad-creative-writing/agents/cover-designer.txt +85 -0
  31. package/dist/expansion-packs/bmad-creative-writing/agents/dialog-specialist.txt +903 -0
  32. package/dist/expansion-packs/bmad-creative-writing/agents/editor.txt +837 -0
  33. package/dist/expansion-packs/bmad-creative-writing/agents/genre-specialist.txt +989 -0
  34. package/dist/expansion-packs/bmad-creative-writing/agents/narrative-designer.txt +888 -0
  35. package/dist/expansion-packs/bmad-creative-writing/agents/plot-architect.txt +1173 -0
  36. package/dist/expansion-packs/bmad-creative-writing/agents/world-builder.txt +914 -0
  37. package/dist/expansion-packs/bmad-creative-writing/teams/agent-team.txt +6071 -0
  38. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2079 -0
  39. package/docs/GUIDING-PRINCIPLES.md +91 -0
  40. package/docs/core-architecture.md +219 -0
  41. package/docs/enhanced-ide-development-workflow.md +248 -0
  42. package/docs/expansion-packs.md +200 -0
  43. package/docs/how-to-contribute-with-pull-requests.md +158 -0
  44. package/docs/user-guide.md +530 -0
  45. package/docs/versioning-and-releases.md +155 -0
  46. package/docs/versions.md +48 -0
  47. package/docs/working-in-the-brownfield.md +597 -0
  48. package/eslint.config.mjs +119 -0
  49. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +14 -0
  50. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +73 -0
  51. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +80 -0
  52. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +66 -0
  53. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +203 -0
  54. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +162 -0
  55. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +9 -0
  56. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +252 -0
  57. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +649 -0
  58. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +112 -0
  59. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +218 -0
  60. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +292 -0
  61. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +614 -0
  62. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +357 -0
  63. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +344 -0
  64. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +254 -0
  65. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
  66. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +184 -0
  67. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +176 -0
  68. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +15 -0
  69. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +82 -0
  70. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +79 -0
  71. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +80 -0
  72. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +67 -0
  73. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +393 -0
  74. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +205 -0
  75. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +203 -0
  76. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +126 -0
  77. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +7 -0
  78. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +771 -0
  79. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +588 -0
  80. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +112 -0
  81. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +143 -0
  82. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +186 -0
  83. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +292 -0
  84. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +202 -0
  85. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +1031 -0
  86. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +357 -0
  87. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +706 -0
  88. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +257 -0
  89. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
  90. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +184 -0
  91. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +176 -0
  92. package/expansion-packs/bmad-creative-writing/README.md +146 -0
  93. package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +20 -0
  94. package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +94 -0
  95. package/expansion-packs/bmad-creative-writing/agents/book-critic.md +40 -0
  96. package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +93 -0
  97. package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +46 -0
  98. package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +92 -0
  99. package/expansion-packs/bmad-creative-writing/agents/editor.md +93 -0
  100. package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +95 -0
  101. package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +93 -0
  102. package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +95 -0
  103. package/expansion-packs/bmad-creative-writing/agents/world-builder.md +94 -0
  104. package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +23 -0
  105. package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +23 -0
  106. package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +23 -0
  107. package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +23 -0
  108. package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +21 -0
  109. package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +23 -0
  110. package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +23 -0
  111. package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +22 -0
  112. package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +22 -0
  113. package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +23 -0
  114. package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +23 -0
  115. package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +25 -0
  116. package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +23 -0
  117. package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +23 -0
  118. package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +23 -0
  119. package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +23 -0
  120. package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +59 -0
  121. package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +23 -0
  122. package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +23 -0
  123. package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +23 -0
  124. package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +22 -0
  125. package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +23 -0
  126. package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +23 -0
  127. package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +23 -0
  128. package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +23 -0
  129. package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +23 -0
  130. package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +23 -0
  131. package/expansion-packs/bmad-creative-writing/config.yaml +12 -0
  132. package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +209 -0
  133. package/expansion-packs/bmad-creative-writing/data/story-structures.md +67 -0
  134. package/expansion-packs/bmad-creative-writing/docs/brief.md +212 -0
  135. package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +119 -0
  136. package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +23 -0
  137. package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +67 -0
  138. package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +29 -0
  139. package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +23 -0
  140. package/expansion-packs/bmad-creative-writing/tasks/build-world.md +24 -0
  141. package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +22 -0
  142. package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +103 -0
  143. package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +26 -0
  144. package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +26 -0
  145. package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +24 -0
  146. package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +88 -0
  147. package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +23 -0
  148. package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +23 -0
  149. package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +23 -0
  150. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +25 -0
  151. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +26 -0
  152. package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +23 -0
  153. package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +25 -0
  154. package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +23 -0
  155. package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +24 -0
  156. package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +23 -0
  157. package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +22 -0
  158. package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +23 -0
  159. package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +64 -0
  160. package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +97 -0
  161. package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +82 -0
  162. package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
  163. package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +98 -0
  164. package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +78 -0
  165. package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +55 -0
  166. package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
  167. package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +89 -0
  168. package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +218 -0
  169. package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +56 -0
  170. package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +50 -0
  171. package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
  172. package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +91 -0
  173. package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +85 -0
  174. package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +78 -0
  175. package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +64 -0
  176. package/expansion-packs/bmad-infrastructure-devops/README.md +147 -0
  177. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +73 -0
  178. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +486 -0
  179. package/expansion-packs/bmad-infrastructure-devops/config.yaml +10 -0
  180. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +307 -0
  181. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +161 -0
  182. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +155 -0
  183. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +425 -0
  184. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +630 -0
  185. package/implement-fork-friendly-ci.sh +229 -0
  186. package/package.json +75 -45
  187. package/prettier.config.mjs +32 -0
  188. package/test.md +1 -0
  189. package/tools/builders/web-builder.js +143 -149
  190. package/tools/bump-all-versions.js +42 -33
  191. package/tools/bump-expansion-version.js +23 -16
  192. package/tools/cli.js +15 -15
  193. package/tools/flattener/aggregate.js +76 -0
  194. package/tools/flattener/binary.js +80 -0
  195. package/tools/flattener/discovery.js +71 -0
  196. package/tools/flattener/files.js +35 -0
  197. package/tools/flattener/ignoreRules.js +176 -0
  198. package/tools/flattener/main.js +458 -460
  199. package/tools/flattener/projectRoot.js +206 -0
  200. package/tools/flattener/prompts.js +44 -0
  201. package/tools/flattener/stats.helpers.js +395 -0
  202. package/tools/flattener/stats.js +80 -0
  203. package/tools/flattener/test-matrix.js +413 -0
  204. package/tools/flattener/xml.js +88 -0
  205. package/tools/installer/README.md +1 -1
  206. package/tools/installer/bin/xiaoma.js +390 -150
  207. package/tools/installer/config/ide-agent-config.yaml +1 -1
  208. package/tools/installer/config/install.config.yaml +60 -9
  209. package/tools/installer/lib/config-loader.js +55 -51
  210. package/tools/installer/lib/file-manager.js +92 -117
  211. package/tools/installer/lib/ide-base-setup.js +57 -56
  212. package/tools/installer/lib/ide-setup.js +821 -414
  213. package/tools/installer/lib/installer.js +924 -699
  214. package/tools/installer/lib/memory-profiler.js +54 -53
  215. package/tools/installer/lib/module-manager.js +19 -15
  216. package/tools/installer/lib/resource-locator.js +31 -33
  217. package/tools/installer/package.json +24 -23
  218. package/tools/lib/dependency-resolver.js +39 -43
  219. package/tools/lib/yaml-utils.js +7 -7
  220. package/tools/md-assets/web-agent-startup-instructions.md +6 -6
  221. package/tools/preview-release-notes.js +66 -0
  222. package/tools/setup-hooks.sh +37 -0
  223. package/tools/shared/bannerArt.js +105 -0
  224. package/tools/sync-installer-version.js +7 -9
  225. package/tools/sync-version.sh +23 -0
  226. package/tools/update-expansion-version.js +14 -15
  227. package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
  228. package/tools/version-bump.js +41 -26
  229. package/tools/xiaoma-npx-wrapper.js +14 -14
  230. package/tools/yaml-format.js +56 -43
  231. package/xiaoma-core/agent-teams/team-all.yaml +3 -2
  232. package/xiaoma-core/agent-teams/team-fullstack.yaml +2 -1
  233. package/xiaoma-core/agent-teams/team-ide-minimal.yaml +1 -0
  234. package/xiaoma-core/agent-teams/team-no-ui.yaml +2 -1
  235. package/xiaoma-core/agents/analyst.md +20 -17
  236. package/xiaoma-core/agents/architect.md +15 -14
  237. package/xiaoma-core/agents/{xiaoma-master.md → bmad-master.md} +29 -27
  238. package/xiaoma-core/agents/{xiaoma-orchestrator.md → bmad-orchestrator.md} +36 -39
  239. package/xiaoma-core/agents/dev.md +23 -18
  240. package/xiaoma-core/agents/pm.md +18 -15
  241. package/xiaoma-core/agents/po.md +13 -10
  242. package/xiaoma-core/agents/qa.md +46 -24
  243. package/xiaoma-core/agents/sm.md +11 -8
  244. package/xiaoma-core/agents/ux-expert.md +10 -7
  245. package/xiaoma-core/checklists/architect-checklist.md +2 -5
  246. package/xiaoma-core/checklists/change-checklist.md +4 -2
  247. package/xiaoma-core/checklists/pm-checklist.md +2 -5
  248. package/xiaoma-core/checklists/po-master-checklist.md +2 -9
  249. package/xiaoma-core/checklists/story-dod-checklist.md +2 -7
  250. package/xiaoma-core/checklists/story-draft-checklist.md +2 -3
  251. package/xiaoma-core/core-config.yaml +4 -1
  252. package/xiaoma-core/data/{xiaoma-kb.md → bmad-kb.md} +48 -42
  253. package/xiaoma-core/data/brainstorming-techniques.md +2 -0
  254. package/xiaoma-core/data/elicitation-methods.md +22 -0
  255. package/xiaoma-core/data/technical-preferences.md +2 -0
  256. package/xiaoma-core/data/test-levels-framework.md +148 -0
  257. package/xiaoma-core/data/test-priorities-matrix.md +174 -0
  258. package/xiaoma-core/tasks/advanced-elicitation.md +2 -0
  259. package/xiaoma-core/tasks/apply-qa-fixes.md +150 -0
  260. package/xiaoma-core/tasks/brownfield-create-epic.md +2 -0
  261. package/xiaoma-core/tasks/brownfield-create-story.md +2 -0
  262. package/xiaoma-core/tasks/correct-course.md +2 -0
  263. package/xiaoma-core/tasks/create-brownfield-story.md +14 -4
  264. package/xiaoma-core/tasks/create-deep-research-prompt.md +2 -11
  265. package/xiaoma-core/tasks/create-next-story.md +3 -1
  266. package/xiaoma-core/tasks/document-project.md +17 -13
  267. package/xiaoma-core/tasks/facilitate-brainstorming-session.md +5 -3
  268. package/xiaoma-core/tasks/generate-ai-frontend-prompt.md +2 -0
  269. package/xiaoma-core/tasks/index-docs.md +2 -6
  270. package/xiaoma-core/tasks/kb-mode-interaction.md +17 -15
  271. package/xiaoma-core/tasks/nfr-assess.md +345 -0
  272. package/xiaoma-core/tasks/qa-gate.md +163 -0
  273. package/xiaoma-core/tasks/review-story.md +245 -74
  274. package/xiaoma-core/tasks/risk-profile.md +355 -0
  275. package/xiaoma-core/tasks/shard-doc.md +2 -2
  276. package/xiaoma-core/tasks/test-design.md +176 -0
  277. package/xiaoma-core/tasks/trace-requirements.md +266 -0
  278. package/xiaoma-core/tasks/validate-next-story.md +5 -3
  279. package/xiaoma-core/templates/architecture-tmpl.yaml +50 -49
  280. package/xiaoma-core/templates/brainstorming-output-tmpl.yaml +5 -5
  281. package/xiaoma-core/templates/brownfield-architecture-tmpl.yaml +32 -31
  282. package/xiaoma-core/templates/brownfield-prd-tmpl.yaml +14 -13
  283. package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +20 -6
  284. package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +22 -9
  285. package/xiaoma-core/templates/front-end-spec-tmpl.yaml +25 -24
  286. package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +123 -104
  287. package/xiaoma-core/templates/market-research-tmpl.yaml +3 -2
  288. package/xiaoma-core/templates/prd-tmpl.yaml +10 -9
  289. package/xiaoma-core/templates/project-brief-tmpl.yaml +5 -4
  290. package/xiaoma-core/templates/qa-gate-tmpl.yaml +103 -0
  291. package/xiaoma-core/templates/story-tmpl.yaml +13 -12
  292. package/xiaoma-core/workflows/brownfield-fullstack.yaml +13 -12
  293. package/xiaoma-core/workflows/brownfield-service.yaml +5 -4
  294. package/xiaoma-core/workflows/brownfield-ui.yaml +5 -4
  295. package/xiaoma-core/workflows/greenfield-fullstack.yaml +7 -6
  296. package/xiaoma-core/workflows/greenfield-service.yaml +5 -4
  297. package/xiaoma-core/workflows/greenfield-ui.yaml +6 -5
  298. package/.releaserc.json +0 -18
  299. package/README.md +0 -532
  300. package/XiaoMa-Web/345/244/232/346/231/272/350/203/275/344/275/2230-1/351/241/271/347/233/256/345/274/200/345/217/221/345/256/214/346/225/264/346/214/207/345/215/227.md +0 -977
  301. package/XiaoMa-Web/347/216/260/346/234/211/351/241/271/347/233/256/351/234/200/346/261/202/345/274/200/345/217/221/345/256/214/346/225/264/346/214/207/345/215/227.md +0 -873
  302. package/XiaoMa-Web/347/272/257/345/211/215/347/253/257/351/241/271/347/233/256Claude-Code/345/274/200/345/217/221/345/256/214/346/225/264/346/214/207/345/215/227.md +0 -372
  303. package/XiaoMa-Web/351/241/271/347/233/256/346/200/273/347/273/223/346/212/245/345/221/212.md +0 -310
  304. package/dist/agents/analyst.txt +0 -2882
  305. package/dist/agents/architect.txt +0 -3543
  306. package/dist/agents/dev-cn.txt +0 -428
  307. package/dist/agents/dev.txt +0 -428
  308. package/dist/agents/pm.txt +0 -2229
  309. package/dist/agents/po.txt +0 -1364
  310. package/dist/agents/qa.txt +0 -386
  311. package/dist/agents/sm.txt +0 -668
  312. package/dist/agents/ux-expert.txt +0 -701
  313. package/dist/agents/xiaoma-master.txt +0 -8756
  314. package/dist/agents/xiaoma-orchestrator.txt +0 -1490
  315. package/dist/teams/team-all.txt +0 -11062
  316. package/dist/teams/team-fullstack.txt +0 -10392
  317. package/dist/teams/team-ide-minimal.txt +0 -3507
  318. package/dist/teams/team-no-ui.txt +0 -8951
  319. package/docs/quick-start.md +0 -179
  320. package/tools/bmad-npx-wrapper.js +0 -39
  321. package/tools/installer/package-lock.json +0 -704
  322. package/tools/semantic-release-sync-installer.js +0 -30
  323. package/xiaoma-core/bmad-core/user-guide.md +0 -0
  324. package/xiaoma-core/enhanced-ide-development-workflow.md +0 -43
  325. package/xiaoma-core/user-guide.md +0 -251
  326. package/xiaoma-core/working-in-the-brownfield.md +0 -364
@@ -1,8 +1,6 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const { execSync } = require('child_process');
5
- const path = require('path');
1
+ const fs = require('node:fs');
2
+ const { execSync } = require('node:child_process');
3
+ const path = require('node:path');
6
4
 
7
5
  // Dynamic import for ES module
8
6
  let chalk;
@@ -26,54 +24,71 @@ function getCurrentVersion() {
26
24
 
27
25
  async function bumpVersion(type = 'patch') {
28
26
  await initializeModules();
29
-
27
+
30
28
  const validTypes = ['patch', 'minor', 'major'];
31
29
  if (!validTypes.includes(type)) {
32
30
  console.error(chalk.red(`Invalid version type: ${type}. Use: ${validTypes.join(', ')}`));
33
31
  process.exit(1);
34
32
  }
35
33
 
36
- console.log(chalk.yellow('⚠️ Manual version bumping is disabled.'));
37
- console.log(chalk.blue('🤖 This project uses semantic-release for automated versioning.'));
38
- console.log('');
39
- console.log(chalk.bold('To create a new release, use conventional commits:'));
40
- console.log(chalk.cyan(' feat: new feature (minor version bump)'));
41
- console.log(chalk.cyan(' fix: bug fix (patch version bump)'));
42
- console.log(chalk.cyan(' feat!: breaking change (major version bump)'));
43
- console.log('');
44
- console.log(chalk.dim('Example: git commit -m "feat: add new installer features"'));
45
- console.log(chalk.dim('Then push to main branch to trigger automatic release.'));
46
-
47
- return null;
34
+ const currentVersion = getCurrentVersion();
35
+ const versionParts = currentVersion.split('.').map(Number);
36
+ let newVersion;
37
+
38
+ switch (type) {
39
+ case 'major': {
40
+ newVersion = `${versionParts[0] + 1}.0.0`;
41
+ break;
42
+ }
43
+ case 'minor': {
44
+ newVersion = `${versionParts[0]}.${versionParts[1] + 1}.0`;
45
+ break;
46
+ }
47
+ case 'patch': {
48
+ newVersion = `${versionParts[0]}.${versionParts[1]}.${versionParts[2] + 1}`;
49
+ break;
50
+ }
51
+ }
52
+
53
+ console.log(chalk.blue(`Bumping version: ${currentVersion} → ${newVersion}`));
54
+
55
+ // Update package.json
56
+ const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
57
+ packageJson.version = newVersion;
58
+ fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2) + '\n');
59
+
60
+ console.log(chalk.green(`✓ Updated package.json to ${newVersion}`));
61
+
62
+ return newVersion;
48
63
  }
49
64
 
50
65
  async function main() {
51
66
  await initializeModules();
52
-
67
+
53
68
  const type = process.argv[2] || 'patch';
54
69
  const currentVersion = getCurrentVersion();
55
-
70
+
56
71
  console.log(chalk.blue(`Current version: ${currentVersion}`));
57
-
72
+
58
73
  // Check if working directory is clean
59
74
  try {
60
75
  execSync('git diff-index --quiet HEAD --');
61
- } catch (error) {
76
+ } catch {
62
77
  console.error(chalk.red('❌ Working directory is not clean. Commit your changes first.'));
63
78
  process.exit(1);
64
79
  }
65
-
80
+
66
81
  const newVersion = await bumpVersion(type);
67
-
82
+
68
83
  console.log(chalk.green(`\n🎉 Version bump complete!`));
69
84
  console.log(chalk.blue(`📦 ${currentVersion} → ${newVersion}`));
70
85
  }
71
86
 
72
87
  if (require.main === module) {
73
- main().catch(error => {
88
+ main().catch((error) => {
74
89
  console.error('Error:', error);
75
90
  process.exit(1);
76
91
  });
77
92
  }
78
93
 
79
- module.exports = { bumpVersion, getCurrentVersion };
94
+ module.exports = { bumpVersion, getCurrentVersion };
@@ -1,34 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  /**
4
- * XiaoMa Method CLI - Direct execution wrapper for npx
4
+ * BMad Method CLI - Direct execution wrapper for npx
5
5
  * This file ensures proper execution when run via npx from GitHub
6
6
  */
7
7
 
8
- const { execSync } = require('child_process');
9
- const path = require('path');
10
- const fs = require('fs');
8
+ const { execSync } = require('node:child_process');
9
+ const path = require('node:path');
10
+ const fs = require('node:fs');
11
11
 
12
12
  // Check if we're running in an npx temporary directory
13
13
  const isNpxExecution = __dirname.includes('_npx') || __dirname.includes('.npm');
14
14
 
15
15
  // If running via npx, we need to handle things differently
16
16
  if (isNpxExecution) {
17
- const args = process.argv.slice(2);
18
-
17
+ const arguments_ = process.argv.slice(2);
18
+
19
19
  // Use the installer for all commands
20
- const xiaomaScriptPath = path.join(__dirname, 'installer', 'bin', 'xiaoma.js');
21
-
22
- if (!fs.existsSync(xiaomaScriptPath)) {
23
- console.error('Error: Could not find xiaoma.js at', xiaomaScriptPath);
20
+ const bmadScriptPath = path.join(__dirname, 'installer', 'bin', 'xiaoma.js');
21
+
22
+ if (!fs.existsSync(bmadScriptPath)) {
23
+ console.error('Error: Could not find xiaoma.js at', bmadScriptPath);
24
24
  console.error('Current directory:', __dirname);
25
25
  process.exit(1);
26
26
  }
27
-
27
+
28
28
  try {
29
- execSync(`node "${xiaomaScriptPath}" ${args.join(' ')}`, {
29
+ execSync(`node "${bmadScriptPath}" ${arguments_.join(' ')}`, {
30
30
  stdio: 'inherit',
31
- cwd: path.dirname(__dirname)
31
+ cwd: path.dirname(__dirname),
32
32
  });
33
33
  } catch (error) {
34
34
  process.exit(error.status || 1);
@@ -36,4 +36,4 @@ if (isNpxExecution) {
36
36
  } else {
37
37
  // Local execution - use installer for all commands
38
38
  require('./installer/bin/xiaoma.js');
39
- }
39
+ }
@@ -1,9 +1,7 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
- const path = require('path');
1
+ const fs = require('node:fs');
2
+ const path = require('node:path');
5
3
  const yaml = require('js-yaml');
6
- const { execSync } = require('child_process');
4
+ const { execSync } = require('node:child_process');
7
5
 
8
6
  // Dynamic import for ES module
9
7
  let chalk;
@@ -26,43 +24,50 @@ async function formatYamlContent(content, filename) {
26
24
  // First try to fix common YAML issues
27
25
  let fixedContent = content
28
26
  // Fix "commands :" -> "commands:"
29
- .replace(/^(\s*)(\w+)\s+:/gm, '$1$2:')
27
+ .replaceAll(/^(\s*)(\w+)\s+:/gm, '$1$2:')
30
28
  // Fix inconsistent list indentation
31
- .replace(/^(\s*)-\s{3,}/gm, '$1- ');
32
-
29
+ .replaceAll(/^(\s*)-\s{3,}/gm, '$1- ');
30
+
33
31
  // Skip auto-fixing for .roomodes files - they have special nested structure
34
32
  if (!filename.includes('.roomodes')) {
35
33
  fixedContent = fixedContent
36
34
  // Fix unquoted list items that contain special characters or multiple parts
37
- .replace(/^(\s*)-\s+(.*)$/gm, (match, indent, content) => {
35
+ .replaceAll(/^(\s*)-\s+(.*)$/gm, (match, indent, content) => {
38
36
  // Skip if already quoted
39
37
  if (content.startsWith('"') && content.endsWith('"')) {
40
38
  return match;
41
39
  }
42
40
  // If the content contains special YAML characters or looks complex, quote it
43
41
  // BUT skip if it looks like a proper YAML key-value pair (like "key: value")
44
- if ((content.includes(':') || content.includes('-') || content.includes('{') || content.includes('}')) &&
45
- !content.match(/^\w+:\s/)) {
42
+ if (
43
+ (content.includes(':') ||
44
+ content.includes('-') ||
45
+ content.includes('{') ||
46
+ content.includes('}')) &&
47
+ !/^\w+:\s/.test(content)
48
+ ) {
46
49
  // Remove any existing quotes first, escape internal quotes, then add proper quotes
47
- const cleanContent = content.replace(/^["']|["']$/g, '').replace(/"/g, '\\"');
50
+ const cleanContent = content
51
+ .replaceAll(/^["']|["']$/g, '')
52
+ .replaceAll('"', String.raw`\"`);
48
53
  return `${indent}- "${cleanContent}"`;
49
54
  }
50
55
  return match;
51
56
  });
52
57
  }
53
-
58
+
54
59
  // Debug: show what we're trying to parse
55
60
  if (fixedContent !== content) {
56
61
  console.log(chalk.blue(`🔧 Applied YAML fixes to ${filename}`));
57
62
  }
58
-
63
+
59
64
  // Parse and re-dump YAML to format it
60
65
  const parsed = yaml.load(fixedContent);
61
66
  const formatted = yaml.dump(parsed, {
62
67
  indent: 2,
63
68
  lineWidth: -1, // Disable line wrapping
64
69
  noRefs: true,
65
- sortKeys: false // Preserve key order
70
+ sortKeys: false, // Preserve key order
66
71
  });
67
72
  return formatted;
68
73
  } catch (error) {
@@ -80,7 +85,7 @@ async function processMarkdownFile(filePath) {
80
85
 
81
86
  // Fix untyped code blocks by adding 'text' type
82
87
  // Match ``` at start of line followed by newline, but only if it's an opening fence
83
- newContent = newContent.replace(/^```\n([\s\S]*?)\n```$/gm, '```text\n$1\n```');
88
+ newContent = newContent.replaceAll(/^```\n([\s\S]*?)\n```$/gm, '```text\n$1\n```');
84
89
  if (newContent !== content) {
85
90
  modified = true;
86
91
  console.log(chalk.blue(`🔧 Added 'text' type to untyped code blocks in ${filePath}`));
@@ -90,30 +95,30 @@ async function processMarkdownFile(filePath) {
90
95
  const yamlBlockRegex = /```ya?ml\n([\s\S]*?)\n```/g;
91
96
  let match;
92
97
  const replacements = [];
93
-
98
+
94
99
  while ((match = yamlBlockRegex.exec(newContent)) !== null) {
95
100
  const [fullMatch, yamlContent] = match;
96
101
  const formatted = await formatYamlContent(yamlContent, filePath);
97
102
  if (formatted !== null) {
98
103
  // Remove trailing newline that js-yaml adds
99
104
  const trimmedFormatted = formatted.replace(/\n$/, '');
100
-
105
+
101
106
  if (trimmedFormatted !== yamlContent) {
102
107
  modified = true;
103
108
  console.log(chalk.green(`✓ Formatted YAML in ${filePath}`));
104
109
  }
105
-
110
+
106
111
  replacements.push({
107
112
  start: match.index,
108
113
  end: match.index + fullMatch.length,
109
- replacement: `\`\`\`yaml\n${trimmedFormatted}\n\`\`\``
114
+ replacement: `\`\`\`yaml\n${trimmedFormatted}\n\`\`\``,
110
115
  });
111
116
  }
112
117
  }
113
-
118
+
114
119
  // Apply replacements in reverse order to maintain indices
115
- for (let i = replacements.length - 1; i >= 0; i--) {
116
- const { start, end, replacement } = replacements[i];
120
+ for (let index = replacements.length - 1; index >= 0; index--) {
121
+ const { start, end, replacement } = replacements[index];
117
122
  newContent = newContent.slice(0, start) + replacement + newContent.slice(end);
118
123
  }
119
124
 
@@ -128,11 +133,11 @@ async function processYamlFile(filePath) {
128
133
  await initializeModules();
129
134
  const content = fs.readFileSync(filePath, 'utf8');
130
135
  const formatted = await formatYamlContent(content, filePath);
131
-
136
+
132
137
  if (formatted === null) {
133
138
  return false; // Syntax error
134
139
  }
135
-
140
+
136
141
  if (formatted !== content) {
137
142
  fs.writeFileSync(filePath, formatted);
138
143
  return true;
@@ -155,10 +160,10 @@ async function lintYamlFile(filePath) {
155
160
 
156
161
  async function main() {
157
162
  await initializeModules();
158
- const args = process.argv.slice(2);
163
+ const arguments_ = process.argv.slice(2);
159
164
  const glob = require('glob');
160
-
161
- if (args.length === 0) {
165
+
166
+ if (arguments_.length === 0) {
162
167
  console.error('Usage: node yaml-format.js <file1> [file2] ...');
163
168
  process.exit(1);
164
169
  }
@@ -169,38 +174,44 @@ async function main() {
169
174
 
170
175
  // Expand glob patterns and collect all files
171
176
  const allFiles = [];
172
- for (const arg of args) {
173
- if (arg.includes('*')) {
177
+ for (const argument of arguments_) {
178
+ if (argument.includes('*')) {
174
179
  // It's a glob pattern
175
- const matches = glob.sync(arg);
180
+ const matches = glob.sync(argument);
176
181
  allFiles.push(...matches);
177
182
  } else {
178
183
  // It's a direct file path
179
- allFiles.push(arg);
184
+ allFiles.push(argument);
180
185
  }
181
186
  }
182
187
 
183
188
  for (const filePath of allFiles) {
184
189
  if (!fs.existsSync(filePath)) {
185
190
  // Skip silently for glob patterns that don't match anything
186
- if (!args.some(arg => arg.includes('*') && filePath === arg)) {
191
+ if (!arguments_.some((argument) => argument.includes('*') && filePath === argument)) {
187
192
  console.error(chalk.red(`❌ File not found: ${filePath}`));
188
193
  hasErrors = true;
189
194
  }
190
195
  continue;
191
196
  }
192
197
 
193
- const ext = path.extname(filePath).toLowerCase();
198
+ const extension = path.extname(filePath).toLowerCase();
194
199
  const basename = path.basename(filePath).toLowerCase();
195
-
200
+
196
201
  try {
197
202
  let changed = false;
198
- if (ext === '.md') {
203
+ if (extension === '.md') {
199
204
  changed = await processMarkdownFile(filePath);
200
- } else if (ext === '.yaml' || ext === '.yml' || basename.includes('roomodes') || basename.includes('.yaml') || basename.includes('.yml')) {
205
+ } else if (
206
+ extension === '.yaml' ||
207
+ extension === '.yml' ||
208
+ basename.includes('roomodes') ||
209
+ basename.includes('.yaml') ||
210
+ basename.includes('.yml')
211
+ ) {
201
212
  // Handle YAML files and special cases like .roomodes
202
213
  changed = await processYamlFile(filePath);
203
-
214
+
204
215
  // Also run linting
205
216
  const lintPassed = await lintYamlFile(filePath);
206
217
  if (!lintPassed) hasErrors = true;
@@ -208,7 +219,7 @@ async function main() {
208
219
  // Skip silently for unsupported files
209
220
  continue;
210
221
  }
211
-
222
+
212
223
  if (changed) {
213
224
  hasChanges = true;
214
225
  filesProcessed.push(filePath);
@@ -220,8 +231,10 @@ async function main() {
220
231
  }
221
232
 
222
233
  if (hasChanges) {
223
- console.log(chalk.green(`\n✨ YAML formatting completed! Modified ${filesProcessed.length} files:`));
224
- filesProcessed.forEach(file => console.log(chalk.blue(` 📝 ${file}`)));
234
+ console.log(
235
+ chalk.green(`\n✨ YAML formatting completed! Modified ${filesProcessed.length} files:`),
236
+ );
237
+ for (const file of filesProcessed) console.log(chalk.blue(` 📝 ${file}`));
225
238
  }
226
239
 
227
240
  if (hasErrors) {
@@ -231,10 +244,10 @@ async function main() {
231
244
  }
232
245
 
233
246
  if (require.main === module) {
234
- main().catch(error => {
247
+ main().catch((error) => {
235
248
  console.error('Error:', error);
236
249
  process.exit(1);
237
250
  });
238
251
  }
239
252
 
240
- module.exports = { formatYamlContent, processMarkdownFile, processYamlFile };
253
+ module.exports = { formatYamlContent, processMarkdownFile, processYamlFile };
@@ -1,10 +1,11 @@
1
+ # <!-- Powered by BMAD™ Core -->
1
2
  bundle:
2
3
  name: Team All
3
4
  icon: 👥
4
5
  description: Includes every core system agent.
5
6
  agents:
6
- - xiaoma-orchestrator
7
- - '*'
7
+ - bmad-orchestrator
8
+ - "*"
8
9
  workflows:
9
10
  - brownfield-fullstack.yaml
10
11
  - brownfield-service.yaml
@@ -1,9 +1,10 @@
1
+ # <!-- Powered by BMAD™ Core -->
1
2
  bundle:
2
3
  name: Team Fullstack
3
4
  icon: 🚀
4
5
  description: Team capable of full stack, front end only, or service development.
5
6
  agents:
6
- - xiaoma-orchestrator
7
+ - bmad-orchestrator
7
8
  - analyst
8
9
  - pm
9
10
  - ux-expert
@@ -1,3 +1,4 @@
1
+ # <!-- Powered by BMAD™ Core -->
1
2
  bundle:
2
3
  name: Team IDE Minimal
3
4
  icon: ⚡
@@ -1,9 +1,10 @@
1
+ # <!-- Powered by BMAD™ Core -->
1
2
  bundle:
2
3
  name: Team No UI
3
4
  icon: 🔧
4
5
  description: Team with no UX or UI Planning.
5
6
  agents:
6
- - xiaoma-orchestrator
7
+ - bmad-orchestrator
7
8
  - analyst
8
9
  - pm
9
10
  - architect
@@ -1,3 +1,5 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
1
3
  # analyst
2
4
 
3
5
  ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
@@ -17,7 +19,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
17
19
  activation-instructions:
18
20
  - STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
19
21
  - STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
20
- - STEP 3: Greet user with your name/role and mention `*help` command
22
+ - STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
23
+ - STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
21
24
  - DO NOT: Load any other agent files during activation
22
25
  - ONLY load dependency files when user selects them for execution via command or request of a task
23
26
  - The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,9 +29,9 @@ activation-instructions:
26
29
  - CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
27
30
  - 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
31
  - STAY IN CHARACTER!
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.
32
+ - CRITICAL: On activation, ONLY greet user, auto-run `*help`, 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
33
  agent:
31
- name: xiaofen
34
+ name: Mary
32
35
  id: analyst
33
36
  title: Business Analyst
34
37
  icon: 📊
@@ -52,30 +55,30 @@ persona:
52
55
  - Integrity of Information - Ensure accurate sourcing and representation
53
56
  - Numbered Options Protocol - Always use numbered lists for selections
54
57
  # All commands require * prefix when used (e.g., *help)
55
- commands:
58
+ commands:
56
59
  - help: Show numbered list of the following commands to allow selection
57
- - create-project-brief: use task create-doc with project-brief-tmpl.yaml
58
- - perform-market-research: use task create-doc with market-research-tmpl.yaml
60
+ - brainstorm {topic}: Facilitate structured brainstorming session (run task facilitate-brainstorming-session.md with template brainstorming-output-tmpl.yaml)
59
61
  - create-competitor-analysis: use task create-doc with competitor-analysis-tmpl.yaml
60
- - yolo: Toggle Yolo Mode
62
+ - create-project-brief: use task create-doc with project-brief-tmpl.yaml
61
63
  - doc-out: Output full document in progress to current destination file
62
- - research-prompt {topic}: execute task create-deep-research-prompt.md
63
- - brainstorm {topic}: Facilitate structured brainstorming session (run task facilitate-brainstorming-session.md with template brainstorming-output-tmpl.yaml)
64
64
  - elicit: run the task advanced-elicitation
65
+ - perform-market-research: use task create-doc with market-research-tmpl.yaml
66
+ - research-prompt {topic}: execute task create-deep-research-prompt.md
67
+ - yolo: Toggle Yolo Mode
65
68
  - exit: Say goodbye as the Business Analyst, and then abandon inhabiting this persona
66
69
  dependencies:
70
+ data:
71
+ - bmad-kb.md
72
+ - brainstorming-techniques.md
67
73
  tasks:
68
- - facilitate-brainstorming-session.md
74
+ - advanced-elicitation.md
69
75
  - create-deep-research-prompt.md
70
76
  - create-doc.md
71
- - advanced-elicitation.md
72
77
  - document-project.md
78
+ - facilitate-brainstorming-session.md
73
79
  templates:
74
- - project-brief-tmpl.yaml
75
- - market-research-tmpl.yaml
76
- - competitor-analysis-tmpl.yaml
77
80
  - brainstorming-output-tmpl.yaml
78
- data:
79
- - xiaoma-kb.md
80
- - brainstorming-techniques.md
81
+ - competitor-analysis-tmpl.yaml
82
+ - market-research-tmpl.yaml
83
+ - project-brief-tmpl.yaml
81
84
  ```
@@ -1,5 +1,6 @@
1
- # architect
1
+ <!-- Powered by BMAD™ Core -->
2
2
 
3
+ # architect
3
4
 
4
5
  ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
5
6
 
@@ -18,7 +19,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
18
19
  activation-instructions:
19
20
  - STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
20
21
  - STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
21
- - STEP 3: Greet user with your name/role and mention `*help` command
22
+ - STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
23
+ - STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
22
24
  - DO NOT: Load any other agent files during activation
23
25
  - ONLY load dependency files when user selects them for execution via command or request of a task
24
26
  - The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -27,10 +29,9 @@ activation-instructions:
27
29
  - CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
28
30
  - 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
29
31
  - STAY IN CHARACTER!
30
- - When creating architecture, always start by understanding the complete picture - user needs, business constraints, team capabilities, and technical requirements.
31
- - 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.
32
+ - CRITICAL: On activation, ONLY greet user, auto-run `*help`, 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.
32
33
  agent:
33
- name: xiaojia
34
+ name: Winston
34
35
  id: architect
35
36
  title: Architect
36
37
  icon: 🏗️
@@ -53,12 +54,12 @@ persona:
53
54
  - Cost-Conscious Engineering - Balance technical ideals with financial reality
54
55
  - Living Architecture - Design for change and adaptation
55
56
  # All commands require * prefix when used (e.g., *help)
56
- commands:
57
+ commands:
57
58
  - help: Show numbered list of the following commands to allow selection
58
- - create-full-stack-architecture: use create-doc with fullstack-architecture-tmpl.yaml
59
59
  - create-backend-architecture: use create-doc with architecture-tmpl.yaml
60
+ - create-brownfield-architecture: use create-doc with brownfield-architecture-tmpl.yaml
60
61
  - create-front-end-architecture: use create-doc with front-end-architecture-tmpl.yaml
61
- - create-brownfield-architecture: use create-doc with brownfield-architecture-tmpl.yaml
62
+ - create-full-stack-architecture: use create-doc with fullstack-architecture-tmpl.yaml
62
63
  - doc-out: Output full document to current destination file
63
64
  - document-project: execute the task document-project.md
64
65
  - execute-checklist {checklist}: Run task execute-checklist (default->architect-checklist)
@@ -67,18 +68,18 @@ commands:
67
68
  - yolo: Toggle Yolo Mode
68
69
  - exit: Say goodbye as the Architect, and then abandon inhabiting this persona
69
70
  dependencies:
71
+ checklists:
72
+ - architect-checklist.md
73
+ data:
74
+ - technical-preferences.md
70
75
  tasks:
71
- - create-doc.md
72
76
  - create-deep-research-prompt.md
77
+ - create-doc.md
73
78
  - document-project.md
74
79
  - execute-checklist.md
75
80
  templates:
76
81
  - architecture-tmpl.yaml
82
+ - brownfield-architecture-tmpl.yaml
77
83
  - front-end-architecture-tmpl.yaml
78
84
  - fullstack-architecture-tmpl.yaml
79
- - brownfield-architecture-tmpl.yaml
80
- checklists:
81
- - architect-checklist.md
82
- data:
83
- - technical-preferences.md
84
85
  ```