bmad-method 6.2.1-next.9 → 6.2.2

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 (400) hide show
  1. package/AGENTS.md +1 -0
  2. package/README_CN.md +23 -36
  3. package/package.json +4 -6
  4. package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-analyst/bmad-skill-manifest.yaml +1 -2
  5. package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/bmad-skill-manifest.yaml +1 -2
  6. package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/SKILL.md +2 -3
  7. package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/SKILL.md +1 -1
  8. package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/SKILL.md +1 -1
  9. package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/SKILL.md +1 -1
  10. package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-pm/bmad-skill-manifest.yaml +1 -2
  11. package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-ux-designer/bmad-skill-manifest.yaml +1 -2
  12. package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +1 -1
  13. package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +1 -1
  14. package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +1 -1
  15. package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +1 -1
  16. package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +1 -1
  17. package/src/{bmm/agents → bmm-skills/3-solutioning}/bmad-agent-architect/bmad-skill-manifest.yaml +1 -2
  18. package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-dev/bmad-skill-manifest.yaml +1 -2
  19. package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-qa/bmad-skill-manifest.yaml +1 -2
  20. package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-quick-flow-solo-dev/SKILL.md +1 -3
  21. package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +1 -2
  22. package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-sm/bmad-skill-manifest.yaml +1 -2
  23. package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/steps/step-01-gather-context.md +3 -2
  24. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-02-review.md +34 -0
  25. package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/steps/step-03-triage.md +7 -8
  26. package/src/bmm-skills/4-implementation/bmad-code-review/steps/step-04-present.md +129 -0
  27. package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/workflow.md +1 -0
  28. package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-correct-course/workflow.md +4 -4
  29. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/SKILL.md +1 -1
  30. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/tech-spec-template.md → bmm-skills/4-implementation/bmad-quick-dev/spec-template.md} +0 -2
  31. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/step-01-clarify-and-route.md +22 -8
  32. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/step-02-plan.md +3 -3
  33. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/step-03-implement.md +6 -0
  34. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/step-05-present.md +8 -6
  35. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/step-oneshot.md +2 -2
  36. package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/workflow.md +3 -3
  37. package/src/bmm-skills/module-help.csv +30 -0
  38. package/src/{core/skills/bmad-advanced-elicitation/workflow.md → core-skills/bmad-advanced-elicitation/SKILL.md} +3 -1
  39. package/src/{core/skills/bmad-editorial-review-prose/workflow.md → core-skills/bmad-editorial-review-prose/SKILL.md} +5 -0
  40. package/src/{core/skills/bmad-editorial-review-structure/workflow.md → core-skills/bmad-editorial-review-structure/SKILL.md} +5 -0
  41. package/src/core-skills/bmad-help/SKILL.md +73 -0
  42. package/src/{core/skills/bmad-index-docs/workflow.md → core-skills/bmad-index-docs/SKILL.md} +5 -0
  43. package/src/{core/skills/bmad-review-adversarial-general/workflow.md → core-skills/bmad-review-adversarial-general/SKILL.md} +5 -0
  44. package/src/{core/skills/bmad-review-edge-case-hunter/workflow.md → core-skills/bmad-review-edge-case-hunter/SKILL.md} +5 -0
  45. package/src/{core/skills/bmad-shard-doc/workflow.md → core-skills/bmad-shard-doc/SKILL.md} +5 -0
  46. package/src/core-skills/module-help.csv +11 -0
  47. package/tools/bmad-npx-wrapper.js +2 -2
  48. package/tools/cli/commands/install.js +1 -8
  49. package/tools/cli/external-official-modules.yaml +1 -1
  50. package/tools/cli/installers/lib/core/config-collector.js +110 -23
  51. package/tools/cli/installers/lib/core/dependency-resolver.js +11 -11
  52. package/tools/cli/installers/lib/core/installer.js +4 -214
  53. package/tools/cli/installers/lib/core/manifest-generator.js +122 -833
  54. package/tools/cli/installers/lib/core/manifest.js +2 -2
  55. package/tools/cli/installers/lib/custom/handler.js +1 -247
  56. package/tools/cli/installers/lib/ide/_base-ide.js +0 -16
  57. package/tools/cli/installers/lib/ide/_config-driven.js +13 -168
  58. package/tools/cli/installers/lib/ide/manager.js +2 -7
  59. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +0 -1
  60. package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +27 -0
  61. package/tools/cli/installers/lib/ide/shared/skill-manifest.js +1 -19
  62. package/tools/cli/installers/lib/modules/manager.js +12 -459
  63. package/tools/cli/lib/project-root.js +5 -5
  64. package/tools/cli/lib/ui.js +0 -19
  65. package/tools/skill-validator.md +52 -22
  66. package/tools/validate-skills.js +736 -0
  67. package/src/bmm/data/project-context-template.md +0 -26
  68. package/src/bmm/module-help.csv +0 -32
  69. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +0 -6
  70. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml +0 -1
  71. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md +0 -10
  72. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md +0 -170
  73. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md +0 -158
  74. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md +0 -193
  75. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md +0 -196
  76. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md +0 -199
  77. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md +0 -213
  78. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-06-complete.md +0 -159
  79. package/src/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md +0 -55
  80. package/src/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +0 -1
  81. package/src/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +0 -1
  82. package/src/bmm/workflows/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +0 -1
  83. package/src/bmm/workflows/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +0 -1
  84. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +0 -182
  85. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +0 -237
  86. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +0 -249
  87. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +0 -259
  88. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +0 -177
  89. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +0 -476
  90. package/src/bmm/workflows/1-analysis/research/research.template.md +0 -29
  91. package/src/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml +0 -1
  92. package/src/bmm/workflows/2-plan-workflows/bmad-edit-prd/bmad-skill-manifest.yaml +0 -1
  93. package/src/bmm/workflows/2-plan-workflows/bmad-validate-prd/bmad-skill-manifest.yaml +0 -1
  94. package/src/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/bmad-skill-manifest.yaml +0 -1
  95. package/src/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml +0 -1
  96. package/src/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/bmad-skill-manifest.yaml +0 -1
  97. package/src/bmm/workflows/4-implementation/bmad-code-review/bmad-skill-manifest.yaml +0 -1
  98. package/src/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +0 -41
  99. package/src/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +0 -38
  100. package/src/bmm/workflows/4-implementation/bmad-correct-course/bmad-skill-manifest.yaml +0 -1
  101. package/src/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml +0 -1
  102. package/src/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml +0 -1
  103. package/src/bmm/workflows/4-implementation/bmad-retrospective/bmad-skill-manifest.yaml +0 -1
  104. package/src/bmm/workflows/4-implementation/bmad-sprint-planning/bmad-skill-manifest.yaml +0 -1
  105. package/src/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml +0 -1
  106. package/src/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml +0 -1
  107. package/src/bmm/workflows/bmad-generate-project-context/bmad-skill-manifest.yaml +0 -1
  108. package/src/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml +0 -1
  109. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +0 -6
  110. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml +0 -1
  111. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md +0 -169
  112. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md +0 -114
  113. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md +0 -107
  114. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md +0 -107
  115. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md +0 -94
  116. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-06-resolve-findings.md +0 -144
  117. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md +0 -38
  118. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/bmad-skill-manifest.yaml +0 -1
  119. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +0 -6
  120. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml +0 -1
  121. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md +0 -185
  122. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md +0 -140
  123. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md +0 -123
  124. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-04-review.md +0 -195
  125. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md +0 -74
  126. package/src/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md +0 -73
  127. package/src/core/module-help.csv +0 -11
  128. package/src/core/skills/bmad-advanced-elicitation/SKILL.md +0 -6
  129. package/src/core/skills/bmad-advanced-elicitation/bmad-skill-manifest.yaml +0 -1
  130. package/src/core/skills/bmad-brainstorming/bmad-skill-manifest.yaml +0 -1
  131. package/src/core/skills/bmad-distillator/bmad-skill-manifest.yaml +0 -15
  132. package/src/core/skills/bmad-editorial-review-prose/SKILL.md +0 -6
  133. package/src/core/skills/bmad-editorial-review-prose/bmad-skill-manifest.yaml +0 -1
  134. package/src/core/skills/bmad-editorial-review-structure/SKILL.md +0 -6
  135. package/src/core/skills/bmad-editorial-review-structure/bmad-skill-manifest.yaml +0 -1
  136. package/src/core/skills/bmad-help/SKILL.md +0 -6
  137. package/src/core/skills/bmad-help/bmad-skill-manifest.yaml +0 -1
  138. package/src/core/skills/bmad-help/workflow.md +0 -88
  139. package/src/core/skills/bmad-index-docs/SKILL.md +0 -6
  140. package/src/core/skills/bmad-index-docs/bmad-skill-manifest.yaml +0 -1
  141. package/src/core/skills/bmad-init/bmad-skill-manifest.yaml +0 -1
  142. package/src/core/skills/bmad-party-mode/bmad-skill-manifest.yaml +0 -1
  143. package/src/core/skills/bmad-review-adversarial-general/SKILL.md +0 -6
  144. package/src/core/skills/bmad-review-adversarial-general/bmad-skill-manifest.yaml +0 -1
  145. package/src/core/skills/bmad-review-edge-case-hunter/SKILL.md +0 -6
  146. package/src/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +0 -1
  147. package/src/core/skills/bmad-shard-doc/SKILL.md +0 -6
  148. package/src/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +0 -1
  149. package/src/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +0 -1
  150. package/src/utility/agent-components/activation-rules.txt +0 -6
  151. package/src/utility/agent-components/activation-steps.txt +0 -14
  152. package/src/utility/agent-components/agent-command-header.md +0 -1
  153. package/src/utility/agent-components/agent.customize.template.yaml +0 -41
  154. package/src/utility/agent-components/handler-action.txt +0 -4
  155. package/src/utility/agent-components/handler-data.txt +0 -5
  156. package/src/utility/agent-components/handler-exec.txt +0 -6
  157. package/src/utility/agent-components/handler-multi.txt +0 -13
  158. package/src/utility/agent-components/handler-tmpl.txt +0 -5
  159. package/src/utility/agent-components/menu-handlers.txt +0 -6
  160. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +0 -368
  161. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +0 -179
  162. package/tools/cli/lib/activation-builder.js +0 -165
  163. package/tools/cli/lib/agent/compiler.js +0 -516
  164. package/tools/cli/lib/agent/installer.js +0 -680
  165. package/tools/cli/lib/agent/template-engine.js +0 -152
  166. package/tools/cli/lib/agent-analyzer.js +0 -97
  167. package/tools/cli/lib/agent-party-generator.js +0 -194
  168. package/tools/cli/lib/xml-handler.js +0 -177
  169. package/tools/cli/lib/xml-to-markdown.js +0 -82
  170. package/tools/cli/lib/yaml-xml-builder.js +0 -570
  171. package/tools/schema/agent.js +0 -489
  172. /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-analyst/SKILL.md +0 -0
  173. /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/SKILL.md +0 -0
  174. /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/explain-concept.md +0 -0
  175. /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/mermaid-gen.md +0 -0
  176. /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/validate-doc.md +0 -0
  177. /package/src/{bmm/agents → bmm-skills/1-analysis}/bmad-agent-tech-writer/write-document.md +0 -0
  178. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/SKILL.md +0 -0
  179. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/checklist.md +0 -0
  180. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/documentation-requirements.csv +0 -0
  181. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/instructions.md +0 -0
  182. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/deep-dive-template.md +0 -0
  183. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/index-template.md +0 -0
  184. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/project-overview-template.md +0 -0
  185. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/project-scan-report-schema.json +0 -0
  186. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/templates/source-tree-template.md +0 -0
  187. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflow.md +0 -0
  188. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/deep-dive-instructions.md +0 -0
  189. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/deep-dive-workflow.md +0 -0
  190. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/full-scan-instructions.md +0 -0
  191. /package/src/{bmm/workflows → bmm-skills/1-analysis}/bmad-document-project/workflows/full-scan-workflow.md +0 -0
  192. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/artifact-analyzer.md +0 -0
  193. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/opportunity-reviewer.md +0 -0
  194. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/skeptic-reviewer.md +0 -0
  195. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/agents/web-researcher.md +0 -0
  196. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/bmad-manifest.json +0 -0
  197. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/contextual-discovery.md +0 -0
  198. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/draft-and-review.md +0 -0
  199. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/finalize.md +0 -0
  200. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/prompts/guided-elicitation.md +0 -0
  201. /package/src/{bmm/workflows/1-analysis/bmad-product-brief-preview → bmm-skills/1-analysis/bmad-product-brief}/resources/brief-template.md +0 -0
  202. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +0 -0
  203. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -0
  204. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -0
  205. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -0
  206. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -0
  207. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -0
  208. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/research.template.md +0 -0
  209. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-domain-research/workflow.md +0 -0
  210. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/research.template.md +0 -0
  211. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-01-init.md +0 -0
  212. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +0 -0
  213. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +0 -0
  214. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +0 -0
  215. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +0 -0
  216. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +0 -0
  217. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-market-research/workflow.md +0 -0
  218. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/research.template.md +0 -0
  219. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +0 -0
  220. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -0
  221. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -0
  222. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -0
  223. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -0
  224. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -0
  225. /package/src/{bmm/workflows → bmm-skills}/1-analysis/research/bmad-technical-research/workflow.md +0 -0
  226. /package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-pm/SKILL.md +0 -0
  227. /package/src/{bmm/agents → bmm-skills/2-plan-workflows}/bmad-agent-ux-designer/SKILL.md +0 -0
  228. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/SKILL.md +0 -0
  229. /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-create-prd}/data/domain-complexity.csv +0 -0
  230. /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-create-prd}/data/prd-purpose.md +0 -0
  231. /package/src/{bmm/workflows/2-plan-workflows/bmad-validate-prd → bmm-skills/2-plan-workflows/bmad-create-prd}/data/project-types.csv +0 -0
  232. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-01-init.md +0 -0
  233. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-01b-continue.md +0 -0
  234. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-02-discovery.md +0 -0
  235. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-02b-vision.md +0 -0
  236. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -0
  237. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-03-success.md +0 -0
  238. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-04-journeys.md +0 -0
  239. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-05-domain.md +0 -0
  240. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-06-innovation.md +0 -0
  241. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-07-project-type.md +0 -0
  242. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-08-scoping.md +0 -0
  243. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-09-functional.md +0 -0
  244. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -0
  245. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-11-polish.md +0 -0
  246. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/steps-c/step-12-complete.md +0 -0
  247. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/templates/prd-template.md +0 -0
  248. /package/src/{core/tasks → bmm-skills/2-plan-workflows}/bmad-create-prd/workflow.md +0 -0
  249. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/SKILL.md +0 -0
  250. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md +0 -0
  251. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md +0 -0
  252. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md +0 -0
  253. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md +0 -0
  254. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -0
  255. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md +0 -0
  256. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md +0 -0
  257. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -0
  258. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -0
  259. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md +0 -0
  260. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -0
  261. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -0
  262. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -0
  263. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -0
  264. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +0 -0
  265. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/ux-design-template.md +0 -0
  266. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-create-ux-design/workflow.md +0 -0
  267. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/SKILL.md +0 -0
  268. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-edit-prd/workflow.md +0 -0
  269. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/SKILL.md +0 -0
  270. /package/src/{bmm/workflows/2-plan-workflows/create-prd → bmm-skills/2-plan-workflows/bmad-validate-prd}/data/domain-complexity.csv +0 -0
  271. /package/src/{bmm/workflows/2-plan-workflows/create-prd → bmm-skills/2-plan-workflows/bmad-validate-prd}/data/prd-purpose.md +0 -0
  272. /package/src/{bmm/workflows/2-plan-workflows/create-prd → bmm-skills/2-plan-workflows/bmad-validate-prd}/data/project-types.csv +0 -0
  273. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -0
  274. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -0
  275. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -0
  276. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -0
  277. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -0
  278. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -0
  279. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -0
  280. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -0
  281. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -0
  282. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -0
  283. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -0
  284. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -0
  285. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -0
  286. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -0
  287. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/bmad-validate-prd/workflow.md +0 -0
  288. /package/src/{core/tasks/bmad-create-prd → bmm-skills/2-plan-workflows/create-prd}/data/domain-complexity.csv +0 -0
  289. /package/src/{core/tasks/bmad-create-prd → bmm-skills/2-plan-workflows/create-prd}/data/prd-purpose.md +0 -0
  290. /package/src/{core/tasks/bmad-create-prd → bmm-skills/2-plan-workflows/create-prd}/data/project-types.csv +0 -0
  291. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +0 -0
  292. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +0 -0
  293. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +0 -0
  294. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +0 -0
  295. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -0
  296. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +0 -0
  297. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +0 -0
  298. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -0
  299. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -0
  300. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +0 -0
  301. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +0 -0
  302. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -0
  303. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +0 -0
  304. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +0 -0
  305. /package/src/{bmm/workflows → bmm-skills}/2-plan-workflows/create-prd/workflow-validate-prd.md +0 -0
  306. /package/src/{bmm/agents → bmm-skills/3-solutioning}/bmad-agent-architect/SKILL.md +0 -0
  307. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/SKILL.md +0 -0
  308. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -0
  309. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -0
  310. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -0
  311. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -0
  312. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -0
  313. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -0
  314. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -0
  315. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-check-implementation-readiness/workflow.md +0 -0
  316. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/SKILL.md +0 -0
  317. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/architecture-decision-template.md +0 -0
  318. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/data/domain-complexity.csv +0 -0
  319. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/data/project-types.csv +0 -0
  320. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-01-init.md +0 -0
  321. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md +0 -0
  322. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-02-context.md +0 -0
  323. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-03-starter.md +0 -0
  324. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md +0 -0
  325. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md +0 -0
  326. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-06-structure.md +0 -0
  327. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-07-validation.md +0 -0
  328. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +0 -0
  329. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-architecture/workflow.md +0 -0
  330. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/SKILL.md +0 -0
  331. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -0
  332. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -0
  333. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -0
  334. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -0
  335. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +0 -0
  336. /package/src/{bmm/workflows → bmm-skills}/3-solutioning/bmad-create-epics-and-stories/workflow.md +0 -0
  337. /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/SKILL.md +0 -0
  338. /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/project-context-template.md +0 -0
  339. /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/steps/step-01-discover.md +0 -0
  340. /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/steps/step-02-generate.md +0 -0
  341. /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/steps/step-03-complete.md +0 -0
  342. /package/src/{bmm/workflows → bmm-skills/3-solutioning}/bmad-generate-project-context/workflow.md +0 -0
  343. /package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-dev/SKILL.md +0 -0
  344. /package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-qa/SKILL.md +0 -0
  345. /package/src/{bmm/agents → bmm-skills/4-implementation}/bmad-agent-sm/SKILL.md +0 -0
  346. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-code-review/SKILL.md +0 -0
  347. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-correct-course/SKILL.md +0 -0
  348. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-correct-course/checklist.md +0 -0
  349. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/SKILL.md +0 -0
  350. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/checklist.md +0 -0
  351. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/discover-inputs.md +0 -0
  352. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/template.md +0 -0
  353. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-create-story/workflow.md +0 -0
  354. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-dev-story/SKILL.md +0 -0
  355. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-dev-story/checklist.md +0 -0
  356. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-dev-story/workflow.md +0 -0
  357. /package/src/{bmm/workflows → bmm-skills/4-implementation}/bmad-qa-generate-e2e-tests/SKILL.md +0 -0
  358. /package/src/{bmm/workflows → bmm-skills/4-implementation}/bmad-qa-generate-e2e-tests/checklist.md +0 -0
  359. /package/src/{bmm/workflows → bmm-skills/4-implementation}/bmad-qa-generate-e2e-tests/workflow.md +0 -0
  360. /package/src/{bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview → bmm-skills/4-implementation/bmad-quick-dev}/step-04-review.md +0 -0
  361. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-retrospective/SKILL.md +0 -0
  362. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-retrospective/workflow.md +0 -0
  363. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/SKILL.md +0 -0
  364. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/checklist.md +0 -0
  365. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +0 -0
  366. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-planning/workflow.md +0 -0
  367. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-status/SKILL.md +0 -0
  368. /package/src/{bmm/workflows → bmm-skills}/4-implementation/bmad-sprint-status/workflow.md +0 -0
  369. /package/src/{bmm → bmm-skills}/module.yaml +0 -0
  370. /package/src/{core/skills → core-skills}/bmad-advanced-elicitation/methods.csv +0 -0
  371. /package/src/{core/skills → core-skills}/bmad-brainstorming/SKILL.md +0 -0
  372. /package/src/{core/skills → core-skills}/bmad-brainstorming/brain-methods.csv +0 -0
  373. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-01-session-setup.md +0 -0
  374. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-01b-continue.md +0 -0
  375. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02a-user-selected.md +0 -0
  376. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -0
  377. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02c-random-selection.md +0 -0
  378. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -0
  379. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-03-technique-execution.md +0 -0
  380. /package/src/{core/skills → core-skills}/bmad-brainstorming/steps/step-04-idea-organization.md +0 -0
  381. /package/src/{core/skills → core-skills}/bmad-brainstorming/template.md +0 -0
  382. /package/src/{core/skills → core-skills}/bmad-brainstorming/workflow.md +0 -0
  383. /package/src/{core/skills → core-skills}/bmad-distillator/SKILL.md +0 -0
  384. /package/src/{core/skills → core-skills}/bmad-distillator/agents/distillate-compressor.md +0 -0
  385. /package/src/{core/skills → core-skills}/bmad-distillator/agents/round-trip-reconstructor.md +0 -0
  386. /package/src/{core/skills → core-skills}/bmad-distillator/resources/compression-rules.md +0 -0
  387. /package/src/{core/skills → core-skills}/bmad-distillator/resources/distillate-format-reference.md +0 -0
  388. /package/src/{core/skills → core-skills}/bmad-distillator/resources/splitting-strategy.md +0 -0
  389. /package/src/{core/skills → core-skills}/bmad-distillator/scripts/analyze_sources.py +0 -0
  390. /package/src/{core/skills → core-skills}/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -0
  391. /package/src/{core/skills → core-skills}/bmad-init/SKILL.md +0 -0
  392. /package/src/{core/skills → core-skills}/bmad-init/resources/core-module.yaml +0 -0
  393. /package/src/{core/skills → core-skills}/bmad-init/scripts/bmad_init.py +0 -0
  394. /package/src/{core/skills → core-skills}/bmad-init/scripts/tests/test_bmad_init.py +0 -0
  395. /package/src/{core/skills → core-skills}/bmad-party-mode/SKILL.md +0 -0
  396. /package/src/{core/skills → core-skills}/bmad-party-mode/steps/step-01-agent-loading.md +0 -0
  397. /package/src/{core/skills → core-skills}/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -0
  398. /package/src/{core/skills → core-skills}/bmad-party-mode/steps/step-03-graceful-exit.md +0 -0
  399. /package/src/{core/skills → core-skills}/bmad-party-mode/workflow.md +0 -0
  400. /package/src/{core → core-skills}/module.yaml +0 -0
@@ -764,10 +764,10 @@ class Manifest {
764
764
  const configs = {};
765
765
 
766
766
  for (const moduleName of modules) {
767
- // Handle core module differently - it's in src/core not src/modules/core
767
+ // Handle core module differently - it's in src/core-skills not src/modules/core
768
768
  const configPath =
769
769
  moduleName === 'core'
770
- ? path.join(process.cwd(), 'src', 'core', 'config.yaml')
770
+ ? path.join(process.cwd(), 'src', 'core-skills', 'config.yaml')
771
771
  : path.join(process.cwd(), 'src', 'modules', moduleName, 'config.yaml');
772
772
 
773
773
  try {
@@ -2,19 +2,11 @@ const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
3
  const yaml = require('yaml');
4
4
  const prompts = require('../../../lib/prompts');
5
- const { FileOps } = require('../../../lib/file-ops');
6
- const { XmlHandler } = require('../../../lib/xml-handler');
7
-
8
5
  /**
9
6
  * Handler for custom content (custom.yaml)
10
- * Installs custom agents and workflows without requiring a full module structure
7
+ * Discovers custom agents and workflows in the project
11
8
  */
12
9
  class CustomHandler {
13
- constructor() {
14
- this.fileOps = new FileOps();
15
- this.xmlHandler = new XmlHandler();
16
- }
17
-
18
10
  /**
19
11
  * Find all custom.yaml files in the project
20
12
  * @param {string} projectRoot - Project root directory
@@ -115,244 +107,6 @@ class CustomHandler {
115
107
  return null;
116
108
  }
117
109
  }
118
-
119
- /**
120
- * Install custom content
121
- * @param {string} customPath - Path to custom content directory
122
- * @param {string} bmadDir - Target bmad directory
123
- * @param {Object} config - Configuration from custom.yaml
124
- * @param {Function} fileTrackingCallback - Optional callback to track installed files
125
- * @returns {Object} Installation result
126
- */
127
- async install(customPath, bmadDir, config, fileTrackingCallback = null) {
128
- const results = {
129
- agentsInstalled: 0,
130
- workflowsInstalled: 0,
131
- filesCopied: 0,
132
- preserved: 0,
133
- errors: [],
134
- };
135
-
136
- try {
137
- // Create custom directories in bmad
138
- const bmadCustomDir = path.join(bmadDir, 'custom');
139
- const bmadAgentsDir = path.join(bmadCustomDir, 'agents');
140
- const bmadWorkflowsDir = path.join(bmadCustomDir, 'workflows');
141
-
142
- await fs.ensureDir(bmadCustomDir);
143
- await fs.ensureDir(bmadAgentsDir);
144
- await fs.ensureDir(bmadWorkflowsDir);
145
-
146
- // Process agents - compile and copy agents
147
- const agentsDir = path.join(customPath, 'agents');
148
- if (await fs.pathExists(agentsDir)) {
149
- await this.compileAndCopyAgents(agentsDir, bmadAgentsDir, bmadDir, config, fileTrackingCallback, results);
150
-
151
- // Count agent files
152
- const agentFiles = await this.findFilesRecursively(agentsDir, ['.agent.yaml', '.md']);
153
- results.agentsInstalled = agentFiles.length;
154
- }
155
-
156
- // Process workflows - copy entire workflows directory structure
157
- const workflowsDir = path.join(customPath, 'workflows');
158
- if (await fs.pathExists(workflowsDir)) {
159
- await this.copyDirectory(workflowsDir, bmadWorkflowsDir, results, fileTrackingCallback, config);
160
-
161
- // Count workflow files
162
- const workflowFiles = await this.findFilesRecursively(workflowsDir, ['.md']);
163
- results.workflowsInstalled = workflowFiles.length;
164
- }
165
-
166
- // Process any additional files at root
167
- const entries = await fs.readdir(customPath, { withFileTypes: true });
168
- for (const entry of entries) {
169
- if (entry.isFile() && entry.name !== 'custom.yaml' && !entry.name.startsWith('.') && !entry.name.endsWith('.md')) {
170
- // Skip .md files at root as they're likely docs
171
- const sourcePath = path.join(customPath, entry.name);
172
- const targetPath = path.join(bmadCustomDir, entry.name);
173
-
174
- try {
175
- // Check if file already exists
176
- if (await fs.pathExists(targetPath)) {
177
- // File already exists, preserve it
178
- results.preserved = (results.preserved || 0) + 1;
179
- } else {
180
- await fs.copy(sourcePath, targetPath);
181
- results.filesCopied++;
182
-
183
- if (fileTrackingCallback) {
184
- fileTrackingCallback(targetPath);
185
- }
186
- }
187
- } catch (error) {
188
- results.errors.push(`Failed to copy file ${entry.name}: ${error.message}`);
189
- }
190
- }
191
- }
192
- } catch (error) {
193
- results.errors.push(`Installation failed: ${error.message}`);
194
- }
195
-
196
- return results;
197
- }
198
-
199
- /**
200
- * Find all files with specific extensions recursively
201
- * @param {string} dir - Directory to search
202
- * @param {Array} extensions - File extensions to match
203
- * @returns {Array} List of matching files
204
- */
205
- async findFilesRecursively(dir, extensions) {
206
- const files = [];
207
-
208
- async function search(currentDir) {
209
- const entries = await fs.readdir(currentDir, { withFileTypes: true });
210
-
211
- for (const entry of entries) {
212
- const fullPath = path.join(currentDir, entry.name);
213
-
214
- if (entry.isDirectory()) {
215
- await search(fullPath);
216
- } else if (extensions.some((ext) => entry.name.endsWith(ext))) {
217
- files.push(fullPath);
218
- }
219
- }
220
- }
221
-
222
- await search(dir);
223
- return files;
224
- }
225
-
226
- /**
227
- * Recursively copy a directory
228
- * @param {string} sourceDir - Source directory
229
- * @param {string} targetDir - Target directory
230
- * @param {Object} results - Results object to update
231
- * @param {Function} fileTrackingCallback - Optional callback
232
- * @param {Object} config - Configuration for placeholder replacement
233
- */
234
- async copyDirectory(sourceDir, targetDir, results, fileTrackingCallback, config) {
235
- await fs.ensureDir(targetDir);
236
- const entries = await fs.readdir(sourceDir, { withFileTypes: true });
237
-
238
- for (const entry of entries) {
239
- const sourcePath = path.join(sourceDir, entry.name);
240
- const targetPath = path.join(targetDir, entry.name);
241
-
242
- if (entry.isDirectory()) {
243
- await this.copyDirectory(sourcePath, targetPath, results, fileTrackingCallback, config);
244
- } else {
245
- try {
246
- // Check if file already exists
247
- if (await fs.pathExists(targetPath)) {
248
- // File already exists, preserve it
249
- results.preserved = (results.preserved || 0) + 1;
250
- } else {
251
- // Copy with placeholder replacement for text files
252
- const textExtensions = ['.md', '.yaml', '.yml', '.txt', '.json'];
253
- if (textExtensions.some((ext) => entry.name.endsWith(ext))) {
254
- // Read source content
255
- let content = await fs.readFile(sourcePath, 'utf8');
256
-
257
- // Replace placeholders
258
- content = content.replaceAll('{user_name}', config.user_name || 'User');
259
- content = content.replaceAll('{communication_language}', config.communication_language || 'English');
260
- content = content.replaceAll('{output_folder}', config.output_folder || 'docs');
261
-
262
- // Write to target
263
- await fs.ensureDir(path.dirname(targetPath));
264
- await fs.writeFile(targetPath, content, 'utf8');
265
- } else {
266
- // Copy binary files as-is
267
- await fs.copy(sourcePath, targetPath);
268
- }
269
-
270
- results.filesCopied++;
271
- if (entry.name.endsWith('.md')) {
272
- results.workflowsInstalled++;
273
- }
274
- if (fileTrackingCallback) {
275
- fileTrackingCallback(targetPath);
276
- }
277
- }
278
- } catch (error) {
279
- results.errors.push(`Failed to copy ${entry.name}: ${error.message}`);
280
- }
281
- }
282
- }
283
- }
284
-
285
- /**
286
- * Compile .agent.yaml files to .md format and handle sidecars
287
- * @param {string} sourceAgentsPath - Source agents directory
288
- * @param {string} targetAgentsPath - Target agents directory
289
- * @param {string} bmadDir - BMAD installation directory
290
- * @param {Object} config - Configuration for placeholder replacement
291
- * @param {Function} fileTrackingCallback - Optional callback to track installed files
292
- * @param {Object} results - Results object to update
293
- */
294
- async compileAndCopyAgents(sourceAgentsPath, targetAgentsPath, bmadDir, config, fileTrackingCallback, results) {
295
- // Get all .agent.yaml files recursively
296
- const agentFiles = await this.findFilesRecursively(sourceAgentsPath, ['.agent.yaml']);
297
-
298
- for (const agentFile of agentFiles) {
299
- const relativePath = path.relative(sourceAgentsPath, agentFile).split(path.sep).join('/');
300
- const targetDir = path.join(targetAgentsPath, path.dirname(relativePath));
301
-
302
- await fs.ensureDir(targetDir);
303
-
304
- const agentName = path.basename(agentFile, '.agent.yaml');
305
- const targetMdPath = path.join(targetDir, `${agentName}.md`);
306
- // Use the actual bmadDir if available (for when installing to temp dir)
307
- const actualBmadDir = config._bmadDir || bmadDir;
308
- const customizePath = path.join(actualBmadDir, '_config', 'agents', `custom-${agentName}.customize.yaml`);
309
-
310
- // Read and compile the YAML
311
- try {
312
- const yamlContent = await fs.readFile(agentFile, 'utf8');
313
- const { compileAgent } = require('../../../lib/agent/compiler');
314
-
315
- // Create customize template if it doesn't exist
316
- if (!(await fs.pathExists(customizePath))) {
317
- const { getSourcePath } = require('../../../lib/project-root');
318
- const genericTemplatePath = getSourcePath('utility', 'agent-components', 'agent.customize.template.yaml');
319
- if (await fs.pathExists(genericTemplatePath)) {
320
- let templateContent = await fs.readFile(genericTemplatePath, 'utf8');
321
- await fs.writeFile(customizePath, templateContent, 'utf8');
322
- // Only show customize creation in verbose mode
323
- if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
324
- await prompts.log.message(' Created customize: custom-' + agentName + '.customize.yaml');
325
- }
326
- }
327
- }
328
-
329
- // Compile the agent
330
- const { xml } = compileAgent(yamlContent, {}, agentName, relativePath, { config });
331
-
332
- // Replace placeholders in the compiled content
333
- let processedXml = xml;
334
- processedXml = processedXml.replaceAll('{user_name}', config.user_name || 'User');
335
- processedXml = processedXml.replaceAll('{communication_language}', config.communication_language || 'English');
336
- processedXml = processedXml.replaceAll('{output_folder}', config.output_folder || 'docs');
337
-
338
- // Write the compiled MD file
339
- await fs.writeFile(targetMdPath, processedXml, 'utf8');
340
-
341
- // Track the file
342
- if (fileTrackingCallback) {
343
- fileTrackingCallback(targetMdPath);
344
- }
345
-
346
- // Only show compilation details in verbose mode
347
- if (process.env.BMAD_VERBOSE_INSTALL === 'true') {
348
- await prompts.log.message(' Compiled agent: ' + agentName + ' -> ' + path.relative(targetAgentsPath, targetMdPath));
349
- }
350
- } catch (error) {
351
- await prompts.log.warn(' Failed to compile agent ' + agentName + ': ' + error.message);
352
- results.errors.push(`Failed to compile agent ${agentName}: ${error.message}`);
353
- }
354
- }
355
- }
356
110
  }
357
111
 
358
112
  module.exports = { CustomHandler };
@@ -1,6 +1,5 @@
1
1
  const path = require('node:path');
2
2
  const fs = require('fs-extra');
3
- const { XmlHandler } = require('../../../lib/xml-handler');
4
3
  const prompts = require('../../../lib/prompts');
5
4
  const { getSourcePath } = require('../../../lib/project-root');
6
5
  const { BMAD_FOLDER_NAME } = require('./shared/path-utils');
@@ -18,7 +17,6 @@ class BaseIdeSetup {
18
17
  this.rulesDir = null; // Override in subclasses
19
18
  this.configFile = null; // Override in subclasses when detection is file-based
20
19
  this.detectionPaths = []; // Additional paths that indicate the IDE is configured
21
- this.xmlHandler = new XmlHandler();
22
20
  this.bmadFolderName = BMAD_FOLDER_NAME; // Default, can be overridden
23
21
  }
24
22
 
@@ -30,15 +28,6 @@ class BaseIdeSetup {
30
28
  this.bmadFolderName = bmadFolderName;
31
29
  }
32
30
 
33
- /**
34
- * Get the agent command activation header from the central template
35
- * @returns {string} The activation header text
36
- */
37
- async getAgentCommandHeader() {
38
- const headerPath = getSourcePath('utility', 'agent-components', 'agent-command-header.md');
39
- return await fs.readFile(headerPath, 'utf8');
40
- }
41
-
42
31
  /**
43
32
  * Main setup method - must be implemented by subclasses
44
33
  * @param {string} projectDir - Project directory
@@ -511,11 +500,6 @@ class BaseIdeSetup {
511
500
  // Replace placeholders
512
501
  let processed = content;
513
502
 
514
- // Inject activation block for agent files FIRST (before replacements)
515
- if (metadata.name && content.includes('<agent')) {
516
- processed = this.xmlHandler.injectActivationSimple(processed, metadata);
517
- }
518
-
519
503
  // Only replace {project-root} if a specific projectDir is provided
520
504
  // Otherwise leave the placeholder intact
521
505
  // Note: Don't add trailing slash - paths in source include leading slash
@@ -4,9 +4,6 @@ const fs = require('fs-extra');
4
4
  const yaml = require('yaml');
5
5
  const { BaseIdeSetup } = require('./_base-ide');
6
6
  const prompts = require('../../../lib/prompts');
7
- const { AgentCommandGenerator } = require('./shared/agent-command-generator');
8
- const { WorkflowCommandGenerator } = require('./shared/workflow-command-generator');
9
- const { TaskToolCommandGenerator } = require('./shared/task-tool-command-generator');
10
7
  const csv = require('csv-parse/sync');
11
8
 
12
9
  /**
@@ -115,53 +112,20 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
115
112
  * @returns {Promise<Object>} Installation result
116
113
  */
117
114
  async installToTarget(projectDir, bmadDir, config, options) {
118
- const { target_dir, template_type, artifact_types } = config;
115
+ const { target_dir } = config;
119
116
 
120
- // Skip targets with explicitly empty artifact_types and no verbatim skills
121
- // This prevents creating empty directories when no artifacts will be written
122
- const skipStandardArtifacts = Array.isArray(artifact_types) && artifact_types.length === 0;
123
- if (skipStandardArtifacts && !config.skill_format) {
124
- return { success: true, results: { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 } };
117
+ if (!config.skill_format) {
118
+ return { success: false, reason: 'missing-skill-format', error: 'Installer config missing skill_format — cannot install skills' };
125
119
  }
126
120
 
127
121
  const targetPath = path.join(projectDir, target_dir);
128
122
  await this.ensureDir(targetPath);
129
123
 
130
- const selectedModules = options.selectedModules || [];
131
- const results = { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 };
132
- this.skillWriteTracker = config.skill_format ? new Set() : null;
133
-
134
- // Install standard artifacts (agents, workflows, tasks, tools)
135
- if (!skipStandardArtifacts) {
136
- // Install agents
137
- if (!artifact_types || artifact_types.includes('agents')) {
138
- const agentGen = new AgentCommandGenerator(this.bmadFolderName);
139
- const { artifacts } = await agentGen.collectAgentArtifacts(bmadDir, selectedModules);
140
- results.agents = await this.writeAgentArtifacts(targetPath, artifacts, template_type, config);
141
- }
142
-
143
- // Install workflows
144
- if (!artifact_types || artifact_types.includes('workflows')) {
145
- const workflowGen = new WorkflowCommandGenerator(this.bmadFolderName);
146
- const { artifacts } = await workflowGen.collectWorkflowArtifacts(bmadDir);
147
- results.workflows = await this.writeWorkflowArtifacts(targetPath, artifacts, template_type, config);
148
- }
149
-
150
- // Install tasks and tools using template system (supports TOML for Gemini, MD for others)
151
- if (!artifact_types || artifact_types.includes('tasks') || artifact_types.includes('tools')) {
152
- const taskToolGen = new TaskToolCommandGenerator(this.bmadFolderName);
153
- const { artifacts } = await taskToolGen.collectTaskToolArtifacts(bmadDir);
154
- const taskToolResult = await this.writeTaskToolArtifacts(targetPath, artifacts, template_type, config);
155
- results.tasks = taskToolResult.tasks || 0;
156
- results.tools = taskToolResult.tools || 0;
157
- }
158
- }
124
+ this.skillWriteTracker = new Set();
125
+ const results = { skills: 0 };
159
126
 
160
- // Install verbatim skills (type: skill)
161
- if (config.skill_format) {
162
- results.skills = await this.installVerbatimSkills(projectDir, bmadDir, targetPath, config);
163
- results.skillDirectories = this.skillWriteTracker ? this.skillWriteTracker.size : 0;
164
- }
127
+ results.skills = await this.installVerbatimSkills(projectDir, bmadDir, targetPath, config);
128
+ results.skillDirectories = this.skillWriteTracker.size;
165
129
 
166
130
  await this.printSummary(results, target_dir, options);
167
131
  this.skillWriteTracker = null;
@@ -177,15 +141,11 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
177
141
  * @returns {Promise<Object>} Installation result
178
142
  */
179
143
  async installToMultipleTargets(projectDir, bmadDir, targets, options) {
180
- const allResults = { agents: 0, workflows: 0, tasks: 0, tools: 0, skills: 0 };
144
+ const allResults = { skills: 0 };
181
145
 
182
146
  for (const target of targets) {
183
147
  const result = await this.installToTarget(projectDir, bmadDir, target, options);
184
148
  if (result.success) {
185
- allResults.agents += result.results.agents || 0;
186
- allResults.workflows += result.results.workflows || 0;
187
- allResults.tasks += result.results.tasks || 0;
188
- allResults.tools += result.results.tools || 0;
189
149
  allResults.skills += result.results.skills || 0;
190
150
  }
191
151
  }
@@ -193,118 +153,6 @@ class ConfigDrivenIdeSetup extends BaseIdeSetup {
193
153
  return { success: true, results: allResults };
194
154
  }
195
155
 
196
- /**
197
- * Write agent artifacts to target directory
198
- * @param {string} targetPath - Target directory path
199
- * @param {Array} artifacts - Agent artifacts
200
- * @param {string} templateType - Template type to use
201
- * @param {Object} config - Installation configuration
202
- * @returns {Promise<number>} Count of artifacts written
203
- */
204
- async writeAgentArtifacts(targetPath, artifacts, templateType, config = {}) {
205
- // Try to load platform-specific template, fall back to default-agent
206
- const { content: template, extension } = await this.loadTemplate(templateType, 'agent', config, 'default-agent');
207
- let count = 0;
208
-
209
- for (const artifact of artifacts) {
210
- const content = this.renderTemplate(template, artifact);
211
- const filename = this.generateFilename(artifact, 'agent', extension);
212
-
213
- if (config.skill_format) {
214
- await this.writeSkillFile(targetPath, artifact, content);
215
- } else {
216
- const filePath = path.join(targetPath, filename);
217
- await this.writeFile(filePath, content);
218
- }
219
- count++;
220
- }
221
-
222
- return count;
223
- }
224
-
225
- /**
226
- * Write workflow artifacts to target directory
227
- * @param {string} targetPath - Target directory path
228
- * @param {Array} artifacts - Workflow artifacts
229
- * @param {string} templateType - Template type to use
230
- * @param {Object} config - Installation configuration
231
- * @returns {Promise<number>} Count of artifacts written
232
- */
233
- async writeWorkflowArtifacts(targetPath, artifacts, templateType, config = {}) {
234
- let count = 0;
235
-
236
- for (const artifact of artifacts) {
237
- if (artifact.type === 'workflow-command') {
238
- const workflowTemplateType = config.md_workflow_template || `${templateType}-workflow`;
239
- const { content: template, extension } = await this.loadTemplate(workflowTemplateType, '', config, 'default-workflow');
240
- const content = this.renderTemplate(template, artifact);
241
- const filename = this.generateFilename(artifact, 'workflow', extension);
242
-
243
- if (config.skill_format) {
244
- await this.writeSkillFile(targetPath, artifact, content);
245
- } else {
246
- const filePath = path.join(targetPath, filename);
247
- await this.writeFile(filePath, content);
248
- }
249
- count++;
250
- }
251
- }
252
-
253
- return count;
254
- }
255
-
256
- /**
257
- * Write task/tool artifacts to target directory using templates
258
- * @param {string} targetPath - Target directory path
259
- * @param {Array} artifacts - Task/tool artifacts
260
- * @param {string} templateType - Template type to use
261
- * @param {Object} config - Installation configuration
262
- * @returns {Promise<Object>} Counts of tasks and tools written
263
- */
264
- async writeTaskToolArtifacts(targetPath, artifacts, templateType, config = {}) {
265
- let taskCount = 0;
266
- let toolCount = 0;
267
-
268
- // Pre-load templates to avoid repeated file I/O in the loop
269
- const taskTemplate = await this.loadTemplate(templateType, 'task', config, 'default-task');
270
- const toolTemplate = await this.loadTemplate(templateType, 'tool', config, 'default-tool');
271
-
272
- const { artifact_types } = config;
273
-
274
- for (const artifact of artifacts) {
275
- if (artifact.type !== 'task' && artifact.type !== 'tool') {
276
- continue;
277
- }
278
-
279
- // Skip if the specific artifact type is not requested in config
280
- if (artifact_types) {
281
- if (artifact.type === 'task' && !artifact_types.includes('tasks')) continue;
282
- if (artifact.type === 'tool' && !artifact_types.includes('tools')) continue;
283
- }
284
-
285
- // Use pre-loaded template based on artifact type
286
- const { content: template, extension } = artifact.type === 'task' ? taskTemplate : toolTemplate;
287
-
288
- const content = this.renderTemplate(template, artifact);
289
- const filename = this.generateFilename(artifact, artifact.type, extension);
290
-
291
- if (config.skill_format) {
292
- await this.writeSkillFile(targetPath, artifact, content);
293
- } else {
294
- const filePath = path.join(targetPath, filename);
295
- await this.writeFile(filePath, content);
296
- }
297
-
298
- if (artifact.type === 'task') {
299
- taskCount++;
300
- } else {
301
- toolCount++;
302
- }
303
- }
304
-
305
- return { tasks: taskCount, tools: toolCount };
306
- }
307
-
308
156
  /**
309
157
  * Load template based on type and configuration
310
158
  * @param {string} templateType - Template type (claude, windsurf, etc.)
@@ -630,7 +478,7 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
630
478
  }
631
479
 
632
480
  /**
633
- * Install verbatim skill directories (type: skill entries from skill-manifest.csv).
481
+ * Install verbatim native SKILL.md directories from skill-manifest.csv.
634
482
  * Copies the entire source directory as-is into the IDE skill directory.
635
483
  * The source SKILL.md is used directly — no frontmatter transformation or file generation.
636
484
  * @param {string} projectDir - Project directory
@@ -711,13 +559,10 @@ LOAD and execute from: {project-root}/{{bmadFolderName}}/{{path}}
711
559
  */
712
560
  async printSummary(results, targetDir, options = {}) {
713
561
  if (options.silent) return;
714
- const parts = [];
715
- const totalDirs =
716
- results.skillDirectories || (results.workflows || 0) + (results.tasks || 0) + (results.tools || 0) + (results.skills || 0);
717
- const skillCount = totalDirs - (results.agents || 0);
718
- if (skillCount > 0) parts.push(`${skillCount} skills`);
719
- if (results.agents > 0) parts.push(`${results.agents} agents`);
720
- await prompts.log.success(`${this.name} configured: ${parts.join(', ')} → ${targetDir}`);
562
+ const count = results.skillDirectories || results.skills || 0;
563
+ if (count > 0) {
564
+ await prompts.log.success(`${this.name} configured: ${count} skills ${targetDir}`);
565
+ }
721
566
  }
722
567
 
723
568
  /**
@@ -159,14 +159,9 @@ class IdeManager {
159
159
  // Build detail string from handler-returned data
160
160
  let detail = '';
161
161
  if (handlerResult && handlerResult.results) {
162
- // Config-driven handlers return { success, results: { agents, workflows, tasks, tools } }
163
162
  const r = handlerResult.results;
164
- const parts = [];
165
- const totalDirs = r.skillDirectories || (r.workflows || 0) + (r.tasks || 0) + (r.tools || 0) + (r.skills || 0);
166
- const skillCount = totalDirs - (r.agents || 0);
167
- if (skillCount > 0) parts.push(`${skillCount} skills`);
168
- if (r.agents > 0) parts.push(`${r.agents} agents`);
169
- detail = parts.join(', ');
163
+ const count = r.skillDirectories || r.skills || 0;
164
+ if (count > 0) detail = `${count} skills`;
170
165
  }
171
166
  // Propagate handler's success status (default true for backward compat)
172
167
  const success = handlerResult?.success !== false;
@@ -4,7 +4,6 @@ const { toColonPath, toDashPath, customAgentColonName, customAgentDashName, BMAD
4
4
 
5
5
  /**
6
6
  * Generates launcher command files for each agent
7
- * Similar to WorkflowCommandGenerator but for agents
8
7
  */
9
8
  class AgentCommandGenerator {
10
9
  constructor(bmadFolderName = BMAD_FOLDER_NAME) {
@@ -5,6 +5,33 @@ const { loadSkillManifest, getCanonicalId } = require('./skill-manifest');
5
5
  /**
6
6
  * Helpers for gathering BMAD agents/tasks from the installed tree.
7
7
  * Shared by installers that need Claude-style exports.
8
+ *
9
+ * TODO: Dead code cleanup — compiled XML agents are retired.
10
+ *
11
+ * All agents now use the SKILL.md directory format with bmad-skill-manifest.yaml
12
+ * (type: agent). The legacy pipeline below only discovers compiled .md files
13
+ * containing <agent> XML tags, which no longer exist. The following are dead:
14
+ *
15
+ * - getAgentsFromBmad() — scans {module}/agents/ for .md files with <agent> tags
16
+ * - getAgentsFromDir() — recursive helper for the above
17
+ * - AgentCommandGenerator — (agent-command-generator.js) generates launcher .md files
18
+ * that tell the LLM to load a compiled agent .md file
19
+ * - agent-command-template.md — (templates/) the launcher template with hardcoded
20
+ * {module}/agents/{{path}} reference
21
+ *
22
+ * Agent metadata for agent-manifest.csv is now handled entirely by
23
+ * ManifestGenerator.getAgentsFromDirRecursive() in manifest-generator.js,
24
+ * which walks the full module tree and finds type:agent directories.
25
+ *
26
+ * IDE installation of agents is handled by the native skill pipeline —
27
+ * each agent's SKILL.md directory is installed directly to the IDE's
28
+ * skills path, so no launcher intermediary is needed.
29
+ *
30
+ * Cleanup: remove getAgentsFromBmad, getAgentsFromDir, their exports,
31
+ * AgentCommandGenerator, agent-command-template.md, and all call sites
32
+ * in IDE installers that invoke collectAgentArtifacts / writeAgentLaunchers /
33
+ * writeColonArtifacts / writeDashArtifacts.
34
+ * getTasksFromBmad and getTasksFromDir may still be live — verify before removing.
8
35
  */
9
36
  async function getAgentsFromBmad(bmadDir, selectedModules = []) {
10
37
  const agents = [];
@@ -27,7 +27,7 @@ async function loadSkillManifest(dirPath) {
27
27
  /**
28
28
  * Get the canonicalId for a specific file from a loaded skill manifest.
29
29
  * @param {Object|null} manifest - Loaded manifest (from loadSkillManifest)
30
- * @param {string} filename - Source filename to look up (e.g., 'pm.md', 'help.md', 'pm.agent.yaml')
30
+ * @param {string} filename - Source filename to look up (e.g., 'pm.md', 'help.md')
31
31
  * @returns {string} canonicalId or empty string
32
32
  */
33
33
  function getCanonicalId(manifest, filename) {
@@ -36,12 +36,6 @@ function getCanonicalId(manifest, filename) {
36
36
  if (manifest.__single) return manifest.__single.canonicalId || '';
37
37
  // Multi-entry: look up by filename directly
38
38
  if (manifest[filename]) return manifest[filename].canonicalId || '';
39
- // Fallback: try alternate extensions for compiled files
40
- const baseName = filename.replace(/\.(md|xml)$/i, '');
41
- const agentKey = `${baseName}.agent.yaml`;
42
- if (manifest[agentKey]) return manifest[agentKey].canonicalId || '';
43
- const xmlKey = `${baseName}.xml`;
44
- if (manifest[xmlKey]) return manifest[xmlKey].canonicalId || '';
45
39
  return '';
46
40
  }
47
41
 
@@ -57,12 +51,6 @@ function getArtifactType(manifest, filename) {
57
51
  if (manifest.__single) return manifest.__single.type || null;
58
52
  // Multi-entry: look up by filename directly
59
53
  if (manifest[filename]) return manifest[filename].type || null;
60
- // Fallback: try alternate extensions for compiled files
61
- const baseName = filename.replace(/\.(md|xml)$/i, '');
62
- const agentKey = `${baseName}.agent.yaml`;
63
- if (manifest[agentKey]) return manifest[agentKey].type || null;
64
- const xmlKey = `${baseName}.xml`;
65
- if (manifest[xmlKey]) return manifest[xmlKey].type || null;
66
54
  return null;
67
55
  }
68
56
 
@@ -78,12 +66,6 @@ function getInstallToBmad(manifest, filename) {
78
66
  if (manifest.__single) return manifest.__single.install_to_bmad !== false;
79
67
  // Multi-entry: look up by filename directly
80
68
  if (manifest[filename]) return manifest[filename].install_to_bmad !== false;
81
- // Fallback: try alternate extensions for compiled files
82
- const baseName = filename.replace(/\.(md|xml)$/i, '');
83
- const agentKey = `${baseName}.agent.yaml`;
84
- if (manifest[agentKey]) return manifest[agentKey].install_to_bmad !== false;
85
- const xmlKey = `${baseName}.xml`;
86
- if (manifest[xmlKey]) return manifest[xmlKey].install_to_bmad !== false;
87
69
  return true;
88
70
  }
89
71