bmad-method 6.10.1-next.8 → 6.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/.claude-plugin/marketplace.json +30 -57
  2. package/README.md +49 -82
  3. package/README_CN.md +10 -10
  4. package/README_VN.md +11 -11
  5. package/bmad-modules.yaml +43 -39
  6. package/package.json +7 -3
  7. package/removals.txt +17 -0
  8. package/src/bmm-skills/{1-analysis → agents}/bmad-agent-analyst/SKILL.md +1 -1
  9. package/src/bmm-skills/{1-analysis → agents}/bmad-agent-analyst/customize.toml +22 -7
  10. package/src/bmm-skills/{3-solutioning → agents}/bmad-agent-architect/SKILL.md +1 -1
  11. package/src/bmm-skills/{3-solutioning → agents}/bmad-agent-architect/customize.toml +2 -2
  12. package/src/bmm-skills/{4-implementation → agents}/bmad-agent-dev/SKILL.md +1 -1
  13. package/src/bmm-skills/{4-implementation → agents}/bmad-agent-dev/customize.toml +7 -14
  14. package/src/bmm-skills/{2-plan-workflows → agents}/bmad-agent-pm/SKILL.md +1 -1
  15. package/src/bmm-skills/{2-plan-workflows → agents}/bmad-agent-pm/customize.toml +2 -2
  16. package/src/bmm-skills/{2-plan-workflows → agents}/bmad-agent-ux-designer/SKILL.md +1 -1
  17. package/src/bmm-skills/module-help.csv +14 -26
  18. package/src/bmm-skills/module.yaml +5 -15
  19. package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/SKILL.md +3 -3
  20. package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/customize.toml +4 -2
  21. package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/SKILL.md +1 -1
  22. package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/steps/step-04-final-validation.md +1 -1
  23. package/src/bmm-skills/plan/bmad-generate-project-context/SKILL.md +10 -0
  24. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/SKILL.md +3 -1
  25. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/assets/prd-template.md +1 -1
  26. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/customize.toml +5 -3
  27. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/references/validate.md +3 -3
  28. package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/SKILL.md +1 -1
  29. package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/bmad-manifest.json +1 -1
  30. package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/references/verdict.md +1 -1
  31. package/src/bmm-skills/{1-analysis → plan}/bmad-product-brief/SKILL.md +1 -1
  32. package/src/bmm-skills/{1-analysis → plan}/bmad-product-brief/customize.toml +5 -3
  33. package/src/bmm-skills/plan/bmad-project-context/SKILL.md +110 -0
  34. package/src/bmm-skills/plan/bmad-project-context/customize.toml +24 -0
  35. package/src/bmm-skills/plan/bmad-project-context/references/best-practices.md +65 -0
  36. package/src/bmm-skills/plan/bmad-project-context/references/template.md +55 -0
  37. package/src/{core-skills → bmm-skills/plan}/bmad-spec/SKILL.md +18 -3
  38. package/src/{core-skills → bmm-skills/plan}/bmad-spec/assets/spec-template.md +1 -1
  39. package/src/bmm-skills/plan/bmad-spec/assets/stories-schema.md +44 -0
  40. package/src/{core-skills → bmm-skills/plan}/bmad-spec/customize.toml +3 -4
  41. package/src/bmm-skills/plan/bmad-sprint-planning/SKILL.md +62 -0
  42. package/src/bmm-skills/plan/bmad-sprint-planning/references/fix-sprint-status.md +30 -0
  43. package/src/bmm-skills/plan/bmad-sprint-planning/references/generate-tracking.md +25 -0
  44. package/src/bmm-skills/plan/bmad-sprint-planning/references/readiness-gate.md +20 -0
  45. package/src/bmm-skills/plan/bmad-sprint-planning/references/status-view.md +14 -0
  46. package/src/bmm-skills/plan/bmad-sprint-planning/references/validate.md +10 -0
  47. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/__pycache__/sprint_plan.cpython-311.pyc +0 -0
  48. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/sprint_plan.py +697 -0
  49. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-311-pytest-9.1.1.pyc +0 -0
  50. package/src/bmm-skills/plan/bmad-sprint-planning/scripts/tests/test_sprint_plan.py +524 -0
  51. package/src/bmm-skills/{4-implementation → plan}/bmad-sprint-planning/sprint-status-template.yaml +9 -7
  52. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/SKILL.md +1 -1
  53. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/color-themes.md +1 -1
  54. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/customize.toml +4 -2
  55. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/references/creative-tools.md +1 -1
  56. package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/references/validate.md +1 -1
  57. package/src/bmm-skills/ship/bmad-build/SKILL.md +13 -0
  58. package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/compile-epic-context.md +1 -1
  59. package/src/bmm-skills/ship/bmad-build/customize.toml +164 -0
  60. package/src/bmm-skills/ship/bmad-build/references/deletion-check.md +14 -0
  61. package/src/bmm-skills/ship/bmad-build/review-prompts/edge-case-hunter.md +88 -0
  62. package/src/bmm-skills/ship/bmad-build/review-prompts/verification-gap.md +113 -0
  63. package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/step-01-clarify-and-route.md +20 -19
  64. package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/step-02-plan.md +5 -9
  65. package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/step-03-implement.md +10 -6
  66. package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/step-04-review.md +9 -15
  67. package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/step-05-present.md +10 -13
  68. package/src/bmm-skills/ship/bmad-build/step-oneshot.md +77 -0
  69. package/src/bmm-skills/ship/bmad-build/sync-sprint-status.md +19 -0
  70. package/src/bmm-skills/ship/bmad-build/workflow.md +84 -0
  71. package/src/bmm-skills/ship/bmad-build-auto/SKILL.md +13 -0
  72. package/src/bmm-skills/{4-implementation/bmad-dev-auto → ship/bmad-build-auto}/compile-epic-context.md +1 -1
  73. package/src/bmm-skills/ship/bmad-build-auto/customize.toml +121 -0
  74. package/src/{core-skills/bmad-review-edge-case-hunter/SKILL.md → bmm-skills/ship/bmad-build-auto/review-prompts/edge-case-hunter.md} +21 -6
  75. package/src/{core-skills/bmad-review-verification-gap/SKILL.md → bmm-skills/ship/bmad-build-auto/review-prompts/verification-gap.md} +15 -8
  76. package/src/bmm-skills/{4-implementation/bmad-dev-auto → ship/bmad-build-auto}/spec-template.md +2 -1
  77. package/src/bmm-skills/ship/bmad-build-auto/step-01-clarify-and-route.md +83 -0
  78. package/src/bmm-skills/ship/bmad-build-auto/step-02-plan.md +27 -0
  79. package/src/bmm-skills/{4-implementation/bmad-dev-auto → ship/bmad-build-auto}/step-03-implement.md +6 -4
  80. package/src/bmm-skills/{4-implementation/bmad-dev-auto → ship/bmad-build-auto}/step-04-review.md +26 -25
  81. package/src/bmm-skills/ship/bmad-build-auto/workflow.md +104 -0
  82. package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/SKILL.md +1 -1
  83. package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/step-05-wrapup.md +1 -1
  84. package/src/bmm-skills/{4-implementation → ship}/bmad-code-review/SKILL.md +1 -1
  85. package/src/bmm-skills/{4-implementation → ship}/bmad-code-review/customize.toml +37 -17
  86. package/src/bmm-skills/ship/bmad-code-review/references/deletion-check.md +14 -0
  87. package/src/bmm-skills/ship/bmad-code-review/review-prompts/edge-case-hunter.md +88 -0
  88. package/src/bmm-skills/ship/bmad-code-review/review-prompts/verification-gap.md +113 -0
  89. package/src/bmm-skills/{4-implementation → ship}/bmad-code-review/steps/step-01-gather-context.md +7 -4
  90. package/src/bmm-skills/{4-implementation → ship}/bmad-code-review/steps/step-02-review.md +1 -1
  91. package/src/bmm-skills/{4-implementation → ship}/bmad-code-review/steps/step-04-present.md +1 -1
  92. package/src/bmm-skills/{4-implementation → ship}/bmad-correct-course/SKILL.md +7 -8
  93. package/src/bmm-skills/{4-implementation → ship}/bmad-qa-generate-e2e-tests/SKILL.md +2 -2
  94. package/src/bmm-skills/ship/bmad-retrospective/SKILL.md +94 -0
  95. package/src/bmm-skills/{4-implementation → ship}/bmad-retrospective/customize.toml +2 -2
  96. package/src/bmm-skills/ship/bmad-retrospective/references/acceptance-verdict.md +55 -0
  97. package/src/bmm-skills/ship/bmad-retrospective/references/aggregate-views.md +17 -0
  98. package/src/bmm-skills/ship/bmad-retrospective/references/evidence-gathering.md +30 -0
  99. package/src/bmm-skills/ship/bmad-retrospective/references/retro-document.md +84 -0
  100. package/src/bmm-skills/ship/bmad-retrospective/references/team-discussion.md +22 -0
  101. package/src/bmm-skills/ship/bmad-retrospective/scripts/__pycache__/sprint_status.cpython-311.pyc +0 -0
  102. package/src/bmm-skills/ship/bmad-retrospective/scripts/git_evidence.py +304 -0
  103. package/src/bmm-skills/ship/bmad-retrospective/scripts/sprint_status.py +746 -0
  104. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-311-pytest-9.1.1.pyc +0 -0
  105. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-311-pytest-9.1.1.pyc +0 -0
  106. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/fixtures/sprint-status-template.yaml +71 -0
  107. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/test_git_evidence.py +750 -0
  108. package/src/bmm-skills/ship/bmad-retrospective/scripts/tests/test_sprint_status.py +1579 -0
  109. package/src/bmm-skills/v6-shims/README.md +28 -0
  110. package/src/bmm-skills/{3-solutioning → v6-shims}/bmad-create-architecture/SKILL.md +2 -2
  111. package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-create-prd/SKILL.md +4 -4
  112. package/src/bmm-skills/{4-implementation → v6-shims}/bmad-create-story/SKILL.md +5 -3
  113. package/src/bmm-skills/v6-shims/bmad-dev-auto/SKILL.md +19 -0
  114. package/src/bmm-skills/{4-implementation → v6-shims}/bmad-dev-story/SKILL.md +5 -3
  115. package/src/bmm-skills/{4-implementation → v6-shims}/bmad-dev-story/customize.toml +3 -0
  116. package/src/bmm-skills/v6-shims/bmad-document-project/SKILL.md +14 -0
  117. package/src/bmm-skills/v6-shims/bmad-domain-research/SKILL.md +14 -0
  118. package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-edit-prd/SKILL.md +4 -4
  119. package/src/bmm-skills/v6-shims/bmad-market-research/SKILL.md +14 -0
  120. package/src/bmm-skills/v6-shims/bmad-quick-dev/SKILL.md +19 -0
  121. package/src/bmm-skills/v6-shims/bmad-sprint-status/SKILL.md +26 -0
  122. package/src/bmm-skills/v6-shims/bmad-technical-research/SKILL.md +14 -0
  123. package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-validate-prd/SKILL.md +4 -4
  124. package/src/core-skills/bmad-advanced-elicitation/SKILL.md +26 -103
  125. package/src/core-skills/bmad-advanced-elicitation/customize.toml +54 -0
  126. package/src/core-skills/bmad-advanced-elicitation/scripts/pick_methods.py +233 -0
  127. package/src/core-skills/bmad-advanced-elicitation/scripts/tests/test_pick_methods.py +228 -0
  128. package/src/core-skills/bmad-brainstorming/SKILL.md +3 -3
  129. package/src/core-skills/bmad-brainstorming/assets/brain-selector.html +2 -0
  130. package/src/core-skills/bmad-brainstorming/references/mode-autonomous.md +1 -1
  131. package/src/core-skills/bmad-brainstorming/scripts/brain.py +36 -6
  132. package/src/core-skills/bmad-brainstorming/scripts/tests/test_brain.py +22 -0
  133. package/src/core-skills/bmad-customize/SKILL.md +2 -2
  134. package/src/core-skills/bmad-deep-recon/SKILL.md +82 -0
  135. package/src/core-skills/bmad-deep-recon/assets/research.template.md +18 -0
  136. package/src/core-skills/bmad-deep-recon/customize.toml +212 -0
  137. package/src/core-skills/bmad-deep-recon/references/draft.md +8 -0
  138. package/src/core-skills/bmad-deep-recon/references/finalize.md +11 -0
  139. package/src/core-skills/bmad-deep-recon/references/html-briefing.md +16 -0
  140. package/src/core-skills/bmad-deep-recon/references/lifecycle.md +11 -0
  141. package/src/core-skills/bmad-deep-recon/references/process.md +10 -0
  142. package/src/core-skills/bmad-deep-recon/references/run.md +73 -0
  143. package/src/core-skills/bmad-deep-recon/references/selection.md +13 -0
  144. package/src/core-skills/bmad-deep-recon/references/synthesis.md +16 -0
  145. package/src/core-skills/bmad-deep-recon/references/verification.md +29 -0
  146. package/src/core-skills/bmad-deep-recon/scripts/recon_kit.py +322 -0
  147. package/src/core-skills/bmad-deep-recon/scripts/tests/test_recon_kit.py +144 -0
  148. package/src/core-skills/bmad-deep-recon/types/academic-lit.md +19 -0
  149. package/src/core-skills/bmad-deep-recon/types/competitive.md +19 -0
  150. package/src/core-skills/bmad-deep-recon/types/domain.md +19 -0
  151. package/src/core-skills/bmad-deep-recon/types/market.md +19 -0
  152. package/src/core-skills/bmad-deep-recon/types/technical.md +19 -0
  153. package/src/core-skills/bmad-deep-recon/types/user-voice.md +19 -0
  154. package/src/core-skills/bmad-forge-idea/SKILL.md +2 -2
  155. package/src/core-skills/bmad-forge-idea/scripts/resolve_personas.py +7 -2
  156. package/src/core-skills/bmad-help/SKILL.md +3 -3
  157. package/src/core-skills/bmad-party-mode/SKILL.md +2 -2
  158. package/src/core-skills/bmad-party-mode/customize.toml +1 -1
  159. package/src/core-skills/bmad-party-mode/scripts/resolve_party.py +14 -4
  160. package/src/core-skills/bmad-review/SKILL.md +49 -0
  161. package/src/core-skills/bmad-review/customize.toml +141 -0
  162. package/src/core-skills/bmad-review/references/editorial-common.md +56 -0
  163. package/src/core-skills/bmad-review/references/lens-adversarial.md +19 -0
  164. package/src/core-skills/bmad-review/references/lens-edge-case-hunter.md +54 -0
  165. package/src/core-skills/bmad-review/references/lens-prose.md +7 -0
  166. package/src/core-skills/bmad-review/references/lens-structure.md +9 -0
  167. package/src/core-skills/bmad-review/references/lens-verification-gap.md +92 -0
  168. package/src/core-skills/bmad-review/references/structure-models.md +44 -0
  169. package/src/core-skills/bmad-review/scripts/tests/test_word_metrics.py +62 -0
  170. package/src/core-skills/bmad-review/scripts/word_metrics.py +102 -0
  171. package/src/core-skills/module-help.csv +4 -8
  172. package/src/core-skills/module.yaml +5 -0
  173. package/src/core-skills/v6-shims/README.md +25 -0
  174. package/src/core-skills/v6-shims/bmad-editorial-review/SKILL.md +6 -0
  175. package/src/core-skills/v6-shims/bmad-editorial-review/customize.toml +31 -0
  176. package/src/core-skills/v6-shims/bmad-editorial-review-prose/SKILL.md +6 -0
  177. package/src/core-skills/v6-shims/bmad-editorial-review-structure/SKILL.md +6 -0
  178. package/src/core-skills/v6-shims/bmad-review-adversarial-general/SKILL.md +6 -0
  179. package/src/core-skills/v6-shims/bmad-review-edge-case-hunter/SKILL.md +6 -0
  180. package/src/core-skills/v6-shims/bmad-review-verification-gap/SKILL.md +6 -0
  181. package/src/scripts/__pycache__/config_utils.cpython-311.pyc +0 -0
  182. package/src/scripts/config_utils.py +119 -0
  183. package/src/scripts/render_skill.py +401 -0
  184. package/src/scripts/resolve_config.py +32 -136
  185. package/src/scripts/resolve_customization.py +43 -184
  186. package/src/scripts/tests/__pycache__/test_config_utils.cpython-311.pyc +0 -0
  187. package/src/scripts/tests/__pycache__/test_resolve_config.cpython-311.pyc +0 -0
  188. package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-311.pyc +0 -0
  189. package/src/scripts/tests/test_config_utils.py +85 -0
  190. package/src/scripts/tests/test_resolve_config.py +89 -0
  191. package/src/scripts/tests/test_resolve_customization.py +27 -0
  192. package/tools/installer/cli-utils.js +6 -2
  193. package/tools/installer/core/installer.js +31 -9
  194. package/tools/installer/core/manifest-generator.js +1 -1
  195. package/tools/installer/core/uv-check.js +122 -24
  196. package/tools/installer/ide/_config-driven.js +1 -1
  197. package/tools/installer/ide/platform-codes.yaml +7 -0
  198. package/tools/installer/ide/shared/path-utils.js +2 -2
  199. package/tools/installer/install-messages.yaml +3 -2
  200. package/tools/installer/modules/custom-module-manager.js +12 -6
  201. package/tools/installer/modules/external-manager.js +12 -8
  202. package/tools/installer/modules/git-env.js +47 -0
  203. package/tools/installer/modules/official-modules.js +1 -1
  204. package/tools/installer/prompts.js +41 -102
  205. package/tools/installer/ui.js +99 -22
  206. package/tools/skill-validator.md +11 -1
  207. package/tools/validate-published-implementation-model.mjs +68 -0
  208. package/tools/validate-skills.js +33 -0
  209. package/web-bundles/prd-coach/prd-template.md +1 -1
  210. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/SKILL.md +0 -76
  211. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/customize.toml +0 -81
  212. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/explain-concept.md +0 -20
  213. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/mermaid-gen.md +0 -20
  214. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/validate-doc.md +0 -19
  215. package/src/bmm-skills/1-analysis/bmad-agent-tech-writer/write-document.md +0 -20
  216. package/src/bmm-skills/1-analysis/bmad-document-project/SKILL.md +0 -62
  217. package/src/bmm-skills/1-analysis/bmad-document-project/checklist.md +0 -245
  218. package/src/bmm-skills/1-analysis/bmad-document-project/customize.toml +0 -41
  219. package/src/bmm-skills/1-analysis/bmad-document-project/documentation-requirements.csv +0 -12
  220. package/src/bmm-skills/1-analysis/bmad-document-project/instructions.md +0 -128
  221. package/src/bmm-skills/1-analysis/bmad-document-project/templates/deep-dive-template.md +0 -345
  222. package/src/bmm-skills/1-analysis/bmad-document-project/templates/index-template.md +0 -169
  223. package/src/bmm-skills/1-analysis/bmad-document-project/templates/project-overview-template.md +0 -103
  224. package/src/bmm-skills/1-analysis/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  225. package/src/bmm-skills/1-analysis/bmad-document-project/templates/source-tree-template.md +0 -135
  226. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-instructions.md +0 -300
  227. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  228. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-instructions.md +0 -1108
  229. package/src/bmm-skills/1-analysis/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  230. package/src/bmm-skills/1-analysis/research/bmad-domain-research/SKILL.md +0 -96
  231. package/src/bmm-skills/1-analysis/research/bmad-domain-research/customize.toml +0 -41
  232. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  233. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  234. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  235. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  236. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  237. package/src/bmm-skills/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -450
  238. package/src/bmm-skills/1-analysis/research/bmad-domain-research/research.template.md +0 -29
  239. package/src/bmm-skills/1-analysis/research/bmad-market-research/SKILL.md +0 -96
  240. package/src/bmm-skills/1-analysis/research/bmad-market-research/customize.toml +0 -41
  241. package/src/bmm-skills/1-analysis/research/bmad-market-research/research.template.md +0 -29
  242. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-01-init.md +0 -184
  243. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  244. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  245. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  246. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  247. package/src/bmm-skills/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +0 -484
  248. package/src/bmm-skills/1-analysis/research/bmad-technical-research/SKILL.md +0 -96
  249. package/src/bmm-skills/1-analysis/research/bmad-technical-research/customize.toml +0 -41
  250. package/src/bmm-skills/1-analysis/research/bmad-technical-research/research.template.md +0 -29
  251. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  252. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  253. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  254. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  255. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  256. package/src/bmm-skills/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -493
  257. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/SKILL.md +0 -91
  258. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/customize.toml +0 -41
  259. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
  260. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
  261. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
  262. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
  263. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
  264. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -132
  265. package/src/bmm-skills/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
  266. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/SKILL.md +0 -81
  267. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/customize.toml +0 -41
  268. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/project-context-template.md +0 -21
  269. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  270. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  271. package/src/bmm-skills/3-solutioning/bmad-generate-project-context/steps/step-03-complete.md +0 -284
  272. package/src/bmm-skills/4-implementation/bmad-dev-auto/SKILL.md +0 -103
  273. package/src/bmm-skills/4-implementation/bmad-dev-auto/customize.toml +0 -108
  274. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md +0 -66
  275. package/src/bmm-skills/4-implementation/bmad-dev-auto/step-02-plan.md +0 -31
  276. package/src/bmm-skills/4-implementation/bmad-quick-dev/SKILL.md +0 -115
  277. package/src/bmm-skills/4-implementation/bmad-quick-dev/customize.toml +0 -83
  278. package/src/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md +0 -82
  279. package/src/bmm-skills/4-implementation/bmad-quick-dev/sync-sprint-status.md +0 -19
  280. package/src/bmm-skills/4-implementation/bmad-retrospective/SKILL.md +0 -1527
  281. package/src/bmm-skills/4-implementation/bmad-sprint-planning/SKILL.md +0 -319
  282. package/src/bmm-skills/4-implementation/bmad-sprint-planning/checklist.md +0 -34
  283. package/src/bmm-skills/4-implementation/bmad-sprint-status/SKILL.md +0 -311
  284. package/src/core-skills/bmad-brainstorming/analysis/catalog-analysis.md +0 -239
  285. package/src/core-skills/bmad-brainstorming/analysis/method-matrix.csv +0 -109
  286. package/src/core-skills/bmad-editorial-review-prose/SKILL.md +0 -86
  287. package/src/core-skills/bmad-editorial-review-structure/SKILL.md +0 -179
  288. package/src/core-skills/bmad-index-docs/SKILL.md +0 -66
  289. package/src/core-skills/bmad-review-adversarial-general/SKILL.md +0 -37
  290. package/src/core-skills/bmad-shard-doc/SKILL.md +0 -105
  291. /package/src/bmm-skills/{2-plan-workflows → agents}/bmad-agent-ux-designer/customize.toml +0 -0
  292. /package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/assets/spine-template.md +0 -0
  293. /package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/references/headless.md +0 -0
  294. /package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/references/reviewer-gate.md +0 -0
  295. /package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/scripts/lint_spine.py +0 -0
  296. /package/src/bmm-skills/{3-solutioning → plan}/bmad-architecture/scripts/tests/test_lint_spine.py +0 -0
  297. /package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/customize.toml +0 -0
  298. /package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -0
  299. /package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -0
  300. /package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -0
  301. /package/src/bmm-skills/{3-solutioning → plan}/bmad-create-epics-and-stories/templates/epics-template.md +0 -0
  302. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/assets/headless-schemas.md +0 -0
  303. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/assets/prd-validation-checklist.md +0 -0
  304. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/assets/validation-report-template.html +0 -0
  305. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-prd/references/headless.md +0 -0
  306. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/agents/artifact-analyzer.md +0 -0
  307. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/agents/web-researcher.md +0 -0
  308. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/assets/prfaq-template.md +0 -0
  309. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/customize.toml +0 -0
  310. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/references/customer-faq.md +0 -0
  311. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/references/internal-faq.md +0 -0
  312. /package/src/bmm-skills/{1-analysis → plan}/bmad-prfaq/references/press-release.md +0 -0
  313. /package/src/bmm-skills/{1-analysis → plan}/bmad-product-brief/assets/brief-template.md +0 -0
  314. /package/src/{core-skills → bmm-skills/plan}/bmad-spec/assets/headless-schemas.md +0 -0
  315. /package/src/bmm-skills/{4-implementation → plan}/bmad-sprint-planning/customize.toml +0 -0
  316. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/design-directions.md +0 -0
  317. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/design-example-editorial.md +0 -0
  318. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/design-example-mobile.md +0 -0
  319. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/design-example-shadcn.md +0 -0
  320. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/excalidraw-wireframe.md +0 -0
  321. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/experience-example-mobile.md +0 -0
  322. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/experience-example-shadcn.md +0 -0
  323. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/headless-schemas.md +0 -0
  324. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/key-screens.md +0 -0
  325. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/assets/validation-report-template.html +0 -0
  326. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/references/design-md-spec.md +0 -0
  327. /package/src/bmm-skills/{2-plan-workflows → plan}/bmad-ux/references/headless.md +0 -0
  328. /package/src/bmm-skills/{4-implementation/bmad-quick-dev → ship/bmad-build}/spec-template.md +0 -0
  329. /package/src/{core-skills/bmad-review-edge-case-hunter → bmm-skills/ship/bmad-build-auto}/references/deletion-check.md +0 -0
  330. /package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/customize.toml +0 -0
  331. /package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/generate-trail.md +0 -0
  332. /package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/step-01-orientation.md +0 -0
  333. /package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/step-02-walkthrough.md +0 -0
  334. /package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/step-03-detail-pass.md +0 -0
  335. /package/src/bmm-skills/{4-implementation → ship}/bmad-checkpoint-preview/step-04-testing.md +0 -0
  336. /package/src/bmm-skills/{4-implementation → ship}/bmad-code-review/steps/step-03-triage.md +0 -0
  337. /package/src/bmm-skills/{4-implementation → ship}/bmad-correct-course/checklist.md +0 -0
  338. /package/src/bmm-skills/{4-implementation → ship}/bmad-correct-course/customize.toml +0 -0
  339. /package/src/bmm-skills/{4-implementation → ship}/bmad-qa-generate-e2e-tests/checklist.md +0 -0
  340. /package/src/bmm-skills/{4-implementation → ship}/bmad-qa-generate-e2e-tests/customize.toml +0 -0
  341. /package/src/bmm-skills/{3-solutioning → v6-shims}/bmad-create-architecture/customize.toml +0 -0
  342. /package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-create-prd/customize.toml +0 -0
  343. /package/src/bmm-skills/{4-implementation → v6-shims}/bmad-create-story/checklist.md +0 -0
  344. /package/src/bmm-skills/{4-implementation → v6-shims}/bmad-create-story/customize.toml +0 -0
  345. /package/src/bmm-skills/{4-implementation → v6-shims}/bmad-create-story/discover-inputs.md +0 -0
  346. /package/src/bmm-skills/{4-implementation → v6-shims}/bmad-create-story/template.md +0 -0
  347. /package/src/bmm-skills/{4-implementation → v6-shims}/bmad-dev-story/checklist.md +0 -0
  348. /package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-edit-prd/customize.toml +0 -0
  349. /package/src/bmm-skills/{4-implementation → v6-shims}/bmad-sprint-status/customize.toml +0 -0
  350. /package/src/bmm-skills/{2-plan-workflows → v6-shims}/bmad-validate-prd/customize.toml +0 -0
  351. /package/src/core-skills/bmad-advanced-elicitation/{methods.csv → assets/methods.csv} +0 -0
  352. /package/src/core-skills/bmad-party-mode/scripts/tests/{test-resolve_party.py → test_resolve_party.py} +0 -0
@@ -1,12 +1,8 @@
1
- ---
2
- deferred_work_file: '{implementation_artifacts}/deferred-work.md'
3
- ---
4
-
5
1
  # Step 4: Review
6
2
 
7
3
  ## RULES
8
4
 
9
- - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
5
+ - **Language** — Speak in `{{.communication_language}}`. Write any file output in `{{.document_output_language}}`.
10
6
  - All review subagents must run at the same model capability as the current session.
11
7
  - Run subagents synchronously: launch them together, then wait for all results before continuing.
12
8
 
@@ -22,13 +18,11 @@ Do NOT `git add` anything — this is read-only inspection.
22
18
 
23
19
  ### Review
24
20
 
25
- The review layers are `{workflow.review_layers}`, resolved during activation.
26
-
27
- Skip every layer whose `instruction` is empty or missing — that is how an override disables a default layer — and every layer whose `when` condition (if present) does not hold in the current context. If no layers remain, HALT with status `blocked` and blocking condition `no active review layers`.
21
+ Execute these review layers in parallel wherever their execution methods allow: substitute the runtime placeholders (e.g. `{diff_output}`) into each layer's instruction. When an instruction launches a reviewer subagent, launch that child with the prompt text after placeholder substitution; do not load the reviewer instruction file yourself. For any other customized instruction, execute it as written. Parallel means several blocking calls awaited together in this turn — never backgrounded or detached, never ending the turn to await results. When running layers as subagents, spawn every reviewer before reading or reacting to any of their output; begin collection and triage only once all are launched.
28
22
 
29
- Execute all remaining layers in parallel wherever their execution methods allow: substitute the runtime placeholders (e.g. `{diff_output}`) into each layer's `instruction`, then follow it verbatim.
23
+ {workflow.review_layers}
30
24
 
31
- If a layer's instruction requires subagents and none are available, generate one review prompt file per such layer in `{implementation_artifacts}` and HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
25
+ If a layer's instruction requires subagents and none are available, for each such layer write under `{{.implementation_artifacts}}` the exact child prompt from that layer's instruction after placeholder substitution (not a path-only pointer), then HALT. Ask the human to run each in a separate session (ideally a different LLM) and paste back the findings.
32
26
 
33
27
  ### Classify
34
28
 
@@ -45,10 +39,10 @@ If a layer's instruction requires subagents and none are available, generate one
45
39
  - **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention.
46
40
  - **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
47
41
  4. Process findings in cascading order. If intent_gap or bad_spec findings exist, they trigger a loopback — lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Before each loopback, read `{spec_file}` frontmatter `review_loop_iteration` (missing means `0`), increment it by 1, and write it back. If it exceeds 5, HALT and escalate to the human.
48
- - **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `./step-02-plan.md` to re-run steps 2–4.
49
- - **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `./step-03-implement.md` to re-derive the code, then this step will run again.
50
- - **patch** — Auto-fix. These are the only findings that survive loopbacks.
51
- - **defer** — Append one new entry to `{deferred_work_file}` using this format. Do not modify existing entries or look for duplicates.
42
+ - **intent_gap** — Root cause is inside `<frozen-after-approval>`. Revert code changes. Loop back to the human to resolve. Once resolved, read fully and follow `[[bmad-snapshot:step-02-plan.md]]` to re-run steps 2–4.
43
+ - **bad_spec** — Root cause is outside `<frozen-after-approval>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the non-frozen sections that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Read fully and follow `[[bmad-snapshot:step-03-implement.md]]` to re-derive the code, then this step will run again.
44
+ - **patch** — Auto-fix. These are the only findings that survive loopbacks. If the step-03 implementation subagent can be re-engaged with its context intact, send it all patch findings in one synchronous message — for each: the file, what is wrong, and what the fix must do. If it cannot be re-engaged, apply the patches yourself. Then re-run the checks in `{spec_file}`'s `## Verification` section, if present; if verification fails and the failure cannot be fixed, HALT and escalate to the human.
45
+ - **defer** — Append one new entry to `{{.implementation_artifacts}}/deferred-work.md` using this format. Do not modify existing entries or look for duplicates.
52
46
  ```markdown
53
47
  - source_spec: `{spec_file}`
54
48
  summary: <one sentence>
@@ -58,4 +52,4 @@ If a layer's instruction requires subagents and none are available, generate one
58
52
 
59
53
  ## NEXT
60
54
 
61
- Read fully and follow `./step-05-present.md`
55
+ Read fully and follow `[[bmad-snapshot:step-05-present.md]]`
@@ -5,7 +5,7 @@
5
5
 
6
6
  ## RULES
7
7
 
8
- - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
8
+ - **Language** — Speak in `{{.communication_language}}`. Write any file output in `{{.document_output_language}}`.
9
9
  - NEVER auto-push.
10
10
 
11
11
  ## INSTRUCTIONS
@@ -52,27 +52,24 @@ When there is only one concern, omit the bold label — just list the stops dire
52
52
 
53
53
  Change `{spec_file}` status to `done` in the frontmatter.
54
54
 
55
- Follow `./sync-sprint-status.md` with `{target_status}` = `review`.
55
+ Follow `[[bmad-snapshot:sync-sprint-status.md]]` with `target_status` = `review`.
56
56
 
57
- ### Commit and Open
57
+ ### Commit and Complete
58
58
 
59
- 1. If version control is available and the tree is dirty, create a local commit with a conventional message derived from the spec title.
60
- 2. Open the spec in the user's editor so they can click through the Suggested Review Order:
61
- - Resolve two absolute paths: (1) the repository root (`git rev-parse --show-toplevel` — returns the worktree root when in a worktree, project root otherwise; if this fails, fall back to the current working directory), (2) `{spec_file}`. Run `code -r "{absolute-root}" "{absolute-spec-file}"` — the root first so VS Code opens in the right context, then the spec file. Always double-quote paths to handle spaces and special characters.
62
- - If `code` is not available (command fails), skip gracefully and tell the user the spec file path instead.
59
+ If version control is available and the tree is dirty, create a local commit with a conventional message derived from the spec title.
60
+
61
+ {workflow.open_spec}
63
62
 
64
63
  ### Display Summary
65
64
 
66
- Display summary of your work to the user, including the commit hash if one was created. Any file paths shown in conversation/terminal output must use CWD-relative format (no leading `/`) with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability — the goal is to make paths clickable in terminal emulators. Include:
65
+ Display summary of your work to the user, including the commit hash if one was created. Any file paths shown in conversation/terminal output must use CWD-relative format (no leading `/`) with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability — the goal is to make paths clickable in terminal emulators.
67
66
 
68
- - A note that the spec is open in their editor (or the file path if it couldn't be opened). Mention that `{spec_file}` now contains a Suggested Review Order.
69
- - **Navigation tip:** "Ctrl+click (Cmd+click on macOS) the links in the Suggested Review Order to jump to each stop."
70
- - Offer to push and/or create a pull request.
67
+ Offer to push and/or create a pull request.
71
68
 
72
69
  Workflow complete.
73
70
 
74
71
  ## On Complete
75
72
 
76
- Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete`
73
+ If anything appears below, follow it as the final terminal instruction before exiting; otherwise exit normally.
77
74
 
78
- If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
75
+ {workflow.on_complete}
@@ -0,0 +1,77 @@
1
+ # Step One-Shot: Implement, Review, Present
2
+
3
+ ## RULES
4
+
5
+ - **Language** — Speak in `{{.communication_language}}`. Write any file output in `{{.document_output_language}}`.
6
+ - NEVER auto-push.
7
+ - All review subagents must run at the same model capability as the current session.
8
+ - Run subagents synchronously: launch them together, then wait for all results before continuing.
9
+
10
+ ## INSTRUCTIONS
11
+
12
+ ### Implement
13
+
14
+ Follow `[[bmad-snapshot:sync-sprint-status.md]]` with `target_status` = `in-progress`.
15
+
16
+ Implement the clarified intent directly.
17
+
18
+ ### Review
19
+
20
+ Execute these review layers in parallel wherever their execution methods allow. After substituting runtime placeholders, when an instruction launches a reviewer subagent, launch that child with the prompt text; do not load the reviewer instruction file yourself. For any other customized instruction, execute it as written:
21
+
22
+ {workflow.oneshot_review_layers}
23
+
24
+ If a layer's instruction requires subagents and none are available, for each such layer write under `{{.implementation_artifacts}}` the exact child prompt from that layer's instruction after placeholder substitution (not a path-only pointer), then HALT. Ask the human to run each in a separate session and paste back the findings.
25
+
26
+ ### Classify
27
+
28
+ Deduplicate all review findings. Three categories only:
29
+
30
+ - **patch** — trivially fixable. Auto-fix immediately.
31
+ - **defer** — pre-existing issue not caused by this change. Append one new entry to `{{.implementation_artifacts}}/deferred-work.md` using this format. Do not modify existing entries or look for duplicates.
32
+ ```markdown
33
+ - source_spec: `{spec_file}`
34
+ summary: <one sentence>
35
+ evidence: <why this is real>
36
+ ```
37
+ - **reject** — noise. Drop silently.
38
+
39
+ If a finding is caused by this change but too significant for a trivial patch, HALT and present it to the human for decision before proceeding.
40
+
41
+ ### Generate Spec Trace
42
+
43
+ Set `title` = a concise title derived from the clarified intent.
44
+
45
+ Write `{spec_file}` using `[[bmad-snapshot:spec-template.md]]`. Fill only these sections — delete all others:
46
+
47
+ 1. **Frontmatter** — set `title: '{title}'`, `type`, `created`, `status: 'done'`. Add `route: 'one-shot'`.
48
+ 2. **Title and Intent** — `# {title}` heading and `## Intent` with **Problem** and **Approach** lines. Reuse the summary you already generated for the terminal.
49
+ 3. **Suggested Review Order** — append after Intent. Build using the same convention as `[[bmad-snapshot:step-05-present.md]]` § "Generate Suggested Review Order" (spec-file-relative links, concern-based ordering, ultra-concise framing).
50
+
51
+ Follow `[[bmad-snapshot:sync-sprint-status.md]]` with `target_status` = `review`.
52
+
53
+ ### Commit
54
+
55
+ If version control is available and the tree is dirty, create a local commit with a conventional message derived from the intent. If VCS is unavailable, skip.
56
+
57
+ ### Present
58
+
59
+ {workflow.open_spec}
60
+
61
+ Display a summary in conversation output, including:
62
+
63
+ - The commit hash (if one was created).
64
+ - List of files changed with one-line descriptions. Any file paths shown in conversation/terminal output must use CWD-relative format (no leading `/`) with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability — this differs from spec-file links which use spec-file-relative paths.
65
+ - Review findings breakdown: patches applied, items deferred, items rejected. If all findings were rejected, say so.
66
+
67
+ Offer to push and/or create a pull request.
68
+
69
+ HALT and wait for human input.
70
+
71
+ Workflow complete.
72
+
73
+ ## On Complete
74
+
75
+ If anything appears below, follow it as the final terminal instruction before exiting; otherwise exit normally.
76
+
77
+ {workflow.on_complete}
@@ -0,0 +1,19 @@
1
+ # Sync Sprint Status
2
+
3
+ Shared sub-step for updating `sprint-status.yaml` during build. Called from any route (plan-code-review, one-shot, future routes) with a `target_status` parameter.
4
+
5
+ ## Preconditions
6
+
7
+ Skip this entire file (return to caller) if ANY of:
8
+ - `story_key` is unset
9
+ - `{{.implementation_artifacts}}/sprint-status.yaml` does not exist on disk
10
+
11
+ ## Instructions
12
+
13
+ 1. Load the FULL `{{.implementation_artifacts}}/sprint-status.yaml` file.
14
+ 2. Find the `development_status` entry matching `{story_key}`. If not found, warn the user once (`"{story_key} not found in sprint-status; skipping sprint sync"`) and return to caller.
15
+ 3. **Idempotency check.** If `development_status[{story_key}]` is already at `target_status` or a later state (`review` is later than `in-progress`; `done` is later than both), return to caller — no write needed. Never regress a story's status.
16
+ 4. Set `development_status[{story_key}]` to `{target_status}`.
17
+ 5. **Epic lift (only when `target_status` = `in-progress`).** Derive the parent epic key as `epic-{N}` from the leading numeric segment of `{story_key}` (e.g., `3-2-digest-delivery` → `epic-3`). If that entry exists and is `backlog`, set it to `in-progress`. Leave it alone otherwise. Skip this sub-step entirely when `target_status` is not `in-progress`.
18
+ 6. Refresh `last_updated` to the current date.
19
+ 7. Save the file, preserving ALL comments and structure including STATUS DEFINITIONS and WORKFLOW NOTES.
@@ -0,0 +1,84 @@
1
+ # Build New Preview Workflow
2
+
3
+ **Goal:** Turn user intent into a hardened, reviewable artifact.
4
+
5
+ **CRITICAL:** If a step directs you to another snapshot file, read it fully and follow it. No exceptions.
6
+
7
+ Subagents, when the capability is available, are an important part of this workflow. Use them as directed by the workflow steps.
8
+ If you need an explicit user instruction to run them, ask once now for the whole workflow run.
9
+
10
+ ## READY FOR DEVELOPMENT STANDARD
11
+
12
+ A specification is "Ready for Development" when:
13
+
14
+ - **Actionable**: Every task has a file path and specific action.
15
+ - **Logical**: Tasks ordered by dependency.
16
+ - **Testable**: All ACs use Given/When/Then.
17
+ - **Complete**: No placeholders or TBDs.
18
+ - **Sufficient**: No known requirement, acceptance, dependency, or implementation gaps remain unresolved.
19
+ - **Coherent**: No unresolved ambiguities or internal contradictions.
20
+
21
+ ## SCOPE STANDARD
22
+
23
+ A specification should target a **single user-facing goal** within **900–1600 tokens**:
24
+
25
+ - **Single goal**: One cohesive feature, even if it spans multiple layers/files. Multi-goal means >=2 **top-level independent shippable deliverables** — each could be reviewed, tested, and merged as a separate PR without breaking the others. Never count surface verbs, "and" conjunctions, or noun phrases. Never split cross-layer implementation details inside one user goal.
26
+ - Split: "add dark mode toggle AND refactor auth to JWT AND build admin dashboard"
27
+ - Don't split: "add validation and display errors" / "support drag-and-drop AND paste AND retry"
28
+ - **900–1600 tokens**: Optimal range for LLM consumption. Below 900 risks ambiguity; above 1600 risks context-rot in implementation agents.
29
+ - **Neither limit is a gate.** Both are proposals with user override.
30
+
31
+ ## Conventions
32
+
33
+ - Every operational cross-file reference in this workflow is an absolute snapshot path. Open it directly; do not resolve it relative to a skill directory.
34
+ - `{project-root}`-prefixed paths resolve from the project working directory.
35
+ - Whenever this workflow captures or records a version-control revision, obtain the full canonical identifier directly from version control and preserve it verbatim.
36
+
37
+ ## On Activation
38
+
39
+ ### Step 1: Execute Prepend Steps
40
+
41
+ Execute each of these steps in order before proceeding (`_None._` means skip):
42
+
43
+ {workflow.activation_steps_prepend}
44
+
45
+ ### Step 2: Load Persistent Facts
46
+
47
+ Treat every entry below as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` -- load the referenced contents as facts. All other entries are facts verbatim (`_None._` means none):
48
+
49
+ {workflow.persistent_facts}
50
+
51
+ ### Step 3: Execute Append Steps
52
+
53
+ Execute each of these steps in order (`_None._` means skip):
54
+
55
+ {workflow.activation_steps_append}
56
+
57
+ ## WORKFLOW ARCHITECTURE
58
+
59
+ This uses **step-file architecture** for disciplined execution:
60
+
61
+ - **Micro-file Design**: Each step is self-contained and followed exactly
62
+ - **Just-In-Time Loading**: Only load the current step file
63
+ - **Sequential Enforcement**: Complete steps in order, no skipping
64
+ - **State Tracking**: Persist progress via spec frontmatter and in-memory variables
65
+ - **Append-Only Building**: Build artifacts incrementally
66
+
67
+ ### Step Processing Rules
68
+
69
+ 1. **READ COMPLETELY**: Read the entire step file before acting
70
+ 2. **FOLLOW SEQUENCE**: Execute sections in order
71
+ 3. **WAIT FOR INPUT**: Halt at checkpoints and wait for human
72
+ 4. **LOAD NEXT**: When directed, read fully and follow the next step file
73
+
74
+ ### Critical Rules (NO EXCEPTIONS)
75
+
76
+ - **NEVER** load multiple step files simultaneously
77
+ - **ALWAYS** read entire step file before execution
78
+ - **NEVER** skip steps or optimize the sequence
79
+ - **ALWAYS** follow the exact instructions in the step file
80
+ - **ALWAYS** halt at checkpoints and wait for human input
81
+
82
+ ## FIRST STEP
83
+
84
+ Read fully and follow: `[[bmad-snapshot:step-01-clarify-and-route.md]]` to begin the workflow.
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: bmad-build-auto
3
+ description: 'One iteration of an unattended development loop. Use when invoked by name.'
4
+ ---
5
+
6
+ Run the following command exactly once without changing the current working directory. Replace `{project-root}` with the absolute path to the project root and `{skill-root}` with the absolute path to this skill's directory:
7
+
8
+ ```bash
9
+ uv run --no-cache "{project-root}/_bmad/scripts/render_skill.py" --project-root "{project-root}" --skill "{skill-root}"
10
+ ```
11
+
12
+ - On success, read and follow the one absolute `workflow.md` instruction printed to stdout.
13
+ - On failure (including `uv` being unavailable), report the command output and HALT. Do not run any workflow source directly.
@@ -52,7 +52,7 @@ Use these headings:
52
52
  - **No full copies.** Never quote source documents, section numbers, or paste large blocks verbatim. Always distill.
53
53
  - **No story-level details.** The story list is for orientation only. Individual story specs handle the details.
54
54
  - **Nothing derivable from the codebase.** Don't document what a developer can learn by reading the code.
55
- - **Be concise and actionable.** Target 800–1500 tokens total. This file loads into bmad-dev-auto's context alongside other material.
55
+ - **Be concise and actionable.** Target 800–1500 tokens total. This file loads into bmad-build-auto's context alongside other material.
56
56
  - **Never hallucinate content.** If source material doesn't say something, don't invent it.
57
57
  - **Omit empty sections entirely**, except Goal and Stories, which are always required.
58
58
 
@@ -0,0 +1,121 @@
1
+ # DO NOT EDIT -- overwritten on every update.
2
+ #
3
+ # Default customization values for bmad-build-auto.
4
+ # Override in _bmad/custom/bmad-build-auto.toml or
5
+ # _bmad/custom/bmad-build-auto.user.toml.
6
+ #
7
+ # Merge rules:
8
+ # - Strings replace the default.
9
+ # - Lists append to the default list.
10
+ # - Tables merge key by key.
11
+ # - Arrays of tables merge by `id`: matching `id` replaces, new `id`s append.
12
+
13
+ [workflow]
14
+
15
+ # Extra instructions to run before config is loaded.
16
+
17
+ activation_steps_prepend = []
18
+
19
+ # Extra instructions to run after config is loaded and before step 01.
20
+
21
+ activation_steps_append = []
22
+
23
+ # Facts kept in context for the whole run.
24
+ # Entries are literal text or file references prefixed with "file:".
25
+ # File entries may use globs and are loaded during activation.
26
+
27
+ persistent_facts = [
28
+ "file:{project-root}/**/project-context.md",
29
+ ]
30
+
31
+ # Instruction run by HALT after writing the terminal result.
32
+ # Empty means no extra terminal behavior.
33
+
34
+ on_complete = ""
35
+
36
+ # Handoff for the implementation subagent in step 03. The whole execution
37
+ # recipe — a subagent by default, but an override may run it any other way
38
+ # (a different model, an external coding tool via bash). {spec_file} is
39
+ # substituted at run time.
40
+
41
+ implementation_handoff = """
42
+ Launch a subagent with no prior conversation context, with this prompt:
43
+
44
+ > Read {spec_file} fully and implement it — the spec is the sole source of truth. Load every file listed in its frontmatter `context:` before you start.
45
+ >
46
+ > When done, report what you changed, how you verified it, and anything left incomplete or risky.
47
+ """
48
+
49
+ # Review layers for the review step. `instruction` is the layer's whole
50
+ # execution recipe — subagents by default, but an override may run anything
51
+ # (e.g. an external reviewer via bash). {diff_output} is substituted at run
52
+ # time. `when` (optional) gates a layer; empty `instruction` disables it.
53
+
54
+ [[workflow.review_layers]]
55
+ id = "blind-hunter"
56
+ name = "Blind Hunter"
57
+ instruction = """
58
+ Launch a context-free subagent with this prompt:
59
+
60
+ Conduct a review of CONTENT.
61
+ Look for what's missing, not only what's wrong.
62
+ Find at least ten issues to fix or improve.
63
+ Output a Markdown list of findings only — no severity, priority, or ranking.
64
+ If the content is empty, stop and say so.
65
+ If you have zero findings, re-check and keep thinking; do not stop with an empty list.
66
+
67
+ CONTENT:
68
+ {diff_output}
69
+
70
+ Do not invoke any skill. Return only the review result.
71
+
72
+ """
73
+
74
+ [[workflow.review_layers]]
75
+ id = "edge-case-hunter"
76
+ name = "Edge Case Hunter"
77
+ instruction = """
78
+ Launch a context-free subagent with this prompt:
79
+
80
+ Read `{skill-root}/review-prompts/edge-case-hunter.md` completely and follow it as your review instructions.
81
+
82
+ Review content:
83
+
84
+ {diff_output}
85
+
86
+ Do not invoke any skill. If the instruction file is unreadable, report that exact failure and stop. Return only the review result.
87
+
88
+ """
89
+
90
+ [[workflow.review_layers]]
91
+ id = "verification-gap"
92
+ name = "Verification Gap Reviewer"
93
+ instruction = """
94
+ Launch a context-free subagent with this prompt:
95
+
96
+ Read `{skill-root}/review-prompts/verification-gap.md` completely and follow it as your review instructions.
97
+
98
+ Review content:
99
+
100
+ {diff_output}
101
+
102
+ Do not invoke any skill. If the instruction file is unreadable, report that exact failure and stop. Return only the review result.
103
+
104
+ """
105
+
106
+ [[workflow.review_layers]]
107
+ id = "intent-alignment"
108
+ name = "Intent Alignment Auditor"
109
+ instruction = """
110
+ Launch a subagent with this prompt:
111
+
112
+ You are an intent-alignment auditor. You have no other context about how this change was produced. Here is the verbatim intent this work started from:
113
+
114
+ {verbatim_intent}
115
+
116
+ Here is the diff:
117
+
118
+ {diff_output}
119
+
120
+ Your task is strictly descriptive — do not prescribe additional work. Report: (1) the defensible readings of the intent, enumerated; (2) which reading this diff implements; (3) where the readings and the diff diverge — specifically, which surface the intent's expectations live at versus which surface the diff's changes and its tests exercise.
121
+ """
@@ -1,8 +1,3 @@
1
- ---
2
- name: bmad-review-edge-case-hunter
3
- description: 'Walk every branching path and boundary condition in content, report only unhandled edge cases. Orthogonal to adversarial review - method-driven not attitude-driven. Use when you need exhaustive edge-case analysis of code, specs, or diffs.'
4
- ---
5
-
6
1
  # Edge Case Hunter Review
7
2
 
8
3
  **Goal:** You are a pure path tracer. Never comment on whether code is good or bad; only list missing handling.
@@ -24,7 +19,7 @@ A brief secondary deletion check runs as Step 4 when the diff removes code.
24
19
 
25
20
  ### Step 1: Receive Content
26
21
 
27
- - Load the content to review strictly from provided input
22
+ - Load the content to review strictly from the parent message that launched you (not from this instruction file)
28
23
  - If content is empty, or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
29
24
  - Identify content type (diff, full file, or function) to determine scope rules
30
25
 
@@ -71,3 +66,23 @@ No extra text, no explanations, no markdown wrapping. An empty array `[]` is val
71
66
  ## HALT CONDITIONS
72
67
 
73
68
  - If content is empty or cannot be decoded as text, return `[{"location":"N/A","trigger_condition":"Input empty or undecodable","guard_snippet":"Provide valid content to review","potential_consequence":"Review skipped — no analysis performed"}]` and stop
69
+ <reference path="references/deletion-check.md">
70
+ # Deletion Check
71
+
72
+ Secondary pass for the Edge Case Hunter — runs only when the diff removed meaningful code. Subordinate to the edge-case pass; findings are usually few or none.
73
+
74
+ For each chunk of removed or replaced code (ignore pure renames and whitespace), ask: did it carry behavior or a contract that the change neither re-established nor intentionally retired? Add a finding for any resulting regression, orphaned reference, or newly-dead code. Skip anything already covered by your edge-case findings.
75
+
76
+ Append each finding to the same JSON array as the edge-case findings, with the four standard fields plus:
77
+
78
+ - `kind`: `"deletion"`
79
+ - `confidence`: `"high"`, `"medium"`, or `"low"` — these are inferences; rate them
80
+
81
+ For a deletion finding the standard fields read as: `location` = the removed item; `trigger_condition` = the behavior or contract it enforced; `guard_snippet` = where or how to re-establish it; `potential_consequence` = the regression or orphan.
82
+
83
+ Add nothing if nothing qualifies.
84
+ </reference>
85
+
86
+ ## CONTENT SOURCE
87
+
88
+ Review the content supplied under "Review content:" in the message that launched you.
@@ -1,8 +1,3 @@
1
- ---
2
- name: bmad-review-verification-gap
3
- description: 'Review a code change for changed behavior that could regress without reliable verification catching it. Use when checking whether a change is adequately verified.'
4
- ---
5
-
6
1
  # Verification Gap Review
7
2
 
8
3
  **Goal:** Find changed behavior that could break without reliable verification catching it. Ask one question — "if the behavior this change is supposed to produce broke where it's actually used, would verification fail?" Do not hunt for correctness bugs, but report genuine problems you notice while tracing verification.
@@ -25,10 +20,14 @@ The main verification gap shapes are:
25
20
 
26
21
  ### Step 1: Screen for behavioral change
27
22
 
28
- If the change is non-behavioral, stop here and output the clean result (see Output Format). Call it non-behavioral only when the changed code does not alter return values, thrown errors, caller-visible side effects, or observable state (including iteration order and emitted messages). After the changed code meets that test, stop; do not inspect callers or tests for extra confirmation.
23
+ Screen each part of the change separately. If a part is non-behavioral, skip it. Call a part non-behavioral only when the changed code does not alter return values, thrown errors, caller-visible side effects, or observable state (including iteration order and emitted messages). Once a part meets that test, move on; do not inspect callers or tests for extra confirmation.
29
24
 
30
25
  Common non-behavioral examples: formatting, comments, whitespace; pure renames; trivial getters/setters and pass-throughs; type-only or compiler-enforced changes with no runtime effect; etc.
31
26
 
27
+ Only outcomes produced by deterministic code are worth automatically testing; tests are useless on static source text and brittle on LLM output. Skip those parts.
28
+
29
+ If every part is skipped, output the clean result (see Output Format).
30
+
32
31
  ### Step 2: Find the behavior that changed
33
32
 
34
33
  Identify what behavior changed compared to the previous version: output, side effect, branch, error path, schema/event shape, config default, validation/authorization rule, external contract, etc. If the change affects more than one behavior, handle each separately.
@@ -53,7 +52,9 @@ Find and read the relevant test. Ask whether the Demonstration would make an ass
53
52
  - For a regression-style Demonstration: if no test runs the path, the test is skipped/flaky/not run normally, or the test runs the code without checking the changed result, report a `Regression gap` or `Broken-verification gap`.
54
53
  - For a qualifying Missing-adoption case: if none of the site tests you found assert it adopts the new behavior, report a `Missing-adoption gap`.
55
54
 
56
- A test counts only if it runs normally and an assertion observes the changed output, branch, or contract. These do not count: no execution; success/no-throw/snapshot-only checks; mock/log-call checks; human-only checks; tests that mock away the integration; e2e tests that pass through without checking the changed output; stale assertions or fixtures.
55
+ A test counts only if it runs normally and an assertion observes the changed output, branch, or contract. These do not count: no execution; source-text assertions that match a file's wording instead of running it; success/no-throw/snapshot-only checks; mock/log-call checks; human-only checks; tests that mock away the integration; e2e tests that pass through without checking the changed output; stale assertions or fixtures.
56
+
57
+ For example, `expect(x ?? DEFAULT).toBe(DEFAULT)` passes when `x` is missing.
57
58
 
58
59
  Common patterns:
59
60
 
@@ -62,12 +63,14 @@ Common patterns:
62
63
  - **Migration compatibility** — tests only create new-format rows or fresh schemas.
63
64
  - **Phantom exception** — handled partial-failure path has no test.
64
65
  - **Missing-adoption gap** — sibling site should use the new rule/helper and does not.
65
- - **Removed verification** — deleted test or weakened assertion leaves behavior unpinned.
66
+ - **Removed verification** — deleted test or weakened assertion leaves behavior unpinned; removing a source-text assertion is not this, since it never counted.
66
67
 
67
68
  ### Step 5: Confirm each finding is real
68
69
 
69
70
  Before writing a finding, re-open the specific tests or search results the finding relies on. Verify the Demonstration would not make any test you checked fail, or that the absence claim is backed by the symbol/import-reference search. Do not claim more than you verified; drop any finding you cannot ground.
70
71
 
72
+ Explain why the test misses the bug using what the test sets up and checks.
73
+
71
74
  Do not report: compiler/type-checker-enforced cases; behavior already verified by an integration, contract, or e2e test; implementation-detail or mock-only tests; low coverage or a missing test file by itself; legacy untested code the change did not affect.
72
75
 
73
76
  Report genuine problems you noticed while tracing verification, even if they are not verification gaps. Put them under `Other findings` in the output. This permits reporting what you already reached, not extra hunting.
@@ -104,3 +107,7 @@ If you noticed genuine non-gap problems while tracing verification, append:
104
107
  When you find no verification gaps and no other findings, output exactly this single line, not an empty response:
105
108
 
106
109
  `No verification gaps found.`
110
+
111
+ ## CONTENT SOURCE
112
+
113
+ Review the content supplied under "Review content:" in the message that launched you. If none is supplied, stop with exactly: `No verification gaps found.`
@@ -4,9 +4,10 @@ type: 'feature' # feature | bugfix | refactor | chore
4
4
  created: '{date}'
5
5
  status: 'draft' # draft | ready-for-dev | in-progress | in-review | done | blocked
6
6
  review_loop_iteration: 0 # incremented by step-04 before each review loopback
7
- followup_review_recommended: false # set by step-04 on status: done from the final review pass significance judgment
7
+ followup_review_recommended: false # set by step-04 on status: done — true if the LLM decided another review pass is worthwhile
8
8
  context: [] # optional: `{project-root}/`-prefixed paths to project-wide standards/docs the implementation agent should load. Keep short — only what isn't already distilled into the spec body.
9
9
  warnings: [] # optional: machine-readable warnings for orchestration, e.g. oversized, multiple-goals
10
+ deferred: [] # append-only machine-readable deferred review findings; each item carries summary/evidence and optional location/severity
10
11
  ---
11
12
 
12
13
  <!-- Aim for 900–1600 tokens. If larger, add `oversized` to frontmatter `warnings` and continue.
@@ -0,0 +1,83 @@
1
+ ---
2
+ spec_file: '' # set at runtime once a route resolves it; some HALT branches exit before it is set
3
+ spec_folder: '' # set at runtime under folder+id dispatch only
4
+ story_id: '' # set at runtime under folder+id dispatch only
5
+ ---
6
+
7
+ # Step 1: Clarify and Route
8
+
9
+ ## RULES
10
+
11
+ - **Language** — Speak in `{{.communication_language}}`, tailored to `{{.user_skill_level}}`. Write files in `{{.document_output_language}}`.
12
+ - Treat the invocation intent as workflow input, not as a substitute for step-02 investigation and spec generation.
13
+ - **EARLY EXIT** means: stop this step immediately, then read and follow the target file. Return here only if a later step explicitly says to loop back.
14
+
15
+ ## Intent check (do this first)
16
+
17
+ Use the invocation prompt as the intent.
18
+
19
+ If the invocation prompt explicitly points to an existing spec file with recognized `status` frontmatter, set `spec_file`, then **EARLY EXIT** to the appropriate step:
20
+ - `draft` → `[[bmad-snapshot:step-02-plan.md]]`
21
+ - `ready-for-dev` or `in-progress` → `[[bmad-snapshot:step-03-implement.md]]`
22
+ - `in-review` → `[[bmad-snapshot:step-04-review.md]]`
23
+ - `blocked` → HALT with status `blocked` and blocking condition `blocked spec supplied`.
24
+ - `done` → set `review_loop_iteration` to `0` in the frontmatter, then **EARLY EXIT** to `[[bmad-snapshot:step-04-review.md]]` for a fresh review pass. (A `done` spec is a completed run, so this starts a follow-up review, not a resumption.)
25
+
26
+ If the invocation prompt instead supplies a spec folder and a story id, with no specific spec file path, this is a **folder+id dispatch**: set `spec_folder` (a `{project-root}`-relative or absolute path) and `story_id` from the prompt. Any further prompt text (e.g. `invoke_dev_with` guidance the caller appended) is additional planning context to carry into step-02 — not a competing description of what to implement.
27
+
28
+ Read `{spec_folder}/stories.yaml`. If the file does not exist or fails to parse, HALT with status `blocked` and blocking condition `no stories.yaml found`. Find the entry whose `id` equals `{story_id}`; if none matches, HALT with status `blocked` and blocking condition `story id not found in stories.yaml`. Take only that entry's `title` and `description` — never read the checkpoint fields or `invoke_dev_with`; those are the caller's orchestration fields, not build-auto's.
29
+
30
+ Look for files matching `{spec_folder}/stories/{story_id}-*.md` (id-prefix match — story ids are prefix-free, so at most one should match):
31
+ - **If more than one matches**, HALT with status `blocked` and blocking condition `ambiguous story file match`.
32
+ - **If exactly one matches**, set `spec_file` to that path.
33
+ - `draft` (planning was interrupted mid-flight): accumulate cross-story context before resuming — load every other file matching `{spec_folder}/stories/*.md` (every match except `{spec_file}` itself), regardless of `status`, and carry forward each one's **Code Map**, **Design Notes**, **Spec Change Log**, **Tasks & Acceptance** checklist state, and **Auto Run Result** details, where present, as additional planning context for step-02. Then **EARLY EXIT** to `[[bmad-snapshot:step-02-plan.md]]`.
34
+ - Any other recognized `status`: **EARLY EXIT** using the same routing as above, including the `review_loop_iteration` reset for `done`. One difference: a `blocked` story HALTs with blocking condition `story already blocked`, not `blocked spec supplied` — the caller did not supply this file; build-auto found it by id.
35
+ - `status` missing or unrecognized: HALT with status `blocked` and blocking condition `unrecognized status in existing story file`.
36
+ - **If none matches**, this is the first dispatch for `{story_id}`. The entry's `title` and `description` are the resolved intent. If `{spec_folder}/SPEC.md` does not exist, HALT with status `blocked` and blocking condition `no epic spec found`. Otherwise load it and the files listed in its `companions:` frontmatter as planning context, then accumulate cross-story context the same way as the `draft` case above — load every file matching `{spec_folder}/stories/*.md` (none yet exists for `{story_id}` at this point, so nothing is excluded), regardless of `status`, carrying forward the same fields, where present, as additional planning context for step-02. Then continue to INSTRUCTIONS item 3 below — not `step-03-implement.md`, item 3 of the numbered list in this file (items 1 and 2 do not apply — context and intent are already resolved; item 1.A.5's previous-story continuity scan in particular never runs here, since folder+id dispatch already skips items 1 and 2 entirely — the cross-story accumulation above is its replacement for this dispatch mode).
37
+
38
+ One `stories.yaml` entry per invocation: never read another entry, and never advance to a different story id regardless of outcome.
39
+
40
+ Otherwise, treat the invocation prompt as starting intent. This may be a story ID, ticket ID, file path, short description, or longer free-form intent. Do not infer workflow state from non-spec files.
41
+ If the invocation prompt does not contain enough intent to identify what to implement, HALT with status `blocked` and blocking condition `unclear intent`.
42
+
43
+ ## INSTRUCTIONS
44
+
45
+ 1. Load context.
46
+ - List files in `{{.planning_artifacts}}` and `{{.implementation_artifacts}}`.
47
+ - If the invocation prompt points to an unformatted spec or intent file, ingest that file. Do not scan for unrelated intent files.
48
+ - **Determine context strategy.** Using the intent and the artifact listing, infer whether the current work is a story from an epic. Do not rely on filename patterns or regex — reason about the intent, the listing, and any epics file content together.
49
+
50
+ **A) Epic story path** — if the intent is clearly an epic story:
51
+
52
+ 1. Identify the epic number `{epic_num}` and (if present) the story number `{story_num}`. If you can't identify an epic number, use path B.
53
+
54
+ 2. **Check for a valid cached epic context.** Look for `{{.implementation_artifacts}}/epic-<N>-context.md` (where `<N>` is the epic number). A file is **valid** when it exists, is non-empty, starts with `# Epic <N> Context:` (with the correct epic number), and no file in `{{.planning_artifacts}}` is newer.
55
+ - **If valid:** load it as the primary planning context. Do not load raw planning docs (PRD, architecture, UX, etc.).
56
+ - **If missing, empty, or invalid:** compile it in the next bullet.
57
+
58
+ 3. **Compile epic context if needed.** If no valid cached epic context was loaded, produce `{{.implementation_artifacts}}/epic-<N>-context.md` by spawning a subagent synchronously with `[[bmad-snapshot:compile-epic-context.md]]` as its prompt. Pass it the epic number, epics file path, `{{.planning_artifacts}}`, and output path `{{.implementation_artifacts}}/epic-<N>-context.md`.
59
+
60
+ 4. **Verify if compiled.** If epic context was compiled, verify the output file exists, is non-empty, and starts with `# Epic <N> Context:`. If valid, load it. If verification fails, HALT with status `blocked` and blocking condition `context compilation verification failed`.
61
+
62
+ 5. **Previous story continuity.** Regardless of which context source succeeded above, scan `{{.implementation_artifacts}}` for specs from the same epic with `status: done` and a lower story number. Load the most recent one (highest story number below current). Extract its **Code Map**, **Design Notes**, **Spec Change Log**, and **task list** as continuity context for step-02 planning. If no `done` spec is found but an `in-review` spec exists for the same epic with a lower story number, HALT with status `blocked` and blocking condition `missing previous-story continuity decision`.
63
+
64
+ **B) Freeform path** — if the intent is not an epic story:
65
+ - Planning artifacts are the output of BMAD phases 1-3. Typical files include:
66
+ - **PRD** (`*prd*`) — product requirements and success criteria
67
+ - **Architecture** (`*architecture*`) — technical design decisions and constraints
68
+ - **UX/Design** (`*ux*`) — user experience and interaction design
69
+ - **Epics** (`*epic*`) — feature breakdown into implementable stories
70
+ - **Product Brief** (`*brief*`) — project vision and scope
71
+ - Scan the listing for files matching these patterns. If any look relevant to the current intent, load them selectively — you don't need all of them, but you need the right constraints and requirements rather than guessing from code alone.
72
+ 2. Resolve intent from the invocation prompt and loaded artifacts. Do not fantasize or leave open questions. If the intent cannot be resolved, HALT with status `blocked` and the unresolved questions as blocking condition.
73
+ 3. Version control sanity check. If version control is unavailable, skip this check. Otherwise require a clean working tree, a branch that fits the intent, and writable repository metadata. For Git, run `git add --refresh -- .`, then confirm the tree is still clean; on failure or change, HALT with status `blocked` and blocking condition `version-control metadata not writable`. Under folder+id dispatch, judge the branch against the epic, not the story. HALT on a dirty tree or obvious branch mismatch.
74
+ 4. Multi-goal warning. If the intent appears to contain multiple independently shippable goals, carry `multiple-goals` forward so step-02 can add it to `{spec_file}` frontmatter `warnings`. Do not split or block.
75
+ 5. Route:
76
+
77
+ **Folder+id dispatch:** derive a valid kebab-case slug from the entry's `title` (and `description` if needed) — the same kebab-casing convention as below, but never prefixed with `{story_id}`, since the id is already the filename's separate leading segment. Set `spec_file` = `{spec_folder}/stories/{story_id}-{slug}.md`. The id already disambiguates: no `{{.implementation_artifacts}}` fallback, no `-2`/`-3` suffixing.
78
+
79
+ **Otherwise:** derive a valid kebab-case slug from the clarified intent. If the intent references a tracking identifier (story number, issue number, ticket ID), lead the slug with it (e.g. `3-2-digest-delivery`, `gh-47-fix-auth`). If `{{.implementation_artifacts}}/spec-{slug}.md` already exists: if its status is `draft`, treat it as the same work and resume it (set `spec_file` to that path, **EARLY EXIT** → `[[bmad-snapshot:step-02-plan.md]]`); otherwise append `-2`, `-3`, etc. Set `spec_file` = `{{.implementation_artifacts}}/spec-{slug}.md`.
80
+
81
+ ## NEXT
82
+
83
+ Read fully and follow `[[bmad-snapshot:step-02-plan.md]]`