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.
- package/.claude-plugin/marketplace.json +80 -0
- package/AGENTS.md +12 -0
- package/LICENSE +30 -0
- package/README.md +72 -0
- package/bmad-modules.yaml +77 -0
- package/build/artifacts/llms-full.txt +4049 -0
- package/build/artifacts/llms.txt +28 -0
- package/build/site/404.html +55 -0
- package/build/site/_astro/MobileTableOfContents.astro_astro_type_script_index_0_lang.hwBsy0Mo.js +1 -0
- package/build/site/_astro/Search.astro_astro_type_script_index_0_lang.cjYDvRdi.js +1 -0
- package/build/site/_astro/TableOfContents.astro_astro_type_script_index_0_lang.FuRcXuRY.js +1 -0
- package/build/site/_astro/ec.0vx5m.js +3 -0
- package/build/site/_astro/ec.v4551.css +1 -0
- package/build/site/_astro/index.DdjI3lF_.css +1 -0
- package/build/site/_astro/page.B1D-nYk3.js +1 -0
- package/build/site/_astro/print.DNXP8c50.css +1 -0
- package/build/site/_astro/ui-core.D_Lfcn_I.js +2 -0
- package/build/site/cs/404/index.html +42 -0
- package/build/site/cs/explanation/advanced-elicitation/index.html +105 -0
- package/build/site/cs/explanation/adversarial-review/index.html +109 -0
- package/build/site/cs/explanation/analysis-phase/index.html +129 -0
- package/build/site/cs/explanation/brainstorming/index.html +92 -0
- package/build/site/cs/explanation/checkpoint-preview/index.html +121 -0
- package/build/site/cs/explanation/established-projects-faq/index.html +107 -0
- package/build/site/cs/explanation/forensic-investigation/index.html +167 -0
- package/build/site/cs/explanation/named-agents/index.html +187 -0
- package/build/site/cs/explanation/party-mode/index.html +101 -0
- package/build/site/cs/explanation/preventing-agent-conflicts/index.html +185 -0
- package/build/site/cs/explanation/project-context/index.html +198 -0
- package/build/site/cs/explanation/quick-dev/index.html +113 -0
- package/build/site/cs/explanation/web-bundles/index.html +178 -0
- package/build/site/cs/explanation/why-solutioning-matters/index.html +168 -0
- package/build/site/cs/how-to/customize-bmad/index.html +197 -0
- package/build/site/cs/how-to/established-projects/index.html +165 -0
- package/build/site/cs/how-to/expand-bmad-for-your-org/index.html +245 -0
- package/build/site/cs/how-to/get-answers-about-bmad/index.html +179 -0
- package/build/site/cs/how-to/install-bmad/index.html +124 -0
- package/build/site/cs/how-to/install-custom-modules/index.html +197 -0
- package/build/site/cs/how-to/non-interactive-installation/index.html +255 -0
- package/build/site/cs/how-to/project-context/index.html +138 -0
- package/build/site/cs/how-to/quick-fixes/index.html +122 -0
- package/build/site/cs/how-to/shard-large-documents/index.html +103 -0
- package/build/site/cs/how-to/upgrade-to-v6/index.html +185 -0
- package/build/site/cs/how-to/use-web-bundles/index.html +99 -0
- package/build/site/cs/index.html +129 -0
- package/build/site/cs/reference/agents/index.html +173 -0
- package/build/site/cs/reference/commands/index.html +250 -0
- package/build/site/cs/reference/core-tools/index.html +337 -0
- package/build/site/cs/reference/modules/index.html +132 -0
- package/build/site/cs/reference/testing/index.html +218 -0
- package/build/site/cs/reference/workflow-map/index.html +240 -0
- package/build/site/cs/roadmap/index.html +77 -0
- package/build/site/cs/tutorials/getting-started/index.html +382 -0
- package/build/site/diagrams/checkpoint-preview-diagram-fr.webp +0 -0
- package/build/site/diagrams/checkpoint-preview-diagram.png +0 -0
- package/build/site/diagrams/quick-dev-diagram-fr.webp +0 -0
- package/build/site/diagrams/quick-dev-diagram.png +0 -0
- package/build/site/explanation/advanced-elicitation/index.html +105 -0
- package/build/site/explanation/adversarial-review/index.html +109 -0
- package/build/site/explanation/analysis-phase/index.html +129 -0
- package/build/site/explanation/brainstorming/index.html +92 -0
- package/build/site/explanation/checkpoint-preview/index.html +121 -0
- package/build/site/explanation/established-projects-faq/index.html +107 -0
- package/build/site/explanation/forensic-investigation/index.html +167 -0
- package/build/site/explanation/named-agents/index.html +187 -0
- package/build/site/explanation/party-mode/index.html +256 -0
- package/build/site/explanation/preventing-agent-conflicts/index.html +185 -0
- package/build/site/explanation/project-context/index.html +198 -0
- package/build/site/explanation/quick-dev/index.html +113 -0
- package/build/site/explanation/web-bundles/index.html +178 -0
- package/build/site/explanation/why-solutioning-matters/index.html +168 -0
- package/build/site/fr/404/index.html +42 -0
- package/build/site/fr/explanation/advanced-elicitation/index.html +105 -0
- package/build/site/fr/explanation/adversarial-review/index.html +126 -0
- package/build/site/fr/explanation/analysis-phase/index.html +137 -0
- package/build/site/fr/explanation/brainstorming/index.html +92 -0
- package/build/site/fr/explanation/checkpoint-preview/index.html +121 -0
- package/build/site/fr/explanation/established-projects-faq/index.html +107 -0
- package/build/site/fr/explanation/forensic-investigation/index.html +194 -0
- package/build/site/fr/explanation/named-agents/index.html +187 -0
- package/build/site/fr/explanation/party-mode/index.html +112 -0
- package/build/site/fr/explanation/preventing-agent-conflicts/index.html +196 -0
- package/build/site/fr/explanation/project-context/index.html +198 -0
- package/build/site/fr/explanation/quick-dev/index.html +127 -0
- package/build/site/fr/explanation/web-bundles/index.html +198 -0
- package/build/site/fr/explanation/why-solutioning-matters/index.html +191 -0
- package/build/site/fr/how-to/customize-bmad/index.html +277 -0
- package/build/site/fr/how-to/established-projects/index.html +176 -0
- package/build/site/fr/how-to/expand-bmad-for-your-org/index.html +245 -0
- package/build/site/fr/how-to/get-answers-about-bmad/index.html +129 -0
- package/build/site/fr/how-to/install-bmad/index.html +330 -0
- package/build/site/fr/how-to/install-custom-modules/index.html +197 -0
- package/build/site/fr/how-to/non-interactive-installation/index.html +73 -0
- package/build/site/fr/how-to/project-context/index.html +138 -0
- package/build/site/fr/how-to/quick-fixes/index.html +130 -0
- package/build/site/fr/how-to/shard-large-documents/index.html +103 -0
- package/build/site/fr/how-to/upgrade-to-v6/index.html +202 -0
- package/build/site/fr/how-to/use-web-bundles/index.html +99 -0
- package/build/site/fr/index.html +144 -0
- package/build/site/fr/reference/agents/index.html +179 -0
- package/build/site/fr/reference/commands/index.html +264 -0
- package/build/site/fr/reference/core-tools/index.html +392 -0
- package/build/site/fr/reference/modules/index.html +146 -0
- package/build/site/fr/reference/testing/index.html +229 -0
- package/build/site/fr/reference/workflow-map/index.html +282 -0
- package/build/site/fr/roadmap/index.html +77 -0
- package/build/site/fr/tutorials/getting-started/index.html +406 -0
- package/build/site/how-to/customize-bmad/index.html +277 -0
- package/build/site/how-to/established-projects/index.html +165 -0
- package/build/site/how-to/expand-bmad-for-your-org/index.html +245 -0
- package/build/site/how-to/get-answers-about-bmad/index.html +129 -0
- package/build/site/how-to/install-bmad/index.html +330 -0
- package/build/site/how-to/install-custom-modules/index.html +197 -0
- package/build/site/how-to/non-interactive-installation/index.html +73 -0
- package/build/site/how-to/project-context/index.html +141 -0
- package/build/site/how-to/quick-fixes/index.html +122 -0
- package/build/site/how-to/shard-large-documents/index.html +103 -0
- package/build/site/how-to/upgrade-to-v6/index.html +185 -0
- package/build/site/how-to/use-web-bundles/index.html +99 -0
- package/build/site/img/bmad-dark.png +0 -0
- package/build/site/img/bmad-light.png +0 -0
- package/build/site/index.html +128 -0
- package/build/site/llms-full.txt +4049 -0
- package/build/site/llms.txt +28 -0
- package/build/site/pagefind/fragment/cs-cz_178b946.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_19e1744.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_1b81518.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_24fd94a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_25c5ff1.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_2a7d8c4.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_2b14d1f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_34d3775.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_366f93d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_4761b65.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_4d1a40a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_57dfabb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_5c68f33.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_5efaba9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_5f63a83.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_73bbdce.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_7b6af37.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_7d51fe5.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_7db5922.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_83e7116.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_83fec4e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_84972ee.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_94e9289.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_a0a122c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_a3e7fad.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_af43e66.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_b4f4e0a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_b51b8b3.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_ba705d5.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_c315625.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_cf5138a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_df8bdfe.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_e1b56f8.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_e3e33bb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/cs-cz_f9d07b3.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_026af96.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_132ea1f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_15ee460.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_171773c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_1a7ec42.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_1bb5ebb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_229434b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_22b33a0.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_38efcf3.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_3d17cef.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_426a8fd.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_446b27a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_582ecad.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_5d6b1f1.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_6465dfb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_66f3f7a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_68872f8.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_6e9deef.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_70a6a7e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_73f0b1e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_768fd99.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_7e52baa.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_8068cdc.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_9385c94.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_95b9c04.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_9a95e82.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_a66c4ef.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_ac6318c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_bba8f66.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_d9f7193.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_e0e52b1.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_ece4cbe.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_ed6969c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_f12187d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/en_f643df1.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_10fdc25.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_132e2e0.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_1529d31.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_1531e2c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_1d51fb7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_27d0aaf.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_583aea8.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_5c4f14f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_654bb96.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_65e37ae.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_6898afa.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_68d0a0b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_6ce4bc1.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_7ddd126.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_7f50a2e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_8d2df1b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_9b8d33d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_9c7f851.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_9cf6892.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_a512e53.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_a7ad3f6.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_afeac81.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_b364826.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_bdb3e1e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_c4884c3.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_c54c827.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_ca664c2.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_ce3562d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_d086476.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_d0b4e62.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_df4c57f.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_e1c2fa8.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_eaa1363.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_f456c69.pf_fragment +0 -0
- package/build/site/pagefind/fragment/fr-fr_fe8d783.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_1e5b1da.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_3268948.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_37f0bf6.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_485232c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_4d3bd13.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_4e578d2.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_4ed2533.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_533743c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_5ffd258.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_6bfed03.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_6f2ed6d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_71aa305.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_7577c2c.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_7883435.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_7f2e496.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_7fce614.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_86274a6.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_8c4fd62.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_a06c773.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_a2e535b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_a4b9dbc.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_b2d8e01.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_b631cf6.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_c970ebb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_d229f2a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_d685e88.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_dab2c52.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_df5a829.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_dfcf280.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_e8ec8cf.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_e9f3439.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_f0bfe83.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_f5462f7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_fcc9bb7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_fd55264.pf_fragment +0 -0
- package/build/site/pagefind/fragment/vi-vn_ffd39df.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_119c5bb.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_198e8ce.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_19b87a8.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_1edc3a5.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_36ae67a.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_37ab313.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_3b56778.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_5735cd4.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_6110769.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_6d66d9e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_731b3f5.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_82885ff.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_8be7aac.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_8c3fa9e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_8f452f7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_96ccc61.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_9f29932.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_a24d786.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_a598178.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_a603f17.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_a9cffcf.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_c1bebbd.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_c38cf84.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_c42a851.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_ce57c6e.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_d4b5cd5.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_da40e6b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_da777ec.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_de145f9.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_e376bf7.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_e663978.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_e97a13b.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_f13873d.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_f25fad4.pf_fragment +0 -0
- package/build/site/pagefind/fragment/zh-cn_f7edf48.pf_fragment +0 -0
- package/build/site/pagefind/index/cs-cz_24147b6.pf_index +0 -0
- package/build/site/pagefind/index/cs-cz_82fc657.pf_index +0 -0
- package/build/site/pagefind/index/cs-cz_8f6a83c.pf_index +0 -0
- package/build/site/pagefind/index/en_432f933.pf_index +0 -0
- package/build/site/pagefind/index/en_70c744a.pf_index +0 -0
- package/build/site/pagefind/index/en_fd84991.pf_index +0 -0
- package/build/site/pagefind/index/fr-fr_7275484.pf_index +0 -0
- package/build/site/pagefind/index/fr-fr_8096dd3.pf_index +0 -0
- package/build/site/pagefind/index/fr-fr_b34df12.pf_index +0 -0
- package/build/site/pagefind/index/fr-fr_e6ad665.pf_index +0 -0
- package/build/site/pagefind/index/vi-vn_129cf7e.pf_index +0 -0
- package/build/site/pagefind/index/vi-vn_7f54472.pf_index +0 -0
- package/build/site/pagefind/index/vi-vn_c1f31ce.pf_index +0 -0
- package/build/site/pagefind/index/vi-vn_c56f634.pf_index +0 -0
- package/build/site/pagefind/index/zh-cn_5ed0486.pf_index +0 -0
- package/build/site/pagefind/index/zh-cn_ad4d724.pf_index +0 -0
- package/build/site/pagefind/index/zh-cn_bc9f7b6.pf_index +0 -0
- package/build/site/pagefind/pagefind-entry.json +1 -0
- package/build/site/pagefind/pagefind-highlight.js +1064 -0
- package/build/site/pagefind/pagefind-modular-ui.css +214 -0
- package/build/site/pagefind/pagefind-modular-ui.js +8 -0
- package/build/site/pagefind/pagefind-ui.css +1 -0
- package/build/site/pagefind/pagefind-ui.js +2 -0
- package/build/site/pagefind/pagefind.cs-cz_cd39a8505eabf.pf_meta +0 -0
- package/build/site/pagefind/pagefind.en_8ae84a1b9c.pf_meta +0 -0
- package/build/site/pagefind/pagefind.fr-fr_20fca6f342d9a.pf_meta +0 -0
- package/build/site/pagefind/pagefind.js +6 -0
- package/build/site/pagefind/pagefind.vi-vn_6a45d08c2bbc8.pf_meta +0 -0
- package/build/site/pagefind/pagefind.zh-cn_ae911ac338eae.pf_meta +0 -0
- package/build/site/pagefind/wasm.en.pagefind +0 -0
- package/build/site/pagefind/wasm.fr-fr.pagefind +0 -0
- package/build/site/pagefind/wasm.unknown.pagefind +0 -0
- package/build/site/reference/agents/index.html +168 -0
- package/build/site/reference/commands/index.html +254 -0
- package/build/site/reference/core-tools/index.html +384 -0
- package/build/site/reference/modules/index.html +132 -0
- package/build/site/reference/testing/index.html +218 -0
- package/build/site/reference/workflow-map/index.html +266 -0
- package/build/site/roadmap/index.html +77 -0
- package/build/site/robots.txt +37 -0
- package/build/site/sitemap-0.xml +1 -0
- package/build/site/sitemap-index.xml +1 -0
- package/build/site/tutorials/getting-started/index.html +386 -0
- package/build/site/vi-vn/404/index.html +42 -0
- package/build/site/vi-vn/bmad-developer-guide/index.html +794 -0
- package/build/site/vi-vn/explanation/advanced-elicitation/index.html +105 -0
- package/build/site/vi-vn/explanation/adversarial-review/index.html +109 -0
- package/build/site/vi-vn/explanation/analysis-phase/index.html +129 -0
- package/build/site/vi-vn/explanation/brainstorming/index.html +92 -0
- package/build/site/vi-vn/explanation/checkpoint-preview/index.html +121 -0
- package/build/site/vi-vn/explanation/established-projects-faq/index.html +107 -0
- package/build/site/vi-vn/explanation/forensic-investigation/index.html +167 -0
- package/build/site/vi-vn/explanation/named-agents/index.html +187 -0
- package/build/site/vi-vn/explanation/party-mode/index.html +101 -0
- package/build/site/vi-vn/explanation/preventing-agent-conflicts/index.html +185 -0
- package/build/site/vi-vn/explanation/project-context/index.html +198 -0
- package/build/site/vi-vn/explanation/quick-dev/index.html +113 -0
- package/build/site/vi-vn/explanation/web-bundles/index.html +178 -0
- package/build/site/vi-vn/explanation/why-solutioning-matters/index.html +168 -0
- package/build/site/vi-vn/how-to/customize-bmad/index.html +277 -0
- package/build/site/vi-vn/how-to/established-projects/index.html +165 -0
- package/build/site/vi-vn/how-to/expand-bmad-for-your-org/index.html +228 -0
- package/build/site/vi-vn/how-to/get-answers-about-bmad/index.html +129 -0
- package/build/site/vi-vn/how-to/install-bmad/index.html +124 -0
- package/build/site/vi-vn/how-to/install-custom-modules/index.html +197 -0
- package/build/site/vi-vn/how-to/non-interactive-installation/index.html +300 -0
- package/build/site/vi-vn/how-to/project-context/index.html +138 -0
- package/build/site/vi-vn/how-to/quick-fixes/index.html +122 -0
- package/build/site/vi-vn/how-to/shard-large-documents/index.html +103 -0
- package/build/site/vi-vn/how-to/upgrade-to-v6/index.html +185 -0
- package/build/site/vi-vn/how-to/use-web-bundles/index.html +99 -0
- package/build/site/vi-vn/index.html +129 -0
- package/build/site/vi-vn/reference/agents/index.html +173 -0
- package/build/site/vi-vn/reference/commands/index.html +250 -0
- package/build/site/vi-vn/reference/core-tools/index.html +337 -0
- package/build/site/vi-vn/reference/modules/index.html +132 -0
- package/build/site/vi-vn/reference/testing/index.html +218 -0
- package/build/site/vi-vn/reference/workflow-map/index.html +240 -0
- package/build/site/vi-vn/roadmap/index.html +77 -0
- package/build/site/vi-vn/tutorials/getting-started/index.html +382 -0
- package/build/site/wizz-icon-orange.svg +7 -0
- package/build/site/workflow-map-diagram-fr.html +375 -0
- package/build/site/workflow-map-diagram.html +375 -0
- package/build/site/zh-cn/404/index.html +42 -0
- package/build/site/zh-cn/explanation/advanced-elicitation/index.html +142 -0
- package/build/site/zh-cn/explanation/adversarial-review/index.html +132 -0
- package/build/site/zh-cn/explanation/analysis-phase/index.html +129 -0
- package/build/site/zh-cn/explanation/brainstorming/index.html +147 -0
- package/build/site/zh-cn/explanation/checkpoint-preview/index.html +121 -0
- package/build/site/zh-cn/explanation/established-projects-faq/index.html +122 -0
- package/build/site/zh-cn/explanation/forensic-investigation/index.html +167 -0
- package/build/site/zh-cn/explanation/named-agents/index.html +187 -0
- package/build/site/zh-cn/explanation/party-mode/index.html +144 -0
- package/build/site/zh-cn/explanation/preventing-agent-conflicts/index.html +191 -0
- package/build/site/zh-cn/explanation/project-context/index.html +153 -0
- package/build/site/zh-cn/explanation/quick-dev/index.html +139 -0
- package/build/site/zh-cn/explanation/web-bundles/index.html +178 -0
- package/build/site/zh-cn/explanation/why-solutioning-matters/index.html +175 -0
- package/build/site/zh-cn/how-to/customize-bmad/index.html +202 -0
- package/build/site/zh-cn/how-to/established-projects/index.html +166 -0
- package/build/site/zh-cn/how-to/expand-bmad-for-your-org/index.html +223 -0
- package/build/site/zh-cn/how-to/get-answers-about-bmad/index.html +198 -0
- package/build/site/zh-cn/how-to/install-bmad/index.html +126 -0
- package/build/site/zh-cn/how-to/install-custom-modules/index.html +197 -0
- package/build/site/zh-cn/how-to/non-interactive-installation/index.html +254 -0
- package/build/site/zh-cn/how-to/project-context/index.html +143 -0
- package/build/site/zh-cn/how-to/quick-fixes/index.html +122 -0
- package/build/site/zh-cn/how-to/shard-large-documents/index.html +110 -0
- package/build/site/zh-cn/how-to/upgrade-to-v6/index.html +198 -0
- package/build/site/zh-cn/how-to/use-web-bundles/index.html +99 -0
- package/build/site/zh-cn/index.html +129 -0
- package/build/site/zh-cn/reference/agents/index.html +178 -0
- package/build/site/zh-cn/reference/commands/index.html +245 -0
- package/build/site/zh-cn/reference/core-tools/index.html +313 -0
- package/build/site/zh-cn/reference/modules/index.html +181 -0
- package/build/site/zh-cn/reference/testing/index.html +226 -0
- package/build/site/zh-cn/reference/workflow-map/index.html +238 -0
- package/build/site/zh-cn/roadmap/index.html +77 -0
- package/build/site/zh-cn/tutorials/getting-started/index.html +381 -0
- package/evals/bmm-skills/bmad-product-brief/evals.json +237 -0
- package/evals/bmm-skills/bmad-product-brief/files/branfield-memo.md +46 -0
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/addendum.md +40 -0
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/brief.md +56 -0
- package/evals/bmm-skills/bmad-product-brief/files/forkbird-brief/decision-log.md +27 -0
- package/evals/bmm-skills/bmad-product-brief/files/meridian-mobility-report.md +116 -0
- package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/addendum.md +41 -0
- package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/brief.md +57 -0
- package/evals/bmm-skills/bmad-product-brief/files/mossridge-brief/decision-log.md +29 -0
- package/evals/bmm-skills/bmad-product-brief/files/pantry-bridge-interviews.md +90 -0
- package/evals/bmm-skills/bmad-product-brief/files/q2-brainstorm.md +101 -0
- package/evals/bmm-skills/bmad-product-brief/triggers.json +18 -0
- package/package.json +114 -0
- package/removals.txt +62 -0
- package/src/bmm-skills/1-analysis/bmad-agent-analyst/SKILL.md +76 -0
- package/src/bmm-skills/1-analysis/bmad-agent-analyst/customize.toml +90 -0
- package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/SKILL.md +76 -0
- package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/customize.toml +81 -0
- package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/explain-concept.md +20 -0
- package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/mermaid-gen.md +20 -0
- package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/validate-doc.md +19 -0
- package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/write-document.md +20 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/SKILL.md +62 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/checklist.md +245 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/customize.toml +41 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/documentation-requirements.csv +12 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/instructions.md +128 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/templates/deep-dive-template.md +345 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/templates/index-template.md +169 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/templates/project-overview-template.md +103 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/templates/project-scan-report-schema.json +160 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/templates/source-tree-template.md +135 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md +300 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md +1108 -0
- package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-workflow.md +34 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/SKILL.md +135 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/agents/artifact-analyzer.md +60 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/agents/web-researcher.md +49 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/assets/prfaq-template.md +62 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/bmad-manifest.json +16 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/customize.toml +41 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/references/customer-faq.md +55 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/references/internal-faq.md +51 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/references/press-release.md +60 -0
- package/src/bmm-skills/1-analysis/bmad-prfaq/references/verdict.md +83 -0
- package/src/bmm-skills/1-analysis/bmad-product-brief/SKILL.md +91 -0
- package/src/bmm-skills/1-analysis/bmad-product-brief/assets/brief-template.md +41 -0
- package/src/bmm-skills/1-analysis/bmad-product-brief/customize.toml +99 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md +96 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml +41 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +137 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +234 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +450 -0
- package/src/bmm-skills/1-analysis/research/bmad-domain-research/research.template.md +29 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md +96 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml +41 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/research.template.md +29 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-01-init.md +184 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
- package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +484 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md +96 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml +41 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/research.template.md +29 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +137 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +239 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +233 -0
- package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +493 -0
- package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/SKILL.md +76 -0
- package/src/bmm-skills/2-plan-workflows/bmad-agent-pm/customize.toml +75 -0
- package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/SKILL.md +76 -0
- package/src/bmm-skills/2-plan-workflows/bmad-agent-ux-designer/customize.toml +60 -0
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/SKILL.md +30 -0
- package/src/bmm-skills/2-plan-workflows/bmad-create-prd/customize.toml +41 -0
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/SKILL.md +30 -0
- package/src/bmm-skills/2-plan-workflows/bmad-edit-prd/customize.toml +42 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/SKILL.md +92 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/headless-schemas.md +76 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-template.md +165 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/prd-validation-checklist.md +135 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/assets/validation-report-template.html +325 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/customize.toml +147 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/headless.md +39 -0
- package/src/bmm-skills/2-plan-workflows/bmad-prd/references/validate.md +97 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/SKILL.md +90 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/color-themes.md +9 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-directions.md +9 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-editorial.md +158 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-mobile.md +93 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/design-example-shadcn.md +109 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/excalidraw-wireframe.md +19 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-mobile.md +112 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-shadcn.md +133 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/headless-schemas.md +84 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/key-screens.md +29 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/assets/validation-report-template.html +319 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/customize.toml +100 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/creative-tools.md +19 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/design-md-spec.md +50 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/headless.md +37 -0
- package/src/bmm-skills/2-plan-workflows/bmad-ux/references/validate.md +115 -0
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/SKILL.md +30 -0
- package/src/bmm-skills/2-plan-workflows/bmad-validate-prd/customize.toml +42 -0
- package/src/bmm-skills/3-solutioning/bmad-agent-architect/SKILL.md +76 -0
- package/src/bmm-skills/3-solutioning/bmad-agent-architect/customize.toml +65 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/SKILL.md +85 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/assets/spine-template.md +79 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/customize.toml +100 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/references/headless.md +26 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/references/reviewer-gate.md +13 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/scripts/lint_spine.py +257 -0
- package/src/bmm-skills/3-solutioning/bmad-architecture/scripts/tests/test_lint_spine.py +270 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/SKILL.md +91 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml +41 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +132 -0
- package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/SKILL.md +30 -0
- package/src/bmm-skills/3-solutioning/bmad-create-architecture/customize.toml +41 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/SKILL.md +93 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/customize.toml +41 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +263 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +242 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +143 -0
- package/src/bmm-skills/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +61 -0
- package/src/bmm-skills/3-solutioning/bmad-generate-project-context/SKILL.md +81 -0
- package/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml +41 -0
- package/src/bmm-skills/3-solutioning/bmad-generate-project-context/project-context-template.md +21 -0
- package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-01-discover.md +186 -0
- package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-02-generate.md +321 -0
- package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md +284 -0
- package/src/bmm-skills/4-implementation/bmad-agent-dev/SKILL.md +76 -0
- package/src/bmm-skills/4-implementation/bmad-agent-dev/customize.toml +95 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/SKILL.md +68 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/generate-trail.md +38 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-01-orientation.md +105 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-02-walkthrough.md +89 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-03-detail-pass.md +106 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-04-testing.md +74 -0
- package/src/bmm-skills/4-implementation/bmad-checkpoint-preview/step-05-wrapup.md +30 -0
- package/src/bmm-skills/4-implementation/bmad-code-review/SKILL.md +93 -0
- package/src/bmm-skills/4-implementation/bmad-code-review/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-01-gather-context.md +85 -0
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +35 -0
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-03-triage.md +49 -0
- package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-04-present.md +132 -0
- package/src/bmm-skills/4-implementation/bmad-correct-course/SKILL.md +301 -0
- package/src/bmm-skills/4-implementation/bmad-correct-course/checklist.md +288 -0
- package/src/bmm-skills/4-implementation/bmad-correct-course/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-create-story/SKILL.md +432 -0
- package/src/bmm-skills/4-implementation/bmad-create-story/checklist.md +357 -0
- package/src/bmm-skills/4-implementation/bmad-create-story/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-create-story/discover-inputs.md +88 -0
- package/src/bmm-skills/4-implementation/bmad-create-story/template.md +49 -0
- package/src/bmm-skills/4-implementation/bmad-dev-story/SKILL.md +500 -0
- package/src/bmm-skills/4-implementation/bmad-dev-story/checklist.md +80 -0
- package/src/bmm-skills/4-implementation/bmad-dev-story/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-investigate/SKILL.md +196 -0
- package/src/bmm-skills/4-implementation/bmad-investigate/customize.toml +62 -0
- package/src/bmm-skills/4-implementation/bmad-investigate/references/case-file-template.md +127 -0
- package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/SKILL.md +176 -0
- package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/checklist.md +33 -0
- package/src/bmm-skills/4-implementation/bmad-qa-generate-e2e-tests/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +114 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/compile-epic-context.md +62 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/spec-template.md +88 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md +100 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-02-plan.md +47 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-03-implement.md +41 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-04-review.md +50 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-05-present.md +78 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +71 -0
- package/src/bmm-skills/4-implementation/bmad-quick-dev/sync-sprint-status.md +19 -0
- package/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md +1527 -0
- package/src/bmm-skills/4-implementation/bmad-retrospective/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/SKILL.md +319 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/checklist.md +34 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/customize.toml +41 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +69 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-status/SKILL.md +311 -0
- package/src/bmm-skills/4-implementation/bmad-sprint-status/customize.toml +41 -0
- package/src/bmm-skills/module-help.csv +32 -0
- package/src/bmm-skills/module.yaml +95 -0
- package/src/core-skills/bmad-advanced-elicitation/SKILL.md +142 -0
- package/src/core-skills/bmad-advanced-elicitation/methods.csv +70 -0
- package/src/core-skills/bmad-brainstorming/SKILL.md +82 -0
- package/src/core-skills/bmad-brainstorming/analysis/catalog-analysis.md +239 -0
- package/src/core-skills/bmad-brainstorming/analysis/method-matrix.csv +109 -0
- package/src/core-skills/bmad-brainstorming/assets/brain-icons.json +166 -0
- package/src/core-skills/bmad-brainstorming/assets/brain-methods.csv +109 -0
- package/src/core-skills/bmad-brainstorming/assets/brain-selector.html +326 -0
- package/src/core-skills/bmad-brainstorming/customize.toml +84 -0
- package/src/core-skills/bmad-brainstorming/references/converge.md +24 -0
- package/src/core-skills/bmad-brainstorming/references/finalize.md +26 -0
- package/src/core-skills/bmad-brainstorming/references/headless.md +54 -0
- package/src/core-skills/bmad-brainstorming/references/in-chat-techniques.md +18 -0
- package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +10 -0
- package/src/core-skills/bmad-brainstorming/references/mode-facilitator.md +11 -0
- package/src/core-skills/bmad-brainstorming/references/mode-partner.md +16 -0
- package/src/core-skills/bmad-brainstorming/references/resume.md +5 -0
- package/src/core-skills/bmad-brainstorming/scripts/brain.py +740 -0
- package/src/core-skills/bmad-brainstorming/scripts/memlog.py +202 -0
- package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +217 -0
- package/src/core-skills/bmad-brainstorming/scripts/tests/test_memlog.py +265 -0
- package/src/core-skills/bmad-customize/SKILL.md +111 -0
- package/src/core-skills/bmad-customize/scripts/list_customizable_skills.py +231 -0
- package/src/core-skills/bmad-customize/scripts/tests/test_list_customizable_skills.py +249 -0
- package/src/core-skills/bmad-editorial-review-prose/SKILL.md +86 -0
- package/src/core-skills/bmad-editorial-review-structure/SKILL.md +179 -0
- package/src/core-skills/bmad-help/SKILL.md +75 -0
- package/src/core-skills/bmad-index-docs/SKILL.md +66 -0
- package/src/core-skills/bmad-party-mode/SKILL.md +77 -0
- package/src/core-skills/bmad-party-mode/customize.toml +150 -0
- package/src/core-skills/bmad-party-mode/references/create-party.md +65 -0
- package/src/core-skills/bmad-party-mode/references/mode-agent-team.md +11 -0
- package/src/core-skills/bmad-party-mode/references/mode-auto.md +13 -0
- package/src/core-skills/bmad-party-mode/references/mode-subagent.md +19 -0
- package/src/core-skills/bmad-party-mode/scripts/resolve_party.py +267 -0
- package/src/core-skills/bmad-party-mode/scripts/tests/test-resolve_party.py +138 -0
- package/src/core-skills/bmad-review-adversarial-general/SKILL.md +37 -0
- package/src/core-skills/bmad-review-edge-case-hunter/SKILL.md +67 -0
- package/src/core-skills/bmad-shard-doc/SKILL.md +105 -0
- package/src/core-skills/bmad-spec/SKILL.md +145 -0
- package/src/core-skills/bmad-spec/assets/headless-schemas.md +33 -0
- package/src/core-skills/bmad-spec/assets/spec-template.md +49 -0
- package/src/core-skills/bmad-spec/customize.toml +53 -0
- package/src/core-skills/module-help.csv +13 -0
- package/src/core-skills/module.yaml +33 -0
- package/src/modules/wizz/README.md +39 -0
- package/src/modules/wizz/_shared/cerebro.md +24 -0
- package/src/modules/wizz/_shared/encerramento.md +36 -0
- package/src/modules/wizz/_shared/token-economy.md +28 -0
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +30 -0
- package/src/modules/wizz/agents/wizz-ads/customize.toml +53 -0
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +30 -0
- package/src/modules/wizz/agents/wizz-copy/customize.toml +53 -0
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +38 -0
- package/src/modules/wizz/agents/wizz-designer/customize.toml +60 -0
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +31 -0
- package/src/modules/wizz/agents/wizz-growth/customize.toml +58 -0
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +77 -0
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +78 -0
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +31 -0
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +57 -0
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +31 -0
- package/src/modules/wizz/agents/wizz-qa/customize.toml +63 -0
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +31 -0
- package/src/modules/wizz/agents/wizz-seo/customize.toml +58 -0
- package/src/modules/wizz/module.yaml +117 -0
- package/src/modules/wizz/overrides/bmad-agent-analyst.toml +35 -0
- package/src/modules/wizz/overrides/bmad-agent-architect.toml +39 -0
- package/src/modules/wizz/overrides/bmad-agent-dev.toml +40 -0
- package/src/modules/wizz/overrides/bmad-agent-pm.toml +23 -0
- package/src/modules/wizz/overrides/bmad-agent-tech-writer.toml +30 -0
- package/src/modules/wizz/overrides/bmad-agent-ux-designer.toml +26 -0
- package/src/modules/wizz/scripts/wizz-init.mjs +163 -0
- package/src/scripts/memlog.py +224 -0
- package/src/scripts/resolve_config.py +176 -0
- package/src/scripts/resolve_customization.py +238 -0
- package/src/scripts/tests/test_memlog.py +306 -0
- package/src/scripts/tests/test_resolve_customization.py +50 -0
- package/tools/bundle-web-bundles.js +117 -0
- package/tools/format-workflow-md.js +263 -0
- package/tools/installer/README.md +60 -0
- package/tools/installer/bmad-cli.js +105 -0
- package/tools/installer/cli-utils.js +53 -0
- package/tools/installer/commands/install.js +149 -0
- package/tools/installer/commands/status.js +65 -0
- package/tools/installer/commands/uninstall.js +167 -0
- package/tools/installer/core/config.js +73 -0
- package/tools/installer/core/existing-install.js +121 -0
- package/tools/installer/core/install-paths.js +132 -0
- package/tools/installer/core/installer.js +1653 -0
- package/tools/installer/core/legacy-warnings.js +151 -0
- package/tools/installer/core/manifest-generator.js +859 -0
- package/tools/installer/core/manifest.js +433 -0
- package/tools/installer/core/python-check.js +199 -0
- package/tools/installer/core/wsl-node-check.js +109 -0
- package/tools/installer/file-ops.js +204 -0
- package/tools/installer/fs-native.js +116 -0
- package/tools/installer/ide/_config-driven.js +972 -0
- package/tools/installer/ide/manager.js +324 -0
- package/tools/installer/ide/platform-codes.js +80 -0
- package/tools/installer/ide/platform-codes.yaml +329 -0
- package/tools/installer/ide/shared/installed-skills.js +50 -0
- package/tools/installer/ide/shared/path-utils.js +219 -0
- package/tools/installer/ide/shared/skill-manifest.js +57 -0
- package/tools/installer/install-messages.yaml +32 -0
- package/tools/installer/list-options.js +210 -0
- package/tools/installer/message-loader.js +83 -0
- package/tools/installer/modules/channel-plan.js +203 -0
- package/tools/installer/modules/channel-resolver.js +241 -0
- package/tools/installer/modules/custom-module-manager.js +912 -0
- package/tools/installer/modules/external-manager.js +527 -0
- package/tools/installer/modules/module-help-schema.js +13 -0
- package/tools/installer/modules/official-modules.js +2217 -0
- package/tools/installer/modules/plugin-resolver.js +398 -0
- package/tools/installer/modules/version-resolver.js +336 -0
- package/tools/installer/project-root.js +224 -0
- package/tools/installer/prompts.js +852 -0
- package/tools/installer/set-overrides.js +330 -0
- package/tools/installer/ui.js +2077 -0
- package/tools/installer/yaml-format.js +245 -0
- package/tools/javascript-conventions.md +5 -0
- package/tools/migrate-custom-module-paths.js +124 -0
- package/tools/skill-validator.md +368 -0
- package/tools/validate-sidebar-order.js +388 -0
- package/tools/validate-skills.js +698 -0
- package/tools/validate-svg-changes.sh +356 -0
- package/web-bundles/README.md +46 -0
- package/web-bundles/brainstorming-coach/INSTRUCTIONS.md +86 -0
- package/web-bundles/brainstorming-coach/SKILL.md +83 -0
- package/web-bundles/brainstorming-coach/brain-methods.csv +62 -0
- package/web-bundles/bundles.json +139 -0
- package/web-bundles/market-and-industry-research/INSTRUCTIONS.md +88 -0
- package/web-bundles/market-and-industry-research/SKILL.md +59 -0
- package/web-bundles/prd-coach/INSTRUCTIONS.md +86 -0
- package/web-bundles/prd-coach/SKILL.md +101 -0
- package/web-bundles/prd-coach/prd-template.md +165 -0
- package/web-bundles/prd-coach/prd-validation-checklist.md +135 -0
- package/web-bundles/prfaq-coach/INSTRUCTIONS.md +86 -0
- package/web-bundles/prfaq-coach/SKILL.md +139 -0
- package/web-bundles/product-brief-coach/INSTRUCTIONS.md +86 -0
- package/web-bundles/product-brief-coach/SKILL.md +113 -0
- package/web-bundles/ux-coach/INSTRUCTIONS.md +92 -0
- package/web-bundles/ux-coach/SKILL.md +187 -0
- package/web-bundles/ux-coach/ux-validation.md +100 -0
|
@@ -0,0 +1,228 @@
|
|
|
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>Cách mở rộng BMad cho tổ chức của bạn | Wizz Method</title><link rel="canonical" href="http://localhost:3000/vi-vn/how-to/expand-bmad-for-your-org/"/><link rel="alternate" hreflang="en" href="http://localhost:3000/how-to/expand-bmad-for-your-org/"/><link rel="alternate" hreflang="vi-VN" href="http://localhost:3000/vi-vn/how-to/expand-bmad-for-your-org/"/><link rel="alternate" hreflang="zh-CN" href="http://localhost:3000/zh-cn/how-to/expand-bmad-for-your-org/"/><link rel="alternate" hreflang="fr-FR" href="http://localhost:3000/fr/how-to/expand-bmad-for-your-org/"/><link rel="alternate" hreflang="cs-CZ" href="http://localhost:3000/cs/how-to/expand-bmad-for-your-org/"/><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="Cách mở rộng BMad cho tổ chức của bạn"/><meta property="og:type" content="article"/><meta property="og:url" content="http://localhost:3000/vi-vn/how-to/expand-bmad-for-your-org/"/><meta property="og:locale" content="vi-VN"/><meta property="og:description" content="Năm mẫu tùy chỉnh giúp thay đổi BMad mà không cần fork, gồm quy tắc ở cấp agent, quy ước workflow, xuất bản ra hệ thống ngoài, thay template và điều chỉnh danh sách agent"/><meta property="og:site_name" content="Wizz Method"/><meta name="twitter:card" content="summary_large_image"/><meta name="description" content="Năm mẫu tùy chỉnh giúp thay đổi BMad mà không cần fork, gồm quy tắc ở cấp agent, quy ước workflow, xuất bản ra hệ thống ngoài, thay template và điều chỉnh danh sách agent"/><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="{"placeholder":"Tìm kiếm"}"> <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="/how-to/expand-bmad-for-your-org/" class="astro-nmwkdvwx">English</option><option value="/vi-vn/how-to/expand-bmad-for-your-org/" selected class="astro-nmwkdvwx">Tiếng Việt</option><option value="/zh-cn/how-to/expand-bmad-for-your-org/" class="astro-nmwkdvwx">简体中文</option><option value="/fr/how-to/expand-bmad-for-your-org/" class="astro-nmwkdvwx">Français</option><option value="/cs/how-to/expand-bmad-for-your-org/" 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 open 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/" aria-current="page" 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="/how-to/expand-bmad-for-your-org/" class="astro-nmwkdvwx">English</option><option value="/vi-vn/how-to/expand-bmad-for-your-org/" selected class="astro-nmwkdvwx">Tiếng Việt</option><option value="/zh-cn/how-to/expand-bmad-for-your-org/" class="astro-nmwkdvwx">简体中文</option><option value="/fr/how-to/expand-bmad-for-your-org/" class="astro-nmwkdvwx">Français</option><option value="/cs/how-to/expand-bmad-for-your-org/" 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ô-hình-ba-lớp-để-suy-nghĩ" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Mô hình ba lớp để suy nghĩ</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-1-định-hình-một-agent-trên-mọi-workflow-mà-nó-điều-phối-dispatch" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 1: định hình một agent trên mọi workflow mà nó điều phối (dispatch)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-2-ép-convention-của-tổ-chức-bên-trong-một-workflow-cụ-thể" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 2: ép convention của tổ chức bên trong một workflow cụ thể</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-3-xuất-bản-kết-quả-hoàn-tất-sang-hệ-thống-ngoài" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 3: xuất bản kết quả hoàn tất sang hệ thống ngoài</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-4-thay-output-template-bằng-template-của-riêng-bạn" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 4: thay output template bằng template của riêng bạn</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-5-tùy-chỉnh-danh-sách-agent-agent-roster" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 5: tùy chỉnh danh sách agent (agent roster)</span> </a> <ul class="isMobile astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#5a-rebrand-một-agent-của-bmad-trên-toàn-tổ-chức" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">5a. Rebrand một agent của BMad trên toàn tổ chức</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#5b-thêm-một-agent-hư-cấu-hoặc-agent-tự-định-nghĩa" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">5b. Thêm một agent hư cấu hoặc agent tự định nghĩa</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#5c-ghim-thiết-lập-cài-đặt-dùng-chung-cho-cả-team" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">5c. Ghim thiết lập cài đặt dùng chung cho cả team</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#củng-cố-các-quy-tắc-toàn-cục-trong-file-hướng-dẫn-phiên-của-ide" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Củng cố các quy tắc toàn cục trong file hướng dẫn phiên của IDE</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#kết-hợp-các-recipe" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Kết hợp các recipe</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#khắc-phục-sự-cố" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Khắc phục sự cố</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ô-hình-ba-lớp-để-suy-nghĩ" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Mô hình ba lớp để suy nghĩ</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-1-định-hình-một-agent-trên-mọi-workflow-mà-nó-điều-phối-dispatch" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 1: định hình một agent trên mọi workflow mà nó điều phối (dispatch)</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-2-ép-convention-của-tổ-chức-bên-trong-một-workflow-cụ-thể" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 2: ép convention của tổ chức bên trong một workflow cụ thể</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-3-xuất-bản-kết-quả-hoàn-tất-sang-hệ-thống-ngoài" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 3: xuất bản kết quả hoàn tất sang hệ thống ngoài</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-4-thay-output-template-bằng-template-của-riêng-bạn" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 4: thay output template bằng template của riêng bạn</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#recipe-5-tùy-chỉnh-danh-sách-agent-agent-roster" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Recipe 5: tùy chỉnh danh sách agent (agent roster)</span> </a> <ul class="astro-xsqhb6qp" style="--depth: 1;"> <li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#5a-rebrand-một-agent-của-bmad-trên-toàn-tổ-chức" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">5a. Rebrand một agent của BMad trên toàn tổ chức</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#5b-thêm-một-agent-hư-cấu-hoặc-agent-tự-định-nghĩa" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">5b. Thêm một agent hư cấu hoặc agent tự định nghĩa</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 1;"> <a href="#5c-ghim-thiết-lập-cài-đặt-dùng-chung-cho-cả-team" class="astro-xsqhb6qp" style="--depth: 1;"> <span class="astro-xsqhb6qp" style="--depth: 1;">5c. Ghim thiết lập cài đặt dùng chung cho cả team</span> </a> </li> </ul> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#củng-cố-các-quy-tắc-toàn-cục-trong-file-hướng-dẫn-phiên-của-ide" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Củng cố các quy tắc toàn cục trong file hướng dẫn phiên của IDE</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#kết-hợp-các-recipe" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Kết hợp các recipe</span> </a> </li><li class="astro-xsqhb6qp" style="--depth: 0;"> <a href="#khắc-phục-sự-cố" class="astro-xsqhb6qp" style="--depth: 0;"> <span class="astro-xsqhb6qp" style="--depth: 0;">Khắc phục sự cố</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">Cách mở rộng BMad cho tổ chức của bạn</h1> </div> </div> <div class="content-panel astro-aoj46c3a"> <div class="sl-container astro-aoj46c3a"> <div class="sl-markdown-content"> <p>Bề mặt tùy chỉnh của BMad cho phép một tổ chức định hình lại hành vi mà không phải sửa file đã cài hay fork skill. Hướng dẫn này trình bày năm công thức mẫu (recipe) bao phủ phần lớn nhu cầu ở môi trường doanh nghiệp.</p>
|
|
74
|
+
<aside aria-label="Điều kiện tiên quyết" class="starlight-aside starlight-aside--note"><p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path d="M12 11C11.7348 11 11.4804 11.1054 11.2929 11.2929C11.1054 11.4804 11 11.7348 11 12V16C11 16.2652 11.1054 16.5196 11.2929 16.7071C11.4804 16.8946 11.7348 17 12 17C12.2652 17 12.5196 16.8946 12.7071 16.7071C12.8946 16.5196 13 16.2652 13 16V12C13 11.7348 12.8946 11.4804 12.7071 11.2929C12.5196 11.1054 12.2652 11 12 11ZM12.38 7.08C12.1365 6.97998 11.8635 6.97998 11.62 7.08C11.4973 7.12759 11.3851 7.19896 11.29 7.29C11.2017 7.3872 11.1306 7.49882 11.08 7.62C11.024 7.73868 10.9966 7.86882 11 8C10.9992 8.13161 11.0245 8.26207 11.0742 8.38391C11.124 8.50574 11.1973 8.61656 11.29 8.71C11.3872 8.79833 11.4988 8.86936 11.62 8.92C11.7715 8.98224 11.936 9.00632 12.099 8.99011C12.2619 8.97391 12.4184 8.91792 12.5547 8.82707C12.691 8.73622 12.8029 8.61328 12.8805 8.46907C12.9582 8.32486 12.9992 8.16378 13 8C12.9963 7.73523 12.8927 7.48163 12.71 7.29C12.6149 7.19896 12.5028 7.12759 12.38 7.08ZM12 2C10.0222 2 8.08879 2.58649 6.4443 3.6853C4.79981 4.78412 3.51809 6.3459 2.76121 8.17317C2.00433 10.0004 1.8063 12.0111 2.19215 13.9509C2.578 15.8907 3.53041 17.6725 4.92894 19.0711C6.32746 20.4696 8.10929 21.422 10.0491 21.8079C11.9889 22.1937 13.9996 21.9957 15.8268 21.2388C17.6541 20.4819 19.2159 19.2002 20.3147 17.5557C21.4135 15.9112 22 13.9778 22 12C22 10.6868 21.7413 9.38642 21.2388 8.17317C20.7363 6.95991 19.9997 5.85752 19.0711 4.92893C18.1425 4.00035 17.0401 3.26375 15.8268 2.7612C14.6136 2.25866 13.3132 2 12 2ZM12 20C10.4178 20 8.87104 19.5308 7.55544 18.6518C6.23985 17.7727 5.21447 16.5233 4.60897 15.0615C4.00347 13.5997 3.84504 11.9911 4.15372 10.4393C4.4624 8.88743 5.22433 7.46197 6.34315 6.34315C7.46197 5.22433 8.88743 4.4624 10.4393 4.15372C11.9911 3.84504 13.5997 4.00346 15.0615 4.60896C16.5233 5.21447 17.7727 6.23984 18.6518 7.55544C19.5308 8.87103 20 10.4177 20 12C20 14.1217 19.1572 16.1566 17.6569 17.6569C16.1566 19.1571 14.1217 20 12 20Z"></path></svg>Điều kiện tiên quyết</p><div class="starlight-aside__content"><ul>
|
|
75
|
+
<li>BMad đã được cài trong dự án của bạn (xem <a href="/vi-vn/how-to/install-bmad/">Cách cài đặt BMad</a>)</li>
|
|
76
|
+
<li>Đã quen với mô hình tùy chỉnh (xem <a href="/vi-vn/how-to/customize-bmad/">Cách tùy chỉnh BMad</a>)</li>
|
|
77
|
+
<li>Python 3.11+ có trên PATH để chạy resolver, chỉ dùng stdlib, không cần <code dir="auto">pip install</code></li>
|
|
78
|
+
</ul></div></aside>
|
|
79
|
+
<aside aria-label="Cách áp dụng các công thức mẫu này" class="starlight-aside starlight-aside--tip"><p class="starlight-aside__title" aria-hidden="true"><svg viewBox="0 0 24 24" width="16" height="16" fill="currentColor" class="starlight-aside__icon"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.43909 8.85483L1.44039 8.85354L4.96668 5.33815C5.30653 4.99386 5.7685 4.79662 6.2524 4.78972L6.26553 4.78963L12.9014 4.78962L13.8479 3.84308C16.9187 0.772319 20.0546 0.770617 21.4678 0.975145C21.8617 1.02914 22.2271 1.21053 22.5083 1.4917C22.7894 1.77284 22.9708 2.13821 23.0248 2.53199C23.2294 3.94517 23.2278 7.08119 20.1569 10.1521L19.2107 11.0983V17.7338L19.2106 17.7469C19.2037 18.2308 19.0067 18.6933 18.6624 19.0331L15.1456 22.5608C14.9095 22.7966 14.6137 22.964 14.29 23.0449C13.9663 23.1259 13.6267 23.1174 13.3074 23.0204C12.9881 22.9235 12.7011 22.7417 12.4771 22.4944C12.2533 22.2473 12.1006 21.9441 12.0355 21.6171L11.1783 17.3417L6.65869 12.822L4.34847 12.3589L2.38351 11.965C2.05664 11.8998 1.75272 11.747 1.50564 11.5232C1.25835 11.2992 1.07653 11.0122 0.979561 10.6929C0.882595 10.3736 0.874125 10.034 0.955057 9.7103C1.03599 9.38659 1.20328 9.09092 1.43909 8.85483ZM6.8186 10.8724L2.94619 10.096L6.32006 6.73268H10.9583L6.8186 10.8724ZM15.2219 5.21703C17.681 2.75787 20.0783 2.75376 21.1124 2.8876C21.2462 3.92172 21.2421 6.31895 18.783 8.77812L12.0728 15.4883L8.51172 11.9272L15.2219 5.21703ZM13.9042 21.0538L13.1279 17.1811L17.2676 13.0414V17.68L13.9042 21.0538Z"></path><path d="M9.31827 18.3446C9.45046 17.8529 9.17864 17.3369 8.68945 17.1724C8.56178 17.1294 8.43145 17.1145 8.30512 17.1243C8.10513 17.1398 7.91519 17.2172 7.76181 17.3434C7.62613 17.455 7.51905 17.6048 7.45893 17.7835C6.97634 19.2186 5.77062 19.9878 4.52406 20.4029C4.08525 20.549 3.6605 20.644 3.29471 20.7053C3.35607 20.3395 3.45098 19.9148 3.59711 19.476C4.01221 18.2294 4.78141 17.0237 6.21648 16.5411C6.39528 16.481 6.54504 16.3739 6.65665 16.2382C6.85126 16.0016 6.92988 15.678 6.84417 15.3647C6.83922 15.3466 6.83373 15.3286 6.82767 15.3106C6.74106 15.053 6.55701 14.8557 6.33037 14.7459C6.10949 14.6389 5.84816 14.615 5.59715 14.6994C5.47743 14.7397 5.36103 14.7831 5.24786 14.8294C3.22626 15.6569 2.2347 17.4173 1.75357 18.8621C1.49662 19.6337 1.36993 20.3554 1.30679 20.8818C1.27505 21.1464 1.25893 21.3654 1.25072 21.5213C1.24662 21.5993 1.24448 21.6618 1.24337 21.7066L1.243 21.7226L1.24235 21.7605L1.2422 21.7771L1.24217 21.7827L1.24217 21.7856C1.24217 22.3221 1.67703 22.7579 2.2137 22.7579L2.2155 22.7579L2.22337 22.7578L2.23956 22.7577C2.25293 22.7575 2.27096 22.7572 2.29338 22.7567C2.33821 22.7555 2.40073 22.7534 2.47876 22.7493C2.63466 22.7411 2.85361 22.725 3.11822 22.6932C3.64462 22.6301 4.36636 22.5034 5.13797 22.2464C6.58274 21.7653 8.3431 20.7738 9.17063 18.7522C9.21696 18.639 9.26037 18.5226 9.30064 18.4029C9.30716 18.3835 9.31304 18.364 9.31827 18.3446Z"></path></svg>Cách áp dụng các công thức mẫu này</p><div class="starlight-aside__content"><p>Những <strong>công thức mẫu theo từng skill</strong> bên dưới, tức Recipe 1 đến Recipe 4, có thể được áp dụng bằng cách chạy skill <code dir="auto">bmad-customize</code> rồi mô tả ý định. Skill này sẽ tự chọn đúng bề mặt, viết file override và xác minh kết quả merge. Riêng Recipe 5, tức override cấu hình trung tâm để chỉnh danh sách agent (agent roster), hiện chưa nằm trong phạm vi v1 của skill nên vẫn cần viết tay. Các recipe trong trang này là nguồn sự thật cho phần <em>nên override cái gì</em>; <code dir="auto">bmad-customize</code> phụ trách phần <em>thực hiện ra sao</em> ở lớp agent/workflow.</p></div></aside>
|
|
80
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="mô-hình-ba-lớp-để-suy-nghĩ">Mô hình ba lớp để suy nghĩ</h2><a class="sl-anchor-link" href="#mô-hình-ba-lớp-để-suy-nghĩ"><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ô hình ba lớp để suy nghĩ”</span></a></div>
|
|
81
|
+
<p>Trước khi chọn recipe, bạn cần biết override của mình sẽ rơi vào đâu:</p>
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
<table><thead><tr><th>Lớp</th><th>Nơi override sống</th><th>Phạm vi</th></tr></thead><tbody><tr><td><strong>Agent</strong> như Amelia, Mary, John</td><td>section <code dir="auto">[agent]</code> trong <code dir="auto">_bmad/custom/bmad-agent-{role}.toml</code></td><td>Đi cùng persona vào <strong>mọi workflow mà agent đó dispatch</strong></td></tr><tr><td><strong>Workflow</strong> như <code dir="auto">product-brief</code>, <code dir="auto">create-prd</code></td><td>section <code dir="auto">[workflow]</code> trong <code dir="auto">_bmad/custom/{workflow-name}.toml</code></td><td>Chỉ áp dụng cho lần chạy của workflow đó</td></tr><tr><td><strong>Cấu hình trung tâm</strong></td><td><code dir="auto">[agents.*]</code>, <code dir="auto">[core]</code>, <code dir="auto">[modules.*]</code> trong <code dir="auto">_bmad/custom/config.toml</code></td><td>Agent roster và các thiết lập lúc cài đặt cần ghim cho cả tổ chức</td></tr></tbody></table>
|
|
108
|
+
<p>Nguyên tắc ngón tay cái:</p>
|
|
109
|
+
<ul>
|
|
110
|
+
<li>Nếu quy tắc nên áp dụng ở mọi nơi một engineer làm dev work, hãy tùy chỉnh <strong>dev agent</strong></li>
|
|
111
|
+
<li>Nếu nó chỉ áp dụng khi ai đó viết product brief, hãy tùy chỉnh <strong>workflow product-brief</strong></li>
|
|
112
|
+
<li>Nếu nó thay đổi <em>ai đang ngồi trong phòng</em> như đổi thương hiệu agent, thêm custom voice hoặc ép chung một artifact path, hãy sửa <strong>cấu hình trung tâm</strong></li>
|
|
113
|
+
</ul>
|
|
114
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="recipe-1-định-hình-một-agent-trên-mọi-workflow-mà-nó-điều-phối-dispatch">Recipe 1: định hình một agent trên mọi workflow mà nó điều phối (dispatch)</h2><a class="sl-anchor-link" href="#recipe-1-định-hình-một-agent-trên-mọi-workflow-mà-nó-điều-phối-dispatch"><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 đề “Recipe 1: định hình một agent trên mọi workflow mà nó điều phối (dispatch)”</span></a></div>
|
|
115
|
+
<p><strong>Trường hợp dùng (use case):</strong> Chuẩn hóa việc dùng công cụ và tích hợp với hệ thống bên ngoài để mọi workflow được dispatch qua agent đó tự động thừa hưởng cùng hành vi. Đây là mẫu áp dụng (pattern) có sức ảnh hưởng lớn nhất.</p>
|
|
116
|
+
<p><strong>Ví dụ:</strong> Amelia, tức dev agent, luôn dùng Context7 cho tài liệu thư viện và fallback sang Linear nếu không tìm thấy story trong danh sách epic.</p>
|
|
117
|
+
<div class="expressive-code"><link rel="stylesheet" href="/_astro/ec.v4551.css"><script type="module" src="/_astro/ec.0vx5m.js"></script><figure class="frame has-title not-content"><figcaption class="header"><span class="title">_bmad/custom/bmad-agent-dev.toml</span></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[agent]</span></div></div><div class="ec-line"><div class="code">
|
|
118
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Áp dụng ở mọi lần kích hoạt. Theo Amelia đi vào dev-story, quick-dev,</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># create-story, code-review, qa-generate và mọi skill cô ấy dispatch.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">persistent_facts</span><span style="--0:#D6DEEB;--1:#403F53"> = [</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Với mọi truy vấn tài liệu thư viện như React, TypeScript, Zod, Prisma..., hãy gọi Context7 MCP tool (`mcp__context7__resolve_library_id` rồi `mcp__context7__get_library_docs`) trước khi dựa vào kiến thức trong dữ liệu huấn luyện (training data). Tài liệu cập nhật phải thắng API đã ghi nhớ.</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Khi không tìm thấy tham chiếu story trong {planning_artifacts}/epics-and-stories.md, hãy tìm trong Linear bằng `mcp__linear__search_issues` theo ID hoặc tiêu đề story trước khi yêu cầu người dùng làm rõ. Nếu Linear trả về kết quả khớp, coi đó là nguồn story có thẩm quyền.</span><span style="--0:#D9F5DD;--1:#111111">"</span><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></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="[agent]# Áp dụng ở mọi lần kích hoạt. Theo Amelia đi vào dev-story, quick-dev,# create-story, code-review, qa-generate và mọi skill cô ấy dispatch.persistent_facts = [ "Với mọi truy vấn tài liệu thư viện như React, TypeScript, Zod, Prisma..., hãy gọi Context7 MCP tool (`mcp__context7__resolve_library_id` rồi `mcp__context7__get_library_docs`) trước khi dựa vào kiến thức trong dữ liệu huấn luyện (training data). Tài liệu cập nhật phải thắng API đã ghi nhớ.", "Khi không tìm thấy tham chiếu story trong {planning_artifacts}/epics-and-stories.md, hãy tìm trong Linear bằng `mcp__linear__search_issues` theo ID hoặc tiêu đề story trước khi yêu cầu người dùng làm rõ. Nếu Linear trả về kết quả khớp, coi đó là nguồn story có thẩm quyền.",]"><div></div></button></div></figure></div>
|
|
119
|
+
<p><strong>Vì sao cách này hiệu quả:</strong> Chỉ với hai câu, bạn đã thay đổi mọi dev workflow trong tổ chức mà không lặp config từng nơi và không sửa source. Mọi engineer mới kéo repo về đều tự động thừa hưởng convention đó.</p>
|
|
120
|
+
<p><strong>File của team và file cá nhân</strong></p>
|
|
121
|
+
<ul>
|
|
122
|
+
<li><code dir="auto">bmad-agent-dev.toml</code>: commit vào git, áp dụng cho cả team</li>
|
|
123
|
+
<li><code dir="auto">bmad-agent-dev.user.toml</code>: bị gitignore, dùng cho sở thích cá nhân chồng thêm lên trên</li>
|
|
124
|
+
</ul>
|
|
125
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="recipe-2-ép-convention-của-tổ-chức-bên-trong-một-workflow-cụ-thể">Recipe 2: ép convention của tổ chức bên trong một workflow cụ thể</h2><a class="sl-anchor-link" href="#recipe-2-ép-convention-của-tổ-chức-bên-trong-một-workflow-cụ-thể"><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 đề “Recipe 2: ép convention của tổ chức bên trong một workflow cụ thể”</span></a></div>
|
|
126
|
+
<p><strong>Trường hợp dùng (use case):</strong> Định hình <em>nội dung đầu ra</em> của một workflow để nó đáp ứng yêu cầu compliance, audit hoặc hệ thống downstream.</p>
|
|
127
|
+
<p><strong>Ví dụ:</strong> mọi product brief đều phải có các trường compliance, và agent biết convention xuất bản của tổ chức.</p>
|
|
128
|
+
<div class="expressive-code"><figure class="frame has-title not-content"><figcaption class="header"><span class="title">_bmad/custom/bmad-product-brief.toml</span></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[workflow]</span></div></div><div class="ec-line"><div class="code">
|
|
129
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">persistent_facts</span><span style="--0:#D6DEEB;--1:#403F53"> = [</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Mọi brief phải có trường 'Owner', 'Target Release' và 'Security Review Status'.</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Các brief không mang tính thương mại như công cụ nội bộ hoặc dự án nghiên cứu vẫn phải có phần user value, nhưng có thể bỏ phân biệt cạnh tranh thị trường.</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">,</span></div></div><div class="ec-line"><div class="code"><span class="indent"> </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">file:{project-root}/docs/enterprise/brief-publishing-conventions.md</span><span style="--0:#D9F5DD;--1:#111111">"</span><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></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="[workflow]persistent_facts = [ "Mọi brief phải có trường 'Owner', 'Target Release' và 'Security Review Status'.", "Các brief không mang tính thương mại như công cụ nội bộ hoặc dự án nghiên cứu vẫn phải có phần user value, nhưng có thể bỏ phân biệt cạnh tranh thị trường.", "file:{project-root}/docs/enterprise/brief-publishing-conventions.md",]"><div></div></button></div></figure></div>
|
|
130
|
+
<p><strong>Điều gì xảy ra:</strong> Những fact này được nạp trong quá trình activation của workflow. Khi agent soạn brief, nó đã biết các trường bắt buộc và tài liệu convention nội bộ. Mặc định có sẵn, ví dụ <code dir="auto">file:{project-root}/**/project-context.md</code>, vẫn tiếp tục được nạp vì phần này chỉ append thêm.</p>
|
|
131
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="recipe-3-xuất-bản-kết-quả-hoàn-tất-sang-hệ-thống-ngoài">Recipe 3: xuất bản kết quả hoàn tất sang hệ thống ngoài</h2><a class="sl-anchor-link" href="#recipe-3-xuất-bản-kết-quả-hoàn-tất-sang-hệ-thống-ngoà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 đề “Recipe 3: xuất bản kết quả hoàn tất sang hệ thống ngoài”</span></a></div>
|
|
132
|
+
<p><strong>Trường hợp dùng (use case):</strong> Sau khi workflow tạo ra output chính, tự động đẩy nó sang hệ thống nguồn sự thật của doanh nghiệp như Confluence, Notion, SharePoint, rồi mở tiếp công việc follow-up trong Jira, Linear hoặc Asana.</p>
|
|
133
|
+
<p><strong>Ví dụ:</strong> brief được tự động publish lên Confluence và tùy chọn mở Jira epic.</p>
|
|
134
|
+
<div class="expressive-code"><figure class="frame has-title not-content"><figcaption class="header"><span class="title">_bmad/custom/bmad-product-brief.toml</span></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[workflow]</span></div></div><div class="ec-line"><div class="code">
|
|
135
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># Hook ở giai đoạn cuối. Scalar override sẽ thay hẳn mặc định rỗng.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">on_complete</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"""</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">Publish và đề nghị bước tiếp theo:</span></div></div><div class="ec-line"><div class="code">
|
|
136
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">1. Đọc đường dẫn file brief đã hoàn tất từ bước trước.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">2. Gọi `mcp__atlassian__confluence_create_page` với:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- space: "PRODUCT"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- parent: "Product Briefs"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- title: tiêu đề của brief</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- body: nội dung markdown của brief</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">Lưu lại URL trang được trả về.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">3. Thông báo cho người dùng: "Brief đã được publish lên Confluence: <url>".</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">4. Hỏi: "Bạn có muốn tôi mở Jira epic cho brief này ngay bây giờ không?"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">5. Nếu có, gọi `mcp__atlassian__jira_create_issue` với:</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- type: "Epic"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- project: "PROD"</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- summary: tiêu đề của brief</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">- description: tóm tắt ngắn cùng liên kết ngược về trang Confluence.</span></div></div><div class="ec-line"><div class="code"><span class="indent"><span style="--0:#ECC48D;--1:#984E4D"> </span></span><span style="--0:#ECC48D;--1:#984E4D">Sau đó báo lại epic key và URL.</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">6. Nếu không, thoát sạch.</span></div></div><div class="ec-line"><div class="code">
|
|
137
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">Nếu một trong các MCP tool bị lỗi, hãy báo lỗi, in ra đường dẫn brief</span></div></div><div class="ec-line"><div class="code"><span style="--0:#ECC48D;--1:#984E4D">và yêu cầu người dùng publish thủ công.</span></div></div><div class="ec-line"><div class="code"><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="[workflow]# Hook ở giai đoạn cuối. Scalar override sẽ thay hẳn mặc định rỗng.on_complete = """Publish và đề nghị bước tiếp theo:1. Đọc đường dẫn file brief đã hoàn tất từ bước trước.2. Gọi `mcp__atlassian__confluence_create_page` với: - space: "PRODUCT" - parent: "Product Briefs" - title: tiêu đề của brief - body: nội dung markdown của brief Lưu lại URL trang được trả về.3. Thông báo cho người dùng: "Brief đã được publish lên Confluence: <url>".4. Hỏi: "Bạn có muốn tôi mở Jira epic cho brief này ngay bây giờ không?"5. Nếu có, gọi `mcp__atlassian__jira_create_issue` với: - type: "Epic" - project: "PROD" - summary: tiêu đề của brief - description: tóm tắt ngắn cùng liên kết ngược về trang Confluence. Sau đó báo lại epic key và URL.6. Nếu không, thoát sạch.Nếu một trong các MCP tool bị lỗi, hãy báo lỗi, in ra đường dẫn briefvà yêu cầu người dùng publish thủ công.""""><div></div></button></div></figure></div>
|
|
138
|
+
<p><strong>Vì sao dùng <code dir="auto">on_complete</code> thay vì <code dir="auto">activation_steps_append</code>:</strong> <code dir="auto">on_complete</code> chỉ chạy đúng một lần ở cuối, sau khi output chính của workflow đã được ghi ra. Đó là thời điểm đúng để publish artifact. <code dir="auto">activation_steps_append</code> thì chạy mỗi lần kích hoạt, trước khi workflow làm công việc chính của nó.</p>
|
|
139
|
+
<p><strong>Điểm đánh đổi (trade-offs)</strong></p>
|
|
140
|
+
<ul>
|
|
141
|
+
<li>Publish lên Confluence là hành động không phá hủy, nên có thể luôn chạy khi hoàn tất</li>
|
|
142
|
+
<li>Tạo Jira epic là hành động hiển thị cho cả team và kích hoạt các tín hiệu sprint planning, nên nên chặn bởi một bước xác nhận từ người dùng</li>
|
|
143
|
+
<li>Nếu MCP tool lỗi, workflow phải có phương án dự phòng (fallback) rõ ràng thay vì âm thầm làm mất output</li>
|
|
144
|
+
</ul>
|
|
145
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="recipe-4-thay-output-template-bằng-template-của-riêng-bạn">Recipe 4: thay output template bằng template của riêng bạn</h2><a class="sl-anchor-link" href="#recipe-4-thay-output-template-bằng-template-của-riêng-bạ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 đề “Recipe 4: thay output template bằng template của riêng bạn”</span></a></div>
|
|
146
|
+
<p><strong>Trường hợp dùng (use case):</strong> Cấu trúc đầu ra mặc định không khớp định dạng mà tổ chức mong muốn, hoặc trong cùng một repo có nhiều tổ chức cần template riêng.</p>
|
|
147
|
+
<p><strong>Ví dụ:</strong> trỏ workflow product-brief sang template do doanh nghiệp sở hữu.</p>
|
|
148
|
+
<div class="expressive-code"><figure class="frame has-title not-content"><figcaption class="header"><span class="title">_bmad/custom/bmad-product-brief.toml</span></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[workflow]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">brief_template</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">{project-root}/docs/enterprise/brief-template.md</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="[workflow]brief_template = "{project-root}/docs/enterprise/brief-template.md""><div></div></button></div></figure></div>
|
|
149
|
+
<p><strong>Cách nó hoạt động:</strong> <code dir="auto">customize.toml</code> của workflow đi kèm <code dir="auto">brief_template = "resources/brief-template.md"</code> dưới dạng đường dẫn tương đối tới skill root. Override của bạn lại trỏ tới một file trong <code dir="auto">{project-root}</code>, nên agent sẽ đọc template của bạn trong bước tương ứng thay vì dùng template mặc định đi kèm.</p>
|
|
150
|
+
<p><strong>Mẹo viết template</strong></p>
|
|
151
|
+
<ul>
|
|
152
|
+
<li>Giữ template trong <code dir="auto">{project-root}/docs/</code> hoặc <code dir="auto">{project-root}/_bmad/custom/templates/</code> để nó được version cùng với file override</li>
|
|
153
|
+
<li>Nên dùng cùng convention cấu trúc với template mặc định, ví dụ heading và frontmatter, để agent có điểm tựa ổn định</li>
|
|
154
|
+
<li>Với repo đa tổ chức, hãy dùng <code dir="auto">.user.toml</code> để từng nhóm nhỏ có thể trỏ sang template riêng mà không cần sửa file dùng chung của team</li>
|
|
155
|
+
</ul>
|
|
156
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="recipe-5-tùy-chỉnh-danh-sách-agent-agent-roster">Recipe 5: tùy chỉnh danh sách agent (agent roster)</h2><a class="sl-anchor-link" href="#recipe-5-tùy-chỉnh-danh-sách-agent-agent-roster"><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 đề “Recipe 5: tùy chỉnh danh sách agent (agent roster)”</span></a></div>
|
|
157
|
+
<p><strong>Trường hợp dùng (use case):</strong> Thay đổi <em>ai đang ngồi trong phòng</em> cho những skill dựa trên roster như <code dir="auto">bmad-party-mode</code>, <code dir="auto">bmad-retrospective</code> và <code dir="auto">bmad-advanced-elicitation</code>, mà không cần sửa source hay fork. Dưới đây là ba biến thể thường gặp.</p>
|
|
158
|
+
<div class="sl-heading-wrapper level-h3"><h3 id="5a-rebrand-một-agent-của-bmad-trên-toàn-tổ-chức">5a. Rebrand một agent của BMad trên toàn tổ chức</h3><a class="sl-anchor-link" href="#5a-rebrand-một-agent-của-bmad-trên-toàn-tổ-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 đề “5a. Rebrand một agent của BMad trên toàn tổ chức”</span></a></div>
|
|
159
|
+
<p>Mỗi agent thật đều có một descriptor được installer tổng hợp từ <code dir="auto">module.yaml</code>. Bạn có thể override descriptor này để đổi giọng điệu và framing ở mọi roster consumer:</p>
|
|
160
|
+
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># _bmad/custom/config.toml (commit vào git, áp dụng cho mọi developer)</span></div></div><div class="ec-line"><div class="code">
|
|
161
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[agents.bmad-agent-analyst]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">description</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Mary, nhà phân tích nghiệp vụ giàu nhận thức pháp lý, pha trộn Porter với Minto nhưng sống cùng các audit trail của FDA. Cô ấy nói như một điều tra viên pháp chứng đang trình bày hồ sơ vụ án.</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="# _bmad/custom/config.toml (commit vào git, áp dụng cho mọi developer)[agents.bmad-agent-analyst]description = "Mary, nhà phân tích nghiệp vụ giàu nhận thức pháp lý, pha trộn Porter với Minto nhưng sống cùng các audit trail của FDA. Cô ấy nói như một điều tra viên pháp chứng đang trình bày hồ sơ vụ án.""><div></div></button></div></figure></div>
|
|
162
|
+
<p>Party mode sẽ spawn Mary với description mới này. Bản thân activation của analyst vẫn chạy bình thường vì hành vi của Mary sống trong <code dir="auto">customize.toml</code> theo từng skill. Override này chỉ thay đổi cách <strong>các skill bên ngoài nhìn thấy và giới thiệu cô ấy</strong>, chứ không thay đổi cách cô ấy hoạt động bên trong.</p>
|
|
163
|
+
<div class="sl-heading-wrapper level-h3"><h3 id="5b-thêm-một-agent-hư-cấu-hoặc-agent-tự-định-nghĩa">5b. Thêm một agent hư cấu hoặc agent tự định nghĩa</h3><a class="sl-anchor-link" href="#5b-thêm-một-agent-hư-cấu-hoặc-agent-tự-định-nghĩa"><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 đề “5b. Thêm một agent hư cấu hoặc agent tự định nghĩa”</span></a></div>
|
|
164
|
+
<p>Chỉ cần một descriptor đầy đủ là đủ cho các tính năng dựa trên roster, không cần thư mục skill. Điều này rất phù hợp nếu bạn muốn tăng màu sắc tính cách cho party mode hay các buổi brainstorming:</p>
|
|
165
|
+
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># _bmad/custom/config.user.toml (cá nhân, gitignore)</span></div></div><div class="ec-line"><div class="code">
|
|
166
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[agents.spock]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">team</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">startrek</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">name</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Commander Spock</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">title</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Science Officer</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">icon</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">🖖</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">description</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Logic là trên hết, cảm xúc bị nén lại. Mở đầu nhận xét bằng 'Fascinating.' Không bao giờ làm tròn lên. Là đối trọng với mọi lập luận chỉ dựa vào linh cảm.</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code">
|
|
167
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[agents.mccoy]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">team</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">startrek</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">name</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Dr. Leonard McCoy</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">title</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Chief Medical Officer</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">icon</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">⚕️</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">description</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Sự ấm áp của một bác sĩ miền quê, đi kèm với tính nóng nảy. 'Dammit Jim, I'm a doctor not a ___.' Là đối trọng đạo đức với Spock.</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="# _bmad/custom/config.user.toml (cá nhân, gitignore)[agents.spock]team = "startrek"name = "Commander Spock"title = "Science Officer"icon = "🖖"description = "Logic là trên hết, cảm xúc bị nén lại. Mở đầu nhận xét bằng 'Fascinating.' Không bao giờ làm tròn lên. Là đối trọng với mọi lập luận chỉ dựa vào linh cảm."[agents.mccoy]team = "startrek"name = "Dr. Leonard McCoy"title = "Chief Medical Officer"icon = "⚕️"description = "Sự ấm áp của một bác sĩ miền quê, đi kèm với tính nóng nảy. 'Dammit Jim, I'm a doctor not a ___.' Là đối trọng đạo đức với Spock.""><div></div></button></div></figure></div>
|
|
168
|
+
<p>Khi bạn yêu cầu party-mode “mời nhóm Star Trek” hoặc “mời phi hành đoàn Enterprise”, nó sẽ lọc theo <code dir="auto">team = "startrek"</code> và spawn Spock cùng McCoy dựa trên các descriptor đó. Các agent thật của BMad như Mary hay Amelia vẫn có thể ngồi cùng bàn nếu bạn muốn.</p>
|
|
169
|
+
<div class="sl-heading-wrapper level-h3"><h3 id="5c-ghim-thiết-lập-cài-đặt-dùng-chung-cho-cả-team">5c. Ghim thiết lập cài đặt dùng chung cho cả team</h3><a class="sl-anchor-link" href="#5c-ghim-thiết-lập-cài-đặt-dùng-chung-cho-cả-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 đề “5c. Ghim thiết lập cài đặt dùng chung cho cả team”</span></a></div>
|
|
170
|
+
<p>Installer sẽ hỏi từng developer các giá trị như đường dẫn <code dir="auto">planning_artifacts</code>. Khi tổ chức muốn có một câu trả lời thống nhất, hãy ghim nó trong cấu hình trung tâm. Khi đó, mọi câu trả lời cục bộ của từng người sẽ bị override lúc resolve:</p>
|
|
171
|
+
<div class="expressive-code"><figure class="frame has-title not-content"><figcaption class="header"><span class="title">_bmad/custom/config.toml</span></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[modules.bmm]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">planning_artifacts</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">{project-root}/shared/planning</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">implementation_artifacts</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">{project-root}/shared/implementation</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code">
|
|
172
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[core]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">document_output_language</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">English</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="[modules.bmm]planning_artifacts = "{project-root}/shared/planning"implementation_artifacts = "{project-root}/shared/implementation"[core]document_output_language = "English""><div></div></button></div></figure></div>
|
|
173
|
+
<p>Những thiết lập cá nhân như <code dir="auto">user_name</code>, <code dir="auto">communication_language</code> hoặc <code dir="auto">user_skill_level</code> nên vẫn nằm trong <code dir="auto">_bmad/config.user.toml</code> riêng của từng developer. File chung của team không nên đụng vào các giá trị đó.</p>
|
|
174
|
+
<p><strong>Vì sao việc này nằm ở cấu hình trung tâm thay vì per-agent customize.toml:</strong> File per-agent chỉ định hình cách <em>một</em> agent hành xử khi nó được kích hoạt. Cấu hình trung tâm lại định hình những gì các roster consumer <em>nhìn thấy khi quan sát cánh đồng chung</em>: agent nào tồn tại, tên gì, thuộc team nào và các thiết lập cài đặt dùng chung mà toàn repo đã thống nhất. Hai bề mặt khác nhau, hai công việc khác nhau.</p>
|
|
175
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="củng-cố-các-quy-tắc-toàn-cục-trong-file-hướng-dẫn-phiên-của-ide">Củng cố các quy tắc toàn cục trong file hướng dẫn phiên của IDE</h2><a class="sl-anchor-link" href="#củng-cố-các-quy-tắc-toàn-cục-trong-file-hướng-dẫn-phiên-của-ide"><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ủng cố các quy tắc toàn cục trong file hướng dẫn phiên của IDE”</span></a></div>
|
|
176
|
+
<p>Tùy chỉnh của BMad chỉ được nạp khi một skill được kích hoạt. Trong khi đó, nhiều công cụ IDE còn nạp một file hướng dẫn toàn cục ở <strong>đầu mọi phiên</strong>, trước cả khi skill nào chạy, như <code dir="auto">CLAUDE.md</code>, <code dir="auto">AGENTS.md</code>, <code dir="auto">.cursor/rules/</code> hay <code dir="auto">.github/copilot-instructions.md</code>. Với những quy tắc phải đúng cả khi bạn đang chat thường, hãy lặp lại phiên bản rút gọn của chúng trong file đó nữa.</p>
|
|
177
|
+
<p><strong>Khi nào nên “đánh đôi”</strong></p>
|
|
178
|
+
<ul>
|
|
179
|
+
<li>Quy tắc đó đủ quan trọng đến mức một cuộc chat thường, chưa kích hoạt BMad skill nào, cũng vẫn phải tuân theo</li>
|
|
180
|
+
<li>Bạn muốn áp dụng kiểu “gia cố hai lớp” (belt-and-suspenders) vì hành vi mặc định từ dữ liệu huấn luyện (training data) có thể kéo model đi chệch</li>
|
|
181
|
+
<li>Quy tắc đủ ngắn để lặp lại mà không làm file hướng dẫn đầu phiên trở nên phình to</li>
|
|
182
|
+
</ul>
|
|
183
|
+
<p><strong>Ví dụ:</strong> một dòng trong <code dir="auto">CLAUDE.md</code> của repo để củng cố quy tắc ở Recipe 1.</p>
|
|
184
|
+
<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:#919F9F;--1:#5F636F"><!-- Mọi lần đọc tài liệu thư viện phải đi qua Context7 MCP tool</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F">(`mcp__context7__resolve_library_id` rồi `mcp__context7__get_library_docs`)</span></div></div><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F">trước khi dựa vào kiến thức từ dữ liệu huấn luyện (training data). --></span></div></div></code></pre><div class="copy"><div aria-live="polite"></div><button title="Copy to clipboard" data-copied="Copied!" data-code="<!-- Mọi lần đọc tài liệu thư viện phải đi qua Context7 MCP tool(`mcp__context7__resolve_library_id` rồi `mcp__context7__get_library_docs`)trước khi dựa vào kiến thức từ dữ liệu huấn luyện (training data). -->"><div></div></button></div></figure></div>
|
|
185
|
+
<p>Chỉ một câu, nhưng được nạp ở mọi phiên. Nó kết hợp với cấu hình <code dir="auto">bmad-agent-dev.toml</code> để quy tắc có hiệu lực cả trong workflow của Amelia lẫn trong các cuộc trò chuyện ad-hoc với assistant. Mỗi lớp giữ đúng phạm vi của mình:</p>
|
|
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
|
+
<table><thead><tr><th>Lớp</th><th>Phạm vi</th><th>Dùng cho</th></tr></thead><tbody><tr><td>File hướng dẫn phiên của IDE như <code dir="auto">CLAUDE.md</code> hoặc <code dir="auto">AGENTS.md</code></td><td>Mọi phiên, trước khi bất kỳ skill nào chạy</td><td>Quy tắc ngắn, phổ quát, phải sống cả ngoài BMad</td></tr><tr><td>Tùy chỉnh agent của BMad</td><td>Mọi workflow mà agent đó dispatch</td><td>Hành vi riêng theo persona/agent</td></tr><tr><td>Tùy chỉnh workflow của BMad</td><td>Một lần chạy workflow</td><td>Dạng đầu ra, hook publish, template và logic riêng của workflow</td></tr><tr><td>Cấu hình trung tâm của BMad</td><td>Agent roster và thiết lập cài đặt dùng chung</td><td>Ai đang ngồi trong phòng và đường dẫn nào cả team dùng chung</td></tr></tbody></table>
|
|
217
|
+
<p>Hãy giữ file hướng dẫn của IDE <strong>ngắn gọn</strong>. Một tá dòng được chọn kỹ sẽ hiệu quả hơn một danh sách dài lê thê. Model phải đọc file đó ở mọi lượt, và càng nhiều nhiễu thì càng ít tín hiệu.</p>
|
|
218
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="kết-hợp-các-recipe">Kết hợp các recipe</h2><a class="sl-anchor-link" href="#kết-hợp-các-recipe"><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 đề “Kết hợp các recipe”</span></a></div>
|
|
219
|
+
<p>Cả năm recipe này có thể kết hợp song song. Một cấu hình doanh nghiệp thực tế cho <code dir="auto">bmad-product-brief</code> hoàn toàn có thể đặt <code dir="auto">persistent_facts</code> theo Recipe 2, <code dir="auto">on_complete</code> theo Recipe 3 và <code dir="auto">brief_template</code> theo Recipe 4 trong cùng một file. Quy tắc ở cấp agent theo Recipe 1 sẽ nằm trong file của agent tương ứng, còn cấu hình trung tâm theo Recipe 5 thì ghim roster và thiết lập chung. Tất cả cùng hoạt động đồng thời.</p>
|
|
220
|
+
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># _bmad/custom/bmad-product-brief.toml (cấp workflow)</span></div></div><div class="ec-line"><div class="code">
|
|
221
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[workflow]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">persistent_facts</span><span style="--0:#D6DEEB;--1:#403F53"> = [</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">...</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#D6DEEB;--1:#403F53">]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">brief_template</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">{project-root}/docs/enterprise/brief-template.md</span><span style="--0:#D9F5DD;--1:#111111">"</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">on_complete</span><span style="--0:#D6DEEB;--1:#403F53"> = </span><span style="--0:#D9F5DD;--1:#111111">"""</span><span style="--0:#ECC48D;--1:#984E4D"> ... </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="# _bmad/custom/bmad-product-brief.toml (cấp workflow)[workflow]persistent_facts = ["..."]brief_template = "{project-root}/docs/enterprise/brief-template.md"on_complete = """ ... """"><div></div></button></div></figure></div>
|
|
222
|
+
<div class="expressive-code"><figure class="frame not-content"><figcaption class="header"></figcaption><pre data-language="toml"><code><div class="ec-line"><div class="code"><span style="--0:#919F9F;--1:#5F636F"># _bmad/custom/bmad-agent-analyst.toml (cấp agent, Mary sẽ dispatch product-brief)</span></div></div><div class="ec-line"><div class="code">
|
|
223
|
+
</div></div><div class="ec-line"><div class="code"><span style="--0:#D6DEEB;--1:#403F53">[agent]</span></div></div><div class="ec-line"><div class="code"><span style="--0:#C5E478;--1:#3B61B0">persistent_facts</span><span style="--0:#D6DEEB;--1:#403F53"> = [</span><span style="--0:#D9F5DD;--1:#111111">"</span><span style="--0:#ECC48D;--1:#984E4D">Luôn thêm mục 'Regulatory Review' khi domain liên quan tới healthcare, finance hoặc dữ liệu trẻ em.</span><span style="--0:#D9F5DD;--1:#111111">"</span><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="# _bmad/custom/bmad-agent-analyst.toml (cấp agent, Mary sẽ dispatch product-brief)[agent]persistent_facts = ["Luôn thêm mục 'Regulatory Review' khi domain liên quan tới healthcare, finance hoặc dữ liệu trẻ em."]"><div></div></button></div></figure></div>
|
|
224
|
+
<p>Kết quả là Mary nạp quy tắc review pháp lý ngay ở lúc kích hoạt persona. Khi người dùng chọn menu item product-brief, workflow sẽ nạp các convention riêng của nó chồng lên, ghi ra template của doanh nghiệp và publish lên Confluence khi hoàn tất. Mỗi lớp đều đóng góp một phần và không lớp nào đòi hỏi sửa source của BMad.</p>
|
|
225
|
+
<div class="sl-heading-wrapper level-h2"><h2 id="khắc-phục-sự-cố">Khắc phục sự cố</h2><a class="sl-anchor-link" href="#khắc-phục-sự-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 đề “Khắc phục sự cố”</span></a></div>
|
|
226
|
+
<p><strong>Override không có tác dụng?</strong> Hãy kiểm tra file có nằm trong <code dir="auto">_bmad/custom/</code> và dùng đúng tên thư mục skill không, ví dụ <code dir="auto">bmad-agent-dev.toml</code>, chứ không phải <code dir="auto">bmad-dev.toml</code>. Nếu cần, xem lại <a href="/vi-vn/how-to/customize-bmad/">Cách tùy chỉnh BMad</a>.</p>
|
|
227
|
+
<p><strong>Không chắc tên MCP tool?</strong> Hãy dùng đúng tên mà MCP server hiện tại expose trong phiên của bạn. Nếu chưa chắc, hãy yêu cầu Claude Code liệt kê các MCP tool đang có. Những tên hardcode trong <code dir="auto">persistent_facts</code> hay <code dir="auto">on_complete</code> sẽ không chạy nếu MCP server chưa được kết nối.</p>
|
|
228
|
+
<p><strong>Mẫu áp dụng (pattern) trong ví dụ không khớp setup của tôi?</strong> Các recipe trên chỉ là ví dụ mẫu. Cơ chế bên dưới, gồm merge ba lớp, quy tắc cấu trúc và mô hình agent-span-workflow, vẫn hỗ trợ nhiều pattern khác. Hãy kết hợp chúng theo nhu cầu thực tế của bạn.</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>
|