agentvibes 2.5.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/.bmad/_cfg/agent-manifest.csv +11 -0
  2. package/.bmad/_cfg/agents/bmm-analyst.customize.yaml +42 -0
  3. package/.bmad/_cfg/agents/bmm-architect.customize.yaml +42 -0
  4. package/.bmad/_cfg/agents/bmm-dev.customize.yaml +42 -0
  5. package/.bmad/_cfg/agents/bmm-frame-expert.customize.yaml +42 -0
  6. package/.bmad/_cfg/agents/bmm-pm.customize.yaml +42 -0
  7. package/.bmad/_cfg/agents/bmm-sm.customize.yaml +42 -0
  8. package/.bmad/_cfg/agents/bmm-tea.customize.yaml +42 -0
  9. package/.bmad/_cfg/agents/bmm-tech-writer.customize.yaml +42 -0
  10. package/.bmad/_cfg/agents/bmm-ux-designer.customize.yaml +42 -0
  11. package/.bmad/_cfg/agents/core-bmad-master.customize.yaml +42 -0
  12. package/.bmad/_cfg/files-manifest.csv +243 -0
  13. package/.bmad/_cfg/ides/claude-code.yaml +6 -0
  14. package/.bmad/_cfg/manifest.yaml +9 -0
  15. package/.bmad/_cfg/task-manifest.csv +5 -0
  16. package/.bmad/_cfg/tool-manifest.csv +2 -0
  17. package/.bmad/_cfg/workflow-manifest.csv +38 -0
  18. package/.bmad/bmm/README.md +128 -0
  19. package/.bmad/bmm/agents/analyst.md +79 -0
  20. package/.bmad/bmm/agents/analyst.md.backup-pre-tts +75 -0
  21. package/.bmad/bmm/agents/architect.md +80 -0
  22. package/.bmad/bmm/agents/dev.md +70 -0
  23. package/.bmad/bmm/agents/frame-expert.md +72 -0
  24. package/.bmad/bmm/agents/pm.md +84 -0
  25. package/.bmad/bmm/agents/sm.md +93 -0
  26. package/.bmad/bmm/agents/tea.md +80 -0
  27. package/.bmad/bmm/agents/tech-writer.md +84 -0
  28. package/.bmad/bmm/agents/ux-designer.md +79 -0
  29. package/.bmad/bmm/config.yaml +17 -0
  30. package/.bmad/bmm/docs/README.md +236 -0
  31. package/.bmad/bmm/docs/agents-guide.md +1058 -0
  32. package/.bmad/bmm/docs/brownfield-guide.md +762 -0
  33. package/.bmad/bmm/docs/enterprise-agentic-development.md +686 -0
  34. package/.bmad/bmm/docs/faq.md +588 -0
  35. package/.bmad/bmm/docs/glossary.md +320 -0
  36. package/.bmad/bmm/docs/party-mode.md +224 -0
  37. package/.bmad/bmm/docs/quick-spec-flow.md +652 -0
  38. package/.bmad/bmm/docs/quick-start.md +376 -0
  39. package/.bmad/bmm/docs/scale-adaptive-system.md +612 -0
  40. package/.bmad/bmm/docs/test-architecture.md +396 -0
  41. package/.bmad/bmm/docs/workflow-architecture-reference.md +366 -0
  42. package/.bmad/bmm/docs/workflow-document-project-reference.md +489 -0
  43. package/.bmad/bmm/docs/workflows-analysis.md +370 -0
  44. package/.bmad/bmm/docs/workflows-implementation.md +286 -0
  45. package/.bmad/bmm/docs/workflows-planning.md +612 -0
  46. package/.bmad/bmm/docs/workflows-solutioning.md +554 -0
  47. package/.bmad/bmm/teams/default-party.csv +20 -0
  48. package/.bmad/bmm/teams/team-fullstack.yaml +13 -0
  49. package/.bmad/bmm/testarch/knowledge/ci-burn-in.md +675 -0
  50. package/.bmad/bmm/testarch/knowledge/component-tdd.md +486 -0
  51. package/.bmad/bmm/testarch/knowledge/contract-testing.md +957 -0
  52. package/.bmad/bmm/testarch/knowledge/data-factories.md +500 -0
  53. package/.bmad/bmm/testarch/knowledge/email-auth.md +721 -0
  54. package/.bmad/bmm/testarch/knowledge/error-handling.md +725 -0
  55. package/.bmad/bmm/testarch/knowledge/feature-flags.md +750 -0
  56. package/.bmad/bmm/testarch/knowledge/fixture-architecture.md +401 -0
  57. package/.bmad/bmm/testarch/knowledge/network-first.md +486 -0
  58. package/.bmad/bmm/testarch/knowledge/nfr-criteria.md +670 -0
  59. package/.bmad/bmm/testarch/knowledge/playwright-config.md +730 -0
  60. package/.bmad/bmm/testarch/knowledge/probability-impact.md +601 -0
  61. package/.bmad/bmm/testarch/knowledge/risk-governance.md +615 -0
  62. package/.bmad/bmm/testarch/knowledge/selective-testing.md +732 -0
  63. package/.bmad/bmm/testarch/knowledge/selector-resilience.md +527 -0
  64. package/.bmad/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
  65. package/.bmad/bmm/testarch/knowledge/test-levels-framework.md +473 -0
  66. package/.bmad/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
  67. package/.bmad/bmm/testarch/knowledge/test-quality.md +664 -0
  68. package/.bmad/bmm/testarch/knowledge/timing-debugging.md +372 -0
  69. package/.bmad/bmm/testarch/knowledge/visual-debugging.md +524 -0
  70. package/.bmad/bmm/testarch/tea-index.csv +22 -0
  71. package/.bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +112 -0
  72. package/.bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +25 -0
  73. package/.bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +26 -0
  74. package/.bmad/bmm/workflows/1-analysis/domain-research/instructions.md +425 -0
  75. package/.bmad/bmm/workflows/1-analysis/domain-research/template.md +180 -0
  76. package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +28 -0
  77. package/.bmad/bmm/workflows/1-analysis/product-brief/checklist.md +115 -0
  78. package/.bmad/bmm/workflows/1-analysis/product-brief/instructions.md +524 -0
  79. package/.bmad/bmm/workflows/1-analysis/product-brief/template.md +181 -0
  80. package/.bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +45 -0
  81. package/.bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +144 -0
  82. package/.bmad/bmm/workflows/1-analysis/research/checklist-technical.md +249 -0
  83. package/.bmad/bmm/workflows/1-analysis/research/checklist.md +299 -0
  84. package/.bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +114 -0
  85. package/.bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +438 -0
  86. package/.bmad/bmm/workflows/1-analysis/research/instructions-market.md +675 -0
  87. package/.bmad/bmm/workflows/1-analysis/research/instructions-router.md +134 -0
  88. package/.bmad/bmm/workflows/1-analysis/research/instructions-technical.md +534 -0
  89. package/.bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +94 -0
  90. package/.bmad/bmm/workflows/1-analysis/research/template-market.md +347 -0
  91. package/.bmad/bmm/workflows/1-analysis/research/template-technical.md +245 -0
  92. package/.bmad/bmm/workflows/1-analysis/research/workflow.yaml +44 -0
  93. package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +80 -0
  94. package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +616 -0
  95. package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +53 -0
  96. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +310 -0
  97. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +1308 -0
  98. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +145 -0
  99. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +61 -0
  100. package/.bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +346 -0
  101. package/.bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
  102. package/.bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +703 -0
  103. package/.bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +204 -0
  104. package/.bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +11 -0
  105. package/.bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +52 -0
  106. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +217 -0
  107. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +74 -0
  108. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +436 -0
  109. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +980 -0
  110. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +181 -0
  111. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +90 -0
  112. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +58 -0
  113. package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +321 -0
  114. package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +103 -0
  115. package/.bmad/bmm/workflows/3-solutioning/architecture/checklist.md +240 -0
  116. package/.bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +222 -0
  117. package/.bmad/bmm/workflows/3-solutioning/architecture/instructions.md +768 -0
  118. package/.bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +13 -0
  119. package/.bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +55 -0
  120. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
  121. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
  122. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/template.md +146 -0
  123. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +62 -0
  124. package/.bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +12 -0
  125. package/.bmad/bmm/workflows/4-implementation/code-review/checklist.md +22 -0
  126. package/.bmad/bmm/workflows/4-implementation/code-review/instructions.md +398 -0
  127. package/.bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +60 -0
  128. package/.bmad/bmm/workflows/4-implementation/correct-course/checklist.md +279 -0
  129. package/.bmad/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
  130. package/.bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +56 -0
  131. package/.bmad/bmm/workflows/4-implementation/create-story/checklist.md +240 -0
  132. package/.bmad/bmm/workflows/4-implementation/create-story/instructions.md +256 -0
  133. package/.bmad/bmm/workflows/4-implementation/create-story/template.md +51 -0
  134. package/.bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +71 -0
  135. package/.bmad/bmm/workflows/4-implementation/dev-story/checklist.md +38 -0
  136. package/.bmad/bmm/workflows/4-implementation/dev-story/instructions.md +267 -0
  137. package/.bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +56 -0
  138. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +17 -0
  139. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +164 -0
  140. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +76 -0
  141. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +57 -0
  142. package/.bmad/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
  143. package/.bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +56 -0
  144. package/.bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  145. package/.bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +234 -0
  146. package/.bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  147. package/.bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +49 -0
  148. package/.bmad/bmm/workflows/4-implementation/story-context/checklist.md +16 -0
  149. package/.bmad/bmm/workflows/4-implementation/story-context/context-template.xml +34 -0
  150. package/.bmad/bmm/workflows/4-implementation/story-context/instructions.md +209 -0
  151. package/.bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +61 -0
  152. package/.bmad/bmm/workflows/4-implementation/story-done/instructions.md +111 -0
  153. package/.bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +26 -0
  154. package/.bmad/bmm/workflows/4-implementation/story-ready/instructions.md +117 -0
  155. package/.bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +23 -0
  156. package/.bmad/bmm/workflows/document-project/checklist.md +245 -0
  157. package/.bmad/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  158. package/.bmad/bmm/workflows/document-project/instructions.md +222 -0
  159. package/.bmad/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  160. package/.bmad/bmm/workflows/document-project/templates/index-template.md +169 -0
  161. package/.bmad/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  162. package/.bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  163. package/.bmad/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  164. package/.bmad/bmm/workflows/document-project/workflow.yaml +29 -0
  165. package/.bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  166. package/.bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  167. package/.bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  168. package/.bmad/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  169. package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +127 -0
  170. package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-library.json +90 -0
  171. package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +127 -0
  172. package/.bmad/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +79 -0
  173. package/.bmad/bmm/workflows/frame-expert/create-dataflow/checklist.md +39 -0
  174. package/.bmad/bmm/workflows/frame-expert/create-dataflow/instructions.md +131 -0
  175. package/.bmad/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +23 -0
  176. package/.bmad/bmm/workflows/frame-expert/create-diagram/checklist.md +43 -0
  177. package/.bmad/bmm/workflows/frame-expert/create-diagram/instructions.md +142 -0
  178. package/.bmad/bmm/workflows/frame-expert/create-diagram/workflow.yaml +24 -0
  179. package/.bmad/bmm/workflows/frame-expert/create-flowchart/checklist.md +49 -0
  180. package/.bmad/bmm/workflows/frame-expert/create-flowchart/instructions.md +242 -0
  181. package/.bmad/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +27 -0
  182. package/.bmad/bmm/workflows/frame-expert/create-wireframe/checklist.md +38 -0
  183. package/.bmad/bmm/workflows/frame-expert/create-wireframe/instructions.md +133 -0
  184. package/.bmad/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +23 -0
  185. package/.bmad/bmm/workflows/techdoc/documentation-standards.md +262 -0
  186. package/.bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
  187. package/.bmad/bmm/workflows/testarch/atdd/checklist.md +373 -0
  188. package/.bmad/bmm/workflows/testarch/atdd/instructions.md +785 -0
  189. package/.bmad/bmm/workflows/testarch/atdd/workflow.yaml +45 -0
  190. package/.bmad/bmm/workflows/testarch/automate/checklist.md +580 -0
  191. package/.bmad/bmm/workflows/testarch/automate/instructions.md +1303 -0
  192. package/.bmad/bmm/workflows/testarch/automate/workflow.yaml +52 -0
  193. package/.bmad/bmm/workflows/testarch/ci/checklist.md +246 -0
  194. package/.bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +165 -0
  195. package/.bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
  196. package/.bmad/bmm/workflows/testarch/ci/instructions.md +517 -0
  197. package/.bmad/bmm/workflows/testarch/ci/workflow.yaml +45 -0
  198. package/.bmad/bmm/workflows/testarch/framework/checklist.md +321 -0
  199. package/.bmad/bmm/workflows/testarch/framework/instructions.md +455 -0
  200. package/.bmad/bmm/workflows/testarch/framework/workflow.yaml +47 -0
  201. package/.bmad/bmm/workflows/testarch/nfr-assess/checklist.md +405 -0
  202. package/.bmad/bmm/workflows/testarch/nfr-assess/instructions.md +722 -0
  203. package/.bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
  204. package/.bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +47 -0
  205. package/.bmad/bmm/workflows/testarch/test-design/checklist.md +234 -0
  206. package/.bmad/bmm/workflows/testarch/test-design/instructions.md +782 -0
  207. package/.bmad/bmm/workflows/testarch/test-design/test-design-template.md +285 -0
  208. package/.bmad/bmm/workflows/testarch/test-design/workflow.yaml +48 -0
  209. package/.bmad/bmm/workflows/testarch/test-review/checklist.md +470 -0
  210. package/.bmad/bmm/workflows/testarch/test-review/instructions.md +608 -0
  211. package/.bmad/bmm/workflows/testarch/test-review/test-review-template.md +388 -0
  212. package/.bmad/bmm/workflows/testarch/test-review/workflow.yaml +46 -0
  213. package/.bmad/bmm/workflows/testarch/trace/checklist.md +654 -0
  214. package/.bmad/bmm/workflows/testarch/trace/instructions.md +1045 -0
  215. package/.bmad/bmm/workflows/testarch/trace/trace-template.md +673 -0
  216. package/.bmad/bmm/workflows/testarch/trace/workflow.yaml +55 -0
  217. package/.bmad/bmm/workflows/workflow-status/init/instructions.md +334 -0
  218. package/.bmad/bmm/workflows/workflow-status/init/workflow.yaml +28 -0
  219. package/.bmad/bmm/workflows/workflow-status/instructions.md +388 -0
  220. package/.bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +138 -0
  221. package/.bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +126 -0
  222. package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +52 -0
  223. package/.bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +122 -0
  224. package/.bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +113 -0
  225. package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +58 -0
  226. package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +47 -0
  227. package/.bmad/bmm/workflows/workflow-status/project-levels.yaml +59 -0
  228. package/.bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
  229. package/.bmad/bmm/workflows/workflow-status/workflow.yaml +28 -0
  230. package/.bmad/core/agents/bmad-master.md +72 -0
  231. package/.bmad/core/agents/bmad-web-orchestrator.agent.xml +113 -0
  232. package/.bmad/core/config.yaml +11 -0
  233. package/.bmad/core/tasks/adv-elicit-methods.csv +39 -0
  234. package/.bmad/core/tasks/advanced-elicitation-methods.csv +21 -0
  235. package/.bmad/core/tasks/advanced-elicitation.xml +106 -0
  236. package/.bmad/core/tasks/index-docs.xml +65 -0
  237. package/.bmad/core/tasks/validate-workflow.xml +89 -0
  238. package/.bmad/core/tasks/workflow.xml +270 -0
  239. package/.bmad/core/tools/shard-doc.xml +109 -0
  240. package/.bmad/core/workflows/brainstorming/README.md +261 -0
  241. package/.bmad/core/workflows/brainstorming/brain-methods.csv +36 -0
  242. package/.bmad/core/workflows/brainstorming/instructions.md +315 -0
  243. package/.bmad/core/workflows/brainstorming/template.md +106 -0
  244. package/.bmad/core/workflows/brainstorming/workflow.yaml +38 -0
  245. package/.bmad/core/workflows/party-mode/instructions.md +202 -0
  246. package/.bmad/core/workflows/party-mode/workflow.yaml +28 -0
  247. package/.bmad/docs/claude-code-instructions.md +25 -0
  248. package/.claude/commands/agent-vibes-bmad-party.md +117 -0
  249. package/.claude/commands/bmad/bmm/agents/analyst.md +14 -0
  250. package/.claude/commands/bmad/bmm/agents/architect.md +14 -0
  251. package/.claude/commands/bmad/bmm/agents/dev.md +14 -0
  252. package/.claude/commands/bmad/bmm/agents/frame-expert.md +14 -0
  253. package/.claude/commands/bmad/bmm/agents/pm.md +14 -0
  254. package/.claude/commands/bmad/bmm/agents/sm.md +14 -0
  255. package/.claude/commands/bmad/bmm/agents/tea.md +14 -0
  256. package/.claude/commands/bmad/bmm/agents/tech-writer.md +14 -0
  257. package/.claude/commands/bmad/bmm/agents/ux-designer.md +14 -0
  258. package/.claude/commands/bmad/bmm/workflows/architecture.md +13 -0
  259. package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +13 -0
  260. package/.claude/commands/bmad/bmm/workflows/code-review.md +13 -0
  261. package/.claude/commands/bmad/bmm/workflows/correct-course.md +13 -0
  262. package/.claude/commands/bmad/bmm/workflows/create-dataflow.md +13 -0
  263. package/.claude/commands/bmad/bmm/workflows/create-diagram.md +13 -0
  264. package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +13 -0
  265. package/.claude/commands/bmad/bmm/workflows/create-flowchart.md +13 -0
  266. package/.claude/commands/bmad/bmm/workflows/create-story.md +13 -0
  267. package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +13 -0
  268. package/.claude/commands/bmad/bmm/workflows/create-wireframe.md +13 -0
  269. package/.claude/commands/bmad/bmm/workflows/dev-story.md +13 -0
  270. package/.claude/commands/bmad/bmm/workflows/document-project.md +13 -0
  271. package/.claude/commands/bmad/bmm/workflows/domain-research.md +13 -0
  272. package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +13 -0
  273. package/.claude/commands/bmad/bmm/workflows/implementation-readiness.md +13 -0
  274. package/.claude/commands/bmad/bmm/workflows/prd.md +13 -0
  275. package/.claude/commands/bmad/bmm/workflows/product-brief.md +13 -0
  276. package/.claude/commands/bmad/bmm/workflows/research.md +13 -0
  277. package/.claude/commands/bmad/bmm/workflows/retrospective.md +13 -0
  278. package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +13 -0
  279. package/.claude/commands/bmad/bmm/workflows/story-context.md +13 -0
  280. package/.claude/commands/bmad/bmm/workflows/story-done.md +13 -0
  281. package/.claude/commands/bmad/bmm/workflows/story-ready.md +13 -0
  282. package/.claude/commands/bmad/bmm/workflows/tech-spec.md +13 -0
  283. package/.claude/commands/bmad/bmm/workflows/workflow-init.md +13 -0
  284. package/.claude/commands/bmad/bmm/workflows/workflow-status.md +13 -0
  285. package/.claude/commands/bmad/core/agents/bmad-master.md +14 -0
  286. package/.claude/commands/bmad/core/tasks/advanced-elicitation.md +9 -0
  287. package/.claude/commands/bmad/core/tasks/index-docs.md +9 -0
  288. package/.claude/commands/bmad/core/tools/shard-doc.md +9 -0
  289. package/.claude/commands/bmad/core/workflows/brainstorming.md +13 -0
  290. package/.claude/commands/bmad/core/workflows/party-mode.md +13 -0
  291. package/.claude/github-star-reminder.txt +1 -1
  292. package/.claude/hooks/README-TTS-QUEUE.md +135 -0
  293. package/.claude/hooks/bmad-party-manager.sh +225 -0
  294. package/.claude/hooks/bmad-speak.sh +110 -0
  295. package/.claude/hooks/bmad-tts-injector.sh +8 -3
  296. package/.claude/hooks/bmad-voice-manager.sh +61 -29
  297. package/.claude/hooks/play-tts.sh +5 -0
  298. package/.claude/hooks/stop.sh +221 -0
  299. package/.claude/hooks/tts-queue-worker.sh +68 -0
  300. package/.claude/hooks/tts-queue.sh +105 -0
  301. package/.claude/verbosity.txt +1 -0
  302. package/README.md +8 -8
  303. package/RELEASE_NOTES.md +171 -370
  304. package/package.json +1 -1
  305. package/src/bmad-detector.js +3 -3
  306. package/src/commands/bmad-voices.js +392 -0
  307. package/src/installer.js +243 -51
  308. package/.claude/hooks/user-prompt-output.sh +0 -111
  309. package/.claude/plugins/bmad-voices-enabled.flag +0 -0
  310. package/.claude/plugins/bmad-voices.md +0 -51
  311. /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-all.yaml +0 -0
  312. /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-fullstack.yaml +0 -0
  313. /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-ide-minimal.yaml +0 -0
  314. /package/{.bmad-core → v4-backup/.bmad-core}/agent-teams/team-no-ui.yaml +0 -0
  315. /package/{.bmad-core → v4-backup/.bmad-core}/agents/analyst.md +0 -0
  316. /package/{.bmad-core → v4-backup/.bmad-core}/agents/architect.md +0 -0
  317. /package/{.bmad-core → v4-backup/.bmad-core}/agents/bmad-master.md +0 -0
  318. /package/{.bmad-core → v4-backup/.bmad-core}/agents/bmad-orchestrator.md +0 -0
  319. /package/{.bmad-core → v4-backup/.bmad-core}/agents/dev.md +0 -0
  320. /package/{.bmad-core → v4-backup/.bmad-core}/agents/pm.md +0 -0
  321. /package/{.bmad-core → v4-backup/.bmad-core}/agents/po.md +0 -0
  322. /package/{.bmad-core → v4-backup/.bmad-core}/agents/qa.md +0 -0
  323. /package/{.bmad-core → v4-backup/.bmad-core}/agents/sm.md +0 -0
  324. /package/{.bmad-core → v4-backup/.bmad-core}/agents/ux-expert.md +0 -0
  325. /package/{.bmad-core → v4-backup/.bmad-core}/checklists/architect-checklist.md +0 -0
  326. /package/{.bmad-core → v4-backup/.bmad-core}/checklists/change-checklist.md +0 -0
  327. /package/{.bmad-core → v4-backup/.bmad-core}/checklists/pm-checklist.md +0 -0
  328. /package/{.bmad-core → v4-backup/.bmad-core}/checklists/po-master-checklist.md +0 -0
  329. /package/{.bmad-core → v4-backup/.bmad-core}/checklists/story-dod-checklist.md +0 -0
  330. /package/{.bmad-core → v4-backup/.bmad-core}/checklists/story-draft-checklist.md +0 -0
  331. /package/{.bmad-core → v4-backup/.bmad-core}/core-config.yaml +0 -0
  332. /package/{.bmad-core → v4-backup/.bmad-core}/data/bmad-kb.md +0 -0
  333. /package/{.bmad-core → v4-backup/.bmad-core}/data/brainstorming-techniques.md +0 -0
  334. /package/{.bmad-core → v4-backup/.bmad-core}/data/elicitation-methods.md +0 -0
  335. /package/{.bmad-core → v4-backup/.bmad-core}/data/technical-preferences.md +0 -0
  336. /package/{.bmad-core → v4-backup/.bmad-core}/data/test-levels-framework.md +0 -0
  337. /package/{.bmad-core → v4-backup/.bmad-core}/data/test-priorities-matrix.md +0 -0
  338. /package/{.bmad-core → v4-backup/.bmad-core}/enhanced-ide-development-workflow.md +0 -0
  339. /package/{.bmad-core → v4-backup/.bmad-core}/install-manifest.yaml +0 -0
  340. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/advanced-elicitation.md +0 -0
  341. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/apply-qa-fixes.md +0 -0
  342. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/brownfield-create-epic.md +0 -0
  343. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/brownfield-create-story.md +0 -0
  344. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/correct-course.md +0 -0
  345. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-brownfield-story.md +0 -0
  346. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-deep-research-prompt.md +0 -0
  347. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-doc.md +0 -0
  348. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/create-next-story.md +0 -0
  349. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/document-project.md +0 -0
  350. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/execute-checklist.md +0 -0
  351. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/facilitate-brainstorming-session.md +0 -0
  352. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/generate-ai-frontend-prompt.md +0 -0
  353. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/index-docs.md +0 -0
  354. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/kb-mode-interaction.md +0 -0
  355. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/nfr-assess.md +0 -0
  356. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/qa-gate.md +0 -0
  357. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/review-story.md +0 -0
  358. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/risk-profile.md +0 -0
  359. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/shard-doc.md +0 -0
  360. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/test-design.md +0 -0
  361. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/trace-requirements.md +0 -0
  362. /package/{.bmad-core → v4-backup/.bmad-core}/tasks/validate-next-story.md +0 -0
  363. /package/{.bmad-core → v4-backup/.bmad-core}/templates/architecture-tmpl.yaml +0 -0
  364. /package/{.bmad-core → v4-backup/.bmad-core}/templates/brainstorming-output-tmpl.yaml +0 -0
  365. /package/{.bmad-core → v4-backup/.bmad-core}/templates/brownfield-architecture-tmpl.yaml +0 -0
  366. /package/{.bmad-core → v4-backup/.bmad-core}/templates/brownfield-prd-tmpl.yaml +0 -0
  367. /package/{.bmad-core → v4-backup/.bmad-core}/templates/competitor-analysis-tmpl.yaml +0 -0
  368. /package/{.bmad-core → v4-backup/.bmad-core}/templates/front-end-architecture-tmpl.yaml +0 -0
  369. /package/{.bmad-core → v4-backup/.bmad-core}/templates/front-end-spec-tmpl.yaml +0 -0
  370. /package/{.bmad-core → v4-backup/.bmad-core}/templates/fullstack-architecture-tmpl.yaml +0 -0
  371. /package/{.bmad-core → v4-backup/.bmad-core}/templates/market-research-tmpl.yaml +0 -0
  372. /package/{.bmad-core → v4-backup/.bmad-core}/templates/prd-tmpl.yaml +0 -0
  373. /package/{.bmad-core → v4-backup/.bmad-core}/templates/project-brief-tmpl.yaml +0 -0
  374. /package/{.bmad-core → v4-backup/.bmad-core}/templates/qa-gate-tmpl.yaml +0 -0
  375. /package/{.bmad-core → v4-backup/.bmad-core}/templates/story-tmpl.yaml +0 -0
  376. /package/{.bmad-core → v4-backup/.bmad-core}/user-guide.md +0 -0
  377. /package/{.bmad-core → v4-backup/.bmad-core}/utils/bmad-doc-template.md +0 -0
  378. /package/{.bmad-core → v4-backup/.bmad-core}/utils/workflow-management.md +0 -0
  379. /package/{.bmad-core → v4-backup/.bmad-core}/workflows/brownfield-fullstack.yaml +0 -0
  380. /package/{.bmad-core → v4-backup/.bmad-core}/workflows/brownfield-service.yaml +0 -0
  381. /package/{.bmad-core → v4-backup/.bmad-core}/workflows/brownfield-ui.yaml +0 -0
  382. /package/{.bmad-core → v4-backup/.bmad-core}/workflows/greenfield-fullstack.yaml +0 -0
  383. /package/{.bmad-core → v4-backup/.bmad-core}/workflows/greenfield-service.yaml +0 -0
  384. /package/{.bmad-core → v4-backup/.bmad-core}/workflows/greenfield-ui.yaml +0 -0
  385. /package/{.bmad-core → v4-backup/.bmad-core}/working-in-the-brownfield.md +0 -0
package/src/installer.js CHANGED
@@ -53,6 +53,13 @@ import boxen from 'boxen';
53
53
  import ora from 'ora';
54
54
  import { fileURLToPath } from 'node:url';
55
55
  import { installMCP } from './commands/install-mcp.js';
56
+ import {
57
+ previewVoice,
58
+ listAvailableVoices,
59
+ listBmadAssignedVoices,
60
+ assignVoice,
61
+ resetBmadVoices,
62
+ } from './commands/bmad-voices.js';
56
63
 
57
64
  const __filename = fileURLToPath(import.meta.url);
58
65
  const __dirname = path.dirname(__filename);
@@ -63,6 +70,13 @@ const packageJson = JSON.parse(
63
70
  );
64
71
  const VERSION = packageJson.version;
65
72
 
73
+ // Configure CLI
74
+ program
75
+ .name('agentvibes')
76
+ .description('🎙️ AgentVibes - Text-to-Speech with personality for AI Assistants')
77
+ .version(VERSION, '-v, --version', 'Output the current version')
78
+ .helpOption('-h, --help', 'Display help for command');
79
+
66
80
  // Beautiful ASCII art
67
81
  function showWelcome() {
68
82
  console.log('');
@@ -113,31 +127,26 @@ function showReleaseInfo() {
113
127
  console.log(
114
128
  boxen(
115
129
  chalk.white.bold('═══════════════════════════════════════════════════════════════\n') +
116
- chalk.cyan.bold(' 📦 AgentVibes v2.5.0 - Verbosity Control System\n') +
117
- chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
118
- chalk.green.bold('🎙️ NEW FEATURE:\n\n') +
119
- chalk.cyan('Intelligent Verbosity Control\n') +
120
- chalk.gray(' • Control how much Claude speaks while working\n') +
121
- chalk.gray(' • LOW: Acknowledgments + completions only (minimal)\n') +
122
- chalk.gray(' • MEDIUM: + Major decisions and findings (balanced)\n') +
123
- chalk.gray(' • HIGH: Full reasoning process (maximum transparency)\n') +
124
- chalk.gray(' • Uses emoji markers (💭 🤔 ✓) for automatic TTS\n') +
125
- chalk.gray(' • No manual Bash calls needed!\n\n') +
126
- chalk.cyan('How to Use:\n') +
127
- chalk.gray(' /agent-vibes:verbosity high # Maximum transparency\n') +
128
- chalk.gray(' /agent-vibes:verbosity medium # Balanced\n') +
129
- chalk.gray(' /agent-vibes:verbosity low # Minimal (default)\n\n') +
130
- chalk.cyan('Perfect For:\n') +
131
- chalk.gray(' • LOW: Quiet, focused work sessions\n') +
132
- chalk.gray(' • MEDIUM: Understanding major decisions\n') +
133
- chalk.gray(' • HIGH: Learning mode, debugging complex tasks\n\n') +
130
+ chalk.cyan.bold(' 📦 AgentVibes v2.6.0 - BMAD Integration & Voice Management CLI\n') +
134
131
  chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
135
- chalk.green.bold('🚀 TRY LANGUAGE LEARNING MODE:\n\n') +
136
- chalk.cyan(' /agent-vibes:language english\n') +
137
- chalk.cyan(' /agent-vibes:target spanish\n') +
138
- chalk.cyan(' /agent-vibes:learn\n\n') +
139
- chalk.white(' Learn a second language while coding!\n') +
140
- chalk.white(' Spanish, Italian, French, Mandarin, and more! 🌍\n\n') +
132
+ chalk.green.bold('🎙️ WHAT\'S NEW:\n\n') +
133
+ chalk.cyan('AgentVibes v2.6.0 brings comprehensive BMAD integration with unique\n') +
134
+ chalk.cyan('AI voices for all agents! BMAD is a revolutionary AI-driven agile\n') +
135
+ chalk.cyan('framework that automatically adapts from single bug fixes to\n') +
136
+ chalk.cyan('enterprise-scale systems. This release includes 5 new CLI commands\n') +
137
+ chalk.cyan('for voice management, fuzzy voice matching (use short names like\n') +
138
+ chalk.cyan('"ryan"), BMAD v6 support with backward compatibility, and an\n') +
139
+ chalk.cyan('improved help system.\n\n') +
140
+ chalk.green.bold('✨ KEY HIGHLIGHTS:\n\n') +
141
+ chalk.gray(' 🎙️ BMAD TTS Integration - All BMAD agents can now speak!\n') +
142
+ chalk.gray(' 🛠️ Voice Management CLI - 5 new commands for managing voices\n') +
143
+ chalk.gray(' 🔍 Fuzzy Voice Matching - Use "ryan" instead of "en_US-ryan-high"\n') +
144
+ chalk.gray(' 📚 Improved Help - Built-in help command lists all commands\n') +
145
+ chalk.gray(' 🔧 BMAD v6 Support - Detects latest BMAD folder structure\n\n') +
146
+ chalk.cyan('Try the new commands:\n') +
147
+ chalk.gray(' npx agentvibes help\n') +
148
+ chalk.gray(' npx agentvibes preview-voice ryan\n') +
149
+ chalk.gray(' npx agentvibes list-available-voices\n\n') +
141
150
  chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
142
151
  chalk.gray('📖 Full Release Notes: RELEASE_NOTES.md\n') +
143
152
  chalk.gray('🌐 Website: https://agentvibes.org\n') +
@@ -182,7 +191,7 @@ function getUserShell() {
182
191
 
183
192
  /**
184
193
  * Execute a shell script using the user's default shell with environment loaded
185
- * @param {string} scriptPath - Path to the script to execute
194
+ * @param {string} scriptPath - Path to the script with optional arguments (e.g., "script.sh enable")
186
195
  * @param {object} options - execSync options
187
196
  * @returns {Buffer} - Output from the script
188
197
  */
@@ -190,7 +199,8 @@ function execScript(scriptPath, options = {}) {
190
199
  const { shell, shellConfig } = getUserShell();
191
200
 
192
201
  // Source the shell config to load environment variables, then run the script
193
- const command = `source "${shellConfig}" 2>/dev/null; ${shell} "${scriptPath}"`;
202
+ // Don't wrap scriptPath in quotes - it may contain arguments
203
+ const command = `source "${shellConfig}" 2>/dev/null; ${shell} ${scriptPath}`;
194
204
 
195
205
  return execSync(command, {
196
206
  shell: shell,
@@ -766,6 +776,160 @@ async function checkAndInstallPiper(targetDir, options) {
766
776
  }
767
777
  }
768
778
 
779
+ /**
780
+ * Process TTS_INJECTION markers in BMAD files
781
+ * Replaces markers with actual TTS instructions for both party mode and individual agents
782
+ * @param {string} bmadPath - Path to BMAD installation (e.g., .bmad or bmad)
783
+ */
784
+ async function processBmadTtsInjections(bmadPath) {
785
+ const partyModeMarker = '<!-- TTS_INJECTION:party-mode -->';
786
+ const agentTtsMarker = '<!-- TTS_INJECTION:agent-tts -->';
787
+
788
+ const partyModeReplacement = `If AgentVibes party mode is enabled, immediately trigger TTS with agent's voice:
789
+ - Use Bash tool: \`.claude/hooks/bmad-speak.sh '[Agent Name]' '[dialogue]'\`
790
+ - This speaks the dialogue with the agent's unique voice
791
+ - Run in background (&) to not block next agent`;
792
+
793
+ const agentTtsReplacement = `- When responding to user messages, speak your responses using TTS:
794
+ Call: \`.claude/hooks/bmad-speak.sh '{agent-id}' '{response-text}'\` after each response
795
+ Replace {agent-id} with YOUR agent ID from <agent id="..."> tag at top of this file
796
+ Replace {response-text} with the text you just output to the user
797
+ IMPORTANT: Use single quotes as shown - do NOT escape special characters like ! or $ inside single quotes
798
+ Run in background (&) to avoid blocking`;
799
+
800
+ // Process party mode file
801
+ const partyModeFile = path.join(bmadPath, 'core/workflows/party-mode/instructions.md');
802
+ try {
803
+ let partyContent = await fs.readFile(partyModeFile, 'utf8');
804
+ if (partyContent.includes(partyModeMarker)) {
805
+ partyContent = partyContent.replaceAll(partyModeMarker, partyModeReplacement);
806
+ await fs.writeFile(partyModeFile, partyContent, 'utf8');
807
+ }
808
+ } catch (error) {
809
+ // Party mode file doesn't exist or already processed - skip
810
+ }
811
+
812
+ // Process all agent files
813
+ const agentDirs = [
814
+ path.join(bmadPath, 'bmm/agents'),
815
+ path.join(bmadPath, 'bmgd/agents'),
816
+ path.join(bmadPath, 'bmb/agents'),
817
+ path.join(bmadPath, 'cis/agents'),
818
+ ];
819
+
820
+ for (const agentDir of agentDirs) {
821
+ try {
822
+ const files = await fs.readdir(agentDir);
823
+ for (const file of files) {
824
+ if (file.endsWith('.md')) {
825
+ const agentFile = path.join(agentDir, file);
826
+ let content = await fs.readFile(agentFile, 'utf8');
827
+ if (content.includes(agentTtsMarker)) {
828
+ content = content.replaceAll(agentTtsMarker, agentTtsReplacement);
829
+ await fs.writeFile(agentFile, content, 'utf8');
830
+ }
831
+ }
832
+ }
833
+ } catch (error) {
834
+ // Agent directory doesn't exist - skip
835
+ }
836
+ }
837
+
838
+ // Create default voice assignments for BMAD agents
839
+ await createDefaultBmadVoiceAssignments(bmadPath);
840
+ }
841
+
842
+ async function createDefaultBmadVoiceAssignments(bmadPath) {
843
+ const configDir = path.join(bmadPath, '_cfg');
844
+ const voiceMapFile = path.join(configDir, 'agent-voice-map.csv');
845
+
846
+ // Skip if voice map already exists
847
+ try {
848
+ await fs.access(voiceMapFile);
849
+ return; // File exists, don't overwrite
850
+ } catch {
851
+ // File doesn't exist, create it
852
+ }
853
+
854
+ // Default voice assignments for common BMAD agents
855
+ const defaultVoices = `agent_id,voice_name
856
+ pm,en_US-ryan-high
857
+ architect,en_US-danny-low
858
+ dev,en_US-joe-medium
859
+ analyst,en_US-amy-medium
860
+ ux-designer,en_US-kristin-medium
861
+ tea,en_US-lessac-medium
862
+ sm,en_US-bryce-medium
863
+ tech-writer,en_US-kathleen-low
864
+ frame-expert,en_US-kusal-medium
865
+ bmad-master,en_US-libritts_r-high
866
+ `;
867
+
868
+ try {
869
+ await fs.mkdir(configDir, { recursive: true });
870
+ await fs.writeFile(voiceMapFile, defaultVoices, 'utf8');
871
+ console.log('✓ Created default BMAD agent voice assignments');
872
+ } catch (error) {
873
+ // Non-fatal error - voice assignments are optional
874
+ console.log('Note: Could not create default voice assignments:', error.message);
875
+ }
876
+ }
877
+
878
+ /**
879
+ * Proactively create default BMAD voice assignments
880
+ * Only creates if BMAD folder already exists (doesn't create folders proactively to avoid false legacy detection)
881
+ * @param {string} targetDir - Target installation directory
882
+ */
883
+ async function createDefaultBmadVoiceAssignmentsProactive(targetDir) {
884
+ const bmadPaths = [
885
+ path.join(targetDir, '.bmad'),
886
+ path.join(targetDir, 'bmad'),
887
+ ];
888
+
889
+ const defaultVoices = `agent_id,voice_name
890
+ pm,en_US-ryan-high
891
+ architect,en_US-danny-low
892
+ dev,en_US-joe-medium
893
+ analyst,en_US-amy-medium
894
+ ux-designer,en_US-kristin-medium
895
+ tea,en_US-lessac-medium
896
+ sm,en_US-bryce-medium
897
+ tech-writer,en_US-kathleen-low
898
+ frame-expert,en_US-kusal-medium
899
+ bmad-master,en_US-libritts_r-high
900
+ `;
901
+
902
+ for (const bmadPath of bmadPaths) {
903
+ // Only create if BMAD folder already exists
904
+ // Don't create folders proactively - this triggers false legacy v4 detection in BMAD installer
905
+ try {
906
+ await fs.access(bmadPath);
907
+ } catch {
908
+ continue; // Folder doesn't exist, skip
909
+ }
910
+
911
+ const configDir = path.join(bmadPath, '_cfg');
912
+ const voiceMapFile = path.join(configDir, 'agent-voice-map.csv');
913
+
914
+ // Skip if voice map already exists
915
+ try {
916
+ await fs.access(voiceMapFile);
917
+ continue; // File exists, don't overwrite
918
+ } catch {
919
+ // File doesn't exist, create it
920
+ }
921
+
922
+ try {
923
+ await fs.mkdir(configDir, { recursive: true });
924
+ await fs.writeFile(voiceMapFile, defaultVoices, 'utf8');
925
+ console.log(`✓ Created default BMAD voice assignments in ${bmadPath}`);
926
+ } catch (error) {
927
+ // Non-fatal error - voice assignments are optional
928
+ // Silent fail
929
+ }
930
+ }
931
+ }
932
+
769
933
  /**
770
934
  * Handle BMAD integration (detection and TTS injection)
771
935
  * @param {string} targetDir - Target installation directory
@@ -803,32 +967,11 @@ async function handleBmadIntegration(targetDir) {
803
967
  console.log(chalk.green('📝 Created BMAD activation instructions'));
804
968
  }
805
969
 
806
- console.log(chalk.cyan('\n🎤 Injecting TTS into BMAD agents...'));
807
- try {
808
- const injectorScript = path.join(claudeDir, 'hooks', 'bmad-tts-injector.sh');
970
+ // Process TTS_INJECTION markers in BMAD files if they exist
971
+ // This handles the case where BMAD was installed before AgentVibes
972
+ await processBmadTtsInjections(bmadDetection.bmadPath);
809
973
 
810
- try {
811
- await fs.access(injectorScript);
812
- } catch {
813
- console.log(chalk.yellow('⚠️ bmad-tts-injector.sh not found, skipping automatic injection'));
814
- console.log(chalk.gray(' You can manually enable it later with: .claude/hooks/bmad-tts-injector.sh enable'));
815
- return bmadDetection;
816
- }
817
-
818
- await fs.chmod(injectorScript, 0o755);
819
-
820
- const result = execScript(`${injectorScript} enable`, {
821
- cwd: targetDir,
822
- encoding: 'utf8',
823
- stdio: 'pipe'
824
- });
825
-
826
- console.log(result);
827
- } catch (error) {
828
- console.log(chalk.yellow('⚠️ TTS injection encountered an issue:'));
829
- console.log(chalk.gray(` ${error.message}`));
830
- console.log(chalk.gray(' You can manually enable it later with: .claude/hooks/bmad-tts-injector.sh enable'));
831
- }
974
+ console.log(chalk.green('✅ BMAD agents will use agent-specific voices via bmad-speak.sh hook'));
832
975
 
833
976
  return bmadDetection;
834
977
  }
@@ -1357,6 +1500,9 @@ async function install(options = {}) {
1357
1500
  }
1358
1501
  ]);
1359
1502
 
1503
+ // Create default BMAD voice assignments (works even if BMAD not installed yet)
1504
+ await createDefaultBmadVoiceAssignmentsProactive(targetDir);
1505
+
1360
1506
  // Handle BMAD integration
1361
1507
  const bmadDetection = await handleBmadIntegration(targetDir);
1362
1508
  const bmadDetected = bmadDetection.installed;
@@ -1567,6 +1713,52 @@ program
1567
1713
  }
1568
1714
  });
1569
1715
 
1716
+ // BMAD Voice Management Commands
1717
+ program
1718
+ .command('preview-voice <voice-name>')
1719
+ .description('Preview a voice with sample text')
1720
+ .option('-t, --text <text>', 'Custom text to speak (default: sample text)')
1721
+ .action(async (voiceName, options) => {
1722
+ await previewVoice(voiceName, options);
1723
+ });
1724
+
1725
+ program
1726
+ .command('list-available-voices')
1727
+ .description('Show all available voices grouped by provider')
1728
+ .action(async () => {
1729
+ await listAvailableVoices();
1730
+ });
1731
+
1732
+ program
1733
+ .command('list-bmad-assigned-voices')
1734
+ .description('Show all BMAD agents with their current voice assignments')
1735
+ .action(async () => {
1736
+ await listBmadAssignedVoices();
1737
+ });
1738
+
1739
+ program
1740
+ .command('assign-voice <agent-id> <voice-name>')
1741
+ .description('Assign a voice to a specific BMAD agent')
1742
+ .action(async (agentId, voiceName) => {
1743
+ await assignVoice(agentId, voiceName);
1744
+ });
1745
+
1746
+ program
1747
+ .command('reset-bmad-voices')
1748
+ .description('Reset all BMAD agents to default voice assignments')
1749
+ .option('-y, --yes', 'Skip confirmation prompt (auto-confirm)')
1750
+ .action(async (options) => {
1751
+ await resetBmadVoices(options);
1752
+ });
1753
+
1754
+ // Help command
1755
+ program
1756
+ .command('help')
1757
+ .description('Display help information')
1758
+ .action(() => {
1759
+ program.outputHelp();
1760
+ });
1761
+
1570
1762
  program.parse(process.argv);
1571
1763
 
1572
1764
  // Show help if no command provided
@@ -1,111 +0,0 @@
1
- #!/usr/bin/env bash
2
- #
3
- # File: .claude/hooks/user-prompt-output.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, including but not limited to the warranties of
26
- # merchantability, fitness for a particular purpose and noninfringement.
27
- # In no event shall the authors or copyright holders be liable for any claim,
28
- # damages or other liability, whether in an action of contract, tort or
29
- # otherwise, arising from, out of or in connection with the software or the
30
- # use or other dealings in the software.
31
- #
32
- # ---
33
- #
34
- # @fileoverview Auto-detects emoji markers in Claude's output and triggers TTS
35
- # @context Implements verbosity system by detecting 💭 🤔 ✓ markers and speaking them
36
- # @architecture Stdin reader, regex matcher, async TTS trigger
37
- # @dependencies play-tts.sh, tts-verbosity.txt
38
- # @entrypoints Called by Claude Code after each assistant response (user-prompt-output hook)
39
- # @patterns Text stream processing, background job execution, marker-based triggers
40
- # @related session-start-tts.sh, verbosity-manager.sh, Issue #32
41
- # @aiNotes This hook enables natural emoji-based TTS without Claude needing manual Bash calls
42
-
43
- # Fix locale warnings
44
- export LC_ALL=C
45
-
46
- # Get script directory
47
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
48
- PLAY_TTS="$SCRIPT_DIR/play-tts.sh"
49
-
50
- # Get verbosity level
51
- VERBOSITY=$(cat .claude/tts-verbosity.txt 2>/dev/null || cat ~/.claude/tts-verbosity.txt 2>/dev/null || echo "low")
52
-
53
- # Read stdin (Claude's output) - preserve it for display
54
- OUTPUT=$(cat)
55
-
56
- # Always output the original text first (so user sees it)
57
- echo "$OUTPUT"
58
-
59
- # Exit early if play-tts.sh doesn't exist (AgentVibes not installed)
60
- [[ ! -f "$PLAY_TTS" ]] && exit 0
61
-
62
- #
63
- # @function extract_and_speak
64
- # @context Extracts text after emoji markers and triggers TTS asynchronously
65
- # @architecture Uses grep to find markers, extracts text, launches TTS in background
66
- # @dependencies play-tts.sh
67
- # @entrypoints Called based on verbosity level
68
- # @aiNotes Background execution (&) prevents blocking Claude's output
69
- #
70
- extract_and_speak() {
71
- local pattern="$1"
72
-
73
- # Extract lines matching the pattern
74
- # Pattern format: "emoji text" or "emoji [text]"
75
- while IFS= read -r line; do
76
- # Try to extract text after emoji
77
- # Handles formats: "💭 text", "💭 [text]", "💭text"
78
- if echo "$line" | grep -qE "$pattern"; then
79
- # Extract everything after the emoji (and optional space/bracket)
80
- text=$(echo "$line" | sed -E "s/^.*($pattern)[[:space:]]*\[?[[:space:]]*//" | sed 's/\]$//')
81
-
82
- # Skip if text is empty or too short
83
- [[ -z "$text" || ${#text} -lt 3 ]] && continue
84
-
85
- # Speak it in background (don't block)
86
- bash "$PLAY_TTS" "$text" >/dev/null 2>&1 &
87
- fi
88
- done <<< "$OUTPUT"
89
- }
90
-
91
- # Process based on verbosity level
92
- case "$VERBOSITY" in
93
- high)
94
- # HIGH: Speak ALL markers (💭 🤔 ✓)
95
- # Don't speak ✅ here - that's handled by manual TTS completion call
96
- extract_and_speak "💭|🤔|✓"
97
- ;;
98
-
99
- medium)
100
- # MEDIUM: Speak decisions and findings (🤔 ✓)
101
- extract_and_speak "🤔|✓"
102
- ;;
103
-
104
- low)
105
- # LOW: No automatic extraction (only manual ACK/COMPLETE TTS calls)
106
- # Don't process any markers
107
- ;;
108
- esac
109
-
110
- # Exit successfully
111
- exit 0
File without changes
@@ -1,51 +0,0 @@
1
- ---
2
- plugin: bmad-voices
3
- version: 2.0.0
4
- enabled: true
5
- description: Provider-aware voice mappings for BMAD agents
6
- ---
7
-
8
- # BMAD Voice Plugin
9
-
10
- This plugin automatically assigns voices to BMAD agents based on their role and active TTS provider.
11
-
12
- ## Agent Voice Mappings (Provider-Aware)
13
-
14
- | Agent ID | Agent Name | ElevenLabs Voice | Piper Voice | Personality |
15
- |----------|------------|------------------|-------------|-------------|
16
- | pm | John (Product Manager) | Jessica Anne Bogart | en_US-ryan-high | professional |
17
- | dev | James (Developer) | Matthew Schmitz | en_US-joe-medium | normal |
18
- | qa | Quinn (QA) | Aria | en_US-amy-medium | professional |
19
- | architect | Winston (Architect) | Michael | en_GB-alan-medium | normal |
20
- | po | Product Owner | Aria | en_US-amy-medium | professional |
21
- | analyst | Analyst | Matthew Schmitz | kristin | normal |
22
- | sm | Scrum Master | Jessica Anne Bogart | kristin | professional |
23
- | ux-expert | UX Expert | Aria | jenny | normal |
24
- | bmad-master | BMAD Master | Michael | en_GB-alan-medium | zen |
25
- | bmad-orchestrator | Orchestrator | Matthew Schmitz | en_US-ryan-high | professional |
26
-
27
- ## How It Works
28
-
29
- The voice manager automatically selects the appropriate voice based on your active TTS provider:
30
- - **ElevenLabs active**: Uses voices from the "ElevenLabs Voice" column
31
- - **Piper active**: Uses voices from the "Piper Voice" column
32
-
33
- This ensures BMAD agents work seamlessly regardless of which provider you're using.
34
-
35
- ## How to Edit
36
-
37
- Simply edit the table above to change voice mappings. The format is:
38
- - **Agent ID**: Must match BMAD's `agent.id` field (pm, dev, qa, etc.)
39
- - **Agent Name**: Display name (for reference only)
40
- - **ElevenLabs Voice**: Voice name for ElevenLabs provider
41
- - **Piper Voice**: Voice model name for Piper provider
42
- - **Personality**: Optional personality to apply (or "normal" for none)
43
-
44
- ## Commands
45
-
46
- - `/agent-vibes:bmad enable` - Enable BMAD voice plugin
47
- - `/agent-vibes:bmad disable` - Disable BMAD voice plugin
48
- - `/agent-vibes:bmad status` - Show plugin status
49
- - `/agent-vibes:bmad edit` - Open this file for editing
50
- - `/agent-vibes:bmad list` - List all agent voice mappings
51
- - `/agent-vibes:bmad set <agent-id> <elevenlabs-voice> <piper-voice> [personality]` - Set voices for specific agent