wizz-method 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. package/.claude-plugin/marketplace.json +80 -0
  2. package/AGENTS.md +12 -0
  3. package/LICENSE +30 -0
  4. package/README.md +72 -0
  5. package/bmad-modules.yaml +77 -0
  6. package/build/artifacts/llms-full.txt +4049 -0
  7. package/build/artifacts/llms.txt +28 -0
  8. package/build/site/404.html +55 -0
  9. package/build/site/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js +1 -0
  10. package/build/site/_astro/Search.astro_astro_type_script_index_0_lang.cjYDvRdi.js +1 -0
  11. package/build/site/_astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js +1 -0
  12. package/build/site/_astro/ec.0vx5m.js +3 -0
  13. package/build/site/_astro/ec.v4551.css +1 -0
  14. package/build/site/_astro/index.DdjI3lF_.css +1 -0
  15. package/build/site/_astro/page.B1D-nYk3.js +1 -0
  16. package/build/site/_astro/print.DNXP8c50.css +1 -0
  17. package/build/site/_astro/ui-core.D_Lfcn_I.js +2 -0
  18. package/build/site/cs/404/index.html +42 -0
  19. package/build/site/cs/explanation/advanced-elicitation/index.html +105 -0
  20. package/build/site/cs/explanation/adversarial-review/index.html +109 -0
  21. package/build/site/cs/explanation/analysis-phase/index.html +129 -0
  22. package/build/site/cs/explanation/brainstorming/index.html +92 -0
  23. package/build/site/cs/explanation/checkpoint-preview/index.html +121 -0
  24. package/build/site/cs/explanation/established-projects-faq/index.html +107 -0
  25. package/build/site/cs/explanation/forensic-investigation/index.html +167 -0
  26. package/build/site/cs/explanation/named-agents/index.html +187 -0
  27. package/build/site/cs/explanation/party-mode/index.html +101 -0
  28. package/build/site/cs/explanation/preventing-agent-conflicts/index.html +185 -0
  29. package/build/site/cs/explanation/project-context/index.html +198 -0
  30. package/build/site/cs/explanation/quick-dev/index.html +113 -0
  31. package/build/site/cs/explanation/web-bundles/index.html +178 -0
  32. package/build/site/cs/explanation/why-solutioning-matters/index.html +168 -0
  33. package/build/site/cs/how-to/customize-bmad/index.html +197 -0
  34. package/build/site/cs/how-to/established-projects/index.html +165 -0
  35. package/build/site/cs/how-to/expand-bmad-for-your-org/index.html +245 -0
  36. package/build/site/cs/how-to/get-answers-about-bmad/index.html +179 -0
  37. package/build/site/cs/how-to/install-bmad/index.html +124 -0
  38. package/build/site/cs/how-to/install-custom-modules/index.html +197 -0
  39. package/build/site/cs/how-to/non-interactive-installation/index.html +255 -0
  40. package/build/site/cs/how-to/project-context/index.html +138 -0
  41. package/build/site/cs/how-to/quick-fixes/index.html +122 -0
  42. package/build/site/cs/how-to/shard-large-documents/index.html +103 -0
  43. package/build/site/cs/how-to/upgrade-to-v6/index.html +185 -0
  44. package/build/site/cs/how-to/use-web-bundles/index.html +99 -0
  45. package/build/site/cs/index.html +129 -0
  46. package/build/site/cs/reference/agents/index.html +173 -0
  47. package/build/site/cs/reference/commands/index.html +250 -0
  48. package/build/site/cs/reference/core-tools/index.html +337 -0
  49. package/build/site/cs/reference/modules/index.html +132 -0
  50. package/build/site/cs/reference/testing/index.html +218 -0
  51. package/build/site/cs/reference/workflow-map/index.html +240 -0
  52. package/build/site/cs/roadmap/index.html +77 -0
  53. package/build/site/cs/tutorials/getting-started/index.html +382 -0
  54. package/build/site/diagrams/checkpoint-preview-diagram-fr.webp +0 -0
  55. package/build/site/diagrams/checkpoint-preview-diagram.png +0 -0
  56. package/build/site/diagrams/quick-dev-diagram-fr.webp +0 -0
  57. package/build/site/diagrams/quick-dev-diagram.png +0 -0
  58. package/build/site/explanation/advanced-elicitation/index.html +105 -0
  59. package/build/site/explanation/adversarial-review/index.html +109 -0
  60. package/build/site/explanation/analysis-phase/index.html +129 -0
  61. package/build/site/explanation/brainstorming/index.html +92 -0
  62. package/build/site/explanation/checkpoint-preview/index.html +121 -0
  63. package/build/site/explanation/established-projects-faq/index.html +107 -0
  64. package/build/site/explanation/forensic-investigation/index.html +167 -0
  65. package/build/site/explanation/named-agents/index.html +187 -0
  66. package/build/site/explanation/party-mode/index.html +256 -0
  67. package/build/site/explanation/preventing-agent-conflicts/index.html +185 -0
  68. package/build/site/explanation/project-context/index.html +198 -0
  69. package/build/site/explanation/quick-dev/index.html +113 -0
  70. package/build/site/explanation/web-bundles/index.html +178 -0
  71. package/build/site/explanation/why-solutioning-matters/index.html +168 -0
  72. package/build/site/fr/404/index.html +42 -0
  73. package/build/site/fr/explanation/advanced-elicitation/index.html +105 -0
  74. package/build/site/fr/explanation/adversarial-review/index.html +126 -0
  75. package/build/site/fr/explanation/analysis-phase/index.html +137 -0
  76. package/build/site/fr/explanation/brainstorming/index.html +92 -0
  77. package/build/site/fr/explanation/checkpoint-preview/index.html +121 -0
  78. package/build/site/fr/explanation/established-projects-faq/index.html +107 -0
  79. package/build/site/fr/explanation/forensic-investigation/index.html +194 -0
  80. package/build/site/fr/explanation/named-agents/index.html +187 -0
  81. package/build/site/fr/explanation/party-mode/index.html +112 -0
  82. package/build/site/fr/explanation/preventing-agent-conflicts/index.html +196 -0
  83. package/build/site/fr/explanation/project-context/index.html +198 -0
  84. package/build/site/fr/explanation/quick-dev/index.html +127 -0
  85. package/build/site/fr/explanation/web-bundles/index.html +198 -0
  86. package/build/site/fr/explanation/why-solutioning-matters/index.html +191 -0
  87. package/build/site/fr/how-to/customize-bmad/index.html +277 -0
  88. package/build/site/fr/how-to/established-projects/index.html +176 -0
  89. package/build/site/fr/how-to/expand-bmad-for-your-org/index.html +245 -0
  90. package/build/site/fr/how-to/get-answers-about-bmad/index.html +129 -0
  91. package/build/site/fr/how-to/install-bmad/index.html +330 -0
  92. package/build/site/fr/how-to/install-custom-modules/index.html +197 -0
  93. package/build/site/fr/how-to/non-interactive-installation/index.html +73 -0
  94. package/build/site/fr/how-to/project-context/index.html +138 -0
  95. package/build/site/fr/how-to/quick-fixes/index.html +130 -0
  96. package/build/site/fr/how-to/shard-large-documents/index.html +103 -0
  97. package/build/site/fr/how-to/upgrade-to-v6/index.html +202 -0
  98. package/build/site/fr/how-to/use-web-bundles/index.html +99 -0
  99. package/build/site/fr/index.html +144 -0
  100. package/build/site/fr/reference/agents/index.html +179 -0
  101. package/build/site/fr/reference/commands/index.html +264 -0
  102. package/build/site/fr/reference/core-tools/index.html +392 -0
  103. package/build/site/fr/reference/modules/index.html +146 -0
  104. package/build/site/fr/reference/testing/index.html +229 -0
  105. package/build/site/fr/reference/workflow-map/index.html +282 -0
  106. package/build/site/fr/roadmap/index.html +77 -0
  107. package/build/site/fr/tutorials/getting-started/index.html +406 -0
  108. package/build/site/how-to/customize-bmad/index.html +277 -0
  109. package/build/site/how-to/established-projects/index.html +165 -0
  110. package/build/site/how-to/expand-bmad-for-your-org/index.html +245 -0
  111. package/build/site/how-to/get-answers-about-bmad/index.html +129 -0
  112. package/build/site/how-to/install-bmad/index.html +330 -0
  113. package/build/site/how-to/install-custom-modules/index.html +197 -0
  114. package/build/site/how-to/non-interactive-installation/index.html +73 -0
  115. package/build/site/how-to/project-context/index.html +141 -0
  116. package/build/site/how-to/quick-fixes/index.html +122 -0
  117. package/build/site/how-to/shard-large-documents/index.html +103 -0
  118. package/build/site/how-to/upgrade-to-v6/index.html +185 -0
  119. package/build/site/how-to/use-web-bundles/index.html +99 -0
  120. package/build/site/img/bmad-dark.png +0 -0
  121. package/build/site/img/bmad-light.png +0 -0
  122. package/build/site/index.html +128 -0
  123. package/build/site/llms-full.txt +4049 -0
  124. package/build/site/llms.txt +28 -0
  125. package/build/site/pagefind/fragment/cs-cz_178b946.pf_fragment +0 -0
  126. package/build/site/pagefind/fragment/cs-cz_19e1744.pf_fragment +0 -0
  127. package/build/site/pagefind/fragment/cs-cz_1b81518.pf_fragment +0 -0
  128. package/build/site/pagefind/fragment/cs-cz_24fd94a.pf_fragment +0 -0
  129. package/build/site/pagefind/fragment/cs-cz_25c5ff1.pf_fragment +0 -0
  130. package/build/site/pagefind/fragment/cs-cz_2a7d8c4.pf_fragment +0 -0
  131. package/build/site/pagefind/fragment/cs-cz_2b14d1f.pf_fragment +0 -0
  132. package/build/site/pagefind/fragment/cs-cz_34d3775.pf_fragment +0 -0
  133. package/build/site/pagefind/fragment/cs-cz_366f93d.pf_fragment +0 -0
  134. package/build/site/pagefind/fragment/cs-cz_4761b65.pf_fragment +0 -0
  135. package/build/site/pagefind/fragment/cs-cz_4d1a40a.pf_fragment +0 -0
  136. package/build/site/pagefind/fragment/cs-cz_57dfabb.pf_fragment +0 -0
  137. package/build/site/pagefind/fragment/cs-cz_5c68f33.pf_fragment +0 -0
  138. package/build/site/pagefind/fragment/cs-cz_5efaba9.pf_fragment +0 -0
  139. package/build/site/pagefind/fragment/cs-cz_5f63a83.pf_fragment +0 -0
  140. package/build/site/pagefind/fragment/cs-cz_73bbdce.pf_fragment +0 -0
  141. package/build/site/pagefind/fragment/cs-cz_7b6af37.pf_fragment +0 -0
  142. package/build/site/pagefind/fragment/cs-cz_7d51fe5.pf_fragment +0 -0
  143. package/build/site/pagefind/fragment/cs-cz_7db5922.pf_fragment +0 -0
  144. package/build/site/pagefind/fragment/cs-cz_83e7116.pf_fragment +0 -0
  145. package/build/site/pagefind/fragment/cs-cz_83fec4e.pf_fragment +0 -0
  146. package/build/site/pagefind/fragment/cs-cz_84972ee.pf_fragment +0 -0
  147. package/build/site/pagefind/fragment/cs-cz_94e9289.pf_fragment +0 -0
  148. package/build/site/pagefind/fragment/cs-cz_a0a122c.pf_fragment +0 -0
  149. package/build/site/pagefind/fragment/cs-cz_a3e7fad.pf_fragment +0 -0
  150. package/build/site/pagefind/fragment/cs-cz_af43e66.pf_fragment +0 -0
  151. package/build/site/pagefind/fragment/cs-cz_b4f4e0a.pf_fragment +0 -0
  152. package/build/site/pagefind/fragment/cs-cz_b51b8b3.pf_fragment +0 -0
  153. package/build/site/pagefind/fragment/cs-cz_ba705d5.pf_fragment +0 -0
  154. package/build/site/pagefind/fragment/cs-cz_c315625.pf_fragment +0 -0
  155. package/build/site/pagefind/fragment/cs-cz_cf5138a.pf_fragment +0 -0
  156. package/build/site/pagefind/fragment/cs-cz_df8bdfe.pf_fragment +0 -0
  157. package/build/site/pagefind/fragment/cs-cz_e1b56f8.pf_fragment +0 -0
  158. package/build/site/pagefind/fragment/cs-cz_e3e33bb.pf_fragment +0 -0
  159. package/build/site/pagefind/fragment/cs-cz_f9d07b3.pf_fragment +0 -0
  160. package/build/site/pagefind/fragment/en_026af96.pf_fragment +0 -0
  161. package/build/site/pagefind/fragment/en_132ea1f.pf_fragment +0 -0
  162. package/build/site/pagefind/fragment/en_15ee460.pf_fragment +0 -0
  163. package/build/site/pagefind/fragment/en_171773c.pf_fragment +0 -0
  164. package/build/site/pagefind/fragment/en_1a7ec42.pf_fragment +0 -0
  165. package/build/site/pagefind/fragment/en_1bb5ebb.pf_fragment +0 -0
  166. package/build/site/pagefind/fragment/en_229434b.pf_fragment +0 -0
  167. package/build/site/pagefind/fragment/en_22b33a0.pf_fragment +0 -0
  168. package/build/site/pagefind/fragment/en_38efcf3.pf_fragment +0 -0
  169. package/build/site/pagefind/fragment/en_3d17cef.pf_fragment +0 -0
  170. package/build/site/pagefind/fragment/en_426a8fd.pf_fragment +0 -0
  171. package/build/site/pagefind/fragment/en_446b27a.pf_fragment +0 -0
  172. package/build/site/pagefind/fragment/en_582ecad.pf_fragment +0 -0
  173. package/build/site/pagefind/fragment/en_5d6b1f1.pf_fragment +0 -0
  174. package/build/site/pagefind/fragment/en_6465dfb.pf_fragment +0 -0
  175. package/build/site/pagefind/fragment/en_66f3f7a.pf_fragment +0 -0
  176. package/build/site/pagefind/fragment/en_68872f8.pf_fragment +0 -0
  177. package/build/site/pagefind/fragment/en_6e9deef.pf_fragment +0 -0
  178. package/build/site/pagefind/fragment/en_70a6a7e.pf_fragment +0 -0
  179. package/build/site/pagefind/fragment/en_73f0b1e.pf_fragment +0 -0
  180. package/build/site/pagefind/fragment/en_768fd99.pf_fragment +0 -0
  181. package/build/site/pagefind/fragment/en_7e52baa.pf_fragment +0 -0
  182. package/build/site/pagefind/fragment/en_8068cdc.pf_fragment +0 -0
  183. package/build/site/pagefind/fragment/en_9385c94.pf_fragment +0 -0
  184. package/build/site/pagefind/fragment/en_95b9c04.pf_fragment +0 -0
  185. package/build/site/pagefind/fragment/en_9a95e82.pf_fragment +0 -0
  186. package/build/site/pagefind/fragment/en_a66c4ef.pf_fragment +0 -0
  187. package/build/site/pagefind/fragment/en_ac6318c.pf_fragment +0 -0
  188. package/build/site/pagefind/fragment/en_bba8f66.pf_fragment +0 -0
  189. package/build/site/pagefind/fragment/en_d9f7193.pf_fragment +0 -0
  190. package/build/site/pagefind/fragment/en_e0e52b1.pf_fragment +0 -0
  191. package/build/site/pagefind/fragment/en_ece4cbe.pf_fragment +0 -0
  192. package/build/site/pagefind/fragment/en_ed6969c.pf_fragment +0 -0
  193. package/build/site/pagefind/fragment/en_f12187d.pf_fragment +0 -0
  194. package/build/site/pagefind/fragment/en_f643df1.pf_fragment +0 -0
  195. package/build/site/pagefind/fragment/fr-fr_10fdc25.pf_fragment +0 -0
  196. package/build/site/pagefind/fragment/fr-fr_132e2e0.pf_fragment +0 -0
  197. package/build/site/pagefind/fragment/fr-fr_1529d31.pf_fragment +0 -0
  198. package/build/site/pagefind/fragment/fr-fr_1531e2c.pf_fragment +0 -0
  199. package/build/site/pagefind/fragment/fr-fr_1d51fb7.pf_fragment +0 -0
  200. package/build/site/pagefind/fragment/fr-fr_27d0aaf.pf_fragment +0 -0
  201. package/build/site/pagefind/fragment/fr-fr_583aea8.pf_fragment +0 -0
  202. package/build/site/pagefind/fragment/fr-fr_5c4f14f.pf_fragment +0 -0
  203. package/build/site/pagefind/fragment/fr-fr_654bb96.pf_fragment +0 -0
  204. package/build/site/pagefind/fragment/fr-fr_65e37ae.pf_fragment +0 -0
  205. package/build/site/pagefind/fragment/fr-fr_6898afa.pf_fragment +0 -0
  206. package/build/site/pagefind/fragment/fr-fr_68d0a0b.pf_fragment +0 -0
  207. package/build/site/pagefind/fragment/fr-fr_6ce4bc1.pf_fragment +0 -0
  208. package/build/site/pagefind/fragment/fr-fr_7ddd126.pf_fragment +0 -0
  209. package/build/site/pagefind/fragment/fr-fr_7f50a2e.pf_fragment +0 -0
  210. package/build/site/pagefind/fragment/fr-fr_8d2df1b.pf_fragment +0 -0
  211. package/build/site/pagefind/fragment/fr-fr_9b8d33d.pf_fragment +0 -0
  212. package/build/site/pagefind/fragment/fr-fr_9c7f851.pf_fragment +0 -0
  213. package/build/site/pagefind/fragment/fr-fr_9cf6892.pf_fragment +0 -0
  214. package/build/site/pagefind/fragment/fr-fr_a512e53.pf_fragment +0 -0
  215. package/build/site/pagefind/fragment/fr-fr_a7ad3f6.pf_fragment +0 -0
  216. package/build/site/pagefind/fragment/fr-fr_afeac81.pf_fragment +0 -0
  217. package/build/site/pagefind/fragment/fr-fr_b364826.pf_fragment +0 -0
  218. package/build/site/pagefind/fragment/fr-fr_bdb3e1e.pf_fragment +0 -0
  219. package/build/site/pagefind/fragment/fr-fr_c4884c3.pf_fragment +0 -0
  220. package/build/site/pagefind/fragment/fr-fr_c54c827.pf_fragment +0 -0
  221. package/build/site/pagefind/fragment/fr-fr_ca664c2.pf_fragment +0 -0
  222. package/build/site/pagefind/fragment/fr-fr_ce3562d.pf_fragment +0 -0
  223. package/build/site/pagefind/fragment/fr-fr_d086476.pf_fragment +0 -0
  224. package/build/site/pagefind/fragment/fr-fr_d0b4e62.pf_fragment +0 -0
  225. package/build/site/pagefind/fragment/fr-fr_df4c57f.pf_fragment +0 -0
  226. package/build/site/pagefind/fragment/fr-fr_e1c2fa8.pf_fragment +0 -0
  227. package/build/site/pagefind/fragment/fr-fr_eaa1363.pf_fragment +0 -0
  228. package/build/site/pagefind/fragment/fr-fr_f456c69.pf_fragment +0 -0
  229. package/build/site/pagefind/fragment/fr-fr_fe8d783.pf_fragment +0 -0
  230. package/build/site/pagefind/fragment/vi-vn_1e5b1da.pf_fragment +0 -0
  231. package/build/site/pagefind/fragment/vi-vn_3268948.pf_fragment +0 -0
  232. package/build/site/pagefind/fragment/vi-vn_37f0bf6.pf_fragment +0 -0
  233. package/build/site/pagefind/fragment/vi-vn_485232c.pf_fragment +0 -0
  234. package/build/site/pagefind/fragment/vi-vn_4d3bd13.pf_fragment +0 -0
  235. package/build/site/pagefind/fragment/vi-vn_4e578d2.pf_fragment +0 -0
  236. package/build/site/pagefind/fragment/vi-vn_4ed2533.pf_fragment +0 -0
  237. package/build/site/pagefind/fragment/vi-vn_533743c.pf_fragment +0 -0
  238. package/build/site/pagefind/fragment/vi-vn_5ffd258.pf_fragment +0 -0
  239. package/build/site/pagefind/fragment/vi-vn_6bfed03.pf_fragment +0 -0
  240. package/build/site/pagefind/fragment/vi-vn_6f2ed6d.pf_fragment +0 -0
  241. package/build/site/pagefind/fragment/vi-vn_71aa305.pf_fragment +0 -0
  242. package/build/site/pagefind/fragment/vi-vn_7577c2c.pf_fragment +0 -0
  243. package/build/site/pagefind/fragment/vi-vn_7883435.pf_fragment +0 -0
  244. package/build/site/pagefind/fragment/vi-vn_7f2e496.pf_fragment +0 -0
  245. package/build/site/pagefind/fragment/vi-vn_7fce614.pf_fragment +0 -0
  246. package/build/site/pagefind/fragment/vi-vn_86274a6.pf_fragment +0 -0
  247. package/build/site/pagefind/fragment/vi-vn_8c4fd62.pf_fragment +0 -0
  248. package/build/site/pagefind/fragment/vi-vn_a06c773.pf_fragment +0 -0
  249. package/build/site/pagefind/fragment/vi-vn_a2e535b.pf_fragment +0 -0
  250. package/build/site/pagefind/fragment/vi-vn_a4b9dbc.pf_fragment +0 -0
  251. package/build/site/pagefind/fragment/vi-vn_b2d8e01.pf_fragment +0 -0
  252. package/build/site/pagefind/fragment/vi-vn_b631cf6.pf_fragment +0 -0
  253. package/build/site/pagefind/fragment/vi-vn_c970ebb.pf_fragment +0 -0
  254. package/build/site/pagefind/fragment/vi-vn_d229f2a.pf_fragment +0 -0
  255. package/build/site/pagefind/fragment/vi-vn_d685e88.pf_fragment +0 -0
  256. package/build/site/pagefind/fragment/vi-vn_dab2c52.pf_fragment +0 -0
  257. package/build/site/pagefind/fragment/vi-vn_df5a829.pf_fragment +0 -0
  258. package/build/site/pagefind/fragment/vi-vn_dfcf280.pf_fragment +0 -0
  259. package/build/site/pagefind/fragment/vi-vn_e8ec8cf.pf_fragment +0 -0
  260. package/build/site/pagefind/fragment/vi-vn_e9f3439.pf_fragment +0 -0
  261. package/build/site/pagefind/fragment/vi-vn_f0bfe83.pf_fragment +0 -0
  262. package/build/site/pagefind/fragment/vi-vn_f5462f7.pf_fragment +0 -0
  263. package/build/site/pagefind/fragment/vi-vn_fcc9bb7.pf_fragment +0 -0
  264. package/build/site/pagefind/fragment/vi-vn_fd55264.pf_fragment +0 -0
  265. package/build/site/pagefind/fragment/vi-vn_ffd39df.pf_fragment +0 -0
  266. package/build/site/pagefind/fragment/zh-cn_119c5bb.pf_fragment +0 -0
  267. package/build/site/pagefind/fragment/zh-cn_198e8ce.pf_fragment +0 -0
  268. package/build/site/pagefind/fragment/zh-cn_19b87a8.pf_fragment +0 -0
  269. package/build/site/pagefind/fragment/zh-cn_1edc3a5.pf_fragment +0 -0
  270. package/build/site/pagefind/fragment/zh-cn_36ae67a.pf_fragment +0 -0
  271. package/build/site/pagefind/fragment/zh-cn_37ab313.pf_fragment +0 -0
  272. package/build/site/pagefind/fragment/zh-cn_3b56778.pf_fragment +0 -0
  273. package/build/site/pagefind/fragment/zh-cn_5735cd4.pf_fragment +0 -0
  274. package/build/site/pagefind/fragment/zh-cn_6110769.pf_fragment +0 -0
  275. package/build/site/pagefind/fragment/zh-cn_6d66d9e.pf_fragment +0 -0
  276. package/build/site/pagefind/fragment/zh-cn_731b3f5.pf_fragment +0 -0
  277. package/build/site/pagefind/fragment/zh-cn_82885ff.pf_fragment +0 -0
  278. package/build/site/pagefind/fragment/zh-cn_8be7aac.pf_fragment +0 -0
  279. package/build/site/pagefind/fragment/zh-cn_8c3fa9e.pf_fragment +0 -0
  280. package/build/site/pagefind/fragment/zh-cn_8f452f7.pf_fragment +0 -0
  281. package/build/site/pagefind/fragment/zh-cn_96ccc61.pf_fragment +0 -0
  282. package/build/site/pagefind/fragment/zh-cn_9f29932.pf_fragment +0 -0
  283. package/build/site/pagefind/fragment/zh-cn_a24d786.pf_fragment +0 -0
  284. package/build/site/pagefind/fragment/zh-cn_a598178.pf_fragment +0 -0
  285. package/build/site/pagefind/fragment/zh-cn_a603f17.pf_fragment +0 -0
  286. package/build/site/pagefind/fragment/zh-cn_a9cffcf.pf_fragment +0 -0
  287. package/build/site/pagefind/fragment/zh-cn_c1bebbd.pf_fragment +0 -0
  288. package/build/site/pagefind/fragment/zh-cn_c38cf84.pf_fragment +0 -0
  289. package/build/site/pagefind/fragment/zh-cn_c42a851.pf_fragment +0 -0
  290. package/build/site/pagefind/fragment/zh-cn_ce57c6e.pf_fragment +0 -0
  291. package/build/site/pagefind/fragment/zh-cn_d4b5cd5.pf_fragment +0 -0
  292. package/build/site/pagefind/fragment/zh-cn_da40e6b.pf_fragment +0 -0
  293. package/build/site/pagefind/fragment/zh-cn_da777ec.pf_fragment +0 -0
  294. package/build/site/pagefind/fragment/zh-cn_de145f9.pf_fragment +0 -0
  295. package/build/site/pagefind/fragment/zh-cn_e376bf7.pf_fragment +0 -0
  296. package/build/site/pagefind/fragment/zh-cn_e663978.pf_fragment +0 -0
  297. package/build/site/pagefind/fragment/zh-cn_e97a13b.pf_fragment +0 -0
  298. package/build/site/pagefind/fragment/zh-cn_f13873d.pf_fragment +0 -0
  299. package/build/site/pagefind/fragment/zh-cn_f25fad4.pf_fragment +0 -0
  300. package/build/site/pagefind/fragment/zh-cn_f7edf48.pf_fragment +0 -0
  301. package/build/site/pagefind/index/cs-cz_24147b6.pf_index +0 -0
  302. package/build/site/pagefind/index/cs-cz_82fc657.pf_index +0 -0
  303. package/build/site/pagefind/index/cs-cz_8f6a83c.pf_index +0 -0
  304. package/build/site/pagefind/index/en_432f933.pf_index +0 -0
  305. package/build/site/pagefind/index/en_70c744a.pf_index +0 -0
  306. package/build/site/pagefind/index/en_fd84991.pf_index +0 -0
  307. package/build/site/pagefind/index/fr-fr_7275484.pf_index +0 -0
  308. package/build/site/pagefind/index/fr-fr_8096dd3.pf_index +0 -0
  309. package/build/site/pagefind/index/fr-fr_b34df12.pf_index +0 -0
  310. package/build/site/pagefind/index/fr-fr_e6ad665.pf_index +0 -0
  311. package/build/site/pagefind/index/vi-vn_129cf7e.pf_index +0 -0
  312. package/build/site/pagefind/index/vi-vn_7f54472.pf_index +0 -0
  313. package/build/site/pagefind/index/vi-vn_c1f31ce.pf_index +0 -0
  314. package/build/site/pagefind/index/vi-vn_c56f634.pf_index +0 -0
  315. package/build/site/pagefind/index/zh-cn_5ed0486.pf_index +0 -0
  316. package/build/site/pagefind/index/zh-cn_ad4d724.pf_index +0 -0
  317. package/build/site/pagefind/index/zh-cn_bc9f7b6.pf_index +0 -0
  318. package/build/site/pagefind/pagefind-entry.json +1 -0
  319. package/build/site/pagefind/pagefind-highlight.js +1064 -0
  320. package/build/site/pagefind/pagefind-modular-ui.css +214 -0
  321. package/build/site/pagefind/pagefind-modular-ui.js +8 -0
  322. package/build/site/pagefind/pagefind-ui.css +1 -0
  323. package/build/site/pagefind/pagefind-ui.js +2 -0
  324. package/build/site/pagefind/pagefind.cs-cz_cd39a8505eabf.pf_meta +0 -0
  325. package/build/site/pagefind/pagefind.en_8ae84a1b9c.pf_meta +0 -0
  326. package/build/site/pagefind/pagefind.fr-fr_20fca6f342d9a.pf_meta +0 -0
  327. package/build/site/pagefind/pagefind.js +6 -0
  328. package/build/site/pagefind/pagefind.vi-vn_6a45d08c2bbc8.pf_meta +0 -0
  329. package/build/site/pagefind/pagefind.zh-cn_ae911ac338eae.pf_meta +0 -0
  330. package/build/site/pagefind/wasm.en.pagefind +0 -0
  331. package/build/site/pagefind/wasm.fr-fr.pagefind +0 -0
  332. package/build/site/pagefind/wasm.unknown.pagefind +0 -0
  333. package/build/site/reference/agents/index.html +168 -0
  334. package/build/site/reference/commands/index.html +254 -0
  335. package/build/site/reference/core-tools/index.html +384 -0
  336. package/build/site/reference/modules/index.html +132 -0
  337. package/build/site/reference/testing/index.html +218 -0
  338. package/build/site/reference/workflow-map/index.html +266 -0
  339. package/build/site/roadmap/index.html +77 -0
  340. package/build/site/robots.txt +37 -0
  341. package/build/site/sitemap-0.xml +1 -0
  342. package/build/site/sitemap-index.xml +1 -0
  343. package/build/site/tutorials/getting-started/index.html +386 -0
  344. package/build/site/vi-vn/404/index.html +42 -0
  345. package/build/site/vi-vn/bmad-developer-guide/index.html +794 -0
  346. package/build/site/vi-vn/explanation/advanced-elicitation/index.html +105 -0
  347. package/build/site/vi-vn/explanation/adversarial-review/index.html +109 -0
  348. package/build/site/vi-vn/explanation/analysis-phase/index.html +129 -0
  349. package/build/site/vi-vn/explanation/brainstorming/index.html +92 -0
  350. package/build/site/vi-vn/explanation/checkpoint-preview/index.html +121 -0
  351. package/build/site/vi-vn/explanation/established-projects-faq/index.html +107 -0
  352. package/build/site/vi-vn/explanation/forensic-investigation/index.html +167 -0
  353. package/build/site/vi-vn/explanation/named-agents/index.html +187 -0
  354. package/build/site/vi-vn/explanation/party-mode/index.html +101 -0
  355. package/build/site/vi-vn/explanation/preventing-agent-conflicts/index.html +185 -0
  356. package/build/site/vi-vn/explanation/project-context/index.html +198 -0
  357. package/build/site/vi-vn/explanation/quick-dev/index.html +113 -0
  358. package/build/site/vi-vn/explanation/web-bundles/index.html +178 -0
  359. package/build/site/vi-vn/explanation/why-solutioning-matters/index.html +168 -0
  360. package/build/site/vi-vn/how-to/customize-bmad/index.html +277 -0
  361. package/build/site/vi-vn/how-to/established-projects/index.html +165 -0
  362. package/build/site/vi-vn/how-to/expand-bmad-for-your-org/index.html +228 -0
  363. package/build/site/vi-vn/how-to/get-answers-about-bmad/index.html +129 -0
  364. package/build/site/vi-vn/how-to/install-bmad/index.html +124 -0
  365. package/build/site/vi-vn/how-to/install-custom-modules/index.html +197 -0
  366. package/build/site/vi-vn/how-to/non-interactive-installation/index.html +300 -0
  367. package/build/site/vi-vn/how-to/project-context/index.html +138 -0
  368. package/build/site/vi-vn/how-to/quick-fixes/index.html +122 -0
  369. package/build/site/vi-vn/how-to/shard-large-documents/index.html +103 -0
  370. package/build/site/vi-vn/how-to/upgrade-to-v6/index.html +185 -0
  371. package/build/site/vi-vn/how-to/use-web-bundles/index.html +99 -0
  372. package/build/site/vi-vn/index.html +129 -0
  373. package/build/site/vi-vn/reference/agents/index.html +173 -0
  374. package/build/site/vi-vn/reference/commands/index.html +250 -0
  375. package/build/site/vi-vn/reference/core-tools/index.html +337 -0
  376. package/build/site/vi-vn/reference/modules/index.html +132 -0
  377. package/build/site/vi-vn/reference/testing/index.html +218 -0
  378. package/build/site/vi-vn/reference/workflow-map/index.html +240 -0
  379. package/build/site/vi-vn/roadmap/index.html +77 -0
  380. package/build/site/vi-vn/tutorials/getting-started/index.html +382 -0
  381. package/build/site/wizz-icon-orange.svg +7 -0
  382. package/build/site/workflow-map-diagram-fr.html +375 -0
  383. package/build/site/workflow-map-diagram.html +375 -0
  384. package/build/site/zh-cn/404/index.html +42 -0
  385. package/build/site/zh-cn/explanation/advanced-elicitation/index.html +142 -0
  386. package/build/site/zh-cn/explanation/adversarial-review/index.html +132 -0
  387. package/build/site/zh-cn/explanation/analysis-phase/index.html +129 -0
  388. package/build/site/zh-cn/explanation/brainstorming/index.html +147 -0
  389. package/build/site/zh-cn/explanation/checkpoint-preview/index.html +121 -0
  390. package/build/site/zh-cn/explanation/established-projects-faq/index.html +122 -0
  391. package/build/site/zh-cn/explanation/forensic-investigation/index.html +167 -0
  392. package/build/site/zh-cn/explanation/named-agents/index.html +187 -0
  393. package/build/site/zh-cn/explanation/party-mode/index.html +144 -0
  394. package/build/site/zh-cn/explanation/preventing-agent-conflicts/index.html +191 -0
  395. package/build/site/zh-cn/explanation/project-context/index.html +153 -0
  396. package/build/site/zh-cn/explanation/quick-dev/index.html +139 -0
  397. package/build/site/zh-cn/explanation/web-bundles/index.html +178 -0
  398. package/build/site/zh-cn/explanation/why-solutioning-matters/index.html +175 -0
  399. package/build/site/zh-cn/how-to/customize-bmad/index.html +202 -0
  400. package/build/site/zh-cn/how-to/established-projects/index.html +166 -0
  401. package/build/site/zh-cn/how-to/expand-bmad-for-your-org/index.html +223 -0
  402. package/build/site/zh-cn/how-to/get-answers-about-bmad/index.html +198 -0
  403. package/build/site/zh-cn/how-to/install-bmad/index.html +126 -0
  404. package/build/site/zh-cn/how-to/install-custom-modules/index.html +197 -0
  405. package/build/site/zh-cn/how-to/non-interactive-installation/index.html +254 -0
  406. package/build/site/zh-cn/how-to/project-context/index.html +143 -0
  407. package/build/site/zh-cn/how-to/quick-fixes/index.html +122 -0
  408. package/build/site/zh-cn/how-to/shard-large-documents/index.html +110 -0
  409. package/build/site/zh-cn/how-to/upgrade-to-v6/index.html +198 -0
  410. package/build/site/zh-cn/how-to/use-web-bundles/index.html +99 -0
  411. package/build/site/zh-cn/index.html +129 -0
  412. package/build/site/zh-cn/reference/agents/index.html +178 -0
  413. package/build/site/zh-cn/reference/commands/index.html +245 -0
  414. package/build/site/zh-cn/reference/core-tools/index.html +313 -0
  415. package/build/site/zh-cn/reference/modules/index.html +181 -0
  416. package/build/site/zh-cn/reference/testing/index.html +226 -0
  417. package/build/site/zh-cn/reference/workflow-map/index.html +238 -0
  418. package/build/site/zh-cn/roadmap/index.html +77 -0
  419. package/build/site/zh-cn/tutorials/getting-started/index.html +381 -0
  420. package/evals/bmm-skills/bmad-product-brief/evals.json +237 -0
  421. package/evals/bmm-skills/bmad-product-brief/files/branfield-memo.md +46 -0
  422. package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/addendum.md +40 -0
  423. package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md +56 -0
  424. package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/decision-log.md +27 -0
  425. package/evals/bmm-skills/bmad-product-brief/files/meridian-mobility-report.md +116 -0
  426. package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/addendum.md +41 -0
  427. package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md +57 -0
  428. package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/decision-log.md +29 -0
  429. package/evals/bmm-skills/bmad-product-brief/files/pantry-bridge-interviews.md +90 -0
  430. package/evals/bmm-skills/bmad-product-brief/files/q2-brainstorm.md +101 -0
  431. package/evals/bmm-skills/bmad-product-brief/triggers.json +18 -0
  432. package/package.json +114 -0
  433. package/removals.txt +62 -0
  434. package/src/bmm-skills/1-analysis/bmad-agent-analyst/SKILL.md +76 -0
  435. package/src/bmm-skills/1-analysis/bmad-agent-analyst/customize.toml +90 -0
  436. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/SKILL.md +76 -0
  437. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/customize.toml +81 -0
  438. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/explain-concept.md +20 -0
  439. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/mermaid-gen.md +20 -0
  440. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/validate-doc.md +19 -0
  441. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/write-document.md +20 -0
  442. package/src/bmm-skills/1-analysis/bmad-document-project/SKILL.md +62 -0
  443. package/src/bmm-skills/1-analysis/bmad-document-project/checklist.md +245 -0
  444. package/src/bmm-skills/1-analysis/bmad-document-project/customize.toml +41 -0
  445. package/src/bmm-skills/1-analysis/bmad-document-project/documentation-requirements.csv +12 -0
  446. package/src/bmm-skills/1-analysis/bmad-document-project/instructions.md +128 -0
  447. package/src/bmm-skills/1-analysis/bmad-document-project/templates/deep-dive-template.md +345 -0
  448. package/src/bmm-skills/1-analysis/bmad-document-project/templates/index-template.md +169 -0
  449. package/src/bmm-skills/1-analysis/bmad-document-project/templates/project-overview-template.md +103 -0
  450. package/src/bmm-skills/1-analysis/bmad-document-project/templates/project-scan-report-schema.json +160 -0
  451. package/src/bmm-skills/1-analysis/bmad-document-project/templates/source-tree-template.md +135 -0
  452. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md +300 -0
  453. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
  454. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md +1108 -0
  455. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-workflow.md +34 -0
  456. package/src/bmm-skills/1-analysis/bmad-prfaq/SKILL.md +135 -0
  457. package/src/bmm-skills/1-analysis/bmad-prfaq/agents/artifact-analyzer.md +60 -0
  458. package/src/bmm-skills/1-analysis/bmad-prfaq/agents/web-researcher.md +49 -0
  459. package/src/bmm-skills/1-analysis/bmad-prfaq/assets/prfaq-template.md +62 -0
  460. package/src/bmm-skills/1-analysis/bmad-prfaq/bmad-manifest.json +16 -0
  461. package/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml +41 -0
  462. package/src/bmm-skills/1-analysis/bmad-prfaq/references/customer-faq.md +55 -0
  463. package/src/bmm-skills/1-analysis/bmad-prfaq/references/internal-faq.md +51 -0
  464. package/src/bmm-skills/1-analysis/bmad-prfaq/references/press-release.md +60 -0
  465. package/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md +83 -0
  466. package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +91 -0
  467. package/src/bmm-skills/1-analysis/bmad-product-brief/assets/brief-template.md +41 -0
  468. package/src/bmm-skills/1-analysis/bmad-product-brief/customize.toml +99 -0
  469. package/src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md +96 -0
  470. package/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml +41 -0
  471. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +137 -0
  472. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
  473. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
  474. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
  475. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +234 -0
  476. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +450 -0
  477. package/src/bmm-skills/1-analysis/research/bmad-domain-research/research.template.md +29 -0
  478. package/src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md +96 -0
  479. package/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml +41 -0
  480. package/src/bmm-skills/1-analysis/research/bmad-market-research/research.template.md +29 -0
  481. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-01-init.md +184 -0
  482. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
  483. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
  484. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
  485. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
  486. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +484 -0
  487. package/src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md +96 -0
  488. package/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml +41 -0
  489. package/src/bmm-skills/1-analysis/research/bmad-technical-research/research.template.md +29 -0
  490. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +137 -0
  491. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +239 -0
  492. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
  493. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
  494. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +233 -0
  495. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +493 -0
  496. package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/SKILL.md +76 -0
  497. package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/customize.toml +75 -0
  498. package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/SKILL.md +76 -0
  499. package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/customize.toml +60 -0
  500. package/src/bmm-skills/2-plan-workflows/bmad-create-prd/SKILL.md +30 -0
  501. package/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml +41 -0
  502. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/SKILL.md +30 -0
  503. package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml +42 -0
  504. package/src/bmm-skills/2-plan-workflows/bmad-prd/SKILL.md +92 -0
  505. package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/headless-schemas.md +76 -0
  506. package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-template.md +165 -0
  507. package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-validation-checklist.md +135 -0
  508. package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/validation-report-template.html +325 -0
  509. package/src/bmm-skills/2-plan-workflows/bmad-prd/customize.toml +147 -0
  510. package/src/bmm-skills/2-plan-workflows/bmad-prd/references/headless.md +39 -0
  511. package/src/bmm-skills/2-plan-workflows/bmad-prd/references/validate.md +97 -0
  512. package/src/bmm-skills/2-plan-workflows/bmad-ux/SKILL.md +90 -0
  513. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/color-themes.md +9 -0
  514. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-directions.md +9 -0
  515. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-editorial.md +158 -0
  516. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-mobile.md +93 -0
  517. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-shadcn.md +109 -0
  518. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/excalidraw-wireframe.md +19 -0
  519. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-mobile.md +112 -0
  520. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-shadcn.md +133 -0
  521. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/headless-schemas.md +84 -0
  522. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/key-screens.md +29 -0
  523. package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/validation-report-template.html +319 -0
  524. package/src/bmm-skills/2-plan-workflows/bmad-ux/customize.toml +100 -0
  525. package/src/bmm-skills/2-plan-workflows/bmad-ux/references/creative-tools.md +19 -0
  526. package/src/bmm-skills/2-plan-workflows/bmad-ux/references/design-md-spec.md +50 -0
  527. package/src/bmm-skills/2-plan-workflows/bmad-ux/references/headless.md +37 -0
  528. package/src/bmm-skills/2-plan-workflows/bmad-ux/references/validate.md +115 -0
  529. package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/SKILL.md +30 -0
  530. package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml +42 -0
  531. package/src/bmm-skills/3-solutioning/bmad-agent-architect/SKILL.md +76 -0
  532. package/src/bmm-skills/3-solutioning/bmad-agent-architect/customize.toml +65 -0
  533. package/src/bmm-skills/3-solutioning/bmad-architecture/SKILL.md +85 -0
  534. package/src/bmm-skills/3-solutioning/bmad-architecture/assets/spine-template.md +79 -0
  535. package/src/bmm-skills/3-solutioning/bmad-architecture/customize.toml +100 -0
  536. package/src/bmm-skills/3-solutioning/bmad-architecture/references/headless.md +26 -0
  537. package/src/bmm-skills/3-solutioning/bmad-architecture/references/reviewer-gate.md +13 -0
  538. package/src/bmm-skills/3-solutioning/bmad-architecture/scripts/lint_spine.py +257 -0
  539. package/src/bmm-skills/3-solutioning/bmad-architecture/scripts/tests/test_lint_spine.py +270 -0
  540. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/SKILL.md +91 -0
  541. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml +41 -0
  542. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
  543. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
  544. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
  545. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
  546. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
  547. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +132 -0
  548. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +4 -0
  549. package/src/bmm-skills/3-solutioning/bmad-create-architecture/SKILL.md +30 -0
  550. package/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml +41 -0
  551. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/SKILL.md +93 -0
  552. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml +41 -0
  553. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +263 -0
  554. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +242 -0
  555. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
  556. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +143 -0
  557. package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +61 -0
  558. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/SKILL.md +81 -0
  559. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml +41 -0
  560. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/project-context-template.md +21 -0
  561. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-01-discover.md +186 -0
  562. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-02-generate.md +321 -0
  563. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md +284 -0
  564. package/src/bmm-skills/4-implementation/bmad-agent-dev/SKILL.md +76 -0
  565. package/src/bmm-skills/4-implementation/bmad-agent-dev/customize.toml +95 -0
  566. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/SKILL.md +68 -0
  567. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/customize.toml +41 -0
  568. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/generate-trail.md +38 -0
  569. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-01-orientation.md +105 -0
  570. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-02-walkthrough.md +89 -0
  571. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-03-detail-pass.md +106 -0
  572. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-04-testing.md +74 -0
  573. package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-05-wrapup.md +30 -0
  574. package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +93 -0
  575. package/src/bmm-skills/4-implementation/bmad-code-review/customize.toml +41 -0
  576. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-01-gather-context.md +85 -0
  577. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +35 -0
  578. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-03-triage.md +49 -0
  579. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-04-present.md +132 -0
  580. package/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md +301 -0
  581. package/src/bmm-skills/4-implementation/bmad-correct-course/checklist.md +288 -0
  582. package/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml +41 -0
  583. package/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md +432 -0
  584. package/src/bmm-skills/4-implementation/bmad-create-story/checklist.md +357 -0
  585. package/src/bmm-skills/4-implementation/bmad-create-story/customize.toml +41 -0
  586. package/src/bmm-skills/4-implementation/bmad-create-story/discover-inputs.md +88 -0
  587. package/src/bmm-skills/4-implementation/bmad-create-story/template.md +49 -0
  588. package/src/bmm-skills/4-implementation/bmad-dev-story/SKILL.md +500 -0
  589. package/src/bmm-skills/4-implementation/bmad-dev-story/checklist.md +80 -0
  590. package/src/bmm-skills/4-implementation/bmad-dev-story/customize.toml +41 -0
  591. package/src/bmm-skills/4-implementation/bmad-investigate/SKILL.md +196 -0
  592. package/src/bmm-skills/4-implementation/bmad-investigate/customize.toml +62 -0
  593. package/src/bmm-skills/4-implementation/bmad-investigate/references/case-file-template.md +127 -0
  594. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md +176 -0
  595. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/checklist.md +33 -0
  596. package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml +41 -0
  597. package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +114 -0
  598. package/src/bmm-skills/4-implementation/bmad-quick-dev/compile-epic-context.md +62 -0
  599. package/src/bmm-skills/4-implementation/bmad-quick-dev/customize.toml +41 -0
  600. package/src/bmm-skills/4-implementation/bmad-quick-dev/spec-template.md +88 -0
  601. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md +100 -0
  602. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-02-plan.md +47 -0
  603. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-03-implement.md +41 -0
  604. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-04-review.md +50 -0
  605. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-05-present.md +78 -0
  606. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +71 -0
  607. package/src/bmm-skills/4-implementation/bmad-quick-dev/sync-sprint-status.md +19 -0
  608. package/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md +1527 -0
  609. package/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml +41 -0
  610. package/src/bmm-skills/4-implementation/bmad-sprint-planning/SKILL.md +319 -0
  611. package/src/bmm-skills/4-implementation/bmad-sprint-planning/checklist.md +34 -0
  612. package/src/bmm-skills/4-implementation/bmad-sprint-planning/customize.toml +41 -0
  613. package/src/bmm-skills/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +69 -0
  614. package/src/bmm-skills/4-implementation/bmad-sprint-status/SKILL.md +311 -0
  615. package/src/bmm-skills/4-implementation/bmad-sprint-status/customize.toml +41 -0
  616. package/src/bmm-skills/module-help.csv +32 -0
  617. package/src/bmm-skills/module.yaml +95 -0
  618. package/src/core-skills/bmad-advanced-elicitation/SKILL.md +142 -0
  619. package/src/core-skills/bmad-advanced-elicitation/methods.csv +70 -0
  620. package/src/core-skills/bmad-brainstorming/SKILL.md +82 -0
  621. package/src/core-skills/bmad-brainstorming/analysis/catalog-analysis.md +239 -0
  622. package/src/core-skills/bmad-brainstorming/analysis/method-matrix.csv +109 -0
  623. package/src/core-skills/bmad-brainstorming/assets/brain-icons.json +166 -0
  624. package/src/core-skills/bmad-brainstorming/assets/brain-methods.csv +109 -0
  625. package/src/core-skills/bmad-brainstorming/assets/brain-selector.html +326 -0
  626. package/src/core-skills/bmad-brainstorming/customize.toml +84 -0
  627. package/src/core-skills/bmad-brainstorming/references/converge.md +24 -0
  628. package/src/core-skills/bmad-brainstorming/references/finalize.md +26 -0
  629. package/src/core-skills/bmad-brainstorming/references/headless.md +54 -0
  630. package/src/core-skills/bmad-brainstorming/references/in-chat-techniques.md +18 -0
  631. package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +10 -0
  632. package/src/core-skills/bmad-brainstorming/references/mode-facilitator.md +11 -0
  633. package/src/core-skills/bmad-brainstorming/references/mode-partner.md +16 -0
  634. package/src/core-skills/bmad-brainstorming/references/resume.md +5 -0
  635. package/src/core-skills/bmad-brainstorming/scripts/brain.py +740 -0
  636. package/src/core-skills/bmad-brainstorming/scripts/memlog.py +202 -0
  637. package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +217 -0
  638. package/src/core-skills/bmad-brainstorming/scripts/tests/test_memlog.py +265 -0
  639. package/src/core-skills/bmad-customize/SKILL.md +111 -0
  640. package/src/core-skills/bmad-customize/scripts/list_customizable_skills.py +231 -0
  641. package/src/core-skills/bmad-customize/scripts/tests/test_list_customizable_skills.py +249 -0
  642. package/src/core-skills/bmad-editorial-review-prose/SKILL.md +86 -0
  643. package/src/core-skills/bmad-editorial-review-structure/SKILL.md +179 -0
  644. package/src/core-skills/bmad-help/SKILL.md +75 -0
  645. package/src/core-skills/bmad-index-docs/SKILL.md +66 -0
  646. package/src/core-skills/bmad-party-mode/SKILL.md +77 -0
  647. package/src/core-skills/bmad-party-mode/customize.toml +150 -0
  648. package/src/core-skills/bmad-party-mode/references/create-party.md +65 -0
  649. package/src/core-skills/bmad-party-mode/references/mode-agent-team.md +11 -0
  650. package/src/core-skills/bmad-party-mode/references/mode-auto.md +13 -0
  651. package/src/core-skills/bmad-party-mode/references/mode-subagent.md +19 -0
  652. package/src/core-skills/bmad-party-mode/scripts/resolve_party.py +267 -0
  653. package/src/core-skills/bmad-party-mode/scripts/tests/test-resolve_party.py +138 -0
  654. package/src/core-skills/bmad-review-adversarial-general/SKILL.md +37 -0
  655. package/src/core-skills/bmad-review-edge-case-hunter/SKILL.md +67 -0
  656. package/src/core-skills/bmad-shard-doc/SKILL.md +105 -0
  657. package/src/core-skills/bmad-spec/SKILL.md +145 -0
  658. package/src/core-skills/bmad-spec/assets/headless-schemas.md +33 -0
  659. package/src/core-skills/bmad-spec/assets/spec-template.md +49 -0
  660. package/src/core-skills/bmad-spec/customize.toml +53 -0
  661. package/src/core-skills/module-help.csv +13 -0
  662. package/src/core-skills/module.yaml +33 -0
  663. package/src/modules/wizz/README.md +39 -0
  664. package/src/modules/wizz/_shared/cerebro.md +24 -0
  665. package/src/modules/wizz/_shared/encerramento.md +36 -0
  666. package/src/modules/wizz/_shared/token-economy.md +28 -0
  667. package/src/modules/wizz/agents/wizz-ads/SKILL.md +30 -0
  668. package/src/modules/wizz/agents/wizz-ads/customize.toml +53 -0
  669. package/src/modules/wizz/agents/wizz-copy/SKILL.md +30 -0
  670. package/src/modules/wizz/agents/wizz-copy/customize.toml +53 -0
  671. package/src/modules/wizz/agents/wizz-designer/SKILL.md +38 -0
  672. package/src/modules/wizz/agents/wizz-designer/customize.toml +60 -0
  673. package/src/modules/wizz/agents/wizz-growth/SKILL.md +31 -0
  674. package/src/modules/wizz/agents/wizz-growth/customize.toml +58 -0
  675. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +77 -0
  676. package/src/modules/wizz/agents/wizz-maestro/customize.toml +78 -0
  677. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +31 -0
  678. package/src/modules/wizz/agents/wizz-memoria/customize.toml +57 -0
  679. package/src/modules/wizz/agents/wizz-qa/SKILL.md +31 -0
  680. package/src/modules/wizz/agents/wizz-qa/customize.toml +63 -0
  681. package/src/modules/wizz/agents/wizz-seo/SKILL.md +31 -0
  682. package/src/modules/wizz/agents/wizz-seo/customize.toml +58 -0
  683. package/src/modules/wizz/module.yaml +117 -0
  684. package/src/modules/wizz/overrides/bmad-agent-analyst.toml +35 -0
  685. package/src/modules/wizz/overrides/bmad-agent-architect.toml +39 -0
  686. package/src/modules/wizz/overrides/bmad-agent-dev.toml +40 -0
  687. package/src/modules/wizz/overrides/bmad-agent-pm.toml +23 -0
  688. package/src/modules/wizz/overrides/bmad-agent-tech-writer.toml +30 -0
  689. package/src/modules/wizz/overrides/bmad-agent-ux-designer.toml +26 -0
  690. package/src/modules/wizz/scripts/wizz-init.mjs +163 -0
  691. package/src/scripts/memlog.py +224 -0
  692. package/src/scripts/resolve_config.py +176 -0
  693. package/src/scripts/resolve_customization.py +238 -0
  694. package/src/scripts/tests/test_memlog.py +306 -0
  695. package/src/scripts/tests/test_resolve_customization.py +50 -0
  696. package/tools/bundle-web-bundles.js +117 -0
  697. package/tools/format-workflow-md.js +263 -0
  698. package/tools/installer/README.md +60 -0
  699. package/tools/installer/bmad-cli.js +105 -0
  700. package/tools/installer/cli-utils.js +53 -0
  701. package/tools/installer/commands/install.js +149 -0
  702. package/tools/installer/commands/status.js +65 -0
  703. package/tools/installer/commands/uninstall.js +167 -0
  704. package/tools/installer/core/config.js +73 -0
  705. package/tools/installer/core/existing-install.js +121 -0
  706. package/tools/installer/core/install-paths.js +132 -0
  707. package/tools/installer/core/installer.js +1653 -0
  708. package/tools/installer/core/legacy-warnings.js +151 -0
  709. package/tools/installer/core/manifest-generator.js +859 -0
  710. package/tools/installer/core/manifest.js +433 -0
  711. package/tools/installer/core/python-check.js +199 -0
  712. package/tools/installer/core/wsl-node-check.js +109 -0
  713. package/tools/installer/file-ops.js +204 -0
  714. package/tools/installer/fs-native.js +116 -0
  715. package/tools/installer/ide/_config-driven.js +972 -0
  716. package/tools/installer/ide/manager.js +324 -0
  717. package/tools/installer/ide/platform-codes.js +80 -0
  718. package/tools/installer/ide/platform-codes.yaml +329 -0
  719. package/tools/installer/ide/shared/installed-skills.js +50 -0
  720. package/tools/installer/ide/shared/path-utils.js +219 -0
  721. package/tools/installer/ide/shared/skill-manifest.js +57 -0
  722. package/tools/installer/install-messages.yaml +32 -0
  723. package/tools/installer/list-options.js +210 -0
  724. package/tools/installer/message-loader.js +83 -0
  725. package/tools/installer/modules/channel-plan.js +203 -0
  726. package/tools/installer/modules/channel-resolver.js +241 -0
  727. package/tools/installer/modules/custom-module-manager.js +912 -0
  728. package/tools/installer/modules/external-manager.js +527 -0
  729. package/tools/installer/modules/module-help-schema.js +13 -0
  730. package/tools/installer/modules/official-modules.js +2217 -0
  731. package/tools/installer/modules/plugin-resolver.js +398 -0
  732. package/tools/installer/modules/version-resolver.js +336 -0
  733. package/tools/installer/project-root.js +224 -0
  734. package/tools/installer/prompts.js +852 -0
  735. package/tools/installer/set-overrides.js +330 -0
  736. package/tools/installer/ui.js +2077 -0
  737. package/tools/installer/yaml-format.js +245 -0
  738. package/tools/javascript-conventions.md +5 -0
  739. package/tools/migrate-custom-module-paths.js +124 -0
  740. package/tools/skill-validator.md +368 -0
  741. package/tools/validate-sidebar-order.js +388 -0
  742. package/tools/validate-skills.js +698 -0
  743. package/tools/validate-svg-changes.sh +356 -0
  744. package/web-bundles/README.md +46 -0
  745. package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +86 -0
  746. package/web-bundles/brainstorming-coach/SKILL.md +83 -0
  747. package/web-bundles/brainstorming-coach/brain-methods.csv +62 -0
  748. package/web-bundles/bundles.json +139 -0
  749. package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +88 -0
  750. package/web-bundles/market-and-industry-research/SKILL.md +59 -0
  751. package/web-bundles/prd-coach/INSTRUCTIONS.md +86 -0
  752. package/web-bundles/prd-coach/SKILL.md +101 -0
  753. package/web-bundles/prd-coach/prd-template.md +165 -0
  754. package/web-bundles/prd-coach/prd-validation-checklist.md +135 -0
  755. package/web-bundles/prfaq-coach/INSTRUCTIONS.md +86 -0
  756. package/web-bundles/prfaq-coach/SKILL.md +139 -0
  757. package/web-bundles/product-brief-coach/INSTRUCTIONS.md +86 -0
  758. package/web-bundles/product-brief-coach/SKILL.md +113 -0
  759. package/web-bundles/ux-coach/INSTRUCTIONS.md +92 -0
  760. package/web-bundles/ux-coach/SKILL.md +187 -0
  761. package/web-bundles/ux-coach/ux-validation.md +100 -0
@@ -0,0 +1,794 @@
1
+ <!DOCTYPE html><html lang="vi-VN" dir="ltr" data-theme="dark" data-has-toc data-has-sidebar class="astro-uxe7q6yi"> <head><meta charset="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>Hướng dẫn BMAD cho Developer | Wizz Method</title><link rel="canonical" href="http://localhost:3000/vi-vn/bmad-developer-guide/"/><link rel="alternate" hreflang="en" href="http://localhost:3000/bmad-developer-guide/"/><link rel="alternate" hreflang="vi-VN" href="http://localhost:3000/vi-vn/bmad-developer-guide/"/><link rel="alternate" hreflang="zh-CN" href="http://localhost:3000/zh-cn/bmad-developer-guide/"/><link rel="alternate" hreflang="fr-FR" href="http://localhost:3000/fr/bmad-developer-guide/"/><link rel="alternate" hreflang="cs-CZ" href="http://localhost:3000/cs/bmad-developer-guide/"/><link rel="sitemap" href="/sitemap-index.xml"/><link rel="shortcut icon" href="/wizz-icon-orange.svg" type="image/svg+xml"/><meta name="generator" content="Astro v5.18.1"/><meta name="generator" content="Starlight v0.37.5"/><meta property="og:title" content="Hướng dẫn BMAD cho Developer"/><meta property="og:type" content="article"/><meta property="og:url" content="http://localhost:3000/vi-vn/bmad-developer-guide/"/><meta property="og:locale" content="vi-VN"/><meta property="og:description" content="Tài liệu tổng quan bằng tiếng Việt dành cho developer muốn áp dụng BMAD Method từ ý tưởng đến triển khai"/><meta property="og:site_name" content="Wizz Method"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Tài liệu tổng quan bằng tiếng Việt dành cho developer muốn áp dụng BMAD Method từ ý tưởng đến triển khai"/><meta name="ai-terms" content="AI-optimized documentation: http://localhost:3000/llms-full.txt (plain text, ~100k tokens, complete Wizz Method reference). Index: http://localhost:3000/llms.txt"/><meta name="llms-full" content="http://localhost:3000/llms-full.txt"/><meta name="llms" content="http://localhost:3000/llms.txt"/><script>
2
+ window.StarlightThemeProvider = (() => {
3
+ const storedTheme =
4
+ typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
5
+ const theme =
6
+ storedTheme ||
7
+ (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
8
+ document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
9
+ return {
10
+ updatePickers(theme = storedTheme || 'auto') {
11
+ document.querySelectorAll('starlight-theme-select').forEach((picker) => {
12
+ const select = picker.querySelector('select');
13
+ if (select) select.value = theme;
14
+ /** @type {HTMLTemplateElement | null} */
15
+ const tmpl = document.querySelector(`#theme-icons`);
16
+ const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
17
+ if (newIcon) {
18
+ const oldIcon = picker.querySelector('svg.label-icon');
19
+ if (oldIcon) {
20
+ oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
21
+ }
22
+ }
23
+ });
24
+ },
25
+ };
26
+ })();
27
+ </script><template id="theme-icons"><svg aria-hidden="true" class="light astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M5 12a1 1 0 0 0-1-1H3a1 1 0 0 0 0 2h1a1 1 0 0 0 1-1Zm.64 5-.71.71a1 1 0 0 0 0 1.41 1 1 0 0 0 1.41 0l.71-.71A1 1 0 0 0 5.64 17ZM12 5a1 1 0 0 0 1-1V3a1 1 0 0 0-2 0v1a1 1 0 0 0 1 1Zm5.66 2.34a1 1 0 0 0 .7-.29l.71-.71a1 1 0 1 0-1.41-1.41l-.66.71a1 1 0 0 0 0 1.41 1 1 0 0 0 .66.29Zm-12-.29a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.71-.71a1.004 1.004 0 1 0-1.43 1.41l.73.71ZM21 11h-1a1 1 0 0 0 0 2h1a1 1 0 0 0 0-2Zm-2.64 6A1 1 0 0 0 17 18.36l.71.71a1 1 0 0 0 1.41 0 1 1 0 0 0 0-1.41l-.76-.66ZM12 6.5a5.5 5.5 0 1 0 5.5 5.5A5.51 5.51 0 0 0 12 6.5Zm0 9a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7Zm0 3.5a1 1 0 0 0-1 1v1a1 1 0 0 0 2 0v-1a1 1 0 0 0-1-1Z"/></svg><svg aria-hidden="true" class="dark astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.64 13a1 1 0 0 0-1.05-.14 8.049 8.049 0 0 1-3.37.73 8.15 8.15 0 0 1-8.14-8.1 8.59 8.59 0 0 1 .25-2A1 1 0 0 0 8 2.36a10.14 10.14 0 1 0 14 11.69 1 1 0 0 0-.36-1.05Zm-9.5 6.69A8.14 8.14 0 0 1 7.08 5.22v.27a10.15 10.15 0 0 0 10.14 10.14 9.784 9.784 0 0 0 2.1-.22 8.11 8.11 0 0 1-7.18 4.32v-.04Z"/></svg><svg aria-hidden="true" class="auto astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg></template><link rel="stylesheet" href="/_astro/print.DNXP8c50.css" media="print"><link rel="stylesheet" href="/_astro/index.DdjI3lF_.css"><script type="module" src="/_astro/page.B1D-nYk3.js"></script></head> <body class="astro-uxe7q6yi"> <a href="#_top" class="astro-7lpm5qv4">Chuyển đến nội dung chính</a> <div class="page sl-flex astro-2xv6dk2n"> <header class="header astro-2xv6dk2n"><div class="ai-banner astro-kggsjsm4" role="note" aria-label="AI documentation notice"> <span class="astro-kggsjsm4">🤖 Consolidated, AI-optimized Wizz Method docs: <a href="http://localhost:3000/llms-full.txt" class="astro-kggsjsm4">llms-full.txt</a>. Fetch this plain text file for complete context.</span> </div> <div class="header sl-flex astro-3ef6ksr2"> <div class="title-wrapper sl-flex astro-3ef6ksr2"> <a href="/vi-vn" class="site-title sl-flex astro-sv76zpkw"> <span class="astro-sv76zpkw" translate="no"> Wizz Method </span> </a> </div> <div class="sl-flex print:hidden astro-3ef6ksr2"> <site-search class="astro-3ef6ksr2 astro-kbzrce66" data-translations="{&#34;placeholder&#34;:&#34;Tìm kiếm&#34;}"> <button data-open-modal disabled aria-label="Tìm kiếm" aria-keyshortcuts="Control+K" class="astro-kbzrce66"> <svg aria-hidden="true" class="astro-kbzrce66 astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21.71 20.29 18 16.61A9 9 0 1 0 16.61 18l3.68 3.68a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.39ZM11 18a7 7 0 1 1 0-14 7 7 0 0 1 0 14Z"/></svg> <span class="sl-hidden md:sl-block astro-kbzrce66" aria-hidden="true">Tìm kiếm</span> <kbd class="sl-hidden md:sl-flex astro-kbzrce66" style="display: none;"> <kbd class="astro-kbzrce66">Ctrl</kbd><kbd class="astro-kbzrce66">K</kbd> </kbd> </button> <dialog style="padding:0" aria-label="Tìm kiếm" class="astro-kbzrce66"> <div class="dialog-frame sl-flex astro-kbzrce66"> <button data-close-modal class="sl-flex md:sl-hidden astro-kbzrce66"> Hủy </button> <div class="search-container astro-kbzrce66"> <div id="starlight__search" class="astro-kbzrce66"></div> </div> </div> </dialog> </site-search> <script>
28
+ (() => {
29
+ const openBtn = document.querySelector('button[data-open-modal]');
30
+ const shortcut = openBtn?.querySelector('kbd');
31
+ if (!openBtn || !(shortcut instanceof HTMLElement)) return;
32
+ const platformKey = shortcut.querySelector('kbd');
33
+ if (platformKey && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)) {
34
+ platformKey.textContent = '⌘';
35
+ openBtn.setAttribute('aria-keyshortcuts', 'Meta+K');
36
+ }
37
+ shortcut.style.display = '';
38
+ })();
39
+ </script> <script type="module" src="/_astro/Search.astro_astro_type_script_index_0_lang.cjYDvRdi.js"></script> </div> <div class="sl-hidden md:sl-flex print:hidden right-group astro-3ef6ksr2"> <div class="sl-flex social-icons astro-3ef6ksr2"> <a href="https://github.com/wizzcomms/wizz-method" rel="me" class="sl-flex astro-bgmygzip"><span class="sr-only astro-bgmygzip">GitHub</span><svg aria-hidden="true" class="astro-bgmygzip astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-nmwkdvwx"> <span class="sr-only astro-nmwkdvwx">Chọn giao diện</span> <svg aria-hidden="true" class="icon label-icon astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select autocomplete="off" class="astro-nmwkdvwx"> <option value="dark" class="astro-nmwkdvwx">Tối</option><option value="light" class="astro-nmwkdvwx">Sáng</option><option value="auto" selected class="astro-nmwkdvwx">Tự động</option> </select> <svg aria-hidden="true" class="icon caret astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
40
+ StarlightThemeProvider.updatePickers();
41
+ </script> <script type="module">const r="starlight-theme",o=e=>e==="auto"||e==="dark"||e==="light"?e:"auto",c=()=>o(typeof localStorage<"u"&&localStorage.getItem(r));function n(e){typeof localStorage<"u"&&localStorage.setItem(r,e==="light"||e==="dark"?e:"")}const l=()=>matchMedia("(prefers-color-scheme: light)").matches?"light":"dark";function t(e){StarlightThemeProvider.updatePickers(e),document.documentElement.dataset.theme=e==="auto"?l():e,n(e)}matchMedia("(prefers-color-scheme: light)").addEventListener("change",()=>{c()==="auto"&&t("auto")});class s extends HTMLElement{constructor(){super(),t(c()),this.querySelector("select")?.addEventListener("change",a=>{a.currentTarget instanceof HTMLSelectElement&&t(o(a.currentTarget.value))})}}customElements.define("starlight-theme-select",s);</script> <starlight-lang-select><label style="--sl-select-width: 7em" class="astro-nmwkdvwx"> <span class="sr-only astro-nmwkdvwx">Chọn ngôn ngữ</span> <svg aria-hidden="true" class="icon label-icon astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path fill-rule="evenodd" d="M8.516 3a.94.94 0 0 0-.941.94v1.15H2.94a.94.94 0 1 0 0 1.882h7.362a7.422 7.422 0 0 1-1.787 3.958 7.42 7.42 0 0 1-1.422-2.425.94.94 0 1 0-1.774.627 9.303 9.303 0 0 0 1.785 3.043 7.422 7.422 0 0 1-4.164 1.278.94.94 0 1 0 0 1.881 9.303 9.303 0 0 0 5.575-1.855 9.303 9.303 0 0 0 4.11 1.74l-.763 1.525a.968.968 0 0 0-.016.034l-1.385 2.77a.94.94 0 1 0 1.683.841l1.133-2.267h5.806l1.134 2.267a.94.94 0 0 0 1.683-.841l-1.385-2.769a.95.95 0 0 0-.018-.036l-3.476-6.951a.94.94 0 0 0-1.682 0l-1.82 3.639a7.423 7.423 0 0 1-3.593-1.256 9.303 9.303 0 0 0 2.27-5.203h1.894a.94.94 0 0 0 0-1.881H9.456V3.94A.94.94 0 0 0 8.516 3Zm6.426 11.794a1.068 1.068 0 0 1-.02.039l-.703 1.407h3.924l-1.962-3.924-1.24 2.478Z" clip-rule="evenodd"/></svg> <select autocomplete="off" class="astro-nmwkdvwx"> <option value="/bmad-developer-guide/" class="astro-nmwkdvwx">English</option><option value="/vi-vn/bmad-developer-guide/" selected class="astro-nmwkdvwx">Tiếng Việt</option><option value="/zh-cn/bmad-developer-guide/" class="astro-nmwkdvwx">简体中文</option><option value="/fr/bmad-developer-guide/" class="astro-nmwkdvwx">Français</option><option value="/cs/bmad-developer-guide/" class="astro-nmwkdvwx">Čeština</option> </select> <svg aria-hidden="true" class="icon caret astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-lang-select><script type="module">class s extends HTMLElement{constructor(){super();const e=this.querySelector("select");e&&(e.addEventListener("change",t=>{t.currentTarget instanceof HTMLSelectElement&&(window.location.pathname=t.currentTarget.value)}),window.addEventListener("pageshow",t=>{if(!t.persisted)return;const n=e.querySelector("option[selected]")?.index;n!==e.selectedIndex&&(e.selectedIndex=n??0)}))}}customElements.define("starlight-lang-select",s);</script> </div> </div> </header> <nav class="sidebar print:hidden astro-2xv6dk2n" aria-label="Điều hướng chính"> <starlight-menu-button class="print:hidden astro-rcmu22v7"> <button aria-expanded="false" aria-label="Menu" aria-controls="starlight__sidebar" class="sl-flex md:sl-hidden astro-rcmu22v7"> <svg aria-hidden="true" class="open-menu astro-rcmu22v7 astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M3 8h18a1 1 0 1 0 0-2H3a1 1 0 0 0 0 2Zm18 8H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Zm0-5H3a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2Z"/></svg> <svg aria-hidden="true" class="close-menu astro-rcmu22v7 astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="m13.41 12 6.3-6.29a1.004 1.004 0 1 0-1.42-1.42L12 10.59l-6.29-6.3a1.004 1.004 0 0 0-1.42 1.42l6.3 6.29-6.3 6.29a1 1 0 0 0 0 1.42.998.998 0 0 0 1.42 0l6.29-6.3 6.29 6.3a.999.999 0 0 0 1.42 0 1 1 0 0 0 0-1.42L13.41 12Z"/></svg> </button> </starlight-menu-button> <script type="module">class s extends HTMLElement{constructor(){super(),this.btn=this.querySelector("button"),this.btn.addEventListener("click",()=>this.toggleExpanded());const t=this.closest("nav");t&&t.addEventListener("keyup",e=>this.closeOnEscape(e))}setExpanded(t){this.setAttribute("aria-expanded",String(t)),document.body.toggleAttribute("data-mobile-menu-expanded",t)}toggleExpanded(){this.setExpanded(this.getAttribute("aria-expanded")!=="true")}closeOnEscape(t){t.code==="Escape"&&(this.setExpanded(!1),this.btn.focus())}}customElements.define("starlight-menu-button",s);</script> <div id="starlight__sidebar" class="sidebar-pane astro-2xv6dk2n"> <div class="sidebar-content sl-flex astro-2xv6dk2n"> <sl-sidebar-state-persist data-hash="10wi2mh" class="astro-t57j3vat"> <script aria-hidden="true">
42
+ (() => {
43
+ try {
44
+ if (!matchMedia('(min-width: 50em)').matches) return;
45
+ /** @type {HTMLElement | null} */
46
+ const target = document.querySelector('sl-sidebar-state-persist');
47
+ const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0');
48
+ if (!target || !state || target.dataset.hash !== state.hash) return;
49
+ window._starlightScrollRestore = state.scroll;
50
+ customElements.define(
51
+ 'sl-sidebar-restore',
52
+ class SidebarRestore extends HTMLElement {
53
+ connectedCallback() {
54
+ try {
55
+ const idx = parseInt(this.dataset.index || '');
56
+ const details = this.closest('details');
57
+ if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx];
58
+ } catch {}
59
+ }
60
+ }
61
+ );
62
+ } catch {}
63
+ })();
64
+ </script> <ul class="top-level astro-yhouv36n"> <li class="astro-yhouv36n"> <a href="/vi-vn/" class="large astro-yhouv36n"> <span class="astro-yhouv36n">Chào mừng</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/roadmap/" class="large astro-yhouv36n"> <span class="astro-yhouv36n">Lộ trình</span> </a> </li><li class="astro-yhouv36n"> <details open class="astro-yhouv36n"> <summary class="astro-yhouv36n"> <span class="group-label astro-yhouv36n"> <span class="large astro-yhouv36n">Hướng dẫn nhập môn</span> </span> <svg aria-hidden="true" class="caret astro-yhouv36n astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="0"></sl-sidebar-restore> <ul class="astro-yhouv36n"> <li class="astro-yhouv36n"> <a href="/vi-vn/tutorials/getting-started/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Bắt đầu</span> </a> </li> </ul> </details> </li><li class="astro-yhouv36n"> <details class="astro-yhouv36n"> <summary class="astro-yhouv36n"> <span class="group-label astro-yhouv36n"> <span class="large astro-yhouv36n">Hướng dẫn tác vụ</span> </span> <svg aria-hidden="true" class="caret astro-yhouv36n astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="1"></sl-sidebar-restore> <ul class="astro-yhouv36n"> <li class="astro-yhouv36n"> <a href="/vi-vn/how-to/install-bmad/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cách cài đặt BMad</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/non-interactive-installation/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cài đặt không tương tác</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/install-custom-modules/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cài đặt module tùy chỉnh và module cộng đồng</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/upgrade-to-v6/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cách nâng cấp lên v6</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/get-answers-about-bmad/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cách tìm câu trả lời về BMad</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/quick-fixes/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Sửa nhanh</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/established-projects/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Dự án đã tồn tại</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/customize-bmad/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cách tùy chỉnh BMad</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/project-context/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Quản lý bối cảnh dự án</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/shard-large-documents/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Hướng dẫn chia nhỏ tài liệu</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/expand-bmad-for-your-org/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Cách mở rộng BMad cho tổ chức của bạn</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/how-to/use-web-bundles/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Use Web Bundles</span> </a> </li> </ul> </details> </li><li class="astro-yhouv36n"> <details class="astro-yhouv36n"> <summary class="astro-yhouv36n"> <span class="group-label astro-yhouv36n"> <span class="large astro-yhouv36n">Giải thích</span> </span> <svg aria-hidden="true" class="caret astro-yhouv36n astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="2"></sl-sidebar-restore> <ul class="astro-yhouv36n"> <li class="astro-yhouv36n"> <a href="/vi-vn/explanation/named-agents/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Agent có tên riêng (Named Agents)</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/analysis-phase/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Giai đoạn phân tích: từ ý tưởng đến nền tảng</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/brainstorming/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Động não ý tưởng</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/advanced-elicitation/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Khai thác nâng cao</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/why-solutioning-matters/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Vì sao solutioning quan trọng</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/preventing-agent-conflicts/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Ngăn xung đột giữa các agent</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/quick-dev/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Phát triển nhanh</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/checkpoint-preview/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Xem trước Checkpoint</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/adversarial-review/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Đánh giá đối kháng</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/forensic-investigation/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Forensic Investigation</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/party-mode/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Chế độ Party</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/project-context/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Bối cảnh dự án</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/established-projects-faq/" class="astro-yhouv36n"> <span class="astro-yhouv36n">FAQ cho dự án đã tồn tại</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/explanation/web-bundles/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Web Bundles</span> </a> </li> </ul> </details> </li><li class="astro-yhouv36n"> <details class="astro-yhouv36n"> <summary class="astro-yhouv36n"> <span class="group-label astro-yhouv36n"> <span class="large astro-yhouv36n">Tham chiếu</span> </span> <svg aria-hidden="true" class="caret astro-yhouv36n astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.25rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg> </summary> <sl-sidebar-restore data-index="3"></sl-sidebar-restore> <ul class="astro-yhouv36n"> <li class="astro-yhouv36n"> <a href="/vi-vn/reference/workflow-map/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Sơ đồ workflow</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/reference/agents/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Các agent</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/reference/core-tools/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Công cụ cốt lõi</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/reference/commands/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Các skill</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/reference/modules/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Các Module Chính Thức</span> </a> </li><li class="astro-yhouv36n"> <a href="/vi-vn/reference/testing/" class="astro-yhouv36n"> <span class="astro-yhouv36n">Các Tùy Chọn Kiểm Thử</span> </a> </li> </ul> </details> </li> </ul> <script aria-hidden="true">
65
+ (() => {
66
+ const scroller = document.getElementById('starlight__sidebar');
67
+ if (!window._starlightScrollRestore || !scroller) return;
68
+ scroller.scrollTop = window._starlightScrollRestore;
69
+ delete window._starlightScrollRestore;
70
+ })();
71
+ </script> </sl-sidebar-state-persist> <div class="md:sl-hidden"> <div class="mobile-preferences sl-flex astro-lbnvevm2"> <div class="sl-flex social-icons astro-lbnvevm2"> <a href="https://github.com/wizzcomms/wizz-method" rel="me" class="sl-flex astro-bgmygzip"><span class="sr-only astro-bgmygzip">GitHub</span><svg aria-hidden="true" class="astro-bgmygzip astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M12 .3a12 12 0 0 0-3.8 23.38c.6.12.83-.26.83-.57L9 21.07c-3.34.72-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.09-.73.09-.73 1.2.09 1.83 1.24 1.83 1.24 1.08 1.83 2.81 1.3 3.5 1 .1-.78.42-1.31.76-1.61-2.67-.3-5.47-1.33-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.14-.3-.54-1.52.1-3.18 0 0 1-.32 3.3 1.23a11.5 11.5 0 0 1 6 0c2.28-1.55 3.29-1.23 3.29-1.23.64 1.66.24 2.88.12 3.18a4.65 4.65 0 0 1 1.23 3.22c0 4.61-2.8 5.63-5.48 5.92.42.36.81 1.1.81 2.22l-.01 3.29c0 .31.2.69.82.57A12 12 0 0 0 12 .3Z"/></svg></a> </div> <starlight-theme-select> <label style="--sl-select-width: 6.25em" class="astro-nmwkdvwx"> <span class="sr-only astro-nmwkdvwx">Chọn giao diện</span> <svg aria-hidden="true" class="icon label-icon astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M21 14h-1V7a3 3 0 0 0-3-3H7a3 3 0 0 0-3 3v7H3a1 1 0 0 0-1 1v2a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3v-2a1 1 0 0 0-1-1ZM6 7a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v7H6V7Zm14 10a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-1h16v1Z"/></svg> <select autocomplete="off" class="astro-nmwkdvwx"> <option value="dark" class="astro-nmwkdvwx">Tối</option><option value="light" class="astro-nmwkdvwx">Sáng</option><option value="auto" selected class="astro-nmwkdvwx">Tự động</option> </select> <svg aria-hidden="true" class="icon caret astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-theme-select> <script>
72
+ StarlightThemeProvider.updatePickers();
73
+ </script> <starlight-lang-select><label style="--sl-select-width: 7em" class="astro-nmwkdvwx"> <span class="sr-only astro-nmwkdvwx">Chọn ngôn ngữ</span> <svg aria-hidden="true" class="icon label-icon astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path fill-rule="evenodd" d="M8.516 3a.94.94 0 0 0-.941.94v1.15H2.94a.94.94 0 1 0 0 1.882h7.362a7.422 7.422 0 0 1-1.787 3.958 7.42 7.42 0 0 1-1.422-2.425.94.94 0 1 0-1.774.627 9.303 9.303 0 0 0 1.785 3.043 7.422 7.422 0 0 1-4.164 1.278.94.94 0 1 0 0 1.881 9.303 9.303 0 0 0 5.575-1.855 9.303 9.303 0 0 0 4.11 1.74l-.763 1.525a.968.968 0 0 0-.016.034l-1.385 2.77a.94.94 0 1 0 1.683.841l1.133-2.267h5.806l1.134 2.267a.94.94 0 0 0 1.683-.841l-1.385-2.769a.95.95 0 0 0-.018-.036l-3.476-6.951a.94.94 0 0 0-1.682 0l-1.82 3.639a7.423 7.423 0 0 1-3.593-1.256 9.303 9.303 0 0 0 2.27-5.203h1.894a.94.94 0 0 0 0-1.881H9.456V3.94A.94.94 0 0 0 8.516 3Zm6.426 11.794a1.068 1.068 0 0 1-.02.039l-.703 1.407h3.924l-1.962-3.924-1.24 2.478Z" clip-rule="evenodd"/></svg> <select autocomplete="off" class="astro-nmwkdvwx"> <option value="/bmad-developer-guide/" class="astro-nmwkdvwx">English</option><option value="/vi-vn/bmad-developer-guide/" selected class="astro-nmwkdvwx">Tiếng Việt</option><option value="/zh-cn/bmad-developer-guide/" class="astro-nmwkdvwx">简体中文</option><option value="/fr/bmad-developer-guide/" class="astro-nmwkdvwx">Français</option><option value="/cs/bmad-developer-guide/" class="astro-nmwkdvwx">Čeština</option> </select> <svg aria-hidden="true" class="icon caret astro-nmwkdvwx astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1em;"><path d="M17 9.17a1 1 0 0 0-1.41 0L12 12.71 8.46 9.17a1 1 0 1 0-1.41 1.42l4.24 4.24a1.002 1.002 0 0 0 1.42 0L17 10.59a1.002 1.002 0 0 0 0-1.42Z"/></svg> </label> </starlight-lang-select> </div> </div> </div> </div> </nav> <div class="main-frame astro-2xv6dk2n"> <script type="module">const a=document.getElementById("starlight__sidebar"),n=a?.querySelector("sl-sidebar-state-persist"),o="sl-sidebar-state",i=()=>{let t=[];const e=n?.dataset.hash||"";try{const s=sessionStorage.getItem(o),r=JSON.parse(s||"{}");Array.isArray(r.open)&&r.hash===e&&(t=r.open)}catch{}return{hash:e,open:t,scroll:a?.scrollTop||0}},c=t=>{try{sessionStorage.setItem(o,JSON.stringify(t))}catch{}},d=()=>c(i()),l=(t,e)=>{const s=i();s.open[e]=t,c(s)};n?.addEventListener("click",t=>{if(!(t.target instanceof Element))return;const e=t.target.closest("summary")?.closest("details");if(!e)return;const s=e.querySelector("sl-sidebar-restore"),r=parseInt(s?.dataset.index||"");isNaN(r)||l(!e.open,r)});addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&d()});addEventListener("pageHide",d);</script> <div class="lg:sl-flex astro-ppt5ty36"> <aside class="right-sidebar-container print:hidden astro-ppt5ty36"> <div class="right-sidebar astro-ppt5ty36"> <script type="module" src="/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js"></script><script type="module" src="/_astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js"></script><div class="lg:sl-hidden astro-se4agvxv"><mobile-starlight-toc data-min-h="2" data-max-h="3" class="astro-c5ccmeve"><nav aria-labelledby="starlight__on-this-page--mobile" class="astro-c5ccmeve"><details id="starlight__mobile-toc" class="astro-c5ccmeve"><summary id="starlight__on-this-page--mobile" class="sl-flex astro-c5ccmeve"><span class="toggle sl-flex astro-c5ccmeve">Trên trang này<svg aria-hidden="true" class="caret astro-c5ccmeve astro-zf5byosl" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1rem;"><path d="m14.83 11.29-4.24-4.24a1 1 0 1 0-1.42 1.41L12.71 12l-3.54 3.54a1 1 0 0 0 0 1.41 1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.24-4.24a1.002 1.002 0 0 0 0-1.42Z"/></svg></span><span class="display-current astro-c5ccmeve"></span></summary><div class="dropdown astro-c5ccmeve"><ul class="isMobile astro-xsqhb6qp" style="--depth: 0;"> <li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#_top" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Tổng quan</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#mục-lục" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Mục lục</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#1-bmad-là-gì" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">1. BMAD là gì?</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#điểm-khác-biệt-so-với-cách-dùng-ai-thông-thường" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Điểm khác biệt so với cách dùng AI thông thường</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#bmad-phù-hợp-với-ai" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">BMAD phù hợp với ai?</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#2-nguyên-lý-cốt-lõi" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">2. Nguyên lý cốt lõi</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#21-tài-liệu-là-ngôn-ngữ-chung-giữa-con-người-và-ai" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.1. Tài liệu là “ngôn ngữ chung” giữa con người và AI</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#22-phân-tách-xây-gì-và-xây-như-thế-nào" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.2. Phân tách “XÂY GÌ” và “XÂY NHƯ THẾ NÀO”</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#23-agent-chuyên-biệt--mỗi-vai-trò-một-chuyên-gia" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.3. Agent chuyên biệt — mỗi vai trò một chuyên gia</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#24-con-người-chỉ-tham-gia-tại-các-điểm-kiểm-tra-quan-trọng" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.4. Con người chỉ tham gia tại các điểm kiểm tra quan trọng</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#25-có-thể-mở-rộng-theo-nhu-cầu" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.5. Có thể mở rộng theo nhu cầu</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#3-kiến-trúc-hệ-thống--các-agent" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">3. Kiến trúc hệ thống — Các Agent</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#31-các-agent-chính" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">3.1. Các Agent chính</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#32-cách-gọi-agent" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">3.2. Cách gọi Agent</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#4-quy-trình-làm-việc--4-giai-đoạn" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">4. Quy trình làm việc — 4 Giai đoạn</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-1-phân-tích-tùy-chọn" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 1: Phân tích (Tùy chọn)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-2-lập-kế-hoạch-bắt-buộc" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 2: Lập kế hoạch (Bắt buộc)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-3-định-hình-giải-pháp-bắt-buộc-với-bmad-method--enterprise" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 3: Định hình giải pháp (Bắt buộc với BMad Method / Enterprise)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-4-triển-khai-bắt-buộc" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 4: Triển khai (Bắt buộc)</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#5-chọn-nhánh-phù-hợp" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">5. Chọn nhánh phù hợp</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#quick-flow--nhánh-nhanh" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Quick Flow — Nhánh nhanh</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#bmad-method--nhánh-đầy-đủ" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">BMad Method — Nhánh đầy đủ</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#enterprise--nhánh-mở-rộng" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Enterprise — Nhánh mở rộng</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#6-hướng-dẫn-từng-bước-áp-dụng-bmad" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">6. Hướng dẫn từng bước áp dụng BMAD</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#61-dự-án-mới" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">6.1. Dự án mới</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#62-dự-án-đã-tồn-tại" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">6.2. Dự án đã tồn tại</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#63-luồng-làm-việc-mẫu--tính-năng-mới-bmad-method" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">6.3. Luồng làm việc mẫu — Tính năng mới (BMad Method)</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#7-kiểm-thử-với-bmad--hướng-dẫn-cho-qc" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">7. Kiểm thử với BMAD — Hướng dẫn cho QC</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#71-qa-tích-hợp-sẵn--nhẹ-nhàng-developer-agent" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.1. QA tích hợp sẵn — Nhẹ nhàng (Developer Agent)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#72-module-test-architect-tea--nâng-cao" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.2. Module Test Architect (TEA) — Nâng cao</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#73-so-sánh-hai-hướng-tiếp-cận" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.3. So sánh hai hướng tiếp cận</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#74-vị-trí-kiểm-thử-trong-vòng-đời-dự-án" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.4. Vị trí kiểm thử trong vòng đời dự án</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#75-edge-case-hunter--công-cụ-tìm-trường-hợp-biên" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.5. Edge Case Hunter — Công cụ tìm trường hợp biên</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#8-các-công-cụ-hỗ-trợ" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">8. Các công cụ hỗ trợ</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#81-party-mode--thảo-luận-đa-agent" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.1. Party Mode — Thảo luận đa agent</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#82-advanced-elicitation--tinh-luyện-đầu-ra" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.2. Advanced Elicitation — Tinh luyện đầu ra</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#83-adversarial-review--review-hoài-nghi" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.3. Adversarial Review — Review hoài nghi</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#84-shard-large-documents--tách-file-lớn" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.4. Shard Large Documents — Tách file lớn</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#9-cấu-trúc-thư-mục-dự-án" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">9. Cấu trúc thư mục dự án</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#10-mẹo-và-best-practices" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">10. Mẹo và Best Practices</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#chat-mới-cho-mỗi-workflow" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Chat mới cho mỗi workflow</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#đọc-kỹ-project-contextmd-trước-khi-bắt-đầu-sprint" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Đọc kỹ project-context.md trước khi bắt đầu sprint</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#kiến-trúc-là-bắt-buộc-khi-có-nhiều-developer" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Kiến trúc là bắt buộc khi có nhiều developer</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#dùng-bmad-help-khi-không-chắc" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Dùng bmad-help khi không chắc</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#quick-flow-không-có-nghĩa-là-không-có-chất-lượng" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Quick Flow không có nghĩa là không có chất lượng</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#customize-agent-theo-nhu-cầu-team" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Customize agent theo nhu cầu team</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#vị-trí-qa-trong-workflow" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Vị trí QA trong workflow</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#tài-liệu-tham-khảo" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Tài liệu tham khảo</span> </a> </li> </ul> </div></details></nav></mobile-starlight-toc></div><div class="right-sidebar-panel sl-hidden lg:sl-block astro-se4agvxv"><div class="sl-container astro-se4agvxv"><starlight-toc data-min-h="2" data-max-h="3"><nav aria-labelledby="starlight__on-this-page"><h2 id="starlight__on-this-page">Trên trang này</h2><ul class="astro-xsqhb6qp" style="--depth: 0;"> <li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#_top" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Tổng quan</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#mục-lục" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Mục lục</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#1-bmad-là-gì" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">1. BMAD là gì?</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#điểm-khác-biệt-so-với-cách-dùng-ai-thông-thường" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Điểm khác biệt so với cách dùng AI thông thường</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#bmad-phù-hợp-với-ai" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">BMAD phù hợp với ai?</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#2-nguyên-lý-cốt-lõi" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">2. Nguyên lý cốt lõi</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#21-tài-liệu-là-ngôn-ngữ-chung-giữa-con-người-và-ai" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.1. Tài liệu là “ngôn ngữ chung” giữa con người và AI</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#22-phân-tách-xây-gì-và-xây-như-thế-nào" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.2. Phân tách “XÂY GÌ” và “XÂY NHƯ THẾ NÀO”</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#23-agent-chuyên-biệt--mỗi-vai-trò-một-chuyên-gia" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.3. Agent chuyên biệt — mỗi vai trò một chuyên gia</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#24-con-người-chỉ-tham-gia-tại-các-điểm-kiểm-tra-quan-trọng" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.4. Con người chỉ tham gia tại các điểm kiểm tra quan trọng</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#25-có-thể-mở-rộng-theo-nhu-cầu" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">2.5. Có thể mở rộng theo nhu cầu</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#3-kiến-trúc-hệ-thống--các-agent" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">3. Kiến trúc hệ thống — Các Agent</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#31-các-agent-chính" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">3.1. Các Agent chính</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#32-cách-gọi-agent" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">3.2. Cách gọi Agent</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#4-quy-trình-làm-việc--4-giai-đoạn" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">4. Quy trình làm việc — 4 Giai đoạn</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-1-phân-tích-tùy-chọn" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 1: Phân tích (Tùy chọn)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-2-lập-kế-hoạch-bắt-buộc" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 2: Lập kế hoạch (Bắt buộc)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-3-định-hình-giải-pháp-bắt-buộc-với-bmad-method--enterprise" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 3: Định hình giải pháp (Bắt buộc với BMad Method / Enterprise)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#giai-đoạn-4-triển-khai-bắt-buộc" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Giai đoạn 4: Triển khai (Bắt buộc)</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#5-chọn-nhánh-phù-hợp" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">5. Chọn nhánh phù hợp</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#quick-flow--nhánh-nhanh" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Quick Flow — Nhánh nhanh</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#bmad-method--nhánh-đầy-đủ" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">BMad Method — Nhánh đầy đủ</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#enterprise--nhánh-mở-rộng" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Enterprise — Nhánh mở rộng</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#6-hướng-dẫn-từng-bước-áp-dụng-bmad" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">6. Hướng dẫn từng bước áp dụng BMAD</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#61-dự-án-mới" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">6.1. Dự án mới</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#62-dự-án-đã-tồn-tại" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">6.2. Dự án đã tồn tại</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#63-luồng-làm-việc-mẫu--tính-năng-mới-bmad-method" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">6.3. Luồng làm việc mẫu — Tính năng mới (BMad Method)</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#7-kiểm-thử-với-bmad--hướng-dẫn-cho-qc" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">7. Kiểm thử với BMAD — Hướng dẫn cho QC</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#71-qa-tích-hợp-sẵn--nhẹ-nhàng-developer-agent" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.1. QA tích hợp sẵn — Nhẹ nhàng (Developer Agent)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#72-module-test-architect-tea--nâng-cao" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.2. Module Test Architect (TEA) — Nâng cao</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#73-so-sánh-hai-hướng-tiếp-cận" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.3. So sánh hai hướng tiếp cận</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#74-vị-trí-kiểm-thử-trong-vòng-đời-dự-án" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.4. Vị trí kiểm thử trong vòng đời dự án</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#75-edge-case-hunter--công-cụ-tìm-trường-hợp-biên" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">7.5. Edge Case Hunter — Công cụ tìm trường hợp biên</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#8-các-công-cụ-hỗ-trợ" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">8. Các công cụ hỗ trợ</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#81-party-mode--thảo-luận-đa-agent" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.1. Party Mode — Thảo luận đa agent</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#82-advanced-elicitation--tinh-luyện-đầu-ra" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.2. Advanced Elicitation — Tinh luyện đầu ra</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#83-adversarial-review--review-hoài-nghi" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.3. Adversarial Review — Review hoài nghi</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#84-shard-large-documents--tách-file-lớn" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">8.4. Shard Large Documents — Tách file lớn</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#9-cấu-trúc-thư-mục-dự-án" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">9. Cấu trúc thư mục dự án</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#10-mẹo-và-best-practices" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">10. Mẹo và Best Practices</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#chat-mới-cho-mỗi-workflow" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Chat mới cho mỗi workflow</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#đọc-kỹ-project-contextmd-trước-khi-bắt-đầu-sprint" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Đọc kỹ project-context.md trước khi bắt đầu sprint</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#kiến-trúc-là-bắt-buộc-khi-có-nhiều-developer" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Kiến trúc là bắt buộc khi có nhiều developer</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#dùng-bmad-help-khi-không-chắc" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Dùng bmad-help khi không chắc</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#quick-flow-không-có-nghĩa-là-không-có-chất-lượng" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Quick Flow không có nghĩa là không có chất lượng</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#customize-agent-theo-nhu-cầu-team" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Customize agent theo nhu cầu team</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#vị-trí-qa-trong-workflow" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">Vị trí QA trong workflow</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#tài-liệu-tham-khảo" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Tài liệu tham khảo</span> </a> </li> </ul> </nav></starlight-toc></div></div> </div> </aside> <div class="main-pane astro-ppt5ty36"> <main data-pagefind-body class="astro-uxe7q6yi" lang="vi-VN" dir="ltr"> <div class="content-panel astro-aoj46c3a"> <div class="sl-container astro-aoj46c3a"> <h1 id="_top" class="astro-obdi53jg">Hướng dẫn BMAD cho Developer</h1> </div> </div> <div class="content-panel astro-aoj46c3a"> <div class="sl-container astro-aoj46c3a"> <div class="sl-markdown-content"> <div class="sl-heading-wrapper level-h1"><h1 id="bmad-method--hướng-dẫn-toàn-diện-cho-developer">BMAD Method — Hướng dẫn toàn diện cho Developer</h1><a class="sl-anchor-link" href="#bmad-method--hướng-dẫn-toàn-diện-cho-developer"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “BMAD Method — Hướng dẫn toàn diện cho Developer”</span></a></div>
74
+ <blockquote>
75
+ <p><strong>BMAD</strong> (Build More Architect Dreams) là framework phát triển phần mềm hỗ trợ bởi AI, giúp team đi từ ý tưởng đến sản phẩm một cách có cấu trúc, nhất quán và hiệu quả.</p>
76
+ </blockquote>
77
+ <hr>
78
+ <div class="sl-heading-wrapper level-h2"><h2 id="mục-lục">Mục lục</h2><a class="sl-anchor-link" href="#mục-lục"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Mục lục”</span></a></div>
79
+ <ol>
80
+ <li><a href="#1-bmad-l%C3%A0-g%C3%AC">BMAD là gì?</a></li>
81
+ <li><a href="#2-nguy%C3%AAn-l%C3%BD-c%E1%BB%91t-l%C3%B5i">Nguyên lý cốt lõi</a></li>
82
+ <li><a href="#3-ki%E1%BA%BFn-tr%C3%BAc-h%E1%BB%87-th%E1%BB%91ng--c%C3%A1c-agent">Kiến trúc hệ thống — Các Agent</a></li>
83
+ <li><a href="#4-quy-tr%C3%ACnh-l%C3%A0m-vi%E1%BB%87c--4-giai-%C4%91o%E1%BA%A1n">Quy trình làm việc — 4 Giai đoạn</a></li>
84
+ <li><a href="#5-ch%E1%BB%8Dn-nh%C3%A1nh-ph%C3%B9-h%E1%BB%A3p">Chọn nhánh phù hợp</a></li>
85
+ <li><a href="#6-h%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-t%E1%BB%ABng-b%C6%B0%E1%BB%9Bc-%C3%A1p-d%E1%BB%A5ng-bmad">Hướng dẫn từng bước áp dụng BMAD</a></li>
86
+ <li><a href="#7-ki%E1%BB%83m-th%E1%BB%AD-v%E1%BB%9Bi-bmad--h%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-cho-qc">Kiểm thử với BMAD — Hướng dẫn cho QC</a></li>
87
+ <li><a href="#8-c%C3%A1c-c%C3%B4ng-c%E1%BB%A5-h%E1%BB%97-tr%E1%BB%A3">Các công cụ hỗ trợ</a></li>
88
+ <li><a href="#9-c%E1%BA%A5u-tr%C3%BAc-th%C6%B0-m%E1%BB%A5c-d%E1%BB%B1-%C3%A1n">Cấu trúc thư mục dự án</a></li>
89
+ <li><a href="#10-m%E1%BA%B9o-v%C3%A0-best-practices">Mẹo và Best Practices</a></li>
90
+ </ol>
91
+ <hr>
92
+ <div class="sl-heading-wrapper level-h2"><h2 id="1-bmad-là-gì">1. BMAD là gì?</h2><a class="sl-anchor-link" href="#1-bmad-là-gì"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “1. BMAD là gì?”</span></a></div>
93
+ <p><strong>BMAD Method</strong> là một hệ thống phối hợp nhiều AI agent chuyên biệt để hỗ trợ toàn bộ vòng đời phát triển phần mềm — từ phân tích ý tưởng, lập kế hoạch, thiết kế kiến trúc, đến triển khai code và kiểm thử.</p>
94
+ <div class="sl-heading-wrapper level-h3"><h3 id="điểm-khác-biệt-so-với-cách-dùng-ai-thông-thường">Điểm khác biệt so với cách dùng AI thông thường</h3><a class="sl-anchor-link" href="#điểm-khác-biệt-so-với-cách-dùng-ai-thông-thường"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Điểm khác biệt so với cách dùng AI thông thường”</span></a></div>
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+ <table><thead><tr><th>Cách thông thường</th><th>BMAD Method</th></tr></thead><tbody><tr><td>Hỏi AI từng câu rời rạc</td><td>Workflow có cấu trúc, mỗi bước tạo đầu ra cho bước kế tiếp</td></tr><tr><td>Một AI làm tất cả</td><td>Nhiều agent chuyên biệt, mỗi agent hiểu sâu vai trò của mình</td></tr><tr><td>Không có tài liệu hóa</td><td>Mỗi giai đoạn sinh ra tài liệu chuẩn (PRD, Architecture, Stories)</td></tr><tr><td>Developer phải giám sát liên tục</td><td>Agent tự chủ dài hơn, chỉ cần con người tại các điểm kiểm tra quan trọng</td></tr></tbody></table>
121
+ <div class="sl-heading-wrapper level-h3"><h3 id="bmad-phù-hợp-với-ai">BMAD phù hợp với ai?</h3><a class="sl-anchor-link" href="#bmad-phù-hợp-với-ai"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “BMAD phù hợp với ai?”</span></a></div>
122
+ <ul>
123
+ <li><strong>Developer</strong> cần xây dựng tính năng nhanh, chất lượng cao</li>
124
+ <li><strong>Tech Lead / Architect</strong> cần thiết kế hệ thống và phân rã công việc</li>
125
+ <li><strong>Product Manager</strong> cần định nghĩa yêu cầu rõ ràng</li>
126
+ <li><strong>QC/Tester</strong> cần sinh test case có truy vết yêu cầu</li>
127
+ <li><strong>Team nhỏ</strong> muốn áp dụng quy trình chuẩn không cần nhiều overhead</li>
128
+ </ul>
129
+ <hr>
130
+ <div class="sl-heading-wrapper level-h2"><h2 id="2-nguyên-lý-cốt-lõi">2. Nguyên lý cốt lõi</h2><a class="sl-anchor-link" href="#2-nguyên-lý-cốt-lõi"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “2. Nguyên lý cốt lõi”</span></a></div>
131
+ <div class="sl-heading-wrapper level-h3"><h3 id="21-tài-liệu-là-ngôn-ngữ-chung-giữa-con-người-và-ai">2.1. Tài liệu là “ngôn ngữ chung” giữa con người và AI</h3><a class="sl-anchor-link" href="#21-tài-liệu-là-ngôn-ngữ-chung-giữa-con-người-và-ai"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “2.1. Tài liệu là “ngôn ngữ chung” giữa con người và AI”</span></a></div>
132
+ <p>Mỗi giai đoạn trong BMAD sinh ra một tài liệu chuẩn. Tài liệu đó trở thành <strong>đầu vào</strong> cho giai đoạn kế tiếp. Agent AI đọc tài liệu để hiểu context, thay vì phụ thuộc vào lịch sử hội thoại có thể bị mất.</p>
133
+ <div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.v4551.css"><script type="module" src="/_astro/ec.0vx5m.js"></script><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Ý tưởng → [Brief/PRFAQ] → PRD → Architecture → Epics/Stories → Code → Tests</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Ý tưởng → [Brief/PRFAQ] → PRD → Architecture → Epics/Stories → Code → Tests"><div></div></button></div></figure></div>
134
+ <div class="sl-heading-wrapper level-h3"><h3 id="22-phân-tách-xây-gì-và-xây-như-thế-nào">2.2. Phân tách “XÂY GÌ” và “XÂY NHƯ THẾ NÀO”</h3><a class="sl-anchor-link" href="#22-phân-tách-xây-gì-và-xây-như-thế-nào"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “2.2. Phân tách “XÂY GÌ” và “XÂY NHƯ THẾ NÀO””</span></a></div>
135
+ <p>BMAD tách bạch rõ ràng hai câu hỏi quan trọng nhất:</p>
136
+ <ul>
137
+ <li><strong>Planning (Giai đoạn 2)</strong>: Trả lời <strong>“XÂY GÌ và vì sao?”</strong> → Đầu ra: PRD</li>
138
+ <li><strong>Solutioning (Giai đoạn 3)</strong>: Trả lời <strong>“XÂY NHƯ THẾ NÀO?”</strong> → Đầu ra: Architecture + Epics/Stories</li>
139
+ </ul>
140
+ <blockquote>
141
+ <p>Đây là nguyên lý quan trọng nhất. Nhiều dự án thất bại vì triển khai khi chưa thống nhất được “XÂY GÌ”, hoặc bắt đầu code mà chưa quyết định “XÂY NHƯ THẾ NÀO”.</p>
142
+ </blockquote>
143
+ <div class="sl-heading-wrapper level-h3"><h3 id="23-agent-chuyên-biệt--mỗi-vai-trò-một-chuyên-gia">2.3. Agent chuyên biệt — mỗi vai trò một chuyên gia</h3><a class="sl-anchor-link" href="#23-agent-chuyên-biệt--mỗi-vai-trò-một-chuyên-gia"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “2.3. Agent chuyên biệt — mỗi vai trò một chuyên gia”</span></a></div>
144
+ <p>BMAD không dùng một AI đa năng mà dùng các agent được cấu hình để đóng vai chuyên gia cụ thể: PM, Architect, Developer, UX Designer, Technical Writer. Mỗi agent có phong cách tư duy, ưu tiên, và workflow riêng.</p>
145
+ <div class="sl-heading-wrapper level-h3"><h3 id="24-con-người-chỉ-tham-gia-tại-các-điểm-kiểm-tra-quan-trọng">2.4. Con người chỉ tham gia tại các điểm kiểm tra quan trọng</h3><a class="sl-anchor-link" href="#24-con-người-chỉ-tham-gia-tại-các-điểm-kiểm-tra-quan-trọng"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “2.4. Con người chỉ tham gia tại các điểm kiểm tra quan trọng”</span></a></div>
146
+ <p>BMAD được thiết kế để AI tự chủ trong phạm vi đã định nghĩa, chỉ đưa con người vào:</p>
147
+ <ul>
148
+ <li>Phê duyệt chuyển giai đoạn (PRD xong → Architect làm việc)</li>
149
+ <li>Review kết quả tổng thể (sau Dev Story, sau epic)</li>
150
+ <li>Quyết định thay đổi hướng (Correct Course)</li>
151
+ </ul>
152
+ <div class="sl-heading-wrapper level-h3"><h3 id="25-có-thể-mở-rộng-theo-nhu-cầu">2.5. Có thể mở rộng theo nhu cầu</h3><a class="sl-anchor-link" href="#25-có-thể-mở-rộng-theo-nhu-cầu"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “2.5. Có thể mở rộng theo nhu cầu”</span></a></div>
153
+ <p>Ba nhánh lập kế hoạch với độ phức tạp tăng dần:</p>
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ <table><thead><tr><th>Nhánh</th><th>Phù hợp với</th><th>Story ước tính</th></tr></thead><tbody><tr><td><strong>Quick Flow</strong></td><td>Bug fix, tính năng nhỏ, phạm vi rõ</td><td>1–15 stories</td></tr><tr><td><strong>BMad Method</strong></td><td>Sản phẩm, nền tảng, tính năng phức tạp</td><td>10–50+ stories</td></tr><tr><td><strong>Enterprise</strong></td><td>Hệ thống tuân thủ, đa tenant, đa team</td><td>30+ stories</td></tr></tbody></table>
180
+ <hr>
181
+ <div class="sl-heading-wrapper level-h2"><h2 id="3-kiến-trúc-hệ-thống--các-agent">3. Kiến trúc hệ thống — Các Agent</h2><a class="sl-anchor-link" href="#3-kiến-trúc-hệ-thống--các-agent"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “3. Kiến trúc hệ thống — Các Agent”</span></a></div>
182
+ <div class="sl-heading-wrapper level-h3"><h3 id="31-các-agent-chính">3.1. Các Agent chính</h3><a class="sl-anchor-link" href="#31-các-agent-chính"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “3.1. Các Agent chính”</span></a></div>
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+ <table><thead><tr><th>Agent</th><th>Tên nhân vật</th><th>Skill ID</th><th>Vai trò</th></tr></thead><tbody><tr><td><strong>Analyst</strong></td><td>Mary</td><td><code dir="auto">bmad-analyst</code></td><td>Brainstorm, nghiên cứu thị trường/kỹ thuật, tạo Product Brief và PRFAQ</td></tr><tr><td><strong>Product Manager</strong></td><td>John</td><td><code dir="auto">bmad-pm</code></td><td>Tạo và quản lý PRD, Epics, Stories, kiểm tra Implementation Readiness</td></tr><tr><td><strong>Architect</strong></td><td>Winston</td><td><code dir="auto">bmad-architect</code></td><td>Thiết kế Architecture, ADR, kiểm tra Implementation Readiness</td></tr><tr><td><strong>Developer</strong></td><td>Amelia</td><td><code dir="auto">bmad-agent-dev</code></td><td>Triển khai story, tạo test, code review, sprint planning</td></tr><tr><td><strong>UX Designer</strong></td><td>Sally</td><td><code dir="auto">bmad-ux-designer</code></td><td>Thiết kế UX specification</td></tr><tr><td><strong>Technical Writer</strong></td><td>Paige</td><td><code dir="auto">bmad-tech-writer</code></td><td>Viết tài liệu, cập nhật standards, giải thích khái niệm</td></tr></tbody></table>
231
+ <div class="sl-heading-wrapper level-h3"><h3 id="32-cách-gọi-agent">3.2. Cách gọi Agent</h3><a class="sl-anchor-link" href="#32-cách-gọi-agent"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “3.2. Cách gọi Agent”</span></a></div>
232
+ <p><strong>Qua Skill</strong> (Claude Code / Cursor):</p>
233
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-analyst</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-pm</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-architect</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-agent-dev</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-analystbmad-pmbmad-architectbmad-agent-dev"><div></div></button></div></figure></div>
234
+ <p><strong>Qua Trigger</strong> (sau khi đã nạp agent, gõ mã ngắn trong hội thoại):</p>
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+ <table><thead><tr><th>Trigger</th><th>Agent</th><th>Workflow</th></tr></thead><tbody><tr><td><code dir="auto">BP</code></td><td>Analyst</td><td>Brainstorm</td></tr><tr><td><code dir="auto">CB</code></td><td>Analyst</td><td>Create Brief</td></tr><tr><td><code dir="auto">CP</code></td><td>PM</td><td>Create PRD</td></tr><tr><td><code dir="auto">VP</code></td><td>PM</td><td>Validate PRD</td></tr><tr><td><code dir="auto">EP</code></td><td>PM</td><td>Create Epics &#x26; Stories</td></tr><tr><td><code dir="auto">CA</code></td><td>Architect</td><td>Create Architecture</td></tr><tr><td><code dir="auto">IR</code></td><td>PM / Architect</td><td>Implementation Readiness</td></tr><tr><td><code dir="auto">SP</code></td><td>Developer</td><td>Sprint Planning</td></tr><tr><td><code dir="auto">DS</code></td><td>Developer</td><td>Dev Story</td></tr><tr><td><code dir="auto">QA</code></td><td>Developer</td><td>QA Test Generation</td></tr><tr><td><code dir="auto">CR</code></td><td>Developer</td><td>Code Review</td></tr></tbody></table>
301
+ <hr>
302
+ <div class="sl-heading-wrapper level-h2"><h2 id="4-quy-trình-làm-việc--4-giai-đoạn">4. Quy trình làm việc — 4 Giai đoạn</h2><a class="sl-anchor-link" href="#4-quy-trình-làm-việc--4-giai-đoạn"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “4. Quy trình làm việc — 4 Giai đoạn”</span></a></div>
303
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">┌─────────────────┐ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ Giai đoạn 1 │ │ Giai đoạn 2 │ │ Giai đoạn 3 │ │ Giai đoạn 4 │</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ PHÂN TÍCH │───▶│ LẬP KẾ HOẠCH │───▶│ ĐỊNH HÌNH GIẢI │───▶│ TRIỂN KHAI │</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ (Tùy chọn) │ │ (Bắt buộc) │ │ PHÁP (BMad/Ent) │ │ (Bắt buộc) │</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ │ │ │ │ │ │</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ Brief, PRFAQ │ │ PRD, UX Spec │ │ Architecture, │ │ Sprint, Stories, │</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ Research │ │ │ │ Epics, Stories │ │ Code, Test, QA │</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">└─────────────────┘ └─────────────────┘ └──────────────────┘ └─────────────────┘</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="┌─────────────────┐ ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐│ Giai đoạn 1 │ │ Giai đoạn 2 │ │ Giai đoạn 3 │ │ Giai đoạn 4 ││ PHÂN TÍCH │───▶│ LẬP KẾ HOẠCH │───▶│ ĐỊNH HÌNH GIẢI │───▶│ TRIỂN KHAI ││ (Tùy chọn) │ │ (Bắt buộc) │ │ PHÁP (BMad/Ent) │ │ (Bắt buộc) ││ │ │ │ │ │ │ ││ Brief, PRFAQ │ │ PRD, UX Spec │ │ Architecture, │ │ Sprint, Stories, ││ Research │ │ │ │ Epics, Stories │ │ Code, Test, QA │└─────────────────┘ └─────────────────┘ └──────────────────┘ └─────────────────┘"><div></div></button></div></figure></div>
304
+ <div class="sl-heading-wrapper level-h3"><h3 id="giai-đoạn-1-phân-tích-tùy-chọn">Giai đoạn 1: Phân tích (Tùy chọn)</h3><a class="sl-anchor-link" href="#giai-đoạn-1-phân-tích-tùy-chọn"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Giai đoạn 1: Phân tích (Tùy chọn)”</span></a></div>
305
+ <p>Giai đoạn này giúp khám phá và xác nhận ý tưởng <strong>trước khi</strong> cam kết lập kế hoạch chi tiết. Bỏ qua nếu yêu cầu đã rõ.</p>
306
+ <p><strong>Các công cụ:</strong></p>
307
+ <p><strong>Brainstorming</strong> — Khi cần khai phá ý tưởng</p>
308
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: BP (trong agent Analyst)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: brainstorming-report.md</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: BP (trong agent Analyst)Đầu ra: brainstorming-report.md"><div></div></button></div></figure></div>
309
+ <p>Sử dụng 60+ kỹ thuật brainstorming, tạo 100+ ý tưởng đa dạng, sau đó phân tích, lọc và đề xuất hướng tiếp cận.</p>
310
+ <p><strong>Product Brief</strong> — Khi concept đã tương đối rõ</p>
311
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: CB (trong agent Analyst)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: product-brief.md</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: CB (trong agent Analyst)Đầu ra: product-brief.md"><div></div></button></div></figure></div>
312
+ <p>Tóm tắt điều hành 1–2 trang: vấn đề, giải pháp, đối tượng, lợi thế cạnh tranh, rủi ro.</p>
313
+ <p><strong>PRFAQ</strong> — Khi cần stress-test concept</p>
314
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: (hỏi Analyst về PRFAQ)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: prfaq.md</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: (hỏi Analyst về PRFAQ)Đầu ra: prfaq.md"><div></div></button></div></figure></div>
315
+ <p>Phương pháp “Working Backwards” của Amazon: viết thông cáo báo chí như thể sản phẩm đã tồn tại, sau đó trả lời các câu hỏi khó nhất từ khách hàng. Buộc phải rõ ràng theo hướng lấy khách hàng làm trung tâm.</p>
316
+ <p><strong>Nghiên cứu</strong> — Xác thực giả định</p>
317
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: MR (Market Research), DR (Domain Research), TR (Technical Research)</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: MR (Market Research), DR (Domain Research), TR (Technical Research)"><div></div></button></div></figure></div>
318
+ <hr>
319
+ <div class="sl-heading-wrapper level-h3"><h3 id="giai-đoạn-2-lập-kế-hoạch-bắt-buộc">Giai đoạn 2: Lập kế hoạch (Bắt buộc)</h3><a class="sl-anchor-link" href="#giai-đoạn-2-lập-kế-hoạch-bắt-buộc"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Giai đoạn 2: Lập kế hoạch (Bắt buộc)”</span></a></div>
320
+ <p>Xác định rõ <strong>cần xây gì</strong> và <strong>cho ai</strong>.</p>
321
+ <p><strong>Tạo PRD</strong> — PM Agent</p>
322
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: CP</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: PRD.md</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: CPĐầu ra: PRD.md"><div></div></button></div></figure></div>
323
+ <p>PRD bao gồm: mục tiêu sản phẩm, functional requirements (FR), non-functional requirements (NFR), user stories cấp cao, acceptance criteria.</p>
324
+ <p><strong>Thiết kế UX</strong> — UX Designer Agent (Tùy chọn)</p>
325
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: CU</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: ux-spec.md</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: CUĐầu ra: ux-spec.md"><div></div></button></div></figure></div>
326
+ <p>Dùng khi UX/UI là yếu tố quan trọng. Bao gồm user flows, component specs, interaction patterns.</p>
327
+ <p><strong>Validate PRD</strong> — PM Agent</p>
328
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: VP</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: VP"><div></div></button></div></figure></div>
329
+ <p>Kiểm tra tính đầy đủ, nhất quán, và khả năng triển khai của PRD trước khi chuyển sang giai đoạn 3.</p>
330
+ <hr>
331
+ <div class="sl-heading-wrapper level-h3"><h3 id="giai-đoạn-3-định-hình-giải-pháp-bắt-buộc-với-bmad-method--enterprise">Giai đoạn 3: Định hình giải pháp (Bắt buộc với BMad Method / Enterprise)</h3><a class="sl-anchor-link" href="#giai-đoạn-3-định-hình-giải-pháp-bắt-buộc-với-bmad-method--enterprise"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Giai đoạn 3: Định hình giải pháp (Bắt buộc với BMad Method / Enterprise)”</span></a></div>
332
+ <p>Quyết định <strong>xây như thế nào</strong> và phân rã công việc.</p>
333
+ <p><strong>Tạo Architecture</strong> — Architect Agent</p>
334
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: CA</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: architecture.md + ADR (Architecture Decision Records)</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: CAĐầu ra: architecture.md + ADR (Architecture Decision Records)"><div></div></button></div></figure></div>
335
+ <p>Bao gồm: tech stack, component design, data models, API contracts, deployment strategy, ADR cho các quyết định quan trọng.</p>
336
+ <p><strong>Tạo Epics &#x26; Stories</strong> — PM Agent</p>
337
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: EP</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: epics/ thư mục với các file story</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: EPĐầu ra: epics/ thư mục với các file story"><div></div></button></div></figure></div>
338
+ <p>Phân rã PRD và Architecture thành Epics (nhóm tính năng) và Stories (đơn vị công việc cụ thể). Mỗi story có: mô tả, acceptance criteria, technical notes.</p>
339
+ <p><strong>Implementation Readiness Check</strong> — Architect Agent</p>
340
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: IR</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Kết quả: PASS / CONCERNS / FAIL</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: IRKết quả: PASS / CONCERNS / FAIL"><div></div></button></div></figure></div>
341
+ <p>Cổng kiểm tra trước khi bắt đầu triển khai. Đảm bảo mọi thứ đã đủ rõ ràng để developer có thể làm việc độc lập.</p>
342
+ <hr>
343
+ <div class="sl-heading-wrapper level-h3"><h3 id="giai-đoạn-4-triển-khai-bắt-buộc">Giai đoạn 4: Triển khai (Bắt buộc)</h3><a class="sl-anchor-link" href="#giai-đoạn-4-triển-khai-bắt-buộc"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Giai đoạn 4: Triển khai (Bắt buộc)”</span></a></div>
344
+ <p>Xây dựng từng story một theo thứ tự ưu tiên.</p>
345
+ <p><strong>Sprint Planning</strong> — Developer Agent</p>
346
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: SP</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: sprint-status.yaml</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: SPĐầu ra: sprint-status.yaml"><div></div></button></div></figure></div>
347
+ <p>Xác định stories sẽ làm trong sprint, thứ tự ưu tiên và tracking.</p>
348
+ <p><strong>Dev Story</strong> — Developer Agent</p>
349
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: DS</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: Code chạy được + unit/integration tests</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: DSĐầu ra: Code chạy được + unit/integration tests"><div></div></button></div></figure></div>
350
+ <p>Agent tự chủ triển khai story theo acceptance criteria. Đọc architecture và project-context để đảm bảo nhất quán.</p>
351
+ <p><strong>Code Review</strong> — Developer Agent</p>
352
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: CR</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Kết quả: Approved / Changes Requested</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: CRKết quả: Approved / Changes Requested"><div></div></button></div></figure></div>
353
+ <p>Review tự động: correctness, style, security, performance, test coverage.</p>
354
+ <p><strong>QA Test Generation</strong> — Developer Agent</p>
355
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: QA</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Đầu ra: API tests + E2E tests</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: QAĐầu ra: API tests + E2E tests"><div></div></button></div></figure></div>
356
+ <p>Sinh test case cho API và E2E sau khi epic hoàn tất. Chi tiết ở <a href="#7-ki%E1%BB%83m-th%E1%BB%AD-v%E1%BB%9Bi-bmad--h%C6%B0%E1%BB%9Bng-d%E1%BA%ABn-cho-qc">Mục 7</a>.</p>
357
+ <p><strong>Correct Course</strong> — PM Agent</p>
358
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: CC</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: CC"><div></div></button></div></figure></div>
359
+ <p>Xử lý thay đổi yêu cầu lớn giữa sprint mà không phá vỡ quy trình.</p>
360
+ <p><strong>Retrospective</strong> — Developer Agent</p>
361
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Trigger: ER (Epic Retrospective)</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Trigger: ER (Epic Retrospective)"><div></div></button></div></figure></div>
362
+ <p>Review sau khi hoàn tất một epic. Ghi lại bài học, pattern tốt, vấn đề gặp phải.</p>
363
+ <hr>
364
+ <div class="sl-heading-wrapper level-h2"><h2 id="5-chọn-nhánh-phù-hợp">5. Chọn nhánh phù hợp</h2><a class="sl-anchor-link" href="#5-chọn-nhánh-phù-hợp"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “5. Chọn nhánh phù hợp”</span></a></div>
365
+ <div class="sl-heading-wrapper level-h3"><h3 id="quick-flow--nhánh-nhanh">Quick Flow — Nhánh nhanh</h3><a class="sl-anchor-link" href="#quick-flow--nhánh-nhanh"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Quick Flow — Nhánh nhanh”</span></a></div>
366
+ <p><strong>Khi nào dùng:</strong></p>
367
+ <ul>
368
+ <li>Bug fix</li>
369
+ <li>Tính năng nhỏ, phạm vi rõ ràng</li>
370
+ <li>Cập nhật đơn lẻ (1–15 stories)</li>
371
+ <li>Bạn đã hiểu đầy đủ yêu cầu</li>
372
+ </ul>
373
+ <p><strong>Bỏ qua:</strong> Giai đoạn 1, 2, 3 hoàn toàn</p>
374
+ <p><strong>Dùng:</strong> Quick Dev (<code dir="auto">bmad-quick-dev</code>)</p>
375
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Mô tả yêu cầu → Làm rõ ý định → Sinh spec → Triển khai → Review → Done</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Mô tả yêu cầu → Làm rõ ý định → Sinh spec → Triển khai → Review → Done"><div></div></button></div></figure></div>
376
+ <p>Quick Dev gộp tất cả vào một workflow: làm rõ yêu cầu, lập kế hoạch mini, triển khai, code review, và trình bày kết quả.</p>
377
+ <hr>
378
+ <div class="sl-heading-wrapper level-h3"><h3 id="bmad-method--nhánh-đầy-đủ">BMad Method — Nhánh đầy đủ</h3><a class="sl-anchor-link" href="#bmad-method--nhánh-đầy-đủ"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “BMad Method — Nhánh đầy đủ”</span></a></div>
379
+ <p><strong>Khi nào dùng:</strong></p>
380
+ <ul>
381
+ <li>Sản phẩm mới hoặc nền tảng</li>
382
+ <li>Tính năng phức tạp với nhiều dependencies</li>
383
+ <li>10–50+ stories cần phối hợp nhiều developer</li>
384
+ </ul>
385
+ <p><strong>Đi qua:</strong> Giai đoạn 1 (tùy chọn) → 2 → 3 → 4</p>
386
+ <hr>
387
+ <div class="sl-heading-wrapper level-h3"><h3 id="enterprise--nhánh-mở-rộng">Enterprise — Nhánh mở rộng</h3><a class="sl-anchor-link" href="#enterprise--nhánh-mở-rộng"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Enterprise — Nhánh mở rộng”</span></a></div>
388
+ <p><strong>Khi nào dùng:</strong></p>
389
+ <ul>
390
+ <li>Hệ thống đa tenant</li>
391
+ <li>Yêu cầu tuân thủ (compliance), security audit</li>
392
+ <li>30+ stories, nhiều team</li>
393
+ <li>Cần truy vết yêu cầu đầy đủ</li>
394
+ </ul>
395
+ <p><strong>Thêm vào:</strong> Security review, DevOps pipeline, NFR assessment, Test Architect Module (TEA)</p>
396
+ <hr>
397
+ <div class="sl-heading-wrapper level-h2"><h2 id="6-hướng-dẫn-từng-bước-áp-dụng-bmad">6. Hướng dẫn từng bước áp dụng BMAD</h2><a class="sl-anchor-link" href="#6-hướng-dẫn-từng-bước-áp-dụng-bmad"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “6. Hướng dẫn từng bước áp dụng BMAD”</span></a></div>
398
+ <div class="sl-heading-wrapper level-h3"><h3 id="61-dự-án-mới">6.1. Dự án mới</h3><a class="sl-anchor-link" href="#61-dự-án-mới"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “6.1. Dự án mới”</span></a></div>
399
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-1-cài-đặt-bmad">Bước 1: Cài đặt BMAD</h4><a class="sl-anchor-link" href="#bước-1-cài-đặt-bmad"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 1: Cài đặt BMAD”</span></a></div>
400
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Yêu cầu: Node.js 20+, Git</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">npx</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">bmad-method</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">install</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="npx bmad-method install"><div></div></button></div></figure></div>
401
+ <p>Trình cài đặt sẽ hỏi:</p>
402
+ <ul>
403
+ <li>IDE đang dùng (Claude Code, Cursor, hoặc tương tự)</li>
404
+ <li>Modules muốn cài (core bắt buộc, thêm TEA nếu cần test nâng cao)</li>
405
+ <li>Nhánh lập kế hoạch (Quick Flow / BMad Method / Enterprise)</li>
406
+ </ul>
407
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-2-khởi-động-với-bmad-help">Bước 2: Khởi động với bmad-help</h4><a class="sl-anchor-link" href="#bước-2-khởi-động-với-bmad-help"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 2: Khởi động với bmad-help”</span></a></div>
408
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-help</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-help"><div></div></button></div></figure></div>
409
+ <p>Đây là điểm bắt đầu thông minh. Agent sẽ hỏi về dự án của bạn và dẫn bạn đến đúng workflow.</p>
410
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-help Tôi có ý tưởng về ứng dụng SaaS quản lý task, bắt đầu từ đâu?</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-help Tôi cần thêm tính năng export PDF, dùng quick flow hay đầy đủ?</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-help Tôi có ý tưởng về ứng dụng SaaS quản lý task, bắt đầu từ đâu?bmad-help Tôi cần thêm tính năng export PDF, dùng quick flow hay đầy đủ?"><div></div></button></div></figure></div>
411
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-3-tạo-project-context-khuyến-nghị-mạnh">Bước 3: Tạo Project Context (khuyến nghị mạnh)</h4><a class="sl-anchor-link" href="#bước-3-tạo-project-context-khuyến-nghị-mạnh"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 3: Tạo Project Context (khuyến nghị mạnh)”</span></a></div>
412
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Tạo tự động sau khi có architecture</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-generate-project-context</span></div></div><div class="ec-line"><div class="code">
413
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Hoặc tạo thủ công</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">touch</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">_bmad-output/project-context.md</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-generate-project-contexttouch _bmad-output/project-context.md"><div></div></button></div></figure></div>
414
+ <p>File <code dir="auto">project-context.md</code> là “bản hiến pháp” kỹ thuật của dự án — được tất cả agent tự động nạp:</p>
415
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="markdown"><code><div class="ec-line"><div class="code"><span style="--0:#82B1FF;--1:#3B61B0"># Project Context</span></div></div><div class="ec-line"><div class="code">
416
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#82B1FF;--1:#3B61B0">## Technology Stack</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> Node.js 20.x, TypeScript 5.3</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> React 18.2, Zustand (không dùng Redux)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> PostgreSQL 15, Prisma ORM</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> Testing: Vitest, Playwright, MSW</span></div></div><div class="ec-line"><div class="code">
417
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#82B1FF;--1:#3B61B0">## Critical Implementation Rules</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> Bật strict mode — không dùng </span><span style="--0:#C5E478;--1:#3B61B0">`any`</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> Dùng </span><span style="--0:#C5E478;--1:#3B61B0">`interface`</span><span style="--0:#D6DEEB;--1:#403F53"> cho public API, </span><span style="--0:#C5E478;--1:#3B61B0">`type`</span><span style="--0:#D6DEEB;--1:#403F53"> cho union/intersection</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> API calls phải qua </span><span style="--0:#C5E478;--1:#3B61B0">`apiClient`</span><span style="--0:#D6DEEB;--1:#403F53"> singleton</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D9F5DD;--1:#111111">-</span><span style="--0:#D6DEEB;--1:#403F53"> Components đặt trong </span><span style="--0:#C5E478;--1:#3B61B0">`/src/components/`</span><span style="--0:#D6DEEB;--1:#403F53"> với co-located tests</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="# Project Context## Technology Stack- Node.js 20.x, TypeScript 5.3- React 18.2, Zustand (không dùng Redux)- PostgreSQL 15, Prisma ORM- Testing: Vitest, Playwright, MSW## Critical Implementation Rules- Bật strict mode — không dùng &#x60;any&#x60;- Dùng &#x60;interface&#x60; cho public API, &#x60;type&#x60; cho union/intersection- API calls phải qua &#x60;apiClient&#x60; singleton- Components đặt trong &#x60;/src/components/&#x60; với co-located tests"><div></div></button></div></figure></div>
418
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-4-chạy-analysis-nếu-cần">Bước 4: Chạy Analysis (nếu cần)</h4><a class="sl-anchor-link" href="#bước-4-chạy-analysis-nếu-cần"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 4: Chạy Analysis (nếu cần)”</span></a></div>
419
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mở agent Analyst</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-analyst</span></div></div><div class="ec-line"><div class="code">
420
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Trong hội thoại, gõ trigger:</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">BP</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Brainstorm ý tưởng</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">CB</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Tạo Product Brief</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">MR</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Research thị trường</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-analystBP # Brainstorm ý tưởngCB # Tạo Product BriefMR # Research thị trường"><div></div></button></div></figure></div>
421
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-5-tạo-prd">Bước 5: Tạo PRD</h4><a class="sl-anchor-link" href="#bước-5-tạo-prd"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 5: Tạo PRD”</span></a></div>
422
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mở agent PM</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-pm</span></div></div><div class="ec-line"><div class="code">
423
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Trigger tạo PRD</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">CP</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Create PRD (có hướng dẫn từng bước)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">VP</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Validate PRD sau khi hoàn thiện</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-pmCP # Create PRD (có hướng dẫn từng bước)VP # Validate PRD sau khi hoàn thiện"><div></div></button></div></figure></div>
424
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-6-tạo-architecture-bmad-method--enterprise">Bước 6: Tạo Architecture (BMad Method / Enterprise)</h4><a class="sl-anchor-link" href="#bước-6-tạo-architecture-bmad-method--enterprise"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 6: Tạo Architecture (BMad Method / Enterprise)”</span></a></div>
425
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mở agent Architect</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-architect</span></div></div><div class="ec-line"><div class="code">
426
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Trigger</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">CA</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Create Architecture</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">IR</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Implementation Readiness Check</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-architectCA # Create ArchitectureIR # Implementation Readiness Check"><div></div></button></div></figure></div>
427
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-7-tạo-epics--stories">Bước 7: Tạo Epics &#x26; Stories</h4><a class="sl-anchor-link" href="#bước-7-tạo-epics--stories"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 7: Tạo Epics &#x26; Stories”</span></a></div>
428
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mở agent PM</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-pm</span></div></div><div class="ec-line"><div class="code">
429
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Trigger</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">EP</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Create Epics and Stories</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-pmEP # Create Epics and Stories"><div></div></button></div></figure></div>
430
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-8-triển-khai-theo-stories">Bước 8: Triển khai theo Stories</h4><a class="sl-anchor-link" href="#bước-8-triển-khai-theo-stories"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 8: Triển khai theo Stories”</span></a></div>
431
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mở agent Developer</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-agent-dev</span></div></div><div class="ec-line"><div class="code">
432
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mỗi sprint</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">SP</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Sprint Planning</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">DS</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Dev Story (làm từng story)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">CR</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Code Review</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">QA</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Tạo tests (sau khi epic hoàn tất)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">ER</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># Epic Retrospective</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-agent-devSP # Sprint PlanningDS # Dev Story (làm từng story)CR # Code ReviewQA # Tạo tests (sau khi epic hoàn tất)ER # Epic Retrospective"><div></div></button></div></figure></div>
433
+ <hr>
434
+ <div class="sl-heading-wrapper level-h3"><h3 id="62-dự-án-đã-tồn-tại">6.2. Dự án đã tồn tại</h3><a class="sl-anchor-link" href="#62-dự-án-đã-tồn-tại"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “6.2. Dự án đã tồn tại”</span></a></div>
435
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-1-tạo-project-context-từ-codebase-hiện-tại">Bước 1: Tạo Project Context từ codebase hiện tại</h4><a class="sl-anchor-link" href="#bước-1-tạo-project-context-từ-codebase-hiện-tại"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 1: Tạo Project Context từ codebase hiện tại”</span></a></div>
436
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Chạy trong agent Developer hoặc Architect</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-generate-project-context</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-generate-project-context"><div></div></button></div></figure></div>
437
+ <p>Agent sẽ khám phá codebase và tạo <code dir="auto">project-context.md</code> từ:</p>
438
+ <ul>
439
+ <li><code dir="auto">package.json</code>, <code dir="auto">pyproject.toml</code>, hoặc build files</li>
440
+ <li>Cấu trúc thư mục</li>
441
+ <li>Conventions hiện có trong code</li>
442
+ </ul>
443
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-2-tạo-tài-liệu-index">Bước 2: Tạo tài liệu index</h4><a class="sl-anchor-link" href="#bước-2-tạo-tài-liệu-index"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 2: Tạo tài liệu index”</span></a></div>
444
+ <p>Tạo hoặc cập nhật <code dir="auto">docs/index.md</code> với:</p>
445
+ <ul>
446
+ <li>Mục tiêu kinh doanh của dự án</li>
447
+ <li>Architecture overview</li>
448
+ <li>Các quy tắc quan trọng cần giữ</li>
449
+ </ul>
450
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-3-chọn-cách-tiếp-cận-phù-hợp">Bước 3: Chọn cách tiếp cận phù hợp</h4><a class="sl-anchor-link" href="#bước-3-chọn-cách-tiếp-cận-phù-hợp"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 3: Chọn cách tiếp cận phù hợp”</span></a></div>
451
+ <ul>
452
+ <li><strong>Thay đổi nhỏ</strong> (bug fix, tính năng nhỏ): Dùng <code dir="auto">bmad-quick-dev</code> trực tiếp</li>
453
+ <li><strong>Thay đổi lớn</strong> (module mới, refactor lớn): Dùng BMad Method đầy đủ từ Giai đoạn 2</li>
454
+ </ul>
455
+ <div class="sl-heading-wrapper level-h4"><h4 id="bước-4-quick-dev-cho-việc-nhỏ">Bước 4: Quick Dev cho việc nhỏ</h4><a class="sl-anchor-link" href="#bước-4-quick-dev-cho-việc-nhỏ"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Bước 4: Quick Dev cho việc nhỏ”</span></a></div>
456
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mở skill Quick Dev</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-quick-dev</span></div></div><div class="ec-line"><div class="code">
457
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Mô tả yêu cầu, agent sẽ:</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># 1. Làm rõ ý định (có người trong vòng lặp)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># 2. Tạo mini-spec nếu cần</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># 3. Triển khai tự động</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># 4. Code review</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># 5. Trình bày kết quả để bạn approve</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-quick-dev"><div></div></button></div></figure></div>
458
+ <hr>
459
+ <div class="sl-heading-wrapper level-h3"><h3 id="63-luồng-làm-việc-mẫu--tính-năng-mới-bmad-method">6.3. Luồng làm việc mẫu — Tính năng mới (BMad Method)</h3><a class="sl-anchor-link" href="#63-luồng-làm-việc-mẫu--tính-năng-mới-bmad-method"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “6.3. Luồng làm việc mẫu — Tính năng mới (BMad Method)”</span></a></div>
460
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Ngày 1-2: Analysis</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-analyst → CB → product-brief.md</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">└── (tùy chọn) bmad-analyst → MR → market-research.md</span></div></div><div class="ec-line"><div class="code">
461
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Ngày 2-3: Planning</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-pm → CP → PRD.md</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-pm → VP (validate)</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">└── (nếu có UI) bmad-ux-designer → CU → ux-spec.md</span></div></div><div class="ec-line"><div class="code">
462
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Ngày 3-4: Solutioning</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-architect → CA → architecture.md</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-pm → EP → epics/ (stories)</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">└── bmad-architect → IR → PASS ✓</span></div></div><div class="ec-line"><div class="code">
463
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Ngày 5+: Implementation (lặp lại cho mỗi story)</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-agent-dev → SP → sprint-status.yaml</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-agent-dev → DS → code + tests</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">├── bmad-agent-dev → CR → approved</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#d6deeb;--1:#403f53"> </span></span><span style="--0:#d6deeb;--1:#403f53">└── (sau epic) bmad-agent-dev → QA → e2e tests</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Ngày 1-2: Analysis ├── bmad-analyst → CB → product-brief.md └── (tùy chọn) bmad-analyst → MR → market-research.mdNgày 2-3: Planning ├── bmad-pm → CP → PRD.md ├── bmad-pm → VP (validate) └── (nếu có UI) bmad-ux-designer → CU → ux-spec.mdNgày 3-4: Solutioning ├── bmad-architect → CA → architecture.md ├── bmad-pm → EP → epics/ (stories) └── bmad-architect → IR → PASS ✓Ngày 5+: Implementation (lặp lại cho mỗi story) ├── bmad-agent-dev → SP → sprint-status.yaml ├── bmad-agent-dev → DS → code + tests ├── bmad-agent-dev → CR → approved └── (sau epic) bmad-agent-dev → QA → e2e tests"><div></div></button></div></figure></div>
464
+ <hr>
465
+ <div class="sl-heading-wrapper level-h2"><h2 id="7-kiểm-thử-với-bmad--hướng-dẫn-cho-qc">7. Kiểm thử với BMAD — Hướng dẫn cho QC</h2><a class="sl-anchor-link" href="#7-kiểm-thử-với-bmad--hướng-dẫn-cho-qc"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “7. Kiểm thử với BMAD — Hướng dẫn cho QC”</span></a></div>
466
+ <p>BMAD cung cấp hai hướng tiếp cận kiểm thử:</p>
467
+ <div class="sl-heading-wrapper level-h3"><h3 id="71-qa-tích-hợp-sẵn--nhẹ-nhàng-developer-agent">7.1. QA tích hợp sẵn — Nhẹ nhàng (Developer Agent)</h3><a class="sl-anchor-link" href="#71-qa-tích-hợp-sẵn--nhẹ-nhàng-developer-agent"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “7.1. QA tích hợp sẵn — Nhẹ nhàng (Developer Agent)”</span></a></div>
468
+ <p><strong>Phù hợp với:</strong> Dự án nhỏ–trung bình, cần bao phủ test nhanh</p>
469
+ <p><strong>Kích hoạt:</strong></p>
470
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Trong agent Developer</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-agent-dev</span></div></div><div class="ec-line"><div class="code">
471
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Sau khi hoàn tất một epic (tất cả stories đã dev + review xong)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">QA</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#919F9F;--1:#5F636F"># QA Test Generation</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-agent-devQA # QA Test Generation"><div></div></button></div></figure></div>
472
+ <p><strong>5 bước workflow QA:</strong></p>
473
+ <ol>
474
+ <li><strong>Phát hiện framework</strong>: Agent tự nhận diện Jest, Vitest, Playwright, Cypress từ codebase</li>
475
+ <li><strong>Xác định tính năng cần test</strong>: Dựa vào stories và acceptance criteria của epic vừa hoàn tất</li>
476
+ <li><strong>Tạo API tests</strong>: Status codes, cấu trúc response, happy path, edge cases</li>
477
+ <li><strong>Tạo E2E tests</strong>: User workflows, semantic locators (role/label/text — không dùng CSS selector)</li>
478
+ <li><strong>Chạy và xác minh</strong>: Tự chạy tests, phát hiện và sửa lỗi ngay</li>
479
+ </ol>
480
+ <p><strong>Các nguyên tắc khi sinh test:</strong></p>
481
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="typescript"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5D6376">// ✅ Dùng semantic locator</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C792EA;--1:#8844AE">await</span><span style="--0:#D6DEEB;--1:#403F53"> page</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">getByRole</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">button</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, { name: </span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">Đăng nhập</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53"> })</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">click</span><span style="--0:#D6DEEB;--1:#403F53">()</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C792EA;--1:#8844AE">await</span><span style="--0:#D6DEEB;--1:#403F53"> page</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">getByLabel</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">Email</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">)</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">fill</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">user@example.com</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">)</span></div></div><div class="ec-line"><div class="code">
482
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5D6376">// ❌ Không dùng CSS selector cứng</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C792EA;--1:#8844AE">await</span><span style="--0:#D6DEEB;--1:#403F53"> page</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">locator</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">.btn-primary#login</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">)</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">click</span><span style="--0:#D6DEEB;--1:#403F53">()</span></div></div><div class="ec-line"><div class="code">
483
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5D6376">// ✅ Test độc lập, không phụ thuộc thứ tự</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">test</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#ECC48D;--1:#984E4D">create task</span><span style="--0:#D9F5DD;--1:#111111">'</span><span style="--0:#D6DEEB;--1:#403F53">, </span><span style="--0:#C792EA;--1:#8844AE">async</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#D9F5DD;--1:#111111">()</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#C792EA;--1:#8844AE">=></span><span style="--0:#D6DEEB;--1:#403F53"> {</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#919F9F;--1:#5D6376">// setup riêng cho test này</span></div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">})</span></div></div><div class="ec-line"><div class="code">
484
+ </div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5D6376">// ❌ Không hardcode wait/sleep</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C792EA;--1:#8844AE">await</span><span style="--0:#D6DEEB;--1:#403F53"> page</span><span style="--0:#C792EA;--1:#8844AE">.</span><span style="--0:#82AAFF;--1:#3B61B0">waitForTimeout</span><span style="--0:#D6DEEB;--1:#403F53">(</span><span style="--0:#F78C6C;--1:#AA0982">3000</span><span style="--0:#D6DEEB;--1:#403F53">) </span><span style="--0:#919F9F;--1:#5D6376">// Không làm thế này</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="// ✅ Dùng semantic locatorawait page.getByRole(&#x27;button&#x27;, { name: &#x27;Đăng nhập&#x27; }).click()await page.getByLabel(&#x27;Email&#x27;).fill(&#x27;user@example.com&#x27;)// ❌ Không dùng CSS selector cứngawait page.locator(&#x27;.btn-primary#login&#x27;).click()// ✅ Test độc lập, không phụ thuộc thứ tựtest(&#x27;create task&#x27;, async () => { // setup riêng cho test này})// ❌ Không hardcode wait/sleepawait page.waitForTimeout(3000) // Không làm thế này"><div></div></button></div></figure></div>
485
+ <p><strong>Khi nào dùng:</strong></p>
486
+ <ul>
487
+ <li>Cần bao phủ test nhanh cho tính năng mới</li>
488
+ <li>Dự án nhỏ–trung bình không cần chiến lược kiểm thử nâng cao</li>
489
+ <li>Muốn tự động hóa kiểm thử mà không cần thiết lập phức tạp</li>
490
+ </ul>
491
+ <hr>
492
+ <div class="sl-heading-wrapper level-h3"><h3 id="72-module-test-architect-tea--nâng-cao">7.2. Module Test Architect (TEA) — Nâng cao</h3><a class="sl-anchor-link" href="#72-module-test-architect-tea--nâng-cao"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “7.2. Module Test Architect (TEA) — Nâng cao”</span></a></div>
493
+ <p><strong>Phù hợp với:</strong> Dự án lớn, miền nghiệp vụ phức tạp, cần truy vết yêu cầu</p>
494
+ <p><strong>Cài đặt:</strong></p>
495
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">npx</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">bmad-method</span><span style="--0:#D6DEEB;--1:#403F53"> </span><span style="--0:#ECC48D;--1:#3B61B0">install</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Chọn thêm module: TEA (Test Architect)</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="npx bmad-method install"><div></div></button></div></figure></div>
496
+ <p><strong>Agent TEA:</strong> Murat (Master Test Architect)</p>
497
+ <p><strong>9 workflow của TEA:</strong></p>
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+ <table><thead><tr><th>#</th><th>Workflow</th><th>Mục đích</th></tr></thead><tbody><tr><td>1</td><td><strong>Test Design</strong></td><td>Tạo chiến lược kiểm thử gắn với yêu cầu (PRD/AC)</td></tr><tr><td>2</td><td><strong>ATDD</strong></td><td>Phát triển hướng Acceptance Test — viết test trước khi code</td></tr><tr><td>3</td><td><strong>Automate</strong></td><td>Tạo automated test với pattern nâng cao</td></tr><tr><td>4</td><td><strong>Test Review</strong></td><td>Kiểm tra chất lượng và độ bao phủ của bộ test</td></tr><tr><td>5</td><td><strong>Traceability</strong></td><td>Liên kết test ngược về yêu cầu trong PRD</td></tr><tr><td>6</td><td><strong>NFR Assessment</strong></td><td>Đánh giá yêu cầu phi chức năng (performance, security, reliability)</td></tr><tr><td>7</td><td><strong>CI Setup</strong></td><td>Cấu hình thực thi test trong CI/CD pipeline</td></tr><tr><td>8</td><td><strong>Framework Scaffolding</strong></td><td>Dựng hạ tầng test cho dự án mới</td></tr><tr><td>9</td><td><strong>Release Gate</strong></td><td>Ra quyết định go/no-go dựa trên chất lượng</td></tr></tbody></table>
554
+ <p><strong>Hệ thống ưu tiên P0–P3:</strong></p>
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+ <table><thead><tr><th>Mức</th><th>Ý nghĩa</th><th>Ví dụ</th></tr></thead><tbody><tr><td><strong>P0</strong></td><td>Critical — phải pass 100%</td><td>Thanh toán, xác thực, bảo mật</td></tr><tr><td><strong>P1</strong></td><td>High — phải pass cho release</td><td>Core business flow</td></tr><tr><td><strong>P2</strong></td><td>Medium — nên pass</td><td>Tính năng phụ, edge cases</td></tr><tr><td><strong>P3</strong></td><td>Low — test khi có thể</td><td>UI detail, minor UX</td></tr></tbody></table>
586
+ <p><strong>Luồng ATDD với TEA:</strong></p>
587
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">QC viết Acceptance Criteria (AC) →</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">TEA tạo test từ AC (trước khi code) →</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Developer implement để test pass →</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">TEA verify traceability (AC ↔ test ↔ requirement) →</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Release Gate go/no-go</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="QC viết Acceptance Criteria (AC) →TEA tạo test từ AC (trước khi code) →Developer implement để test pass →TEA verify traceability (AC ↔ test ↔ requirement) →Release Gate go/no-go"><div></div></button></div></figure></div>
588
+ <hr>
589
+ <div class="sl-heading-wrapper level-h3"><h3 id="73-so-sánh-hai-hướng-tiếp-cận">7.3. So sánh hai hướng tiếp cận</h3><a class="sl-anchor-link" href="#73-so-sánh-hai-hướng-tiếp-cận"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “7.3. So sánh hai hướng tiếp cận”</span></a></div>
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+ <table><thead><tr><th>Yếu tố</th><th>QA tích hợp sẵn</th><th>Module TEA</th></tr></thead><tbody><tr><td>Thời điểm test</td><td>Sau khi epic hoàn tất</td><td>Có thể trước khi code (ATDD)</td></tr><tr><td>Thiết lập</td><td>Không cần cài thêm</td><td>Cài module riêng</td></tr><tr><td>Loại test</td><td>API + E2E</td><td>API, E2E, ATDD, NFR, Performance</td></tr><tr><td>Truy vết yêu cầu</td><td>Không</td><td>Có (Traceability workflow)</td></tr><tr><td>Release gate</td><td>Không</td><td>Có (go/no-go)</td></tr><tr><td>Phù hợp nhất</td><td>Dự án nhỏ–trung bình</td><td>Dự án lớn, có compliance</td></tr></tbody></table>
631
+ <hr>
632
+ <div class="sl-heading-wrapper level-h3"><h3 id="74-vị-trí-kiểm-thử-trong-vòng-đời-dự-án">7.4. Vị trí kiểm thử trong vòng đời dự án</h3><a class="sl-anchor-link" href="#74-vị-trí-kiểm-thử-trong-vòng-đời-dự-án"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “7.4. Vị trí kiểm thử trong vòng đời dự án”</span></a></div>
633
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Story 1: Dev → Code Review → ✓</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Story 2: Dev → Code Review → ✓</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Story 3: Dev → Code Review → ✓</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">...</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">Epic hoàn tất → QA Test Generation → Tests pass → Epic Retrospective</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="Story 1: Dev → Code Review → ✓Story 2: Dev → Code Review → ✓Story 3: Dev → Code Review → ✓...Epic hoàn tất → QA Test Generation → Tests pass → Epic Retrospective"><div></div></button></div></figure></div>
634
+ <blockquote>
635
+ <p><strong>Lưu ý:</strong> QA Test Generation chạy <strong>sau khi toàn bộ epic hoàn tất</strong>, không phải sau từng story. Mục đích là kiểm thử tích hợp các stories với nhau.</p>
636
+ </blockquote>
637
+ <hr>
638
+ <div class="sl-heading-wrapper level-h3"><h3 id="75-edge-case-hunter--công-cụ-tìm-trường-hợp-biên">7.5. Edge Case Hunter — Công cụ tìm trường hợp biên</h3><a class="sl-anchor-link" href="#75-edge-case-hunter--công-cụ-tìm-trường-hợp-biên"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “7.5. Edge Case Hunter — Công cụ tìm trường hợp biên”</span></a></div>
639
+ <p>Ngoài QA workflow, Developer Agent còn hỗ trợ:</p>
640
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Trong hội thoại với Developer Agent</span></div></div><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-review-edge-case-hunter</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-review-edge-case-hunter"><div></div></button></div></figure></div>
641
+ <p>Phân tích toàn bộ nhánh điều kiện trong code để tìm:</p>
642
+ <ul>
643
+ <li>Trường hợp biên chưa được xử lý</li>
644
+ <li>Null/undefined checks bị thiếu</li>
645
+ <li>Điều kiện race condition</li>
646
+ <li>Input validation gaps</li>
647
+ </ul>
648
+ <hr>
649
+ <div class="sl-heading-wrapper level-h2"><h2 id="8-các-công-cụ-hỗ-trợ">8. Các công cụ hỗ trợ</h2><a class="sl-anchor-link" href="#8-các-công-cụ-hỗ-trợ"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “8. Các công cụ hỗ trợ”</span></a></div>
650
+ <div class="sl-heading-wrapper level-h3"><h3 id="81-party-mode--thảo-luận-đa-agent">8.1. Party Mode — Thảo luận đa agent</h3><a class="sl-anchor-link" href="#81-party-mode--thảo-luận-đa-agent"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “8.1. Party Mode — Thảo luận đa agent”</span></a></div>
651
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-party-mode</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-party-mode"><div></div></button></div></figure></div>
652
+ <p>Triệu tập nhiều agent vào cùng một hội thoại để thảo luận các quyết định quan trọng:</p>
653
+ <ul>
654
+ <li><strong>Kiến trúc</strong>: PM + Architect + Developer cùng đánh giá trade-off</li>
655
+ <li><strong>Tính năng phức tạp</strong>: UX Designer + Architect + PM</li>
656
+ <li><strong>Post-mortem</strong>: Tất cả agent cùng phân tích sự cố</li>
657
+ <li><strong>Sprint retrospective</strong>: PM + Developer + QC</li>
658
+ </ul>
659
+ <div class="sl-heading-wrapper level-h3"><h3 id="82-advanced-elicitation--tinh-luyện-đầu-ra">8.2. Advanced Elicitation — Tinh luyện đầu ra</h3><a class="sl-anchor-link" href="#82-advanced-elicitation--tinh-luyện-đầu-ra"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “8.2. Advanced Elicitation — Tinh luyện đầu ra”</span></a></div>
660
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-advanced-elicitation</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-advanced-elicitation"><div></div></button></div></figure></div>
661
+ <p>Buộc AI xem xét lại đầu ra bằng các phương pháp:</p>
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+ <table><thead><tr><th>Phương pháp</th><th>Mục đích</th></tr></thead><tbody><tr><td><strong>Pre-mortem</strong></td><td>Giả sử thất bại → lần ngược nguyên nhân</td></tr><tr><td><strong>First Principles</strong></td><td>Loại bỏ giả định, bắt đầu từ sự thật cơ bản</td></tr><tr><td><strong>Red Team / Blue Team</strong></td><td>Tự tấn công, tự bảo vệ</td></tr><tr><td><strong>Socratic Questioning</strong></td><td>Chất vấn mọi khẳng định</td></tr><tr><td><strong>Constraint Removal</strong></td><td>Bỏ ràng buộc → thấy giải pháp khác</td></tr><tr><td><strong>Stakeholder Mapping</strong></td><td>Đánh giá từ góc nhìn từng bên liên quan</td></tr></tbody></table>
696
+ <p>Dùng sau khi có một tài liệu quan trọng (PRD, Architecture) để tìm điểm yếu trước khi tiếp tục.</p>
697
+ <div class="sl-heading-wrapper level-h3"><h3 id="83-adversarial-review--review-hoài-nghi">8.3. Adversarial Review — Review hoài nghi</h3><a class="sl-anchor-link" href="#83-adversarial-review--review-hoài-nghi"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “8.3. Adversarial Review — Review hoài nghi”</span></a></div>
698
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-review-adversarial-general</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-review-adversarial-general"><div></div></button></div></figure></div>
699
+ <p>Review kiểu “devil’s advocate” — giả định vấn đề luôn tồn tại:</p>
700
+ <ul>
701
+ <li>Phải tìm được tối thiểu 10 vấn đề</li>
702
+ <li>Tìm những gì <strong>còn thiếu</strong>, không chỉ những gì sai</li>
703
+ <li>Trực giao với Edge Case Hunter</li>
704
+ </ul>
705
+ <div class="sl-heading-wrapper level-h3"><h3 id="84-shard-large-documents--tách-file-lớn">8.4. Shard Large Documents — Tách file lớn</h3><a class="sl-anchor-link" href="#84-shard-large-documents--tách-file-lớn"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “8.4. Shard Large Documents — Tách file lớn”</span></a></div>
706
+ <div class="expressive-code"><figure class="frame is-terminal not-content"><figcaption class="header"><span class="title"></span><span class="sr-only">Terminal window</span></figcaption><pre data-language="bash"><code><div class="ec-line"><div class="code"><span style="--0:#82AAFF;--1:#3B61B0">bmad-shard-doc</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-shard-doc"><div></div></button></div></figure></div>
707
+ <p>Tách file markdown lớn thành các file phần nhỏ hơn, với index tự động.</p>
708
+ <hr>
709
+ <div class="sl-heading-wrapper level-h2"><h2 id="9-cấu-trúc-thư-mục-dự-án">9. Cấu trúc thư mục dự án</h2><a class="sl-anchor-link" href="#9-cấu-trúc-thư-mục-dự-án"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “9. Cấu trúc thư mục dự án”</span></a></div>
710
+ <p>Sau khi cài BMAD và chạy qua các giai đoạn, dự án sẽ có cấu trúc:</p>
711
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">your-project/</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">├── _bmad/ # Cấu hình BMAD (không chỉnh sửa thủ công)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ ├── core/ # Module core</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ └── bmm/ # Modules đã cài (TEA, v.v.)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">├── _bmad-output/ # Tất cả artifacts sinh ra</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ ├── project-context.md # Bản hiến pháp kỹ thuật của dự án</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ ├── planning-artifacts/</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ ├── product-brief.md # Giai đoạn 1 output</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ ├── PRD.md # Giai đoạn 2 output</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ ├── ux-spec.md # Giai đoạn 2 output (nếu có)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ ├── architecture.md # Giai đoạn 3 output</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ └── epics/ # Giai đoạn 3 output</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ ├── epic-1-auth/</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ │ ├── story-1-login.md</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ │ ├── story-2-register.md</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ │ └── story-3-reset-password.md</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ │ └── epic-2-dashboard/</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ └── implementation-artifacts/</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ └── sprint-status.yaml # Tracking sprint</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">├── .claude/skills/ # Skills cho Claude Code</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ ├── bmad-pm.md</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ ├── bmad-architect.md</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ └── ...</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">├── docs/ # Tài liệu dự án</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│ └── index.md # Overview, goals, architecture notes</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">│</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">└── src/ # Source code dự án</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="your-project/├── _bmad/ # Cấu hình BMAD (không chỉnh sửa thủ công)│ ├── core/ # Module core│ └── bmm/ # Modules đã cài (TEA, v.v.)│├── _bmad-output/ # Tất cả artifacts sinh ra│ ├── project-context.md # Bản hiến pháp kỹ thuật của dự án│ ├── planning-artifacts/│ │ ├── product-brief.md # Giai đoạn 1 output│ │ ├── PRD.md # Giai đoạn 2 output│ │ ├── ux-spec.md # Giai đoạn 2 output (nếu có)│ │ ├── architecture.md # Giai đoạn 3 output│ │ └── epics/ # Giai đoạn 3 output│ │ ├── epic-1-auth/│ │ │ ├── story-1-login.md│ │ │ ├── story-2-register.md│ │ │ └── story-3-reset-password.md│ │ └── epic-2-dashboard/│ └── implementation-artifacts/│ └── sprint-status.yaml # Tracking sprint│├── .claude/skills/ # Skills cho Claude Code│ ├── bmad-pm.md│ ├── bmad-architect.md│ └── ...│├── docs/ # Tài liệu dự án│ └── index.md # Overview, goals, architecture notes│└── src/ # Source code dự án"><div></div></button></div></figure></div>
712
+ <hr>
713
+ <div class="sl-heading-wrapper level-h2"><h2 id="10-mẹo-và-best-practices">10. Mẹo và Best Practices</h2><a class="sl-anchor-link" href="#10-mẹo-và-best-practices"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “10. Mẹo và Best Practices”</span></a></div>
714
+ <div class="sl-heading-wrapper level-h3"><h3 id="chat-mới-cho-mỗi-workflow">Chat mới cho mỗi workflow</h3><a class="sl-anchor-link" href="#chat-mới-cho-mỗi-workflow"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Chat mới cho mỗi workflow”</span></a></div>
715
+ <blockquote>
716
+ <p>Luôn bắt đầu một hội thoại mới khi chuyển sang workflow khác.</p>
717
+ </blockquote>
718
+ <p>Mỗi workflow của BMAD thiết kế để chạy trong context rõ ràng. Việc tiếp tục hội thoại cũ có thể gây ra nhiễu context, đặc biệt với các workflow dài.</p>
719
+ <div class="sl-heading-wrapper level-h3"><h3 id="đọc-kỹ-project-contextmd-trước-khi-bắt-đầu-sprint">Đọc kỹ <code dir="auto">project-context.md</code> trước khi bắt đầu sprint</h3><a class="sl-anchor-link" href="#đọc-kỹ-project-contextmd-trước-khi-bắt-đầu-sprint"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Đọc kỹ project-context.md trước khi bắt đầu sprint”</span></a></div>
720
+ <p>Tất cả agent developer tự động nạp <code dir="auto">project-context.md</code>. Đảm bảo file này luôn cập nhật với:</p>
721
+ <ul>
722
+ <li>Tech stack và phiên bản chính xác</li>
723
+ <li>Quy tắc implementation quan trọng</li>
724
+ <li>Patterns đang dùng trong codebase</li>
725
+ </ul>
726
+ <div class="sl-heading-wrapper level-h3"><h3 id="kiến-trúc-là-bắt-buộc-khi-có-nhiều-developer">Kiến trúc là bắt buộc khi có nhiều developer</h3><a class="sl-anchor-link" href="#kiến-trúc-là-bắt-buộc-khi-có-nhiều-developer"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Kiến trúc là bắt buộc khi có nhiều developer”</span></a></div>
727
+ <p>Nếu nhiều agent (hoặc developer) làm việc song song trên các stories khác nhau, kiến trúc phải được định nghĩa trước. Thiếu kiến trúc → các agent tạo ra code xung đột nhau.</p>
728
+ <div class="sl-heading-wrapper level-h3"><h3 id="dùng-bmad-help-khi-không-chắc">Dùng bmad-help khi không chắc</h3><a class="sl-anchor-link" href="#dùng-bmad-help-khi-không-chắc"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Dùng bmad-help khi không chắc”</span></a></div>
729
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-help Tôi đang ở đâu trong workflow?</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-help Story này nên dùng Quick Flow hay Dev Story?</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">bmad-help Implementation Readiness check thất bại, làm gì tiếp?</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="bmad-help Tôi đang ở đâu trong workflow?bmad-help Story này nên dùng Quick Flow hay Dev Story?bmad-help Implementation Readiness check thất bại, làm gì tiếp?"><div></div></button></div></figure></div>
730
+ <div class="sl-heading-wrapper level-h3"><h3 id="quick-flow-không-có-nghĩa-là-không-có-chất-lượng">Quick Flow không có nghĩa là không có chất lượng</h3><a class="sl-anchor-link" href="#quick-flow-không-có-nghĩa-là-không-có-chất-lượng"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Quick Flow không có nghĩa là không có chất lượng”</span></a></div>
731
+ <p>Quick Dev vẫn có code review, vẫn tạo spec (mini), vẫn yêu cầu người approve kết quả. “Nhanh” ở đây là bỏ overhead lập kế hoạch không cần thiết, không phải bỏ qua chất lượng.</p>
732
+ <div class="sl-heading-wrapper level-h3"><h3 id="customize-agent-theo-nhu-cầu-team">Customize agent theo nhu cầu team</h3><a class="sl-anchor-link" href="#customize-agent-theo-nhu-cầu-team"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Customize agent theo nhu cầu team”</span></a></div>
733
+ <div class="expressive-code"><figure class="frame has-title not-content"><figcaption class="header"><span class="title">.customize.yaml</span></figcaption><pre data-language="yaml"><code><div class="ec-line"><div class="code"><span style="--0:#7FDBCA;--1:#111111">agents</span><span style="--0:#D6DEEB;--1:#403F53">:</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#111111">bmad-agent-dev</span><span style="--0:#D6DEEB;--1:#403F53">:</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#111111">persona</span><span style="--0:#D6DEEB;--1:#403F53">: </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Senior developer theo hướng TDD, luôn viết test trước</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#7FDBCA;--1:#111111">rules</span><span style="--0:#D6DEEB;--1:#403F53">:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">- </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Mọi function public phải có unit test</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#D6DEEB;--1:#403F53"> </span></span><span style="--0:#D6DEEB;--1:#403F53">- </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Không dùng any trong TypeScript</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="agents: bmad-agent-dev: persona: &#x22;Senior developer theo hướng TDD, luôn viết test trước&#x22; rules: - &#x22;Mọi function public phải có unit test&#x22; - &#x22;Không dùng any trong TypeScript&#x22;"><div></div></button></div></figure></div>
734
+ <div class="sl-heading-wrapper level-h3"><h3 id="vị-trí-qa-trong-workflow">Vị trí QA trong workflow</h3><a class="sl-anchor-link" href="#vị-trí-qa-trong-workflow"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Vị trí QA trong workflow”</span></a></div>
735
+ <div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="plaintext"><code><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">❌ Sai: Test sau mỗi story ngay lập tức</span></div></div><div class="ec-line"><div class="code"><span style="--0:#d6deeb;--1:#403f53">✅ Đúng: Test sau khi toàn bộ epic hoàn tất (Dev + Code Review cho tất cả stories)</span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="❌ Sai: Test sau mỗi story ngay lập tức✅ Đúng: Test sau khi toàn bộ epic hoàn tất (Dev + Code Review cho tất cả stories)"><div></div></button></div></figure></div>
736
+ <p>E2E test cần toàn bộ tính năng của epic để test integration. Test sớm hơn sẽ gặp dependency chưa sẵn sàng.</p>
737
+ <hr>
738
+ <div class="sl-heading-wrapper level-h2"><h2 id="tài-liệu-tham-khảo">Tài liệu tham khảo</h2><a class="sl-anchor-link" href="#tài-liệu-tham-khảo"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24"><path fill="currentcolor" d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 0 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 1 0-1.42-1.42Zm8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 0 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 1 0 1.42 1.42l3.88-3.89a4.49 4.49 0 0 0 0-6.33ZM8.83 15.17a1 1 0 0 0 1.1.22 1 1 0 0 0 .32-.22l4.92-4.92a1 1 0 0 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42Z"></path></svg></span><span class="sr-only" data-pagefind-ignore="">Phần tiêu đề “Tài liệu tham khảo”</span></a></div>
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+
790
+
791
+
792
+ <table><thead><tr><th>Tài liệu</th><th>Đường dẫn</th></tr></thead><tbody><tr><td>Getting Started</td><td><a href="/vi-vn/tutorials/getting-started/">tutorials/getting-started.md</a></td></tr><tr><td>Danh sách Agents</td><td><a href="/vi-vn/reference/agents/">reference/agents.md</a></td></tr><tr><td>Workflow Map</td><td><a href="/vi-vn/reference/workflow-map/">reference/workflow-map.md</a></td></tr><tr><td>Testing Reference</td><td><a href="/vi-vn/reference/testing/">reference/testing.md</a></td></tr><tr><td>Core Tools</td><td><a href="/vi-vn/reference/core-tools/">reference/core-tools.md</a></td></tr><tr><td>Modules</td><td><a href="/vi-vn/reference/modules/">reference/modules.md</a></td></tr><tr><td>Dự án đã tồn tại</td><td><a href="/vi-vn/how-to/established-projects/">how-to/established-projects.md</a></td></tr><tr><td>Project Context</td><td><a href="/vi-vn/explanation/project-context/">explanation/project-context.md</a></td></tr><tr><td>Quick Dev</td><td><a href="/vi-vn/explanation/quick-dev/">explanation/quick-dev.md</a></td></tr><tr><td>Why Solutioning Matters</td><td><a href="/vi-vn/explanation/why-solutioning-matters/">explanation/why-solutioning-matters.md</a></td></tr><tr><td>Cài đặt BMAD</td><td><a href="/vi-vn/how-to/install-bmad/">how-to/install-bmad.md</a></td></tr></tbody></table>
793
+ <hr>
794
+ <p><em>Tài liệu này được tổng hợp từ bản dịch tiếng Việt của BMAD Method Documentation. Cập nhật lần cuối: 2026-04-15.</em></p> </div> <footer class="sl-flex astro-a726w4al"> <div class="meta sl-flex astro-a726w4al"> </div> <div class="pagination-links print:hidden astro-uu4deccg" dir="ltr"> </div> </footer> </div> </div> </main> </div> </div> </div> </div> </body></html>