agentvibes 2.12.4 โ†’ 2.12.6

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 (429) hide show
  1. package/.claude/hooks/bmad-voice-manager.sh +21 -5
  2. package/.claude/hooks/play-tts.sh +12 -0
  3. package/.claude/hooks/tts-queue.sh +34 -6
  4. package/README.md +17 -10
  5. package/RELEASE_NOTES.md +320 -697
  6. package/mcp-server/install-deps.js +19 -0
  7. package/mcp-server/server.py +58 -36
  8. package/package.json +1 -1
  9. package/scripts/fix-audio-tunnel.sh +22 -6
  10. package/src/commands/bmad-voices.js +14 -1
  11. package/src/installer.js +157 -72
  12. package/test/unit/play-tts.bats +1 -1
  13. package/.bmad/_cfg/agent-manifest.csv +0 -11
  14. package/.bmad/_cfg/agent-voice-map.csv +0 -11
  15. package/.bmad/_cfg/agents/bmm-analyst.customize.yaml +0 -42
  16. package/.bmad/_cfg/agents/bmm-architect.customize.yaml +0 -42
  17. package/.bmad/_cfg/agents/bmm-dev.customize.yaml +0 -42
  18. package/.bmad/_cfg/agents/bmm-frame-expert.customize.yaml +0 -42
  19. package/.bmad/_cfg/agents/bmm-pm.customize.yaml +0 -42
  20. package/.bmad/_cfg/agents/bmm-sm.customize.yaml +0 -42
  21. package/.bmad/_cfg/agents/bmm-tea.customize.yaml +0 -42
  22. package/.bmad/_cfg/agents/bmm-tech-writer.customize.yaml +0 -42
  23. package/.bmad/_cfg/agents/bmm-ux-designer.customize.yaml +0 -42
  24. package/.bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
  25. package/.bmad/_cfg/files-manifest.csv +0 -243
  26. package/.bmad/_cfg/ides/claude-code.yaml +0 -6
  27. package/.bmad/_cfg/manifest.yaml +0 -9
  28. package/.bmad/_cfg/task-manifest.csv +0 -5
  29. package/.bmad/_cfg/tool-manifest.csv +0 -2
  30. package/.bmad/_cfg/workflow-manifest.csv +0 -38
  31. package/.bmad/bmm/README.md +0 -128
  32. package/.bmad/bmm/agents/analyst.md +0 -79
  33. package/.bmad/bmm/agents/analyst.md.backup-pre-tts +0 -75
  34. package/.bmad/bmm/agents/architect.md +0 -80
  35. package/.bmad/bmm/agents/dev.md +0 -70
  36. package/.bmad/bmm/agents/frame-expert.md +0 -72
  37. package/.bmad/bmm/agents/pm.md +0 -84
  38. package/.bmad/bmm/agents/sm.md +0 -93
  39. package/.bmad/bmm/agents/tea.md +0 -80
  40. package/.bmad/bmm/agents/tech-writer.md +0 -84
  41. package/.bmad/bmm/agents/ux-designer.md +0 -79
  42. package/.bmad/bmm/config.yaml +0 -17
  43. package/.bmad/bmm/docs/README.md +0 -236
  44. package/.bmad/bmm/docs/agents-guide.md +0 -1058
  45. package/.bmad/bmm/docs/brownfield-guide.md +0 -762
  46. package/.bmad/bmm/docs/enterprise-agentic-development.md +0 -686
  47. package/.bmad/bmm/docs/faq.md +0 -588
  48. package/.bmad/bmm/docs/glossary.md +0 -320
  49. package/.bmad/bmm/docs/party-mode.md +0 -224
  50. package/.bmad/bmm/docs/quick-spec-flow.md +0 -652
  51. package/.bmad/bmm/docs/quick-start.md +0 -376
  52. package/.bmad/bmm/docs/scale-adaptive-system.md +0 -612
  53. package/.bmad/bmm/docs/test-architecture.md +0 -396
  54. package/.bmad/bmm/docs/workflow-architecture-reference.md +0 -366
  55. package/.bmad/bmm/docs/workflow-document-project-reference.md +0 -489
  56. package/.bmad/bmm/docs/workflows-analysis.md +0 -370
  57. package/.bmad/bmm/docs/workflows-implementation.md +0 -286
  58. package/.bmad/bmm/docs/workflows-planning.md +0 -612
  59. package/.bmad/bmm/docs/workflows-solutioning.md +0 -554
  60. package/.bmad/bmm/teams/default-party.csv +0 -20
  61. package/.bmad/bmm/teams/team-fullstack.yaml +0 -13
  62. package/.bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
  63. package/.bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
  64. package/.bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
  65. package/.bmad/bmm/testarch/knowledge/data-factories.md +0 -500
  66. package/.bmad/bmm/testarch/knowledge/email-auth.md +0 -721
  67. package/.bmad/bmm/testarch/knowledge/error-handling.md +0 -725
  68. package/.bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
  69. package/.bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
  70. package/.bmad/bmm/testarch/knowledge/network-first.md +0 -486
  71. package/.bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
  72. package/.bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
  73. package/.bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
  74. package/.bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
  75. package/.bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
  76. package/.bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
  77. package/.bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
  78. package/.bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
  79. package/.bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
  80. package/.bmad/bmm/testarch/knowledge/test-quality.md +0 -664
  81. package/.bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
  82. package/.bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
  83. package/.bmad/bmm/testarch/tea-index.csv +0 -22
  84. package/.bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
  85. package/.bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
  86. package/.bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -26
  87. package/.bmad/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
  88. package/.bmad/bmm/workflows/1-analysis/domain-research/template.md +0 -180
  89. package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -28
  90. package/.bmad/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
  91. package/.bmad/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
  92. package/.bmad/bmm/workflows/1-analysis/product-brief/template.md +0 -181
  93. package/.bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -45
  94. package/.bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
  95. package/.bmad/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
  96. package/.bmad/bmm/workflows/1-analysis/research/checklist.md +0 -299
  97. package/.bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
  98. package/.bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
  99. package/.bmad/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
  100. package/.bmad/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
  101. package/.bmad/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
  102. package/.bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
  103. package/.bmad/bmm/workflows/1-analysis/research/template-market.md +0 -347
  104. package/.bmad/bmm/workflows/1-analysis/research/template-technical.md +0 -245
  105. package/.bmad/bmm/workflows/1-analysis/research/workflow.yaml +0 -44
  106. package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +0 -80
  107. package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +0 -616
  108. package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +0 -53
  109. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
  110. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
  111. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
  112. package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -61
  113. package/.bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
  114. package/.bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
  115. package/.bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
  116. package/.bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -204
  117. package/.bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
  118. package/.bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -52
  119. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
  120. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
  121. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
  122. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
  123. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
  124. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
  125. package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -58
  126. package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
  127. package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
  128. package/.bmad/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
  129. package/.bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
  130. package/.bmad/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
  131. package/.bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
  132. package/.bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -55
  133. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
  134. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
  135. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
  136. package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -62
  137. package/.bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
  138. package/.bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
  139. package/.bmad/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
  140. package/.bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -60
  141. package/.bmad/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
  142. package/.bmad/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
  143. package/.bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -56
  144. package/.bmad/bmm/workflows/4-implementation/create-story/checklist.md +0 -240
  145. package/.bmad/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
  146. package/.bmad/bmm/workflows/4-implementation/create-story/template.md +0 -51
  147. package/.bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -71
  148. package/.bmad/bmm/workflows/4-implementation/dev-story/checklist.md +0 -38
  149. package/.bmad/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
  150. package/.bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -56
  151. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
  152. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
  153. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
  154. package/.bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -57
  155. package/.bmad/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1443
  156. package/.bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -56
  157. package/.bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
  158. package/.bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -234
  159. package/.bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
  160. package/.bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -49
  161. package/.bmad/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
  162. package/.bmad/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
  163. package/.bmad/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
  164. package/.bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -61
  165. package/.bmad/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
  166. package/.bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -26
  167. package/.bmad/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
  168. package/.bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -23
  169. package/.bmad/bmm/workflows/document-project/checklist.md +0 -245
  170. package/.bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
  171. package/.bmad/bmm/workflows/document-project/instructions.md +0 -222
  172. package/.bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
  173. package/.bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
  174. package/.bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
  175. package/.bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
  176. package/.bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
  177. package/.bmad/bmm/workflows/document-project/workflow.yaml +0 -29
  178. package/.bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
  179. package/.bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
  180. package/.bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
  181. package/.bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
  182. package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +0 -127
  183. package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-library.json +0 -90
  184. package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +0 -127
  185. package/.bmad/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +0 -79
  186. package/.bmad/bmm/workflows/frame-expert/create-dataflow/checklist.md +0 -39
  187. package/.bmad/bmm/workflows/frame-expert/create-dataflow/instructions.md +0 -131
  188. package/.bmad/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +0 -23
  189. package/.bmad/bmm/workflows/frame-expert/create-diagram/checklist.md +0 -43
  190. package/.bmad/bmm/workflows/frame-expert/create-diagram/instructions.md +0 -142
  191. package/.bmad/bmm/workflows/frame-expert/create-diagram/workflow.yaml +0 -24
  192. package/.bmad/bmm/workflows/frame-expert/create-flowchart/checklist.md +0 -49
  193. package/.bmad/bmm/workflows/frame-expert/create-flowchart/instructions.md +0 -242
  194. package/.bmad/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +0 -27
  195. package/.bmad/bmm/workflows/frame-expert/create-wireframe/checklist.md +0 -38
  196. package/.bmad/bmm/workflows/frame-expert/create-wireframe/instructions.md +0 -133
  197. package/.bmad/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +0 -23
  198. package/.bmad/bmm/workflows/techdoc/documentation-standards.md +0 -262
  199. package/.bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
  200. package/.bmad/bmm/workflows/testarch/atdd/checklist.md +0 -373
  201. package/.bmad/bmm/workflows/testarch/atdd/instructions.md +0 -785
  202. package/.bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -45
  203. package/.bmad/bmm/workflows/testarch/automate/checklist.md +0 -580
  204. package/.bmad/bmm/workflows/testarch/automate/instructions.md +0 -1303
  205. package/.bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -52
  206. package/.bmad/bmm/workflows/testarch/ci/checklist.md +0 -246
  207. package/.bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
  208. package/.bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
  209. package/.bmad/bmm/workflows/testarch/ci/instructions.md +0 -517
  210. package/.bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -45
  211. package/.bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
  212. package/.bmad/bmm/workflows/testarch/framework/instructions.md +0 -455
  213. package/.bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -47
  214. package/.bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
  215. package/.bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
  216. package/.bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
  217. package/.bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -47
  218. package/.bmad/bmm/workflows/testarch/test-design/checklist.md +0 -234
  219. package/.bmad/bmm/workflows/testarch/test-design/instructions.md +0 -782
  220. package/.bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
  221. package/.bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -48
  222. package/.bmad/bmm/workflows/testarch/test-review/checklist.md +0 -470
  223. package/.bmad/bmm/workflows/testarch/test-review/instructions.md +0 -608
  224. package/.bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
  225. package/.bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -46
  226. package/.bmad/bmm/workflows/testarch/trace/checklist.md +0 -654
  227. package/.bmad/bmm/workflows/testarch/trace/instructions.md +0 -1045
  228. package/.bmad/bmm/workflows/testarch/trace/trace-template.md +0 -673
  229. package/.bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -55
  230. package/.bmad/bmm/workflows/workflow-status/init/instructions.md +0 -334
  231. package/.bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -28
  232. package/.bmad/bmm/workflows/workflow-status/instructions.md +0 -388
  233. package/.bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -138
  234. package/.bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -126
  235. package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -52
  236. package/.bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -122
  237. package/.bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -113
  238. package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
  239. package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
  240. package/.bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
  241. package/.bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
  242. package/.bmad/bmm/workflows/workflow-status/workflow.yaml +0 -28
  243. package/.bmad/core/agents/bmad-master.md +0 -72
  244. package/.bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -113
  245. package/.bmad/core/config.yaml +0 -11
  246. package/.bmad/core/tasks/adv-elicit-methods.csv +0 -39
  247. package/.bmad/core/tasks/advanced-elicitation-methods.csv +0 -21
  248. package/.bmad/core/tasks/advanced-elicitation.xml +0 -106
  249. package/.bmad/core/tasks/index-docs.xml +0 -65
  250. package/.bmad/core/tasks/validate-workflow.xml +0 -89
  251. package/.bmad/core/tasks/workflow.xml +0 -270
  252. package/.bmad/core/tools/shard-doc.xml +0 -109
  253. package/.bmad/core/workflows/brainstorming/README.md +0 -261
  254. package/.bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
  255. package/.bmad/core/workflows/brainstorming/instructions.md +0 -315
  256. package/.bmad/core/workflows/brainstorming/template.md +0 -106
  257. package/.bmad/core/workflows/brainstorming/workflow.yaml +0 -38
  258. package/.bmad/core/workflows/party-mode/instructions.md +0 -203
  259. package/.bmad/core/workflows/party-mode/workflow.yaml +0 -28
  260. package/.bmad/docs/claude-code-instructions.md +0 -25
  261. package/.claude/commands/BMad/analyst.md +0 -88
  262. package/.claude/commands/BMad/architect.md +0 -89
  263. package/.claude/commands/BMad/bmad-master.md +0 -114
  264. package/.claude/commands/BMad/bmad-orchestrator.md +0 -151
  265. package/.claude/commands/BMad/dev.md +0 -85
  266. package/.claude/commands/BMad/pm.md +0 -88
  267. package/.claude/commands/BMad/po.md +0 -83
  268. package/.claude/commands/BMad/qa.md +0 -91
  269. package/.claude/commands/BMad/sm.md +0 -69
  270. package/.claude/commands/BMad/tasks/advanced-elicitation.md +0 -123
  271. package/.claude/commands/BMad/tasks/apply-qa-fixes.md +0 -154
  272. package/.claude/commands/BMad/tasks/brownfield-create-epic.md +0 -166
  273. package/.claude/commands/BMad/tasks/brownfield-create-story.md +0 -153
  274. package/.claude/commands/BMad/tasks/correct-course.md +0 -76
  275. package/.claude/commands/BMad/tasks/create-brownfield-story.md +0 -318
  276. package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +0 -284
  277. package/.claude/commands/BMad/tasks/create-doc.md +0 -107
  278. package/.claude/commands/BMad/tasks/create-next-story.md +0 -118
  279. package/.claude/commands/BMad/tasks/document-project.md +0 -349
  280. package/.claude/commands/BMad/tasks/execute-checklist.md +0 -92
  281. package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +0 -142
  282. package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +0 -57
  283. package/.claude/commands/BMad/tasks/index-docs.md +0 -179
  284. package/.claude/commands/BMad/tasks/kb-mode-interaction.md +0 -81
  285. package/.claude/commands/BMad/tasks/nfr-assess.md +0 -349
  286. package/.claude/commands/BMad/tasks/qa-gate.md +0 -167
  287. package/.claude/commands/BMad/tasks/review-story.md +0 -320
  288. package/.claude/commands/BMad/tasks/risk-profile.md +0 -359
  289. package/.claude/commands/BMad/tasks/shard-doc.md +0 -191
  290. package/.claude/commands/BMad/tasks/test-design.md +0 -180
  291. package/.claude/commands/BMad/tasks/trace-requirements.md +0 -270
  292. package/.claude/commands/BMad/tasks/validate-next-story.md +0 -140
  293. package/.claude/commands/BMad/ux-expert.md +0 -73
  294. package/.claude/commands/bmad/bmm/agents/analyst.md +0 -14
  295. package/.claude/commands/bmad/bmm/agents/architect.md +0 -14
  296. package/.claude/commands/bmad/bmm/agents/dev.md +0 -14
  297. package/.claude/commands/bmad/bmm/agents/frame-expert.md +0 -14
  298. package/.claude/commands/bmad/bmm/agents/pm.md +0 -14
  299. package/.claude/commands/bmad/bmm/agents/sm.md +0 -14
  300. package/.claude/commands/bmad/bmm/agents/tea.md +0 -14
  301. package/.claude/commands/bmad/bmm/agents/tech-writer.md +0 -14
  302. package/.claude/commands/bmad/bmm/agents/ux-designer.md +0 -14
  303. package/.claude/commands/bmad/bmm/workflows/architecture.md +0 -13
  304. package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +0 -13
  305. package/.claude/commands/bmad/bmm/workflows/code-review.md +0 -13
  306. package/.claude/commands/bmad/bmm/workflows/correct-course.md +0 -13
  307. package/.claude/commands/bmad/bmm/workflows/create-dataflow.md +0 -13
  308. package/.claude/commands/bmad/bmm/workflows/create-diagram.md +0 -13
  309. package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +0 -13
  310. package/.claude/commands/bmad/bmm/workflows/create-flowchart.md +0 -13
  311. package/.claude/commands/bmad/bmm/workflows/create-story.md +0 -13
  312. package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +0 -13
  313. package/.claude/commands/bmad/bmm/workflows/create-wireframe.md +0 -13
  314. package/.claude/commands/bmad/bmm/workflows/dev-story.md +0 -13
  315. package/.claude/commands/bmad/bmm/workflows/document-project.md +0 -13
  316. package/.claude/commands/bmad/bmm/workflows/domain-research.md +0 -13
  317. package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +0 -13
  318. package/.claude/commands/bmad/bmm/workflows/implementation-readiness.md +0 -13
  319. package/.claude/commands/bmad/bmm/workflows/prd.md +0 -13
  320. package/.claude/commands/bmad/bmm/workflows/product-brief.md +0 -13
  321. package/.claude/commands/bmad/bmm/workflows/research.md +0 -13
  322. package/.claude/commands/bmad/bmm/workflows/retrospective.md +0 -13
  323. package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +0 -13
  324. package/.claude/commands/bmad/bmm/workflows/story-context.md +0 -13
  325. package/.claude/commands/bmad/bmm/workflows/story-done.md +0 -13
  326. package/.claude/commands/bmad/bmm/workflows/story-ready.md +0 -13
  327. package/.claude/commands/bmad/bmm/workflows/tech-spec.md +0 -13
  328. package/.claude/commands/bmad/bmm/workflows/workflow-init.md +0 -13
  329. package/.claude/commands/bmad/bmm/workflows/workflow-status.md +0 -13
  330. package/.claude/commands/bmad/core/agents/bmad-master.md +0 -14
  331. package/.claude/commands/bmad/core/tasks/advanced-elicitation.md +0 -9
  332. package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
  333. package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
  334. package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -13
  335. package/.claude/commands/bmad/core/workflows/party-mode.md +0 -13
  336. package/.claude/github-star-reminder.txt +0 -1
  337. package/.claude/hooks/bmad-party-manager.sh +0 -225
  338. package/.claude/hooks/stop.sh +0 -221
  339. package/.claude/piper-voices-dir.txt +0 -1
  340. package/.mcp.json +0 -88
  341. package/RELEASE_NOTES_v2.4.0_DRAFT.md +0 -116
  342. package/RELEASE_NOTES_v2.4.1_DRAFT.md +0 -61
  343. package/docs/2025-11-15_15-14-33.snagx +0 -0
  344. package/docs/Screenshot 2025-11-15 151325.png +0 -0
  345. package/docs/Screenshot 2025-11-15 151432.png +0 -0
  346. package/docs/macos-piper-issue.md +0 -172
  347. package/docs/stargazer-cms-prd.md +0 -1918
  348. package/docs/whatsapp-plugin-github-issue.md +0 -393
  349. package/docs/whatsapp-tts-plugin-feasibility.md +0 -418
  350. package/docs/whatsapp-tts-standalone-plugin.md +0 -628
  351. package/github-profile-draft.md +0 -57
  352. package/linkedin/vibe-coding-and-pulseaudio.md +0 -121
  353. package/mcp-server/agentvibes.db +0 -0
  354. package/scripts/audio-tunnel.config +0 -17
  355. package/v4-backup/.bmad-core/agent-teams/team-all.yaml +0 -15
  356. package/v4-backup/.bmad-core/agent-teams/team-fullstack.yaml +0 -19
  357. package/v4-backup/.bmad-core/agent-teams/team-ide-minimal.yaml +0 -11
  358. package/v4-backup/.bmad-core/agent-teams/team-no-ui.yaml +0 -14
  359. package/v4-backup/.bmad-core/agents/analyst.md +0 -84
  360. package/v4-backup/.bmad-core/agents/architect.md +0 -85
  361. package/v4-backup/.bmad-core/agents/bmad-master.md +0 -110
  362. package/v4-backup/.bmad-core/agents/bmad-orchestrator.md +0 -147
  363. package/v4-backup/.bmad-core/agents/dev.md +0 -81
  364. package/v4-backup/.bmad-core/agents/pm.md +0 -84
  365. package/v4-backup/.bmad-core/agents/po.md +0 -79
  366. package/v4-backup/.bmad-core/agents/qa.md +0 -87
  367. package/v4-backup/.bmad-core/agents/sm.md +0 -65
  368. package/v4-backup/.bmad-core/agents/ux-expert.md +0 -69
  369. package/v4-backup/.bmad-core/checklists/architect-checklist.md +0 -440
  370. package/v4-backup/.bmad-core/checklists/change-checklist.md +0 -184
  371. package/v4-backup/.bmad-core/checklists/pm-checklist.md +0 -372
  372. package/v4-backup/.bmad-core/checklists/po-master-checklist.md +0 -434
  373. package/v4-backup/.bmad-core/checklists/story-dod-checklist.md +0 -96
  374. package/v4-backup/.bmad-core/checklists/story-draft-checklist.md +0 -155
  375. package/v4-backup/.bmad-core/core-config.yaml +0 -22
  376. package/v4-backup/.bmad-core/data/bmad-kb.md +0 -809
  377. package/v4-backup/.bmad-core/data/brainstorming-techniques.md +0 -38
  378. package/v4-backup/.bmad-core/data/elicitation-methods.md +0 -156
  379. package/v4-backup/.bmad-core/data/technical-preferences.md +0 -5
  380. package/v4-backup/.bmad-core/data/test-levels-framework.md +0 -148
  381. package/v4-backup/.bmad-core/data/test-priorities-matrix.md +0 -174
  382. package/v4-backup/.bmad-core/enhanced-ide-development-workflow.md +0 -248
  383. package/v4-backup/.bmad-core/install-manifest.yaml +0 -230
  384. package/v4-backup/.bmad-core/tasks/advanced-elicitation.md +0 -119
  385. package/v4-backup/.bmad-core/tasks/apply-qa-fixes.md +0 -150
  386. package/v4-backup/.bmad-core/tasks/brownfield-create-epic.md +0 -162
  387. package/v4-backup/.bmad-core/tasks/brownfield-create-story.md +0 -149
  388. package/v4-backup/.bmad-core/tasks/correct-course.md +0 -72
  389. package/v4-backup/.bmad-core/tasks/create-brownfield-story.md +0 -314
  390. package/v4-backup/.bmad-core/tasks/create-deep-research-prompt.md +0 -280
  391. package/v4-backup/.bmad-core/tasks/create-doc.md +0 -103
  392. package/v4-backup/.bmad-core/tasks/create-next-story.md +0 -114
  393. package/v4-backup/.bmad-core/tasks/document-project.md +0 -345
  394. package/v4-backup/.bmad-core/tasks/execute-checklist.md +0 -88
  395. package/v4-backup/.bmad-core/tasks/facilitate-brainstorming-session.md +0 -138
  396. package/v4-backup/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -53
  397. package/v4-backup/.bmad-core/tasks/index-docs.md +0 -175
  398. package/v4-backup/.bmad-core/tasks/kb-mode-interaction.md +0 -77
  399. package/v4-backup/.bmad-core/tasks/nfr-assess.md +0 -345
  400. package/v4-backup/.bmad-core/tasks/qa-gate.md +0 -163
  401. package/v4-backup/.bmad-core/tasks/review-story.md +0 -316
  402. package/v4-backup/.bmad-core/tasks/risk-profile.md +0 -355
  403. package/v4-backup/.bmad-core/tasks/shard-doc.md +0 -187
  404. package/v4-backup/.bmad-core/tasks/test-design.md +0 -176
  405. package/v4-backup/.bmad-core/tasks/trace-requirements.md +0 -266
  406. package/v4-backup/.bmad-core/tasks/validate-next-story.md +0 -136
  407. package/v4-backup/.bmad-core/templates/architecture-tmpl.yaml +0 -651
  408. package/v4-backup/.bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  409. package/v4-backup/.bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -477
  410. package/v4-backup/.bmad-core/templates/brownfield-prd-tmpl.yaml +0 -281
  411. package/v4-backup/.bmad-core/templates/competitor-analysis-tmpl.yaml +0 -307
  412. package/v4-backup/.bmad-core/templates/front-end-architecture-tmpl.yaml +0 -219
  413. package/v4-backup/.bmad-core/templates/front-end-spec-tmpl.yaml +0 -350
  414. package/v4-backup/.bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -824
  415. package/v4-backup/.bmad-core/templates/market-research-tmpl.yaml +0 -253
  416. package/v4-backup/.bmad-core/templates/prd-tmpl.yaml +0 -203
  417. package/v4-backup/.bmad-core/templates/project-brief-tmpl.yaml +0 -222
  418. package/v4-backup/.bmad-core/templates/qa-gate-tmpl.yaml +0 -103
  419. package/v4-backup/.bmad-core/templates/story-tmpl.yaml +0 -138
  420. package/v4-backup/.bmad-core/user-guide.md +0 -577
  421. package/v4-backup/.bmad-core/utils/bmad-doc-template.md +0 -327
  422. package/v4-backup/.bmad-core/utils/workflow-management.md +0 -71
  423. package/v4-backup/.bmad-core/workflows/brownfield-fullstack.yaml +0 -298
  424. package/v4-backup/.bmad-core/workflows/brownfield-service.yaml +0 -188
  425. package/v4-backup/.bmad-core/workflows/brownfield-ui.yaml +0 -198
  426. package/v4-backup/.bmad-core/workflows/greenfield-fullstack.yaml +0 -241
  427. package/v4-backup/.bmad-core/workflows/greenfield-service.yaml +0 -207
  428. package/v4-backup/.bmad-core/workflows/greenfield-ui.yaml +0 -236
  429. package/v4-backup/.bmad-core/working-in-the-brownfield.md +0 -606
package/RELEASE_NOTES.md CHANGED
@@ -1,851 +1,474 @@
1
- # Release v2.12.0 - .agentvibes/ Directory Migration
1
+ # Release v2.12.6 - Security & Reliability Improvements
2
2
 
3
- **Release Date:** 2025-11-20
4
- **Type:** Minor Release (Breaking Change - Automatic Migration)
3
+ **Release Date:** 2025-01-24
4
+ **Type:** Patch Release (Security & Reliability)
5
5
 
6
- ## ๐ŸŽฏ AI Summary
6
+ ## ๐Ÿ”’ AI Summary
7
7
 
8
- AgentVibes v2.12.0 introduces a comprehensive directory reorganization, migrating all AgentVibes-specific configuration from `.claude/config/` and `.claude/plugins/` to a dedicated `.agentvibes/` directory. This eliminates namespace confusion with Claude Code's official directories and provides a clear, predictable location for all AgentVibes state. The migration is fully automatic during upgradeโ€”users simply run `npx agentvibes@latest update` and their configuration is seamlessly moved. This release also includes extensive BMAD testing improvements with the new `npx test-bmad-pr` command and comprehensive Piper voice installation enhancements.
8
+ AgentVibes v2.12.6 brings quality improvements based on SonarCloud analysis and enhances BMAD party mode. This release improves API key privacy in terminal output, adds better cleanup for long-running sessions, includes more robust error handling, and ensures BMAD agents each get their unique voice. All improvements maintain 100% backward compatibility with 110/110 tests passing.
9
9
 
10
10
  **Key Highlights:**
11
- - ๐Ÿ“ **Dedicated .agentvibes/ Directory** - Clear namespace separation from Claude Code
12
- - ๐Ÿ”„ **Automatic Migration** - Seamless upgrade from .claude/config/ and .claude/plugins/
13
- - โœ… **100% Backward Compatible** - No manual intervention required
14
- - ๐Ÿงช **32 Passing Tests** - Comprehensive test suite validates all migration scenarios
15
- - ๐ŸŽญ **BMAD Testing Made Easy** - New `npx test-bmad-pr` command for one-line testing
16
- - ๐ŸŽค **Improved Voice Installation** - Better Piper voice detection and status display
11
+ - ๐Ÿ”’ **API Key Security** - Masked API key display prevents credential leaks in terminal history
12
+ - ๐Ÿ›ก๏ธ **Resource Leak Prevention** - Subprocess cleanup prevents "too many open files" errors
13
+ - โšก **Enhanced Error Handling** - Graceful degradation instead of crashes on file operations
14
+ - ๐ŸŽญ **BMAD Voice Detection** - Fixed party mode to support both .bmad and bmad directory paths
15
+ - โœ… **110/110 Tests Passing** - All functionality verified and working
17
16
 
18
17
  ---
19
18
 
20
- ## ๐Ÿš€ Major Features
19
+ ## ๐Ÿ”ง Security Improvements
21
20
 
22
- ### Dedicated .agentvibes/ Directory Structure
21
+ ### API Key Masking (Issue #45)
22
+ **Files:** `src/installer.js` (lines 384, 445, 464, 489)
23
23
 
24
- **Complete namespace reorganization** (commits: ab293d05, 04f2f97d, 99134216)
24
+ **Changes:**
25
+ - Replaced partial API key display (`first10chars...`) with masked format (`***************...`)
26
+ - Removed full API key from error messages and manual setup instructions
27
+ - Changed all console outputs to use placeholder `<your-api-key>`
25
28
 
26
- The `.agentvibes/` directory replaces scattered configuration across `.claude/config/` and `.claude/plugins/`:
29
+ **Impact:**
30
+ - Prevents credential leaks in terminal history (`.bash_history`, `.zsh_history`)
31
+ - Safer during screen recordings and screenshots
32
+ - Reduces risk during pair programming sessions
27
33
 
28
- ```
29
- .agentvibes/
30
- โ”œโ”€โ”€ bmad/ # BMAD integration
31
- โ”‚ โ”œโ”€โ”€ bmad-voices.md # Agent-to-voice mappings
32
- โ”‚ โ”œโ”€โ”€ bmad-voices-enabled.flag
33
- โ”‚ โ”œโ”€โ”€ bmad-party-mode-disabled.flag
34
- โ”‚ โ””โ”€โ”€ .bmad-previous-settings
35
- โ””โ”€โ”€ config/ # AgentVibes configuration
36
- โ”œโ”€โ”€ agentvibes.json # Pretext configuration
37
- โ”œโ”€โ”€ personality-voice-defaults.json
38
- โ””โ”€โ”€ README-personality-defaults.md
39
- ```
34
+ ### Path Validation Enhancement (Issue #45)
35
+ **File:** `src/installer.js:214-219`
40
36
 
41
- **Migration Paths:**
42
- - `.claude/config/agentvibes.json` โ†’ `.agentvibes/config/agentvibes.json`
43
- - `.claude/plugins/bmad-voices-enabled.flag` โ†’ `.agentvibes/bmad/bmad-voices-enabled.flag`
44
- - `.claude/config/bmad-voices.md` โ†’ `.agentvibes/bmad/bmad-voices.md`
37
+ **Changes:**
38
+ - Added `path.resolve()` validation for script execution
39
+ - Ensures scripts are within allowed `.claude/hooks` directory
40
+ - Defense-in-depth security measure
45
41
 
46
- **Benefits:**
47
- - โœ… Clear ownership - `.agentvibes/` is obviously AgentVibes-managed
48
- - โœ… No collision risk - Claude Code may add official plugins in the future
49
- - โœ… Easier troubleshooting - All state in one predictable location
50
- - โœ… Better organization - Separate BMAD integration from core config
42
+ **Impact:**
43
+ - Prevents path traversal attacks
44
+ - Better error messages for invalid paths
51
45
 
52
- ### Automatic Migration System
46
+ ---
53
47
 
54
- **Seamless upgrade experience** (commit: ab293d05)
48
+ ## ๐Ÿ›ก๏ธ Reliability Improvements
55
49
 
56
- - **Detection:** Installer automatically detects old configuration on startup
57
- - **Execution:** Runs `.claude/hooks/migrate-to-agentvibes.sh` automatically
58
- - **Preservation:** All settings, voice mappings, and flags preserved
59
- - **Cleanup:** Removes empty `.claude/plugins/` directory after migration
60
- - **Graceful Fallback:** Manual migration option if auto-migration fails
50
+ ### Resource Leak Prevention (Issue #45)
51
+ **Files:** `mcp-server/server.py:144-174, 510-537`
61
52
 
62
- **Migration Script Features:**
63
- - Color-coded progress output
64
- - File-by-file migration reporting
65
- - Duplicate detection and handling
66
- - Preserves `.claude/config/` for runtime state files (like `tts-speech-rate.txt`)
53
+ **Changes:**
54
+ - Added try-finally blocks around subprocess operations
55
+ - Ensures processes are properly killed if still running after errors
56
+ - Cleanup happens even on exceptions
67
57
 
68
- ### Comprehensive Test Suite
58
+ **Impact:**
59
+ - Prevents "too many open files" errors in long-running MCP server sessions
60
+ - Better resource management for continuous operation
61
+ - More stable in production environments
69
62
 
70
- **32 passing tests across 6 scenarios** (commit: ab293d05)
63
+ ### Enhanced Error Handling - Python (Issue #45)
64
+ **Files:** `mcp-server/server.py:544-558, 565-584`
71
65
 
72
- Created `test-migration.sh` with full coverage:
66
+ **Changes:**
67
+ - Added error handling to `_get_personality()` function
68
+ - Added error handling to `_get_provider()` function
69
+ - Catches `PermissionError`, `UnicodeDecodeError`, `OSError`
70
+ - Returns sensible defaults instead of crashing
73
71
 
74
- 1. **Fresh Install** (6 assertions)
75
- - Verifies `.agentvibes/` created directly
76
- - Ensures old directories NOT created
72
+ **Impact:**
73
+ - Graceful degradation when config files are corrupted or inaccessible
74
+ - Continues operation with defaults rather than failing
75
+ - Better user experience in edge cases
77
76
 
78
- 2. **Upgrade from v2.9.x** (9 assertions)
79
- - Auto-migration of all config files
80
- - Cleanup of old locations
81
- - Value preservation
77
+ ### Enhanced Error Handling - JavaScript (Issue #45)
78
+ **Files:** `src/installer.js:500-536, 544-604`
82
79
 
83
- 3. **Manual Migration** (4 assertions)
84
- - Script execution
85
- - File movement
86
- - Old location cleanup
80
+ **Changes:**
81
+ - Added comprehensive error handling to `copyCommandFiles()`
82
+ - Added comprehensive error handling to `copyHookFiles()`
83
+ - Tracks success/failure counts per file
84
+ - Continues with remaining files on partial failures
85
+ - Shows clear feedback about what succeeded vs failed
87
86
 
88
- 4. **BMAD Integration** (5 assertions)
89
- - Voice mappings in new location
90
- - Hook scripts read from new paths
91
- - Party mode functionality
87
+ **Impact:**
88
+ - Installation continues even if individual files fail to copy
89
+ - Users see exactly which operations succeeded
90
+ - Partial installations are more visible and recoverable
92
91
 
93
- 5. **Pretext Configuration** (3 assertions)
94
- - Config in new location
95
- - Scripts reference new paths
92
+ ### Shell Config Deduplication (Issue #45)
93
+ **File:** `src/installer.js:482-498`
96
94
 
97
- 6. **No Old Config** (4 assertions)
98
- - No errors when nothing to migrate
99
- - Idempotent behavior
95
+ **Changes:**
96
+ - Checks if `ELEVENLABS_API_KEY` already exists before appending
97
+ - Shows friendly message when key already present
98
+ - Prevents duplicate entries on repeated installations
100
99
 
101
- **Test Results:**
102
- ```
103
- Total Tests: 32
104
- Passed: 32
105
- Failed: 0
106
- Success Rate: 100%
107
- ```
100
+ **Impact:**
101
+ - Cleaner shell configuration files
102
+ - No accumulation of duplicate exports
103
+ - Better UX for repeated installs
108
104
 
109
- ### BMAD Testing Command
105
+ ---
110
106
 
111
- **One-line BMAD PR testing** (commits: c86b0cd2, fc70b5c5)
107
+ ## ๐ŸŽญ BMAD Integration Improvements
112
108
 
113
- Added `npx test-bmad-pr` command for effortless BMAD integration testing:
109
+ ### Multi-Path Voice Detection (Issue #46)
110
+ **File:** `.claude/hooks/bmad-voice-manager.sh`
114
111
 
115
- ```bash
116
- # Test default PR #934
117
- npx agentvibes@latest test-bmad-pr
112
+ **Changes:**
113
+ - Enhanced `detect_bmad_version()` to check both `.bmad/` and `bmad/` paths
114
+ - Updated `get_bmad_config_path()` to support both v6 directory variants
115
+ - Fixed `get_agent_voice()` to find `agent-voice-map.csv` in either location
118
116
 
119
- # Test specific PR
120
- npx agentvibes@latest test-bmad-pr 935
121
- ```
117
+ **Impact:**
118
+ - BMAD party mode now works regardless of installation path
119
+ - Each agent speaks with their unique assigned voice
120
+ - Resolves all agents using default "lessac" voice
122
121
 
123
- **Features:**
124
- - Downloads and runs automated test script
125
- - Supports testing any BMAD PR by number
126
- - Handles both fork and official repo scenarios
127
- - Zero manual downloads or git cloning required
128
- - Fallback to official repo if fork unavailable
129
- - Complete setup validation and environment checks
130
-
131
- **Testing Flow:**
132
- 1. Clone BMAD PR into temporary directory
133
- 2. Setup test environment with proper permissions
134
- 3. Run BMAD installer (includes AgentVibes)
135
- 4. Validate party mode and voice assignments
136
- 5. Test agent activation and TTS integration
137
- 6. Cleanup on completion
138
-
139
- ### Enhanced Voice Installation
140
-
141
- **Better Piper voice detection and status** (commits: 5f5eb30b, 9e6b2423, 4dd39606)
142
-
143
- - **Verbose Output:** Shows complete list of installed vs missing voices
144
- - **Status Display:** Clear indication of which voices need downloading
145
- - **Error Handling:** Graceful handling of broken symlinks (commit: 30c72a05)
146
- - **Voice Detection:** Fixed fsSync usage for file system operations (commit: 3e9d8769)
147
- - **Default Voice:** Set ryan-high as default with correct gender labels (commit: de9744d7)
148
-
149
- **Example Output:**
122
+ **Supported Paths:**
150
123
  ```
151
- ๐Ÿ“Š Piper Voice Installation Status
152
-
153
- Installed (5/10):
154
- โœ… en_US-lessac-medium
155
- โœ… en_US-ryan-high
156
- โœ… en_US-amy-medium
157
- โœ… en_US-joe-medium
158
- โœ… en_GB-alan-medium
159
-
160
- Missing (5/10):
161
- โŒ en_US-hfc_female-medium
162
- โŒ en_US-kristin-medium
163
- โŒ en_US-kusal-medium
164
- โŒ en_US-l2arctic-medium
165
- โŒ en_US-libritts-high
124
+ โœ“ .bmad/_cfg/agent-voice-map.csv (standard)
125
+ โœ“ bmad/_cfg/agent-voice-map.csv (alternative)
126
+ โœ“ .bmad/core/config.yaml (standard)
127
+ โœ“ bmad/core/config.yaml (alternative)
166
128
  ```
167
129
 
168
130
  ---
169
131
 
170
- ## ๐Ÿ› Bug Fixes
171
-
172
- ### BMAD Configuration Packaging
173
-
174
- **Fixed bmad-voices.md npm packaging** (commits: 8cb250d2, a7209e39)
175
- - Added exception to `.npmignore` to include `bmad-voices.md`
176
- - Previously excluded because `.claude/config/` was ignored
177
- - Essential for party mode agent intros to work
178
- - Without this, `copyBmadConfigFiles()` had nothing to copy
179
-
180
- ### BMAD Config Installation
181
-
182
- **Added BMAD config file copying** (commits: 8e0c9c1a, 1e1bc623)
183
- - Copies `bmad-voices.md` to project during installation
184
- - Contains agent intro text and voice mappings
185
- - Fixes party mode agents not speaking intros
186
- - Called in both main install and quick update flows
187
-
188
- ### Test Script Improvements
189
-
190
- **User experience enhancements** (commits: 0532ac5d, d0e67624, 5f7e4d97)
191
- - Accept '1' as yes in test script prompts (0532ac5d)
192
- - Changed 'claude-code' command to correct 'claude' (d0e67624)
193
- - Removed duplicate AgentVibes installation step (5f7e4d97)
194
- - Fixed npx command syntax in documentation (967ab67e)
195
-
196
- ### Voice Detection Fixes
197
-
198
- **Robustness improvements** (commits: 30c72a05, 3e9d8769)
199
- - Error handling for broken symlinks in voice file detection
200
- - Use fsSync methods for file system checks
201
- - Prevents crashes during voice scanning
202
-
203
- ---
204
-
205
- ## ๐Ÿ“š Documentation
206
-
207
- ### Updated All Path References
208
-
209
- **Comprehensive documentation updates** (commit: ab293d05)
210
-
211
- Updated 24 files to reference new `.agentvibes/` paths:
132
+ ## ๐Ÿ“Š Changes Summary
212
133
 
213
- **Command Files (4):**
214
- - `.claude/commands/agent-vibes-bmad-voices.md`
215
- - `.claude/commands/agent-vibes/agent-vibes.md`
216
- - `.claude/commands/agent-vibes/bmad.md`
217
- - `.claude/commands/agent-vibes/set-pretext.md`
134
+ **Issues Resolved:**
135
+ - #45 - SonarCloud Quality Gate: 17 Security Hotspots & C Reliability
136
+ - #46 - BMAD Plugin: Missing agent-voice-map.csv path detection
218
137
 
219
- **Hook Scripts (3):**
220
- - `.claude/hooks/bmad-speak.sh`
221
- - `.claude/hooks/bmad-voice-manager.sh`
222
- - `.claude/hooks/play-tts-elevenlabs.sh`
138
+ **Files Modified:** 3
139
+ - `src/installer.js` - API key masking, error handling, shell config deduplication, path validation
140
+ - `mcp-server/server.py` - Resource cleanup, error handling
141
+ - `.claude/hooks/bmad-voice-manager.sh` - Multi-path BMAD detection
223
142
 
224
- **Documentation Files (5):**
225
- - `docs/architecture/provider-system.md`
226
- - `docs/bmad-v6-support.md`
227
- - `docs/installation-structure.md`
228
- - `docs/technical-deep-dive.md`
229
- - `docs/voice-mapping-format.md`
143
+ **Lines Changed:** 180 additions, 85 deletions
230
144
 
231
- **Configuration Files (3):**
232
- - `.gitignore`
233
- - `.npmignore`
234
- - `README.md`
235
-
236
- **New Documentation:**
237
- - `.agentvibes/README.md` - Complete guide to directory structure
238
- - `BMAD_PR_TESTING_INSTRUCTIONS.md` - Testing guide for BMAD PRs
145
+ **Test Results:** 110/110 passing โœ…
239
146
 
240
147
  ---
241
148
 
242
- ## ๐Ÿ”ง Migration Guide
243
-
244
- ### Automatic Migration (Recommended)
149
+ ## ๐Ÿ’ก Technical Details
245
150
 
246
- **For users upgrading from v2.9.x:**
151
+ ### SonarCloud Quality Gate Fixes
247
152
 
248
- ```bash
249
- # Simply update - migration happens automatically
250
- npx agentvibes@latest update
251
- ```
153
+ **Must-Fix Items (High Priority):**
154
+ 1. โœ… API Key Logging - Prevents accidental credential exposure
155
+ 2. โœ… Resource Leaks - Prevents crashes in long-running sessions
156
+ 3. โœ… Missing Error Handling - Prevents crashes on file system errors
252
157
 
253
- **What happens:**
254
- 1. Installer detects old configuration in `.claude/config/` or `.claude/plugins/`
255
- 2. Runs migration script automatically
256
- 3. Moves all files to `.agentvibes/`
257
- 4. Preserves all settings and mappings
258
- 5. Cleans up empty old directories
259
- 6. Shows migration summary
158
+ **Nice-to-Fix Items (Medium Priority):**
159
+ 4. โœ… Shell Config Deduplication - Better UX on repeated installations
160
+ 5. โœ… Path Validation Enhancement - Defense-in-depth security
260
161
 
261
- ### Manual Migration (If Needed)
162
+ ### Error Handling Strategy
262
163
 
263
- **If automatic migration fails:**
264
-
265
- ```bash
266
- # Run migration script manually
267
- .claude/hooks/migrate-to-agentvibes.sh
164
+ **Python (`server.py`):**
165
+ ```python
166
+ try:
167
+ if personality_file.exists():
168
+ return personality_file.read_text().strip()
169
+ except (PermissionError, UnicodeDecodeError, OSError) as e:
170
+ print(f"Warning: Could not read file: {e}", file=sys.stderr)
171
+ return "normal" # Sensible default
268
172
  ```
269
173
 
270
- ### Fresh Installations
271
-
272
- **New installations create `.agentvibes/` directly:**
273
-
274
- ```bash
275
- npx agentvibes@latest install
276
- ```
277
-
278
- No migration needed - everything goes to `.agentvibes/` from the start.
279
-
280
- ### Verification
281
-
282
- **Check migration success:**
283
-
284
- ```bash
285
- # Should exist
286
- ls -la .agentvibes/bmad/
287
- ls -la .agentvibes/config/
288
-
289
- # Should be empty or removed
290
- ls -la .claude/plugins/ # Should not exist
291
- ls -la .claude/config/ # May exist for runtime files
174
+ **JavaScript (`installer.js`):**
175
+ ```javascript
176
+ try {
177
+ await fs.copyFile(srcPath, destPath);
178
+ successCount++;
179
+ } catch (err) {
180
+ console.log(chalk.yellow(`โš  Failed to copy ${file}: ${err.message}`));
181
+ // Continue with other files
182
+ }
292
183
  ```
293
184
 
294
185
  ---
295
186
 
296
- ## โš ๏ธ Breaking Changes
297
-
298
- ### Directory Structure Reorganization
299
-
300
- **BREAKING CHANGE: Configuration locations changed**
187
+ ## โœ… Testing
301
188
 
302
- While migration is automatic, scripts or tools that directly reference old paths will need updates:
189
+ ### Test Suite Results
190
+ - **110 tests total**
191
+ - **110 passing** โœ…
192
+ - **0 failing**
193
+ - All functionality verified working
303
194
 
304
- **Old Paths (Deprecated):**
305
- - `.claude/config/agentvibes.json`
306
- - `.claude/plugins/bmad-voices-enabled.flag`
307
- - `.claude/config/bmad-voices.md`
308
-
309
- **New Paths (Current):**
310
- - `.agentvibes/config/agentvibes.json`
311
- - `.agentvibes/bmad/bmad-voices-enabled.flag`
312
- - `.agentvibes/bmad/bmad-voices.md`
313
-
314
- **Impact:**
315
- - Custom scripts reading these paths need updates
316
- - All official AgentVibes code updated automatically
317
- - BMAD integration updated in AgentVibes hooks
318
-
319
- **Mitigation:**
320
- - Update any custom scripts to use new paths
321
- - Check `.agentvibes/README.md` for path mapping
195
+ ### Syntax Validation
196
+ - โœ… Node.js syntax check passed
197
+ - โœ… Python syntax check passed
198
+ - โœ… No runtime errors detected
322
199
 
323
200
  ---
324
201
 
325
- ## ๐Ÿ“Š Release Statistics
202
+ ## ๐ŸŽฏ Migration Notes
326
203
 
327
- - **Commits:** 26
328
- - **Files Changed:** 24 (in migration alone)
329
- - **Lines Added:** 829
330
- - **Lines Removed:** 363
331
- - **Test Coverage:** 32 tests, 100% pass rate
332
- - **Documentation Updated:** 17 files
204
+ **No migration required** - This is a patch release with security and reliability improvements.
333
205
 
334
- ---
206
+ **Compatibility:** 100% backward compatible with v2.12.5
335
207
 
336
- ## ๐Ÿ™ Acknowledgments
337
-
338
- Thanks to the AgentVibes community for feedback on directory organization and namespace concerns that led to this improvement!
208
+ **Recommended Action:** Update to get the latest security and stability improvements
209
+ ```bash
210
+ npx agentvibes@latest update
211
+ ```
339
212
 
340
213
  ---
341
214
 
342
- # Release v2.9.5 - Legacy Output Styles Cleanup
343
-
344
- **Release Date:** TBD
345
- **Type:** Patch Release (Cleanup)
346
-
347
- ## ๐ŸŽฏ AI Summary
348
-
349
- AgentVibes v2.9.5 removes legacy output styles installation that became obsolete when we switched to the SessionStart hook system for TTS activation. This cleanup reduces installation time, saves disk space, and simplifies the codebase without affecting functionality.
350
-
351
- ## ๐Ÿงน Cleanup
215
+ ## ๐Ÿ”— References
352
216
 
353
- ### Removed Legacy Output Styles Installation
354
- - Removed `copyOutputStyles()` function from installer (src/installer.js:589-608)
355
- - Deleted `templates/output-styles/` directory from repository
356
- - Removed unused `check-output-style.sh` hook
357
- - Updated documentation to reflect SessionStart hook system
358
-
359
- ### Migration Note for Existing Users
360
- If you previously installed AgentVibes, you can safely delete the `.claude/output-styles/` directory from your projects. The SessionStart hook system (`.claude/hooks/session-start.sh`) now handles TTS activation automatically and is more reliable than the old output styles approach.
217
+ - GitHub Issue #45: https://github.com/paulpreibisch/AgentVibes/issues/45
218
+ - GitHub Issue #46: https://github.com/paulpreibisch/AgentVibes/issues/46
219
+ - SonarCloud Quality Gates: Code quality and security analysis
361
220
 
362
221
  ---
363
222
 
364
- # Release v2.7.2 - Party Mode Voice Fixes
223
+ # Release v2.12.5 - Code Quality Improvements
365
224
 
366
- **Release Date:** 2025-11-18
367
- **Type:** Patch Release (Bug Fixes)
225
+ **Release Date:** 2025-01-23
226
+ **Type:** Patch Release (Quality & Security)
368
227
 
369
- ## ๐ŸŽฏ AI Summary
228
+ ## ๐Ÿ”’ AI Summary
370
229
 
371
- AgentVibes v2.7.2 resolves critical party mode voice issues and enhances the multi-agent conversation experience. This patch fixes issue #38 where BMAD agents appeared to use the same voice due to non-provider-aware status display, and issue #39 by showing audio file locations in output. The speaker delay has been increased from 2s to 4s and made configurable, documentation paths have been updated from the old `.claude/plugins/` to the official `.claude/config/` directory, and the command has been renamed to prevent conflicts with BMAD's party mode.
230
+ AgentVibes v2.12.5 improves code quality by upgrading Sonar quality gates and implementing best practices identified through static analysis. This release includes enhanced input validation, improved shell command handling, better file locking for atomic operations, and secure temporary directory management while maintaining 100% backward compatibility. All 110 existing tests pass with no breaking changes.
372
231
 
373
232
  **Key Highlights:**
374
- - ๐ŸŽญ **Provider-Aware Voice Display** - Fixed issue #38: Voice mappings now show correct voices for active TTS provider
375
- - ๐Ÿ“ **Audio File Locations** - Fixed issue #39: TTS output now displays file paths and voice used
376
- - โธ๏ธ **Configurable Speaker Delay** - Increased from 2s to 4s with customizable configuration
377
- - ๐Ÿ“ **Documentation Path Updates** - Migrated all references from `.claude/plugins/` to `.claude/config/`
378
- - ๐ŸŽช **Command Renamed** - Prevents conflict with BMAD's `/bmad:core:workflows:party-mode`
233
+ - โœ… **Sonar Quality Gates Upgraded** - Enhanced code quality standards across the codebase
234
+ - ๐Ÿ”’ **18 Code Improvements** - Better input validation, command handling, and file operations
235
+ - ๐Ÿงช **110/110 Tests Passing** - All functionality verified and working
236
+ - ๐Ÿ”„ **Zero Breaking Changes** - Fully backward compatible with existing installations
237
+ - ๐Ÿ“Š **162 Lines Enhanced** - Code quality improvements across 8 files
379
238
 
380
239
  ---
381
240
 
382
- ## ๐Ÿ› Bug Fixes
241
+ ## ๐Ÿ”ง Code Quality Improvements
383
242
 
384
- ### Issue #38: Provider-Aware Voice Mappings
243
+ ### Enhanced Input Validation
244
+ **Files:** `src/installer.js`, `.claude/hooks/play-tts.sh`, `mcp-server/install-deps.js`
385
245
 
386
- **Fixed Voice Display for Active Provider** (commit: 34db8510)
387
- - Problem: `list_mappings()` in `bmad-voice-manager.sh` always showed ElevenLabs voices regardless of active provider
388
- - Made agents appear to use same voice when using Piper provider
389
- - Solution: Added provider detection logic to `list_mappings()` function
390
- - Now displays correct voice column based on active TTS provider (Piper or ElevenLabs)
391
- - Added provider indicator to status output: "Provider: piper" or "Provider: elevenlabs"
392
- - Actual voice assignment was working correctly - only the display was wrong
246
+ - Added comprehensive input validation across all user-facing interfaces
247
+ - Shell metacharacter detection and validation
248
+ - Numeric validation for configuration values
249
+ - Empty/null checks for required parameters
250
+ - **Impact:** More robust error handling and better user experience
393
251
 
394
- **Technical Details:**
395
- ```bash
396
- # Detect active TTS provider
397
- local active_provider="elevenlabs" # default
398
- if [[ -f ".claude/tts-provider.txt" ]]; then
399
- active_provider=$(cat .claude/tts-provider.txt)
400
- elif [[ -f "$HOME/.claude/tts-provider.txt" ]]; then
401
- active_provider=$(cat "$HOME/.claude/tts-provider.txt)
402
- fi
403
-
404
- # Select correct voice column
405
- local voice_column=5 # ElevenLabs (AWK column 5)
406
- if [[ "$active_provider" == "piper" ]]; then
407
- voice_column=6 # Piper (AWK column 6)
408
- fi
409
- ```
252
+ ### Improved Shell Command Handling
253
+ **Files:** `src/installer.js:200`, `scripts/fix-audio-tunnel.sh`, `src/commands/bmad-voices.js:221`
410
254
 
411
- ### Issue #39: Display Audio File Locations
255
+ - Enhanced shell script execution with proper argument escaping
256
+ - Added `escapeShellArg()` helper function for safe parameter passing
257
+ - Proper quoting of all shell variables in SSH commands
258
+ - Python command validation against allowlist
259
+ - **Impact:** Safer script execution and better command reliability
412
260
 
413
- **Show TTS Output in Party Mode** (commit: 3afff2b0)
414
- - Problem: Audio file paths were hidden due to `2>/dev/null` redirect
415
- - Users couldn't see which files were being played or which voices were used
416
- - Solution: Removed output suppression from `tts-queue-worker.sh`
417
- - Now displays: File path, voice used, and model information
418
- - Helps with debugging and transparency
261
+ ### Better File System Operations
262
+ **Files:** `src/installer.js` (multiple locations)
419
263
 
420
- **Example Output:**
421
- ```
422
- ๐ŸŽญ Using multi-speaker voice: kristin (Model: 16Speakers, Speaker ID: 2)
423
- ๐ŸŽต Saved to: /home/fire/claude/AgentVibes/.claude/audio/tts-padded-1763498669.wav
424
- ๐ŸŽค Voice used: 16Speakers (Piper TTS)
425
- ```
264
+ - Added `isPathSafe()` validation function for file operations
265
+ - Canonical path resolution to prevent unexpected behavior
266
+ - More restrictive file permissions (750 instead of 755)
267
+ - User-specific temporary directories with proper permissions (700)
268
+ - **Impact:** More predictable file operations and better isolation
426
269
 
427
- ### Party Mode Hook Path Issues
270
+ ### Atomic PID File Operations
271
+ **File:** `.claude/hooks/tts-queue.sh:47-57`
428
272
 
429
- **Project Hooks vs Global Hooks** (commit: 34a53d67)
430
- - Problem: Party mode instructions didn't specify project-local hooks
431
- - Claude AI sometimes used `~/.claude/hooks/` instead of `.claude/hooks/`
432
- - Caused wrong TTS provider to be used in party mode
433
- - Solution: Added explicit guidance in `.bmad/core/workflows/party-mode/instructions.md`
434
- - Critical note: "IMPORTANT: Always use PROJECT hooks (.claude/hooks/), NEVER global hooks (~/.claude/hooks/)"
435
- - Also added to step 2: "If using TTS for announcement, use PROJECT hook: .claude/hooks/play-tts.sh (NOT ~/.claude/hooks/)"
273
+ - Implemented flock-based file locking for PID management
274
+ - Atomic PID file operations prevent race conditions
275
+ - Added timeout protection (5 seconds) for lock acquisition
276
+ - **Impact:** Prevents duplicate TTS queue workers in edge cases
436
277
 
437
- ---
278
+ ### Code Cleanup
279
+ **File:** `src/installer.js:1398-1450`
438
280
 
439
- ## โœจ Improvements
281
+ - Removed debug console.error statements
282
+ - Cleaner production output
283
+ - **Impact:** Better user experience with less verbose output
440
284
 
441
- ### Configurable Speaker Delay
285
+ ---
442
286
 
443
- **Increased and Made Configurable** (commit: 65264c9c)
444
- - Changed default speaker delay from 2s to 4s between agents
445
- - User feedback: "there was still a little overlap in the different agents when they speak"
446
- - Made delay configurable via text file for user customization
447
- - Supports project-local `.claude/tts-speaker-delay.txt` or global `~/.claude/tts-speaker-delay.txt`
448
- - Project config takes precedence over global config
449
- - Must be a positive integer (validated with regex)
287
+ ## ๐Ÿ“Š Changes Summary
450
288
 
451
- **Configuration:**
452
- ```bash
453
- # Set custom delay (e.g., 6 seconds)
454
- echo "6" > .claude/tts-speaker-delay.txt
289
+ **Files Modified:** 8
290
+ - `src/installer.js` - Input validation, command handling, path operations, code cleanup
291
+ - `src/commands/bmad-voices.js` - Enhanced shell argument escaping
292
+ - `mcp-server/install-deps.js` - Python command validation
293
+ - `scripts/fix-audio-tunnel.sh` - SSH command quoting improvements
294
+ - `.claude/hooks/tts-queue.sh` - Secure temp directory, file locking
295
+ - `.claude/hooks/play-tts.sh` - Input validation
296
+ - `test/unit/play-tts.bats` - Updated test expectations
297
+ - `AgentVibes.code-workspace` - Minor workspace config
455
298
 
456
- # Or globally
457
- echo "6" > ~/.claude/tts-speaker-delay.txt
458
- ```
299
+ **Lines Changed:** 162 additions, 35 deletions
459
300
 
460
- **Implementation:**
461
- ```bash
462
- SPEAKER_DELAY=4 # Default: 4 seconds
463
-
464
- # Check for custom delay
465
- if [[ -f ".claude/tts-speaker-delay.txt" ]]; then
466
- CUSTOM_DELAY=$(cat .claude/tts-speaker-delay.txt 2>/dev/null | tr -d '[:space:]')
467
- if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
468
- SPEAKER_DELAY=$CUSTOM_DELAY
469
- fi
470
- elif [[ -f "$HOME/.claude/tts-speaker-delay.txt" ]]; then
471
- CUSTOM_DELAY=$(cat "$HOME/.claude/tts-speaker-delay.txt" 2>/dev/null | tr -d '[:space:]')
472
- if [[ "$CUSTOM_DELAY" =~ ^[0-9]+$ ]]; then
473
- SPEAKER_DELAY=$CUSTOM_DELAY
474
- fi
475
- fi
476
-
477
- # Later in queue processing:
478
- sleep $SPEAKER_DELAY
479
- ```
301
+ **Test Results:** 110/110 passing โœ…
480
302
 
481
303
  ---
482
304
 
483
- ## ๐Ÿ“ Documentation Updates
305
+ ## ๐Ÿ’ก Technical Improvements
484
306
 
485
- ### Path Migration from plugins/ to config/
307
+ ### Best Practices Implemented
486
308
 
487
- **Updated All Path References** (commit: 34a53d67)
488
- - Problem: Documentation still referenced old `.claude/plugins/` path
489
- - Code had already moved to `.claude/config/` in v2.7.0
490
- - Solution: Updated all references in:
491
- - `.claude/commands/agent-vibes/bmad.md`
492
- - `.claude/output-styles/agent-vibes.md`
493
- - `.claude/hooks/stop.sh`
494
- - Ensures consistency between code and documentation
495
- - Prevents confusion about config file locations
309
+ **Input Handling**
310
+ - Comprehensive validation before processing
311
+ - Metacharacter detection for shell inputs
312
+ - Type validation (numeric, string, etc.)
313
+ - Empty/null safety checks
496
314
 
497
- **Files Updated:**
498
- - `agent-vibes/bmad.md`: All references to bmad-voices.md path
499
- - `agent-vibes.md`: BMAD plugin integration section
500
- - `stop.sh`: Config file cleanup logic
315
+ **Command Execution**
316
+ - Proper argument escaping for shell commands
317
+ - Allowlist-based command validation
318
+ - Quote all variables in shell scripts
319
+ - Avoid raw string interpolation
501
320
 
502
- ### Command Renamed to Prevent Conflicts
321
+ **File Operations**
322
+ - Path validation and canonical resolution
323
+ - Appropriate permissions for different file types
324
+ - User-specific temporary directories
325
+ - Atomic operations where needed
503
326
 
504
- **Renamed /agent-vibes-bmad-party** (commit: 34a53d67)
505
- - Problem: `/agent-vibes-bmad-party` conflicted with BMAD's `/bmad:core:workflows:party-mode`
506
- - When typing "party", Claude Code suggested the wrong command
507
- - Solution: Renamed to `/agent-vibes-bmad-voices`
508
- - Better describes purpose (managing BMAD voice mappings)
509
- - No longer conflicts with BMAD party mode workflow
510
- - Renamed file: `.claude/commands/agent-vibes-bmad-party.md` โ†’ `.claude/commands/agent-vibes-bmad-voices.md`
327
+ **Concurrency**
328
+ - File locking for shared resources
329
+ - Atomic PID file operations
330
+ - Timeout protection on locks
511
331
 
512
- **Before:**
513
- - `/agent-vibes-bmad-party` - Control BMAD party mode voice integration
514
-
515
- **After:**
516
- - `/agent-vibes-bmad-voices` - Control BMAD party mode voice integration
517
- - Clear distinction from `/bmad:core:workflows:party-mode`
332
+ **Code Quality**
333
+ - Removed debug output from production code
334
+ - Clear, informative error messages
335
+ - Consistent code patterns
518
336
 
519
337
  ---
520
338
 
521
- ## ๐Ÿ”ง Technical Details
339
+ ## โœ… Testing
522
340
 
523
- ### Files Modified
524
- - `.claude/hooks/bmad-voice-manager.sh` - Made `list_mappings()` provider-aware (lines 455-505)
525
- - `.claude/hooks/tts-queue-worker.sh` - Added configurable delay, removed output suppression (lines 18-32, 78)
526
- - `.claude/commands/agent-vibes-bmad-voices.md` - Renamed from bmad-party.md, updated paths
527
- - `.claude/commands/agent-vibes/bmad.md` - Updated documentation paths
528
- - `.claude/output-styles/agent-vibes.md` - Updated BMAD integration paths
529
- - `.claude/hooks/stop.sh` - Updated config file paths
530
- - `.bmad/core/workflows/party-mode/instructions.md` - Added project hooks guidance
341
+ ### Test Suite Results
342
+ - **110 tests total**
343
+ - **110 passing** โœ…
344
+ - **0 failing**
345
+ - All functionality verified working
531
346
 
532
- ### BMAD-METHOD Repository Updates
533
- - Committed party mode instruction fixes to BMAD-METHOD repo (commit: 60635fcc)
534
- - **Note:** Changes not yet pushed to GitHub (manual push required)
535
- - PR #934 will need to be updated with latest commits
347
+ ### Test Coverage
348
+ - Personality Manager: 14 tests
349
+ - Play TTS: 6 tests (including validation)
350
+ - Provider Manager: 43 tests
351
+ - Speed Manager: 37 tests
352
+ - Voice Manager: 11 tests
536
353
 
537
354
  ---
538
355
 
539
- ## ๐Ÿ“Š Stats
540
-
541
- - **Commits:** 5
542
- - **Files Changed:** 7
543
- - **Lines Modified:** ~50
544
- - **Issues Resolved:** 2 (#38, #39)
545
- - **Configuration Options Added:** 1 (speaker delay)
546
-
547
- ---
548
-
549
- ## ๐Ÿš€ Upgrade Guide
550
-
551
- ### From v2.7.1
356
+ ## ๐ŸŽฏ Migration Notes
552
357
 
553
- **No breaking changes** - this is a backward-compatible bug fix release.
358
+ **No migration required** - This is a patch release with code quality improvements.
554
359
 
555
- To get the fixes:
360
+ **Compatibility:** 100% backward compatible with v2.12.4
556
361
 
362
+ **Recommended Action:** Update to get the latest improvements
557
363
  ```bash
558
- # Update AgentVibes
559
- npx agentvibes update
560
-
561
- # Voice mappings will now show correct provider-specific voices
562
- # Audio file locations will display in output
563
- # Speaker delay automatically increased to 4s
564
- ```
565
-
566
- ### Optional: Customize Speaker Delay
567
-
568
- ```bash
569
- # Set custom delay (e.g., 6 seconds)
570
- echo "6" > .claude/tts-speaker-delay.txt
364
+ npx agentvibes@latest update
571
365
  ```
572
366
 
573
367
  ---
574
368
 
575
- ## ๐Ÿค Contributors
576
-
577
- - Paul Preibisch (@paulpreibisch)
578
- - Claude AI (code generation assistant)
579
-
580
- ---
581
-
582
- ## ๐Ÿ”— Links
369
+ ## ๐Ÿ”— References
583
370
 
584
- - **npm Package:** https://www.npmjs.com/package/agentvibes
585
- - **GitHub Repository:** https://github.com/paulpreibisch/AgentVibes
586
- - **GitHub Release:** https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.2
587
- - **Issue #38:** https://github.com/paulpreibisch/AgentVibes/issues/38
588
- - **Issue #39:** https://github.com/paulpreibisch/AgentVibes/issues/39
371
+ - GitHub Issue #44: https://github.com/paulpreibisch/AgentVibes/issues/44
372
+ - Sonar Quality Gates: Code quality and best practices analysis
589
373
 
590
374
  ---
591
375
 
592
- **Full Changelog:** https://github.com/paulpreibisch/AgentVibes/compare/v2.7.1...v2.7.2
593
-
594
- ---
595
-
596
-
597
- # Release v2.7.0 - Party Mode Voice Improvements
376
+ # Release v2.12.0 - .agentvibes/ Directory Migration
598
377
 
599
- **Release Date:** 2025-11-18
600
- **Type:** Minor Release (New Features)
378
+ **Release Date:** 2025-11-20
379
+ **Type:** Minor Release (Breaking Change - Automatic Migration)
601
380
 
602
381
  ## ๐ŸŽฏ AI Summary
603
382
 
604
- AgentVibes v2.7.0 transforms BMAD party mode into a professional multi-agent voice conversation system. This release introduces a sophisticated TTS queue architecture that enables sequential voice playback without blocking Claude Code, natural 2-second pauses between speakers, and customizable agent introductions. The configuration system has been reorganized to use the official `.claude/config/` directory, and several critical text-to-speech bugs have been fixed.
383
+ AgentVibes v2.12.0 introduces a comprehensive directory reorganization, migrating all AgentVibes-specific configuration from `.claude/config/` and `.claude/plugins/` to a dedicated `.agentvibes/` directory. This eliminates namespace confusion with Claude Code's official directories and provides a clear, predictable location for all AgentVibes state. The migration is fully automatic during upgradeโ€”users simply run `npx agentvibes@latest update` and their configuration is seamlessly moved. This release also includes extensive BMAD testing improvements with the new `npx test-bmad-pr` command and comprehensive Piper voice installation enhancements.
605
384
 
606
385
  **Key Highlights:**
607
- - ๐ŸŽญ **TTS Queue System** - Sequential non-blocking voice playback for party mode
608
- - โธ๏ธ **Natural Speaker Pauses** - 2-second delay between agents for conversation flow
609
- - ๐ŸŽค **Speaker Introductions** - Configurable intro text (e.g., "John, Product Manager here")
610
- - ๐Ÿ“ **Config Reorganization** - Moved from `.claude/plugins/` to official `.claude/config/`
611
- - ๐Ÿ› **Text Escaping Fixes** - No more "backslash exclamation" in speech
612
-
613
- ---
614
-
615
- ## โœจ New Features
616
-
617
- ### TTS Queue System for Party Mode
618
-
619
- **Non-Blocking Sequential Playback** (commit: b4c7dd71)
620
- - New `tts-queue.sh` and `tts-queue-worker.sh` background queue system
621
- - Agents queue TTS requests and return immediately (non-blocking)
622
- - Queue worker plays audio sequentially in the background
623
- - Claude Code continues at full speed while voices play in order
624
- - Base64 encoding handles special characters safely (apostrophes, quotes, etc.)
625
- - Auto-starting worker with 5-second idle timeout
626
- - Prevents audio overlap in multi-agent party mode discussions
627
-
628
- **Benefits:**
629
- ```
630
- Before: Agent 1 text โ†’ [WAIT 3s] โ†’ Agent 2 text โ†’ [WAIT 3s] โ†’ Agent 3 text
631
- After: Agent 1, 2, 3 text (instant) โ†’ [Audio plays sequentially in background]
632
- ```
633
-
634
- ### Natural Conversation Flow
635
-
636
- **2-Second Pause Between Speakers** (commit: b4c7dd71)
637
- - Automatic pause added after each agent finishes speaking
638
- - Gives users time to process what was said before next agent speaks
639
- - Creates natural conversation rhythm in party mode
640
- - Implemented in queue worker for consistent timing
641
-
642
- ### Customizable Speaker Introductions
643
-
644
- **Agent Identification System** (commit: b4c7dd71)
645
- - New "Intro" column in voice mapping table
646
- - Default introductions for all 10 BMAD agents:
647
- - "John, Product Manager here"
648
- - "Mary, Business Analyst here"
649
- - "Winston, Architect here"
650
- - And 7 more specialized intros
651
- - Intro text automatically prepended before dialogue
652
- - Fully customizable via markdown table
653
- - Leave blank to disable intro for specific agents
654
- - New `get-intro` command in `bmad-voice-manager.sh`
655
-
656
- ---
657
-
658
- ## ๐Ÿ”ง Configuration Improvements
659
-
660
- ### Official Config Directory Migration
661
-
662
- **Moved to .claude/config/** (commit: b4c7dd71)
663
- - Migrated `bmad-voices.md` from `.claude/plugins/` to `.claude/config/`
664
- - Moved `bmad-voices-enabled.flag` to config directory
665
- - Updated all references in `bmad-voice-manager.sh`
666
- - Aligns with Claude Code's official directory structure
667
- - Avoids potential conflicts with future plugin system
668
-
669
- **Why This Matters:**
670
- - `.claude/config/` is the official location for configuration files
671
- - `.claude/plugins/` was never an official Claude Code directory
672
- - Better organization alongside `agentvibes.json`
673
- - Future-proof against official plugin system conflicts
674
-
675
- ---
676
-
677
- ## ๐Ÿ› Bug Fixes
678
-
679
- ### Text Escaping Issues
680
-
681
- **Backslash Escaping Fix** (commit: b4c7dd71)
682
- - Fixed: TTS would speak "backslash exclamation" when text contained `\!`
683
- - Solution: Added defensive stripping in `play-tts.sh` lines 49-52
684
- - Removes `\!` and `\$` escape sequences before TTS
685
- - Clean speech output without unwanted "backslash" words
686
- - Also applied to `bmad-speak.sh` for BMAD agent dialogue
687
-
688
- ### Voice Mapping Column Numbers
689
-
690
- **AWK Column Parsing** (commit: b4c7dd71)
691
- - Fixed: Voice lookups after adding Intro column
692
- - AWK pipe-delimited parsing has empty $1, shifted all columns
693
- - Updated all column references in `bmad-voice-manager.sh`:
694
- - Voice columns: 5 (ElevenLabs), 6 (Piper)
695
- - Intro column: 4
696
- - Personality column: 7
697
- - Voice selection now works correctly with new table structure
698
-
699
- ---
700
-
701
- ## ๐Ÿ“š Documentation
702
-
703
- ### TTS Queue Architecture
704
-
705
- **New Documentation** (commit: b4c7dd71)
706
- - Added comprehensive `README-TTS-QUEUE.md` (135 lines)
707
- - Architecture diagrams and flow explanations
708
- - Queue file format and worker lifecycle details
709
- - Troubleshooting guide for common issues
710
- - Performance benefits comparison (before/after)
711
- - Thread safety and auto-restart behavior
712
-
713
- ### Voice Configuration Guide
714
-
715
- **Updated Table Format** (commit: b4c7dd71)
716
- - Documented new 6-column format with Intro field
717
- - Clear instructions for editing introductions
718
- - Examples of customizing agent identification
719
- - Explanation of leaving Intro blank to disable
720
-
721
- ---
722
-
723
- ## ๐Ÿ”ง Technical Details
724
-
725
- ### Files Added
726
- - `.claude/hooks/tts-queue.sh` (105 lines) - Queue manager for TTS requests
727
- - `.claude/hooks/tts-queue-worker.sh` (68 lines) - Background sequential audio player
728
- - `.claude/hooks/README-TTS-QUEUE.md` (135 lines) - Queue system documentation
729
- - `.claude/config/bmad-voices.md` (moved from plugins)
730
- - `.claude/config/bmad-voices-enabled.flag` (moved from plugins)
731
-
732
- ### Files Modified
733
- - `.claude/hooks/bmad-speak.sh` - Display name mapping, intro support, queue integration
734
- - `.claude/hooks/bmad-voice-manager.sh` - Config path update, intro functions, column fixes
735
- - `.claude/hooks/play-tts.sh` - Backslash escaping fix
736
-
737
- ### Files Removed
738
- - `.claude/plugins/bmad-voices.md` (moved to config)
739
-
740
- ### Queue System Architecture
741
-
742
- **Queue File Format** (Base64 encoded):
743
- ```bash
744
- TEXT_B64=<base64-encoded-text>
745
- VOICE_B64=<base64-encoded-voice-name>
746
- ```
747
-
748
- **Worker Lifecycle:**
749
- 1. Auto-starts when first item added to empty queue
750
- 2. Processes oldest items first (timestamp-sorted)
751
- 3. Blocks during audio playback (lock mechanism)
752
- 4. Adds 2-second pause after each item
753
- 5. Auto-exits after 5 seconds idle
754
-
755
- **Thread Safety:**
756
- - Queue items use nanosecond timestamps for uniqueness
757
- - Audio lock file prevents simultaneous playback
758
- - Worker PID tracking prevents multiple workers
759
-
760
- ---
761
-
762
- ## ๐Ÿ“Š Stats
763
-
764
- - **Commits:** 1
765
- - **Files Changed:** 8
766
- - **Lines Added:** 420
767
- - **Lines Removed:** 50
768
- - **New Scripts:** 2 (queue manager + worker)
769
- - **Documentation:** 1 comprehensive guide
386
+ - ๐Ÿ“ **Dedicated .agentvibes/ Directory** - Clear namespace separation from Claude Code
387
+ - ๐Ÿ”„ **Automatic Migration** - Seamless upgrade from .claude/config/ and .claude/plugins/
388
+ - โœ… **100% Backward Compatible** - No manual intervention required
389
+ - ๐Ÿงช **32 Passing Tests** - Comprehensive test suite validates all migration scenarios
390
+ - ๐ŸŽญ **BMAD Testing Made Easy** - New `npx test-bmad-pr` command for one-line testing
391
+ - ๐ŸŽค **Improved Voice Installation** - Better Piper voice detection and status display
770
392
 
771
393
  ---
772
394
 
773
- ## ๐Ÿš€ Upgrade Guide
774
-
775
- ### From v2.6.0
395
+ ## ๐Ÿš€ Major Features
776
396
 
777
- **No breaking changes** - this is a backward-compatible feature release.
397
+ ### Dedicated .agentvibes/ Directory Structure
778
398
 
779
- To get the new features:
399
+ **Complete namespace reorganization** (commits: ab293d05, 04f2f97d, 99134216)
780
400
 
781
- ```bash
782
- # Update AgentVibes
783
- npx agentvibes update
401
+ The `.agentvibes/` directory replaces scattered configuration across `.claude/config/` and `.claude/plugins/`:
784
402
 
785
- # Party mode will automatically use the queue system
786
- # Voice introductions work immediately with defaults
787
- # Config files automatically migrated to .claude/config/
788
403
  ```
789
-
790
- ### Customizing Speaker Introductions
791
-
792
- Edit `.claude/config/bmad-voices.md`:
793
-
794
- ```markdown
795
- | Agent ID | Agent Name | Intro | ElevenLabs Voice | Piper Voice | Personality |
796
- |----------|------------|-------|------------------|-------------|-------------|
797
- | pm | John | John here | Matthew Schmitz | en_US-ryan-high | professional |
404
+ .agentvibes/
405
+ โ”œโ”€โ”€ bmad/ # BMAD integration
406
+ โ”‚ โ”œโ”€โ”€ bmad-voices.md # Agent-to-voice mappings
407
+ โ”‚ โ”œโ”€โ”€ bmad-voices-enabled.flag
408
+ โ”‚ โ”œโ”€โ”€ bmad-party-mode-disabled.flag
409
+ โ”‚ โ””โ”€โ”€ .bmad-previous-settings
410
+ โ””โ”€โ”€ config/ # AgentVibes configuration
411
+ โ”œโ”€โ”€ agentvibes.json # Pretext configuration
412
+ โ”œโ”€โ”€ personality-voice-defaults.json
413
+ โ””โ”€โ”€ README-personality-defaults.md
798
414
  ```
799
415
 
800
- Change "John here" to your preferred introduction text, or leave blank to disable.
801
-
802
- ---
803
-
804
- ## ๐Ÿ’ก Usage Examples
805
-
806
- ### Queue Status Commands
807
-
808
- ```bash
809
- # Check queue status
810
- bash .claude/hooks/tts-queue.sh status
811
-
812
- # Clear all pending TTS (emergency stop)
813
- bash .claude/hooks/tts-queue.sh clear
814
- ```
416
+ **Migration Paths:**
417
+ - `.claude/config/agentvibes.json` โ†’ `.agentvibes/config/agentvibes.json`
418
+ - `.claude/plugins/bmad-voices-enabled.flag` โ†’ `.agentvibes/bmad/bmad-voices-enabled.flag`
419
+ - `.claude/config/bmad-voices.md` โ†’ `.agentvibes/bmad/bmad-voices.md`
815
420
 
816
- ### Party Mode Improvements
421
+ **Benefits:**
422
+ - โœ… Clear ownership - `.agentvibes/` is obviously AgentVibes-managed
423
+ - โœ… No collision risk - Claude Code may add official plugins in the future
424
+ - โœ… Easier troubleshooting - All state in one predictable location
425
+ - โœ… Better organization - Separate BMAD integration from core config
817
426
 
818
- When multiple BMAD agents respond:
427
+ ### Automatic Migration System
819
428
 
820
- **Before:**
821
- - All voices spoke simultaneously (overlapping audio)
822
- - No natural pauses between speakers
823
- - No identification of which agent is speaking
429
+ **Seamless upgrade experience** (commit: ab293d05)
824
430
 
825
- **After:**
826
- - Sequential playback with correct voices
827
- - 2-second pauses for natural flow
828
- - Each agent identifies themselves (e.g., "Mary, Business Analyst here")
829
- - Claude Code remains responsive during TTS
431
+ - **Detection:** Installer automatically detects old configuration on startup
432
+ - **Execution:** Runs `.claude/hooks/migrate-to-agentvibes.sh` automatically
433
+ - **Preservation:** All settings, voice mappings, and flags preserved
434
+ - **Cleanup:** Removes empty `.claude/plugins/` directory after migration
435
+ - **Graceful Fallback:** Manual migration option if auto-migration fails
830
436
 
831
- ---
437
+ **Migration Script Features:**
438
+ - Color-coded progress output
439
+ - File-by-file migration reporting
440
+ - Duplicate detection and handling
441
+ - Preserves `.claude/config/` for runtime state files (like `tts-speech-rate.txt`)
832
442
 
833
- ## ๐Ÿค Contributors
443
+ ### Comprehensive Test Suite
834
444
 
835
- - Paul Preibisch (@paulpreibisch)
836
- - Claude AI (code generation assistant)
445
+ **32 passing tests across 6 scenarios** (commit: ab293d05)
837
446
 
838
- ---
447
+ Created `test-migration.sh` with full coverage:
839
448
 
840
- ## ๐Ÿ”— Links
449
+ 1. **Fresh Install** (6 assertions)
450
+ - Verifies `.agentvibes/` created directly
451
+ - Ensures old directories NOT created
841
452
 
842
- - **npm Package:** https://www.npmjs.com/package/agentvibes
843
- - **GitHub Repository:** https://github.com/paulpreibisch/AgentVibes
844
- - **GitHub Release:** https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.7.0
453
+ 2. **Upgrade from v2.9.x** (9 assertions)
454
+ - Auto-migration of all config files
455
+ - Cleanup of old locations
456
+ - Value preservation
845
457
 
846
- ---
458
+ 3. **Manual Migration** (4 assertions)
459
+ - Script execution
460
+ - File movement
461
+ - Old location cleanup
847
462
 
848
- **Full Changelog:** https://github.com/paulpreibisch/AgentVibes/compare/v2.6.0...v2.7.0
463
+ 4. **BMAD Integration** (5 assertions)
464
+ - Voice mappings in new location
465
+ - Hook scripts read from new paths
466
+ - Party mode functionality
849
467
 
850
- ---
468
+ 5. **Pretext Configuration** (3 assertions)
469
+ - Config in new location
470
+ - Scripts reference new paths
851
471
 
472
+ 6. **No Old Config** (4 assertions)
473
+ - No errors when nothing to migrate
474
+ - Idempotent behavior