bmalph 2.7.6 → 2.8.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 (448) hide show
  1. package/README.md +4 -4
  2. package/bmad/bmm/agents/analyst.agent.yaml +6 -6
  3. package/bmad/bmm/agents/architect.agent.yaml +2 -2
  4. package/bmad/bmm/agents/bmad-skill-manifest.yaml +39 -0
  5. package/bmad/bmm/agents/dev.agent.yaml +2 -2
  6. package/bmad/bmm/agents/pm.agent.yaml +6 -6
  7. package/bmad/bmm/agents/qa.agent.yaml +1 -1
  8. package/bmad/bmm/agents/quick-flow-solo-dev.agent.yaml +7 -3
  9. package/bmad/bmm/agents/sm.agent.yaml +4 -4
  10. package/bmad/bmm/agents/tech-writer/bmad-skill-manifest.yaml +3 -0
  11. package/bmad/bmm/agents/tech-writer/tech-writer.agent.yaml +1 -1
  12. package/bmad/bmm/agents/ux-designer.agent.yaml +1 -1
  13. package/bmad/bmm/module-help.csv +26 -25
  14. package/bmad/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +6 -0
  15. package/bmad/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml +1 -0
  16. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/product-brief.template.md +2 -2
  17. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-01-init.md +4 -11
  18. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-01b-continue.md +0 -3
  19. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-02-vision.md +5 -11
  20. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-03-users.md +5 -11
  21. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-04-metrics.md +5 -11
  22. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-05-scope.md +5 -11
  23. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/steps/step-06-complete.md +1 -4
  24. package/bmad/bmm/workflows/1-analysis/{create-product-brief → bmad-create-product-brief}/workflow.md +4 -6
  25. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/SKILL.md +88 -0
  26. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/artifact-analyzer.md +60 -0
  27. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/opportunity-reviewer.md +44 -0
  28. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/skeptic-reviewer.md +44 -0
  29. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/web-researcher.md +49 -0
  30. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-manifest.json +17 -0
  31. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +1 -0
  32. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/contextual-discovery.md +57 -0
  33. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/draft-and-review.md +86 -0
  34. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/finalize.md +75 -0
  35. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/guided-elicitation.md +70 -0
  36. package/bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/resources/brief-template.md +60 -0
  37. package/bmad/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md +6 -0
  38. package/bmad/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +1 -0
  39. package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-06-research-synthesis.md +2 -1
  40. package/bmad/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md +29 -0
  41. package/bmad/bmm/workflows/1-analysis/research/{workflow-domain-research.md → bmad-domain-research/workflow.md} +0 -5
  42. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/SKILL.md +6 -0
  43. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +1 -0
  44. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/research.template.md +29 -0
  45. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-01-init.md +184 -0
  46. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
  47. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
  48. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
  49. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
  50. package/bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +478 -0
  51. package/bmad/bmm/workflows/1-analysis/research/{workflow-market-research.md → bmad-market-research/workflow.md} +1 -6
  52. package/bmad/bmm/workflows/1-analysis/research/bmad-technical-research/SKILL.md +6 -0
  53. package/bmad/bmm/workflows/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +1 -0
  54. package/bmad/bmm/workflows/1-analysis/research/bmad-technical-research/research.template.md +29 -0
  55. package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-06-research-synthesis.md +2 -1
  56. package/bmad/bmm/workflows/1-analysis/research/{workflow-technical-research.md → bmad-technical-research/workflow.md} +0 -4
  57. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +2 -2
  58. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +2 -2
  59. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +2 -2
  60. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +2 -2
  61. package/bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +2 -1
  62. package/bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/SKILL.md +6 -0
  63. package/bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml +1 -0
  64. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-01-init.md +2 -2
  65. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-01b-continue.md +1 -1
  66. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-02-discovery.md +2 -2
  67. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-03-core-experience.md +5 -4
  68. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-04-emotional-response.md +5 -4
  69. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-05-inspiration.md +5 -4
  70. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-06-design-system.md +5 -4
  71. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-07-defining-experience.md +5 -4
  72. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-08-visual-foundation.md +5 -4
  73. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-09-design-directions.md +5 -4
  74. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-10-user-journeys.md +5 -4
  75. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-11-component-strategy.md +5 -4
  76. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-12-ux-patterns.md +5 -4
  77. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-13-responsive-accessibility.md +5 -4
  78. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/steps/step-14-complete.md +3 -3
  79. package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/workflow.md +2 -8
  80. package/bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/SKILL.md +6 -0
  81. package/bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/bmad-skill-manifest.yaml +1 -0
  82. package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-01-discovery.md +3 -8
  83. package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-01b-legacy-conversion.md +1 -5
  84. package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-02-review.md +5 -9
  85. package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-03-edit.md +3 -6
  86. package/bmad/bmm/workflows/2-plan-workflows/{create-prd → bmad-edit-prd}/steps-e/step-e-04-complete.md +2 -5
  87. package/bmad/bmm/workflows/2-plan-workflows/{create-prd/workflow-edit-prd.md → bmad-edit-prd/workflow.md} +2 -4
  88. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/SKILL.md +6 -0
  89. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/bmad-skill-manifest.yaml +1 -0
  90. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/domain-complexity.csv +15 -0
  91. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/prd-purpose.md +197 -0
  92. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/project-types.csv +11 -0
  93. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +221 -0
  94. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +188 -0
  95. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +206 -0
  96. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +171 -0
  97. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +211 -0
  98. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +225 -0
  99. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +214 -0
  100. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +202 -0
  101. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +240 -0
  102. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +260 -0
  103. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +206 -0
  104. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +261 -0
  105. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +239 -0
  106. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +229 -0
  107. package/bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/workflow.md +62 -0
  108. package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +2 -4
  109. package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +1 -1
  110. package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +3 -3
  111. package/bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +3 -2
  112. package/bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +3 -1
  113. package/bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/SKILL.md +6 -0
  114. package/bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/bmad-skill-manifest.yaml +1 -0
  115. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-01-document-discovery.md +3 -8
  116. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-02-prd-analysis.md +1 -5
  117. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-03-epic-coverage-validation.md +1 -5
  118. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-04-ux-alignment.md +1 -5
  119. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-05-epic-quality-review.md +2 -6
  120. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/steps/step-06-final-assessment.md +1 -4
  121. package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/workflow.md +1 -6
  122. package/bmad/bmm/workflows/3-solutioning/bmad-create-architecture/SKILL.md +6 -0
  123. package/bmad/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml +1 -0
  124. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-01-init.md +4 -4
  125. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-01b-continue.md +11 -2
  126. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-02-context.md +4 -4
  127. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-03-starter.md +5 -7
  128. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-04-decisions.md +4 -4
  129. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-05-patterns.md +4 -4
  130. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-06-structure.md +4 -4
  131. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-07-validation.md +4 -4
  132. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/steps/step-08-complete.md +1 -1
  133. package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/workflow.md +1 -12
  134. package/bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/SKILL.md +6 -0
  135. package/bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/bmad-skill-manifest.yaml +1 -0
  136. package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-01-validate-prerequisites.md +37 -41
  137. package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-02-design-epics.md +7 -28
  138. package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-03-create-stories.md +13 -30
  139. package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/steps/step-04-final-validation.md +3 -21
  140. package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/templates/epics-template.md +4 -0
  141. package/bmad/bmm/workflows/3-solutioning/{create-epics-and-stories → bmad-create-epics-and-stories}/workflow.md +1 -6
  142. package/bmad/bmm/workflows/4-implementation/bmad-code-review/SKILL.md +6 -0
  143. package/bmad/bmm/workflows/4-implementation/bmad-code-review/bmad-skill-manifest.yaml +1 -0
  144. package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-01-gather-context.md +61 -0
  145. package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +41 -0
  146. package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-03-triage.md +50 -0
  147. package/bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +38 -0
  148. package/bmad/bmm/workflows/4-implementation/bmad-code-review/workflow.md +54 -0
  149. package/bmad/bmm/workflows/4-implementation/bmad-correct-course/SKILL.md +6 -0
  150. package/bmad/bmm/workflows/4-implementation/bmad-correct-course/bmad-skill-manifest.yaml +1 -0
  151. package/bmad/bmm/workflows/4-implementation/{correct-course → bmad-correct-course}/checklist.md +1 -1
  152. package/bmad/bmm/workflows/4-implementation/{correct-course/instructions.md → bmad-correct-course/workflow.md} +74 -14
  153. package/bmad/bmm/workflows/4-implementation/bmad-create-story/SKILL.md +6 -0
  154. package/bmad/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml +1 -0
  155. package/bmad/bmm/workflows/4-implementation/{create-story → bmad-create-story}/checklist.md +9 -10
  156. package/bmad/bmm/workflows/4-implementation/bmad-create-story/discover-inputs.md +88 -0
  157. package/bmad/bmm/workflows/4-implementation/bmad-create-story/workflow.md +380 -0
  158. package/bmad/bmm/workflows/4-implementation/bmad-dev-story/SKILL.md +6 -0
  159. package/bmad/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml +1 -0
  160. package/bmad/bmm/workflows/4-implementation/{dev-story/instructions.xml → bmad-dev-story/workflow.md} +42 -2
  161. package/bmad/bmm/workflows/4-implementation/bmad-retrospective/SKILL.md +6 -0
  162. package/bmad/bmm/workflows/4-implementation/bmad-retrospective/bmad-skill-manifest.yaml +1 -0
  163. package/bmad/bmm/workflows/4-implementation/{retrospective/instructions.md → bmad-retrospective/workflow.md} +58 -23
  164. package/bmad/bmm/workflows/4-implementation/bmad-sprint-planning/SKILL.md +6 -0
  165. package/bmad/bmm/workflows/4-implementation/bmad-sprint-planning/bmad-skill-manifest.yaml +1 -0
  166. package/bmad/bmm/workflows/4-implementation/{sprint-planning → bmad-sprint-planning}/sprint-status-template.yaml +1 -0
  167. package/bmad/bmm/workflows/4-implementation/{sprint-planning/instructions.md → bmad-sprint-planning/workflow.md} +47 -10
  168. package/bmad/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md +6 -0
  169. package/bmad/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml +1 -0
  170. package/bmad/bmm/workflows/4-implementation/{sprint-status/instructions.md → bmad-sprint-status/workflow.md} +39 -8
  171. package/bmad/bmm/workflows/bmad-document-project/SKILL.md +6 -0
  172. package/bmad/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml +1 -0
  173. package/bmad/bmm/workflows/{document-project → bmad-document-project}/instructions.md +6 -8
  174. package/bmad/bmm/workflows/bmad-document-project/workflow.md +27 -0
  175. package/bmad/bmm/workflows/{document-project → bmad-document-project}/workflows/deep-dive-instructions.md +3 -2
  176. package/bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
  177. package/bmad/bmm/workflows/{document-project → bmad-document-project}/workflows/full-scan-instructions.md +5 -4
  178. package/bmad/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md +34 -0
  179. package/bmad/bmm/workflows/bmad-generate-project-context/SKILL.md +6 -0
  180. package/bmad/bmm/workflows/bmad-generate-project-context/bmad-skill-manifest.yaml +1 -0
  181. package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/steps/step-01-discover.md +3 -1
  182. package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/steps/step-02-generate.md +7 -4
  183. package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/workflow.md +2 -8
  184. package/bmad/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md +6 -0
  185. package/bmad/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml +1 -0
  186. package/bmad/bmm/workflows/{qa/automate/instructions.md → bmad-qa-generate-e2e-tests/workflow.md} +33 -7
  187. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +6 -0
  188. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml +1 -0
  189. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-01-mode-detection.md +9 -14
  190. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-02-context-gathering.md +1 -5
  191. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-03-execute.md +1 -5
  192. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-04-self-check.md +1 -5
  193. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-05-adversarial-review.md +8 -18
  194. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/steps/step-06-resolve-findings.md +0 -2
  195. package/bmad/bmm/workflows/bmad-quick-flow/{quick-dev → bmad-quick-dev}/workflow.md +1 -13
  196. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/SKILL.md +6 -0
  197. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/bmad-skill-manifest.yaml +1 -0
  198. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-01-clarify-and-route.md +51 -0
  199. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-02-plan.md +35 -0
  200. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-03-implement.md +33 -0
  201. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-04-review.md +50 -0
  202. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-05-present.md +17 -0
  203. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/tech-spec-template.md +90 -0
  204. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md +79 -0
  205. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +6 -0
  206. package/bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml +1 -0
  207. package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-01-understand.md +7 -13
  208. package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-02-investigate.md +3 -7
  209. package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-03-generate.md +1 -5
  210. package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/steps/step-04-review.md +9 -14
  211. package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/workflow.md +1 -7
  212. package/bmad/core/module-help.csv +10 -8
  213. package/bmad/core/module.yaml +1 -1
  214. package/bmad/core/skills/bmad-advanced-elicitation/SKILL.md +6 -0
  215. package/bmad/core/skills/bmad-advanced-elicitation/bmad-skill-manifest.yaml +1 -0
  216. package/bmad/core/skills/bmad-advanced-elicitation/workflow.md +135 -0
  217. package/bmad/core/skills/bmad-brainstorming/SKILL.md +6 -0
  218. package/bmad/core/skills/bmad-brainstorming/bmad-skill-manifest.yaml +1 -0
  219. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-01-session-setup.md +35 -18
  220. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-01b-continue.md +4 -2
  221. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02a-user-selected.md +5 -1
  222. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02b-ai-recommended.md +3 -1
  223. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02c-random-selection.md +3 -1
  224. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-02d-progressive-flow.md +3 -1
  225. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-03-technique-execution.md +6 -4
  226. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/steps/step-04-idea-organization.md +4 -2
  227. package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/workflow.md +4 -9
  228. package/bmad/core/skills/bmad-distillator/SKILL.md +178 -0
  229. package/bmad/core/skills/bmad-distillator/agents/distillate-compressor.md +116 -0
  230. package/bmad/core/skills/bmad-distillator/agents/round-trip-reconstructor.md +68 -0
  231. package/bmad/core/skills/bmad-distillator/bmad-skill-manifest.yaml +15 -0
  232. package/bmad/core/skills/bmad-distillator/resources/compression-rules.md +51 -0
  233. package/bmad/core/skills/bmad-distillator/resources/distillate-format-reference.md +227 -0
  234. package/bmad/core/skills/bmad-distillator/resources/splitting-strategy.md +78 -0
  235. package/bmad/core/skills/bmad-distillator/scripts/analyze_sources.py +300 -0
  236. package/bmad/core/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +204 -0
  237. package/bmad/core/skills/bmad-editorial-review-prose/SKILL.md +6 -0
  238. package/bmad/core/skills/bmad-editorial-review-prose/bmad-skill-manifest.yaml +1 -0
  239. package/bmad/core/skills/bmad-editorial-review-prose/workflow.md +81 -0
  240. package/bmad/core/skills/bmad-editorial-review-structure/SKILL.md +6 -0
  241. package/bmad/core/skills/bmad-editorial-review-structure/bmad-skill-manifest.yaml +1 -0
  242. package/bmad/core/skills/bmad-editorial-review-structure/workflow.md +174 -0
  243. package/bmad/core/skills/bmad-help/SKILL.md +6 -0
  244. package/bmad/core/skills/bmad-help/bmad-skill-manifest.yaml +1 -0
  245. package/bmad/core/{tasks/help.md → skills/bmad-help/workflow.md} +11 -8
  246. package/bmad/core/skills/bmad-index-docs/SKILL.md +6 -0
  247. package/bmad/core/skills/bmad-index-docs/bmad-skill-manifest.yaml +1 -0
  248. package/bmad/core/skills/bmad-index-docs/workflow.md +61 -0
  249. package/bmad/core/skills/bmad-party-mode/SKILL.md +6 -0
  250. package/bmad/core/skills/bmad-party-mode/bmad-skill-manifest.yaml +1 -0
  251. package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/steps/step-03-graceful-exit.md +0 -1
  252. package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/workflow.md +0 -4
  253. package/bmad/core/skills/bmad-review-adversarial-general/SKILL.md +6 -0
  254. package/bmad/core/skills/bmad-review-adversarial-general/bmad-skill-manifest.yaml +1 -0
  255. package/bmad/core/skills/bmad-review-adversarial-general/workflow.md +32 -0
  256. package/bmad/core/skills/bmad-review-edge-case-hunter/SKILL.md +6 -0
  257. package/bmad/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +1 -0
  258. package/bmad/core/skills/bmad-review-edge-case-hunter/workflow.md +62 -0
  259. package/bmad/core/skills/bmad-shard-doc/SKILL.md +6 -0
  260. package/bmad/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +1 -0
  261. package/bmad/core/skills/bmad-shard-doc/workflow.md +100 -0
  262. package/bmad/core/tasks/bmad-create-prd/SKILL.md +6 -0
  263. package/bmad/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +1 -0
  264. package/bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv +15 -0
  265. package/bmad/core/tasks/bmad-create-prd/data/prd-purpose.md +197 -0
  266. package/bmad/core/tasks/bmad-create-prd/data/project-types.csv +11 -0
  267. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-01-init.md +7 -20
  268. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-01b-continue.md +29 -21
  269. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-02-discovery.md +7 -23
  270. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-02b-vision.md +5 -17
  271. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-02c-executive-summary.md +5 -17
  272. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-03-success.md +4 -16
  273. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-04-journeys.md +4 -16
  274. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-05-domain.md +7 -20
  275. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-06-innovation.md +8 -23
  276. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-07-project-type.md +6 -21
  277. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-08-scoping.md +5 -17
  278. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-09-functional.md +5 -17
  279. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-10-nonfunctional.md +5 -17
  280. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-11-polish.md +22 -18
  281. package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/steps-c/step-12-complete.md +4 -13
  282. package/bmad/{bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md → core/tasks/bmad-create-prd/workflow.md} +3 -4
  283. package/bundled-versions.json +1 -1
  284. package/dist/commands/doctor-checks.js +14 -5
  285. package/dist/commands/doctor-checks.js.map +1 -1
  286. package/dist/commands/doctor.js +13 -4
  287. package/dist/commands/doctor.js.map +1 -1
  288. package/dist/commands/init.js +12 -2
  289. package/dist/commands/init.js.map +1 -1
  290. package/dist/commands/run.js +11 -2
  291. package/dist/commands/run.js.map +1 -1
  292. package/dist/commands/status.js +3 -2
  293. package/dist/commands/status.js.map +1 -1
  294. package/dist/commands/watch.js +5 -0
  295. package/dist/commands/watch.js.map +1 -1
  296. package/dist/installer/commands.js +33 -15
  297. package/dist/installer/commands.js.map +1 -1
  298. package/dist/installer/install.js +1 -1
  299. package/dist/installer/install.js.map +1 -1
  300. package/dist/installer/project-files.js +4 -4
  301. package/dist/installer/project-files.js.map +1 -1
  302. package/dist/installer/template-files.js +72 -6
  303. package/dist/installer/template-files.js.map +1 -1
  304. package/dist/platform/codex.js +6 -1
  305. package/dist/platform/codex.js.map +1 -1
  306. package/dist/platform/detect.js +7 -3
  307. package/dist/platform/detect.js.map +1 -1
  308. package/dist/platform/doctor-checks.js +2 -2
  309. package/dist/platform/doctor-checks.js.map +1 -1
  310. package/dist/platform/guidance.js +66 -0
  311. package/dist/platform/guidance.js.map +1 -0
  312. package/dist/platform/instructions-snippet.js +15 -0
  313. package/dist/platform/instructions-snippet.js.map +1 -1
  314. package/dist/platform/opencode.js +20 -0
  315. package/dist/platform/opencode.js.map +1 -0
  316. package/dist/platform/registry.js +2 -0
  317. package/dist/platform/registry.js.map +1 -1
  318. package/dist/platform/types.js +1 -0
  319. package/dist/platform/types.js.map +1 -1
  320. package/dist/reset.js +3 -3
  321. package/dist/reset.js.map +1 -1
  322. package/dist/run/ralph-process.js +51 -7
  323. package/dist/run/ralph-process.js.map +1 -1
  324. package/dist/run/run-dashboard.js +22 -9
  325. package/dist/run/run-dashboard.js.map +1 -1
  326. package/dist/transition/artifact-scan.js +14 -5
  327. package/dist/transition/artifact-scan.js.map +1 -1
  328. package/dist/transition/context.js +11 -3
  329. package/dist/transition/context.js.map +1 -1
  330. package/dist/utils/constants.js +4 -2
  331. package/dist/utils/constants.js.map +1 -1
  332. package/dist/watch/dashboard.js +36 -21
  333. package/dist/watch/dashboard.js.map +1 -1
  334. package/dist/watch/frame-writer.js +83 -0
  335. package/dist/watch/frame-writer.js.map +1 -0
  336. package/dist/watch/renderer.js +179 -54
  337. package/dist/watch/renderer.js.map +1 -1
  338. package/dist/watch/state-reader.js +8 -0
  339. package/dist/watch/state-reader.js.map +1 -1
  340. package/package.json +1 -1
  341. package/ralph/RALPH-REFERENCE.md +4 -4
  342. package/ralph/drivers/claude-code.sh +4 -2
  343. package/ralph/drivers/opencode.sh +147 -0
  344. package/ralph/lib/enable_core.sh +10 -2
  345. package/ralph/lib/response_analyzer.sh +337 -96
  346. package/ralph/lib/wizard_utils.sh +4 -4
  347. package/ralph/ralph_import.sh +9 -1
  348. package/ralph/ralph_loop.sh +428 -15
  349. package/ralph/templates/PROMPT.md +15 -5
  350. package/ralph/templates/ralphrc.template +31 -5
  351. package/slash-commands/advanced-elicitation.md +1 -1
  352. package/slash-commands/adversarial-review.md +1 -1
  353. package/slash-commands/bmad-help.md +1 -1
  354. package/slash-commands/bmalph.md +1 -1
  355. package/slash-commands/brainstorm-project.md +1 -1
  356. package/slash-commands/brainstorming.md +1 -1
  357. package/slash-commands/correct-course.md +1 -1
  358. package/slash-commands/create-architecture.md +1 -1
  359. package/slash-commands/create-brief.md +1 -1
  360. package/slash-commands/create-epics-stories.md +1 -1
  361. package/slash-commands/create-prd.md +1 -1
  362. package/slash-commands/create-story.md +1 -1
  363. package/slash-commands/create-ux.md +1 -1
  364. package/slash-commands/distillator.md +1 -0
  365. package/slash-commands/document-project.md +1 -1
  366. package/slash-commands/domain-research.md +1 -1
  367. package/slash-commands/edge-case-hunter.md +1 -0
  368. package/slash-commands/edit-prd.md +1 -0
  369. package/slash-commands/editorial-prose.md +1 -1
  370. package/slash-commands/editorial-structure.md +1 -1
  371. package/slash-commands/generate-project-context.md +1 -1
  372. package/slash-commands/implementation-readiness.md +1 -1
  373. package/slash-commands/index-docs.md +1 -1
  374. package/slash-commands/market-research.md +1 -1
  375. package/slash-commands/party-mode.md +1 -1
  376. package/slash-commands/qa-automate.md +1 -1
  377. package/slash-commands/quick-dev-new.md +1 -0
  378. package/slash-commands/quick-dev.md +1 -1
  379. package/slash-commands/retrospective.md +1 -1
  380. package/slash-commands/shard-doc.md +1 -1
  381. package/slash-commands/sprint-planning.md +1 -1
  382. package/slash-commands/sprint-status.md +1 -1
  383. package/slash-commands/tech-spec.md +1 -1
  384. package/slash-commands/technical-research.md +1 -1
  385. package/slash-commands/validate-architecture.md +1 -1
  386. package/slash-commands/validate-brief.md +1 -1
  387. package/slash-commands/validate-epics-stories.md +1 -1
  388. package/slash-commands/validate-prd.md +1 -1
  389. package/slash-commands/validate-story.md +1 -1
  390. package/slash-commands/validate-ux.md +1 -1
  391. package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -23
  392. package/bmad/bmm/workflows/4-implementation/code-review/instructions.xml +0 -227
  393. package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -44
  394. package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -54
  395. package/bmad/bmm/workflows/4-implementation/create-story/instructions.xml +0 -346
  396. package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -53
  397. package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -21
  398. package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -53
  399. package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -47
  400. package/bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml +0 -25
  401. package/bmad/bmm/workflows/document-project/workflow.yaml +0 -22
  402. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
  403. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
  404. package/bmad/bmm/workflows/qa/automate/workflow.yaml +0 -44
  405. package/bmad/core/agents/bmad-master.agent.yaml +0 -30
  406. package/bmad/core/tasks/editorial-review-prose.xml +0 -102
  407. package/bmad/core/tasks/editorial-review-structure.xml +0 -209
  408. package/bmad/core/tasks/index-docs.xml +0 -65
  409. package/bmad/core/tasks/review-adversarial-general.xml +0 -48
  410. package/bmad/core/tasks/shard-doc.xml +0 -108
  411. package/bmad/core/tasks/workflow.xml +0 -235
  412. package/bmad/core/workflows/advanced-elicitation/workflow.xml +0 -117
  413. package/slash-commands/execute-workflow.md +0 -1
  414. /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-01-init.md +0 -0
  415. /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-02-domain-analysis.md +0 -0
  416. /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-03-competitive-landscape.md +0 -0
  417. /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-04-regulatory-focus.md +0 -0
  418. /package/bmad/bmm/workflows/1-analysis/research/{domain-steps → bmad-domain-research/domain-steps}/step-05-technical-trends.md +0 -0
  419. /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-01-init.md +0 -0
  420. /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-02-technical-overview.md +0 -0
  421. /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-03-integration-patterns.md +0 -0
  422. /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-04-architectural-patterns.md +0 -0
  423. /package/bmad/bmm/workflows/1-analysis/research/{technical-steps → bmad-technical-research/technical-steps}/step-05-implementation-research.md +0 -0
  424. /package/bmad/bmm/workflows/2-plan-workflows/{create-ux-design → bmad-create-ux-design}/ux-design-template.md +0 -0
  425. /package/bmad/bmm/workflows/3-solutioning/{check-implementation-readiness → bmad-check-implementation-readiness}/templates/readiness-report-template.md +0 -0
  426. /package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/architecture-decision-template.md +0 -0
  427. /package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/data/domain-complexity.csv +0 -0
  428. /package/bmad/bmm/workflows/3-solutioning/{create-architecture → bmad-create-architecture}/data/project-types.csv +0 -0
  429. /package/bmad/bmm/workflows/4-implementation/{create-story → bmad-create-story}/template.md +0 -0
  430. /package/bmad/bmm/workflows/4-implementation/{dev-story → bmad-dev-story}/checklist.md +0 -0
  431. /package/bmad/bmm/workflows/4-implementation/{sprint-planning → bmad-sprint-planning}/checklist.md +0 -0
  432. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/checklist.md +0 -0
  433. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/documentation-requirements.csv +0 -0
  434. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/deep-dive-template.md +0 -0
  435. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/index-template.md +0 -0
  436. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/project-overview-template.md +0 -0
  437. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/project-scan-report-schema.json +0 -0
  438. /package/bmad/bmm/workflows/{document-project → bmad-document-project}/templates/source-tree-template.md +0 -0
  439. /package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/project-context-template.md +0 -0
  440. /package/bmad/bmm/workflows/{generate-project-context → bmad-generate-project-context}/steps/step-03-complete.md +0 -0
  441. /package/bmad/bmm/workflows/{qa/automate → bmad-qa-generate-e2e-tests}/checklist.md +0 -0
  442. /package/bmad/bmm/workflows/bmad-quick-flow/{quick-spec → bmad-quick-spec}/tech-spec-template.md +0 -0
  443. /package/bmad/core/{workflows/advanced-elicitation → skills/bmad-advanced-elicitation}/methods.csv +0 -0
  444. /package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/brain-methods.csv +0 -0
  445. /package/bmad/core/{workflows/brainstorming → skills/bmad-brainstorming}/template.md +0 -0
  446. /package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/steps/step-01-agent-loading.md +0 -0
  447. /package/bmad/core/{workflows/party-mode → skills/bmad-party-mode}/steps/step-02-discussion-orchestration.md +0 -0
  448. /package/bmad/{bmm/workflows/2-plan-workflows/create-prd → core/tasks/bmad-create-prd}/templates/prd-template.md +0 -0
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: bmad-distillator
3
+ description: Lossless LLM-optimized compression of source documents. Use when the user requests to 'distill documents' or 'create a distillate'.
4
+ argument-hint: "[to create provide input paths] [--validate distillate-path to confirm distillate is lossless and optimized]"
5
+ ---
6
+
7
+ # Distillator: A Document Distillation Engine
8
+
9
+ ## Overview
10
+
11
+ This skill produces hyper-compressed, token-efficient documents (distillates) from any set of source documents. A distillate preserves every fact, decision, constraint, and relationship from the sources while stripping all overhead that humans need and LLMs don't. Act as an information extraction and compression specialist. The output is a single dense document (or semantically-split set) that a downstream LLM workflow can consume as sole context input without information loss.
12
+
13
+ This is a compression task, not a summarization task. Summaries are lossy. Distillates are lossless compression optimized for LLM consumption.
14
+
15
+ ## On Activation
16
+
17
+ 1. **Validate inputs.** The caller must provide:
18
+ - **source_documents** (required) — One or more file paths, folder paths, or glob patterns to distill
19
+ - **downstream_consumer** (optional) — What workflow/agent consumes this distillate (e.g., "PRD creation", "architecture design"). When provided, use it to judge signal vs noise. When omitted, preserve everything.
20
+ - **token_budget** (optional) — Approximate target size. When provided and the distillate would exceed it, trigger semantic splitting.
21
+ - **output_path** (optional) — Where to save. When omitted, save adjacent to the primary source document with `-distillate.md` suffix.
22
+ - **--validate** (flag) — Run round-trip reconstruction test after producing the distillate.
23
+
24
+ 2. **Route** — proceed to Stage 1.
25
+
26
+ ## Stages
27
+
28
+ | # | Stage | Purpose |
29
+ |---|-------|---------|
30
+ | 1 | Analyze | Run analysis script, determine routing and splitting |
31
+ | 2 | Compress | Spawn compressor agent(s) to produce the distillate |
32
+ | 3 | Verify & Output | Completeness check, format check, save output |
33
+ | 4 | Round-Trip Validate | (--validate only) Reconstruct and diff against originals |
34
+
35
+ ### Stage 1: Analyze
36
+
37
+ Run `scripts/analyze_sources.py --help` then run it with the source paths. Use its routing recommendation and grouping output to drive Stage 2. Do NOT read the source documents yourself.
38
+
39
+ ### Stage 2: Compress
40
+
41
+ **Single mode** (routing = `"single"`, ≤3 files, ≤15K estimated tokens):
42
+
43
+ Spawn one subagent using `agents/distillate-compressor.md` with all source file paths.
44
+
45
+ **Fan-out mode** (routing = `"fan-out"`):
46
+
47
+ 1. Spawn one compressor subagent per group from the analysis output. Each compressor receives only its group's file paths and produces an intermediate distillate.
48
+
49
+ 2. After all compressors return, spawn one final **merge compressor** subagent using `agents/distillate-compressor.md`. Pass it the intermediate distillate contents as its input (not the original files). Its job is cross-group deduplication, thematic regrouping, and final compression.
50
+
51
+ 3. Clean up intermediate distillate content (it exists only in memory, not saved to disk).
52
+
53
+ **Graceful degradation:** If subagent spawning is unavailable, read the source documents and perform the compression work directly using the same instructions from `agents/distillate-compressor.md`. For fan-out, process groups sequentially then merge.
54
+
55
+ The compressor returns a structured JSON result containing the distillate content, source headings, named entities, and token estimate.
56
+
57
+ ### Stage 3: Verify & Output
58
+
59
+ After the compressor (or merge compressor) returns:
60
+
61
+ 1. **Completeness check.** Using the headings and named entities list returned by the compressor, verify each appears in the distillate content. If gaps are found, send them back to the compressor for a targeted fix pass — not a full recompression. Limit to 2 fix passes maximum.
62
+
63
+ 2. **Format check.** Verify the output follows distillate format rules:
64
+ - No prose paragraphs (only bullets)
65
+ - No decorative formatting
66
+ - No repeated information
67
+ - Each bullet is self-contained
68
+ - Themes are clearly delineated with `##` headings
69
+
70
+ 3. **Determine output format.** Using the split prediction from Stage 1 and actual distillate size:
71
+
72
+ **Single distillate** (≤~5,000 tokens or token_budget not exceeded):
73
+
74
+ Save as a single file with frontmatter:
75
+
76
+ ```yaml
77
+ ---
78
+ type: bmad-distillate
79
+ sources:
80
+ - "{relative path to source file 1}"
81
+ - "{relative path to source file 2}"
82
+ downstream_consumer: "{consumer or 'general'}"
83
+ created: "{date}"
84
+ token_estimate: {approximate token count}
85
+ parts: 1
86
+ ---
87
+ ```
88
+
89
+ **Split distillate** (>~5,000 tokens, or token_budget requires it):
90
+
91
+ Create a folder `{base-name}-distillate/` containing:
92
+
93
+ ```
94
+ {base-name}-distillate/
95
+ ├── _index.md # Orientation, cross-cutting items, section manifest
96
+ ├── 01-{topic-slug}.md # Self-contained section
97
+ ├── 02-{topic-slug}.md
98
+ └── 03-{topic-slug}.md
99
+ ```
100
+
101
+ The `_index.md` contains:
102
+ - Frontmatter with sources (relative paths from the distillate folder to the originals)
103
+ - 3-5 bullet orientation (what was distilled, from what)
104
+ - Section manifest: each section's filename + 1-line description
105
+ - Cross-cutting items that span multiple sections
106
+
107
+ Each section file is self-contained — loadable independently. Include a 1-line context header: "This section covers [topic]. Part N of M."
108
+
109
+ Source paths in frontmatter must be relative to the distillate's location.
110
+
111
+ 4. **Measure distillate.** Run `scripts/analyze_sources.py` on the final distillate file(s) to get accurate token counts for the output. Use the `total_estimated_tokens` from this analysis as `distillate_total_tokens`.
112
+
113
+ 5. **Report results.** Always return structured JSON output:
114
+
115
+ ```json
116
+ {
117
+ "status": "complete",
118
+ "distillate": "{path or folder path}",
119
+ "section_distillates": ["{path1}", "{path2}"] or null,
120
+ "source_total_tokens": N,
121
+ "distillate_total_tokens": N,
122
+ "compression_ratio": "X:1",
123
+ "source_documents": ["{path1}", "{path2}"],
124
+ "completeness_check": "pass" or "pass_with_additions"
125
+ }
126
+ ```
127
+
128
+ Where `source_total_tokens` is from the Stage 1 analysis and `distillate_total_tokens` is from step 4. The `compression_ratio` is `source_total_tokens / distillate_total_tokens` formatted as "X:1" (e.g., "3.2:1").
129
+
130
+ 6. If `--validate` flag was set, proceed to Stage 4. Otherwise, done.
131
+
132
+ ### Stage 4: Round-Trip Validation (--validate only)
133
+
134
+ This stage proves the distillate is lossless by reconstructing source documents from the distillate alone. Use for critical documents where information loss is unacceptable, or as a quality gate for high-stakes downstream workflows. Not for routine use — it adds significant token cost.
135
+
136
+ 1. **Spawn the reconstructor agent** using `agents/round-trip-reconstructor.md`. Pass it ONLY the distillate file path (or `_index.md` path for split distillates) — it must NOT have access to the original source documents.
137
+
138
+ For split distillates, spawn one reconstructor per section in parallel. Each receives its section file plus the `_index.md` for cross-cutting context.
139
+
140
+ **Graceful degradation:** If subagent spawning is unavailable, this stage cannot be performed by the main agent (it has already seen the originals). Report that round-trip validation requires subagent support and skip.
141
+
142
+ 2. **Receive reconstructions.** The reconstructor returns reconstruction file paths saved adjacent to the distillate.
143
+
144
+ 3. **Perform semantic diff.** Read both the original source documents and the reconstructions. For each section of the original, assess:
145
+ - Is the core information present in the reconstruction?
146
+ - Are specific details preserved (numbers, names, decisions)?
147
+ - Are relationships and rationale intact?
148
+ - Did the reconstruction add anything not in the original? (indicates hallucination filling gaps)
149
+
150
+ 4. **Produce validation report** saved adjacent to the distillate as `-validation-report.md`:
151
+
152
+ ```markdown
153
+ ---
154
+ type: distillate-validation
155
+ distillate: "{distillate path}"
156
+ sources: ["{source paths}"]
157
+ created: "{date}"
158
+ ---
159
+
160
+ ## Validation Summary
161
+ - Status: PASS | PASS_WITH_WARNINGS | FAIL
162
+ - Information preserved: {percentage estimate}
163
+ - Gaps found: {count}
164
+ - Hallucinations detected: {count}
165
+
166
+ ## Gaps (information in originals but missing from reconstruction)
167
+ - {gap description} — Source: {which original}, Section: {where}
168
+
169
+ ## Hallucinations (information in reconstruction not traceable to originals)
170
+ - {hallucination description} — appears to fill gap in: {section}
171
+
172
+ ## Possible Gap Markers (flagged by reconstructor)
173
+ - {marker description}
174
+ ```
175
+
176
+ 5. **If gaps are found**, offer to run a targeted fix pass on the distillate — adding the missing information without full recompression. Limit to 2 fix passes maximum.
177
+
178
+ 6. **Clean up** — delete the temporary reconstruction files after the report is generated.
@@ -0,0 +1,116 @@
1
+ # Distillate Compressor Agent
2
+
3
+ Act as an information extraction and compression specialist. Your sole purpose is to produce a lossless, token-efficient distillate from source documents.
4
+
5
+ You receive: source document file paths, an optional downstream_consumer context, and a splitting decision.
6
+
7
+ You must load and apply `../resources/compression-rules.md` before producing output. Reference `../resources/distillate-format-reference.md` for the expected output format.
8
+
9
+ ## Compression Process
10
+
11
+ ### Step 1: Read Sources
12
+
13
+ Read all source document files. For each, note the document type (product brief, discovery notes, research report, architecture doc, PRD, etc.) based on content and naming.
14
+
15
+ ### Step 2: Extract
16
+
17
+ Extract every discrete piece of information from all source documents:
18
+ - Facts and data points (numbers, dates, versions, percentages)
19
+ - Decisions made and their rationale
20
+ - Rejected alternatives and why they were rejected
21
+ - Requirements and constraints (explicit and implicit)
22
+ - Relationships and dependencies between entities
23
+ - Named entities (products, companies, people, technologies)
24
+ - Open questions and unresolved items
25
+ - Scope boundaries (in/out/deferred)
26
+ - Success criteria and validation methods
27
+ - Risks and opportunities
28
+ - User segments and their success definitions
29
+
30
+ Treat this as entity extraction — pull out every distinct piece of information regardless of where it appears in the source documents.
31
+
32
+ ### Step 3: Deduplicate
33
+
34
+ Apply the deduplication rules from `../resources/compression-rules.md`.
35
+
36
+ ### Step 4: Filter (only if downstream_consumer is specified)
37
+
38
+ For each extracted item, ask: "Would the downstream workflow need this?"
39
+ - Drop items that are clearly irrelevant to the stated consumer
40
+ - When uncertain, keep the item — err on the side of preservation
41
+ - Never drop: decisions, rejected alternatives, open questions, constraints, scope boundaries
42
+
43
+ ### Step 5: Group Thematically
44
+
45
+ Organize items into coherent themes derived from the source content — not from a fixed template. The themes should reflect what the documents are actually about.
46
+
47
+ Common groupings (use what fits, omit what doesn't, add what's needed):
48
+ - Core concept / problem / motivation
49
+ - Solution / approach / architecture
50
+ - Users / segments
51
+ - Technical decisions / constraints
52
+ - Scope boundaries (in/out/deferred)
53
+ - Competitive context
54
+ - Success criteria
55
+ - Rejected alternatives
56
+ - Open questions
57
+ - Risks and opportunities
58
+
59
+ ### Step 6: Compress Language
60
+
61
+ For each item, apply the compression rules from `../resources/compression-rules.md`:
62
+ - Strip prose transitions and connective tissue
63
+ - Remove hedging and rhetoric
64
+ - Remove explanations of common knowledge
65
+ - Preserve specific details (numbers, names, versions, dates)
66
+ - Ensure the item is self-contained (understandable without reading the source)
67
+ - Make relationships explicit ("X because Y", "X blocks Y", "X replaces Y")
68
+
69
+ ### Step 7: Format Output
70
+
71
+ Produce the distillate as dense thematically-grouped bullets:
72
+ - `##` headings for themes — no deeper heading levels needed
73
+ - `- ` bullets for items — every token must carry signal
74
+ - No decorative formatting (no bold for emphasis, no horizontal rules)
75
+ - No prose paragraphs — only bullets
76
+ - Semicolons to join closely related short items within a single bullet
77
+ - Each bullet self-contained — understandable without reading other bullets
78
+
79
+ Do NOT include frontmatter — the calling skill handles that.
80
+
81
+ ## Semantic Splitting
82
+
83
+ If the splitting decision indicates splitting is needed, load `../resources/splitting-strategy.md` and follow it.
84
+
85
+ When splitting:
86
+
87
+ 1. Identify natural semantic boundaries in the content — coherent topic clusters, not arbitrary size breaks.
88
+
89
+ 2. Produce a **root distillate** containing:
90
+ - 3-5 bullet orientation (what was distilled, for whom, how many parts)
91
+ - Cross-references to section distillates
92
+ - Items that span multiple sections
93
+
94
+ 3. Produce **section distillates**, each self-sufficient. Include a 1-line context header: "This section covers [topic]. Part N of M from [source document names]."
95
+
96
+ ## Return Format
97
+
98
+ Return a structured result to the calling skill:
99
+
100
+ ```json
101
+ {
102
+ "distillate_content": "{the complete distillate text without frontmatter}",
103
+ "source_headings": ["heading 1", "heading 2"],
104
+ "source_named_entities": ["entity 1", "entity 2"],
105
+ "token_estimate": N,
106
+ "sections": null or [{"topic": "...", "content": "..."}]
107
+ }
108
+ ```
109
+
110
+ - **distillate_content**: The full distillate text
111
+ - **source_headings**: All Level 2+ headings found across source documents (for completeness verification)
112
+ - **source_named_entities**: Key named entities (products, companies, people, technologies, decisions) found in sources
113
+ - **token_estimate**: Approximate token count of the distillate
114
+ - **sections**: null for single distillates; array of section objects if semantically split
115
+
116
+ Do not include conversational text, status updates, or preamble — return only the structured result.
@@ -0,0 +1,68 @@
1
+ # Round-Trip Reconstructor Agent
2
+
3
+ Act as a document reconstruction specialist. Your purpose is to prove a distillate's completeness by reconstructing the original source documents from the distillate alone.
4
+
5
+ **Critical constraint:** You receive ONLY the distillate file path. You must NOT have access to the original source documents. If you can see the originals, the test is meaningless.
6
+
7
+ ## Process
8
+
9
+ ### Step 1: Analyze the Distillate
10
+
11
+ Read the distillate file. Parse the YAML frontmatter to identify:
12
+ - The `sources` list — what documents were distilled
13
+ - The `downstream_consumer` — what filtering may have been applied
14
+ - The `parts` count — whether this is a single or split distillate
15
+
16
+ ### Step 2: Detect Document Types
17
+
18
+ From the source file names and the distillate's content, infer what type of document each source was:
19
+ - Product brief, discovery notes, research report, architecture doc, PRD, etc.
20
+ - Use the naming conventions and content themes to determine appropriate document structure
21
+
22
+ ### Step 3: Reconstruct Each Source
23
+
24
+ For each source listed in the frontmatter, produce a full human-readable document:
25
+
26
+ - Use appropriate prose, structure, and formatting for the document type
27
+ - Include all sections the original document would have had based on the document type
28
+ - Expand compressed bullets back into natural language prose
29
+ - Restore section transitions and contextual framing
30
+ - Do NOT invent information — only use what is in the distillate
31
+ - Flag any places where the distillate felt insufficient with `[POSSIBLE GAP]` markers — these are critical quality signals
32
+
33
+ **Quality signals to watch for:**
34
+ - Bullets that feel like they're missing context → `[POSSIBLE GAP: missing context for X]`
35
+ - Themes that seem underrepresented given the document type → `[POSSIBLE GAP: expected more on X for a document of this type]`
36
+ - Relationships that are mentioned but not fully explained → `[POSSIBLE GAP: relationship between X and Y unclear]`
37
+
38
+ ### Step 4: Save Reconstructions
39
+
40
+ Save each reconstructed document as a temporary file adjacent to the distillate:
41
+ - First source: `{distillate-basename}-reconstruction-1.md`
42
+ - Second source: `{distillate-basename}-reconstruction-2.md`
43
+ - And so on for each source
44
+
45
+ Each reconstruction should include a header noting it was reconstructed:
46
+
47
+ ```markdown
48
+ ---
49
+ type: distillate-reconstruction
50
+ source_distillate: "{distillate path}"
51
+ reconstructed_from: "{original source name}"
52
+ reconstruction_number: {N}
53
+ ---
54
+ ```
55
+
56
+ ### Step 5: Return
57
+
58
+ Return a structured result to the calling skill:
59
+
60
+ ```json
61
+ {
62
+ "reconstruction_files": ["{path1}", "{path2}"],
63
+ "possible_gaps": ["gap description 1", "gap description 2"],
64
+ "source_count": N
65
+ }
66
+ ```
67
+
68
+ Do not include conversational text, status updates, or preamble — return only the structured result.
@@ -0,0 +1,15 @@
1
+ type: skill
2
+ module: core
3
+ capabilities:
4
+ - name: bmad-distillator
5
+ menu-code: DSTL
6
+ description: "Produces lossless LLM-optimized distillate from source documents. Use after producing large human presentable documents that will be consumed later by LLMs"
7
+ supports-headless: true
8
+ input: source documents
9
+ args: output, validate
10
+ output: single distillate or folder of distillates next to source input
11
+ config-vars-used: null
12
+ phase: anytime
13
+ before: []
14
+ after: []
15
+ is-required: false
@@ -0,0 +1,51 @@
1
+ # Compression Rules
2
+
3
+ These rules govern how source text is compressed into distillate format. Apply as a final pass over all output.
4
+
5
+ ## Strip — Remove entirely
6
+
7
+ - Prose transitions: "As mentioned earlier", "It's worth noting", "In addition to this"
8
+ - Rhetoric and persuasion: "This is a game-changer", "The exciting thing is"
9
+ - Hedging: "We believe", "It's likely that", "Perhaps", "It seems"
10
+ - Self-reference: "This document describes", "As outlined above"
11
+ - Common knowledge explanations: "Vercel is a cloud platform company", "MIT is an open-source license", "JSON is a data interchange format"
12
+ - Repeated introductions of the same concept
13
+ - Section transition paragraphs
14
+ - Formatting-only elements (decorative bold/italic for emphasis, horizontal rules for visual breaks)
15
+ - Filler phrases: "In order to", "It should be noted that", "The fact that"
16
+
17
+ ## Preserve — Keep always
18
+
19
+ - Specific numbers, dates, versions, percentages
20
+ - Named entities (products, companies, people, technologies)
21
+ - Decisions made and their rationale (compressed: "Decision: X. Reason: Y")
22
+ - Rejected alternatives and why (compressed: "Rejected: X. Reason: Y")
23
+ - Explicit constraints and non-negotiables
24
+ - Dependencies and ordering relationships
25
+ - Open questions and unresolved items
26
+ - Scope boundaries (in/out/deferred)
27
+ - Success criteria and how they're validated
28
+ - User segments and what success means for each
29
+ - Risks with their severity signals
30
+ - Conflicts between source documents
31
+
32
+ ## Transform — Change form for efficiency
33
+
34
+ - Long prose paragraphs → single dense bullet capturing the same information
35
+ - "We decided to use X because Y and Z" → "X (rationale: Y, Z)"
36
+ - Repeated category labels → group under a single heading, no per-item labels
37
+ - "Risk: ... Severity: high" → "HIGH RISK: ..."
38
+ - Conditional statements → "If X → Y" form
39
+ - Multi-sentence explanations → semicolon-separated compressed form
40
+ - Lists of related short items → single bullet with semicolons
41
+ - "X is used for Y" → "X: Y" when context is clear
42
+ - Verbose enumerations → parenthetical lists: "platforms (Cursor, Claude Code, Windsurf, Copilot)"
43
+
44
+ ## Deduplication Rules
45
+
46
+ - Same fact in multiple documents → keep the version with most context
47
+ - Same concept at different detail levels → keep the detailed version
48
+ - Overlapping lists → merge into single list, no duplicates
49
+ - When source documents disagree → note the conflict explicitly: "Brief says X; discovery notes say Y — unresolved"
50
+ - Executive summary points that are expanded elsewhere → keep only the expanded version
51
+ - Introductory framing repeated across sections → capture once under the most relevant theme
@@ -0,0 +1,227 @@
1
+ # Distillate Format Reference
2
+
3
+ Examples showing the transformation from human-readable source content to distillate format.
4
+
5
+ ## Frontmatter
6
+
7
+ Every distillate includes YAML frontmatter. Source paths are relative to the distillate's location so the distillate remains portable:
8
+
9
+ ```yaml
10
+ ---
11
+ type: bmad-distillate
12
+ sources:
13
+ - "product-brief-example.md"
14
+ - "product-brief-example-discovery-notes.md"
15
+ downstream_consumer: "PRD creation"
16
+ created: "2026-03-13"
17
+ token_estimate: 1200
18
+ parts: 1
19
+ ---
20
+ ```
21
+
22
+ ## Before/After Examples
23
+
24
+ ### Prose Paragraph to Dense Bullet
25
+
26
+ **Before** (human-readable brief excerpt):
27
+ ```
28
+ ## What Makes This Different
29
+
30
+ **The anti-fragmentation layer.** The AI tooling space is fracturing across 40+
31
+ platforms with no shared methodology layer. BMAD is uniquely positioned to be the
32
+ cross-platform constant — the structured approach that works the same in Cursor,
33
+ Claude Code, Windsurf, Copilot, and whatever launches next month. Every other
34
+ methodology or skill framework maintains its own platform support matrix. By
35
+ building on the open-source skills CLI ecosystem, BMAD offloads the highest-churn
36
+ maintenance burden and focuses on what actually differentiates it: the methodology
37
+ itself.
38
+ ```
39
+
40
+ **After** (distillate):
41
+ ```
42
+ ## Differentiation
43
+ - Anti-fragmentation positioning: BMAD = cross-platform constant across 40+ fragmenting AI tools; no competitor provides shared methodology layer
44
+ - Platform complexity delegated to Vercel skills CLI ecosystem (MIT); BMAD maintains methodology, not platform configs
45
+ ```
46
+
47
+ ### Technical Details to Compressed Facts
48
+
49
+ **Before** (discovery notes excerpt):
50
+ ```
51
+ ## Competitive Landscape
52
+
53
+ - **Vercel Skills.sh**: 83K+ skills, 18 agents, largest curated leaderboard —
54
+ but dev-only, skills trigger unreliably (20% without explicit prompting)
55
+ - **SkillsMP**: 400K+ skills directory, pure aggregator with no curation or CLI
56
+ - **ClawHub/OpenClaw**: ~3.2K curated skills with versioning/rollback, small ecosystem
57
+ - **Lindy**: No-code AI agent builder for business automation — closed platform,
58
+ no skill sharing
59
+ - **Microsoft Copilot Studio**: Enterprise no-code agent builder — vendor-locked
60
+ to Microsoft
61
+ - **MindStudio**: No-code AI agent platform — siloed, no interoperability
62
+ - **Make/Zapier AI**: Workflow automation adding AI agents — workflow-centric,
63
+ not methodology-centric
64
+ - **Key gap**: NO competitor combines structured methodology with plugin
65
+ marketplace — this is BMAD's whitespace
66
+ ```
67
+
68
+ **After** (distillate):
69
+ ```
70
+ ## Competitive Landscape
71
+ - No competitor combines structured methodology + plugin marketplace (whitespace)
72
+ - Skills.sh (Vercel): 83K skills, 18 agents, dev-only, 20% trigger reliability
73
+ - SkillsMP: 400K skills, aggregator only, no curation/CLI
74
+ - ClawHub: 3.2K curated, versioning, small ecosystem
75
+ - No-code platforms (Lindy, Copilot Studio, MindStudio, Make/Zapier): closed/siloed, no skill portability, business-only
76
+ ```
77
+
78
+ ### Deduplication Across Documents
79
+
80
+ When the same fact appears in both a brief and discovery notes:
81
+
82
+ **Brief says:**
83
+ ```
84
+ bmad-init must always be included as a base skill in every bundle
85
+ ```
86
+
87
+ **Discovery notes say:**
88
+ ```
89
+ bmad-init must always be included as a base skill in every bundle/install
90
+ (solves bootstrapping problem)
91
+ ```
92
+
93
+ **Distillate keeps the more contextual version:**
94
+ ```
95
+ - bmad-init: always included as base skill in every bundle (solves bootstrapping)
96
+ ```
97
+
98
+ ### Decision/Rationale Compression
99
+
100
+ **Before:**
101
+ ```
102
+ We decided not to build our own platform support matrix going forward, instead
103
+ delegating to the Vercel skills CLI ecosystem. The rationale is that maintaining
104
+ 20+ platform configs is the biggest maintenance burden and it's unsustainable
105
+ at 40+ platforms.
106
+ ```
107
+
108
+ **After:**
109
+ ```
110
+ - Rejected: own platform support matrix. Reason: unsustainable at 40+ platforms; delegate to Vercel CLI ecosystem
111
+ ```
112
+
113
+ ## Full Example
114
+
115
+ A complete distillate produced from a product brief and its discovery notes, targeted at PRD creation:
116
+
117
+ ```markdown
118
+ ---
119
+ type: bmad-distillate
120
+ sources:
121
+ - "product-brief-bmad-next-gen-installer.md"
122
+ - "product-brief-bmad-next-gen-installer-discovery-notes.md"
123
+ downstream_consumer: "PRD creation"
124
+ created: "2026-03-13"
125
+ token_estimate: 1450
126
+ parts: 1
127
+ ---
128
+
129
+ ## Core Concept
130
+ - BMAD Next-Gen Installer: replaces monolithic Node.js CLI with skill-based plugin architecture for distributing BMAD methodology across 40+ AI platforms
131
+ - Three layers: self-describing plugins (bmad-manifest.json), cross-platform install via Vercel skills CLI (MIT), runtime registration via bmad-init skill
132
+ - Transforms BMAD from dev-only methodology into open platform for any domain (creative, therapeutic, educational, personal)
133
+
134
+ ## Problem
135
+ - Current installer maintains ~20 platform configs manually; each platform convention change requires installer update, test, release — largest maintenance burden on team
136
+ - Node.js/npm required — blocks non-technical users on UI-based platforms (Claude Co-Work, etc.)
137
+ - CSV manifests are static, generated once at install; no runtime scanning/registration
138
+ - Unsustainable at 40+ platforms; new tools launching weekly
139
+
140
+ ## Solution Architecture
141
+ - Plugins: skill bundles with Anthropic plugin standard as base format + bmad-manifest.json extending for BMAD-specific metadata (installer options, capabilities, help integration, phase ordering, dependencies)
142
+ - Existing manifest example: `{"module-code":"bmm","replaces-skill":"bmad-create-product-brief","capabilities":[{"name":"create-brief","menu-code":"CB","supports-headless":true,"phase-name":"1-analysis","after":["brainstorming"],"before":["create-prd"],"is-required":true}]}`
143
+ - Vercel skills CLI handles platform translation; integration pattern (wrap/fork/call) is PRD decision
144
+ - bmad-init: global skill scanning installed bmad-manifest.json files, registering capabilities, configuring project settings; always included as base skill in every bundle (solves bootstrapping)
145
+ - bmad-update: plugin update path without full reinstall; technical approach (diff/replace/preserve customizations) is PRD decision
146
+ - Distribution tiers: (1) NPX installer wrapping skills CLI for technical users, (2) zip bundle + platform-specific README for non-technical users, (3) future marketplace
147
+ - Non-technical path has honest friction: "copy to right folder" requires knowing where; per-platform README instructions; improves over time as low-code space matures
148
+
149
+ ## Differentiation
150
+ - Anti-fragmentation: BMAD = cross-platform constant; no competitor provides shared methodology layer across AI tools
151
+ - Curated quality: all submissions gated, human-reviewed by BMad + core team; 13.4% of community skills have critical vulnerabilities (Snyk 2026); quality gate value increases as ecosystem gets noisier
152
+ - Domain-agnostic: no competitor builds beyond software dev workflows; same plugin system powers any domain via BMAD Builder (separate initiative)
153
+
154
+ ## Users (ordered by v1 priority)
155
+ - Module authors (primary v1): package/test/distribute plugins independently without installer changes
156
+ - Developers: single-command install on any of 40+ platforms via NPX
157
+ - Non-technical users: install without Node/Git/terminal; emerging segment including PMs, designers, educators
158
+ - Future plugin creators: non-dev authors using BMAD Builder; need distribution without building own installer
159
+
160
+ ## Success Criteria
161
+ - Zero (or near-zero) custom platform directory code; delegated to skills CLI ecosystem
162
+ - Installation verified on top platforms by volume; skills CLI handles long tail
163
+ - Non-technical install path validated with non-developer users
164
+ - bmad-init discovers/registers all plugins from manifests; clear errors for malformed manifests
165
+ - At least one external module author successfully publishes plugin using manifest system
166
+ - bmad-update works without full reinstall
167
+ - Existing CLI users have documented migration path
168
+
169
+ ## Scope
170
+ - In: manifest spec, bmad-init, bmad-update, Vercel CLI integration, NPX installer, zip bundles, migration path
171
+ - Out: BMAD Builder, marketplace web platform, skill conversion (prerequisite, separate), one-click install for all platforms, monetization, quality certification process (gated-submission principle is architectural requirement; process defined separately)
172
+ - Deferred: CI/CD integration, telemetry for module authors, air-gapped enterprise install, zip bundle integrity verification (checksums/signing), deeper non-technical platform integrations
173
+
174
+ ## Current Installer (migration context)
175
+ - Entry: `tools/cli/bmad-cli.js` (Commander.js) → `tools/cli/installers/lib/core/installer.js`
176
+ - Platforms: `platform-codes.yaml` (~20 platforms with target dirs, legacy dirs, template types, special flags)
177
+ - Manifests: CSV files (skill/workflow/agent-manifest.csv) are current source of truth, not JSON
178
+ - External modules: `external-official-modules.yaml` (CIS, GDS, TEA, WDS) from npm with semver
179
+ - Dependencies: 4-pass resolver (collect → parse → resolve → transitive); YAML-declared only
180
+ - Config: prompts for name, communication language, document output language, output folder
181
+ - Skills already use directory-per-skill layout; bmad-manifest.json sidecars exist but are not source of truth
182
+ - Key shift: CSV-based static manifests → JSON-based runtime scanning
183
+
184
+ ## Vercel Skills CLI
185
+ - `npx skills add <source>` — GitHub, GitLab, local paths, git URLs
186
+ - 40+ agents; per-agent path mappings; symlinks (recommended) or copies
187
+ - Scopes: project-level or global
188
+ - Discovery: `skills/`, `.agents/skills/`, agent-specific paths, `.claude-plugin/marketplace.json`
189
+ - Commands: add, list, find, remove, check, update, init
190
+ - Non-interactive: `-y`, `--all` flags for CI/CD
191
+
192
+ ## Competitive Landscape
193
+ - No competitor combines structured methodology + plugin marketplace (whitespace)
194
+ - Skills.sh (Vercel): 83K skills, dev-only, 20% trigger reliability without explicit prompting
195
+ - SkillsMP: 400K skills, aggregator only, no curation
196
+ - ClawHub: 3.2K curated, versioning, small
197
+ - No-code platforms (Lindy, Copilot Studio, MindStudio, Make/Zapier): closed/siloed, no skill portability, business-only
198
+ - Market: $7.84B (2025) → $52.62B (2030); Agent Skills spec ~4 months old, 351K+ skills; standards converging under Linux Foundation AAIF (MCP, AGENTS.md, A2A)
199
+
200
+ ## Rejected Alternatives
201
+ - Building own platform support matrix: unsustainable at 40+; delegate to Vercel ecosystem
202
+ - One-click install for non-technical v1: emerging space; guidance-based, improve over time
203
+ - Prior roadmap/brainstorming: clean start, unconstrained by previous planning
204
+
205
+ ## Open Questions
206
+ - Vercel CLI integration pattern: wrap/fork/call/peer dependency?
207
+ - bmad-update mechanics: diff/replace? Preserve user customizations?
208
+ - Migration story: command/manual reinstall/compatibility shim?
209
+ - Cross-platform testing: CI matrix for top N? Community testing for rest?
210
+ - bmad-manifest.json as open standard submission to Agent Skills governance?
211
+ - Platforms NOT supported by Vercel skills CLI?
212
+ - Manifest versioning strategy for backward compatibility?
213
+ - Plugin author getting-started experience and tooling?
214
+
215
+ ## Opportunities
216
+ - Module authors as acquisition channel: each published plugin distributes BMAD to creator's audience
217
+ - CI/CD integration: bmad-init as pipeline one-liner increases stickiness
218
+ - Educational institutions: structured methodology + non-technical install → university AI curriculum
219
+ - Skill composability: mixing BMAD modules with third-party skills for custom methodology stacks
220
+
221
+ ## Risks
222
+ - Manifest format evolution creates versioning/compatibility burden once third-party authors publish
223
+ - Quality gate needs defined process, not just claim — gated review model addresses
224
+ - 40+ platform testing environments even with Vercel handling translation
225
+ - Scope creep pressure from marketplace vision (explicitly excluded but primary long-term value)
226
+ - Vercel dependency: minor supply-chain risk; MIT license allows fork if deprioritized
227
+ ```