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
@@ -0,0 +1,225 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # File: .claude/hooks/bmad-party-manager.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 BMAD Party Mode Voice Integration Manager
35
+ # @context Controls auto-enable/disable of multi-agent voice switching during BMAD party mode
36
+ # @architecture Opt-out flag management, auto-detection, status reporting
37
+ # @dependencies .bmad/_cfg/agent-manifest.csv, bmad-voices-enabled.flag, user-prompt-output.sh
38
+ # @entrypoints /agent-vibes:bmad-party slash command
39
+ # @patterns Auto-enable with opt-out, graceful degradation, feature detection
40
+ # @related user-prompt-output.sh, bmad-voice-manager.sh, Issue #33
41
+
42
+ # Fix locale warnings
43
+ export LC_ALL=C
44
+
45
+ PLUGIN_DIR=".claude/plugins"
46
+ DISABLE_FLAG="$PLUGIN_DIR/bmad-party-mode-disabled.flag"
47
+ BMAD_VOICES_FLAG="$PLUGIN_DIR/bmad-voices-enabled.flag"
48
+ BMAD_MANIFEST=".bmad/_cfg/agent-manifest.csv"
49
+
50
+ # Colors
51
+ GREEN='\033[0;32m'
52
+ YELLOW='\033[1;33m'
53
+ RED='\033[0;31m'
54
+ CYAN='\033[0;36m'
55
+ GRAY='\033[0;90m'
56
+ NC='\033[0m' # No Color
57
+
58
+ #
59
+ # @function is_bmad_installed
60
+ # @context Check if BMAD v6 is installed
61
+ # @returns 0=installed, 1=not installed
62
+ #
63
+ is_bmad_installed() {
64
+ [[ -f "$BMAD_MANIFEST" ]]
65
+ }
66
+
67
+ #
68
+ # @function is_bmad_voices_enabled
69
+ # @context Check if BMAD voice plugin is enabled
70
+ # @returns 0=enabled, 1=disabled
71
+ #
72
+ is_bmad_voices_enabled() {
73
+ [[ -f "$BMAD_VOICES_FLAG" ]]
74
+ }
75
+
76
+ #
77
+ # @function is_party_mode_enabled
78
+ # @context Check if party mode voice integration is enabled
79
+ # @returns 0=enabled, 1=disabled
80
+ #
81
+ is_party_mode_enabled() {
82
+ # Disabled if opt-out flag exists
83
+ [[ -f "$DISABLE_FLAG" ]] && return 1
84
+
85
+ # Enabled if BMAD + voice plugin active
86
+ is_bmad_installed && is_bmad_voices_enabled
87
+ }
88
+
89
+ #
90
+ # @function show_status
91
+ # @context Display current party mode voice integration status
92
+ #
93
+ show_status() {
94
+ echo -e "${CYAN}🎭 BMAD Party Mode Voice Integration${NC}"
95
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
96
+ echo ""
97
+
98
+ # Check BMAD installation
99
+ if ! is_bmad_installed; then
100
+ echo -e "${RED}❌ BMAD not installed${NC}"
101
+ echo -e "${GRAY} Party mode voice integration requires BMAD v6${NC}"
102
+ echo -e "${GRAY} Install: https://github.com/bmad-method/bmad${NC}"
103
+ echo ""
104
+ return 1
105
+ fi
106
+
107
+ echo -e "${GREEN}✅ BMAD v6 detected${NC}"
108
+
109
+ # Check voice plugin
110
+ if ! is_bmad_voices_enabled; then
111
+ echo -e "${RED}❌ BMAD voice plugin disabled${NC}"
112
+ echo -e "${GRAY} Enable: /agent-vibes:bmad enable${NC}"
113
+ echo ""
114
+ return 1
115
+ fi
116
+
117
+ echo -e "${GREEN}✅ BMAD voice plugin enabled${NC}"
118
+
119
+ # Check party mode status
120
+ if is_party_mode_enabled; then
121
+ echo -e "${GREEN}✅ Party mode voices: ENABLED${NC}"
122
+ echo ""
123
+ echo -e "${CYAN}How it works:${NC}"
124
+ echo " When you run /bmad:core:workflows:party-mode,"
125
+ echo " each agent speaks with their unique voice:"
126
+ echo ""
127
+ echo " 🏗️ Winston (Architect) → Michael"
128
+ echo " 📋 John (PM) → Jessica Anne Bogart"
129
+ echo " 💻 Amelia (Dev) → Matthew Schmitz"
130
+ echo " 📊 Mary (Analyst) → kristin"
131
+ echo " ... and more!"
132
+ echo ""
133
+ echo -e "${GRAY}Disable with: /agent-vibes:bmad-party disable${NC}"
134
+ else
135
+ echo -e "${YELLOW}⚠️ Party mode voices: DISABLED (opt-out active)${NC}"
136
+ echo ""
137
+ echo -e "${GRAY}Enable with: /agent-vibes:bmad-party enable${NC}"
138
+ fi
139
+
140
+ echo ""
141
+ }
142
+
143
+ #
144
+ # @function enable_party_mode
145
+ # @context Enable party mode voice integration (remove opt-out flag)
146
+ #
147
+ enable_party_mode() {
148
+ # Verify prerequisites
149
+ if ! is_bmad_installed; then
150
+ echo -e "${RED}❌ Cannot enable: BMAD not installed${NC}"
151
+ echo -e "${GRAY} Install BMAD v6 first${NC}"
152
+ return 1
153
+ fi
154
+
155
+ if ! is_bmad_voices_enabled; then
156
+ echo -e "${RED}❌ Cannot enable: BMAD voice plugin disabled${NC}"
157
+ echo -e "${GRAY} Enable with: /agent-vibes:bmad enable${NC}"
158
+ return 1
159
+ fi
160
+
161
+ # Remove opt-out flag if it exists
162
+ if [[ -f "$DISABLE_FLAG" ]]; then
163
+ rm -f "$DISABLE_FLAG"
164
+ echo -e "${GREEN}✅ Party mode voices enabled${NC}"
165
+ echo ""
166
+ echo -e "${CYAN}🎭 Multi-agent voice switching activated!${NC}"
167
+ echo " Run /bmad:core:workflows:party-mode to hear agents speak"
168
+ else
169
+ echo -e "${GREEN}✅ Party mode voices already enabled${NC}"
170
+ echo ""
171
+ echo -e "${GRAY}(Auto-enabled when BMAD detected)${NC}"
172
+ fi
173
+
174
+ echo ""
175
+ }
176
+
177
+ #
178
+ # @function disable_party_mode
179
+ # @context Disable party mode voice integration (create opt-out flag)
180
+ #
181
+ disable_party_mode() {
182
+ mkdir -p "$PLUGIN_DIR"
183
+
184
+ if [[ -f "$DISABLE_FLAG" ]]; then
185
+ echo -e "${YELLOW}⚠️ Party mode voices already disabled${NC}"
186
+ return 0
187
+ fi
188
+
189
+ # Create opt-out flag
190
+ touch "$DISABLE_FLAG"
191
+
192
+ echo -e "${GREEN}✅ Party mode voices disabled${NC}"
193
+ echo ""
194
+ echo -e "${GRAY}Party mode will continue to work, but agents won't speak${NC}"
195
+ echo -e "${GRAY}Enable again with: /agent-vibes:bmad-party enable${NC}"
196
+ echo ""
197
+ }
198
+
199
+ # Main command dispatcher
200
+ case "${1:-status}" in
201
+ enable)
202
+ enable_party_mode
203
+ ;;
204
+ disable)
205
+ disable_party_mode
206
+ ;;
207
+ status)
208
+ show_status
209
+ ;;
210
+ *)
211
+ echo -e "${CYAN}AgentVibes BMAD Party Mode Manager${NC}"
212
+ echo ""
213
+ echo "Usage: bmad-party-manager.sh {enable|disable|status}"
214
+ echo ""
215
+ echo "Commands:"
216
+ echo " enable Enable party mode voice integration"
217
+ echo " disable Disable party mode voice integration (opt-out)"
218
+ echo " status Show current status and configuration"
219
+ echo ""
220
+ echo "Party Mode Voice Integration:"
221
+ echo " • Auto-enabled when BMAD v6 detected"
222
+ echo " • Each agent speaks with unique voice during party mode"
223
+ echo " • Opt-out available via disable command"
224
+ ;;
225
+ esac
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # File: .claude/hooks/bmad-speak.sh
4
+ #
5
+ # AgentVibes BMAD Voice Integration
6
+ # Maps agent display names OR agent IDs to voices and triggers TTS
7
+ #
8
+ # Usage: bmad-speak.sh "Agent Name" "dialogue text"
9
+ # bmad-speak.sh "agent-id" "dialogue text"
10
+ #
11
+ # Supports both:
12
+ # - Display names (e.g., "Winston", "John") for party mode
13
+ # - Agent IDs (e.g., "architect", "pm") for individual agents
14
+ #
15
+
16
+ set -euo pipefail
17
+
18
+ # Get script directory and project root
19
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
20
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
21
+
22
+ # Arguments
23
+ AGENT_NAME_OR_ID="$1"
24
+ DIALOGUE="$2"
25
+
26
+ # Remove backslash escaping that Claude might add for special chars like ! and $
27
+ # In single quotes these don't need escaping, but Claude sometimes adds \! anyway
28
+ DIALOGUE="${DIALOGUE//\\!/!}"
29
+ DIALOGUE="${DIALOGUE//\\\$/\$}"
30
+
31
+ # Check if party mode is enabled
32
+ if [[ -f "$PROJECT_ROOT/.claude/plugins/bmad-party-mode-disabled.flag" ]]; then
33
+ exit 0
34
+ fi
35
+
36
+ # Check if BMAD is installed
37
+ if [[ ! -f "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" ]]; then
38
+ exit 0
39
+ fi
40
+
41
+ # Map display name to agent ID, OR pass through if already an agent ID
42
+ map_to_agent_id() {
43
+ local name_or_id="$1"
44
+
45
+ # If it looks like a file path (.bmad/*/agents/*.md), extract the agent ID
46
+ # Example: .bmad/bmm/agents/pm.md -> pm
47
+ if [[ "$name_or_id" =~ \.bmad/.*/agents/([^/]+)\.md$ ]]; then
48
+ echo "${BASH_REMATCH[1]}"
49
+ return
50
+ fi
51
+
52
+ # First check if it's already an agent ID (column 1 of manifest)
53
+ # CSV format: name,displayName,title,icon,role,...
54
+ local direct_match=$(grep -i "^\"*${name_or_id}\"*," "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv" | head -1)
55
+ if [[ -n "$direct_match" ]]; then
56
+ # Already an agent ID, pass through
57
+ echo "$name_or_id"
58
+ return
59
+ fi
60
+
61
+ # Otherwise map display name to agent ID (for party mode)
62
+ # Extract 'name' (column 1) where displayName (column 2) contains the name
63
+ # displayName format in CSV: "John", "Mary", "Winston", etc. (first word before any parentheses)
64
+ local agent_id=$(awk -F',' -v name="$name_or_id" '
65
+ BEGIN { IGNORECASE=1 }
66
+ NR > 1 {
67
+ # Extract displayName (column 2)
68
+ display = $2
69
+ gsub(/^"|"$/, "", display) # Remove surrounding quotes
70
+
71
+ # Check if display name starts with the search name (case-insensitive)
72
+ # This handles both "John" and "John (Product Manager)"
73
+ if (tolower(display) ~ "^" tolower(name) "($| |\\()") {
74
+ # Extract agent ID (column 1)
75
+ agent = $1
76
+ gsub(/^"|"$/, "", agent)
77
+ print agent
78
+ exit
79
+ }
80
+ }
81
+ ' "$PROJECT_ROOT/.bmad/_cfg/agent-manifest.csv")
82
+
83
+ echo "$agent_id"
84
+ }
85
+
86
+ # Get agent ID
87
+ AGENT_ID=$(map_to_agent_id "$AGENT_NAME_OR_ID")
88
+
89
+ # Get agent's voice and intro text
90
+ AGENT_VOICE=""
91
+ AGENT_INTRO=""
92
+ if [[ -n "$AGENT_ID" ]] && [[ -f "$SCRIPT_DIR/bmad-voice-manager.sh" ]]; then
93
+ AGENT_VOICE=$("$SCRIPT_DIR/bmad-voice-manager.sh" get-voice "$AGENT_ID" 2>/dev/null)
94
+ AGENT_INTRO=$("$SCRIPT_DIR/bmad-voice-manager.sh" get-intro "$AGENT_ID" 2>/dev/null)
95
+ fi
96
+
97
+ # Prepend intro text if configured (e.g., "John, Product Manager here. [dialogue]")
98
+ FULL_TEXT="$DIALOGUE"
99
+ if [[ -n "$AGENT_INTRO" ]]; then
100
+ FULL_TEXT="${AGENT_INTRO}. ${DIALOGUE}"
101
+ fi
102
+
103
+ # Speak with agent's voice using queue system (non-blocking for Claude)
104
+ # Queue system ensures sequential playback while allowing Claude to continue
105
+ if [[ -n "$AGENT_VOICE" ]]; then
106
+ bash "$SCRIPT_DIR/tts-queue.sh" add "$FULL_TEXT" "$AGENT_VOICE" &
107
+ else
108
+ # Fallback to default voice
109
+ bash "$SCRIPT_DIR/tts-queue.sh" add "$FULL_TEXT" &
110
+ fi
@@ -49,12 +49,17 @@ GRAY='\033[0;90m'
49
49
  NC='\033[0m' # No Color
50
50
 
51
51
  # Detect BMAD installation and version
52
- # Supports both v4 (.bmad-core/) and v6-alpha (bmad/) installations
52
+ # Supports both v4 (.bmad-core/) and v6-alpha (.bmad/) installations
53
53
  detect_bmad() {
54
54
  local bmad_core_dir=""
55
55
 
56
- # Check for v6-alpha first (newer version)
57
- if [[ -d "bmad" ]]; then
56
+ # Check for v6-alpha first (newer version with dot prefix)
57
+ if [[ -d ".bmad" ]]; then
58
+ bmad_core_dir=".bmad"
59
+ elif [[ -d "../.bmad" ]]; then
60
+ bmad_core_dir="../.bmad"
61
+ # Check for v6-alpha without dot (legacy naming)
62
+ elif [[ -d "bmad" ]]; then
58
63
  bmad_core_dir="bmad"
59
64
  elif [[ -d "../bmad" ]]; then
60
65
  bmad_core_dir="../bmad"
@@ -34,14 +34,14 @@
34
34
  # @fileoverview BMAD Voice Plugin Manager - Maps BMAD agents to unique TTS voices
35
35
  # @context Enables each BMAD agent to have its own distinct voice for multi-agent sessions
36
36
  # @architecture Markdown table-based voice mapping with enable/disable flag, auto-detection of BMAD
37
- # @dependencies .claude/plugins/bmad-voices.md (voice mappings), bmad-tts-injector.sh, .bmad-core/ (BMAD installation)
37
+ # @dependencies .claude/config/bmad-voices.md (voice mappings), bmad-tts-injector.sh, .bmad-core/ (BMAD installation)
38
38
  # @entrypoints Called by /agent-vibes:bmad commands, auto-enabled on BMAD detection
39
39
  # @patterns Plugin architecture, auto-enable on dependency detection, state backup/restore on toggle
40
- # @related bmad-tts-injector.sh, .claude/plugins/bmad-voices.md, .bmad-agent-context file
40
+ # @related bmad-tts-injector.sh, .claude/config/bmad-voices.md, .bmad-agent-context file
41
41
 
42
- PLUGIN_DIR=".claude/plugins"
43
- PLUGIN_FILE="$PLUGIN_DIR/bmad-voices.md"
44
- ENABLED_FLAG="$PLUGIN_DIR/bmad-voices-enabled.flag"
42
+ CONFIG_DIR=".claude/config"
43
+ VOICE_CONFIG_FILE="$CONFIG_DIR/bmad-voices.md"
44
+ ENABLED_FLAG="$CONFIG_DIR/bmad-voices-enabled.flag"
45
45
 
46
46
  # AI NOTE: Auto-enable pattern - When BMAD is detected via install-manifest.yaml,
47
47
  # automatically enable the voice plugin to provide seamless multi-agent voice support.
@@ -115,7 +115,7 @@ auto_enable_if_bmad_detected() {
115
115
  # Check if BMAD is installed (any version) and plugin not already enabled
116
116
  if [[ "$version" != "0" ]] && [[ ! -f "$ENABLED_FLAG" ]]; then
117
117
  # BMAD detected but plugin not enabled - enable it silently
118
- mkdir -p "$PLUGIN_DIR"
118
+ mkdir -p "$CONFIG_DIR"
119
119
  touch "$ENABLED_FLAG"
120
120
  return 0
121
121
  fi
@@ -144,7 +144,7 @@ get_agent_voice() {
144
144
  return
145
145
  fi
146
146
 
147
- if [[ ! -f "$PLUGIN_FILE" ]]; then
147
+ if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
148
148
  echo "" # Plugin file missing
149
149
  return
150
150
  fi
@@ -163,19 +163,47 @@ get_agent_voice() {
163
163
  fi
164
164
 
165
165
  # Extract voice from markdown table based on provider
166
- # Column 4 = ElevenLabs Voice, Column 5 = Piper Voice
167
- local column=4 # Default to ElevenLabs (column 4)
166
+ # Table: Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality
167
+ # AWK columns: $1=empty | $2=ID | $3=Name | $4=Intro | $5=ElevenLabs | $6=Piper | $7=Personality
168
+ local column=5 # Default to ElevenLabs (AWK column 5)
168
169
  if [[ "$active_provider" == "piper" ]]; then
169
- column=5 # Use Piper column
170
+ column=6 # Use Piper (AWK column 6)
170
171
  fi
171
172
 
172
- local voice=$(grep "^| $agent_id " "$PLUGIN_FILE" | \
173
+ local voice=$(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | \
173
174
  awk -F'|' "{print \$$column}" | \
174
175
  sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
175
176
 
176
177
  echo "$voice"
177
178
  }
178
179
 
180
+ # @function get_agent_intro
181
+ # @intent Retrieve intro text for BMAD agent (spoken before their message)
182
+ # @why Helps users identify which agent is speaking in party mode
183
+ # @param $1 {string} agent_id - BMAD agent identifier
184
+ # @returns Echoes intro text to stdout, empty string if not configured
185
+ # @exitcode Always 0
186
+ # @sideeffects None
187
+ # @edgecases Returns empty string if plugin file missing, parses column 3 of markdown table
188
+ # @calledby bmad-speak.sh for agent identification in party mode
189
+ # @calls grep, awk, sed
190
+ # @version 2.1.0 - New function for customizable agent introductions
191
+ get_agent_intro() {
192
+ local agent_id="$1"
193
+
194
+ if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
195
+ echo ""
196
+ return
197
+ fi
198
+
199
+ # AWK column 4 = Intro text
200
+ local intro=$(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | \
201
+ awk -F'|' '{print $4}' | \
202
+ sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
203
+
204
+ echo "$intro"
205
+ }
206
+
179
207
  # @function get_agent_personality
180
208
  # @intent Retrieve TTS personality assigned to specific BMAD agent
181
209
  # @why Agents may have distinct speaking styles (friendly, professional, energetic, etc.)
@@ -190,14 +218,14 @@ get_agent_voice() {
190
218
  get_agent_personality() {
191
219
  local agent_id="$1"
192
220
 
193
- if [[ ! -f "$PLUGIN_FILE" ]]; then
221
+ if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
194
222
  echo ""
195
223
  return
196
224
  fi
197
225
 
198
- # Column 6 = Personality (changed from 5 due to new ElevenLabs/Piper columns)
199
- local personality=$(grep "^| $agent_id " "$PLUGIN_FILE" | \
200
- awk -F'|' '{print $6}' | \
226
+ # AWK column 7 = Personality
227
+ local personality=$(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | \
228
+ awk -F'|' '{print $7}' | \
201
229
  sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
202
230
 
203
231
  echo "$personality"
@@ -229,10 +257,10 @@ is_plugin_enabled() {
229
257
  # @calledby Main command dispatcher with "enable" argument
230
258
  # @calls mkdir, cat, source, list_mappings, bmad-tts-injector.sh
231
259
  enable_plugin() {
232
- mkdir -p "$PLUGIN_DIR"
260
+ mkdir -p "$CONFIG_DIR"
233
261
 
234
262
  # Save current settings before enabling
235
- BACKUP_FILE="$PLUGIN_DIR/.bmad-previous-settings"
263
+ BACKUP_FILE="$CONFIG_DIR/.bmad-previous-settings"
236
264
 
237
265
  # Save current voice
238
266
  if [[ -f ".claude/tts-voice.txt" ]]; then
@@ -369,7 +397,7 @@ ACTIVATION_EOF
369
397
  # @calledby Main command dispatcher with "disable" argument
370
398
  # @calls source, rm, echo, bmad-tts-injector.sh
371
399
  disable_plugin() {
372
- BACKUP_FILE="$PLUGIN_DIR/.bmad-previous-settings"
400
+ BACKUP_FILE="$CONFIG_DIR/.bmad-previous-settings"
373
401
 
374
402
  # Check if we have a backup to restore
375
403
  if [[ -f "$BACKUP_FILE" ]]; then
@@ -435,15 +463,15 @@ disable_plugin() {
435
463
  # @calledby enable_plugin, show_status, main command dispatcher with "list"
436
464
  # @calls grep, sed, echo
437
465
  list_mappings() {
438
- if [[ ! -f "$PLUGIN_FILE" ]]; then
439
- echo "❌ Plugin file not found: $PLUGIN_FILE"
466
+ if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
467
+ echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
440
468
  return 1
441
469
  fi
442
470
 
443
471
  echo "📊 BMAD Agent Voice Mappings:"
444
472
  echo ""
445
473
 
446
- grep "^| " "$PLUGIN_FILE" | grep -v "Agent ID" | grep -v "^|---" | \
474
+ grep "^| " "$VOICE_CONFIG_FILE" | grep -v "Agent ID" | grep -v "^|---" | \
447
475
  while IFS='|' read -r _ agent_id name voice personality _; do
448
476
  agent_id=$(echo "$agent_id" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
449
477
  name=$(echo "$name" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
@@ -471,19 +499,19 @@ set_agent_voice() {
471
499
  local voice="$2"
472
500
  local personality="${3:-normal}"
473
501
 
474
- if [[ ! -f "$PLUGIN_FILE" ]]; then
475
- echo "❌ Plugin file not found: $PLUGIN_FILE"
502
+ if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
503
+ echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
476
504
  return 1
477
505
  fi
478
506
 
479
507
  # Check if agent exists
480
- if ! grep -q "^| $agent_id " "$PLUGIN_FILE"; then
508
+ if ! grep -q "^| $agent_id " "$VOICE_CONFIG_FILE"; then
481
509
  echo "❌ Agent '$agent_id' not found in plugin"
482
510
  return 1
483
511
  fi
484
512
 
485
513
  # Update the voice and personality in the table
486
- sed -i.bak "s/^| $agent_id |.*| .* | .* |$/| $agent_id | $(grep "^| $agent_id " "$PLUGIN_FILE" | awk -F'|' '{print $3}') | $voice | $personality |/" "$PLUGIN_FILE"
514
+ sed -i.bak "s/^| $agent_id |.*| .* | .* |$/| $agent_id | $(grep "^| $agent_id " "$VOICE_CONFIG_FILE" | awk -F'|' '{print $3}') | $voice | $personality |/" "$VOICE_CONFIG_FILE"
487
515
 
488
516
  echo "✅ Updated $agent_id → $voice [$personality]"
489
517
  }
@@ -531,12 +559,12 @@ show_status() {
531
559
  # @calledby Main command dispatcher with "edit" argument
532
560
  # @calls echo
533
561
  edit_plugin() {
534
- if [[ ! -f "$PLUGIN_FILE" ]]; then
535
- echo "❌ Plugin file not found: $PLUGIN_FILE"
562
+ if [[ ! -f "$VOICE_CONFIG_FILE" ]]; then
563
+ echo "❌ Plugin file not found: $VOICE_CONFIG_FILE"
536
564
  return 1
537
565
  fi
538
566
 
539
- echo "Opening $PLUGIN_FILE for editing..."
567
+ echo "Opening $VOICE_CONFIG_FILE for editing..."
540
568
  echo "Edit the markdown table to change voice mappings"
541
569
  }
542
570
 
@@ -564,6 +592,9 @@ case "${1:-help}" in
564
592
  get-voice)
565
593
  get_agent_voice "$2"
566
594
  ;;
595
+ get-intro)
596
+ get_agent_intro "$2"
597
+ ;;
567
598
  get-personality)
568
599
  get_agent_personality "$2"
569
600
  ;;
@@ -571,7 +602,7 @@ case "${1:-help}" in
571
602
  edit_plugin
572
603
  ;;
573
604
  *)
574
- echo "Usage: bmad-voice-manager.sh {enable|disable|status|list|set|get-voice|get-personality|edit}"
605
+ echo "Usage: bmad-voice-manager.sh {enable|disable|status|list|set|get-voice|get-intro|get-personality|edit}"
575
606
  echo ""
576
607
  echo "Commands:"
577
608
  echo " enable Enable BMAD voice plugin"
@@ -580,6 +611,7 @@ case "${1:-help}" in
580
611
  echo " list List all agent voice mappings"
581
612
  echo " set <id> <voice> Set voice for agent"
582
613
  echo " get-voice <id> Get voice for agent"
614
+ echo " get-intro <id> Get intro text for agent"
583
615
  echo " get-personality <id> Get personality for agent"
584
616
  echo " edit Edit plugin configuration"
585
617
  exit 1
@@ -46,6 +46,11 @@ export LC_ALL=C
46
46
  TEXT="$1"
47
47
  VOICE_OVERRIDE="$2" # Optional: voice name or ID
48
48
 
49
+ # Remove backslash escaping that Claude might add for special chars like ! and $
50
+ # In single quotes these don't need escaping, but Claude sometimes adds \! anyway
51
+ TEXT="${TEXT//\\!/!}"
52
+ TEXT="${TEXT//\\\$/\$}"
53
+
49
54
  # Get script directory
50
55
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
51
56