bmad-method 6.0.0-alpha.3 → 6.0.0-alpha.5

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 (540) hide show
  1. package/.claude/commands/bmad/bmm/agents/analyst.md +67 -0
  2. package/.claude/commands/bmad/bmm/agents/architect.md +72 -0
  3. package/.claude/commands/bmad/bmm/agents/dev.md +69 -0
  4. package/.claude/commands/bmad/bmm/agents/paige.md +82 -0
  5. package/.claude/commands/bmad/bmm/agents/pm.md +76 -0
  6. package/.claude/commands/bmad/bmm/agents/sm.md +85 -0
  7. package/.claude/commands/bmad/bmm/agents/tea.md +72 -0
  8. package/.claude/commands/bmad/bmm/agents/tech-writer.md +82 -0
  9. package/.claude/commands/bmad/bmm/agents/ux-designer.md +71 -0
  10. package/.claude/commands/bmad/bmm/workflows/README.md +132 -0
  11. package/.claude/commands/bmad/bmm/workflows/architecture.md +15 -0
  12. package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +15 -0
  13. package/.claude/commands/bmad/bmm/workflows/code-review.md +15 -0
  14. package/.claude/commands/bmad/bmm/workflows/correct-course.md +15 -0
  15. package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +15 -0
  16. package/.claude/commands/bmad/bmm/workflows/create-story.md +15 -0
  17. package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +15 -0
  18. package/.claude/commands/bmad/bmm/workflows/dev-story.md +15 -0
  19. package/.claude/commands/bmad/bmm/workflows/document-project.md +15 -0
  20. package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +15 -0
  21. package/.claude/commands/bmad/bmm/workflows/narrative.md +15 -0
  22. package/.claude/commands/bmad/bmm/workflows/prd.md +15 -0
  23. package/.claude/commands/bmad/bmm/workflows/product-brief.md +15 -0
  24. package/.claude/commands/bmad/bmm/workflows/research.md +15 -0
  25. package/.claude/commands/bmad/bmm/workflows/retrospective.md +15 -0
  26. package/.claude/commands/bmad/bmm/workflows/solutioning-gate-check.md +15 -0
  27. package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +15 -0
  28. package/.claude/commands/bmad/bmm/workflows/story-context.md +15 -0
  29. package/.claude/commands/bmad/bmm/workflows/story-done.md +15 -0
  30. package/.claude/commands/bmad/bmm/workflows/story-ready.md +15 -0
  31. package/.claude/commands/bmad/bmm/workflows/tech-spec-sm.md +15 -0
  32. package/.claude/commands/bmad/bmm/workflows/tech-spec.md +15 -0
  33. package/.claude/commands/bmad/bmm/workflows/workflow-init.md +15 -0
  34. package/.claude/commands/bmad/bmm/workflows/workflow-status.md +15 -0
  35. package/.claude/commands/bmad/cis/agents/README.md +104 -0
  36. package/.claude/commands/bmad/cis/agents/brainstorming-coach.md +62 -0
  37. package/.claude/commands/bmad/cis/agents/creative-problem-solver.md +62 -0
  38. package/.claude/commands/bmad/cis/agents/design-thinking-coach.md +62 -0
  39. package/.claude/commands/bmad/cis/agents/innovation-strategist.md +62 -0
  40. package/.claude/commands/bmad/cis/agents/storyteller.md +59 -0
  41. package/.claude/commands/bmad/cis/workflows/README.md +37 -0
  42. package/.claude/commands/bmad/cis/workflows/design-thinking.md +15 -0
  43. package/.claude/commands/bmad/cis/workflows/innovation-strategy.md +15 -0
  44. package/.claude/commands/bmad/cis/workflows/problem-solving.md +15 -0
  45. package/.claude/commands/bmad/cis/workflows/storytelling.md +15 -0
  46. package/.claude/commands/bmad/core/workflows/README.md +10 -0
  47. package/.claude/settings.local.json +7 -42
  48. package/CHANGELOG.md +544 -0
  49. package/README.md +266 -101
  50. package/bmad/_cfg/agent-manifest.csv +13 -3
  51. package/bmad/_cfg/agents/bmm-dev.customize.yaml +42 -0
  52. package/bmad/_cfg/agents/bmm-paige.customize.yaml +42 -0
  53. package/bmad/_cfg/agents/bmm-pm.customize.yaml +42 -0
  54. package/bmad/_cfg/agents/bmm-sm.customize.yaml +42 -0
  55. package/bmad/_cfg/agents/bmm-tea.customize.yaml +42 -0
  56. package/bmad/_cfg/agents/bmm-tech-writer.customize.yaml +42 -0
  57. package/bmad/_cfg/agents/bmm-ux-designer.customize.yaml +42 -0
  58. package/bmad/_cfg/agents/cis-brainstorming-coach.customize.yaml +42 -0
  59. package/bmad/_cfg/agents/cis-creative-problem-solver.customize.yaml +42 -0
  60. package/bmad/_cfg/agents/cis-design-thinking-coach.customize.yaml +42 -0
  61. package/bmad/_cfg/agents/cis-innovation-strategist.customize.yaml +42 -0
  62. package/bmad/_cfg/agents/cis-storyteller.customize.yaml +42 -0
  63. package/bmad/_cfg/files-manifest.csv +267 -22
  64. package/bmad/_cfg/ides/claude-code.yaml +6 -0
  65. package/bmad/_cfg/manifest.yaml +5 -5
  66. package/bmad/_cfg/task-manifest.csv +5 -0
  67. package/bmad/_cfg/tool-manifest.csv +1 -0
  68. package/bmad/_cfg/workflow-manifest.csv +37 -2
  69. package/bmad/bmb/README.md +135 -73
  70. package/bmad/bmb/agents/bmad-builder.md.bak +70 -0
  71. package/bmad/bmb/config.yaml +2 -2
  72. package/bmad/bmb/workflows/audit-workflow/instructions.md +1 -1
  73. package/bmad/bmb/workflows/audit-workflow/workflow.yaml.bak +3 -1
  74. package/bmad/bmb/workflows/create-agent/README.md +126 -243
  75. package/bmad/bmb/workflows/create-agent/instructions.md +25 -12
  76. package/bmad/bmb/workflows/create-module/README.md +163 -154
  77. package/bmad/bmb/workflows/create-module/workflow.yaml.bak +2 -0
  78. package/bmad/bmb/workflows/create-workflow/instructions.md +16 -8
  79. package/bmad/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
  80. package/bmad/bmb/workflows/create-workflow/workflow.yaml.bak +2 -0
  81. package/bmad/bmb/workflows/edit-agent/workflow.yaml.bak +33 -0
  82. package/bmad/bmb/workflows/edit-module/workflow.yaml.bak +34 -0
  83. package/bmad/bmb/workflows/edit-workflow/workflow.yaml.bak +2 -0
  84. package/bmad/bmb/workflows/module-brief/workflow.yaml.bak +2 -0
  85. package/bmad/bmb/workflows/redoc/workflow.yaml.bak +1 -0
  86. package/bmad/bmm/README.md +128 -0
  87. package/bmad/bmm/README.md.bak +169 -0
  88. package/bmad/bmm/agents/analyst.md +67 -0
  89. package/bmad/bmm/agents/analyst.md.bak +67 -0
  90. package/bmad/bmm/agents/architect.md +72 -0
  91. package/bmad/bmm/agents/architect.md.bak +73 -0
  92. package/bmad/bmm/agents/dev.md +69 -0
  93. package/bmad/bmm/agents/dev.md.bak +69 -0
  94. package/bmad/bmm/agents/paige.md.bak +82 -0
  95. package/bmad/bmm/agents/pm.md +76 -0
  96. package/bmad/bmm/agents/pm.md.bak +76 -0
  97. package/bmad/bmm/agents/sm.md +85 -0
  98. package/bmad/bmm/agents/sm.md.bak +85 -0
  99. package/bmad/bmm/agents/tea.md +72 -0
  100. package/bmad/bmm/agents/tea.md.bak +72 -0
  101. package/bmad/bmm/agents/tech-writer.md +82 -0
  102. package/bmad/bmm/agents/ux-designer.md +71 -0
  103. package/bmad/bmm/agents/ux-designer.md.bak +71 -0
  104. package/bmad/bmm/config.yaml +17 -0
  105. package/bmad/bmm/docs/README.md +235 -0
  106. package/bmad/bmm/docs/agents-guide.md +1057 -0
  107. package/bmad/bmm/docs/brownfield-guide.md +759 -0
  108. package/bmad/bmm/docs/enterprise-agentic-development.md +680 -0
  109. package/bmad/bmm/docs/faq.md +589 -0
  110. package/bmad/bmm/docs/glossary.md +321 -0
  111. package/bmad/bmm/docs/party-mode.md +224 -0
  112. package/bmad/bmm/docs/quick-spec-flow.md +652 -0
  113. package/{docs/BMad-Method-V6-Quick-Start.md → bmad/bmm/docs/quick-start.md} +72 -47
  114. package/bmad/bmm/docs/scale-adaptive-system.md +599 -0
  115. package/bmad/bmm/docs/troubleshooting.md +680 -0
  116. package/{src/modules/bmm/workflows/3-solutioning/architecture/README.md → bmad/bmm/docs/workflow-architecture-reference.md} +130 -77
  117. package/{src/modules/bmm/workflows/document-project/README.md → bmad/bmm/docs/workflow-document-project-reference.md} +45 -2
  118. package/bmad/bmm/docs/workflows-analysis.md +670 -0
  119. package/bmad/bmm/docs/workflows-implementation.md +1758 -0
  120. package/bmad/bmm/docs/workflows-planning.md +1086 -0
  121. package/bmad/bmm/docs/workflows-solutioning.md +726 -0
  122. package/bmad/bmm/tasks/daily-standup.xml +85 -0
  123. package/bmad/bmm/teams/team-fullstack.yaml +11 -0
  124. package/bmad/bmm/teams/team-gamedev.yaml +14 -0
  125. package/bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  126. package/bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  127. package/bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  128. package/bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  129. package/bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  130. package/bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  131. package/bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  132. package/bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  133. package/bmad/bmm/testarch/knowledge/network-first.md +486 -0
  134. package/bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  135. package/bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  136. package/bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  137. package/bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  138. package/bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  139. package/bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  140. package/bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  141. package/bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  142. package/bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  143. package/bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  144. package/bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  145. package/bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  146. package/bmad/bmm/testarch/tea-index.csv +22 -0
  147. package/bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +110 -0
  148. package/bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +25 -0
  149. package/bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +26 -0
  150. package/bmad/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
  151. package/bmad/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  152. package/bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
  153. package/bmad/bmm/workflows/1-analysis/product-brief/checklist.md +115 -0
  154. package/bmad/bmm/workflows/1-analysis/product-brief/instructions.md +524 -0
  155. package/bmad/bmm/workflows/1-analysis/product-brief/template.md +181 -0
  156. package/bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +45 -0
  157. package/bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  158. package/bmad/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  159. package/bmad/bmm/workflows/1-analysis/research/checklist.md +299 -0
  160. package/bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +114 -0
  161. package/bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +439 -0
  162. package/bmad/bmm/workflows/1-analysis/research/instructions-market.md +679 -0
  163. package/bmad/bmm/workflows/1-analysis/research/instructions-router.md +133 -0
  164. package/bmad/bmm/workflows/1-analysis/research/instructions-technical.md +538 -0
  165. package/bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +94 -0
  166. package/bmad/bmm/workflows/1-analysis/research/template-market.md +347 -0
  167. package/bmad/bmm/workflows/1-analysis/research/template-technical.md +245 -0
  168. package/bmad/bmm/workflows/1-analysis/research/workflow.yaml +44 -0
  169. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
  170. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1319 -0
  171. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
  172. package/bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +64 -0
  173. package/bmad/bmm/workflows/2-plan-workflows/narrative/checklist.md +139 -0
  174. package/bmad/bmm/workflows/2-plan-workflows/narrative/instructions-narrative.md +608 -0
  175. package/bmad/bmm/workflows/2-plan-workflows/narrative/narrative-template.md +195 -0
  176. package/bmad/bmm/workflows/2-plan-workflows/narrative/workflow.yaml +29 -0
  177. package/bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +349 -0
  178. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +395 -0
  179. package/bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +33 -0
  180. package/bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  181. package/bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +423 -0
  182. package/bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +237 -0
  183. package/bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  184. package/bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +46 -0
  185. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +214 -0
  186. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +58 -0
  187. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +200 -0
  188. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +451 -0
  189. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +1133 -0
  190. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
  191. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +87 -0
  192. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +60 -0
  193. package/bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml.bak +60 -0
  194. package/bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +347 -0
  195. package/bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
  196. package/bmad/bmm/workflows/3-solutioning/architecture/checklist.md +244 -0
  197. package/bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
  198. package/bmad/bmm/workflows/3-solutioning/architecture/instructions.md +715 -0
  199. package/bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
  200. package/bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +67 -0
  201. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/checklist.md +175 -0
  202. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +322 -0
  203. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/template.md +146 -0
  204. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/validation-criteria.yaml +189 -0
  205. package/bmad/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +64 -0
  206. package/bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
  207. package/bmad/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
  208. package/bmad/bmm/workflows/4-implementation/code-review/instructions.md +420 -0
  209. package/bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +74 -0
  210. package/bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
  211. package/bmad/bmm/workflows/4-implementation/correct-course/instructions.md +201 -0
  212. package/bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +43 -0
  213. package/bmad/bmm/workflows/4-implementation/create-story/checklist.md +240 -0
  214. package/bmad/bmm/workflows/4-implementation/create-story/instructions.md +283 -0
  215. package/bmad/bmm/workflows/4-implementation/create-story/template.md +51 -0
  216. package/bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +74 -0
  217. package/bmad/bmm/workflows/4-implementation/dev-story/AUDIT-REPORT.md +367 -0
  218. package/bmad/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
  219. package/bmad/bmm/workflows/4-implementation/dev-story/instructions.md +262 -0
  220. package/bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +26 -0
  221. package/bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
  222. package/bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +189 -0
  223. package/bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
  224. package/bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +58 -0
  225. package/bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1460 -0
  226. package/bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +71 -0
  227. package/bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  228. package/bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +238 -0
  229. package/bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  230. package/bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +47 -0
  231. package/bmad/bmm/workflows/4-implementation/story-context/checklist.md +16 -0
  232. package/bmad/bmm/workflows/4-implementation/story-context/context-template.xml +34 -0
  233. package/bmad/bmm/workflows/4-implementation/story-context/instructions.md +234 -0
  234. package/bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +57 -0
  235. package/bmad/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
  236. package/bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +25 -0
  237. package/bmad/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
  238. package/bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +25 -0
  239. package/bmad/bmm/workflows/document-project/checklist.md +245 -0
  240. package/bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  241. package/bmad/bmm/workflows/document-project/instructions.md +222 -0
  242. package/bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  243. package/bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  244. package/bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  245. package/bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  246. package/bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  247. package/bmad/bmm/workflows/document-project/workflow.yaml +34 -0
  248. package/bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  249. package/bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  250. package/bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  251. package/bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  252. package/bmad/bmm/workflows/techdoc/documentation-standards.md +239 -0
  253. package/bmad/bmm/workflows/techdoc/documentation-standards.md.bak +238 -0
  254. package/bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  255. package/bmad/bmm/workflows/testarch/atdd/checklist.md +373 -0
  256. package/bmad/bmm/workflows/testarch/atdd/instructions.md +785 -0
  257. package/bmad/bmm/workflows/testarch/atdd/workflow.yaml +52 -0
  258. package/bmad/bmm/workflows/testarch/automate/checklist.md +580 -0
  259. package/bmad/bmm/workflows/testarch/automate/instructions.md +1303 -0
  260. package/bmad/bmm/workflows/testarch/automate/workflow.yaml +61 -0
  261. package/bmad/bmm/workflows/testarch/ci/checklist.md +246 -0
  262. package/bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
  263. package/bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  264. package/bmad/bmm/workflows/testarch/ci/instructions.md +517 -0
  265. package/bmad/bmm/workflows/testarch/ci/workflow.yaml +53 -0
  266. package/bmad/bmm/workflows/testarch/framework/checklist.md +321 -0
  267. package/bmad/bmm/workflows/testarch/framework/instructions.md +455 -0
  268. package/bmad/bmm/workflows/testarch/framework/workflow.yaml +53 -0
  269. package/bmad/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
  270. package/bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  271. package/bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  272. package/bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +56 -0
  273. package/bmad/bmm/workflows/testarch/test-design/checklist.md +234 -0
  274. package/bmad/bmm/workflows/testarch/test-design/instructions.md +621 -0
  275. package/bmad/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
  276. package/bmad/bmm/workflows/testarch/test-design/workflow.yaml +52 -0
  277. package/bmad/bmm/workflows/testarch/test-review/checklist.md +470 -0
  278. package/bmad/bmm/workflows/testarch/test-review/instructions.md +608 -0
  279. package/bmad/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
  280. package/bmad/bmm/workflows/testarch/test-review/workflow.yaml +53 -0
  281. package/bmad/bmm/workflows/testarch/trace/checklist.md +654 -0
  282. package/bmad/bmm/workflows/testarch/trace/instructions.md +1045 -0
  283. package/bmad/bmm/workflows/testarch/trace/trace-template.md +673 -0
  284. package/bmad/bmm/workflows/testarch/trace/workflow.yaml +66 -0
  285. package/bmad/bmm/workflows/workflow-status/init/instructions.md +771 -0
  286. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml +27 -0
  287. package/bmad/bmm/workflows/workflow-status/init/workflow.yaml.bak +27 -0
  288. package/bmad/bmm/workflows/workflow-status/instructions.md +386 -0
  289. package/bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
  290. package/bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
  291. package/bmad/bmm/workflows/workflow-status/paths/game-design.yaml +75 -0
  292. package/{src/modules/bmm/workflows/workflow-status/paths/brownfield-level-3.yaml → bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml} +33 -31
  293. package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-2.yaml → bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml} +31 -21
  294. package/{src/modules/bmm/workflows/workflow-status/paths/brownfield-level-1.yaml → bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml} +18 -18
  295. package/{src/modules/bmm/workflows/workflow-status/paths/greenfield-level-1.yaml → bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml} +16 -18
  296. package/bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  297. package/bmad/bmm/workflows/workflow-status/sample-level-3-workflow.yaml +49 -0
  298. package/bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +31 -0
  299. package/bmad/bmm/workflows/workflow-status/workflow.yaml +28 -0
  300. package/bmad/cis/README.md +153 -0
  301. package/bmad/cis/agents/README.md +104 -0
  302. package/bmad/cis/agents/brainstorming-coach.md +62 -0
  303. package/bmad/cis/agents/brainstorming-coach.md.bak +62 -0
  304. package/bmad/cis/agents/creative-problem-solver.md +62 -0
  305. package/bmad/cis/agents/creative-problem-solver.md.bak +62 -0
  306. package/bmad/cis/agents/design-thinking-coach.md +62 -0
  307. package/bmad/cis/agents/design-thinking-coach.md.bak +62 -0
  308. package/bmad/cis/agents/innovation-strategist.md +62 -0
  309. package/bmad/cis/agents/innovation-strategist.md.bak +62 -0
  310. package/bmad/cis/agents/storyteller.md +59 -0
  311. package/bmad/cis/agents/storyteller.md.bak +59 -0
  312. package/bmad/{bmd → cis}/config.yaml +3 -3
  313. package/bmad/cis/teams/creative-squad.yaml +6 -0
  314. package/bmad/cis/workflows/README.md +139 -0
  315. package/bmad/cis/workflows/design-thinking/README.md +56 -0
  316. package/bmad/cis/workflows/design-thinking/design-methods.csv +31 -0
  317. package/bmad/cis/workflows/design-thinking/instructions.md +200 -0
  318. package/bmad/cis/workflows/design-thinking/template.md +111 -0
  319. package/bmad/cis/workflows/design-thinking/workflow.yaml +32 -0
  320. package/bmad/cis/workflows/innovation-strategy/README.md +56 -0
  321. package/bmad/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
  322. package/bmad/cis/workflows/innovation-strategy/instructions.md +274 -0
  323. package/bmad/cis/workflows/innovation-strategy/template.md +189 -0
  324. package/bmad/cis/workflows/innovation-strategy/workflow.yaml +32 -0
  325. package/bmad/cis/workflows/problem-solving/README.md +56 -0
  326. package/bmad/cis/workflows/problem-solving/instructions.md +250 -0
  327. package/bmad/cis/workflows/problem-solving/solving-methods.csv +31 -0
  328. package/bmad/cis/workflows/problem-solving/template.md +165 -0
  329. package/bmad/cis/workflows/problem-solving/workflow.yaml +32 -0
  330. package/bmad/cis/workflows/storytelling/README.md +58 -0
  331. package/bmad/cis/workflows/storytelling/instructions.md +291 -0
  332. package/bmad/cis/workflows/storytelling/story-types.csv +26 -0
  333. package/bmad/cis/workflows/storytelling/template.md +113 -0
  334. package/bmad/cis/workflows/storytelling/workflow.yaml +32 -0
  335. package/bmad/core/agents/bmad-master.md.bak +71 -0
  336. package/bmad/core/config.yaml +2 -2
  337. package/bmad/core/tasks/workflow.xml +1 -19
  338. package/bmad/core/tools/shard-doc.xml +8 -43
  339. package/docs/document-sharding-guide.md +447 -0
  340. package/docs/index.md +37 -41
  341. package/package.json +1 -1
  342. package/src/core/tasks/workflow.xml +1 -11
  343. package/src/core/tools/shard-doc.xml +8 -43
  344. package/src/modules/bmb/workflows/audit-workflow/instructions.md +1 -1
  345. package/src/modules/bmb/workflows/create-workflow/workflow-creation-guide.md +158 -0
  346. package/src/modules/bmm/README.md +79 -95
  347. package/src/modules/bmm/agents/architect.agent.yaml +0 -4
  348. package/src/modules/bmm/agents/game-designer.agent.yaml +2 -2
  349. package/src/modules/bmm/agents/game-dev.agent.yaml +8 -12
  350. package/src/modules/bmm/agents/pm.agent.yaml +11 -1
  351. package/src/modules/bmm/agents/sm.agent.yaml +1 -1
  352. package/src/modules/bmm/agents/tech-writer.agent.yaml +69 -0
  353. package/src/modules/bmm/docs/README.md +235 -0
  354. package/src/modules/bmm/docs/agents-guide.md +1057 -0
  355. package/src/modules/bmm/docs/brownfield-guide.md +759 -0
  356. package/src/modules/bmm/docs/enterprise-agentic-development.md +680 -0
  357. package/src/modules/bmm/docs/faq.md +589 -0
  358. package/src/modules/bmm/docs/glossary.md +321 -0
  359. package/src/modules/bmm/docs/party-mode.md +224 -0
  360. package/src/modules/bmm/docs/quick-spec-flow.md +652 -0
  361. package/src/modules/bmm/docs/quick-start.md +366 -0
  362. package/src/modules/bmm/docs/scale-adaptive-system.md +599 -0
  363. package/src/modules/bmm/docs/troubleshooting.md +680 -0
  364. package/src/modules/bmm/docs/workflow-architecture-reference.md +371 -0
  365. package/src/modules/bmm/docs/workflow-document-project-reference.md +487 -0
  366. package/src/modules/bmm/docs/workflows-analysis.md +670 -0
  367. package/src/modules/bmm/docs/workflows-implementation.md +1758 -0
  368. package/src/modules/bmm/docs/workflows-planning.md +1086 -0
  369. package/src/modules/bmm/docs/workflows-solutioning.md +726 -0
  370. package/src/modules/bmm/tasks/daily-standup.xml +1 -1
  371. package/src/modules/bmm/workflows/1-analysis/domain-research/instructions.md +423 -0
  372. package/src/modules/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  373. package/src/modules/bmm/workflows/1-analysis/domain-research/workflow.yaml +36 -0
  374. package/src/modules/bmm/workflows/1-analysis/product-brief/instructions.md +405 -213
  375. package/src/modules/bmm/workflows/1-analysis/product-brief/template.md +93 -77
  376. package/src/modules/bmm/workflows/1-analysis/product-brief/workflow.yaml +14 -0
  377. package/src/modules/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  378. package/src/modules/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  379. package/src/modules/bmm/workflows/1-analysis/research/checklist.md +154 -57
  380. package/src/modules/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +45 -29
  381. package/src/modules/bmm/workflows/1-analysis/research/instructions-market.md +181 -104
  382. package/src/modules/bmm/workflows/1-analysis/research/instructions-router.md +24 -32
  383. package/src/modules/bmm/workflows/1-analysis/research/instructions-technical.md +94 -46
  384. package/src/modules/bmm/workflows/1-analysis/research/template-market.md +37 -1
  385. package/src/modules/bmm/workflows/1-analysis/research/template-technical.md +36 -1
  386. package/src/modules/bmm/workflows/1-analysis/research/workflow.yaml +13 -0
  387. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1 -1
  388. package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +22 -0
  389. package/src/modules/bmm/workflows/2-plan-workflows/gdd/instructions-gdd.md +18 -0
  390. package/src/modules/bmm/workflows/2-plan-workflows/gdd/workflow.yaml +14 -0
  391. package/src/modules/bmm/workflows/2-plan-workflows/prd/checklist.md +296 -63
  392. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/epics-template.md +52 -0
  393. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/instructions.md +169 -0
  394. package/src/modules/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories/workflow.yaml +55 -0
  395. package/src/modules/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  396. package/src/modules/bmm/workflows/2-plan-workflows/prd/instructions.md +268 -291
  397. package/src/modules/bmm/workflows/2-plan-workflows/prd/prd-template.md +198 -23
  398. package/src/modules/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  399. package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.yaml +26 -8
  400. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +138 -31
  401. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +73 -4
  402. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level0-story.md +50 -17
  403. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions-level1-stories.md +199 -26
  404. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +971 -109
  405. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +132 -6
  406. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +54 -20
  407. package/src/modules/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +23 -2
  408. package/src/modules/bmm/workflows/3-solutioning/architecture/architecture-template.md +1 -1
  409. package/src/modules/bmm/workflows/3-solutioning/architecture/instructions.md +40 -32
  410. package/src/modules/bmm/workflows/3-solutioning/architecture/workflow.yaml +17 -4
  411. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/instructions.md +1 -0
  412. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/workflow.yaml +32 -6
  413. package/src/modules/bmm/workflows/4-implementation/code-review/instructions.md +29 -0
  414. package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +20 -0
  415. package/src/modules/bmm/workflows/4-implementation/create-story/instructions.md +29 -0
  416. package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +27 -0
  417. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/instructions.md +29 -0
  418. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +32 -6
  419. package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +1222 -241
  420. package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +28 -0
  421. package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +17 -0
  422. package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +8 -0
  423. package/src/modules/bmm/workflows/4-implementation/story-context/instructions.md +31 -1
  424. package/src/modules/bmm/workflows/4-implementation/story-context/workflow.yaml +27 -0
  425. package/src/modules/bmm/workflows/techdoc/documentation-standards.md +239 -0
  426. package/src/modules/bmm/workflows/workflow-status/init/instructions.md +623 -242
  427. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +120 -0
  428. package/src/modules/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +108 -0
  429. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-4.yaml → method-brownfield.yaml} +35 -26
  430. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-3.yaml → method-greenfield.yaml} +32 -17
  431. package/src/modules/bmm/workflows/workflow-status/paths/{brownfield-level-0.yaml → quick-flow-brownfield.yaml} +23 -19
  432. package/src/modules/bmm/workflows/workflow-status/paths/{greenfield-level-0.yaml → quick-flow-greenfield.yaml} +18 -16
  433. package/src/modules/bmm/workflows/workflow-status/workflow-status-template.yaml +4 -4
  434. package/tools/cli/commands/install.js +1 -1
  435. package/.claude/commands/bmad/bmd/agents/cli-chief.md +0 -108
  436. package/.claude/commands/bmad/bmd/agents/doc-keeper.md +0 -115
  437. package/.claude/commands/bmad/bmd/agents/release-chief.md +0 -109
  438. package/.claude/hooks/bmad-tts-injector.sh +0 -415
  439. package/.claude/hooks/bmad-voice-manager.sh +0 -511
  440. package/.claude/hooks/check-output-style.sh +0 -112
  441. package/.claude/hooks/download-extra-voices.sh +0 -244
  442. package/.claude/hooks/github-star-reminder.sh +0 -154
  443. package/.claude/hooks/language-manager.sh +0 -392
  444. package/.claude/hooks/learn-manager.sh +0 -475
  445. package/.claude/hooks/personality-manager.sh +0 -438
  446. package/.claude/hooks/piper-download-voices.sh +0 -165
  447. package/.claude/hooks/piper-installer.sh +0 -178
  448. package/.claude/hooks/piper-multispeaker-registry.sh +0 -165
  449. package/.claude/hooks/piper-voice-manager.sh +0 -293
  450. package/.claude/hooks/play-tts-elevenlabs.sh +0 -404
  451. package/.claude/hooks/play-tts-piper.sh +0 -338
  452. package/.claude/hooks/play-tts.sh +0 -100
  453. package/.claude/hooks/provider-commands.sh +0 -540
  454. package/.claude/hooks/provider-manager.sh +0 -298
  455. package/.claude/hooks/replay-target-audio.sh +0 -95
  456. package/.claude/hooks/sentiment-manager.sh +0 -201
  457. package/.claude/hooks/speed-manager.sh +0 -291
  458. package/.claude/hooks/voice-manager.sh +0 -594
  459. package/.claude/hooks/voices-config.sh +0 -70
  460. package/bmad/_cfg/agents/bmd-cli-chief.customize.yaml +0 -32
  461. package/bmad/bmb/workflows/create-agent/agent-architecture.md.bak +0 -412
  462. package/bmad/bmb/workflows/create-agent/agent-command-patterns.md.bak +0 -759
  463. package/bmad/bmb/workflows/create-module/README.md.bak +0 -218
  464. package/bmad/bmb/workflows/create-module/checklist.md.bak +0 -245
  465. package/bmad/bmb/workflows/create-module/installer-templates/installer.js.bak +0 -231
  466. package/bmad/bmb/workflows/create-module/instructions.md.bak +0 -521
  467. package/bmad/bmb/workflows/create-module/module-structure.md.bak +0 -310
  468. package/bmad/bmd/README.md +0 -193
  469. package/bmad/bmd/README.md.bak +0 -193
  470. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md +0 -102
  471. package/bmad/bmd/agents/cli-chief-sidecar/instructions.md.bak +0 -102
  472. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md +0 -68
  473. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/README.md.bak +0 -68
  474. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md +0 -123
  475. package/bmad/bmd/agents/cli-chief-sidecar/knowledge/cli-reference.md.bak +0 -123
  476. package/bmad/bmd/agents/cli-chief-sidecar/memories.md +0 -53
  477. package/bmad/bmd/agents/cli-chief-sidecar/memories.md.bak +0 -53
  478. package/bmad/bmd/agents/cli-chief.md +0 -108
  479. package/bmad/bmd/agents/cli-chief.md.bak +0 -108
  480. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md +0 -177
  481. package/bmad/bmd/agents/doc-keeper-sidecar/instructions.md.bak +0 -177
  482. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md +0 -81
  483. package/bmad/bmd/agents/doc-keeper-sidecar/knowledge/README.md.bak +0 -81
  484. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md +0 -88
  485. package/bmad/bmd/agents/doc-keeper-sidecar/memories.md.bak +0 -88
  486. package/bmad/bmd/agents/doc-keeper.md +0 -115
  487. package/bmad/bmd/agents/doc-keeper.md.bak +0 -115
  488. package/bmad/bmd/agents/release-chief-sidecar/instructions.md +0 -164
  489. package/bmad/bmd/agents/release-chief-sidecar/instructions.md.bak +0 -164
  490. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md +0 -82
  491. package/bmad/bmd/agents/release-chief-sidecar/knowledge/README.md.bak +0 -82
  492. package/bmad/bmd/agents/release-chief-sidecar/memories.md +0 -73
  493. package/bmad/bmd/agents/release-chief-sidecar/memories.md.bak +0 -73
  494. package/bmad/bmd/agents/release-chief.md +0 -109
  495. package/bmad/bmd/agents/release-chief.md.bak +0 -109
  496. package/bmad/docs/codex-instructions.md +0 -21
  497. package/docs/bmad-brownfield-guide.md +0 -1260
  498. package/docs/conversion-report-shard-doc-2025-10-26.md +0 -188
  499. package/src/modules/bmm/tasks/retrospective.xml +0 -104
  500. package/src/modules/bmm/testarch/README.md +0 -311
  501. package/src/modules/bmm/workflows/1-analysis/brainstorm-game/README.md +0 -38
  502. package/src/modules/bmm/workflows/1-analysis/brainstorm-project/README.md +0 -113
  503. package/src/modules/bmm/workflows/1-analysis/game-brief/README.md +0 -221
  504. package/src/modules/bmm/workflows/1-analysis/product-brief/README.md +0 -180
  505. package/src/modules/bmm/workflows/1-analysis/research/README.md +0 -454
  506. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-competitor-analyzer.md +0 -259
  507. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-data-analyst.md +0 -190
  508. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-market-researcher.md +0 -337
  509. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-trend-spotter.md +0 -107
  510. package/src/modules/bmm/workflows/1-analysis/research/claude-code/sub-agents/bmm-user-researcher.md +0 -329
  511. package/src/modules/bmm/workflows/2-plan-workflows/README.md +0 -258
  512. package/src/modules/bmm/workflows/2-plan-workflows/gdd/README.md +0 -222
  513. package/src/modules/bmm/workflows/3-solutioning/README.md +0 -1
  514. package/src/modules/bmm/workflows/3-solutioning/solutioning-gate-check/README.md +0 -177
  515. package/src/modules/bmm/workflows/4-implementation/README.md +0 -221
  516. package/src/modules/bmm/workflows/4-implementation/code-review/README.md +0 -69
  517. package/src/modules/bmm/workflows/4-implementation/correct-course/README.md +0 -73
  518. package/src/modules/bmm/workflows/4-implementation/create-story/README.md +0 -146
  519. package/src/modules/bmm/workflows/4-implementation/dev-story/README.md +0 -206
  520. package/src/modules/bmm/workflows/4-implementation/epic-tech-context/README.md +0 -195
  521. package/src/modules/bmm/workflows/4-implementation/retrospective/README.md +0 -77
  522. package/src/modules/bmm/workflows/4-implementation/sprint-planning/README.md +0 -156
  523. package/src/modules/bmm/workflows/4-implementation/story-context/README.md +0 -234
  524. package/src/modules/bmm/workflows/README.md +0 -215
  525. package/src/modules/bmm/workflows/document-project/templates/README.md +0 -38
  526. package/src/modules/bmm/workflows/testarch/README.md +0 -26
  527. package/src/modules/bmm/workflows/testarch/atdd/README.md +0 -672
  528. package/src/modules/bmm/workflows/testarch/automate/README.md +0 -869
  529. package/src/modules/bmm/workflows/testarch/ci/README.md +0 -493
  530. package/src/modules/bmm/workflows/testarch/framework/README.md +0 -340
  531. package/src/modules/bmm/workflows/testarch/nfr-assess/README.md +0 -469
  532. package/src/modules/bmm/workflows/testarch/test-design/README.md +0 -493
  533. package/src/modules/bmm/workflows/testarch/test-review/README.md +0 -775
  534. package/src/modules/bmm/workflows/testarch/trace/README.md +0 -802
  535. package/src/modules/bmm/workflows/workflow-status/README.md +0 -260
  536. package/src/modules/bmm/workflows/workflow-status/paths/brownfield-level-2.yaml +0 -76
  537. package/src/modules/bmm/workflows/workflow-status/paths/greenfield-level-4.yaml +0 -75
  538. /package/bmad/_cfg/agents/{bmd-doc-keeper.customize.yaml → bmm-analyst.customize.yaml} +0 -0
  539. /package/bmad/_cfg/agents/{bmd-release-chief.customize.yaml → bmm-architect.customize.yaml} +0 -0
  540. /package/{src/modules/bmm/workflows/2-plan-workflows/prd → bmad/bmm/workflows/2-plan-workflows/prd/create-epics-and-stories}/epics-template.md +0 -0
@@ -1,404 +0,0 @@
1
- #!/bin/bash
2
- #
3
- # File: .claude/hooks/play-tts-elevenlabs.sh
4
- #
5
- # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
- # Website: https://agentvibes.org
7
- # Repository: https://github.com/paulpreibisch/AgentVibes
8
- #
9
- # Co-created by Paul Preibisch with Claude AI
10
- # Copyright (c) 2025 Paul Preibisch
11
- #
12
- # Licensed under the Apache License, Version 2.0 (the "License");
13
- # you may not use this file except in compliance with the License.
14
- # You may obtain a copy of the License at
15
- #
16
- # http://www.apache.org/licenses/LICENSE-2.0
17
- #
18
- # Unless required by applicable law or agreed to in writing, software
19
- # distributed under the License is distributed on an "AS IS" BASIS,
20
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- # See the License for the specific language governing permissions and
22
- # limitations under the License.
23
- #
24
- # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
- # express or implied. Use at your own risk. See the Apache License for details.
26
- #
27
- # ---
28
- #
29
- # @fileoverview ElevenLabs TTS Provider Implementation - Premium cloud-based TTS
30
- # @context Provider-specific implementation for ElevenLabs API integration with multilingual support
31
- # @architecture Part of multi-provider TTS system - implements provider interface contract
32
- # @dependencies Requires ELEVENLABS_API_KEY, curl, ffmpeg, paplay/aplay/mpg123, jq
33
- # @entrypoints Called by play-tts.sh router with ($1=text, $2=voice_name) when provider=elevenlabs
34
- # @patterns Follows provider contract: accept text/voice, output audio file path, API error handling, SSH audio optimization
35
- # @related play-tts.sh, provider-manager.sh, voices-config.sh, language-manager.sh, GitHub Issue #25
36
- #
37
-
38
- # Fix locale warnings
39
- export LC_ALL=C
40
-
41
- TEXT="$1"
42
- VOICE_OVERRIDE="$2" # Optional: voice name or direct voice ID
43
- API_KEY="${ELEVENLABS_API_KEY}"
44
-
45
- # Check for project-local pretext configuration
46
- CONFIG_DIR="${CLAUDE_PROJECT_DIR:-.}/.claude/config"
47
- CONFIG_FILE="$CONFIG_DIR/agentvibes.json"
48
-
49
- if [[ -f "$CONFIG_FILE" ]] && command -v jq &> /dev/null; then
50
- PRETEXT=$(jq -r '.pretext // empty' "$CONFIG_FILE" 2>/dev/null)
51
- if [[ -n "$PRETEXT" ]]; then
52
- TEXT="$PRETEXT: $TEXT"
53
- fi
54
- fi
55
-
56
- # Limit text length to prevent API issues (max 500 chars for safety)
57
- if [ ${#TEXT} -gt 500 ]; then
58
- TEXT="${TEXT:0:497}..."
59
- echo "⚠️ Text truncated to 500 characters for API safety"
60
- fi
61
-
62
- # Source the single voice configuration file
63
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
64
- source "$SCRIPT_DIR/voices-config.sh"
65
- source "$SCRIPT_DIR/language-manager.sh"
66
-
67
- # @function determine_voice_and_language
68
- # @intent Resolve voice name/ID and language for multilingual support
69
- # @why Supports both voice names and direct IDs, plus language-specific voices
70
- # @param $VOICE_OVERRIDE {string} Voice name or ID (optional)
71
- # @returns Sets $VOICE_ID and $LANGUAGE_CODE global variables
72
- # @sideeffects None
73
- # @edgecases Handles unknown voices, falls back to default
74
- VOICE_ID=""
75
- LANGUAGE_CODE="en" # Default to English
76
-
77
- # Get current language setting
78
- CURRENT_LANGUAGE=$(get_language_code)
79
-
80
- # Get language code for API
81
- # ElevenLabs uses 2-letter ISO codes
82
- case "$CURRENT_LANGUAGE" in
83
- spanish) LANGUAGE_CODE="es" ;;
84
- french) LANGUAGE_CODE="fr" ;;
85
- german) LANGUAGE_CODE="de" ;;
86
- italian) LANGUAGE_CODE="it" ;;
87
- portuguese) LANGUAGE_CODE="pt" ;;
88
- chinese) LANGUAGE_CODE="zh" ;;
89
- japanese) LANGUAGE_CODE="ja" ;;
90
- korean) LANGUAGE_CODE="ko" ;;
91
- russian) LANGUAGE_CODE="ru" ;;
92
- polish) LANGUAGE_CODE="pl" ;;
93
- dutch) LANGUAGE_CODE="nl" ;;
94
- turkish) LANGUAGE_CODE="tr" ;;
95
- arabic) LANGUAGE_CODE="ar" ;;
96
- hindi) LANGUAGE_CODE="hi" ;;
97
- swedish) LANGUAGE_CODE="sv" ;;
98
- danish) LANGUAGE_CODE="da" ;;
99
- norwegian) LANGUAGE_CODE="no" ;;
100
- finnish) LANGUAGE_CODE="fi" ;;
101
- czech) LANGUAGE_CODE="cs" ;;
102
- romanian) LANGUAGE_CODE="ro" ;;
103
- ukrainian) LANGUAGE_CODE="uk" ;;
104
- greek) LANGUAGE_CODE="el" ;;
105
- bulgarian) LANGUAGE_CODE="bg" ;;
106
- croatian) LANGUAGE_CODE="hr" ;;
107
- slovak) LANGUAGE_CODE="sk" ;;
108
- english|*) LANGUAGE_CODE="en" ;;
109
- esac
110
-
111
- if [[ -n "$VOICE_OVERRIDE" ]]; then
112
- # Check if override is a voice name (lookup in mapping)
113
- if [[ -n "${VOICES[$VOICE_OVERRIDE]}" ]]; then
114
- VOICE_ID="${VOICES[$VOICE_OVERRIDE]}"
115
- echo "🎤 Using voice: $VOICE_OVERRIDE (session-specific)"
116
- # Check if override looks like a voice ID (alphanumeric string ~20 chars)
117
- elif [[ "$VOICE_OVERRIDE" =~ ^[a-zA-Z0-9]{15,30}$ ]]; then
118
- VOICE_ID="$VOICE_OVERRIDE"
119
- echo "🎤 Using custom voice ID (session-specific)"
120
- else
121
- echo "⚠️ Unknown voice '$VOICE_OVERRIDE', trying language-specific voice"
122
- fi
123
- fi
124
-
125
- # If no override or invalid override, use language-specific voice
126
- if [[ -z "$VOICE_ID" ]]; then
127
- # Try to get voice for current language
128
- LANG_VOICE=$(get_voice_for_language "$CURRENT_LANGUAGE" "elevenlabs" 2>/dev/null)
129
-
130
- if [[ -n "$LANG_VOICE" ]] && [[ -n "${VOICES[$LANG_VOICE]}" ]]; then
131
- VOICE_ID="${VOICES[$LANG_VOICE]}"
132
- echo "🌍 Using $CURRENT_LANGUAGE voice: $LANG_VOICE"
133
- else
134
- # Fall back to voice manager
135
- VOICE_MANAGER_SCRIPT="$(dirname "$0")/voice-manager.sh"
136
- if [[ -f "$VOICE_MANAGER_SCRIPT" ]]; then
137
- VOICE_NAME=$("$VOICE_MANAGER_SCRIPT" get)
138
- VOICE_ID="${VOICES[$VOICE_NAME]}"
139
- fi
140
-
141
- # Final fallback to default
142
- if [[ -z "$VOICE_ID" ]]; then
143
- echo "⚠️ No voice configured, using default"
144
- VOICE_ID="${VOICES[Aria]}"
145
- fi
146
- fi
147
- fi
148
-
149
- # @function validate_inputs
150
- # @intent Check required parameters and API key
151
- # @why Fail fast with clear errors if inputs missing
152
- # @exitcode 1=missing text, 2=missing API key
153
- if [ -z "$TEXT" ]; then
154
- echo "Usage: $0 \"text to speak\" [voice_name_or_id]"
155
- exit 1
156
- fi
157
-
158
- if [ -z "$API_KEY" ]; then
159
- echo "Error: ELEVENLABS_API_KEY not set"
160
- echo "Set your API key: export ELEVENLABS_API_KEY=your_key_here"
161
- exit 2
162
- fi
163
-
164
- # @function determine_audio_directory
165
- # @intent Find appropriate directory for audio file storage
166
- # @why Supports project-local and global storage
167
- # @returns Sets $AUDIO_DIR global variable
168
- # @sideeffects None
169
- # @edgecases Handles missing directories, creates if needed
170
- # AI NOTE: Check project dir first, then search up tree, finally fall back to global
171
- if [[ -n "$CLAUDE_PROJECT_DIR" ]]; then
172
- AUDIO_DIR="$CLAUDE_PROJECT_DIR/.claude/audio"
173
- else
174
- # Fallback: try to find .claude directory in current path
175
- CURRENT_DIR="$PWD"
176
- while [[ "$CURRENT_DIR" != "/" ]]; do
177
- if [[ -d "$CURRENT_DIR/.claude" ]]; then
178
- AUDIO_DIR="$CURRENT_DIR/.claude/audio"
179
- break
180
- fi
181
- CURRENT_DIR=$(dirname "$CURRENT_DIR")
182
- done
183
- # Final fallback to global if no project .claude found
184
- if [[ -z "$AUDIO_DIR" ]]; then
185
- AUDIO_DIR="$HOME/.claude/audio"
186
- fi
187
- fi
188
-
189
- mkdir -p "$AUDIO_DIR"
190
- TEMP_FILE="$AUDIO_DIR/tts-$(date +%s).mp3"
191
-
192
- # @function synthesize_with_elevenlabs
193
- # @intent Call ElevenLabs API to generate speech
194
- # @why Encapsulates API call with error handling
195
- # @param Uses globals: $TEXT, $VOICE_ID, $API_KEY
196
- # @returns Creates audio file at $TEMP_FILE
197
- # @exitcode 0=success, 3=API error
198
- # @sideeffects Creates MP3 file in audio directory
199
- # @edgecases Handles network failures, API errors, rate limiting
200
- # Choose model based on language
201
- if [[ "$LANGUAGE_CODE" == "en" ]]; then
202
- MODEL_ID="eleven_monolingual_v1"
203
- else
204
- MODEL_ID="eleven_multilingual_v2"
205
- fi
206
-
207
- # @function get_speech_speed
208
- # @intent Read speed config and map to ElevenLabs API range (0.7-1.2)
209
- # @why ElevenLabs only supports 0.7 (slower) to 1.2 (faster), must map user scale
210
- # @returns Speed value for ElevenLabs API (clamped to 0.7-1.2)
211
- get_speech_speed() {
212
- local config_dir=""
213
-
214
- # Determine config directory
215
- if [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -d "$CLAUDE_PROJECT_DIR/.claude" ]]; then
216
- config_dir="$CLAUDE_PROJECT_DIR/.claude/config"
217
- else
218
- # Try to find .claude in current path
219
- local current_dir="$PWD"
220
- while [[ "$current_dir" != "/" ]]; do
221
- if [[ -d "$current_dir/.claude" ]]; then
222
- config_dir="$current_dir/.claude/config"
223
- break
224
- fi
225
- current_dir=$(dirname "$current_dir")
226
- done
227
- # Fallback to global
228
- if [[ -z "$config_dir" ]]; then
229
- config_dir="$HOME/.claude/config"
230
- fi
231
- fi
232
-
233
- local main_speed_file="$config_dir/tts-speech-rate.txt"
234
- local target_speed_file="$config_dir/tts-target-speech-rate.txt"
235
-
236
- # Legacy file paths for backward compatibility
237
- local legacy_main_speed_file="$config_dir/piper-speech-rate.txt"
238
- local legacy_target_speed_file="$config_dir/piper-target-speech-rate.txt"
239
-
240
- local user_speed="1.0"
241
-
242
- # If this is a non-English voice and target config exists, use it
243
- if [[ "$CURRENT_LANGUAGE" != "english" ]]; then
244
- if [[ -f "$target_speed_file" ]]; then
245
- user_speed=$(cat "$target_speed_file" 2>/dev/null || echo "1.0")
246
- elif [[ -f "$legacy_target_speed_file" ]]; then
247
- user_speed=$(cat "$legacy_target_speed_file" 2>/dev/null || echo "1.0")
248
- else
249
- user_speed="0.5" # Default slower for learning
250
- fi
251
- else
252
- # Otherwise use main config if available
253
- if [[ -f "$main_speed_file" ]]; then
254
- user_speed=$(grep -v '^#' "$main_speed_file" 2>/dev/null | grep -v '^$' | tail -1 || echo "1.0")
255
- elif [[ -f "$legacy_main_speed_file" ]]; then
256
- user_speed=$(grep -v '^#' "$legacy_main_speed_file" 2>/dev/null | grep -v '^$' | tail -1 || echo "1.0")
257
- fi
258
- fi
259
-
260
- # Map user scale (0.5=slower, 1.0=normal, 2.0=faster, 3.0=very fast)
261
- # to ElevenLabs range (0.7=slower, 1.0=normal, 1.2=faster)
262
- # Formula: elevenlabs_speed = 0.7 + (user_speed - 0.5) * 0.2
263
- # This maps: 0.5→0.7, 1.0→0.8, 2.0→1.0, 3.0→1.2
264
- # Actually, let's use a better mapping:
265
- # 0.5x → 0.7 (slowest ElevenLabs)
266
- # 1.0x → 1.0 (normal)
267
- # 2.0x → 1.15
268
- # 3.0x → 1.2 (fastest ElevenLabs)
269
-
270
- if command -v bc &> /dev/null; then
271
- local eleven_speed
272
- if (( $(echo "$user_speed <= 0.5" | bc -l) )); then
273
- eleven_speed="0.7"
274
- elif (( $(echo "$user_speed >= 3.0" | bc -l) )); then
275
- eleven_speed="1.2"
276
- elif (( $(echo "$user_speed <= 1.0" | bc -l) )); then
277
- # Map 0.5-1.0 to 0.7-1.0
278
- eleven_speed=$(echo "scale=2; 0.7 + ($user_speed - 0.5) * 0.6" | bc -l)
279
- else
280
- # Map 1.0-3.0 to 1.0-1.2
281
- eleven_speed=$(echo "scale=2; 1.0 + ($user_speed - 1.0) * 0.1" | bc -l)
282
- fi
283
- echo "$eleven_speed"
284
- else
285
- # Fallback without bc: just clamp to safe values
286
- if (( $(awk 'BEGIN {print ("'$user_speed'" <= 0.5)}') )); then
287
- echo "0.7"
288
- elif (( $(awk 'BEGIN {print ("'$user_speed'" >= 2.0)}') )); then
289
- echo "1.2"
290
- else
291
- echo "1.0"
292
- fi
293
- fi
294
- }
295
-
296
- SPEECH_SPEED=$(get_speech_speed)
297
-
298
- # Build JSON payload with jq for proper escaping
299
- PAYLOAD=$(jq -n \
300
- --arg text "$TEXT" \
301
- --arg model "$MODEL_ID" \
302
- --arg lang "$LANGUAGE_CODE" \
303
- --argjson speed "$SPEECH_SPEED" \
304
- '{
305
- text: $text,
306
- model_id: $model,
307
- language_code: $lang,
308
- voice_settings: {
309
- stability: 0.5,
310
- similarity_boost: 0.75,
311
- speed: $speed
312
- }
313
- }')
314
-
315
- curl -s -X POST "https://api.elevenlabs.io/v1/text-to-speech/${VOICE_ID}" \
316
- -H "xi-api-key: ${API_KEY}" \
317
- -H "Content-Type: application/json" \
318
- -d "$PAYLOAD" \
319
- -o "${TEMP_FILE}"
320
-
321
- # @function add_silence_padding
322
- # @intent Add silence to beginning of audio to prevent WSL static
323
- # @why WSL audio subsystem cuts off first ~200ms, causing static/clipping
324
- # @param Uses global: $TEMP_FILE
325
- # @returns Updates $TEMP_FILE to padded version
326
- # @sideeffects Modifies audio file, removes original
327
- # @edgecases Gracefully falls back to unpadded if ffmpeg unavailable
328
- # Add silence padding to prevent WSL audio static
329
- if [ -f "${TEMP_FILE}" ]; then
330
- # Check if ffmpeg is available for adding padding
331
- if command -v ffmpeg &> /dev/null; then
332
- PADDED_FILE="$AUDIO_DIR/tts-padded-$(date +%s).mp3"
333
- # Add 200ms of silence at the beginning to prevent static
334
- # Note: ElevenLabs returns mono audio, so we use mono silence
335
- ffmpeg -f lavfi -i anullsrc=r=44100:cl=mono:d=0.2 -i "${TEMP_FILE}" \
336
- -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[out]" \
337
- -map "[out]" -c:a libmp3lame -b:a 128k -y "${PADDED_FILE}" 2>/dev/null
338
-
339
- if [ -f "${PADDED_FILE}" ]; then
340
- # Use padded file and clean up original
341
- rm -f "${TEMP_FILE}"
342
- TEMP_FILE="${PADDED_FILE}"
343
- fi
344
- # If padding failed, just use original file
345
- fi
346
-
347
- # @function play_audio
348
- # @intent Play generated audio file using available player with sequential playback
349
- # @why Support multiple audio players and prevent overlapping audio in learning mode
350
- # @param Uses global: $TEMP_FILE, $CURRENT_LANGUAGE
351
- # @sideeffects Plays audio with lock mechanism for sequential playback
352
- # @edgecases Falls through players until one works
353
- LOCK_FILE="/tmp/agentvibes-audio.lock"
354
-
355
- # Wait for previous audio to finish (max 30 seconds)
356
- for i in {1..60}; do
357
- if [ ! -f "$LOCK_FILE" ]; then
358
- break
359
- fi
360
- sleep 0.5
361
- done
362
-
363
- # Track last target language audio for replay command
364
- if [[ "$CURRENT_LANGUAGE" != "english" ]]; then
365
- TARGET_AUDIO_FILE="${CLAUDE_PROJECT_DIR:-.}/.claude/last-target-audio.txt"
366
- echo "${TEMP_FILE}" > "$TARGET_AUDIO_FILE"
367
- fi
368
-
369
- # Create lock and play audio
370
- touch "$LOCK_FILE"
371
-
372
- # Get audio duration for proper lock timing
373
- DURATION=$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "${TEMP_FILE}" 2>/dev/null)
374
- DURATION=${DURATION%.*} # Round to integer
375
- DURATION=${DURATION:-1} # Default to 1 second if detection fails
376
-
377
- # Convert to 48kHz stereo WAV for better SSH tunnel compatibility
378
- # ElevenLabs returns 44.1kHz mono MP3, which causes static over SSH audio tunnels
379
- # Converting to 48kHz stereo (Windows/PulseAudio native format) eliminates the static
380
- if [[ -n "$SSH_CONNECTION" ]] || [[ -n "$SSH_CLIENT" ]] || [[ -n "$VSCODE_IPC_HOOK_CLI" ]]; then
381
- CONVERTED_FILE="${TEMP_FILE%.mp3}.wav"
382
- if ffmpeg -i "${TEMP_FILE}" -ar 48000 -ac 2 "${CONVERTED_FILE}" -y 2>/dev/null; then
383
- TEMP_FILE="${CONVERTED_FILE}"
384
- fi
385
- fi
386
-
387
- # Play audio (WSL/Linux) in background to avoid blocking, fully detached (skip if in test mode)
388
- if [[ "${AGENTVIBES_TEST_MODE:-false}" != "true" ]]; then
389
- (paplay "${TEMP_FILE}" || aplay "${TEMP_FILE}" || mpg123 "${TEMP_FILE}") >/dev/null 2>&1 &
390
- PLAYER_PID=$!
391
- fi
392
-
393
- # Wait for audio to finish, then release lock
394
- (sleep $DURATION; rm -f "$LOCK_FILE") &
395
- disown
396
-
397
- # Keep temp files for later review - cleaned up weekly by cron
398
- echo "🎵 Saved to: ${TEMP_FILE}"
399
- echo "🎤 Voice used: ${VOICE_NAME} (${VOICE_ID})"
400
- else
401
- echo "❌ Failed to generate audio - API may be unavailable"
402
- echo "Check your API key and network connection"
403
- exit 3
404
- fi