@zeyue0329/xiaoma-cli 1.0.8 → 1.0.10
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 +26 -1
- package/CHANGELOG.md +686 -0
- package/CONTRIBUTING.md +250 -0
- package/LICENSE +6 -1
- package/common/tasks/create-doc.md +2 -0
- package/common/tasks/execute-checklist.md +2 -7
- package/common/utils/bmad-doc-template.md +7 -5
- package/common/utils/workflow-management.md +2 -0
- package/dist/expansion-packs/bmad-2d-phaser-game-dev/agents/game-designer.txt +2103 -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 +8486 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-architect.txt +3210 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-designer.txt +3244 -0
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +317 -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 +12854 -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 +6071 -0
- package/dist/expansion-packs/bmad-infrastructure-devops/agents/infra-devops-platform.txt +2079 -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/how-to-contribute-with-pull-requests.md +158 -0
- package/docs/user-guide.md +530 -0
- package/docs/versioning-and-releases.md +155 -0
- package/docs/versions.md +48 -0
- package/docs/working-in-the-brownfield.md +597 -0
- package/eslint.config.mjs +119 -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-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/implement-fork-friendly-ci.sh +229 -0
- package/package.json +75 -45
- package/prettier.config.mjs +32 -0
- package/test.md +1 -0
- package/tools/builders/web-builder.js +143 -149
- package/tools/bump-all-versions.js +42 -33
- package/tools/bump-expansion-version.js +23 -16
- package/tools/cli.js +15 -15
- 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 +176 -0
- package/tools/flattener/main.js +458 -460
- 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/installer/README.md +1 -1
- package/tools/installer/bin/xiaoma.js +390 -150
- package/tools/installer/config/ide-agent-config.yaml +1 -1
- package/tools/installer/config/install.config.yaml +60 -9
- package/tools/installer/lib/config-loader.js +55 -51
- package/tools/installer/lib/file-manager.js +92 -117
- package/tools/installer/lib/ide-base-setup.js +57 -56
- package/tools/installer/lib/ide-setup.js +821 -414
- package/tools/installer/lib/installer.js +924 -699
- package/tools/installer/lib/memory-profiler.js +54 -53
- package/tools/installer/lib/module-manager.js +19 -15
- package/tools/installer/lib/resource-locator.js +31 -33
- package/tools/installer/package.json +24 -23
- package/tools/lib/dependency-resolver.js +39 -43
- package/tools/lib/yaml-utils.js +7 -7
- package/tools/md-assets/web-agent-startup-instructions.md +6 -6
- 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 +7 -9
- package/tools/sync-version.sh +23 -0
- package/tools/update-expansion-version.js +14 -15
- package/tools/upgraders/v3-to-v4-upgrader.js +203 -294
- package/tools/version-bump.js +41 -26
- package/tools/xiaoma-npx-wrapper.js +14 -14
- package/tools/yaml-format.js +56 -43
- package/xiaoma-core/agent-teams/team-all.yaml +3 -2
- package/xiaoma-core/agent-teams/team-fullstack.yaml +2 -1
- package/xiaoma-core/agent-teams/team-ide-minimal.yaml +1 -0
- package/xiaoma-core/agent-teams/team-no-ui.yaml +2 -1
- package/xiaoma-core/agents/analyst.md +20 -17
- package/xiaoma-core/agents/architect.md +15 -14
- package/xiaoma-core/agents/{xiaoma-master.md → bmad-master.md} +29 -27
- package/xiaoma-core/agents/{xiaoma-orchestrator.md → bmad-orchestrator.md} +36 -39
- package/xiaoma-core/agents/dev.md +23 -18
- package/xiaoma-core/agents/pm.md +18 -15
- package/xiaoma-core/agents/po.md +13 -10
- package/xiaoma-core/agents/qa.md +46 -24
- package/xiaoma-core/agents/sm.md +11 -8
- package/xiaoma-core/agents/ux-expert.md +10 -7
- package/xiaoma-core/checklists/architect-checklist.md +2 -5
- package/xiaoma-core/checklists/change-checklist.md +4 -2
- package/xiaoma-core/checklists/pm-checklist.md +2 -5
- package/xiaoma-core/checklists/po-master-checklist.md +2 -9
- package/xiaoma-core/checklists/story-dod-checklist.md +2 -7
- package/xiaoma-core/checklists/story-draft-checklist.md +2 -3
- package/xiaoma-core/core-config.yaml +4 -1
- package/xiaoma-core/data/{xiaoma-kb.md → bmad-kb.md} +48 -42
- package/xiaoma-core/data/brainstorming-techniques.md +2 -0
- package/xiaoma-core/data/elicitation-methods.md +22 -0
- package/xiaoma-core/data/technical-preferences.md +2 -0
- package/xiaoma-core/data/test-levels-framework.md +148 -0
- package/xiaoma-core/data/test-priorities-matrix.md +174 -0
- package/xiaoma-core/tasks/advanced-elicitation.md +2 -0
- package/xiaoma-core/tasks/apply-qa-fixes.md +150 -0
- package/xiaoma-core/tasks/brownfield-create-epic.md +2 -0
- package/xiaoma-core/tasks/brownfield-create-story.md +2 -0
- package/xiaoma-core/tasks/correct-course.md +2 -0
- package/xiaoma-core/tasks/create-brownfield-story.md +14 -4
- package/xiaoma-core/tasks/create-deep-research-prompt.md +2 -11
- package/xiaoma-core/tasks/create-next-story.md +3 -1
- package/xiaoma-core/tasks/document-project.md +17 -13
- package/xiaoma-core/tasks/facilitate-brainstorming-session.md +5 -3
- package/xiaoma-core/tasks/generate-ai-frontend-prompt.md +2 -0
- package/xiaoma-core/tasks/index-docs.md +2 -6
- package/xiaoma-core/tasks/kb-mode-interaction.md +17 -15
- package/xiaoma-core/tasks/nfr-assess.md +345 -0
- package/xiaoma-core/tasks/qa-gate.md +163 -0
- package/xiaoma-core/tasks/review-story.md +245 -74
- package/xiaoma-core/tasks/risk-profile.md +355 -0
- package/xiaoma-core/tasks/shard-doc.md +2 -2
- package/xiaoma-core/tasks/test-design.md +176 -0
- package/xiaoma-core/tasks/trace-requirements.md +266 -0
- package/xiaoma-core/tasks/validate-next-story.md +5 -3
- package/xiaoma-core/templates/architecture-tmpl.yaml +50 -49
- package/xiaoma-core/templates/brainstorming-output-tmpl.yaml +5 -5
- package/xiaoma-core/templates/brownfield-architecture-tmpl.yaml +32 -31
- package/xiaoma-core/templates/brownfield-prd-tmpl.yaml +14 -13
- package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +20 -6
- package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +22 -9
- package/xiaoma-core/templates/front-end-spec-tmpl.yaml +25 -24
- package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +123 -104
- package/xiaoma-core/templates/market-research-tmpl.yaml +3 -2
- package/xiaoma-core/templates/prd-tmpl.yaml +10 -9
- package/xiaoma-core/templates/project-brief-tmpl.yaml +5 -4
- package/xiaoma-core/templates/qa-gate-tmpl.yaml +103 -0
- package/xiaoma-core/templates/story-tmpl.yaml +13 -12
- package/xiaoma-core/workflows/brownfield-fullstack.yaml +13 -12
- package/xiaoma-core/workflows/brownfield-service.yaml +5 -4
- package/xiaoma-core/workflows/brownfield-ui.yaml +5 -4
- package/xiaoma-core/workflows/greenfield-fullstack.yaml +7 -6
- package/xiaoma-core/workflows/greenfield-service.yaml +5 -4
- package/xiaoma-core/workflows/greenfield-ui.yaml +6 -5
- package/.releaserc.json +0 -18
- package/README.md +0 -532
- package/XiaoMa-Web/345/244/232/346/231/272/350/203/275/344/275/2230-1/351/241/271/347/233/256/345/274/200/345/217/221/345/256/214/346/225/264/346/214/207/345/215/227.md +0 -977
- package/XiaoMa-Web/347/216/260/346/234/211/351/241/271/347/233/256/351/234/200/346/261/202/345/274/200/345/217/221/345/256/214/346/225/264/346/214/207/345/215/227.md +0 -873
- package/XiaoMa-Web/347/272/257/345/211/215/347/253/257/351/241/271/347/233/256Claude-Code/345/274/200/345/217/221/345/256/214/346/225/264/346/214/207/345/215/227.md +0 -372
- package/XiaoMa-Web/351/241/271/347/233/256/346/200/273/347/273/223/346/212/245/345/221/212.md +0 -310
- package/dist/agents/analyst.txt +0 -2882
- package/dist/agents/architect.txt +0 -3543
- package/dist/agents/dev-cn.txt +0 -428
- package/dist/agents/dev.txt +0 -428
- package/dist/agents/pm.txt +0 -2229
- package/dist/agents/po.txt +0 -1364
- package/dist/agents/qa.txt +0 -386
- package/dist/agents/sm.txt +0 -668
- package/dist/agents/ux-expert.txt +0 -701
- package/dist/agents/xiaoma-master.txt +0 -8756
- package/dist/agents/xiaoma-orchestrator.txt +0 -1490
- package/dist/teams/team-all.txt +0 -11062
- package/dist/teams/team-fullstack.txt +0 -10392
- package/dist/teams/team-ide-minimal.txt +0 -3507
- package/dist/teams/team-no-ui.txt +0 -8951
- package/docs/quick-start.md +0 -179
- package/tools/bmad-npx-wrapper.js +0 -39
- package/tools/installer/package-lock.json +0 -704
- package/tools/semantic-release-sync-installer.js +0 -30
- package/xiaoma-core/bmad-core/user-guide.md +0 -0
- package/xiaoma-core/enhanced-ide-development-workflow.md +0 -43
- package/xiaoma-core/user-guide.md +0 -251
- package/xiaoma-core/working-in-the-brownfield.md +0 -364
|
@@ -11,7 +11,7 @@ installation-options:
|
|
|
11
11
|
ide-configurations:
|
|
12
12
|
cursor:
|
|
13
13
|
name: Cursor
|
|
14
|
-
rule-dir: .cursor/rules/
|
|
14
|
+
rule-dir: .cursor/rules/xiaoma/
|
|
15
15
|
format: multi-file
|
|
16
16
|
command-suffix: .mdc
|
|
17
17
|
instructions: |
|
|
@@ -28,14 +28,24 @@ ide-configurations:
|
|
|
28
28
|
# To use XiaoMa agents in Claude Code:
|
|
29
29
|
# 1. Type /agent-name (e.g., "/dev", "/pm", "/architect")
|
|
30
30
|
# 2. Claude will switch to that agent's persona
|
|
31
|
+
crush:
|
|
32
|
+
name: Crush
|
|
33
|
+
rule-dir: .crush/commands/XiaoMa/
|
|
34
|
+
format: multi-file
|
|
35
|
+
command-suffix: .md
|
|
36
|
+
instructions: |
|
|
37
|
+
# To use XiaoMa agents in Crush:
|
|
38
|
+
# 1. Press CTRL + P and press TAB
|
|
39
|
+
# 2. Select agent or task
|
|
40
|
+
# 3. Crush will switch to that agent's persona / task
|
|
31
41
|
windsurf:
|
|
32
42
|
name: Windsurf
|
|
33
|
-
rule-dir: .windsurf/
|
|
43
|
+
rule-dir: .windsurf/workflows/
|
|
34
44
|
format: multi-file
|
|
35
45
|
command-suffix: .md
|
|
36
46
|
instructions: |
|
|
37
47
|
# To use XiaoMa agents in Windsurf:
|
|
38
|
-
# 1. Type
|
|
48
|
+
# 1. Type /agent-name (e.g., "/dev", "/pm")
|
|
39
49
|
# 2. Windsurf will adopt that agent's persona
|
|
40
50
|
trae:
|
|
41
51
|
name: Trae
|
|
@@ -68,12 +78,12 @@ ide-configurations:
|
|
|
68
78
|
# 4. Rules are stored in .clinerules/ directory in your project
|
|
69
79
|
gemini:
|
|
70
80
|
name: Gemini CLI
|
|
71
|
-
rule-dir: .gemini/xiaoma-
|
|
81
|
+
rule-dir: .gemini/xiaoma-cli/
|
|
72
82
|
format: single-file
|
|
73
83
|
command-suffix: .md
|
|
74
84
|
instructions: |
|
|
75
85
|
# To use XiaoMa agents with the Gemini CLI:
|
|
76
|
-
# 1. The installer creates a .gemini/xiaoma-
|
|
86
|
+
# 1. The installer creates a .gemini/xiaoma-cli/ directory in your project.
|
|
77
87
|
# 2. It concatenates all agent files into a single GEMINI.md file.
|
|
78
88
|
# 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
|
|
79
89
|
# 4. The Gemini CLI will automatically have the context for that agent.
|
|
@@ -95,19 +105,60 @@ ide-configurations:
|
|
|
95
105
|
format: custom-modes
|
|
96
106
|
file: .kilocodemodes
|
|
97
107
|
instructions: |
|
|
98
|
-
# To use
|
|
108
|
+
# To use XiaoMa™ agents in Kilo Code:
|
|
99
109
|
# 1. Open the mode selector in VSCode
|
|
100
110
|
# 2. Select a xiaoma-{agent} mode (e.g. "xiaoma-dev")
|
|
101
111
|
# 3. The AI adopts that agent's persona and capabilities
|
|
102
112
|
|
|
103
113
|
qwen-code:
|
|
104
114
|
name: Qwen Code
|
|
105
|
-
rule-dir: .qwen/xiaoma-
|
|
115
|
+
rule-dir: .qwen/xiaoma-cli/
|
|
106
116
|
format: single-file
|
|
107
117
|
command-suffix: .md
|
|
108
118
|
instructions: |
|
|
109
119
|
# To use XiaoMa agents with Qwen Code:
|
|
110
|
-
# 1. The installer creates a .qwen/xiaoma-
|
|
120
|
+
# 1. The installer creates a .qwen/xiaoma-cli/ directory in your project.
|
|
111
121
|
# 2. It concatenates all agent files into a single QWEN.md file.
|
|
112
122
|
# 3. Simply mention the agent in your prompt (e.g., "As *dev, ...").
|
|
113
|
-
# 4. The Qwen Code CLI will automatically have the context for that agent.
|
|
123
|
+
# 4. The Qwen Code CLI will automatically have the context for that agent.
|
|
124
|
+
|
|
125
|
+
auggie-cli:
|
|
126
|
+
name: Auggie CLI (Augment Code)
|
|
127
|
+
format: multi-location
|
|
128
|
+
locations:
|
|
129
|
+
user:
|
|
130
|
+
name: User Commands (Global)
|
|
131
|
+
rule-dir: ~/.augment/commands/xiaoma/
|
|
132
|
+
description: Available across all your projects (user-wide)
|
|
133
|
+
workspace:
|
|
134
|
+
name: Workspace Commands (Project)
|
|
135
|
+
rule-dir: ./.augment/commands/xiaoma/
|
|
136
|
+
description: Stored in your repository and shared with your team
|
|
137
|
+
command-suffix: .md
|
|
138
|
+
instructions: |
|
|
139
|
+
# To use XiaoMa agents in Auggie CLI (Augment Code):
|
|
140
|
+
# 1. Type /xiaoma:agent-name (e.g., "/xiaoma:dev", "/xiaoma:pm", "/xiaoma:architect")
|
|
141
|
+
# 2. The agent will adopt that persona for the conversation
|
|
142
|
+
# 3. Commands are available based on your selected location(s)
|
|
143
|
+
|
|
144
|
+
codex:
|
|
145
|
+
name: Codex CLI
|
|
146
|
+
format: project-memory
|
|
147
|
+
file: AGENTS.md
|
|
148
|
+
instructions: |
|
|
149
|
+
# To use XiaoMa agents with Codex CLI:
|
|
150
|
+
# 1. The installer updates/creates AGENTS.md at your project root with XiaoMa agents and tasks.
|
|
151
|
+
# 2. Run `codex` in your project. Codex automatically reads AGENTS.md as project memory.
|
|
152
|
+
# 3. Mention agents in your prompt (e.g., "As dev, please implement ...") or reference tasks.
|
|
153
|
+
# 4. You can further customize global Codex behavior via ~/.codex/config.toml.
|
|
154
|
+
|
|
155
|
+
codex-web:
|
|
156
|
+
name: Codex Web Enabled
|
|
157
|
+
format: project-memory
|
|
158
|
+
file: AGENTS.md
|
|
159
|
+
instructions: |
|
|
160
|
+
# To enable XiaoMa agents for Codex Web (cloud):
|
|
161
|
+
# 1. The installer updates/creates AGENTS.md and ensures `.xiaoma-core` is NOT ignored by git.
|
|
162
|
+
# 2. Commit `.xiaoma-core/` and `AGENTS.md` to your repository.
|
|
163
|
+
# 3. Open the repo in Codex Web and reference agents naturally (e.g., "As dev, ...").
|
|
164
|
+
# 4. Re-run this installer to refresh agent sections when the core changes.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const fs = require('fs-extra');
|
|
2
|
-
const path = require('path');
|
|
2
|
+
const path = require('node:path');
|
|
3
3
|
const yaml = require('js-yaml');
|
|
4
4
|
const { extractYamlFromAgent } = require('../../lib/yaml-utils');
|
|
5
5
|
|
|
@@ -11,7 +11,7 @@ class ConfigLoader {
|
|
|
11
11
|
|
|
12
12
|
async load() {
|
|
13
13
|
if (this.config) return this.config;
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
try {
|
|
16
16
|
const configContent = await fs.readFile(this.configPath, 'utf8');
|
|
17
17
|
this.config = yaml.load(configContent);
|
|
@@ -28,30 +28,30 @@ class ConfigLoader {
|
|
|
28
28
|
|
|
29
29
|
async getAvailableAgents() {
|
|
30
30
|
const agentsDir = path.join(this.getBmadCorePath(), 'agents');
|
|
31
|
-
|
|
31
|
+
|
|
32
32
|
try {
|
|
33
33
|
const entries = await fs.readdir(agentsDir, { withFileTypes: true });
|
|
34
34
|
const agents = [];
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
for (const entry of entries) {
|
|
37
37
|
if (entry.isFile() && entry.name.endsWith('.md')) {
|
|
38
38
|
const agentPath = path.join(agentsDir, entry.name);
|
|
39
39
|
const agentId = path.basename(entry.name, '.md');
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
try {
|
|
42
42
|
const agentContent = await fs.readFile(agentPath, 'utf8');
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
// Extract YAML block from agent file
|
|
45
45
|
const yamlContentText = extractYamlFromAgent(agentContent);
|
|
46
46
|
if (yamlContentText) {
|
|
47
47
|
const yamlContent = yaml.load(yamlContentText);
|
|
48
48
|
const agentConfig = yamlContent.agent || {};
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
agents.push({
|
|
51
51
|
id: agentId,
|
|
52
52
|
name: agentConfig.title || agentConfig.name || agentId,
|
|
53
|
-
file: `
|
|
54
|
-
description: agentConfig.whenToUse || 'No description available'
|
|
53
|
+
file: `bmad-core/agents/${entry.name}`,
|
|
54
|
+
description: agentConfig.whenToUse || 'No description available',
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
} catch (error) {
|
|
@@ -59,10 +59,10 @@ class ConfigLoader {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
|
|
63
63
|
// Sort agents by name for consistent display
|
|
64
64
|
agents.sort((a, b) => a.name.localeCompare(b.name));
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
return agents;
|
|
67
67
|
} catch (error) {
|
|
68
68
|
console.warn(`Failed to read agents directory: ${error.message}`);
|
|
@@ -72,55 +72,59 @@ class ConfigLoader {
|
|
|
72
72
|
|
|
73
73
|
async getAvailableExpansionPacks() {
|
|
74
74
|
const expansionPacksDir = path.join(this.getBmadCorePath(), '..', 'expansion-packs');
|
|
75
|
-
|
|
75
|
+
|
|
76
76
|
try {
|
|
77
77
|
const entries = await fs.readdir(expansionPacksDir, { withFileTypes: true });
|
|
78
78
|
const expansionPacks = [];
|
|
79
|
-
|
|
79
|
+
|
|
80
80
|
for (const entry of entries) {
|
|
81
81
|
if (entry.isDirectory() && !entry.name.startsWith('.')) {
|
|
82
82
|
const packPath = path.join(expansionPacksDir, entry.name);
|
|
83
83
|
const configPath = path.join(packPath, 'config.yaml');
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
try {
|
|
86
86
|
// Read config.yaml
|
|
87
87
|
const configContent = await fs.readFile(configPath, 'utf8');
|
|
88
88
|
const config = yaml.load(configContent);
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
expansionPacks.push({
|
|
91
91
|
id: entry.name,
|
|
92
92
|
name: config.name || entry.name,
|
|
93
|
-
description:
|
|
94
|
-
|
|
93
|
+
description:
|
|
94
|
+
config['short-title'] || config.description || 'No description available',
|
|
95
|
+
fullDescription:
|
|
96
|
+
config.description || config['short-title'] || 'No description available',
|
|
95
97
|
version: config.version || '1.0.0',
|
|
96
|
-
author: config.author || '
|
|
98
|
+
author: config.author || 'BMad Team',
|
|
97
99
|
packPath: packPath,
|
|
98
|
-
dependencies: config.dependencies?.agents || []
|
|
100
|
+
dependencies: config.dependencies?.agents || [],
|
|
99
101
|
});
|
|
100
102
|
} catch (error) {
|
|
101
103
|
// Fallback if config.yaml doesn't exist or can't be read
|
|
102
|
-
console.warn(
|
|
103
|
-
|
|
104
|
+
console.warn(
|
|
105
|
+
`Failed to read config for expansion pack ${entry.name}: ${error.message}`,
|
|
106
|
+
);
|
|
107
|
+
|
|
104
108
|
// Try to derive info from directory name as fallback
|
|
105
109
|
const name = entry.name
|
|
106
110
|
.split('-')
|
|
107
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
111
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
108
112
|
.join(' ');
|
|
109
|
-
|
|
113
|
+
|
|
110
114
|
expansionPacks.push({
|
|
111
115
|
id: entry.name,
|
|
112
116
|
name: name,
|
|
113
117
|
description: 'No description available',
|
|
114
118
|
fullDescription: 'No description available',
|
|
115
119
|
version: '1.0.0',
|
|
116
|
-
author: '
|
|
120
|
+
author: 'BMad Team',
|
|
117
121
|
packPath: packPath,
|
|
118
|
-
dependencies: []
|
|
122
|
+
dependencies: [],
|
|
119
123
|
});
|
|
120
124
|
}
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
|
-
|
|
127
|
+
|
|
124
128
|
return expansionPacks;
|
|
125
129
|
} catch (error) {
|
|
126
130
|
console.warn(`Failed to read expansion packs directory: ${error.message}`);
|
|
@@ -132,24 +136,24 @@ class ConfigLoader {
|
|
|
132
136
|
// Use DependencyResolver to dynamically parse agent dependencies
|
|
133
137
|
const DependencyResolver = require('../../lib/dependency-resolver');
|
|
134
138
|
const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
|
|
135
|
-
|
|
139
|
+
|
|
136
140
|
const agentDeps = await resolver.resolveAgentDependencies(agentId);
|
|
137
|
-
|
|
141
|
+
|
|
138
142
|
// Convert to flat list of file paths
|
|
139
143
|
const depPaths = [];
|
|
140
|
-
|
|
144
|
+
|
|
141
145
|
// Core files and utilities are included automatically by DependencyResolver
|
|
142
|
-
|
|
146
|
+
|
|
143
147
|
// Add agent file itself is already handled by installer
|
|
144
|
-
|
|
148
|
+
|
|
145
149
|
// Add all resolved resources
|
|
146
150
|
for (const resource of agentDeps.resources) {
|
|
147
|
-
const filePath = `.
|
|
151
|
+
const filePath = `.bmad-core/${resource.type}/${resource.id}.md`;
|
|
148
152
|
if (!depPaths.includes(filePath)) {
|
|
149
153
|
depPaths.push(filePath);
|
|
150
154
|
}
|
|
151
155
|
}
|
|
152
|
-
|
|
156
|
+
|
|
153
157
|
return depPaths;
|
|
154
158
|
}
|
|
155
159
|
|
|
@@ -160,8 +164,8 @@ class ConfigLoader {
|
|
|
160
164
|
}
|
|
161
165
|
|
|
162
166
|
getBmadCorePath() {
|
|
163
|
-
// Get the path to
|
|
164
|
-
return path.join(__dirname, '..', '..', '..', '
|
|
167
|
+
// Get the path to bmad-core relative to the installer (now under tools)
|
|
168
|
+
return path.join(__dirname, '..', '..', '..', 'bmad-core');
|
|
165
169
|
}
|
|
166
170
|
|
|
167
171
|
getDistPath() {
|
|
@@ -175,25 +179,25 @@ class ConfigLoader {
|
|
|
175
179
|
|
|
176
180
|
async getAvailableTeams() {
|
|
177
181
|
const teamsDir = path.join(this.getBmadCorePath(), 'agent-teams');
|
|
178
|
-
|
|
182
|
+
|
|
179
183
|
try {
|
|
180
184
|
const entries = await fs.readdir(teamsDir, { withFileTypes: true });
|
|
181
185
|
const teams = [];
|
|
182
|
-
|
|
186
|
+
|
|
183
187
|
for (const entry of entries) {
|
|
184
188
|
if (entry.isFile() && entry.name.endsWith('.yaml')) {
|
|
185
189
|
const teamPath = path.join(teamsDir, entry.name);
|
|
186
|
-
|
|
190
|
+
|
|
187
191
|
try {
|
|
188
192
|
const teamContent = await fs.readFile(teamPath, 'utf8');
|
|
189
193
|
const teamConfig = yaml.load(teamContent);
|
|
190
|
-
|
|
194
|
+
|
|
191
195
|
if (teamConfig.bundle) {
|
|
192
196
|
teams.push({
|
|
193
197
|
id: path.basename(entry.name, '.yaml'),
|
|
194
198
|
name: teamConfig.bundle.name || entry.name,
|
|
195
199
|
description: teamConfig.bundle.description || 'Team configuration',
|
|
196
|
-
icon: teamConfig.bundle.icon || '📋'
|
|
200
|
+
icon: teamConfig.bundle.icon || '📋',
|
|
197
201
|
});
|
|
198
202
|
}
|
|
199
203
|
} catch (error) {
|
|
@@ -201,7 +205,7 @@ class ConfigLoader {
|
|
|
201
205
|
}
|
|
202
206
|
}
|
|
203
207
|
}
|
|
204
|
-
|
|
208
|
+
|
|
205
209
|
return teams;
|
|
206
210
|
} catch (error) {
|
|
207
211
|
console.warn(`Warning: Could not scan teams directory: ${error.message}`);
|
|
@@ -217,32 +221,32 @@ class ConfigLoader {
|
|
|
217
221
|
// Use DependencyResolver to dynamically parse team dependencies
|
|
218
222
|
const DependencyResolver = require('../../lib/dependency-resolver');
|
|
219
223
|
const resolver = new DependencyResolver(path.join(__dirname, '..', '..', '..'));
|
|
220
|
-
|
|
224
|
+
|
|
221
225
|
try {
|
|
222
226
|
const teamDeps = await resolver.resolveTeamDependencies(teamId);
|
|
223
|
-
|
|
227
|
+
|
|
224
228
|
// Convert to flat list of file paths
|
|
225
229
|
const depPaths = [];
|
|
226
|
-
|
|
230
|
+
|
|
227
231
|
// Add team config file
|
|
228
|
-
depPaths.push(`.
|
|
229
|
-
|
|
232
|
+
depPaths.push(`.bmad-core/agent-teams/${teamId}.yaml`);
|
|
233
|
+
|
|
230
234
|
// Add all agents
|
|
231
235
|
for (const agent of teamDeps.agents) {
|
|
232
|
-
const filePath = `.
|
|
236
|
+
const filePath = `.bmad-core/agents/${agent.id}.md`;
|
|
233
237
|
if (!depPaths.includes(filePath)) {
|
|
234
238
|
depPaths.push(filePath);
|
|
235
239
|
}
|
|
236
240
|
}
|
|
237
|
-
|
|
241
|
+
|
|
238
242
|
// Add all resolved resources
|
|
239
243
|
for (const resource of teamDeps.resources) {
|
|
240
|
-
const filePath = `.
|
|
244
|
+
const filePath = `.bmad-core/${resource.type}/${resource.id}.${resource.type === 'workflows' ? 'yaml' : 'md'}`;
|
|
241
245
|
if (!depPaths.includes(filePath)) {
|
|
242
246
|
depPaths.push(filePath);
|
|
243
247
|
}
|
|
244
248
|
}
|
|
245
|
-
|
|
249
|
+
|
|
246
250
|
return depPaths;
|
|
247
251
|
} catch (error) {
|
|
248
252
|
throw new Error(`Failed to resolve team dependencies for ${teamId}: ${error.message}`);
|
|
@@ -250,4 +254,4 @@ class ConfigLoader {
|
|
|
250
254
|
}
|
|
251
255
|
}
|
|
252
256
|
|
|
253
|
-
module.exports = new ConfigLoader();
|
|
257
|
+
module.exports = new ConfigLoader();
|