agentvibes 2.13.7 → 2.13.9
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.
- package/.claude/commands/agent-vibes/bmad.md +16 -14
- package/.claude/hooks/play-tts-elevenlabs.sh +3 -1
- package/.claude/hooks/provider-manager.sh +112 -23
- package/.claude/personalities/rapper.md +1 -1
- package/README.md +7 -8
- package/RELEASE_NOTES.md +145 -255
- package/mcp-server/install-deps.js +7 -6
- package/mcp-server/server.py +4 -2
- package/package.json +1 -1
- package/src/commands/bmad-voices.js +3 -15
- package/src/commands/install-mcp.js +15 -9
- package/src/installer.js +19 -29
- package/test/unit/provider-manager.bats +13 -9
- package/.bmad/_cfg/agent-manifest.csv +0 -11
- package/.bmad/_cfg/agent-voice-map.csv +0 -11
- package/.bmad/_cfg/agents/bmm-analyst.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-architect.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-dev.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-frame-expert.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-pm.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-sm.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-tea.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-tech-writer.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-ux-designer.customize.yaml +0 -42
- package/.bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
- package/.bmad/_cfg/files-manifest.csv +0 -243
- package/.bmad/_cfg/ides/claude-code.yaml +0 -6
- package/.bmad/_cfg/manifest.yaml +0 -9
- package/.bmad/_cfg/task-manifest.csv +0 -5
- package/.bmad/_cfg/tool-manifest.csv +0 -2
- package/.bmad/_cfg/workflow-manifest.csv +0 -38
- package/.bmad/bmm/README.md +0 -128
- package/.bmad/bmm/agents/analyst.md +0 -79
- package/.bmad/bmm/agents/analyst.md.backup-pre-tts +0 -75
- package/.bmad/bmm/agents/architect.md +0 -80
- package/.bmad/bmm/agents/dev.md +0 -70
- package/.bmad/bmm/agents/frame-expert.md +0 -72
- package/.bmad/bmm/agents/pm.md +0 -84
- package/.bmad/bmm/agents/sm.md +0 -93
- package/.bmad/bmm/agents/tea.md +0 -80
- package/.bmad/bmm/agents/tech-writer.md +0 -84
- package/.bmad/bmm/agents/ux-designer.md +0 -79
- package/.bmad/bmm/config.yaml +0 -17
- package/.bmad/bmm/docs/README.md +0 -236
- package/.bmad/bmm/docs/agents-guide.md +0 -1058
- package/.bmad/bmm/docs/brownfield-guide.md +0 -762
- package/.bmad/bmm/docs/enterprise-agentic-development.md +0 -686
- package/.bmad/bmm/docs/faq.md +0 -588
- package/.bmad/bmm/docs/glossary.md +0 -320
- package/.bmad/bmm/docs/party-mode.md +0 -224
- package/.bmad/bmm/docs/quick-spec-flow.md +0 -652
- package/.bmad/bmm/docs/quick-start.md +0 -376
- package/.bmad/bmm/docs/scale-adaptive-system.md +0 -612
- package/.bmad/bmm/docs/test-architecture.md +0 -396
- package/.bmad/bmm/docs/workflow-architecture-reference.md +0 -366
- package/.bmad/bmm/docs/workflow-document-project-reference.md +0 -489
- package/.bmad/bmm/docs/workflows-analysis.md +0 -370
- package/.bmad/bmm/docs/workflows-implementation.md +0 -286
- package/.bmad/bmm/docs/workflows-planning.md +0 -612
- package/.bmad/bmm/docs/workflows-solutioning.md +0 -554
- package/.bmad/bmm/teams/default-party.csv +0 -20
- package/.bmad/bmm/teams/team-fullstack.yaml +0 -13
- package/.bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
- package/.bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
- package/.bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
- package/.bmad/bmm/testarch/knowledge/data-factories.md +0 -500
- package/.bmad/bmm/testarch/knowledge/email-auth.md +0 -721
- package/.bmad/bmm/testarch/knowledge/error-handling.md +0 -725
- package/.bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
- package/.bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
- package/.bmad/bmm/testarch/knowledge/network-first.md +0 -486
- package/.bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
- package/.bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
- package/.bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
- package/.bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
- package/.bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
- package/.bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
- package/.bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
- package/.bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
- package/.bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
- package/.bmad/bmm/testarch/knowledge/test-quality.md +0 -664
- package/.bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
- package/.bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
- package/.bmad/bmm/testarch/tea-index.csv +0 -22
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -26
- package/.bmad/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
- package/.bmad/bmm/workflows/1-analysis/domain-research/template.md +0 -180
- package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -28
- package/.bmad/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
- package/.bmad/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
- package/.bmad/bmm/workflows/1-analysis/product-brief/template.md +0 -181
- package/.bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
- package/.bmad/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
- package/.bmad/bmm/workflows/1-analysis/research/checklist.md +0 -299
- package/.bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
- package/.bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
- package/.bmad/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
- package/.bmad/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
- package/.bmad/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
- package/.bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
- package/.bmad/bmm/workflows/1-analysis/research/template-market.md +0 -347
- package/.bmad/bmm/workflows/1-analysis/research/template-technical.md +0 -245
- package/.bmad/bmm/workflows/1-analysis/research/workflow.yaml +0 -44
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +0 -80
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +0 -616
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +0 -53
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -61
- package/.bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
- package/.bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
- package/.bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
- package/.bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -204
- package/.bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
- package/.bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -52
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -58
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
- package/.bmad/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
- package/.bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
- package/.bmad/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
- package/.bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
- package/.bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -55
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -62
- package/.bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
- package/.bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
- package/.bmad/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
- package/.bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -60
- package/.bmad/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
- package/.bmad/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
- package/.bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/create-story/checklist.md +0 -240
- package/.bmad/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
- package/.bmad/bmm/workflows/4-implementation/create-story/template.md +0 -51
- package/.bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -71
- package/.bmad/bmm/workflows/4-implementation/dev-story/checklist.md +0 -38
- package/.bmad/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
- package/.bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -57
- package/.bmad/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1443
- package/.bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -234
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -49
- package/.bmad/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
- package/.bmad/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
- package/.bmad/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
- package/.bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -61
- package/.bmad/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
- package/.bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -26
- package/.bmad/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
- package/.bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/document-project/checklist.md +0 -245
- package/.bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
- package/.bmad/bmm/workflows/document-project/instructions.md +0 -222
- package/.bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
- package/.bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
- package/.bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
- package/.bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
- package/.bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
- package/.bmad/bmm/workflows/document-project/workflow.yaml +0 -29
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
- package/.bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
- package/.bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +0 -127
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-library.json +0 -90
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +0 -127
- package/.bmad/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +0 -79
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/checklist.md +0 -39
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/instructions.md +0 -131
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/frame-expert/create-diagram/checklist.md +0 -43
- package/.bmad/bmm/workflows/frame-expert/create-diagram/instructions.md +0 -142
- package/.bmad/bmm/workflows/frame-expert/create-diagram/workflow.yaml +0 -24
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/checklist.md +0 -49
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/instructions.md +0 -242
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +0 -27
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/checklist.md +0 -38
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/instructions.md +0 -133
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/techdoc/documentation-standards.md +0 -262
- package/.bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
- package/.bmad/bmm/workflows/testarch/atdd/checklist.md +0 -373
- package/.bmad/bmm/workflows/testarch/atdd/instructions.md +0 -785
- package/.bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/testarch/automate/checklist.md +0 -580
- package/.bmad/bmm/workflows/testarch/automate/instructions.md +0 -1303
- package/.bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -52
- package/.bmad/bmm/workflows/testarch/ci/checklist.md +0 -246
- package/.bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
- package/.bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
- package/.bmad/bmm/workflows/testarch/ci/instructions.md +0 -517
- package/.bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
- package/.bmad/bmm/workflows/testarch/framework/instructions.md +0 -455
- package/.bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -47
- package/.bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
- package/.bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
- package/.bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
- package/.bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -47
- package/.bmad/bmm/workflows/testarch/test-design/checklist.md +0 -234
- package/.bmad/bmm/workflows/testarch/test-design/instructions.md +0 -782
- package/.bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
- package/.bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -48
- package/.bmad/bmm/workflows/testarch/test-review/checklist.md +0 -470
- package/.bmad/bmm/workflows/testarch/test-review/instructions.md +0 -608
- package/.bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
- package/.bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -46
- package/.bmad/bmm/workflows/testarch/trace/checklist.md +0 -654
- package/.bmad/bmm/workflows/testarch/trace/instructions.md +0 -1045
- package/.bmad/bmm/workflows/testarch/trace/trace-template.md +0 -673
- package/.bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -55
- package/.bmad/bmm/workflows/workflow-status/init/instructions.md +0 -334
- package/.bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -28
- package/.bmad/bmm/workflows/workflow-status/instructions.md +0 -388
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -138
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -126
- package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -52
- package/.bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -122
- package/.bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -113
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
- package/.bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
- package/.bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
- package/.bmad/bmm/workflows/workflow-status/workflow.yaml +0 -28
- package/.bmad/core/agents/bmad-master.md +0 -72
- package/.bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -113
- package/.bmad/core/config.yaml +0 -11
- package/.bmad/core/tasks/adv-elicit-methods.csv +0 -39
- package/.bmad/core/tasks/advanced-elicitation-methods.csv +0 -21
- package/.bmad/core/tasks/advanced-elicitation.xml +0 -106
- package/.bmad/core/tasks/index-docs.xml +0 -65
- package/.bmad/core/tasks/validate-workflow.xml +0 -89
- package/.bmad/core/tasks/workflow.xml +0 -270
- package/.bmad/core/tools/shard-doc.xml +0 -109
- package/.bmad/core/workflows/brainstorming/README.md +0 -261
- package/.bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
- package/.bmad/core/workflows/brainstorming/instructions.md +0 -315
- package/.bmad/core/workflows/brainstorming/template.md +0 -106
- package/.bmad/core/workflows/brainstorming/workflow.yaml +0 -38
- package/.bmad/core/workflows/party-mode/instructions.md +0 -203
- package/.bmad/core/workflows/party-mode/workflow.yaml +0 -28
- package/.bmad/docs/claude-code-instructions.md +0 -25
- package/.claude/commands/BMad/analyst.md +0 -88
- package/.claude/commands/BMad/architect.md +0 -89
- package/.claude/commands/BMad/bmad-master.md +0 -114
- package/.claude/commands/BMad/bmad-orchestrator.md +0 -151
- package/.claude/commands/BMad/dev.md +0 -85
- package/.claude/commands/BMad/pm.md +0 -88
- package/.claude/commands/BMad/po.md +0 -83
- package/.claude/commands/BMad/qa.md +0 -91
- package/.claude/commands/BMad/sm.md +0 -69
- package/.claude/commands/BMad/tasks/advanced-elicitation.md +0 -123
- package/.claude/commands/BMad/tasks/apply-qa-fixes.md +0 -154
- package/.claude/commands/BMad/tasks/brownfield-create-epic.md +0 -166
- package/.claude/commands/BMad/tasks/brownfield-create-story.md +0 -153
- package/.claude/commands/BMad/tasks/correct-course.md +0 -76
- package/.claude/commands/BMad/tasks/create-brownfield-story.md +0 -318
- package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +0 -284
- package/.claude/commands/BMad/tasks/create-doc.md +0 -107
- package/.claude/commands/BMad/tasks/create-next-story.md +0 -118
- package/.claude/commands/BMad/tasks/document-project.md +0 -349
- package/.claude/commands/BMad/tasks/execute-checklist.md +0 -92
- package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +0 -142
- package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +0 -57
- package/.claude/commands/BMad/tasks/index-docs.md +0 -179
- package/.claude/commands/BMad/tasks/kb-mode-interaction.md +0 -81
- package/.claude/commands/BMad/tasks/nfr-assess.md +0 -349
- package/.claude/commands/BMad/tasks/qa-gate.md +0 -167
- package/.claude/commands/BMad/tasks/review-story.md +0 -320
- package/.claude/commands/BMad/tasks/risk-profile.md +0 -359
- package/.claude/commands/BMad/tasks/shard-doc.md +0 -191
- package/.claude/commands/BMad/tasks/test-design.md +0 -180
- package/.claude/commands/BMad/tasks/trace-requirements.md +0 -270
- package/.claude/commands/BMad/tasks/validate-next-story.md +0 -140
- package/.claude/commands/BMad/ux-expert.md +0 -73
- package/.claude/commands/bmad/bmm/agents/analyst.md +0 -14
- package/.claude/commands/bmad/bmm/agents/architect.md +0 -14
- package/.claude/commands/bmad/bmm/agents/dev.md +0 -14
- package/.claude/commands/bmad/bmm/agents/frame-expert.md +0 -14
- package/.claude/commands/bmad/bmm/agents/pm.md +0 -14
- package/.claude/commands/bmad/bmm/agents/sm.md +0 -14
- package/.claude/commands/bmad/bmm/agents/tea.md +0 -14
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +0 -14
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +0 -14
- package/.claude/commands/bmad/bmm/workflows/architecture.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/code-review.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/correct-course.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-dataflow.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-diagram.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-flowchart.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-story.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-wireframe.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/dev-story.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/document-project.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/domain-research.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/implementation-readiness.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/prd.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/product-brief.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/research.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/retrospective.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-context.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-done.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-ready.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/workflow-init.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/workflow-status.md +0 -13
- package/.claude/commands/bmad/core/agents/bmad-master.md +0 -14
- package/.claude/commands/bmad/core/tasks/advanced-elicitation.md +0 -9
- package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
- package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
- package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -13
- package/.claude/commands/bmad/core/workflows/party-mode.md +0 -13
- package/.claude/github-star-reminder.txt +0 -1
- package/.claude/hooks/bmad-party-manager.sh +0 -225
- package/.claude/hooks/stop.sh +0 -221
- package/.claude/piper-voices-dir.txt +0 -1
- package/.mcp.json +0 -88
- package/RELEASE_NOTES_v2.4.0_DRAFT.md +0 -116
- package/RELEASE_NOTES_v2.4.1_DRAFT.md +0 -61
- package/docs/2025-11-15_15-14-33.snagx +0 -0
- package/docs/Screenshot 2025-11-15 151325.png +0 -0
- package/docs/Screenshot 2025-11-15 151432.png +0 -0
- package/docs/macos-piper-issue.md +0 -172
- package/docs/stargazer-cms-prd.md +0 -1918
- package/docs/whatsapp-plugin-github-issue.md +0 -393
- package/docs/whatsapp-tts-plugin-feasibility.md +0 -418
- package/docs/whatsapp-tts-standalone-plugin.md +0 -628
- package/github-profile-draft.md +0 -57
- package/linkedin/vibe-coding-and-pulseaudio.md +0 -121
- package/mcp-server/agentvibes.db +0 -0
- package/scripts/audio-tunnel.config +0 -17
- package/v4-backup/.bmad-core/agent-teams/team-all.yaml +0 -15
- package/v4-backup/.bmad-core/agent-teams/team-fullstack.yaml +0 -19
- package/v4-backup/.bmad-core/agent-teams/team-ide-minimal.yaml +0 -11
- package/v4-backup/.bmad-core/agent-teams/team-no-ui.yaml +0 -14
- package/v4-backup/.bmad-core/agents/analyst.md +0 -84
- package/v4-backup/.bmad-core/agents/architect.md +0 -85
- package/v4-backup/.bmad-core/agents/bmad-master.md +0 -110
- package/v4-backup/.bmad-core/agents/bmad-orchestrator.md +0 -147
- package/v4-backup/.bmad-core/agents/dev.md +0 -81
- package/v4-backup/.bmad-core/agents/pm.md +0 -84
- package/v4-backup/.bmad-core/agents/po.md +0 -79
- package/v4-backup/.bmad-core/agents/qa.md +0 -87
- package/v4-backup/.bmad-core/agents/sm.md +0 -65
- package/v4-backup/.bmad-core/agents/ux-expert.md +0 -69
- package/v4-backup/.bmad-core/checklists/architect-checklist.md +0 -440
- package/v4-backup/.bmad-core/checklists/change-checklist.md +0 -184
- package/v4-backup/.bmad-core/checklists/pm-checklist.md +0 -372
- package/v4-backup/.bmad-core/checklists/po-master-checklist.md +0 -434
- package/v4-backup/.bmad-core/checklists/story-dod-checklist.md +0 -96
- package/v4-backup/.bmad-core/checklists/story-draft-checklist.md +0 -155
- package/v4-backup/.bmad-core/core-config.yaml +0 -22
- package/v4-backup/.bmad-core/data/bmad-kb.md +0 -809
- package/v4-backup/.bmad-core/data/brainstorming-techniques.md +0 -38
- package/v4-backup/.bmad-core/data/elicitation-methods.md +0 -156
- package/v4-backup/.bmad-core/data/technical-preferences.md +0 -5
- package/v4-backup/.bmad-core/data/test-levels-framework.md +0 -148
- package/v4-backup/.bmad-core/data/test-priorities-matrix.md +0 -174
- package/v4-backup/.bmad-core/enhanced-ide-development-workflow.md +0 -248
- package/v4-backup/.bmad-core/install-manifest.yaml +0 -230
- package/v4-backup/.bmad-core/tasks/advanced-elicitation.md +0 -119
- package/v4-backup/.bmad-core/tasks/apply-qa-fixes.md +0 -150
- package/v4-backup/.bmad-core/tasks/brownfield-create-epic.md +0 -162
- package/v4-backup/.bmad-core/tasks/brownfield-create-story.md +0 -149
- package/v4-backup/.bmad-core/tasks/correct-course.md +0 -72
- package/v4-backup/.bmad-core/tasks/create-brownfield-story.md +0 -314
- package/v4-backup/.bmad-core/tasks/create-deep-research-prompt.md +0 -280
- package/v4-backup/.bmad-core/tasks/create-doc.md +0 -103
- package/v4-backup/.bmad-core/tasks/create-next-story.md +0 -114
- package/v4-backup/.bmad-core/tasks/document-project.md +0 -345
- package/v4-backup/.bmad-core/tasks/execute-checklist.md +0 -88
- package/v4-backup/.bmad-core/tasks/facilitate-brainstorming-session.md +0 -138
- package/v4-backup/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -53
- package/v4-backup/.bmad-core/tasks/index-docs.md +0 -175
- package/v4-backup/.bmad-core/tasks/kb-mode-interaction.md +0 -77
- package/v4-backup/.bmad-core/tasks/nfr-assess.md +0 -345
- package/v4-backup/.bmad-core/tasks/qa-gate.md +0 -163
- package/v4-backup/.bmad-core/tasks/review-story.md +0 -316
- package/v4-backup/.bmad-core/tasks/risk-profile.md +0 -355
- package/v4-backup/.bmad-core/tasks/shard-doc.md +0 -187
- package/v4-backup/.bmad-core/tasks/test-design.md +0 -176
- package/v4-backup/.bmad-core/tasks/trace-requirements.md +0 -266
- package/v4-backup/.bmad-core/tasks/validate-next-story.md +0 -136
- package/v4-backup/.bmad-core/templates/architecture-tmpl.yaml +0 -651
- package/v4-backup/.bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/v4-backup/.bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -477
- package/v4-backup/.bmad-core/templates/brownfield-prd-tmpl.yaml +0 -281
- package/v4-backup/.bmad-core/templates/competitor-analysis-tmpl.yaml +0 -307
- package/v4-backup/.bmad-core/templates/front-end-architecture-tmpl.yaml +0 -219
- package/v4-backup/.bmad-core/templates/front-end-spec-tmpl.yaml +0 -350
- package/v4-backup/.bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -824
- package/v4-backup/.bmad-core/templates/market-research-tmpl.yaml +0 -253
- package/v4-backup/.bmad-core/templates/prd-tmpl.yaml +0 -203
- package/v4-backup/.bmad-core/templates/project-brief-tmpl.yaml +0 -222
- package/v4-backup/.bmad-core/templates/qa-gate-tmpl.yaml +0 -103
- package/v4-backup/.bmad-core/templates/story-tmpl.yaml +0 -138
- package/v4-backup/.bmad-core/user-guide.md +0 -577
- package/v4-backup/.bmad-core/utils/bmad-doc-template.md +0 -327
- package/v4-backup/.bmad-core/utils/workflow-management.md +0 -71
- package/v4-backup/.bmad-core/workflows/brownfield-fullstack.yaml +0 -298
- package/v4-backup/.bmad-core/workflows/brownfield-service.yaml +0 -188
- package/v4-backup/.bmad-core/workflows/brownfield-ui.yaml +0 -198
- package/v4-backup/.bmad-core/workflows/greenfield-fullstack.yaml +0 -241
- package/v4-backup/.bmad-core/workflows/greenfield-service.yaml +0 -207
- package/v4-backup/.bmad-core/workflows/greenfield-ui.yaml +0 -236
- package/v4-backup/.bmad-core/working-in-the-brownfield.md +0 -606
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Runs after npm install to ensure Python mcp package is installed
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import { execFileSync } from 'child_process';
|
|
9
9
|
import { platform } from 'os';
|
|
10
10
|
|
|
11
11
|
const isWindows = platform() === 'win32';
|
|
@@ -23,7 +23,8 @@ function checkPython() {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
try {
|
|
26
|
-
|
|
26
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
27
|
+
const version = execFileSync(cmd, ['--version'], { encoding: 'utf8', stdio: 'pipe' });
|
|
27
28
|
console.log(`✅ Found ${cmd}: ${version.trim()}`);
|
|
28
29
|
return cmd;
|
|
29
30
|
} catch (error) {
|
|
@@ -44,7 +45,8 @@ function checkMcpInstalled(pythonCmd) {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
try {
|
|
47
|
-
|
|
48
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
49
|
+
execFileSync(pythonCmd, ['-c', 'import mcp'], { stdio: 'pipe' });
|
|
48
50
|
return true;
|
|
49
51
|
} catch (error) {
|
|
50
52
|
return false;
|
|
@@ -62,9 +64,8 @@ function installMcp(pythonCmd) {
|
|
|
62
64
|
|
|
63
65
|
try {
|
|
64
66
|
console.log('\n📦 Installing Python mcp package...');
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
execSync(command, { stdio: 'inherit' });
|
|
67
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
68
|
+
execFileSync(pythonCmd, ['-m', 'pip', 'install', '--user', 'mcp'], { stdio: 'inherit' });
|
|
68
69
|
console.log('✅ Python mcp package installed successfully!\n');
|
|
69
70
|
return true;
|
|
70
71
|
} catch (error) {
|
package/mcp-server/server.py
CHANGED
|
@@ -391,7 +391,9 @@ class AgentVibesServer:
|
|
|
391
391
|
Returns:
|
|
392
392
|
Success or error message
|
|
393
393
|
"""
|
|
394
|
-
|
|
394
|
+
# Security: Using secrets.choice for cryptographically secure random selection
|
|
395
|
+
# Even though this is just for UI variety, we use secrets to satisfy security scanners
|
|
396
|
+
import secrets
|
|
395
397
|
|
|
396
398
|
args = ["target", speed] if target else [speed]
|
|
397
399
|
result = await self._run_script("speed-manager.sh", args)
|
|
@@ -406,7 +408,7 @@ class AgentVibesServer:
|
|
|
406
408
|
]
|
|
407
409
|
|
|
408
410
|
# Pick a random test message and speak it
|
|
409
|
-
test_message =
|
|
411
|
+
test_message = secrets.choice(test_messages)
|
|
410
412
|
|
|
411
413
|
try:
|
|
412
414
|
# Speak the test message to demonstrate the new speed
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "agentvibes",
|
|
4
|
-
"version": "2.13.
|
|
4
|
+
"version": "2.13.9",
|
|
5
5
|
"description": "Now your AI Agents can finally talk back! Professional TTS voice for Claude Code and Claude Desktop (via MCP) with multi-provider support.",
|
|
6
6
|
"homepage": "https://agentvibes.org",
|
|
7
7
|
"keywords": [
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* Licensed under the Apache License, Version 2.0
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import {
|
|
17
|
+
import { execFileSync } from 'node:child_process';
|
|
18
18
|
import path from 'node:path';
|
|
19
19
|
import fs from 'node:fs/promises';
|
|
20
20
|
import chalk from 'chalk';
|
|
@@ -154,16 +154,6 @@ async function writeVoiceAssignments(assignments) {
|
|
|
154
154
|
await fs.writeFile(csvPath, lines.join('\n') + '\n', 'utf8');
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
/**
|
|
158
|
-
* Security: Escape shell arguments to prevent command injection
|
|
159
|
-
* @param {string} arg - Argument to escape
|
|
160
|
-
* @returns {string} - Safely escaped argument
|
|
161
|
-
*/
|
|
162
|
-
function escapeShellArg(arg) {
|
|
163
|
-
// Replace single quotes with '\'' (end quote, escaped quote, start quote)
|
|
164
|
-
return `'${arg.replace(/'/g, "'\\''")}'`;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
157
|
/**
|
|
168
158
|
* Find matching voice name using fuzzy matching
|
|
169
159
|
* Supports partial matches like "ryan" → "en_US-ryan-high"
|
|
@@ -228,10 +218,8 @@ export async function previewVoice(voiceName, options = {}) {
|
|
|
228
218
|
}
|
|
229
219
|
|
|
230
220
|
try {
|
|
231
|
-
// Security:
|
|
232
|
-
|
|
233
|
-
const escapedVoice = escapeShellArg(matchedVoice);
|
|
234
|
-
execSync(`bash "${playTtsPath}" ${escapedText} ${escapedVoice}`, {
|
|
221
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
222
|
+
execFileSync('bash', [playTtsPath, text, matchedVoice], {
|
|
235
223
|
stdio: 'inherit',
|
|
236
224
|
cwd: targetDir,
|
|
237
225
|
});
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import inquirer from 'inquirer';
|
|
10
|
-
import { execSync } from 'child_process';
|
|
10
|
+
import { execSync, execFileSync } from 'child_process';
|
|
11
11
|
import fs from 'fs';
|
|
12
12
|
import path from 'path';
|
|
13
13
|
import os from 'os';
|
|
@@ -20,7 +20,8 @@ import boxen from 'boxen';
|
|
|
20
20
|
*/
|
|
21
21
|
function checkWSL() {
|
|
22
22
|
try {
|
|
23
|
-
|
|
23
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
24
|
+
execFileSync('wsl', ['--version'], { stdio: 'pipe' });
|
|
24
25
|
return true;
|
|
25
26
|
} catch {
|
|
26
27
|
return false;
|
|
@@ -35,7 +36,8 @@ function checkPython() {
|
|
|
35
36
|
|
|
36
37
|
for (const cmd of commands) {
|
|
37
38
|
try {
|
|
38
|
-
|
|
39
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
40
|
+
const version = execFileSync(cmd, ['--version'], { encoding: 'utf8', stdio: 'pipe' });
|
|
39
41
|
return { available: true, command: cmd, version: version.trim() };
|
|
40
42
|
} catch {
|
|
41
43
|
continue;
|
|
@@ -50,7 +52,8 @@ function checkPython() {
|
|
|
50
52
|
*/
|
|
51
53
|
function checkMCPPackage(pythonCmd) {
|
|
52
54
|
try {
|
|
53
|
-
|
|
55
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
56
|
+
execFileSync(pythonCmd, ['-c', 'import mcp'], { stdio: 'pipe' });
|
|
54
57
|
return true;
|
|
55
58
|
} catch {
|
|
56
59
|
return false;
|
|
@@ -157,10 +160,11 @@ async function installPiper(useWSL = false) {
|
|
|
157
160
|
const spinner = ora('Installing Piper TTS...').start();
|
|
158
161
|
|
|
159
162
|
try {
|
|
163
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
160
164
|
if (useWSL) {
|
|
161
|
-
|
|
165
|
+
execFileSync('wsl', ['pipx', 'install', 'piper-tts'], { stdio: 'inherit' });
|
|
162
166
|
} else {
|
|
163
|
-
|
|
167
|
+
execFileSync('pipx', ['install', 'piper-tts'], { stdio: 'inherit' });
|
|
164
168
|
}
|
|
165
169
|
spinner.succeed('Piper TTS installed successfully!');
|
|
166
170
|
return true;
|
|
@@ -184,10 +188,11 @@ async function installMCPPackage(pythonCmd, useWSL = false) {
|
|
|
184
188
|
const spinner = ora('Installing Python MCP package...').start();
|
|
185
189
|
|
|
186
190
|
try {
|
|
191
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
187
192
|
if (useWSL) {
|
|
188
|
-
|
|
193
|
+
execFileSync('wsl', [pythonCmd, '-m', 'pip', 'install', '--break-system-packages', 'mcp'], { stdio: 'pipe' });
|
|
189
194
|
} else {
|
|
190
|
-
|
|
195
|
+
execFileSync(pythonCmd, ['-m', 'pip', 'install', '--user', 'mcp'], { stdio: 'pipe' });
|
|
191
196
|
}
|
|
192
197
|
spinner.succeed('Python MCP package installed successfully!');
|
|
193
198
|
return true;
|
|
@@ -263,7 +268,8 @@ export async function installMCP() {
|
|
|
263
268
|
if (installWSL) {
|
|
264
269
|
console.log(chalk.cyan('\n📦 Installing WSL...'));
|
|
265
270
|
try {
|
|
266
|
-
|
|
271
|
+
// Security: Use execFileSync with array args to prevent command injection
|
|
272
|
+
execFileSync('wsl', ['--install'], { stdio: 'inherit' });
|
|
267
273
|
console.log(chalk.green('\n✅ WSL installed successfully!'));
|
|
268
274
|
console.log(chalk.yellow('⚠️ Please restart your computer and run this installer again.'));
|
|
269
275
|
process.exit(0);
|
package/src/installer.js
CHANGED
|
@@ -45,7 +45,7 @@ import { program } from 'commander';
|
|
|
45
45
|
import path from 'node:path';
|
|
46
46
|
import fs from 'node:fs/promises';
|
|
47
47
|
import fsSync from 'node:fs';
|
|
48
|
-
import { execSync } from 'node:child_process';
|
|
48
|
+
import { execSync, execFileSync } from 'node:child_process';
|
|
49
49
|
import chalk from 'chalk';
|
|
50
50
|
import inquirer from 'inquirer';
|
|
51
51
|
import figlet from 'figlet';
|
|
@@ -128,24 +128,17 @@ function showReleaseInfo() {
|
|
|
128
128
|
console.log(
|
|
129
129
|
boxen(
|
|
130
130
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n') +
|
|
131
|
-
chalk.cyan.bold(' 📦 AgentVibes v2.13.
|
|
131
|
+
chalk.cyan.bold(' 📦 AgentVibes v2.13.9 - Provider-Aware Voice Migration\n') +
|
|
132
132
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
133
133
|
chalk.green.bold('🎙️ WHAT\'S NEW:\n\n') +
|
|
134
|
-
chalk.cyan('AgentVibes v2.13.
|
|
135
|
-
chalk.cyan('
|
|
136
|
-
chalk.cyan('installation directory. This caused false "Security: Invalid BMAD path\n') +
|
|
137
|
-
chalk.cyan('detected" errors when AgentVibes was called from BMAD\'s installer.\n\n') +
|
|
134
|
+
chalk.cyan('AgentVibes v2.13.9 fixes voice mapping when switching TTS providers.\n') +
|
|
135
|
+
chalk.cyan('Voices now auto-migrate between ElevenLabs and Piper seamlessly.\n\n') +
|
|
138
136
|
chalk.green.bold('✨ KEY HIGHLIGHTS:\n\n') +
|
|
139
|
-
chalk.gray('
|
|
140
|
-
chalk.gray('
|
|
141
|
-
chalk.gray('
|
|
142
|
-
chalk.gray(' ✅
|
|
137
|
+
chalk.gray(' 🔄 Smart Voice Migration - Auto-map voices when switching providers\n') +
|
|
138
|
+
chalk.gray(' 📝 Provider-Aware Docs - BMAD shows both ElevenLabs & Piper columns\n') +
|
|
139
|
+
chalk.gray(' 🎤 Valid Piper Names - Fixed incomplete voice names in mappings\n') +
|
|
140
|
+
chalk.gray(' ✅ 122 Tests Passing - All functionality verified\n') +
|
|
143
141
|
chalk.gray(' 🔄 Zero Breaking Changes - Fully backward compatible\n\n') +
|
|
144
|
-
chalk.cyan('Technical Improvements:\n') +
|
|
145
|
-
chalk.gray(' • processBmadTtsInjections now accepts targetDir parameter\n') +
|
|
146
|
-
chalk.gray(' • isPathSafe checks for path separator to prevent prefix attacks\n') +
|
|
147
|
-
chalk.gray(' • Added Node.js test runner support to package.json\n') +
|
|
148
|
-
chalk.gray(' • 12 new tests for path security validation\n\n') +
|
|
149
142
|
chalk.white.bold('═══════════════════════════════════════════════════════════════\n\n') +
|
|
150
143
|
chalk.gray('📖 Full Release Notes: RELEASE_NOTES.md\n') +
|
|
151
144
|
chalk.gray('🌐 Website: https://agentvibes.org\n') +
|
|
@@ -215,18 +208,12 @@ function execScript(scriptPath, options = {}) {
|
|
|
215
208
|
throw new Error('Script path outside allowed directory');
|
|
216
209
|
}
|
|
217
210
|
|
|
218
|
-
//
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}).join(' ');
|
|
211
|
+
// Security: Use execFileSync with -c flag to prevent command injection
|
|
212
|
+
// The shell sources its config and executes the script with arguments passed as array
|
|
213
|
+
// This avoids string interpolation vulnerabilities
|
|
214
|
+
const shellScript = `source "${shellConfig}" 2>/dev/null; exec "${scriptFile}" "$@"`;
|
|
223
215
|
|
|
224
|
-
|
|
225
|
-
const scriptCommand = escapedArgs ? `'${scriptFile}' ${escapedArgs}` : `'${scriptFile}'`;
|
|
226
|
-
const command = `source "${shellConfig}" 2>/dev/null; ${shell} ${scriptCommand}`;
|
|
227
|
-
|
|
228
|
-
return execSync(command, {
|
|
229
|
-
shell: shell,
|
|
216
|
+
return execFileSync(shell, ['-c', shellScript, '--', ...args], {
|
|
230
217
|
...options
|
|
231
218
|
});
|
|
232
219
|
}
|
|
@@ -1188,7 +1175,9 @@ async function showRecentChanges(sourceDir) {
|
|
|
1188
1175
|
continue;
|
|
1189
1176
|
}
|
|
1190
1177
|
if (inCodeBlock && line.trim()) {
|
|
1191
|
-
|
|
1178
|
+
// Security: Use bounded quantifiers to prevent ReDoS
|
|
1179
|
+
// Match git short hash (7-12 hex chars) followed by single space and message
|
|
1180
|
+
const match = line.match(/^([a-f0-9]{7,12}) (.*)$/);
|
|
1192
1181
|
if (match) {
|
|
1193
1182
|
const [, hash, message] = match;
|
|
1194
1183
|
console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
|
|
@@ -1618,8 +1607,9 @@ async function install(options = {}) {
|
|
|
1618
1607
|
}
|
|
1619
1608
|
|
|
1620
1609
|
if (inCodeBlock && line.trim()) {
|
|
1621
|
-
//
|
|
1622
|
-
|
|
1610
|
+
// Security: Use bounded quantifiers to prevent ReDoS
|
|
1611
|
+
// Match git short hash (7-12 hex chars) followed by single space and message
|
|
1612
|
+
const match = line.match(/^([a-f0-9]{7,12}) (.*)$/);
|
|
1623
1613
|
if (match) {
|
|
1624
1614
|
const [, hash, message] = match;
|
|
1625
1615
|
console.log(chalk.gray(` ${hash}`) + ' ' + chalk.white(message));
|
|
@@ -107,31 +107,35 @@ teardown() {
|
|
|
107
107
|
assert_output_contains "Error: Provider name required"
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
@test "provider-manager switch
|
|
111
|
-
# Set
|
|
110
|
+
@test "provider-manager switch migrates voice to new provider" {
|
|
111
|
+
# Set an unknown voice first (not in mapping)
|
|
112
112
|
echo "TestVoice" > "$VOICE_FILE"
|
|
113
113
|
|
|
114
114
|
run "$PROVIDER_MANAGER" switch "piper"
|
|
115
115
|
|
|
116
116
|
[ "$status" -eq 0 ]
|
|
117
|
-
|
|
117
|
+
# Should migrate to default when voice is not in mapping table
|
|
118
|
+
assert_output_contains "Voice migrated:"
|
|
118
119
|
|
|
119
|
-
# Voice file should exist with
|
|
120
|
+
# Voice file should exist with migrated voice
|
|
120
121
|
[[ -f "$VOICE_FILE" ]]
|
|
122
|
+
# Should contain a Piper voice format
|
|
123
|
+
assert_file_contains "$VOICE_FILE" "en_US"
|
|
121
124
|
}
|
|
122
125
|
|
|
123
|
-
@test "provider-manager
|
|
124
|
-
# Create voice file
|
|
126
|
+
@test "provider-manager switch preserves known voice mappings" {
|
|
127
|
+
# Create voice file with a known ElevenLabs voice
|
|
125
128
|
mkdir -p "$(dirname "$VOICE_FILE")"
|
|
126
129
|
echo "Jessica Anne Bogart" > "$VOICE_FILE"
|
|
127
130
|
|
|
128
131
|
"$PROVIDER_MANAGER" switch "elevenlabs"
|
|
129
132
|
|
|
130
|
-
# Voice file should exist
|
|
133
|
+
# Voice file should exist
|
|
131
134
|
[[ -f "$VOICE_FILE" ]]
|
|
132
135
|
|
|
133
|
-
# Should
|
|
134
|
-
|
|
136
|
+
# Should preserve existing voice when staying in same provider type
|
|
137
|
+
# Jessica Anne Bogart is ElevenLabs, so stays the same
|
|
138
|
+
assert_file_contains "$VOICE_FILE" "Jessica Anne Bogart"
|
|
135
139
|
}
|
|
136
140
|
|
|
137
141
|
# ============================================================================
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
name,displayName,title,icon,role,identity,communicationStyle,principles,module,path
|
|
2
|
-
"bmad-master","BMad Master","BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator","🧙","Master Task Executor + BMad Expert + Guiding Facilitator Orchestrator","Master-level expert in the BMAD Core Platform and all loaded modules with comprehensive knowledge of all resources, tasks, and workflows. Experienced in direct task execution and runtime resource management, serving as the primary execution engine for BMAD operations.","Direct and comprehensive, refers to himself in the 3rd person. Expert-level communication focused on efficient task execution, presenting information systematically using numbered lists with immediate command response capability.","Load resources at runtime never pre-load, and always present numbered lists for choices.","core",".bmad/core/agents/bmad-master.md"
|
|
3
|
-
"analyst","Mary","Business Analyst","📊","Strategic Business Analyst + Requirements Expert","Senior analyst with deep expertise in market research, competitive analysis, and requirements elicitation. Specializes in translating vague needs into actionable specs.","Systematic and probing. Connects dots others miss. Structures findings hierarchically. Uses precise unambiguous language. Ensures all stakeholder voices heard.","Every business challenge has root causes waiting to be discovered. Ground findings in verifiable evidence. Articulate requirements with absolute precision.","bmm",".bmad/bmm/agents/analyst.md"
|
|
4
|
-
"architect","Winston","Architect","🏗️","System Architect + Technical Design Leader","Senior architect with expertise in distributed systems, cloud infrastructure, and API design. Specializes in scalable patterns and technology selection.","Pragmatic in technical discussions. Balances idealism with reality. Always connects decisions to business value and user impact. Prefers boring tech that works.","User journeys drive technical decisions. Embrace boring technology for stability. Design simple solutions that scale when needed. Developer productivity is architecture.","bmm",".bmad/bmm/agents/architect.md"
|
|
5
|
-
"dev","Amelia","Developer Agent","💻","Senior Software Engineer","Executes approved stories with strict adherence to acceptance criteria, using Story Context XML and existing code to minimize rework and hallucinations.","Succinct. Cites specific paths and AC IDs. Asks clarifying questions only when inputs missing. Refuses to invent when info lacking.","The User Story combined with the Story Context XML is the single source of truth. Reuse existing interfaces over rebuilding. Every change maps to specific AC. ALL past and current tests pass 100% or story isn't ready for review.","bmm",".bmad/bmm/agents/dev.md"
|
|
6
|
-
"frame-expert","Saif","Visual Design & Diagramming Expert","📐","Expert Visual Designer & Diagramming Specialist","Expert who creates visual representations using Excalidraw with optimized, reusable components. Specializes in flowcharts, diagrams, wire-frames, ERDs, UML diagrams, mind maps, data flows, and API mappings.","Visual-first, structured, detail-oriented, composition-focused. Presents options as numbered lists for easy selection.","- Composition Over Creation - Use reusable components and templates. Minimal Payload - Strip unnecessary metadata, optimize serialization. - Reference-Based Design - Use library references instead of redefining components. Structured Approach - Follow task-specific workflows for different diagram types. - Clean Output - Remove history, deleted elements, unused styles from final output. JSON Validation - Always validate JSON syntax after saving files using validation tool. - Error Recovery - NEVER delete files due to syntax errors, always fix them using error location information.","bmm",".bmad/bmm/agents/frame-expert.md"
|
|
7
|
-
"pm","John","Product Manager","📋","Investigative Product Strategist + Market-Savvy PM","Product management veteran with 8+ years launching B2B and consumer products. Expert in market research, competitive analysis, and user behavior insights.","Direct and analytical. Asks WHY relentlessly. Backs claims with data and user insights. Cuts straight to what matters for the product.","Uncover the deeper WHY behind every requirement. Ruthless prioritization to achieve MVP goals. Proactively identify risks. Align efforts with measurable business impact.","bmm",".bmad/bmm/agents/pm.md"
|
|
8
|
-
"sm","Bob","Scrum Master","🏃","Technical Scrum Master + Story Preparation Specialist","Certified Scrum Master with deep technical background. Expert in agile ceremonies, story preparation, and creating clear actionable user stories.","Task-oriented and efficient. Focused on clear handoffs and precise requirements. Eliminates ambiguity. Emphasizes developer-ready specs.","Strict boundaries between story prep and implementation. Stories are single source of truth. Perfect alignment between PRD and dev execution. Enable efficient sprints.","bmm",".bmad/bmm/agents/sm.md"
|
|
9
|
-
"tea","Murat","Master Test Architect","🧪","Master Test Architect","Test architect specializing in CI/CD, automated frameworks, and scalable quality gates.","Data-driven and pragmatic. Strong opinions weakly held. Calculates risk vs value. Knows when to test deep vs shallow.","Risk-based testing. Depth scales with impact. Quality gates backed by data. Tests mirror usage. Flakiness is critical debt. Tests first AI implements suite validates.","bmm",".bmad/bmm/agents/tea.md"
|
|
10
|
-
"tech-writer","Paige","Technical Writer","📚","Technical Documentation Specialist + Knowledge Curator","Experienced technical writer expert in CommonMark, DITA, OpenAPI. Master of clarity - transforms complex concepts into accessible structured documentation.","Patient and supportive. Uses clear examples and analogies. Knows when to simplify vs when to be detailed. Celebrates good docs helps improve unclear ones.","Documentation is teaching. Every doc helps someone accomplish a task. Clarity above all. Docs are living artifacts that evolve with code.","bmm",".bmad/bmm/agents/tech-writer.md"
|
|
11
|
-
"ux-designer","Sally","UX Designer","🎨","User Experience Designer + UI Specialist","Senior UX Designer with 7+ years creating intuitive experiences across web and mobile. Expert in user research, interaction design, AI-assisted tools.","Empathetic and user-focused. Uses storytelling for design decisions. Data-informed but creative. Advocates strongly for user needs and edge cases.","Every decision serves genuine user needs. Start simple evolve through feedback. Balance empathy with edge case attention. AI tools accelerate human-centered design.","bmm",".bmad/bmm/agents/ux-designer.md"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
agent_id,voice_name
|
|
2
|
-
pm,en_US-ryan-high
|
|
3
|
-
architect,en_US-danny-low
|
|
4
|
-
dev,en_US-hfc_female-medium
|
|
5
|
-
analyst,en_US-amy-medium
|
|
6
|
-
ux-designer,en_US-kristin-medium
|
|
7
|
-
tea,en_US-kusal-medium
|
|
8
|
-
sm,en_US-bryce-medium
|
|
9
|
-
tech-writer,en_US-kathleen-low
|
|
10
|
-
frame-expert,en_US-kusal-medium
|
|
11
|
-
bmad-master,en_US-libritts_r-high
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# Agent Customization
|
|
2
|
-
# Customize any section below - all are optional
|
|
3
|
-
# After editing: npx bmad-method build <agent-name>
|
|
4
|
-
|
|
5
|
-
# Override agent name
|
|
6
|
-
agent:
|
|
7
|
-
metadata:
|
|
8
|
-
name: ""
|
|
9
|
-
|
|
10
|
-
# Replace entire persona (not merged)
|
|
11
|
-
persona:
|
|
12
|
-
role: ""
|
|
13
|
-
identity: ""
|
|
14
|
-
communication_style: ""
|
|
15
|
-
principles: []
|
|
16
|
-
|
|
17
|
-
# Add custom critical actions (appended after standard config loading)
|
|
18
|
-
critical_actions: []
|
|
19
|
-
|
|
20
|
-
# Add persistent memories for the agent
|
|
21
|
-
memories: []
|
|
22
|
-
# Example:
|
|
23
|
-
# memories:
|
|
24
|
-
# - "User prefers detailed technical explanations"
|
|
25
|
-
# - "Current project uses React and TypeScript"
|
|
26
|
-
|
|
27
|
-
# Add custom menu items (appended to base menu)
|
|
28
|
-
# Don't include * prefix or help/exit - auto-injected
|
|
29
|
-
menu: []
|
|
30
|
-
# Example:
|
|
31
|
-
# menu:
|
|
32
|
-
# - trigger: my-workflow
|
|
33
|
-
# workflow: "{project-root}/custom/my.yaml"
|
|
34
|
-
# description: My custom workflow
|
|
35
|
-
|
|
36
|
-
# Add custom prompts (for action="#id" handlers)
|
|
37
|
-
prompts: []
|
|
38
|
-
# Example:
|
|
39
|
-
# prompts:
|
|
40
|
-
# - id: my-prompt
|
|
41
|
-
# content: |
|
|
42
|
-
# Prompt instructions here
|