bmad-method 6.0.0-alpha.16 → 6.0.0-alpha.18
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/.coderabbit.yaml +7 -3
- package/.github/scripts/discord-helpers.sh +21 -2
- package/.github/workflows/discord.yaml +31 -7
- package/.github/workflows/manual-release.yaml +12 -42
- package/.markdownlint-cli2.yaml +2 -2
- package/.prettierignore +2 -2
- package/.vscode/settings.json +1 -1
- package/CHANGELOG.md +193 -2
- package/LICENSE +1 -1
- package/README.md +29 -2
- package/docs/agent-customization-guide.md +10 -10
- package/docs/custom-content-installation.md +100 -196
- package/docs/custom-content.md +122 -0
- package/docs/ide-info/crush.md +1 -1
- package/docs/ide-info/cursor.md +7 -7
- package/docs/ide-info/iflow.md +3 -3
- package/docs/ide-info/opencode.md +1 -1
- package/docs/ide-info/rovo-dev.md +1 -1
- package/docs/index.md +2 -2
- package/docs/installers-bundlers/ide-injections.md +2 -2
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +13 -13
- package/docs/sample-custom-modules/README.md +11 -0
- package/docs/sample-custom-modules/sample-unitary-module/README.md +8 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +129 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +161 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
- package/docs/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith.agent.yaml +109 -0
- package/docs/sample-custom-modules/sample-unitary-module/module.yaml +8 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +168 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +155 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +89 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +36 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +150 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/templates/csv-headers.template +1 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +54 -0
- package/docs/sample-custom-modules/sample-unitary-module/workflows/wassup/workflow.md +26 -0
- package/docs/sample-custom-modules/sample-wellness-module/README.md +6 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +136 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/foo.md +3 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/addition1.md +1 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/insights.md +13 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/instructions.md +30 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/memories.md +13 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion-sidecar/patterns.md +17 -0
- package/docs/sample-custom-modules/sample-wellness-module/agents/wellness-companion/wellness-companion.agent.yaml +120 -0
- package/docs/sample-custom-modules/sample-wellness-module/module.yaml +17 -0
- package/docs/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/README.md +32 -0
- package/docs/sample-custom-modules/sample-wellness-module/workflows/daily-checkin/workflow.md +45 -0
- package/docs/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/README.md +31 -0
- package/docs/sample-custom-modules/sample-wellness-module/workflows/guided-meditation/workflow.md +45 -0
- package/docs/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/README.md +31 -0
- package/docs/sample-custom-modules/sample-wellness-module/workflows/wellness-journal/workflow.md +45 -0
- package/docs/v4-to-v6-upgrade.md +27 -27
- package/docs/web-bundles-gemini-gpt-guide.md +6 -458
- package/eslint.config.mjs +2 -2
- package/package.json +1 -1
- package/src/core/agents/bmad-master.agent.yaml +6 -11
- package/src/core/module.yaml +11 -18
- package/src/core/resources/excalidraw/README.md +6 -6
- package/src/core/tasks/advanced-elicitation.xml +3 -3
- package/src/core/tasks/index-docs.xml +1 -1
- package/src/core/tasks/validate-workflow.xml +1 -1
- package/src/core/tasks/workflow.xml +4 -4
- package/src/core/tools/shard-doc.xml +12 -12
- package/src/core/workflows/brainstorming/workflow.md +3 -3
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +2 -2
- package/src/core/workflows/party-mode/workflow.md +4 -4
- package/src/modules/bmb/agents/bmad-builder.agent.yaml +15 -15
- package/src/modules/bmb/{README.md → docs/README.md} +15 -27
- package/src/modules/bmb/docs/agents/agent-compilation.md +3 -3
- package/src/modules/bmb/docs/agents/agent-menu-patterns.md +23 -24
- package/src/modules/bmb/docs/agents/expert-agent-architecture.md +20 -21
- package/src/modules/bmb/docs/agents/simple-agent-architecture.md +17 -52
- package/src/modules/bmb/docs/agents/understanding-agent-types.md +6 -6
- package/src/modules/bmb/docs/workflows/architecture.md +1 -1
- package/src/modules/bmb/docs/workflows/common-workflow-tools.csv +3 -3
- package/src/modules/bmb/docs/workflows/templates/step-01-init-continuable-template.md +1 -1
- package/src/modules/bmb/docs/workflows/templates/step-1b-template.md +1 -1
- package/src/modules/bmb/docs/workflows/templates/step-file.md +3 -3
- package/src/modules/bmb/docs/workflows/templates/step-template.md +3 -3
- package/src/modules/bmb/docs/workflows/templates/workflow-template.md +2 -2
- package/src/modules/bmb/docs/workflows/templates/workflow.md +1 -1
- package/src/modules/bmb/module.yaml +6 -15
- package/src/modules/bmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +7 -7
- package/src/modules/bmb/reference/agents/module-examples/README.md +3 -4
- package/src/modules/bmb/reference/agents/module-examples/security-engineer.agent.yaml +5 -5
- package/src/modules/bmb/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
- package/src/modules/bmb/reference/agents/simple-examples/README.md +1 -1
- package/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml +1 -1
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/README.md +1 -3
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +6 -6
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +7 -7
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +1 -1
- package/src/modules/bmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +1 -1
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +1 -1
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +1 -1
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +3 -3
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +3 -3
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +5 -5
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +5 -5
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +5 -5
- package/src/modules/bmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +2 -2
- package/src/modules/bmb/workflows/create-agent/data/validation-complete.md +3 -3
- package/src/modules/bmb/workflows/create-agent/steps/step-01-brainstorm.md +4 -4
- package/src/modules/bmb/workflows/create-agent/steps/step-02-discover.md +6 -10
- package/src/modules/bmb/workflows/create-agent/steps/step-03-persona.md +6 -6
- package/src/modules/bmb/workflows/create-agent/steps/step-04-commands.md +9 -9
- package/src/modules/bmb/workflows/create-agent/steps/step-05-name.md +6 -5
- package/src/modules/bmb/workflows/create-agent/steps/step-06-build.md +19 -57
- package/src/modules/bmb/workflows/create-agent/steps/step-07-validate.md +5 -5
- package/src/modules/bmb/workflows/create-agent/steps/{step-11-celebrate.md → step-08-celebrate.md} +2 -6
- package/src/modules/bmb/workflows/create-agent/templates/agent-plan.template.md +3 -0
- package/src/modules/bmb/workflows/create-agent/templates/expert-agent.template.md +364 -0
- package/src/modules/bmb/workflows/create-agent/templates/simple-agent.template.md +257 -0
- package/src/modules/bmb/workflows/create-agent/workflow.md +2 -35
- package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +4 -4
- package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +2 -2
- package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +4 -4
- package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +4 -4
- package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +6 -6
- package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +5 -5
- package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +8 -8
- package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +5 -5
- package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +8 -8
- package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +7 -7
- package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +7 -7
- package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +6 -6
- package/src/modules/bmb/workflows/create-module/templates/agent.template.md +15 -19
- package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +1 -1
- package/src/modules/bmb/workflows/create-module/workflow.md +3 -3
- package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +6 -6
- package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +5 -5
- package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/steps/step-06-design.md +11 -11
- package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +14 -14
- package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +4 -4
- package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +2 -2
- package/src/modules/bmb/workflows/create-workflow/workflow.md +2 -2
- package/src/modules/bmb/workflows/edit-agent/steps/step-01-discover-intent.md +2 -2
- package/src/modules/bmb/workflows/edit-agent/steps/step-02-analyze-agent.md +12 -12
- package/src/modules/bmb/workflows/edit-agent/steps/step-03-propose-changes.md +4 -4
- package/src/modules/bmb/workflows/edit-agent/steps/step-04-apply-changes.md +2 -2
- package/src/modules/bmb/workflows/edit-agent/steps/step-05-validate.md +4 -4
- package/src/modules/bmb/workflows/edit-agent/workflow.md +1 -1
- package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +4 -4
- package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +3 -3
- package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +6 -6
- package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +3 -3
- package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +3 -3
- package/src/modules/bmb/workflows/edit-workflow/workflow.md +1 -1
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +3 -3
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +5 -5
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +6 -6
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +4 -4
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +4 -4
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +4 -4
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +4 -4
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +3 -3
- package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +1 -1
- package/src/modules/bmb/workflows-legacy/edit-module/README.md +1 -17
- package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +3 -4
- package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +4 -5
- package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +10 -10
- package/src/modules/bmb/workflows-legacy/module-brief/README.md +2 -2
- package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +2 -2
- package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +4 -4
- package/src/modules/bmgd/README.md +1 -1
- package/src/modules/bmgd/_module-installer/installer.js +160 -0
- package/src/modules/bmgd/_module-installer/platform-specifics/claude-code.js +23 -0
- package/src/modules/bmgd/_module-installer/platform-specifics/windsurf.js +18 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +26 -11
- package/src/modules/bmgd/agents/game-designer.agent.yaml +41 -21
- package/src/modules/bmgd/agents/game-dev.agent.yaml +34 -18
- package/src/modules/bmgd/agents/game-qa.agent.yaml +64 -0
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +32 -44
- package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +56 -0
- package/src/modules/bmgd/docs/README.md +180 -0
- package/src/modules/bmgd/docs/agents-guide.md +407 -0
- package/src/modules/bmgd/docs/game-types-guide.md +503 -0
- package/src/modules/bmgd/docs/glossary.md +294 -0
- package/src/modules/bmgd/docs/quick-flow-guide.md +288 -0
- package/src/modules/bmgd/docs/quick-start.md +250 -0
- package/src/modules/bmgd/docs/troubleshooting.md +259 -0
- package/src/modules/bmgd/docs/workflow-overview.jpg +0 -0
- package/src/modules/bmgd/docs/workflows-guide.md +463 -0
- package/src/modules/bmgd/gametest/knowledge/balance-testing.md +220 -0
- package/src/modules/bmgd/gametest/knowledge/certification-testing.md +319 -0
- package/src/modules/bmgd/gametest/knowledge/compatibility-testing.md +228 -0
- package/src/modules/bmgd/gametest/knowledge/godot-testing.md +376 -0
- package/src/modules/bmgd/gametest/knowledge/input-testing.md +315 -0
- package/src/modules/bmgd/gametest/knowledge/localization-testing.md +304 -0
- package/src/modules/bmgd/gametest/knowledge/multiplayer-testing.md +322 -0
- package/src/modules/bmgd/gametest/knowledge/performance-testing.md +204 -0
- package/src/modules/bmgd/gametest/knowledge/playtesting.md +384 -0
- package/src/modules/bmgd/gametest/knowledge/qa-automation.md +190 -0
- package/src/modules/bmgd/gametest/knowledge/regression-testing.md +280 -0
- package/src/modules/bmgd/gametest/knowledge/save-testing.md +280 -0
- package/src/modules/bmgd/gametest/knowledge/smoke-testing.md +404 -0
- package/src/modules/bmgd/gametest/knowledge/test-priorities.md +271 -0
- package/src/modules/bmgd/gametest/knowledge/unity-testing.md +383 -0
- package/src/modules/bmgd/gametest/knowledge/unreal-testing.md +388 -0
- package/src/modules/bmgd/gametest/qa-index.csv +17 -0
- package/src/modules/bmgd/module.yaml +27 -16
- package/src/modules/bmgd/teams/default-party.csv +2 -0
- package/src/modules/bmgd/teams/team-gamedev.yaml +12 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +164 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +210 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +289 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +275 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +49 -0
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +35 -14
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/instructions.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +223 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +151 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +218 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +218 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +231 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +242 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +224 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +282 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +296 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.md +62 -0
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/workflow.yaml +43 -12
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +248 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +173 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +332 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +245 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +229 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +258 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +249 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +266 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +272 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +264 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +255 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +275 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +284 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +250 -0
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +335 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.md +61 -0
- package/src/modules/bmgd/workflows/2-design/gdd/workflow.yaml +54 -34
- package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +228 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +163 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +238 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +297 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +250 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +244 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +264 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +254 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +262 -0
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +331 -0
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +57 -0
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.yaml +55 -10
- package/src/modules/bmgd/workflows/3-technical/game-architecture/instructions.md +1 -1
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +223 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +153 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +262 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +290 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +300 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +319 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +304 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +349 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +293 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +302 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +55 -0
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.yaml +51 -22
- package/src/modules/bmgd/workflows/4-production/code-review/checklist.md +23 -0
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +225 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +19 -16
- package/src/modules/bmgd/workflows/4-production/correct-course/checklist.md +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/instructions.md +2 -2
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +12 -7
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +332 -214
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.xml +298 -0
- package/src/modules/bmgd/workflows/4-production/create-story/template.md +3 -5
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +13 -8
- package/src/modules/bmgd/workflows/4-production/dev-story/checklist.md +65 -23
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.xml +409 -0
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +14 -4
- package/src/modules/bmgd/workflows/4-production/retrospective/instructions.md +5 -5
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +14 -9
- package/src/modules/bmgd/workflows/4-production/sprint-planning/instructions.md +33 -42
- package/src/modules/bmgd/workflows/4-production/sprint-planning/sprint-status-template.yaml +13 -13
- package/src/modules/bmgd/workflows/4-production/sprint-planning/workflow.yaml +7 -2
- package/src/modules/bmgd/workflows/4-production/sprint-status/instructions.md +229 -0
- package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +35 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/instructions.md +140 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml +27 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/checklist.md +37 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/instructions.md +220 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml +45 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/checklist.md +26 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/instructions.md +156 -0
- package/src/modules/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml +36 -0
- package/src/modules/bmgd/workflows/gametest/automate/checklist.md +93 -0
- package/src/modules/bmgd/workflows/gametest/automate/instructions.md +317 -0
- package/src/modules/bmgd/workflows/gametest/automate/workflow.yaml +50 -0
- package/src/modules/bmgd/workflows/gametest/performance/checklist.md +96 -0
- package/src/modules/bmgd/workflows/gametest/performance/instructions.md +323 -0
- package/src/modules/bmgd/workflows/gametest/performance/performance-template.md +256 -0
- package/src/modules/bmgd/workflows/gametest/performance/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/checklist.md +93 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/instructions.md +297 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/playtest-template.md +208 -0
- package/src/modules/bmgd/workflows/gametest/playtest-plan/workflow.yaml +59 -0
- package/src/modules/bmgd/workflows/gametest/test-design/checklist.md +98 -0
- package/src/modules/bmgd/workflows/gametest/test-design/instructions.md +280 -0
- package/src/modules/bmgd/workflows/gametest/test-design/test-design-template.md +205 -0
- package/src/modules/bmgd/workflows/gametest/test-design/workflow.yaml +47 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/checklist.md +103 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/instructions.md +348 -0
- package/src/modules/bmgd/workflows/gametest/test-framework/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/gametest/test-review/checklist.md +87 -0
- package/src/modules/bmgd/workflows/gametest/test-review/instructions.md +272 -0
- package/src/modules/bmgd/workflows/gametest/test-review/test-review-template.md +203 -0
- package/src/modules/bmgd/workflows/gametest/test-review/workflow.yaml +48 -0
- package/src/modules/bmgd/workflows/workflow-status/init/instructions.md +299 -0
- package/src/modules/bmgd/workflows/workflow-status/init/workflow.yaml +29 -0
- package/src/modules/bmgd/workflows/workflow-status/instructions.md +395 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-brownfield.yaml +65 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/gamedev-greenfield.yaml +71 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +29 -0
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-greenfield.yaml +39 -0
- package/src/modules/bmgd/workflows/workflow-status/project-levels.yaml +63 -0
- package/src/modules/bmgd/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/modules/bmgd/workflows/workflow-status/workflow.yaml +30 -0
- package/src/modules/bmm/README.md +1 -1
- package/src/modules/bmm/agents/analyst.agent.yaml +9 -9
- package/src/modules/bmm/agents/architect.agent.yaml +8 -8
- package/src/modules/bmm/agents/dev.agent.yaml +5 -5
- package/src/modules/bmm/agents/pm.agent.yaml +8 -8
- package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +5 -5
- package/src/modules/bmm/agents/sm.agent.yaml +11 -11
- package/src/modules/bmm/agents/tea.agent.yaml +13 -13
- package/src/modules/bmm/agents/tech-writer.agent.yaml +9 -9
- package/src/modules/bmm/agents/ux-designer.agent.yaml +6 -6
- package/src/modules/bmm/docs/agents-guide.md +16 -14
- package/src/modules/bmm/docs/brownfield-guide.md +6 -6
- package/src/modules/bmm/docs/enterprise-agentic-development.md +3 -3
- package/src/modules/bmm/docs/faq.md +5 -18
- package/src/modules/bmm/docs/glossary.md +3 -4
- package/src/modules/bmm/docs/images/README.md +1 -1
- package/src/modules/bmm/docs/images/workflow-method-greenfield.excalidraw +8 -8
- package/src/modules/bmm/docs/party-mode.md +3 -3
- package/src/modules/bmm/docs/quick-flow-solo-dev.md +5 -5
- package/src/modules/bmm/docs/quick-spec-flow.md +2 -16
- package/src/modules/bmm/docs/quick-start.md +3 -3
- package/src/modules/bmm/docs/test-architecture.md +15 -23
- package/src/modules/bmm/docs/troubleshooting.md +6 -25
- package/src/modules/bmm/docs/workflow-document-project-reference.md +1 -1
- package/src/modules/bmm/docs/workflows-implementation.md +3 -4
- package/src/modules/bmm/module.yaml +25 -23
- package/src/modules/bmm/testarch/knowledge/overview.md +0 -1
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-01-init.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-01b-continue.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-02-vision.md +3 -3
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-03-users.md +3 -3
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-04-metrics.md +3 -3
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-05-scope.md +3 -3
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/steps/step-06-complete.md +1 -1
- package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/workflow.md +2 -2
- package/src/modules/bmm/workflows/1-analysis/research/workflow.md +2 -2
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +4 -4
- package/src/modules/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +2 -2
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01-init.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +3 -3
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-03-success.md +7 -7
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +8 -8
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +12 -12
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +12 -12
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +10 -10
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +7 -7
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-09-functional.md +9 -9
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +9 -9
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +1 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-01-document-discovery.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-02-prd-analysis.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-03-epic-coverage-validation.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-04-ux-alignment.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-05-epic-quality-review.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/steps/step-06-final-assessment.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/workflow.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-01-init.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-02-context.md +4 -4
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-03-starter.md +4 -4
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-04-decisions.md +4 -4
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-05-patterns.md +4 -4
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-06-structure.md +4 -4
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-07-validation.md +4 -4
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-08-complete.md +3 -3
- package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/workflow.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +3 -3
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +3 -3
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +3 -3
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +3 -3
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +3 -3
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +4 -3
- package/src/modules/bmm/workflows/4-implementation/code-review/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/correct-course/checklist.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/correct-course/instructions.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +5 -5
- package/src/modules/bmm/workflows/4-implementation/create-story/template.md +3 -5
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/dev-story/checklist.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +11 -8
- package/src/modules/bmm/workflows/4-implementation/dev-story/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/retrospective/instructions.md +3 -3
- package/src/modules/bmm/workflows/4-implementation/retrospective/workflow.yaml +3 -3
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/instructions.md +15 -22
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +4 -5
- package/src/modules/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/4-implementation/sprint-status/instructions.md +90 -35
- package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +5 -5
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml +7 -7
- package/src/modules/bmm/workflows/document-project/instructions.md +5 -5
- package/src/modules/bmm/workflows/document-project/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/document-project/workflows/deep-dive.yaml +5 -5
- package/src/modules/bmm/workflows/document-project/workflows/full-scan.yaml +5 -5
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/instructions.md +1 -1
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/instructions.md +2 -2
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/instructions.md +2 -2
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/instructions.md +1 -1
- package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/workflow.yaml +6 -6
- package/src/modules/bmm/workflows/generate-project-context/steps/step-01-discover.md +2 -2
- package/src/modules/bmm/workflows/generate-project-context/steps/step-02-generate.md +3 -3
- package/src/modules/bmm/workflows/generate-project-context/steps/step-03-complete.md +2 -2
- package/src/modules/bmm/workflows/generate-project-context/workflow.md +5 -5
- package/src/modules/bmm/workflows/testarch/atdd/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/atdd/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/automate/instructions.md +2 -2
- package/src/modules/bmm/workflows/testarch/automate/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/ci/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/ci/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/framework/instructions.md +3 -3
- package/src/modules/bmm/workflows/testarch/framework/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/nfr-assess/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/nfr-assess/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +3 -3
- package/src/modules/bmm/workflows/testarch/test-design/test-design-template.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-design/workflow.yaml +10 -4
- package/src/modules/bmm/workflows/testarch/test-review/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-review/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/testarch/trace/instructions.md +6 -6
- package/src/modules/bmm/workflows/testarch/trace/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/workflow-status/init/instructions.md +1 -1
- package/src/modules/bmm/workflows/workflow-status/init/workflow.yaml +4 -4
- package/src/modules/bmm/workflows/workflow-status/instructions.md +3 -3
- package/src/modules/bmm/workflows/workflow-status/project-levels.yaml +1 -1
- package/src/modules/bmm/workflows/workflow-status/workflow.yaml +2 -2
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +4 -4
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +4 -4
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +4 -4
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +4 -4
- package/src/modules/cis/agents/presentation-master.agent.yaml +3 -3
- package/src/modules/cis/agents/storyteller/storyteller-sidecar/stories-told.md +7 -0
- package/src/modules/cis/agents/storyteller/storyteller-sidecar/story-preferences.md +7 -0
- package/src/modules/cis/agents/{storyteller.agent.yaml → storyteller/storyteller.agent.yaml} +9 -4
- package/src/modules/cis/module.yaml +3 -7
- package/src/modules/cis/{README.md → readme.md} +1 -1
- package/src/modules/cis/workflows/README.md +1 -1
- package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
- package/src/modules/cis/workflows/design-thinking/workflow.yaml +7 -7
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
- package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +7 -7
- package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
- package/src/modules/cis/workflows/problem-solving/workflow.yaml +7 -7
- package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
- package/src/modules/cis/workflows/storytelling/workflow.yaml +7 -7
- package/src/utility/agent-components/activation-rules.txt +7 -0
- package/src/utility/agent-components/activation-steps.txt +13 -0
- package/src/utility/agent-components/agent-command-header.md +1 -0
- package/src/utility/{templates → agent-components}/agent.customize.template.yaml +0 -1
- package/src/utility/agent-components/handler-action.txt +4 -0
- package/src/utility/agent-components/handler-exec.txt +6 -0
- package/src/utility/agent-components/handler-multi.txt +14 -0
- package/src/utility/agent-components/handler-tmpl.txt +5 -0
- package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
- package/src/utility/agent-components/handler-workflow.txt +10 -0
- package/src/utility/agent-components/menu-handlers.txt +6 -0
- package/test/README.md +1 -1
- package/test/test-agent-schema.js +2 -2
- package/tools/cli/README.md +1 -607
- package/tools/cli/commands/build.js +7 -7
- package/tools/cli/commands/install.js +16 -18
- package/tools/cli/commands/list.js +13 -1
- package/tools/cli/installers/lib/core/config-collector.js +224 -59
- package/tools/cli/installers/lib/core/custom-module-cache.js +18 -10
- package/tools/cli/installers/lib/core/dependency-resolver.js +2 -2
- package/tools/cli/installers/lib/core/detector.js +16 -16
- package/tools/cli/installers/lib/core/ide-config-manager.js +9 -7
- package/tools/cli/installers/lib/core/installer.js +634 -1040
- package/tools/cli/installers/lib/core/installer.js.bak +3204 -0
- package/tools/cli/installers/lib/core/manifest-generator.js +43 -40
- package/tools/cli/installers/lib/core/manifest.js +23 -20
- package/tools/cli/installers/lib/custom/handler.js +16 -46
- package/tools/cli/installers/lib/ide/_base-ide.js +26 -33
- package/tools/cli/installers/lib/ide/antigravity.js +3 -3
- package/tools/cli/installers/lib/ide/claude-code.js +3 -3
- package/tools/cli/installers/lib/ide/codex.js +2 -2
- package/tools/cli/installers/lib/ide/gemini.js +6 -6
- package/tools/cli/installers/lib/ide/kiro-cli.js +2 -2
- package/tools/cli/installers/lib/ide/opencode.js +2 -2
- package/tools/cli/installers/lib/ide/roo.js +15 -5
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +2 -2
- package/tools/cli/installers/lib/ide/shared/module-injections.js +2 -2
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +2 -2
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +4 -4
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
- package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +3 -3
- package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +3 -3
- package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +1 -1
- package/tools/cli/installers/lib/modules/manager.js +315 -312
- package/tools/cli/lib/activation-builder.js +8 -13
- package/tools/cli/lib/agent/compiler.js +166 -167
- package/tools/cli/lib/agent/installer.js +8 -128
- package/tools/cli/lib/agent-analyzer.js +2 -2
- package/tools/cli/lib/agent-party-generator.js +5 -17
- package/tools/cli/lib/config.js +2 -2
- package/tools/cli/lib/platform-codes.js +2 -2
- package/tools/cli/lib/ui.js +678 -564
- package/tools/cli/lib/xml-handler.js +3 -55
- package/tools/cli/lib/yaml-format.js +4 -6
- package/tools/cli/lib/yaml-xml-builder.js +14 -26
- package/tools/flattener/ignoreRules.js +1 -1
- package/tools/flattener/xml.js +1 -7
- package/tools/lib/xml-utils.js +13 -0
- package/tools/migrate-custom-module-paths.js +2 -2
- package/tools/validate-agent-schema.js +2 -2
- package/docs/v6-open-items.md +0 -17
- package/src/core/agents/bmad-web-orchestrator.agent.xml +0 -113
- package/src/modules/bmb/_module-installer/installer.js +0 -76
- package/src/modules/bmb/docs/agents/module-agent-architecture.md +0 -366
- package/src/modules/bmb/workflows/create-agent/steps/step-08-setup.md +0 -179
- package/src/modules/bmb/workflows/create-agent/steps/step-09-customize.md +0 -197
- package/src/modules/bmb/workflows/create-agent/steps/step-10-build-tools.md +0 -180
- package/src/modules/bmb/workflows/create-agent/templates/agent_commands.md +0 -21
- package/src/modules/bmb/workflows/create-agent/templates/agent_persona.md +0 -25
- package/src/modules/bmb/workflows/create-agent/templates/agent_purpose_and_type.md +0 -23
- package/src/modules/bmgd/workflows/2-design/gdd/instructions-gdd.md +0 -502
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.md +0 -398
- package/src/modules/bmgd/workflows/4-production/create-story/instructions.md +0 -256
- package/src/modules/bmgd/workflows/4-production/dev-story/instructions.md +0 -267
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/checklist.md +0 -17
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/instructions.md +0 -164
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/template.md +0 -76
- package/src/modules/bmgd/workflows/4-production/epic-tech-context/workflow.yaml +0 -58
- package/src/modules/bmgd/workflows/4-production/story-context/checklist.md +0 -16
- package/src/modules/bmgd/workflows/4-production/story-context/context-template.xml +0 -34
- package/src/modules/bmgd/workflows/4-production/story-context/instructions.md +0 -209
- package/src/modules/bmgd/workflows/4-production/story-context/workflow.yaml +0 -63
- package/src/modules/bmgd/workflows/4-production/story-done/instructions.md +0 -111
- package/src/modules/bmgd/workflows/4-production/story-done/workflow.yaml +0 -28
- package/src/modules/bmgd/workflows/4-production/story-ready/instructions.md +0 -117
- package/src/modules/bmgd/workflows/4-production/story-ready/workflow.yaml +0 -25
- package/src/modules/bmm/tasks/daily-standup.xml +0 -85
- package/src/modules/cis/agents/README.md +0 -104
- package/src/utility/models/action-command-header.md +0 -0
- package/src/utility/models/agent-activation-ide.xml +0 -51
- package/src/utility/models/agent-activation-web.xml +0 -50
- package/src/utility/models/agent-command-header.md +0 -1
- package/src/utility/models/agent-config-template.md +0 -23
- package/src/utility/models/agent-in-team-activation.xml +0 -3
- package/src/utility/models/fragments/activation-rules.xml +0 -7
- package/src/utility/models/fragments/activation-steps.xml +0 -16
- package/src/utility/models/fragments/handler-action.xml +0 -4
- package/src/utility/models/fragments/handler-exec.xml +0 -6
- package/src/utility/models/fragments/handler-multi.xml +0 -14
- package/src/utility/models/fragments/handler-tmpl.xml +0 -5
- package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
- package/src/utility/models/fragments/handler-workflow.xml +0 -9
- package/src/utility/models/fragments/menu-handlers.xml +0 -6
- package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
- package/tools/cli/bundlers/bundle-web.js +0 -179
- package/tools/cli/bundlers/test-analyst.js +0 -28
- package/tools/cli/bundlers/test-bundler.js +0 -118
- package/tools/cli/bundlers/web-bundler.js +0 -1754
- package/tools/cli/installers/lib/core/post-install-sidecar-replacement.js +0 -79
- package/tools/cli/lib/replace-project-root.js +0 -239
- package/tools/cli/regenerate-manifests.js +0 -27
- package/tools/cli/test-yaml-builder.js +0 -43
- /package/src/modules/bmgd/workflows/1-preproduction/game-brief/{template.md → templates/game-brief-template.md} +0 -0
- /package/src/modules/bmgd/workflows/2-design/gdd/{gdd-template.md → templates/gdd-template.md} +0 -0
- /package/src/modules/bmgd/workflows/2-design/narrative/{narrative-template.md → templates/narrative-template.md} +0 -0
- /package/src/modules/bmgd/workflows/3-technical/game-architecture/{architecture-template.md → templates/architecture-template.md} +0 -0
- /package/src/modules/bmgd/workflows/4-production/code-review/{backlog_template.md → backlog-template.md} +0 -0
- /package/src/modules/bmm/workflows/1-analysis/{product-brief → create-product-brief}/product-brief.template.md +0 -0
- /package/src/modules/bmm/workflows/3-solutioning/{implementation-readiness → check-implementation-readiness}/templates/readiness-report-template.md +0 -0
- /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/architecture-decision-template.md +0 -0
- /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/data/domain-complexity.csv +0 -0
- /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/data/project-types.csv +0 -0
- /package/src/modules/bmm/workflows/3-solutioning/{architecture → create-architecture}/steps/step-01b-continue.md +0 -0
- /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/_shared/excalidraw-library.json +0 -0
- /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/_shared/excalidraw-templates.yaml +0 -0
- /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-dataflow/checklist.md +0 -0
- /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-diagram/checklist.md +0 -0
- /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-flowchart/checklist.md +0 -0
- /package/src/modules/bmm/workflows/{diagrams → excalidraw-diagrams}/create-wireframe/checklist.md +0 -0
- /package/src/utility/{models/fragments/handler-data.xml → agent-components/handler-data.txt} +0 -0
|
@@ -7,13 +7,13 @@ const { getSourcePath } = require('./project-root');
|
|
|
7
7
|
*/
|
|
8
8
|
class ActivationBuilder {
|
|
9
9
|
constructor() {
|
|
10
|
-
this.
|
|
10
|
+
this.agentComponents = getSourcePath('utility', 'agent-components');
|
|
11
11
|
this.fragmentCache = new Map();
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Load a fragment file
|
|
16
|
-
* @param {string} fragmentName - Name of fragment file (e.g., 'activation-init.
|
|
16
|
+
* @param {string} fragmentName - Name of fragment file (e.g., 'activation-init.txt')
|
|
17
17
|
* @returns {string} Fragment content
|
|
18
18
|
*/
|
|
19
19
|
async loadFragment(fragmentName) {
|
|
@@ -22,7 +22,7 @@ class ActivationBuilder {
|
|
|
22
22
|
return this.fragmentCache.get(fragmentName);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
const fragmentPath = path.join(this.
|
|
25
|
+
const fragmentPath = path.join(this.agentComponents, fragmentName);
|
|
26
26
|
|
|
27
27
|
if (!(await fs.pathExists(fragmentPath))) {
|
|
28
28
|
throw new Error(`Fragment not found: ${fragmentName}`);
|
|
@@ -49,7 +49,7 @@ class ActivationBuilder {
|
|
|
49
49
|
activation += this.indent(steps, 2) + '\n';
|
|
50
50
|
|
|
51
51
|
// 2. Build menu handlers section with dynamic handlers
|
|
52
|
-
const menuHandlers = await this.loadFragment('menu-handlers.
|
|
52
|
+
const menuHandlers = await this.loadFragment('menu-handlers.txt');
|
|
53
53
|
|
|
54
54
|
// Build handlers (load only needed handlers)
|
|
55
55
|
const handlers = await this.buildHandlers(profile);
|
|
@@ -63,11 +63,8 @@ class ActivationBuilder {
|
|
|
63
63
|
|
|
64
64
|
activation += '\n' + this.indent(processedHandlers, 2) + '\n';
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const rules = await this.loadFragment('activation-rules.xml');
|
|
69
|
-
activation += this.indent(rules, 2) + '\n';
|
|
70
|
-
}
|
|
66
|
+
const rules = await this.loadFragment('activation-rules.txt');
|
|
67
|
+
activation += this.indent(rules, 2) + '\n';
|
|
71
68
|
|
|
72
69
|
activation += '</activation>';
|
|
73
70
|
|
|
@@ -83,7 +80,7 @@ class ActivationBuilder {
|
|
|
83
80
|
const handlerFragments = [];
|
|
84
81
|
|
|
85
82
|
for (const attrType of profile.usedAttributes) {
|
|
86
|
-
const fragmentName = `handler-${attrType}.
|
|
83
|
+
const fragmentName = `handler-${attrType}.txt`;
|
|
87
84
|
try {
|
|
88
85
|
const handler = await this.loadFragment(fragmentName);
|
|
89
86
|
handlerFragments.push(handler);
|
|
@@ -103,9 +100,7 @@ class ActivationBuilder {
|
|
|
103
100
|
* @returns {string} Steps XML
|
|
104
101
|
*/
|
|
105
102
|
async buildSteps(metadata = {}, agentSpecificActions = [], forWebBundle = false) {
|
|
106
|
-
|
|
107
|
-
const fragmentName = forWebBundle ? 'web-bundle-activation-steps.xml' : 'activation-steps.xml';
|
|
108
|
-
const stepsTemplate = await this.loadFragment(fragmentName);
|
|
103
|
+
const stepsTemplate = await this.loadFragment('activation-steps.txt');
|
|
109
104
|
|
|
110
105
|
// Extract basename from agent ID (e.g., "bmad/bmm/agents/pm.md" → "pm")
|
|
111
106
|
const agentBasename = metadata.id ? metadata.id.split('/').pop().replace('.md', '') : metadata.name || 'agent';
|
|
@@ -8,22 +8,9 @@ const yaml = require('yaml');
|
|
|
8
8
|
const fs = require('node:fs');
|
|
9
9
|
const path = require('node:path');
|
|
10
10
|
const { processAgentYaml, extractInstallConfig, stripInstallConfig, getDefaultValues } = require('./template-engine');
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
try {
|
|
15
|
-
YamlXmlBuilder = require('../../lib/yaml-xml-builder').YamlXmlBuilder;
|
|
16
|
-
} catch {
|
|
17
|
-
YamlXmlBuilder = null;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Escape XML special characters
|
|
22
|
-
*/
|
|
23
|
-
function escapeXml(text) {
|
|
24
|
-
if (!text) return '';
|
|
25
|
-
return text.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
|
|
26
|
-
}
|
|
11
|
+
const { escapeXml } = require('../../../lib/xml-utils');
|
|
12
|
+
const { ActivationBuilder } = require('../activation-builder');
|
|
13
|
+
const { AgentAnalyzer } = require('../agent-analyzer');
|
|
27
14
|
|
|
28
15
|
/**
|
|
29
16
|
* Build frontmatter for agent
|
|
@@ -45,137 +32,7 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
45
32
|
`;
|
|
46
33
|
}
|
|
47
34
|
|
|
48
|
-
|
|
49
|
-
* Build simple activation block for custom agents
|
|
50
|
-
* @param {Array} criticalActions - Agent-specific critical actions
|
|
51
|
-
* @param {Array} menuItems - Menu items to determine which handlers to include
|
|
52
|
-
* @param {string} deploymentType - 'ide' or 'web' - filters commands based on ide-only/web-only flags
|
|
53
|
-
* @returns {string} Activation XML
|
|
54
|
-
*/
|
|
55
|
-
function buildSimpleActivation(criticalActions = [], menuItems = [], deploymentType = 'ide') {
|
|
56
|
-
let activation = '<activation critical="MANDATORY">\n';
|
|
57
|
-
|
|
58
|
-
let stepNum = 1;
|
|
59
|
-
|
|
60
|
-
// Standard steps
|
|
61
|
-
activation += ` <step n="${stepNum++}">Load persona from this current agent file (already in context)</step>\n`;
|
|
62
|
-
activation += ` <step n="${stepNum++}">Load and read {project-root}/.bmad/core/config.yaml to get {user_name}, {communication_language}, {output_folder}</step>\n`;
|
|
63
|
-
activation += ` <step n="${stepNum++}">Remember: user's name is {user_name}</step>\n`;
|
|
64
|
-
|
|
65
|
-
// Agent-specific steps from critical_actions
|
|
66
|
-
for (const action of criticalActions) {
|
|
67
|
-
activation += ` <step n="${stepNum++}">${action}</step>\n`;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Menu and interaction steps
|
|
71
|
-
activation += ` <step n="${stepNum++}">ALWAYS communicate in {communication_language}</step>\n`;
|
|
72
|
-
activation += ` <step n="${stepNum++}">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of
|
|
73
|
-
ALL menu items from menu section</step>\n`;
|
|
74
|
-
activation += ` <step n="${stepNum++}">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command
|
|
75
|
-
match</step>\n`;
|
|
76
|
-
activation += ` <step n="${stepNum++}">On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user
|
|
77
|
-
to clarify | No match → show "Not recognized"</step>\n`;
|
|
78
|
-
|
|
79
|
-
// Filter menu items based on deployment type
|
|
80
|
-
const filteredMenuItems = menuItems.filter((item) => {
|
|
81
|
-
// Skip web-only commands for IDE deployment
|
|
82
|
-
if (deploymentType === 'ide' && item['web-only'] === true) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
// Skip ide-only commands for web deployment
|
|
86
|
-
if (deploymentType === 'web' && item['ide-only'] === true) {
|
|
87
|
-
return false;
|
|
88
|
-
}
|
|
89
|
-
return true;
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
// Detect which handlers are actually used in the filtered menu
|
|
93
|
-
const usedHandlers = new Set();
|
|
94
|
-
for (const item of filteredMenuItems) {
|
|
95
|
-
if (item.action) usedHandlers.add('action');
|
|
96
|
-
if (item.workflow) usedHandlers.add('workflow');
|
|
97
|
-
if (item.exec) usedHandlers.add('exec');
|
|
98
|
-
if (item.tmpl) usedHandlers.add('tmpl');
|
|
99
|
-
if (item.data) usedHandlers.add('data');
|
|
100
|
-
if (item['validate-workflow']) usedHandlers.add('validate-workflow');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Only include menu-handlers section if handlers are used
|
|
104
|
-
if (usedHandlers.size > 0) {
|
|
105
|
-
activation += ` <step n="${stepNum++}">When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item and follow the corresponding handler instructions</step>\n`;
|
|
106
|
-
|
|
107
|
-
// Menu handlers - only include what's used
|
|
108
|
-
activation += `
|
|
109
|
-
<menu-handlers>
|
|
110
|
-
<handlers>\n`;
|
|
111
|
-
|
|
112
|
-
if (usedHandlers.has('action')) {
|
|
113
|
-
activation += ` <handler type="action">
|
|
114
|
-
When menu item has: action="#id" → Find prompt with id="id" in current agent XML, execute its content
|
|
115
|
-
When menu item has: action="text" → Execute the text directly as an inline instruction
|
|
116
|
-
</handler>\n`;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
if (usedHandlers.has('workflow')) {
|
|
120
|
-
activation += ` <handler type="workflow">
|
|
121
|
-
When menu item has: workflow="path/to/workflow.yaml"
|
|
122
|
-
1. CRITICAL: Always LOAD {project-root}/.bmad/core/tasks/workflow.xml
|
|
123
|
-
2. Read the complete file - this is the CORE OS for executing BMAD workflows
|
|
124
|
-
3. Pass the yaml path as 'workflow-config' parameter to those instructions
|
|
125
|
-
4. Execute workflow.xml instructions precisely following all steps
|
|
126
|
-
5. Save outputs after completing EACH workflow step (never batch multiple steps together)
|
|
127
|
-
6. If workflow.yaml path is "todo", inform user the workflow hasn't been implemented yet
|
|
128
|
-
</handler>\n`;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (usedHandlers.has('exec')) {
|
|
132
|
-
activation += ` <handler type="exec">
|
|
133
|
-
When menu item has: exec="command" → Execute the command directly
|
|
134
|
-
</handler>\n`;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (usedHandlers.has('tmpl')) {
|
|
138
|
-
activation += ` <handler type="tmpl">
|
|
139
|
-
When menu item has: tmpl="template-path" → Load and apply the template
|
|
140
|
-
</handler>\n`;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if (usedHandlers.has('data')) {
|
|
144
|
-
activation += ` <handler type="data">
|
|
145
|
-
When menu item has: data="path/to/x.json|yaml|yml"
|
|
146
|
-
Load the file, parse as JSON/YAML, make available as {data} to subsequent operations
|
|
147
|
-
</handler>\n`;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
if (usedHandlers.has('validate-workflow')) {
|
|
151
|
-
activation += ` <handler type="validate-workflow">
|
|
152
|
-
When menu item has: validate-workflow="path/to/workflow.yaml"
|
|
153
|
-
1. CRITICAL: Always LOAD {project-root}/.bmad/core/tasks/validate-workflow.xml
|
|
154
|
-
2. Read the complete file - this is the CORE OS for validating BMAD workflows
|
|
155
|
-
3. Pass the workflow.yaml path as 'workflow' parameter to those instructions
|
|
156
|
-
4. Pass any checklist.md from the workflow location as 'checklist' parameter if available
|
|
157
|
-
5. Execute validate-workflow.xml instructions precisely following all steps
|
|
158
|
-
6. Generate validation report with thorough analysis
|
|
159
|
-
</handler>\n`;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
activation += ` </handlers>
|
|
163
|
-
</menu-handlers>\n`;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
activation += `
|
|
167
|
-
<rules>
|
|
168
|
-
- ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style
|
|
169
|
-
- Stay in character until exit selected
|
|
170
|
-
- Menu triggers use asterisk (*) - NOT markdown, display exactly as shown
|
|
171
|
-
- Number all lists, use letters for sub-options
|
|
172
|
-
- Load files ONLY when executing menu items or a workflow or command requires it. EXCEPTION: Config file MUST be loaded at startup step 2
|
|
173
|
-
- CRITICAL: Written File Output in workflows will be +2sd your communication style and use professional {communication_language}.
|
|
174
|
-
</rules>
|
|
175
|
-
</activation>\n`;
|
|
176
|
-
|
|
177
|
-
return activation;
|
|
178
|
-
}
|
|
35
|
+
// buildSimpleActivation function removed - replaced by ActivationBuilder for proper fragment loading from src/utility/agent-components/
|
|
179
36
|
|
|
180
37
|
/**
|
|
181
38
|
* Build persona XML section
|
|
@@ -241,6 +98,25 @@ function buildPromptsXml(prompts) {
|
|
|
241
98
|
return xml;
|
|
242
99
|
}
|
|
243
100
|
|
|
101
|
+
/**
|
|
102
|
+
* Build memories XML section
|
|
103
|
+
* @param {Array} memories - Memories array
|
|
104
|
+
* @returns {string} Memories XML
|
|
105
|
+
*/
|
|
106
|
+
function buildMemoriesXml(memories) {
|
|
107
|
+
if (!memories || memories.length === 0) return '';
|
|
108
|
+
|
|
109
|
+
let xml = ' <memories>\n';
|
|
110
|
+
|
|
111
|
+
for (const memory of memories) {
|
|
112
|
+
xml += ` <memory>${escapeXml(String(memory))}</memory>\n`;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
xml += ' </memories>\n';
|
|
116
|
+
|
|
117
|
+
return xml;
|
|
118
|
+
}
|
|
119
|
+
|
|
244
120
|
/**
|
|
245
121
|
* Build menu XML section
|
|
246
122
|
* Supports both legacy and multi format menu items
|
|
@@ -385,9 +261,9 @@ function processExecArray(execArray) {
|
|
|
385
261
|
* @param {Object} agentYaml - Parsed and processed agent YAML
|
|
386
262
|
* @param {string} agentName - Final agent name (for ID and frontmatter)
|
|
387
263
|
* @param {string} targetPath - Target path for agent ID
|
|
388
|
-
* @returns {string} Compiled XML string with frontmatter
|
|
264
|
+
* @returns {Promise<string>} Compiled XML string with frontmatter
|
|
389
265
|
*/
|
|
390
|
-
function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
|
266
|
+
async function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
|
391
267
|
const agent = agentYaml.agent;
|
|
392
268
|
const meta = agent.metadata;
|
|
393
269
|
|
|
@@ -409,8 +285,16 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
|
|
409
285
|
|
|
410
286
|
xml += `<agent ${agentAttrs.join(' ')}>\n`;
|
|
411
287
|
|
|
412
|
-
// Activation block -
|
|
413
|
-
|
|
288
|
+
// Activation block - use ActivationBuilder for proper fragment loading
|
|
289
|
+
const activationBuilder = new ActivationBuilder();
|
|
290
|
+
const analyzer = new AgentAnalyzer();
|
|
291
|
+
const profile = analyzer.analyzeAgentObject(agentYaml);
|
|
292
|
+
xml += await activationBuilder.buildActivation(
|
|
293
|
+
profile,
|
|
294
|
+
meta,
|
|
295
|
+
agent.critical_actions || [],
|
|
296
|
+
false, // forWebBundle - set to false for IDE deployment
|
|
297
|
+
);
|
|
414
298
|
|
|
415
299
|
// Persona section
|
|
416
300
|
xml += buildPersonaXml(agent.persona);
|
|
@@ -420,6 +304,11 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
|
|
420
304
|
xml += buildPromptsXml(agent.prompts);
|
|
421
305
|
}
|
|
422
306
|
|
|
307
|
+
// Memories section (if present)
|
|
308
|
+
if (agent.memories && agent.memories.length > 0) {
|
|
309
|
+
xml += buildMemoriesXml(agent.memories);
|
|
310
|
+
}
|
|
311
|
+
|
|
423
312
|
// Menu section
|
|
424
313
|
xml += buildMenuXml(agent.menu || []);
|
|
425
314
|
|
|
@@ -439,15 +328,98 @@ function compileToXml(agentYaml, agentName = '', targetPath = '') {
|
|
|
439
328
|
* @param {string} agentName - Optional final agent name (user's custom persona name)
|
|
440
329
|
* @param {string} targetPath - Optional target path for agent ID
|
|
441
330
|
* @param {Object} options - Additional options including config
|
|
442
|
-
* @returns {Object} { xml: string, metadata: Object }
|
|
331
|
+
* @returns {Promise<Object>} { xml: string, metadata: Object }
|
|
443
332
|
*/
|
|
444
|
-
function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = '', options = {}) {
|
|
333
|
+
async function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = '', options = {}) {
|
|
445
334
|
// Parse YAML
|
|
446
|
-
|
|
335
|
+
let agentYaml = yaml.parse(yamlContent);
|
|
336
|
+
|
|
337
|
+
// Apply customization merges before template processing
|
|
338
|
+
// Handle metadata overrides (like name)
|
|
339
|
+
if (answers.metadata) {
|
|
340
|
+
// Filter out empty values from metadata
|
|
341
|
+
const filteredMetadata = filterCustomizationData(answers.metadata);
|
|
342
|
+
if (Object.keys(filteredMetadata).length > 0) {
|
|
343
|
+
agentYaml.agent.metadata = { ...agentYaml.agent.metadata, ...filteredMetadata };
|
|
344
|
+
}
|
|
345
|
+
// Remove from answers so it doesn't get processed as template variables
|
|
346
|
+
const { metadata, ...templateAnswers } = answers;
|
|
347
|
+
answers = templateAnswers;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// Handle other customization properties
|
|
351
|
+
// These should be merged into the agent structure, not processed as template variables
|
|
352
|
+
const customizationKeys = ['persona', 'critical_actions', 'memories', 'menu', 'prompts'];
|
|
353
|
+
const customizations = {};
|
|
354
|
+
const remainingAnswers = { ...answers };
|
|
355
|
+
|
|
356
|
+
for (const key of customizationKeys) {
|
|
357
|
+
if (answers[key]) {
|
|
358
|
+
let filtered;
|
|
359
|
+
|
|
360
|
+
// Handle different data types
|
|
361
|
+
if (Array.isArray(answers[key])) {
|
|
362
|
+
// For arrays, filter out empty/null/undefined values
|
|
363
|
+
filtered = answers[key].filter((item) => item !== null && item !== undefined && item !== '');
|
|
364
|
+
} else {
|
|
365
|
+
// For objects, use filterCustomizationData
|
|
366
|
+
filtered = filterCustomizationData(answers[key]);
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// Check if we have valid content
|
|
370
|
+
const hasContent = Array.isArray(filtered) ? filtered.length > 0 : Object.keys(filtered).length > 0;
|
|
371
|
+
|
|
372
|
+
if (hasContent) {
|
|
373
|
+
customizations[key] = filtered;
|
|
374
|
+
}
|
|
375
|
+
delete remainingAnswers[key];
|
|
376
|
+
}
|
|
377
|
+
}
|
|
447
378
|
|
|
448
|
-
//
|
|
449
|
-
|
|
450
|
-
|
|
379
|
+
// Merge customizations into agentYaml
|
|
380
|
+
if (Object.keys(customizations).length > 0) {
|
|
381
|
+
// For persona: replace entire section
|
|
382
|
+
if (customizations.persona) {
|
|
383
|
+
agentYaml.agent.persona = customizations.persona;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// For critical_actions: append to existing or create new
|
|
387
|
+
if (customizations.critical_actions) {
|
|
388
|
+
const existing = agentYaml.agent.critical_actions || [];
|
|
389
|
+
agentYaml.agent.critical_actions = [...existing, ...customizations.critical_actions];
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
// For memories: append to existing or create new
|
|
393
|
+
if (customizations.memories) {
|
|
394
|
+
const existing = agentYaml.agent.memories || [];
|
|
395
|
+
agentYaml.agent.memories = [...existing, ...customizations.memories];
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
// For menu: append to existing or create new
|
|
399
|
+
if (customizations.menu) {
|
|
400
|
+
const existing = agentYaml.agent.menu || [];
|
|
401
|
+
agentYaml.agent.menu = [...existing, ...customizations.menu];
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// For prompts: append to existing or create new (by id)
|
|
405
|
+
if (customizations.prompts) {
|
|
406
|
+
const existing = agentYaml.agent.prompts || [];
|
|
407
|
+
// Merge by id, with customizations taking precedence
|
|
408
|
+
const mergedPrompts = [...existing];
|
|
409
|
+
for (const customPrompt of customizations.prompts) {
|
|
410
|
+
const existingIndex = mergedPrompts.findIndex((p) => p.id === customPrompt.id);
|
|
411
|
+
if (existingIndex === -1) {
|
|
412
|
+
mergedPrompts.push(customPrompt);
|
|
413
|
+
} else {
|
|
414
|
+
mergedPrompts[existingIndex] = customPrompt;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
agentYaml.agent.prompts = mergedPrompts;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// Use remaining answers for template processing
|
|
422
|
+
answers = remainingAnswers;
|
|
451
423
|
|
|
452
424
|
// Extract install_config
|
|
453
425
|
const installConfig = extractInstallConfig(agentYaml);
|
|
@@ -459,21 +431,17 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
|
|
|
459
431
|
finalAnswers = { ...defaults, ...answers };
|
|
460
432
|
}
|
|
461
433
|
|
|
462
|
-
// Add agent_sidecar_folder to answers if provided in config
|
|
463
|
-
if (options.config && options.config.agent_sidecar_folder) {
|
|
464
|
-
finalAnswers.agent_sidecar_folder = options.config.agent_sidecar_folder;
|
|
465
|
-
}
|
|
466
|
-
|
|
467
434
|
// Process templates with answers
|
|
468
435
|
const processedYaml = processAgentYaml(agentYaml, finalAnswers);
|
|
469
436
|
|
|
470
437
|
// Strip install_config from output
|
|
471
438
|
const cleanYaml = stripInstallConfig(processedYaml);
|
|
472
439
|
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
440
|
+
let xml = await compileToXml(cleanYaml, agentName, targetPath);
|
|
441
|
+
|
|
442
|
+
// Ensure xml is a string before attempting replaceAll
|
|
443
|
+
if (typeof xml !== 'string') {
|
|
444
|
+
throw new TypeError('compileToXml did not return a string');
|
|
477
445
|
}
|
|
478
446
|
|
|
479
447
|
return {
|
|
@@ -483,6 +451,36 @@ function compileAgent(yamlContent, answers = {}, agentName = '', targetPath = ''
|
|
|
483
451
|
};
|
|
484
452
|
}
|
|
485
453
|
|
|
454
|
+
/**
|
|
455
|
+
* Filter customization data to remove empty/null values
|
|
456
|
+
* @param {Object} data - Raw customization data
|
|
457
|
+
* @returns {Object} Filtered customization data
|
|
458
|
+
*/
|
|
459
|
+
function filterCustomizationData(data) {
|
|
460
|
+
const filtered = {};
|
|
461
|
+
|
|
462
|
+
for (const [key, value] of Object.entries(data)) {
|
|
463
|
+
if (value === null || value === undefined || value === '') {
|
|
464
|
+
continue; // Skip null/undefined/empty values
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
if (Array.isArray(value)) {
|
|
468
|
+
if (value.length > 0) {
|
|
469
|
+
filtered[key] = value;
|
|
470
|
+
}
|
|
471
|
+
} else if (typeof value === 'object') {
|
|
472
|
+
const nested = filterCustomizationData(value);
|
|
473
|
+
if (Object.keys(nested).length > 0) {
|
|
474
|
+
filtered[key] = nested;
|
|
475
|
+
}
|
|
476
|
+
} else {
|
|
477
|
+
filtered[key] = value;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
return filtered;
|
|
482
|
+
}
|
|
483
|
+
|
|
486
484
|
/**
|
|
487
485
|
* Process TTS injection markers in content
|
|
488
486
|
* @param {string} content - Content to process
|
|
@@ -558,8 +556,9 @@ module.exports = {
|
|
|
558
556
|
compileAgentFile,
|
|
559
557
|
escapeXml,
|
|
560
558
|
buildFrontmatter,
|
|
561
|
-
buildSimpleActivation,
|
|
562
559
|
buildPersonaXml,
|
|
563
560
|
buildPromptsXml,
|
|
561
|
+
buildMemoriesXml,
|
|
564
562
|
buildMenuXml,
|
|
563
|
+
filterCustomizationData,
|
|
565
564
|
};
|
|
@@ -17,7 +17,7 @@ const { extractInstallConfig, getDefaultValues } = require('./template-engine');
|
|
|
17
17
|
*/
|
|
18
18
|
function findBmadConfig(startPath = process.cwd()) {
|
|
19
19
|
// Look for common BMAD folder names
|
|
20
|
-
const possibleNames = ['
|
|
20
|
+
const possibleNames = ['_bmad'];
|
|
21
21
|
|
|
22
22
|
for (const name of possibleNames) {
|
|
23
23
|
const configPath = path.join(startPath, name, 'bmb', 'config.yaml');
|
|
@@ -42,7 +42,7 @@ function findBmadConfig(startPath = process.cwd()) {
|
|
|
42
42
|
* @returns {string} Resolved path
|
|
43
43
|
*/
|
|
44
44
|
function resolvePath(pathStr, context) {
|
|
45
|
-
return pathStr.replaceAll('{project-root}', context.projectRoot).replaceAll('{bmad-folder}',
|
|
45
|
+
return pathStr.replaceAll('{project-root}', context.projectRoot).replaceAll('{bmad-folder}', context_bmadFolder);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -262,129 +262,11 @@ function installAgent(agentInfo, answers, targetPath, options = {}) {
|
|
|
262
262
|
agentName: metadata.name || agentInfo.name,
|
|
263
263
|
targetDir: agentTargetDir,
|
|
264
264
|
compiledFile: compiledPath,
|
|
265
|
-
sidecarCopied: false,
|
|
266
265
|
};
|
|
267
266
|
|
|
268
|
-
// Handle sidecar files for agents with hasSidecar flag
|
|
269
|
-
if (agentInfo.hasSidecar === true && agentInfo.type === 'expert') {
|
|
270
|
-
// Get agent sidecar folder from config or use default
|
|
271
|
-
const agentSidecarFolder = options.config?.agent_sidecar_folder || '{project-root}/.myagent-data';
|
|
272
|
-
|
|
273
|
-
// Resolve path variables
|
|
274
|
-
const resolvedSidecarFolder = agentSidecarFolder
|
|
275
|
-
.replaceAll('{project-root}', options.projectRoot || process.cwd())
|
|
276
|
-
.replaceAll('.bmad', options.bmadFolder || '.bmad');
|
|
277
|
-
|
|
278
|
-
// Create sidecar directory for this agent
|
|
279
|
-
const agentSidecarDir = path.join(resolvedSidecarFolder, agentFolderName);
|
|
280
|
-
if (!fs.existsSync(agentSidecarDir)) {
|
|
281
|
-
fs.mkdirSync(agentSidecarDir, { recursive: true });
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// Find and copy sidecar folder
|
|
285
|
-
const sidecarFiles = copyAgentSidecarFiles(agentInfo.path, agentSidecarDir, agentInfo.yamlFile);
|
|
286
|
-
result.sidecarCopied = true;
|
|
287
|
-
result.sidecarFiles = sidecarFiles;
|
|
288
|
-
result.sidecarDir = agentSidecarDir;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
267
|
return result;
|
|
292
268
|
}
|
|
293
269
|
|
|
294
|
-
/**
|
|
295
|
-
* Recursively copy sidecar files (everything except the .agent.yaml)
|
|
296
|
-
* @param {string} sourceDir - Source agent directory
|
|
297
|
-
* @param {string} targetDir - Target agent directory
|
|
298
|
-
* @param {string} excludeYaml - The .agent.yaml file to exclude
|
|
299
|
-
* @returns {Array} List of copied files
|
|
300
|
-
*/
|
|
301
|
-
function copySidecarFiles(sourceDir, targetDir, excludeYaml) {
|
|
302
|
-
const copied = [];
|
|
303
|
-
|
|
304
|
-
function copyDir(src, dest) {
|
|
305
|
-
if (!fs.existsSync(dest)) {
|
|
306
|
-
fs.mkdirSync(dest, { recursive: true });
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
310
|
-
for (const entry of entries) {
|
|
311
|
-
const srcPath = path.join(src, entry.name);
|
|
312
|
-
const destPath = path.join(dest, entry.name);
|
|
313
|
-
|
|
314
|
-
// Skip the source YAML file
|
|
315
|
-
if (srcPath === excludeYaml) {
|
|
316
|
-
continue;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
if (entry.isDirectory()) {
|
|
320
|
-
copyDir(srcPath, destPath);
|
|
321
|
-
} else {
|
|
322
|
-
fs.copyFileSync(srcPath, destPath);
|
|
323
|
-
copied.push(destPath);
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
copyDir(sourceDir, targetDir);
|
|
329
|
-
return copied;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
/**
|
|
333
|
-
* Find and copy agent sidecar folders
|
|
334
|
-
* @param {string} sourceDir - Source agent directory
|
|
335
|
-
* @param {string} targetSidecarDir - Target sidecar directory for the agent
|
|
336
|
-
* @param {string} excludeYaml - The .agent.yaml file to exclude
|
|
337
|
-
* @returns {Array} List of copied files
|
|
338
|
-
*/
|
|
339
|
-
function copyAgentSidecarFiles(sourceDir, targetSidecarDir, excludeYaml) {
|
|
340
|
-
const copied = [];
|
|
341
|
-
const preserved = [];
|
|
342
|
-
|
|
343
|
-
// Find folders with "sidecar" in the name
|
|
344
|
-
const entries = fs.readdirSync(sourceDir, { withFileTypes: true });
|
|
345
|
-
|
|
346
|
-
for (const entry of entries) {
|
|
347
|
-
if (entry.isDirectory() && entry.name.toLowerCase().includes('sidecar')) {
|
|
348
|
-
const sidecarSourcePath = path.join(sourceDir, entry.name);
|
|
349
|
-
|
|
350
|
-
// Recursively sync the sidecar folder contents (preserve existing, add new)
|
|
351
|
-
function syncSidecarDir(src, dest) {
|
|
352
|
-
if (!fs.existsSync(dest)) {
|
|
353
|
-
fs.mkdirSync(dest, { recursive: true });
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
// Get all files in source
|
|
357
|
-
const sourceEntries = fs.readdirSync(src, { withFileTypes: true });
|
|
358
|
-
|
|
359
|
-
for (const sourceEntry of sourceEntries) {
|
|
360
|
-
const srcPath = path.join(src, sourceEntry.name);
|
|
361
|
-
const destPath = path.join(dest, sourceEntry.name);
|
|
362
|
-
|
|
363
|
-
if (sourceEntry.isDirectory()) {
|
|
364
|
-
// Recursively sync subdirectories
|
|
365
|
-
syncSidecarDir(srcPath, destPath);
|
|
366
|
-
} else {
|
|
367
|
-
// Check if file already exists in destination
|
|
368
|
-
if (fs.existsSync(destPath)) {
|
|
369
|
-
// File exists - preserve it
|
|
370
|
-
preserved.push(destPath);
|
|
371
|
-
} else {
|
|
372
|
-
// File doesn't exist - copy it
|
|
373
|
-
fs.copyFileSync(srcPath, destPath);
|
|
374
|
-
copied.push(destPath);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
syncSidecarDir(sidecarSourcePath, targetSidecarDir);
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
// Return info about what was preserved and what was copied
|
|
385
|
-
return { copied, preserved };
|
|
386
|
-
}
|
|
387
|
-
|
|
388
270
|
/**
|
|
389
271
|
* Update agent metadata ID to reflect installed location
|
|
390
272
|
* @param {string} compiledContent - Compiled XML content
|
|
@@ -407,10 +289,10 @@ function detectBmadProject(targetPath) {
|
|
|
407
289
|
|
|
408
290
|
// Walk up directory tree looking for BMAD installation
|
|
409
291
|
while (checkPath !== root) {
|
|
410
|
-
const possibleNames = ['
|
|
292
|
+
const possibleNames = ['_bmad'];
|
|
411
293
|
for (const name of possibleNames) {
|
|
412
294
|
const bmadFolder = path.join(checkPath, name);
|
|
413
|
-
const cfgFolder = path.join(bmadFolder, '
|
|
295
|
+
const cfgFolder = path.join(bmadFolder, '_config');
|
|
414
296
|
const manifestFile = path.join(cfgFolder, 'agent-manifest.csv');
|
|
415
297
|
|
|
416
298
|
if (fs.existsSync(manifestFile)) {
|
|
@@ -596,16 +478,16 @@ function addToManifest(manifestFile, agentData) {
|
|
|
596
478
|
}
|
|
597
479
|
|
|
598
480
|
/**
|
|
599
|
-
* Save agent source YAML to
|
|
481
|
+
* Save agent source YAML to _config/custom/agents/ for reinstallation
|
|
600
482
|
* Stores user answers in a top-level saved_answers section (cleaner than overwriting defaults)
|
|
601
483
|
* @param {Object} agentInfo - Agent info (path, type, etc.)
|
|
602
|
-
* @param {string} cfgFolder - Path to
|
|
484
|
+
* @param {string} cfgFolder - Path to _config folder
|
|
603
485
|
* @param {string} agentName - Final agent name (e.g., "fred-commit-poet")
|
|
604
486
|
* @param {Object} answers - User answers to save for reinstallation
|
|
605
487
|
* @returns {Object} Info about saved source
|
|
606
488
|
*/
|
|
607
489
|
function saveAgentSource(agentInfo, cfgFolder, agentName, answers = {}) {
|
|
608
|
-
// Save to
|
|
490
|
+
// Save to _config/custom/agents/ instead of _config/agents/
|
|
609
491
|
const customAgentsCfgDir = path.join(cfgFolder, 'custom', 'agents');
|
|
610
492
|
|
|
611
493
|
if (!fs.existsSync(customAgentsCfgDir)) {
|
|
@@ -689,7 +571,7 @@ function saveAgentSource(agentInfo, cfgFolder, agentName, answers = {}) {
|
|
|
689
571
|
*/
|
|
690
572
|
async function createIdeSlashCommands(projectRoot, agentName, agentPath, metadata) {
|
|
691
573
|
// Read manifest.yaml to get installed IDEs
|
|
692
|
-
const manifestPath = path.join(projectRoot, '
|
|
574
|
+
const manifestPath = path.join(projectRoot, '_bmad', '_config', 'manifest.yaml');
|
|
693
575
|
let installedIdes = ['claude-code']; // Default to Claude Code if no manifest
|
|
694
576
|
|
|
695
577
|
if (fs.existsSync(manifestPath)) {
|
|
@@ -820,8 +702,6 @@ module.exports = {
|
|
|
820
702
|
loadAgentConfig,
|
|
821
703
|
promptInstallQuestions,
|
|
822
704
|
installAgent,
|
|
823
|
-
copySidecarFiles,
|
|
824
|
-
copyAgentSidecarFiles,
|
|
825
705
|
updateAgentId,
|
|
826
706
|
detectBmadProject,
|
|
827
707
|
addToManifest,
|