@zeyue0329/xiaoma-cli 1.0.7 → 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 +392 -99
- 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 -114
- 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 -696
- 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/dist/agents/analyst.txt +0 -2882
- package/dist/agents/architect.txt +0 -3543
- 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
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Fork Guide - CI/CD Configuration
|
|
2
|
+
|
|
3
|
+
## CI/CD in Forks
|
|
4
|
+
|
|
5
|
+
By default, CI/CD workflows are **disabled in forks** to conserve GitHub Actions resources and provide a cleaner fork experience.
|
|
6
|
+
|
|
7
|
+
### Why This Approach?
|
|
8
|
+
|
|
9
|
+
- **Resource efficiency**: Prevents unnecessary GitHub Actions usage across 1,600+ forks
|
|
10
|
+
- **Clean fork experience**: No failed workflow notifications in your fork
|
|
11
|
+
- **Full control**: Enable CI/CD only when you actually need it
|
|
12
|
+
- **PR validation**: Your changes are still fully tested when submitting PRs to the main repository
|
|
13
|
+
|
|
14
|
+
## Enabling CI/CD in Your Fork
|
|
15
|
+
|
|
16
|
+
If you need to run CI/CD workflows in your fork, follow these steps:
|
|
17
|
+
|
|
18
|
+
1. Navigate to your fork's **Settings** tab
|
|
19
|
+
2. Go to **Secrets and variables** → **Actions** → **Variables**
|
|
20
|
+
3. Click **New repository variable**
|
|
21
|
+
4. Create a new variable:
|
|
22
|
+
- **Name**: `ENABLE_CI_IN_FORK`
|
|
23
|
+
- **Value**: `true`
|
|
24
|
+
5. Click **Add variable**
|
|
25
|
+
|
|
26
|
+
That's it! CI/CD workflows will now run in your fork.
|
|
27
|
+
|
|
28
|
+
## Disabling CI/CD Again
|
|
29
|
+
|
|
30
|
+
To disable CI/CD workflows in your fork, you can either:
|
|
31
|
+
|
|
32
|
+
- **Delete the variable**: Remove the `ENABLE_CI_IN_FORK` variable entirely, or
|
|
33
|
+
- **Set to false**: Change the `ENABLE_CI_IN_FORK` value to `false`
|
|
34
|
+
|
|
35
|
+
## Alternative Testing Options
|
|
36
|
+
|
|
37
|
+
You don't always need to enable CI/CD in your fork. Here are alternatives:
|
|
38
|
+
|
|
39
|
+
### Local Testing
|
|
40
|
+
|
|
41
|
+
Run tests locally before pushing:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Install dependencies
|
|
45
|
+
npm ci
|
|
46
|
+
|
|
47
|
+
# Run linting
|
|
48
|
+
npm run lint
|
|
49
|
+
|
|
50
|
+
# Run format check
|
|
51
|
+
npm run format:check
|
|
52
|
+
|
|
53
|
+
# Run validation
|
|
54
|
+
npm run validate
|
|
55
|
+
|
|
56
|
+
# Build the project
|
|
57
|
+
npm run build
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Pull Request CI
|
|
61
|
+
|
|
62
|
+
When you open a Pull Request to the main repository:
|
|
63
|
+
|
|
64
|
+
- All CI/CD workflows automatically run
|
|
65
|
+
- You get full validation of your changes
|
|
66
|
+
- No configuration needed
|
|
67
|
+
|
|
68
|
+
### GitHub Codespaces
|
|
69
|
+
|
|
70
|
+
Use GitHub Codespaces for a full development environment:
|
|
71
|
+
|
|
72
|
+
- All tools pre-configured
|
|
73
|
+
- Same environment as CI/CD
|
|
74
|
+
- No local setup required
|
|
75
|
+
|
|
76
|
+
## Frequently Asked Questions
|
|
77
|
+
|
|
78
|
+
### Q: Will my PR be tested even if CI is disabled in my fork?
|
|
79
|
+
|
|
80
|
+
**A:** Yes! When you open a PR to the main repository, all CI/CD workflows run automatically, regardless of your fork's settings.
|
|
81
|
+
|
|
82
|
+
### Q: Can I selectively enable specific workflows?
|
|
83
|
+
|
|
84
|
+
**A:** The `ENABLE_CI_IN_FORK` variable enables all workflows. For selective control, you'd need to modify individual workflow files.
|
|
85
|
+
|
|
86
|
+
### Q: Do I need to enable CI in my fork to contribute?
|
|
87
|
+
|
|
88
|
+
**A:** No! Most contributors never need to enable CI in their forks. Local testing and PR validation are sufficient for most contributions.
|
|
89
|
+
|
|
90
|
+
### Q: Will disabling CI affect my ability to merge PRs?
|
|
91
|
+
|
|
92
|
+
**A:** No! PR merge requirements are based on CI runs in the main repository, not your fork.
|
|
93
|
+
|
|
94
|
+
### Q: Why was this implemented?
|
|
95
|
+
|
|
96
|
+
**A:** With over 1,600 forks of BMAD-METHOD, this saves thousands of GitHub Actions minutes monthly while maintaining code quality standards.
|
|
97
|
+
|
|
98
|
+
## Need Help?
|
|
99
|
+
|
|
100
|
+
- Join our [Discord Community](https://discord.gg/gk8jAdXWmj) for support
|
|
101
|
+
- Check the [Contributing Guide](../README.md#contributing) for more information
|
|
102
|
+
- Open an issue if you encounter any problems
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
> 💡 **Pro Tip**: This fork-friendly approach is particularly valuable for projects using AI/LLM tools that create many experimental commits, as it prevents unnecessary CI runs while maintaining code quality standards.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# These are supported funding model platforms
|
|
2
|
+
|
|
3
|
+
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
|
4
|
+
patreon: # Replace with a single Patreon username
|
|
5
|
+
open_collective: # Replace with a single Open Collective username
|
|
6
|
+
ko_fi: # Replace with a single Ko-fi username
|
|
7
|
+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
|
8
|
+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
|
9
|
+
liberapay: # Replace with a single Liberapay username
|
|
10
|
+
issuehunt: # Replace with a single IssueHunt username
|
|
11
|
+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
|
12
|
+
polar: # Replace with a single Polar username
|
|
13
|
+
buy_me_a_coffee: bmad
|
|
14
|
+
thanks_dev: # Replace with a single thanks.dev username
|
|
15
|
+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**Describe the bug**
|
|
10
|
+
A clear and concise description of what the bug is.
|
|
11
|
+
|
|
12
|
+
**Steps to Reproduce**
|
|
13
|
+
What lead to the bug and can it be reliable recreated - if so with what steps.
|
|
14
|
+
|
|
15
|
+
**PR**
|
|
16
|
+
If you have an idea to fix and would like to contribute, please indicate here you are working on a fix, or link to a proposed PR to fix the issue. Please review the contribution.md - contributions are always welcome!
|
|
17
|
+
|
|
18
|
+
**Expected behavior**
|
|
19
|
+
A clear and concise description of what you expected to happen.
|
|
20
|
+
|
|
21
|
+
**Please be Specific if relevant**
|
|
22
|
+
Model(s) Used:
|
|
23
|
+
Agentic IDE Used:
|
|
24
|
+
WebSite Used:
|
|
25
|
+
Project Language:
|
|
26
|
+
BMad Method version:
|
|
27
|
+
|
|
28
|
+
**Screenshots or Links**
|
|
29
|
+
If applicable, add screenshots or links (if web sharable record) to help explain your problem.
|
|
30
|
+
|
|
31
|
+
**Additional context**
|
|
32
|
+
Add any other context about the problem here. The more information you can provide, the easier it will be to suggest a fix or resolve
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
**Did you discuss the idea first in Discord Server (#general-dev)**
|
|
10
|
+
Yes/No - Link to thread. If no, please after posting request also share the link in the channel so it can be easily discussed.
|
|
11
|
+
|
|
12
|
+
**Is your feature request related to a problem? Please describe.**
|
|
13
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
14
|
+
|
|
15
|
+
**Describe the solution you'd like**
|
|
16
|
+
A clear and concise description of what you want to happen.
|
|
17
|
+
|
|
18
|
+
**Describe alternatives you've considered**
|
|
19
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
20
|
+
|
|
21
|
+
**Additional context**
|
|
22
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Discord Notification
|
|
2
|
+
|
|
3
|
+
"on":
|
|
4
|
+
[
|
|
5
|
+
pull_request,
|
|
6
|
+
release,
|
|
7
|
+
create,
|
|
8
|
+
delete,
|
|
9
|
+
issue_comment,
|
|
10
|
+
pull_request_review,
|
|
11
|
+
pull_request_review_comment,
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
notify:
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == 'true'
|
|
18
|
+
steps:
|
|
19
|
+
- name: Notify Discord
|
|
20
|
+
uses: sarisia/actions-status-discord@v1
|
|
21
|
+
if: always()
|
|
22
|
+
with:
|
|
23
|
+
webhook: ${{ secrets.DISCORD_WEBHOOK }}
|
|
24
|
+
status: ${{ job.status }}
|
|
25
|
+
title: "Triggered by ${{ github.event_name }}"
|
|
26
|
+
color: 0x5865F2
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: format-check
|
|
2
|
+
|
|
3
|
+
"on":
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: ["**"]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
prettier:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == 'true'
|
|
11
|
+
steps:
|
|
12
|
+
- name: Checkout
|
|
13
|
+
uses: actions/checkout@v4
|
|
14
|
+
|
|
15
|
+
- name: Setup Node
|
|
16
|
+
uses: actions/setup-node@v4
|
|
17
|
+
with:
|
|
18
|
+
node-version: "20"
|
|
19
|
+
cache: "npm"
|
|
20
|
+
|
|
21
|
+
- name: Install dependencies
|
|
22
|
+
run: npm ci
|
|
23
|
+
|
|
24
|
+
- name: Prettier format check
|
|
25
|
+
run: npm run format:check
|
|
26
|
+
|
|
27
|
+
eslint:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == 'true'
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout
|
|
32
|
+
uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- name: Setup Node
|
|
35
|
+
uses: actions/setup-node@v4
|
|
36
|
+
with:
|
|
37
|
+
node-version: "20"
|
|
38
|
+
cache: "npm"
|
|
39
|
+
|
|
40
|
+
- name: Install dependencies
|
|
41
|
+
run: npm ci
|
|
42
|
+
|
|
43
|
+
- name: ESLint
|
|
44
|
+
run: npm run lint
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
name: Manual Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
version_bump:
|
|
7
|
+
description: Version bump type
|
|
8
|
+
required: true
|
|
9
|
+
default: patch
|
|
10
|
+
type: choice
|
|
11
|
+
options:
|
|
12
|
+
- patch
|
|
13
|
+
- minor
|
|
14
|
+
- major
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: write
|
|
18
|
+
packages: write
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
release:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == 'true'
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout
|
|
26
|
+
uses: actions/checkout@v4
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
30
|
+
|
|
31
|
+
- name: Setup Node.js
|
|
32
|
+
uses: actions/setup-node@v4
|
|
33
|
+
with:
|
|
34
|
+
node-version: "20"
|
|
35
|
+
cache: npm
|
|
36
|
+
registry-url: https://registry.npmjs.org
|
|
37
|
+
|
|
38
|
+
- name: Install dependencies
|
|
39
|
+
run: npm ci
|
|
40
|
+
|
|
41
|
+
- name: Run tests and validation
|
|
42
|
+
run: |
|
|
43
|
+
npm run validate
|
|
44
|
+
npm run format:check
|
|
45
|
+
npm run lint
|
|
46
|
+
|
|
47
|
+
- name: Configure Git
|
|
48
|
+
run: |
|
|
49
|
+
git config user.name "github-actions[bot]"
|
|
50
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
51
|
+
|
|
52
|
+
- name: Bump version
|
|
53
|
+
run: npm run version:${{ github.event.inputs.version_bump }}
|
|
54
|
+
|
|
55
|
+
- name: Get new version and previous tag
|
|
56
|
+
id: version
|
|
57
|
+
run: |
|
|
58
|
+
echo "new_version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
|
|
59
|
+
echo "previous_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
|
|
60
|
+
|
|
61
|
+
- name: Update installer package.json
|
|
62
|
+
run: |
|
|
63
|
+
sed -i 's/"version": ".*"/"version": "${{ steps.version.outputs.new_version }}"/' tools/installer/package.json
|
|
64
|
+
|
|
65
|
+
- name: Build project
|
|
66
|
+
run: npm run build
|
|
67
|
+
|
|
68
|
+
- name: Commit version bump
|
|
69
|
+
run: |
|
|
70
|
+
git add .
|
|
71
|
+
git commit -m "release: bump to v${{ steps.version.outputs.new_version }}"
|
|
72
|
+
|
|
73
|
+
- name: Generate release notes
|
|
74
|
+
id: release_notes
|
|
75
|
+
run: |
|
|
76
|
+
# Get commits since last tag
|
|
77
|
+
COMMITS=$(git log ${{ steps.version.outputs.previous_tag }}..HEAD --pretty=format:"- %s" --reverse)
|
|
78
|
+
|
|
79
|
+
# Categorize commits
|
|
80
|
+
FEATURES=$(echo "$COMMITS" | grep -E "^- (feat|Feature)" || true)
|
|
81
|
+
FIXES=$(echo "$COMMITS" | grep -E "^- (fix|Fix)" || true)
|
|
82
|
+
CHORES=$(echo "$COMMITS" | grep -E "^- (chore|Chore)" || true)
|
|
83
|
+
OTHERS=$(echo "$COMMITS" | grep -v -E "^- (feat|Feature|fix|Fix|chore|Chore|release:|Release:)" || true)
|
|
84
|
+
|
|
85
|
+
# Build release notes
|
|
86
|
+
cat > release_notes.md << 'EOF'
|
|
87
|
+
## 🚀 What's New in v${{ steps.version.outputs.new_version }}
|
|
88
|
+
|
|
89
|
+
EOF
|
|
90
|
+
|
|
91
|
+
if [ ! -z "$FEATURES" ]; then
|
|
92
|
+
echo "### ✨ New Features" >> release_notes.md
|
|
93
|
+
echo "$FEATURES" >> release_notes.md
|
|
94
|
+
echo "" >> release_notes.md
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
if [ ! -z "$FIXES" ]; then
|
|
98
|
+
echo "### 🐛 Bug Fixes" >> release_notes.md
|
|
99
|
+
echo "$FIXES" >> release_notes.md
|
|
100
|
+
echo "" >> release_notes.md
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
if [ ! -z "$OTHERS" ]; then
|
|
104
|
+
echo "### 📦 Other Changes" >> release_notes.md
|
|
105
|
+
echo "$OTHERS" >> release_notes.md
|
|
106
|
+
echo "" >> release_notes.md
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
if [ ! -z "$CHORES" ]; then
|
|
110
|
+
echo "### 🔧 Maintenance" >> release_notes.md
|
|
111
|
+
echo "$CHORES" >> release_notes.md
|
|
112
|
+
echo "" >> release_notes.md
|
|
113
|
+
fi
|
|
114
|
+
|
|
115
|
+
cat >> release_notes.md << 'EOF'
|
|
116
|
+
|
|
117
|
+
## 📦 Installation
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npx bmad-method install
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Full Changelog**: https://github.com/bmadcode/BMAD-METHOD/compare/${{ steps.version.outputs.previous_tag }}...v${{ steps.version.outputs.new_version }}
|
|
124
|
+
EOF
|
|
125
|
+
|
|
126
|
+
# Output for GitHub Actions
|
|
127
|
+
echo "RELEASE_NOTES<<EOF" >> $GITHUB_OUTPUT
|
|
128
|
+
cat release_notes.md >> $GITHUB_OUTPUT
|
|
129
|
+
echo "EOF" >> $GITHUB_OUTPUT
|
|
130
|
+
|
|
131
|
+
- name: Create and push tag
|
|
132
|
+
run: |
|
|
133
|
+
# Check if tag already exists
|
|
134
|
+
if git rev-parse "v${{ steps.version.outputs.new_version }}" >/dev/null 2>&1; then
|
|
135
|
+
echo "Tag v${{ steps.version.outputs.new_version }} already exists, skipping tag creation"
|
|
136
|
+
else
|
|
137
|
+
git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
|
|
138
|
+
git push origin "v${{ steps.version.outputs.new_version }}"
|
|
139
|
+
fi
|
|
140
|
+
|
|
141
|
+
- name: Push changes to main
|
|
142
|
+
run: |
|
|
143
|
+
if git push origin HEAD:main 2>/dev/null; then
|
|
144
|
+
echo "✅ Successfully pushed to main branch"
|
|
145
|
+
else
|
|
146
|
+
echo "⚠️ Could not push to main (protected branch). This is expected."
|
|
147
|
+
echo "📝 Version bump and tag were created successfully."
|
|
148
|
+
fi
|
|
149
|
+
|
|
150
|
+
- name: Publish to NPM
|
|
151
|
+
env:
|
|
152
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
153
|
+
run: npm publish
|
|
154
|
+
|
|
155
|
+
- name: Create GitHub Release
|
|
156
|
+
uses: actions/create-release@v1
|
|
157
|
+
env:
|
|
158
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
159
|
+
with:
|
|
160
|
+
tag_name: v${{ steps.version.outputs.new_version }}
|
|
161
|
+
release_name: "BMad Method v${{ steps.version.outputs.new_version }}"
|
|
162
|
+
body: ${{ steps.release_notes.outputs.RELEASE_NOTES }}
|
|
163
|
+
draft: false
|
|
164
|
+
prerelease: false
|
|
165
|
+
|
|
166
|
+
- name: Summary
|
|
167
|
+
run: |
|
|
168
|
+
echo "🎉 Successfully released v${{ steps.version.outputs.new_version }}!"
|
|
169
|
+
echo "📦 Published to NPM with @latest tag"
|
|
170
|
+
echo "🏷️ Git tag: v${{ steps.version.outputs.new_version }}"
|
|
171
|
+
echo "✅ Users running 'npx bmad-method install' will now get version ${{ steps.version.outputs.new_version }}"
|
|
172
|
+
echo ""
|
|
173
|
+
echo "📝 Release notes preview:"
|
|
174
|
+
cat release_notes.md
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
name: PR Validation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main]
|
|
6
|
+
types: [opened, synchronize, reopened]
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
validate:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
if: github.event.repository.fork != true || vars.ENABLE_CI_IN_FORK == 'true'
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- name: Checkout
|
|
15
|
+
uses: actions/checkout@v4
|
|
16
|
+
|
|
17
|
+
- name: Setup Node.js
|
|
18
|
+
uses: actions/setup-node@v4
|
|
19
|
+
with:
|
|
20
|
+
node-version: "20"
|
|
21
|
+
cache: npm
|
|
22
|
+
|
|
23
|
+
- name: Install dependencies
|
|
24
|
+
run: npm ci
|
|
25
|
+
|
|
26
|
+
- name: Run validation
|
|
27
|
+
run: npm run validate
|
|
28
|
+
|
|
29
|
+
- name: Check formatting
|
|
30
|
+
run: npm run format:check
|
|
31
|
+
|
|
32
|
+
- name: Run linter
|
|
33
|
+
run: npm run lint
|
|
34
|
+
|
|
35
|
+
- name: Run tests (if available)
|
|
36
|
+
run: npm test --if-present
|
|
37
|
+
|
|
38
|
+
- name: Comment on PR if checks fail
|
|
39
|
+
if: failure()
|
|
40
|
+
uses: actions/github-script@v7
|
|
41
|
+
with:
|
|
42
|
+
script: |
|
|
43
|
+
github.rest.issues.createComment({
|
|
44
|
+
issue_number: context.issue.number,
|
|
45
|
+
owner: context.repo.owner,
|
|
46
|
+
repo: context.repo.repo,
|
|
47
|
+
body: `❌ **PR Validation Failed**
|
|
48
|
+
|
|
49
|
+
This PR has validation errors that must be fixed before merging:
|
|
50
|
+
- Run \`npm run validate\` to check agent/team configs
|
|
51
|
+
- Run \`npm run format:check\` to check formatting (fix with \`npm run format\`)
|
|
52
|
+
- Run \`npm run lint\` to check linting issues (fix with \`npm run lint:fix\`)
|
|
53
|
+
|
|
54
|
+
Please fix these issues and push the changes.`
|
|
55
|
+
})
|
package/.vscode/settings.json
CHANGED
|
@@ -40,5 +40,30 @@
|
|
|
40
40
|
"tileset",
|
|
41
41
|
"Trae",
|
|
42
42
|
"VNET"
|
|
43
|
-
]
|
|
43
|
+
],
|
|
44
|
+
"json.schemas": [
|
|
45
|
+
{
|
|
46
|
+
"fileMatch": ["package.json"],
|
|
47
|
+
"url": "https://json.schemastore.org/package.json"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"fileMatch": [".vscode/settings.json"],
|
|
51
|
+
"url": "vscode://schemas/settings/folder"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"editor.formatOnSave": true,
|
|
55
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
56
|
+
"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
|
|
57
|
+
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
|
|
58
|
+
"[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
|
|
59
|
+
"[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
|
|
60
|
+
"prettier.prettierPath": "node_modules/prettier",
|
|
61
|
+
"prettier.requireConfig": true,
|
|
62
|
+
"yaml.format.enable": false,
|
|
63
|
+
"eslint.useFlatConfig": true,
|
|
64
|
+
"eslint.validate": ["javascript", "yaml"],
|
|
65
|
+
"editor.codeActionsOnSave": {
|
|
66
|
+
"source.fixAll.eslint": "explicit"
|
|
67
|
+
},
|
|
68
|
+
"editor.rulers": [100]
|
|
44
69
|
}
|