@zeyue0329/xiaoma-cli 1.0.8 → 1.0.9

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 (315) hide show
  1. package/CHANGELOG.md +686 -0
  2. package/LICENSE +6 -1
  3. package/README.md +173 -460
  4. package/common/tasks/create-doc.md +3 -1
  5. package/common/tasks/execute-checklist.md +2 -7
  6. package/common/utils/bmad-doc-template.md +7 -5
  7. package/common/utils/workflow-management.md +2 -0
  8. package/dist/agents/analyst.txt +1143 -1118
  9. package/dist/agents/architect.txt +1555 -1531
  10. package/dist/agents/dev.txt +170 -22
  11. package/dist/agents/pm.txt +1103 -1106
  12. package/dist/agents/po.txt +329 -334
  13. package/dist/agents/qa.txt +1773 -154
  14. package/dist/agents/sm.txt +101 -102
  15. package/dist/agents/ux-expert.txt +93 -91
  16. package/dist/agents/xiaoma-master.txt +745 -673
  17. package/dist/agents/xiaoma-orchestrator.txt +107 -77
  18. package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2386 -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 +11008 -0
  22. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +4031 -0
  23. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3717 -0
  24. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +456 -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 +15450 -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 +6511 -0
  38. package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2087 -0
  39. package/dist/teams/team-all.txt +5710 -3857
  40. package/dist/teams/team-fullstack.txt +3242 -3157
  41. package/dist/teams/team-ide-minimal.txt +2330 -534
  42. package/dist/teams/team-no-ui.txt +2935 -2857
  43. package/docs/GUIDING-PRINCIPLES.md +91 -0
  44. package/docs/core-architecture.md +219 -0
  45. package/docs/enhanced-ide-development-workflow.md +248 -0
  46. package/docs/expansion-packs.md +200 -0
  47. package/docs/how-to-contribute-with-pull-requests.md +158 -0
  48. package/docs/user-guide.md +530 -0
  49. package/docs/versioning-and-releases.md +155 -0
  50. package/docs/versions.md +48 -0
  51. package/docs/working-in-the-brownfield.md +597 -0
  52. package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +14 -0
  53. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +73 -0
  54. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +80 -0
  55. package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +66 -0
  56. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +203 -0
  57. package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +162 -0
  58. package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +9 -0
  59. package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +252 -0
  60. package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +649 -0
  61. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +112 -0
  62. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +218 -0
  63. package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +292 -0
  64. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +614 -0
  65. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +357 -0
  66. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +344 -0
  67. package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +254 -0
  68. package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
  69. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +184 -0
  70. package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +176 -0
  71. package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +15 -0
  72. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +82 -0
  73. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +79 -0
  74. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +80 -0
  75. package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +67 -0
  76. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +393 -0
  77. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +205 -0
  78. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +203 -0
  79. package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +126 -0
  80. package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +7 -0
  81. package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +771 -0
  82. package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +588 -0
  83. package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +112 -0
  84. package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +143 -0
  85. package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +186 -0
  86. package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +292 -0
  87. package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +202 -0
  88. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +1031 -0
  89. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +357 -0
  90. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +706 -0
  91. package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +257 -0
  92. package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
  93. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +184 -0
  94. package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +176 -0
  95. package/expansion-packs/bmad-creative-writing/README.md +146 -0
  96. package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +20 -0
  97. package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +94 -0
  98. package/expansion-packs/bmad-creative-writing/agents/book-critic.md +40 -0
  99. package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +93 -0
  100. package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +46 -0
  101. package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +92 -0
  102. package/expansion-packs/bmad-creative-writing/agents/editor.md +93 -0
  103. package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +95 -0
  104. package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +93 -0
  105. package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +95 -0
  106. package/expansion-packs/bmad-creative-writing/agents/world-builder.md +94 -0
  107. package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +23 -0
  108. package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +23 -0
  109. package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +23 -0
  110. package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +23 -0
  111. package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +21 -0
  112. package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +23 -0
  113. package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +23 -0
  114. package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +22 -0
  115. package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +22 -0
  116. package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +23 -0
  117. package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +23 -0
  118. package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +25 -0
  119. package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +23 -0
  120. package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +23 -0
  121. package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +23 -0
  122. package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +23 -0
  123. package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +59 -0
  124. package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +23 -0
  125. package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +23 -0
  126. package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +23 -0
  127. package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +22 -0
  128. package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +23 -0
  129. package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +23 -0
  130. package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +23 -0
  131. package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +23 -0
  132. package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +23 -0
  133. package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +23 -0
  134. package/expansion-packs/bmad-creative-writing/config.yaml +12 -0
  135. package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +209 -0
  136. package/expansion-packs/bmad-creative-writing/data/story-structures.md +67 -0
  137. package/expansion-packs/bmad-creative-writing/docs/brief.md +212 -0
  138. package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +119 -0
  139. package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +23 -0
  140. package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +67 -0
  141. package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +29 -0
  142. package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +23 -0
  143. package/expansion-packs/bmad-creative-writing/tasks/build-world.md +24 -0
  144. package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +22 -0
  145. package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +103 -0
  146. package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +26 -0
  147. package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +26 -0
  148. package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +24 -0
  149. package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +88 -0
  150. package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +23 -0
  151. package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +23 -0
  152. package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +23 -0
  153. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +25 -0
  154. package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +26 -0
  155. package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +23 -0
  156. package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +25 -0
  157. package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +23 -0
  158. package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +24 -0
  159. package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +23 -0
  160. package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +22 -0
  161. package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +23 -0
  162. package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +64 -0
  163. package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +97 -0
  164. package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +82 -0
  165. package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
  166. package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +98 -0
  167. package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +78 -0
  168. package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +55 -0
  169. package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
  170. package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +89 -0
  171. package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +218 -0
  172. package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +56 -0
  173. package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +50 -0
  174. package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
  175. package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +91 -0
  176. package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +85 -0
  177. package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +78 -0
  178. package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +64 -0
  179. package/expansion-packs/bmad-infrastructure-devops/README.md +147 -0
  180. package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +73 -0
  181. package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +486 -0
  182. package/expansion-packs/bmad-infrastructure-devops/config.yaml +10 -0
  183. package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +307 -0
  184. package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +161 -0
  185. package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +155 -0
  186. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +425 -0
  187. package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +630 -0
  188. package/implement-fork-friendly-ci.sh +229 -0
  189. package/package.json +75 -45
  190. package/prettier.config.mjs +32 -0
  191. package/test.md +1 -0
  192. package/tools/builders/web-builder.js +128 -129
  193. package/tools/bump-all-versions.js +42 -33
  194. package/tools/bump-expansion-version.js +23 -16
  195. package/tools/cli.js +15 -15
  196. package/tools/flattener/aggregate.js +76 -0
  197. package/tools/flattener/binary.js +80 -0
  198. package/tools/flattener/discovery.js +71 -0
  199. package/tools/flattener/files.js +35 -0
  200. package/tools/flattener/ignoreRules.js +176 -0
  201. package/tools/flattener/main.js +458 -460
  202. package/tools/flattener/projectRoot.js +206 -0
  203. package/tools/flattener/prompts.js +44 -0
  204. package/tools/flattener/stats.helpers.js +395 -0
  205. package/tools/flattener/stats.js +80 -0
  206. package/tools/flattener/test-matrix.js +413 -0
  207. package/tools/flattener/xml.js +88 -0
  208. package/tools/installer/README.md +1 -1
  209. package/tools/installer/bin/xiaoma.js +377 -137
  210. package/tools/installer/config/ide-agent-config.yaml +3 -3
  211. package/tools/installer/config/install.config.yaml +73 -22
  212. package/tools/installer/lib/config-loader.js +48 -44
  213. package/tools/installer/lib/file-manager.js +91 -116
  214. package/tools/installer/lib/ide-base-setup.js +57 -56
  215. package/tools/installer/lib/ide-setup.js +816 -407
  216. package/tools/installer/lib/installer.js +915 -690
  217. package/tools/installer/lib/memory-profiler.js +54 -53
  218. package/tools/installer/lib/module-manager.js +19 -15
  219. package/tools/installer/lib/resource-locator.js +26 -28
  220. package/tools/installer/package-lock.json +67 -56
  221. package/tools/installer/package.json +24 -23
  222. package/tools/lib/dependency-resolver.js +30 -34
  223. package/tools/lib/yaml-utils.js +7 -7
  224. package/tools/md-assets/web-agent-startup-instructions.md +1 -1
  225. package/tools/preview-release-notes.js +66 -0
  226. package/tools/setup-hooks.sh +37 -0
  227. package/tools/shared/bannerArt.js +105 -0
  228. package/tools/sync-installer-version.js +7 -9
  229. package/tools/sync-version.sh +23 -0
  230. package/tools/update-expansion-version.js +14 -15
  231. package/tools/upgraders/v3-to-v4-upgrader.js +208 -299
  232. package/tools/version-bump.js +41 -26
  233. package/tools/xiaoma-npx-wrapper.js +11 -11
  234. package/tools/yaml-format.js +56 -43
  235. package/xiaoma-core/agent-teams/team-all.yaml +2 -1
  236. package/xiaoma-core/agent-teams/team-fullstack.yaml +1 -0
  237. package/xiaoma-core/agent-teams/team-ide-minimal.yaml +1 -0
  238. package/xiaoma-core/agent-teams/team-no-ui.yaml +1 -0
  239. package/xiaoma-core/agents/analyst.md +20 -17
  240. package/xiaoma-core/agents/architect.md +15 -14
  241. package/xiaoma-core/agents/dev.md +23 -18
  242. package/xiaoma-core/agents/pm.md +18 -15
  243. package/xiaoma-core/agents/po.md +13 -10
  244. package/xiaoma-core/agents/qa.md +46 -24
  245. package/xiaoma-core/agents/sm.md +11 -8
  246. package/xiaoma-core/agents/ux-expert.md +10 -7
  247. package/xiaoma-core/agents/xiaoma-master.md +24 -22
  248. package/xiaoma-core/agents/xiaoma-orchestrator.md +30 -33
  249. package/xiaoma-core/checklists/architect-checklist.md +2 -5
  250. package/xiaoma-core/checklists/change-checklist.md +4 -2
  251. package/xiaoma-core/checklists/pm-checklist.md +2 -5
  252. package/xiaoma-core/checklists/po-master-checklist.md +2 -9
  253. package/xiaoma-core/checklists/story-dod-checklist.md +2 -7
  254. package/xiaoma-core/checklists/story-draft-checklist.md +2 -3
  255. package/xiaoma-core/core-config.yaml +4 -1
  256. package/xiaoma-core/data/{xiaoma-kb.md → bmad-kb.md} +43 -37
  257. package/xiaoma-core/data/brainstorming-techniques.md +2 -0
  258. package/xiaoma-core/data/elicitation-methods.md +22 -0
  259. package/xiaoma-core/data/technical-preferences.md +2 -0
  260. package/xiaoma-core/data/test-levels-framework.md +148 -0
  261. package/xiaoma-core/data/test-priorities-matrix.md +174 -0
  262. package/xiaoma-core/tasks/advanced-elicitation.md +2 -0
  263. package/xiaoma-core/tasks/apply-qa-fixes.md +150 -0
  264. package/xiaoma-core/tasks/brownfield-create-epic.md +2 -0
  265. package/xiaoma-core/tasks/brownfield-create-story.md +2 -0
  266. package/xiaoma-core/tasks/correct-course.md +2 -0
  267. package/xiaoma-core/tasks/create-brownfield-story.md +14 -4
  268. package/xiaoma-core/tasks/create-deep-research-prompt.md +2 -11
  269. package/xiaoma-core/tasks/create-next-story.md +3 -1
  270. package/xiaoma-core/tasks/document-project.md +17 -13
  271. package/xiaoma-core/tasks/facilitate-brainstorming-session.md +5 -3
  272. package/xiaoma-core/tasks/generate-ai-frontend-prompt.md +2 -0
  273. package/xiaoma-core/tasks/index-docs.md +2 -6
  274. package/xiaoma-core/tasks/kb-mode-interaction.md +17 -15
  275. package/xiaoma-core/tasks/nfr-assess.md +345 -0
  276. package/xiaoma-core/tasks/qa-gate.md +163 -0
  277. package/xiaoma-core/tasks/review-story.md +245 -74
  278. package/xiaoma-core/tasks/risk-profile.md +355 -0
  279. package/xiaoma-core/tasks/shard-doc.md +2 -2
  280. package/xiaoma-core/tasks/test-design.md +176 -0
  281. package/xiaoma-core/tasks/trace-requirements.md +266 -0
  282. package/xiaoma-core/tasks/validate-next-story.md +2 -0
  283. package/xiaoma-core/templates/architecture-tmpl.yaml +50 -49
  284. package/xiaoma-core/templates/brainstorming-output-tmpl.yaml +5 -5
  285. package/xiaoma-core/templates/brownfield-architecture-tmpl.yaml +32 -31
  286. package/xiaoma-core/templates/brownfield-prd-tmpl.yaml +14 -13
  287. package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +20 -6
  288. package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +22 -9
  289. package/xiaoma-core/templates/front-end-spec-tmpl.yaml +25 -24
  290. package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +123 -104
  291. package/xiaoma-core/templates/market-research-tmpl.yaml +3 -2
  292. package/xiaoma-core/templates/prd-tmpl.yaml +10 -9
  293. package/xiaoma-core/templates/project-brief-tmpl.yaml +5 -4
  294. package/xiaoma-core/templates/qa-gate-tmpl.yaml +103 -0
  295. package/xiaoma-core/templates/story-tmpl.yaml +13 -12
  296. package/xiaoma-core/workflows/brownfield-fullstack.yaml +13 -12
  297. package/xiaoma-core/workflows/brownfield-service.yaml +5 -4
  298. package/xiaoma-core/workflows/brownfield-ui.yaml +5 -4
  299. package/xiaoma-core/workflows/greenfield-fullstack.yaml +7 -6
  300. package/xiaoma-core/workflows/greenfield-service.yaml +5 -4
  301. package/xiaoma-core/workflows/greenfield-ui.yaml +6 -5
  302. package/.releaserc.json +0 -18
  303. package/.vscode/settings.json +0 -44
  304. 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
  305. 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
  306. 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
  307. package/XiaoMa-Web/351/241/271/347/233/256/346/200/273/347/273/223/346/212/245/345/221/212.md +0 -310
  308. package/dist/agents/dev-cn.txt +0 -428
  309. package/docs/quick-start.md +0 -179
  310. package/tools/bmad-npx-wrapper.js +0 -39
  311. package/tools/semantic-release-sync-installer.js +0 -30
  312. package/xiaoma-core/bmad-core/user-guide.md +0 -0
  313. package/xiaoma-core/enhanced-ide-development-workflow.md +0 -43
  314. package/xiaoma-core/user-guide.md +0 -251
  315. 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
20
  const xiaomaScriptPath = path.join(__dirname, 'installer', 'bin', 'xiaoma.js');
21
-
21
+
22
22
  if (!fs.existsSync(xiaomaScriptPath)) {
23
23
  console.error('Error: Could not find xiaoma.js at', xiaomaScriptPath);
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 "${xiaomaScriptPath}" ${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 XiaoMa™ Core -->
1
2
  bundle:
2
3
  name: Team All
3
4
  icon: 👥
4
5
  description: Includes every core system agent.
5
6
  agents:
6
7
  - xiaoma-orchestrator
7
- - '*'
8
+ - "*"
8
9
  workflows:
9
10
  - brownfield-fullstack.yaml
10
11
  - brownfield-service.yaml
@@ -1,3 +1,4 @@
1
+ # <!-- Powered by XiaoMa™ Core -->
1
2
  bundle:
2
3
  name: Team Fullstack
3
4
  icon: 🚀
@@ -1,3 +1,4 @@
1
+ # <!-- Powered by BMAD™ Core -->
1
2
  bundle:
2
3
  name: Team IDE Minimal
3
4
  icon: ⚡
@@ -1,3 +1,4 @@
1
+ # <!-- Powered by XiaoMa™ Core -->
1
2
  bundle:
2
3
  name: Team No UI
3
4
  icon: 🔧
@@ -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 `xiaoma-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 `xiaoma-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
  ```
@@ -1,3 +1,5 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
1
3
  # dev
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 `xiaoma-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
@@ -29,16 +32,15 @@ activation-instructions:
29
32
  - CRITICAL: Read the following full files as these are your explicit rules for development standards for this project - {root}/core-config.yaml devLoadAlwaysFiles list
30
33
  - CRITICAL: Do NOT load any other files during startup aside from the assigned story and devLoadAlwaysFiles items, unless user requested you do or the following contradicts
31
34
  - CRITICAL: Do NOT begin development until a story is not in draft mode and you are told to proceed
32
- - 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.
35
+ - 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.
33
36
  agent:
34
- name: xiaokai
37
+ name: James
35
38
  id: dev
36
39
  title: Full Stack Developer
37
40
  icon: 💻
38
- whenToUse: "Use for code implementation, debugging, refactoring, and development best practices"
41
+ whenToUse: 'Use for code implementation, debugging, refactoring, and development best practices'
39
42
  customization:
40
43
 
41
-
42
44
  persona:
43
45
  role: Expert Senior Software Engineer & Implementation Specialist
44
46
  style: Extremely concise, pragmatic, detail-oriented, solution-focused
@@ -47,30 +49,33 @@ persona:
47
49
 
48
50
  core_principles:
49
51
  - CRITICAL: Story has ALL info you will need aside from what you loaded during the startup commands. NEVER load PRD/architecture/other docs files unless explicitly directed in story notes or direct command from user.
52
+ - CRITICAL: ALWAYS check current folder structure before starting your story tasks, don't create new working directory if it already exists. Create new one when you're sure it's a brand new project.
50
53
  - CRITICAL: ONLY update story file Dev Agent Record sections (checkboxes/Debug Log/Completion Notes/Change Log)
51
54
  - CRITICAL: FOLLOW THE develop-story command when the user tells you to implement the story
52
55
  - Numbered Options - Always use numbered lists when presenting choices to the user
53
56
 
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
- - run-tests: Execute linting and tests
60
+ - develop-story:
61
+ - order-of-execution: 'Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete'
62
+ - story-file-updates-ONLY:
63
+ - CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
64
+ - CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
65
+ - CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
66
+ - blocking: 'HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression'
67
+ - ready-for-review: 'Code matches requirements + All validations pass + Follows standards + File List complete'
68
+ - completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist story-dod-checklist→set story status: 'Ready for Review'→HALT"
58
69
  - explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior engineer.
70
+ - review-qa: run task `apply-qa-fixes.md'
71
+ - run-tests: Execute linting and tests
59
72
  - exit: Say goodbye as the Developer, and then abandon inhabiting this persona
60
- - develop-story:
61
- - order-of-execution: "Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete"
62
- - story-file-updates-ONLY:
63
- - CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
64
- - CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
65
- - CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
66
- - blocking: "HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression"
67
- - ready-for-review: "Code matches requirements + All validations pass + Follows standards + File List complete"
68
- - completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist story-dod-checklist→set story status: 'Ready for Review'→HALT"
69
73
 
70
74
  dependencies:
75
+ checklists:
76
+ - story-dod-checklist.md
71
77
  tasks:
78
+ - apply-qa-fixes.md
72
79
  - execute-checklist.md
73
80
  - validate-next-story.md
74
- checklists:
75
- - story-dod-checklist.md
76
81
  ```