bmad-stella 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FORK_GUIDE.md +106 -0
- package/.github/FUNDING.yaml +15 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/.github/workflows/discord.yaml +26 -0
- package/.github/workflows/format-check.yaml +44 -0
- package/.github/workflows/manual-release.yaml +174 -0
- package/.github/workflows/pr-validation.yaml +55 -0
- package/.husky/pre-commit +3 -0
- package/.vscode/settings.json +69 -0
- package/CHANGELOG.md +686 -0
- package/CONTRIBUTING.md +243 -0
- package/LICENSE +26 -0
- package/PR-opencode-agents-generator.md +40 -0
- package/README.md +159 -0
- package/REVIEWER-AGENT-SIMPLE.md +66 -0
- package/bmad-core/agent-teams/team-all.yaml +15 -0
- package/bmad-core/agent-teams/team-fullstack.yaml +19 -0
- package/bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
- package/bmad-core/agent-teams/team-no-ui.yaml +14 -0
- package/bmad-core/agents/analyst.md +84 -0
- package/bmad-core/agents/architect.md +85 -0
- package/bmad-core/agents/bmad-master.md +110 -0
- package/bmad-core/agents/bmad-orchestrator.md +147 -0
- package/bmad-core/agents/dev.md +96 -0
- package/bmad-core/agents/planner.md +86 -0
- package/bmad-core/agents/pm.md +84 -0
- package/bmad-core/agents/po.md +79 -0
- package/bmad-core/agents/qa.md +80 -0
- package/bmad-core/agents/reviewer.md +61 -0
- package/bmad-core/agents/sm.md +65 -0
- package/bmad-core/agents/ux-expert.md +69 -0
- package/bmad-core/checklists/architect-checklist.md +440 -0
- package/bmad-core/checklists/change-checklist.md +184 -0
- package/bmad-core/checklists/planner-validation-checklist.md +167 -0
- package/bmad-core/checklists/pm-checklist.md +372 -0
- package/bmad-core/checklists/po-master-checklist.md +434 -0
- package/bmad-core/checklists/story-dod-checklist.md +96 -0
- package/bmad-core/checklists/story-draft-checklist.md +155 -0
- package/bmad-core/checklists/task-dod-checklist.md +110 -0
- package/bmad-core/core-config.yaml +26 -0
- package/bmad-core/data/bmad-kb.md +809 -0
- package/bmad-core/data/brainstorming-techniques.md +38 -0
- package/bmad-core/data/elicitation-methods.md +156 -0
- package/bmad-core/data/technical-preferences.md +5 -0
- package/bmad-core/data/test-levels-framework.md +148 -0
- package/bmad-core/data/test-priorities-matrix.md +174 -0
- package/bmad-core/tasks/advanced-elicitation.md +119 -0
- package/bmad-core/tasks/apply-qa-fixes.md +150 -0
- package/bmad-core/tasks/brownfield-create-epic.md +162 -0
- package/bmad-core/tasks/brownfield-create-story.md +149 -0
- package/bmad-core/tasks/correct-course.md +72 -0
- package/bmad-core/tasks/create-brownfield-story.md +314 -0
- package/bmad-core/tasks/create-deep-research-prompt.md +280 -0
- package/bmad-core/tasks/create-implementation-plan.md +298 -0
- package/bmad-core/tasks/create-next-story.md +114 -0
- package/bmad-core/tasks/decompose-task.md +162 -0
- package/bmad-core/tasks/document-project.md +345 -0
- package/bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
- package/bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
- package/bmad-core/tasks/identify-dependencies.md +347 -0
- package/bmad-core/tasks/implement-test.md +188 -0
- package/bmad-core/tasks/index-docs.md +175 -0
- package/bmad-core/tasks/kb-mode-interaction.md +77 -0
- package/bmad-core/tasks/nfr-assess.md +345 -0
- package/bmad-core/tasks/qa-gate.md +163 -0
- package/bmad-core/tasks/review-and-improve.md +95 -0
- package/bmad-core/tasks/review-story.md +316 -0
- package/bmad-core/tasks/risk-profile.md +355 -0
- package/bmad-core/tasks/shard-doc.md +187 -0
- package/bmad-core/tasks/test-design.md +176 -0
- package/bmad-core/tasks/trace-requirements.md +266 -0
- package/bmad-core/tasks/validate-next-story.md +136 -0
- package/bmad-core/templates/architecture-tmpl.yaml +651 -0
- package/bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/bmad-core/templates/brownfield-architecture-tmpl.yaml +477 -0
- package/bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
- package/bmad-core/templates/competitor-analysis-tmpl.yaml +307 -0
- package/bmad-core/templates/front-end-architecture-tmpl.yaml +219 -0
- package/bmad-core/templates/front-end-spec-tmpl.yaml +350 -0
- package/bmad-core/templates/fullstack-architecture-tmpl.yaml +824 -0
- package/bmad-core/templates/implementation-plan-tmpl.yaml +224 -0
- package/bmad-core/templates/market-research-tmpl.yaml +253 -0
- package/bmad-core/templates/prd-tmpl.yaml +203 -0
- package/bmad-core/templates/project-brief-tmpl.yaml +222 -0
- package/bmad-core/templates/qa-gate-tmpl.yaml +103 -0
- package/bmad-core/templates/story-tmpl.yaml +138 -0
- package/bmad-core/workflows/brownfield-fullstack.yaml +298 -0
- package/bmad-core/workflows/brownfield-service.yaml +188 -0
- package/bmad-core/workflows/brownfield-ui.yaml +198 -0
- package/bmad-core/workflows/greenfield-fullstack.yaml +241 -0
- package/bmad-core/workflows/greenfield-service.yaml +207 -0
- package/bmad-core/workflows/greenfield-ui.yaml +236 -0
- package/common/tasks/create-doc.md +103 -0
- package/common/tasks/execute-checklist.md +88 -0
- package/common/utils/bmad-doc-template.md +327 -0
- package/common/utils/workflow-management.md +71 -0
- package/dist/agents/analyst.txt +2907 -0
- package/dist/agents/architect.txt +3567 -0
- package/dist/agents/bmad-master.txt +8828 -0
- package/dist/agents/bmad-orchestrator.txt +1520 -0
- package/dist/agents/dev.txt +576 -0
- package/dist/agents/pm.txt +2226 -0
- package/dist/agents/po.txt +1359 -0
- package/dist/agents/qa.txt +2001 -0
- package/dist/agents/sm.txt +667 -0
- package/dist/agents/ux-expert.txt +703 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2386 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.txt +1627 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.txt +822 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/teams/phaser-2d-nodejs-game-team.txt +11008 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +4031 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3717 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +456 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.txt +982 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +15450 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/beta-reader.txt +921 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/book-critic.txt +81 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/character-psychologist.txt +886 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/cover-designer.txt +85 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/dialog-specialist.txt +903 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/editor.txt +837 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/genre-specialist.txt +989 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/narrative-designer.txt +888 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/plot-architect.txt +1173 -0
- package/dist/expansion-packs/bmad-creative-writing/agents/world-builder.txt +914 -0
- package/dist/expansion-packs/bmad-creative-writing/teams/agent-team.txt +6511 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.txt +1513 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-analyst.txt +3190 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-architect.txt +4499 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-designer.txt +3925 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-developer.txt +666 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-pm.txt +2381 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-po.txt +1612 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-qa.txt +1741 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-sm.txt +1208 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.txt +958 -0
- package/dist/expansion-packs/bmad-godot-game-dev/teams/godot-game-team.txt +27717 -0
- package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2087 -0
- package/dist/teams/team-all.txt +12911 -0
- package/dist/teams/team-fullstack.txt +10477 -0
- package/dist/teams/team-ide-minimal.txt +5299 -0
- package/dist/teams/team-no-ui.txt +9029 -0
- package/docs/GUIDING-PRINCIPLES.md +91 -0
- package/docs/core-architecture.md +219 -0
- package/docs/enhanced-ide-development-workflow.md +248 -0
- package/docs/expansion-packs.md +200 -0
- package/docs/flattener.md +91 -0
- package/docs/how-to-contribute-with-pull-requests.md +158 -0
- package/docs/stella-user-guide.md +637 -0
- package/docs/user-guide.md +577 -0
- package/docs/versioning-and-releases.md +155 -0
- package/docs/versions.md +48 -0
- package/docs/working-in-the-brownfield.md +606 -0
- package/eslint.config.mjs +119 -0
- package/expansion-packs/README.md +3 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agent-teams/phaser-2d-nodejs-game-team.yaml +14 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.md +73 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-developer.md +80 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/agents/game-sm.md +66 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-design-checklist.md +203 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/checklists/game-story-dod-checklist.md +162 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/config.yaml +9 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/data/bmad-kb.md +252 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/data/development-guidelines.md +649 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/advanced-elicitation.md +112 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/create-game-story.md +218 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/tasks/game-design-brainstorming.md +292 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-architecture-tmpl.yaml +614 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-brief-tmpl.yaml +357 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml +344 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/game-story-tmpl.yaml +254 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-dev-greenfield.yaml +184 -0
- package/expansion-packs/bmad-2d-phaser-game-dev/workflows/game-prototype.yaml +176 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agent-teams/unity-2d-game-team.yaml +15 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.md +82 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.md +79 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.md +80 -0
- package/expansion-packs/bmad-2d-unity-game-dev/agents/game-sm.md +67 -0
- package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-architect-checklist.md +393 -0
- package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-change-checklist.md +205 -0
- package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-design-checklist.md +203 -0
- package/expansion-packs/bmad-2d-unity-game-dev/checklists/game-story-dod-checklist.md +126 -0
- package/expansion-packs/bmad-2d-unity-game-dev/config.yaml +7 -0
- package/expansion-packs/bmad-2d-unity-game-dev/data/bmad-kb.md +771 -0
- package/expansion-packs/bmad-2d-unity-game-dev/data/development-guidelines.md +588 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/advanced-elicitation.md +112 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/correct-course-game.md +143 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/create-game-story.md +186 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/game-design-brainstorming.md +292 -0
- package/expansion-packs/bmad-2d-unity-game-dev/tasks/validate-game-story.md +202 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-architecture-tmpl.yaml +1031 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-brief-tmpl.yaml +357 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml +706 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/game-story-tmpl.yaml +257 -0
- package/expansion-packs/bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml +485 -0
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-dev-greenfield.yaml +184 -0
- package/expansion-packs/bmad-2d-unity-game-dev/workflows/game-prototype.yaml +176 -0
- package/expansion-packs/bmad-creative-writing/README.md +146 -0
- package/expansion-packs/bmad-creative-writing/agent-teams/agent-team.yaml +20 -0
- package/expansion-packs/bmad-creative-writing/agents/beta-reader.md +94 -0
- package/expansion-packs/bmad-creative-writing/agents/book-critic.md +40 -0
- package/expansion-packs/bmad-creative-writing/agents/character-psychologist.md +93 -0
- package/expansion-packs/bmad-creative-writing/agents/cover-designer.md +46 -0
- package/expansion-packs/bmad-creative-writing/agents/dialog-specialist.md +92 -0
- package/expansion-packs/bmad-creative-writing/agents/editor.md +93 -0
- package/expansion-packs/bmad-creative-writing/agents/genre-specialist.md +95 -0
- package/expansion-packs/bmad-creative-writing/agents/narrative-designer.md +93 -0
- package/expansion-packs/bmad-creative-writing/agents/plot-architect.md +95 -0
- package/expansion-packs/bmad-creative-writing/agents/world-builder.md +94 -0
- package/expansion-packs/bmad-creative-writing/checklists/beta-feedback-closure-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/character-consistency-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/comedic-timing-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/cyberpunk-aesthetic-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/ebook-formatting-checklist.md +21 -0
- package/expansion-packs/bmad-creative-writing/checklists/epic-poetry-meter-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/fantasy-magic-system-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/foreshadowing-payoff-checklist.md +22 -0
- package/expansion-packs/bmad-creative-writing/checklists/genre-tropes-checklist.md +22 -0
- package/expansion-packs/bmad-creative-writing/checklists/historical-accuracy-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/horror-suspense-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/kdp-cover-ready-checklist.md +25 -0
- package/expansion-packs/bmad-creative-writing/checklists/line-edit-quality-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/marketing-copy-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/mystery-clue-trail-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/orbital-mechanics-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/plot-structure-checklist.md +59 -0
- package/expansion-packs/bmad-creative-writing/checklists/publication-readiness-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/romance-emotional-beats-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/scene-quality-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/scifi-technology-plausibility-checklist.md +22 -0
- package/expansion-packs/bmad-creative-writing/checklists/sensitivity-representation-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/steampunk-gadget-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/thriller-pacing-stakes-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/timeline-continuity-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/world-building-continuity-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/checklists/ya-appropriateness-checklist.md +23 -0
- package/expansion-packs/bmad-creative-writing/config.yaml +12 -0
- package/expansion-packs/bmad-creative-writing/data/bmad-kb.md +209 -0
- package/expansion-packs/bmad-creative-writing/data/story-structures.md +67 -0
- package/expansion-packs/bmad-creative-writing/docs/brief.md +212 -0
- package/expansion-packs/bmad-creative-writing/tasks/advanced-elicitation.md +119 -0
- package/expansion-packs/bmad-creative-writing/tasks/analyze-reader-feedback.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/analyze-story-structure.md +67 -0
- package/expansion-packs/bmad-creative-writing/tasks/assemble-kdp-package.md +29 -0
- package/expansion-packs/bmad-creative-writing/tasks/brainstorm-premise.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/build-world.md +24 -0
- package/expansion-packs/bmad-creative-writing/tasks/character-depth-pass.md +22 -0
- package/expansion-packs/bmad-creative-writing/tasks/create-doc.md +103 -0
- package/expansion-packs/bmad-creative-writing/tasks/create-draft-section.md +26 -0
- package/expansion-packs/bmad-creative-writing/tasks/critical-review.md +26 -0
- package/expansion-packs/bmad-creative-writing/tasks/develop-character.md +24 -0
- package/expansion-packs/bmad-creative-writing/tasks/execute-checklist.md +88 -0
- package/expansion-packs/bmad-creative-writing/tasks/expand-premise.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/expand-synopsis.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/final-polish.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/generate-cover-brief.md +25 -0
- package/expansion-packs/bmad-creative-writing/tasks/generate-cover-prompts.md +26 -0
- package/expansion-packs/bmad-creative-writing/tasks/generate-scene-list.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/incorporate-feedback.md +25 -0
- package/expansion-packs/bmad-creative-writing/tasks/outline-scenes.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/provide-feedback.md +24 -0
- package/expansion-packs/bmad-creative-writing/tasks/publish-chapter.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/quick-feedback.md +22 -0
- package/expansion-packs/bmad-creative-writing/tasks/select-next-arc.md +23 -0
- package/expansion-packs/bmad-creative-writing/tasks/workshop-dialog.md +64 -0
- package/expansion-packs/bmad-creative-writing/templates/beta-feedback-form.yaml +97 -0
- package/expansion-packs/bmad-creative-writing/templates/chapter-draft-tmpl.yaml +82 -0
- package/expansion-packs/bmad-creative-writing/templates/character-profile-tmpl.yaml +92 -0
- package/expansion-packs/bmad-creative-writing/templates/cover-design-brief-tmpl.yaml +98 -0
- package/expansion-packs/bmad-creative-writing/templates/premise-brief-tmpl.yaml +78 -0
- package/expansion-packs/bmad-creative-writing/templates/scene-list-tmpl.yaml +55 -0
- package/expansion-packs/bmad-creative-writing/templates/story-outline-tmpl.yaml +96 -0
- package/expansion-packs/bmad-creative-writing/templates/world-guide-tmpl.yaml +89 -0
- package/expansion-packs/bmad-creative-writing/workflows/book-cover-design-workflow.md +218 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-greenfield-workflow.yaml +56 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-serial-workflow.yaml +50 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-snowflake-workflow.yaml +69 -0
- package/expansion-packs/bmad-creative-writing/workflows/novel-writing.yaml +91 -0
- package/expansion-packs/bmad-creative-writing/workflows/screenplay-development.yaml +85 -0
- package/expansion-packs/bmad-creative-writing/workflows/series-planning.yaml +78 -0
- package/expansion-packs/bmad-creative-writing/workflows/short-story-creation.yaml +64 -0
- package/expansion-packs/bmad-godot-game-dev/README.md +244 -0
- package/expansion-packs/bmad-godot-game-dev/agent-teams/godot-game-team.yaml +18 -0
- package/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.md +147 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-analyst.md +84 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-architect.md +146 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-designer.md +78 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-developer.md +124 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-pm.md +82 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-po.md +115 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-qa.md +159 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-sm.md +66 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.md +75 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-architect-checklist.md +377 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-change-checklist.md +250 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-design-checklist.md +225 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-po-checklist.md +448 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-story-dod-checklist.md +202 -0
- package/expansion-packs/bmad-godot-game-dev/config.yaml +30 -0
- package/expansion-packs/bmad-godot-game-dev/data/bmad-kb.md +811 -0
- package/expansion-packs/bmad-godot-game-dev/data/brainstorming-techniques.md +36 -0
- package/expansion-packs/bmad-godot-game-dev/data/development-guidelines.md +893 -0
- package/expansion-packs/bmad-godot-game-dev/data/elicitation-methods.md +156 -0
- package/expansion-packs/bmad-godot-game-dev/data/technical-preferences.md +3 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/advanced-elicitation.md +110 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/apply-qa-fixes.md +224 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-epic.md +162 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-story.md +149 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/correct-course-game.md +159 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/create-deep-research-prompt.md +278 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/create-doc.md +103 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/create-game-story.md +202 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/document-project.md +343 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/execute-checklist.md +88 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/facilitate-brainstorming-session.md +136 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-epic.md +160 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-story.md +147 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-design-brainstorming.md +290 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-risk-profile.md +368 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-test-design.md +219 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/generate-ai-frontend-prompt.md +51 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/kb-mode-interaction.md +77 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/review-game-story.md +364 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/shard-doc.md +187 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/validate-game-story.md +208 -0
- package/expansion-packs/bmad-godot-game-dev/templates/brainstorming-output-tmpl.yaml +156 -0
- package/expansion-packs/bmad-godot-game-dev/templates/brownfield-prd-tmpl.yaml +281 -0
- package/expansion-packs/bmad-godot-game-dev/templates/competitor-analysis-tmpl.yaml +306 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-architecture-tmpl.yaml +1111 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-brief-tmpl.yaml +356 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-design-doc-tmpl.yaml +724 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml +209 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-qa-gate-tmpl.yaml +186 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-story-tmpl.yaml +406 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-ui-spec-tmpl.yaml +601 -0
- package/expansion-packs/bmad-godot-game-dev/templates/level-design-doc-tmpl.yaml +620 -0
- package/expansion-packs/bmad-godot-game-dev/templates/market-research-tmpl.yaml +418 -0
- package/expansion-packs/bmad-godot-game-dev/utils/bmad-doc-template.md +327 -0
- package/expansion-packs/bmad-godot-game-dev/utils/workflow-management.md +71 -0
- package/expansion-packs/bmad-godot-game-dev/workflows/game-dev-greenfield.yaml +245 -0
- package/expansion-packs/bmad-godot-game-dev/workflows/game-prototype.yaml +213 -0
- package/expansion-packs/bmad-infrastructure-devops/README.md +147 -0
- package/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.md +73 -0
- package/expansion-packs/bmad-infrastructure-devops/checklists/infrastructure-checklist.md +486 -0
- package/expansion-packs/bmad-infrastructure-devops/config.yaml +10 -0
- package/expansion-packs/bmad-infrastructure-devops/data/bmad-kb.md +307 -0
- package/expansion-packs/bmad-infrastructure-devops/tasks/review-infrastructure.md +161 -0
- package/expansion-packs/bmad-infrastructure-devops/tasks/validate-infrastructure.md +155 -0
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-architecture-tmpl.yaml +425 -0
- package/expansion-packs/bmad-infrastructure-devops/templates/infrastructure-platform-from-arch-tmpl.yaml +630 -0
- package/package.json +116 -0
- package/prettier.config.mjs +32 -0
- package/tools/bmad-npx-wrapper.js +39 -0
- package/tools/builders/web-builder.js +675 -0
- package/tools/bump-all-versions.js +115 -0
- package/tools/bump-expansion-version.js +90 -0
- package/tools/cli.js +152 -0
- package/tools/flattener/aggregate.js +76 -0
- package/tools/flattener/binary.js +80 -0
- package/tools/flattener/discovery.js +71 -0
- package/tools/flattener/files.js +35 -0
- package/tools/flattener/ignoreRules.js +178 -0
- package/tools/flattener/main.js +568 -0
- package/tools/flattener/projectRoot.js +206 -0
- package/tools/flattener/prompts.js +44 -0
- package/tools/flattener/stats.helpers.js +395 -0
- package/tools/flattener/stats.js +80 -0
- package/tools/flattener/test-matrix.js +413 -0
- package/tools/flattener/xml.js +88 -0
- package/tools/implement-fork-friendly-ci.sh +229 -0
- package/tools/installer/README.md +8 -0
- package/tools/installer/bin/bmad.js +633 -0
- package/tools/installer/config/ide-agent-config.yaml +58 -0
- package/tools/installer/config/install.config.yaml +184 -0
- package/tools/installer/lib/config-loader.js +257 -0
- package/tools/installer/lib/dependency-manager.js +383 -0
- package/tools/installer/lib/file-manager.js +394 -0
- package/tools/installer/lib/ide-base-setup.js +228 -0
- package/tools/installer/lib/ide-setup.js +2461 -0
- package/tools/installer/lib/installer.js +2094 -0
- package/tools/installer/lib/memory-profiler.js +225 -0
- package/tools/installer/lib/module-manager.js +114 -0
- package/tools/installer/lib/resource-locator.js +308 -0
- package/tools/installer/package.json +47 -0
- package/tools/lib/dependency-resolver.js +175 -0
- package/tools/lib/yaml-utils.js +29 -0
- package/tools/md-assets/web-agent-startup-instructions.md +39 -0
- package/tools/preview-release-notes.js +66 -0
- package/tools/setup-hooks.sh +37 -0
- package/tools/shared/bannerArt.js +105 -0
- package/tools/sync-installer-version.js +32 -0
- package/tools/sync-version.sh +23 -0
- package/tools/update-expansion-version.js +53 -0
- package/tools/upgraders/v3-to-v4-upgrader.js +673 -0
- package/tools/version-bump.js +94 -0
- package/tools/yaml-format.js +253 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
installation-options:
|
|
2
|
+
full:
|
|
3
|
+
name: Complete BMad Core
|
|
4
|
+
description: Copy the entire .bmad-core folder with all agents, templates, and tools
|
|
5
|
+
action: copy-folder
|
|
6
|
+
source: bmad-core
|
|
7
|
+
single-agent:
|
|
8
|
+
name: Single Agent
|
|
9
|
+
description: Select and install a single agent with its dependencies
|
|
10
|
+
action: copy-agent
|
|
11
|
+
ide-configurations:
|
|
12
|
+
cursor:
|
|
13
|
+
name: Cursor
|
|
14
|
+
rule-dir: .cursor/rules/bmad/
|
|
15
|
+
format: multi-file
|
|
16
|
+
command-suffix: .mdc
|
|
17
|
+
instructions: |
|
|
18
|
+
# To use BMad agents in Cursor:
|
|
19
|
+
# 1. Press Ctrl+L (Cmd+L on Mac) to open the chat
|
|
20
|
+
# 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
|
|
21
|
+
# 3. The agent will adopt that persona for the conversation
|
|
22
|
+
claude-code:
|
|
23
|
+
name: Claude Code
|
|
24
|
+
rule-dir: .claude/commands/BMad/
|
|
25
|
+
format: multi-file
|
|
26
|
+
command-suffix: .md
|
|
27
|
+
instructions: |
|
|
28
|
+
# To use BMad agents in Claude Code:
|
|
29
|
+
# 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
|
|
30
|
+
# 2. Claude will switch to that agent's persona
|
|
31
|
+
iflow-cli:
|
|
32
|
+
name: iFlow CLI
|
|
33
|
+
rule-dir: .iflow/commands/BMad/
|
|
34
|
+
format: multi-file
|
|
35
|
+
command-suffix: .md
|
|
36
|
+
instructions: |
|
|
37
|
+
# To use BMad agents in iFlow CLI:
|
|
38
|
+
# 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
|
|
39
|
+
# 2. iFlow will switch to that agent's persona
|
|
40
|
+
crush:
|
|
41
|
+
name: Crush
|
|
42
|
+
rule-dir: .crush/commands/BMad/
|
|
43
|
+
format: multi-file
|
|
44
|
+
command-suffix: .md
|
|
45
|
+
instructions: |
|
|
46
|
+
# To use BMad agents in Crush:
|
|
47
|
+
# 1. Press CTRL + P and press TAB
|
|
48
|
+
# 2. Select agent or task
|
|
49
|
+
# 3. Crush will switch to that agent's persona / task
|
|
50
|
+
windsurf:
|
|
51
|
+
name: Windsurf
|
|
52
|
+
rule-dir: .windsurf/workflows/
|
|
53
|
+
format: multi-file
|
|
54
|
+
command-suffix: .md
|
|
55
|
+
instructions: |
|
|
56
|
+
# To use BMad agents in Windsurf:
|
|
57
|
+
# 1. Type /agent-name (e.g., "/dev", "/pm")
|
|
58
|
+
# 2. Windsurf will adopt that agent's persona
|
|
59
|
+
trae:
|
|
60
|
+
name: Trae
|
|
61
|
+
rule-dir: .trae/rules/
|
|
62
|
+
format: multi-file
|
|
63
|
+
command-suffix: .md
|
|
64
|
+
instructions: |
|
|
65
|
+
# To use BMad agents in Trae:
|
|
66
|
+
# 1. Type @agent-name (e.g., "@dev", "@pm", "@architect")
|
|
67
|
+
# 2. Trae will adopt that agent's persona
|
|
68
|
+
roo:
|
|
69
|
+
name: Roo Code
|
|
70
|
+
format: custom-modes
|
|
71
|
+
file: .roomodes
|
|
72
|
+
instructions: |
|
|
73
|
+
# To use BMad agents in Roo Code:
|
|
74
|
+
# 1. Open the mode selector (usually in the status bar)
|
|
75
|
+
# 2. Select any bmad-{agent} mode (e.g., "bmad-dev", "bmad-pm")
|
|
76
|
+
# 3. The AI will adopt that agent's full personality and capabilities
|
|
77
|
+
cline:
|
|
78
|
+
name: Cline
|
|
79
|
+
rule-dir: .clinerules/
|
|
80
|
+
format: multi-file
|
|
81
|
+
command-suffix: .md
|
|
82
|
+
instructions: |
|
|
83
|
+
# To use BMad agents in Cline:
|
|
84
|
+
# 1. Open the Cline chat panel in VS Code
|
|
85
|
+
# 2. Type @agent-name (e.g., "@dev", "@pm", "@architect")
|
|
86
|
+
# 3. The agent will adopt that persona for the conversation
|
|
87
|
+
# 4. Rules are stored in .clinerules/ directory in your project
|
|
88
|
+
gemini:
|
|
89
|
+
name: Gemini CLI
|
|
90
|
+
rule-dir: .gemini/commands/BMad/
|
|
91
|
+
format: multi-file
|
|
92
|
+
command-suffix: .toml
|
|
93
|
+
instructions: |
|
|
94
|
+
# To use BMad agents with the Gemini CLI:
|
|
95
|
+
# 1. The installer creates a `BMad` folder in `.gemini/commands`.
|
|
96
|
+
# 2. This adds custom commands for each agent and task.
|
|
97
|
+
# 3. Type /BMad:agents:<agent-name> (e.g., "/BMad:agents:dev", "/BMad:agents:pm") or /BMad:tasks:<task-name> (e.g., "/BMad:tasks:create-doc").
|
|
98
|
+
# 4. The agent will adopt that persona for the conversation or preform the task.
|
|
99
|
+
github-copilot:
|
|
100
|
+
name: Github Copilot
|
|
101
|
+
rule-dir: .github/chatmodes/
|
|
102
|
+
format: multi-file
|
|
103
|
+
command-suffix: .md
|
|
104
|
+
instructions: |
|
|
105
|
+
# To use BMad agents with Github Copilot:
|
|
106
|
+
# 1. The installer creates a .github/chatmodes/ directory in your project
|
|
107
|
+
# 2. Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.
|
|
108
|
+
# 3. The agent will adopt that persona for the conversation
|
|
109
|
+
# 4. Requires VS Code 1.101+ with `chat.agent.enabled: true` in settings
|
|
110
|
+
# 5. Agent files are stored in .github/chatmodes/
|
|
111
|
+
# 6. Use `*help` to see available commands and agents
|
|
112
|
+
kilo:
|
|
113
|
+
name: Kilo Code
|
|
114
|
+
format: custom-modes
|
|
115
|
+
file: .kilocodemodes
|
|
116
|
+
instructions: |
|
|
117
|
+
# To use BMADâ„¢ agents in Kilo Code:
|
|
118
|
+
# 1. Open the mode selector in VSCode
|
|
119
|
+
# 2. Select a bmad-{agent} mode (e.g. "bmad-dev")
|
|
120
|
+
# 3. The AI adopts that agent's persona and capabilities
|
|
121
|
+
|
|
122
|
+
qwen-code:
|
|
123
|
+
name: Qwen Code
|
|
124
|
+
rule-dir: .qwen/bmad-method/
|
|
125
|
+
format: single-file
|
|
126
|
+
command-suffix: .md
|
|
127
|
+
instructions: |
|
|
128
|
+
# To use BMad agents with Qwen Code:
|
|
129
|
+
# 1. The installer creates a .qwen/bmad-method/ directory in your project.
|
|
130
|
+
# 2. It concatenates all agent files into a single QWEN.md file.
|
|
131
|
+
# 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
|
|
132
|
+
# 4. The Qwen Code CLI will automatically have the context for that agent.
|
|
133
|
+
|
|
134
|
+
auggie-cli:
|
|
135
|
+
name: Auggie CLI (Augment Code)
|
|
136
|
+
format: multi-location
|
|
137
|
+
locations:
|
|
138
|
+
user:
|
|
139
|
+
name: User Commands (Global)
|
|
140
|
+
rule-dir: ~/.augment/commands/bmad/
|
|
141
|
+
description: Available across all your projects (user-wide)
|
|
142
|
+
workspace:
|
|
143
|
+
name: Workspace Commands (Project)
|
|
144
|
+
rule-dir: ./.augment/commands/bmad/
|
|
145
|
+
description: Stored in your repository and shared with your team
|
|
146
|
+
command-suffix: .md
|
|
147
|
+
instructions: |
|
|
148
|
+
# To use BMad agents in Auggie CLI (Augment Code):
|
|
149
|
+
# 1. Type /bmad:agent-name (e.g., "/bmad:dev", "/bmad:pm", "/bmad:architect")
|
|
150
|
+
# 2. The agent will adopt that persona for the conversation
|
|
151
|
+
# 3. Commands are available based on your selected location(s)
|
|
152
|
+
|
|
153
|
+
codex:
|
|
154
|
+
name: Codex CLI
|
|
155
|
+
format: project-memory
|
|
156
|
+
file: AGENTS.md
|
|
157
|
+
instructions: |
|
|
158
|
+
# To use BMAD agents with Codex CLI:
|
|
159
|
+
# 1. The installer updates/creates AGENTS.md at your project root with BMAD agents and tasks.
|
|
160
|
+
# 2. Run `codex` in your project. Codex automatically reads AGENTS.md as project memory.
|
|
161
|
+
# 3. Mention agents in your prompt (e.g., "As dev, please implement ...") or reference tasks.
|
|
162
|
+
# 4. You can further customize global Codex behavior via ~/.codex/config.toml.
|
|
163
|
+
|
|
164
|
+
codex-web:
|
|
165
|
+
name: Codex Web Enabled
|
|
166
|
+
format: project-memory
|
|
167
|
+
file: AGENTS.md
|
|
168
|
+
instructions: |
|
|
169
|
+
# To enable BMAD agents for Codex Web (cloud):
|
|
170
|
+
# 1. The installer updates/creates AGENTS.md and ensures `.bmad-core` is NOT ignored by git.
|
|
171
|
+
# 2. Commit `.bmad-core/` and `AGENTS.md` to your repository.
|
|
172
|
+
# 3. Open the repo in Codex Web and reference agents naturally (e.g., "As dev, ...").
|
|
173
|
+
# 4. Re-run this installer to refresh agent sections when the core changes.
|
|
174
|
+
|
|
175
|
+
opencode:
|
|
176
|
+
name: OpenCode CLI
|
|
177
|
+
format: jsonc-config
|
|
178
|
+
file: opencode.jsonc
|
|
179
|
+
instructions: |
|
|
180
|
+
# To use BMAD agents with OpenCode CLI:
|
|
181
|
+
# 1. The installer creates/updates `opencode.jsonc` at your project root.
|
|
182
|
+
# 2. It ensures the BMAD core instructions file is referenced: `./.bmad-core/core-config.yaml`.
|
|
183
|
+
# 3. If an existing `opencode.json` or `opencode.jsonc` is present, it is preserved and only `instructions` are minimally merged.
|
|
184
|
+
# 4. Run `opencode` in this project to use your configured agents and commands.
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
const fs = require('fs-extra');
|
|
2
|
+
const path = require('node:path');
|
|
3
|
+
const yaml = require('js-yaml');
|
|
4
|
+
const { extractYamlFromAgent } = require('../../lib/yaml-utils');
|
|
5
|
+
|
|
6
|
+
class ConfigLoader {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.configPath = path.join(__dirname, '..', 'config', 'install.config.yaml');
|
|
9
|
+
this.config = null;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async load() {
|
|
13
|
+
if (this.config) return this.config;
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
const configContent = await fs.readFile(this.configPath, 'utf8');
|
|
17
|
+
this.config = yaml.load(configContent);
|
|
18
|
+
return this.config;
|
|
19
|
+
} catch (error) {
|
|
20
|
+
throw new Error(`Failed to load configuration: ${error.message}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async getInstallationOptions() {
|
|
25
|
+
const config = await this.load();
|
|
26
|
+
return config['installation-options'] || {};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async getAvailableAgents() {
|
|
30
|
+
const agentsDir = path.join(this.getBmadCorePath(), 'agents');
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
const entries = await fs.readdir(agentsDir, { withFileTypes: true });
|
|
34
|
+
const agents = [];
|
|
35
|
+
|
|
36
|
+
for (const entry of entries) {
|
|
37
|
+
if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
38
|
+
const agentPath = path.join(agentsDir, entry.name);
|
|
39
|
+
const agentId = path.basename(entry.name, '.md');
|
|
40
|
+
|
|
41
|
+
try {
|
|
42
|
+
const agentContent = await fs.readFile(agentPath, 'utf8');
|
|
43
|
+
|
|
44
|
+
// Extract YAML block from agent file
|
|
45
|
+
const yamlContentText = extractYamlFromAgent(agentContent);
|
|
46
|
+
if (yamlContentText) {
|
|
47
|
+
const yamlContent = yaml.load(yamlContentText);
|
|
48
|
+
const agentConfig = yamlContent.agent || {};
|
|
49
|
+
|
|
50
|
+
agents.push({
|
|
51
|
+
id: agentId,
|
|
52
|
+
name: agentConfig.title || agentConfig.name || agentId,
|
|
53
|
+
file: `bmad-core/agents/${entry.name}`,
|
|
54
|
+
description: agentConfig.whenToUse || 'No description available',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
} catch (error) {
|
|
58
|
+
console.warn(`Failed to read agent ${entry.name}: ${error.message}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Sort agents by name for consistent display
|
|
64
|
+
agents.sort((a, b) => a.name.localeCompare(b.name));
|
|
65
|
+
|
|
66
|
+
return agents;
|
|
67
|
+
} catch (error) {
|
|
68
|
+
console.warn(`Failed to read agents directory: ${error.message}`);
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async getAvailableExpansionPacks() {
|
|
74
|
+
const expansionPacksDir = path.join(this.getBmadCorePath(), '..', 'expansion-packs');
|
|
75
|
+
|
|
76
|
+
try {
|
|
77
|
+
const entries = await fs.readdir(expansionPacksDir, { withFileTypes: true });
|
|
78
|
+
const expansionPacks = [];
|
|
79
|
+
|
|
80
|
+
for (const entry of entries) {
|
|
81
|
+
if (entry.isDirectory() && !entry.name.startsWith('.')) {
|
|
82
|
+
const packPath = path.join(expansionPacksDir, entry.name);
|
|
83
|
+
const configPath = path.join(packPath, 'config.yaml');
|
|
84
|
+
|
|
85
|
+
try {
|
|
86
|
+
// Read config.yaml
|
|
87
|
+
const configContent = await fs.readFile(configPath, 'utf8');
|
|
88
|
+
const config = yaml.load(configContent);
|
|
89
|
+
|
|
90
|
+
expansionPacks.push({
|
|
91
|
+
id: entry.name,
|
|
92
|
+
name: config.name || entry.name,
|
|
93
|
+
description:
|
|
94
|
+
config['short-title'] || config.description || 'No description available',
|
|
95
|
+
fullDescription:
|
|
96
|
+
config.description || config['short-title'] || 'No description available',
|
|
97
|
+
version: config.version || '1.0.0',
|
|
98
|
+
author: config.author || 'BMad Team',
|
|
99
|
+
packPath: packPath,
|
|
100
|
+
dependencies: config.dependencies?.agents || [],
|
|
101
|
+
});
|
|
102
|
+
} catch (error) {
|
|
103
|
+
// Fallback if config.yaml doesn't exist or can't be read
|
|
104
|
+
console.warn(
|
|
105
|
+
`Failed to read config for expansion pack ${entry.name}: ${error.message}`,
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
// Try to derive info from directory name as fallback
|
|
109
|
+
const name = entry.name
|
|
110
|
+
.split('-')
|
|
111
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
112
|
+
.join(' ');
|
|
113
|
+
|
|
114
|
+
expansionPacks.push({
|
|
115
|
+
id: entry.name,
|
|
116
|
+
name: name,
|
|
117
|
+
description: 'No description available',
|
|
118
|
+
fullDescription: 'No description available',
|
|
119
|
+
version: '1.0.0',
|
|
120
|
+
author: 'BMad Team',
|
|
121
|
+
packPath: packPath,
|
|
122
|
+
dependencies: [],
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return expansionPacks;
|
|
129
|
+
} catch (error) {
|
|
130
|
+
console.warn(`Failed to read expansion packs directory: ${error.message}`);
|
|
131
|
+
return [];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
async getAgentDependencies(agentId) {
|
|
136
|
+
// Use DependencyResolver to dynamically parse agent dependencies
|
|
137
|
+
const DependencyResolver = require('../../lib/dependency-resolver');
|
|
138
|
+
const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
|
|
139
|
+
|
|
140
|
+
const agentDeps = await resolver.resolveAgentDependencies(agentId);
|
|
141
|
+
|
|
142
|
+
// Convert to flat list of file paths
|
|
143
|
+
const depPaths = [];
|
|
144
|
+
|
|
145
|
+
// Core files and utilities are included automatically by DependencyResolver
|
|
146
|
+
|
|
147
|
+
// Add agent file itself is already handled by installer
|
|
148
|
+
|
|
149
|
+
// Add all resolved resources
|
|
150
|
+
for (const resource of agentDeps.resources) {
|
|
151
|
+
const filePath = `.bmad-core/${resource.type}/${resource.id}.md`;
|
|
152
|
+
if (!depPaths.includes(filePath)) {
|
|
153
|
+
depPaths.push(filePath);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return depPaths;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
async getIdeConfiguration(ide) {
|
|
161
|
+
const config = await this.load();
|
|
162
|
+
const ideConfigs = config['ide-configurations'] || {};
|
|
163
|
+
return ideConfigs[ide] || null;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
getBmadCorePath() {
|
|
167
|
+
// Get the path to bmad-core relative to the installer (now under tools)
|
|
168
|
+
return path.join(__dirname, '..', '..', '..', 'bmad-core');
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
getDistPath() {
|
|
172
|
+
// Get the path to dist directory relative to the installer
|
|
173
|
+
return path.join(__dirname, '..', '..', '..', 'dist');
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
getAgentPath(agentId) {
|
|
177
|
+
return path.join(this.getBmadCorePath(), 'agents', `${agentId}.md`);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
async getAvailableTeams() {
|
|
181
|
+
const teamsDir = path.join(this.getBmadCorePath(), 'agent-teams');
|
|
182
|
+
|
|
183
|
+
try {
|
|
184
|
+
const entries = await fs.readdir(teamsDir, { withFileTypes: true });
|
|
185
|
+
const teams = [];
|
|
186
|
+
|
|
187
|
+
for (const entry of entries) {
|
|
188
|
+
if (entry.isFile() && entry.name.endsWith('.yaml')) {
|
|
189
|
+
const teamPath = path.join(teamsDir, entry.name);
|
|
190
|
+
|
|
191
|
+
try {
|
|
192
|
+
const teamContent = await fs.readFile(teamPath, 'utf8');
|
|
193
|
+
const teamConfig = yaml.load(teamContent);
|
|
194
|
+
|
|
195
|
+
if (teamConfig.bundle) {
|
|
196
|
+
teams.push({
|
|
197
|
+
id: path.basename(entry.name, '.yaml'),
|
|
198
|
+
name: teamConfig.bundle.name || entry.name,
|
|
199
|
+
description: teamConfig.bundle.description || 'Team configuration',
|
|
200
|
+
icon: teamConfig.bundle.icon || '📋',
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
} catch (error) {
|
|
204
|
+
console.warn(`Warning: Could not load team config ${entry.name}: ${error.message}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return teams;
|
|
210
|
+
} catch (error) {
|
|
211
|
+
console.warn(`Warning: Could not scan teams directory: ${error.message}`);
|
|
212
|
+
return [];
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
getTeamPath(teamId) {
|
|
217
|
+
return path.join(this.getBmadCorePath(), 'agent-teams', `${teamId}.yaml`);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
async getTeamDependencies(teamId) {
|
|
221
|
+
// Use DependencyResolver to dynamically parse team dependencies
|
|
222
|
+
const DependencyResolver = require('../../lib/dependency-resolver');
|
|
223
|
+
const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
|
|
224
|
+
|
|
225
|
+
try {
|
|
226
|
+
const teamDeps = await resolver.resolveTeamDependencies(teamId);
|
|
227
|
+
|
|
228
|
+
// Convert to flat list of file paths
|
|
229
|
+
const depPaths = [];
|
|
230
|
+
|
|
231
|
+
// Add team config file
|
|
232
|
+
depPaths.push(`.bmad-core/agent-teams/${teamId}.yaml`);
|
|
233
|
+
|
|
234
|
+
// Add all agents
|
|
235
|
+
for (const agent of teamDeps.agents) {
|
|
236
|
+
const filePath = `.bmad-core/agents/${agent.id}.md`;
|
|
237
|
+
if (!depPaths.includes(filePath)) {
|
|
238
|
+
depPaths.push(filePath);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// Add all resolved resources
|
|
243
|
+
for (const resource of teamDeps.resources) {
|
|
244
|
+
const filePath = `.bmad-core/${resource.type}/${resource.id}.${resource.type === 'workflows' ? 'yaml' : 'md'}`;
|
|
245
|
+
if (!depPaths.includes(filePath)) {
|
|
246
|
+
depPaths.push(filePath);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
return depPaths;
|
|
251
|
+
} catch (error) {
|
|
252
|
+
throw new Error(`Failed to resolve team dependencies for ${teamId}: ${error.message}`);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
module.exports = new ConfigLoader();
|