bmad-elsabro 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/.auto-claude-security.json +209 -0
- package/.claude_settings.json +34 -0
- package/.coderabbit.yaml +40 -0
- package/.nvmrc +1 -0
- package/.prettierignore +9 -0
- package/AI_TEST_GENERATOR_VERIFICATION.md +260 -0
- package/BUDGET_ALERT_TESTING.md +325 -0
- package/CHANGELOG.md +1488 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +167 -0
- package/CONTRIBUTORS.md +32 -0
- package/LEGACY_MIGRATION_TESTING.md +428 -0
- package/LICENSE +30 -0
- package/PARTY_MODE_VERIFICATION.md +274 -0
- package/PROJECT_DETECTOR_TESTING.md +288 -0
- package/README.md +236 -0
- package/SECURITY.md +85 -0
- package/TRADEMARK.md +55 -0
- package/WORKFLOW_ROUTER_IMPLEMENTATION.md +379 -0
- package/Wordmark.png +0 -0
- package/banner-bmad-method.png +0 -0
- package/build/icons/512x512.png +0 -0
- package/build-mac.sh +3 -0
- package/docs/404.md +9 -0
- package/docs/_STYLE_GUIDE.md +367 -0
- package/docs/developer/api-reference.md +945 -0
- package/docs/developer/architecture.md +563 -0
- package/docs/developer/contributing.md +831 -0
- package/docs/downloads.md +74 -0
- package/docs/explanation/advanced-elicitation.md +24 -0
- package/docs/explanation/adversarial-review.md +57 -0
- package/docs/explanation/brainstorming.md +31 -0
- package/docs/explanation/brownfield-faq.md +55 -0
- package/docs/explanation/party-mode.md +57 -0
- package/docs/explanation/preventing-agent-conflicts.md +110 -0
- package/docs/explanation/quick-flow.md +27 -0
- package/docs/explanation/why-solutioning-matters.md +75 -0
- package/docs/how-to/brownfield/index.md +84 -0
- package/docs/how-to/brownfield/quick-fix-in-brownfield.md +76 -0
- package/docs/how-to/customize-bmad.md +158 -0
- package/docs/how-to/get-answers-about-bmad.md +102 -0
- package/docs/how-to/install-bmad.md +82 -0
- package/docs/how-to/shard-large-documents.md +101 -0
- package/docs/how-to/upgrade-to-v6.md +131 -0
- package/docs/index.md +56 -0
- package/docs/reference/workflow-map.md +83 -0
- package/docs/tea/explanation/engagement-models.md +710 -0
- package/docs/tea/explanation/fixture-architecture.md +457 -0
- package/docs/tea/explanation/knowledge-base-system.md +554 -0
- package/docs/tea/explanation/network-first-patterns.md +853 -0
- package/docs/tea/explanation/risk-based-testing.md +586 -0
- package/docs/tea/explanation/tea-overview.md +410 -0
- package/docs/tea/explanation/test-quality-standards.md +907 -0
- package/docs/tea/explanation/testing-as-engineering.md +112 -0
- package/docs/tea/glossary/index.md +159 -0
- package/docs/tea/how-to/brownfield/use-tea-for-enterprise.md +525 -0
- package/docs/tea/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
- package/docs/tea/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
- package/docs/tea/how-to/customization/integrate-playwright-utils.md +813 -0
- package/docs/tea/how-to/workflows/run-atdd.md +436 -0
- package/docs/tea/how-to/workflows/run-automate.md +653 -0
- package/docs/tea/how-to/workflows/run-nfr-assess.md +679 -0
- package/docs/tea/how-to/workflows/run-test-design.md +135 -0
- package/docs/tea/how-to/workflows/run-test-review.md +605 -0
- package/docs/tea/how-to/workflows/run-trace.md +883 -0
- package/docs/tea/how-to/workflows/setup-ci.md +712 -0
- package/docs/tea/how-to/workflows/setup-test-framework.md +98 -0
- package/docs/tea/reference/commands.md +276 -0
- package/docs/tea/reference/configuration.md +678 -0
- package/docs/tea/reference/knowledge-base.md +340 -0
- package/docs/tea/tutorials/tea-lite-quickstart.md +444 -0
- package/docs/tutorials/getting-started.md +205 -0
- package/docs/user-guide/getting-started.md +348 -0
- package/docs/user-guide/token-economy.md +601 -0
- package/docs/user-guide/workflows.md +546 -0
- package/electron-builder.yml +75 -0
- package/eslint.config.mjs +152 -0
- package/package.json +162 -0
- package/prettier.config.mjs +32 -0
- package/public/monaco-workers/index.js +21 -0
- package/renderer/App.tsx +311 -0
- package/renderer/components/ChatPanel.tsx +285 -0
- package/renderer/components/CodeEditor.tsx +327 -0
- package/renderer/components/CodeEditor.types.ts +245 -0
- package/renderer/components/FlowSelector.tsx +534 -0
- package/renderer/components/MessageInput.tsx +252 -0
- package/renderer/components/MessageList.tsx +204 -0
- package/renderer/components/MigrationWizard.tsx +896 -0
- package/renderer/components/NotificationCenter.tsx +291 -0
- package/renderer/components/OnboardingWizard.tsx +112 -0
- package/renderer/components/PartyMode.tsx +555 -0
- package/renderer/components/Sidebar.module.css +258 -0
- package/renderer/components/Sidebar.tsx +157 -0
- package/renderer/components/TemplateSelector.tsx +553 -0
- package/renderer/components/Terminal.tsx +523 -0
- package/renderer/components/TestCenter.tsx +364 -0
- package/renderer/components/TokenAnalytics.tsx +607 -0
- package/renderer/components/TokenMonitor.tsx +331 -0
- package/renderer/components/TutorialOverlay.tsx +483 -0
- package/renderer/components/WorkflowEditor.tsx +470 -0
- package/renderer/components/onboarding/Step1Welcome.tsx +72 -0
- package/renderer/components/onboarding/Step2Setup.tsx +193 -0
- package/renderer/components/onboarding/Step3CreateProject.tsx +209 -0
- package/renderer/components/test-center/CoverageDashboard.tsx +588 -0
- package/renderer/components/test-center/ELI5Guide.tsx +521 -0
- package/renderer/components/test-center/TestList.tsx +381 -0
- package/renderer/components/test-center/TestRunner.tsx +431 -0
- package/renderer/components/test-center/TestStepWizard.tsx +1000 -0
- package/renderer/components/test-center/VisualTestBuilder.tsx +460 -0
- package/renderer/components/workflow/DependencyEdge.tsx +200 -0
- package/renderer/components/workflow/StepNode.tsx +234 -0
- package/renderer/components/workflow/StepPalette.tsx +412 -0
- package/renderer/context/ThemeContext.tsx +97 -0
- package/renderer/data/shortcuts.json +94 -0
- package/renderer/data/testing-guides.json +261 -0
- package/renderer/data/tutorials.json +546 -0
- package/renderer/hooks/useKeyboardShortcuts.ts +249 -0
- package/renderer/hooks/useNotifications.ts +267 -0
- package/renderer/hooks/useTheme.ts +149 -0
- package/renderer/hooks/useTokenTracking.ts +464 -0
- package/renderer/hooks/useWorkflowState.ts +309 -0
- package/renderer/index.html +16 -0
- package/renderer/index.tsx +17 -0
- package/renderer/lib/MONACO_OFFLINE_CONFIG.md +153 -0
- package/renderer/lib/chart-utils.ts +472 -0
- package/renderer/lib/file-system-provider.ts +295 -0
- package/renderer/lib/monaco-loader.ts +247 -0
- package/renderer/renderer/components/NOTIFICATION_SYSTEM.md +192 -0
- package/renderer/styles.css +55 -0
- package/renderer/types/css-modules.d.ts +21 -0
- package/renderer/types/electron.d.ts +316 -0
- package/src/bmm/_module-installer/installer.js +48 -0
- package/src/bmm/agents/analyst.agent.yaml +36 -0
- package/src/bmm/agents/architect.agent.yaml +28 -0
- package/src/bmm/agents/dev.agent.yaml +38 -0
- package/src/bmm/agents/parallel-orchestrator.agent.yaml +50 -0
- package/src/bmm/agents/pm.agent.yaml +46 -0
- package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
- package/src/bmm/agents/sm.agent.yaml +36 -0
- package/src/bmm/agents/tea.agent.yaml +63 -0
- package/src/bmm/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
- package/src/bmm/agents/tech-writer/tech-writer.agent.yaml +45 -0
- package/src/bmm/agents/ux-designer.agent.yaml +26 -0
- package/src/bmm/agents/yolo-dev.agent.yaml +41 -0
- package/src/bmm/data/auto-testing-config.yaml +84 -0
- package/src/bmm/data/guided-mode-instructions.yaml +112 -0
- package/src/bmm/data/parallelization-config.yaml +136 -0
- package/src/bmm/data/project-context-template.md +26 -0
- package/src/bmm/data/speed-profiles.yaml +127 -0
- package/src/bmm/module-help.csv +32 -0
- package/src/bmm/module.yaml +60 -0
- package/src/bmm/teams/default-party.csv +21 -0
- package/src/bmm/teams/team-fullstack.yaml +12 -0
- package/src/bmm/testarch/knowledge/adr-quality-readiness-checklist.md +350 -0
- package/src/bmm/testarch/knowledge/api-request.md +442 -0
- package/src/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
- package/src/bmm/testarch/knowledge/auth-session.md +552 -0
- package/src/bmm/testarch/knowledge/burn-in.md +273 -0
- package/src/bmm/testarch/knowledge/ci-burn-in.md +675 -0
- package/src/bmm/testarch/knowledge/component-tdd.md +486 -0
- package/src/bmm/testarch/knowledge/contract-testing.md +957 -0
- package/src/bmm/testarch/knowledge/data-factories.md +500 -0
- package/src/bmm/testarch/knowledge/email-auth.md +721 -0
- package/src/bmm/testarch/knowledge/error-handling.md +725 -0
- package/src/bmm/testarch/knowledge/feature-flags.md +750 -0
- package/src/bmm/testarch/knowledge/file-utils.md +463 -0
- package/src/bmm/testarch/knowledge/fixture-architecture.md +401 -0
- package/src/bmm/testarch/knowledge/fixtures-composition.md +382 -0
- package/src/bmm/testarch/knowledge/intercept-network-call.md +430 -0
- package/src/bmm/testarch/knowledge/log.md +429 -0
- package/src/bmm/testarch/knowledge/network-error-monitor.md +405 -0
- package/src/bmm/testarch/knowledge/network-first.md +486 -0
- package/src/bmm/testarch/knowledge/network-recorder.md +527 -0
- package/src/bmm/testarch/knowledge/nfr-criteria.md +670 -0
- package/src/bmm/testarch/knowledge/overview.md +286 -0
- package/src/bmm/testarch/knowledge/playwright-config.md +730 -0
- package/src/bmm/testarch/knowledge/probability-impact.md +601 -0
- package/src/bmm/testarch/knowledge/recurse.md +421 -0
- package/src/bmm/testarch/knowledge/risk-governance.md +615 -0
- package/src/bmm/testarch/knowledge/selective-testing.md +732 -0
- package/src/bmm/testarch/knowledge/selector-resilience.md +527 -0
- package/src/bmm/testarch/knowledge/test-healing-patterns.md +644 -0
- package/src/bmm/testarch/knowledge/test-levels-framework.md +473 -0
- package/src/bmm/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/src/bmm/testarch/knowledge/test-quality.md +664 -0
- package/src/bmm/testarch/knowledge/timing-debugging.md +372 -0
- package/src/bmm/testarch/knowledge/visual-debugging.md +524 -0
- package/src/bmm/testarch/tea-index.csv +35 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +58 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +137 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +229 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +234 -0
- package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +237 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +200 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +249 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +259 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +177 -0
- package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
- package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +137 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +239 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +248 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +239 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
- package/src/bmm/workflows/1-analysis/research/workflow.md +173 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +13 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +153 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +218 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/validation-report-prd-workflow.md +433 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow.md +150 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +43 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +190 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +178 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +179 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +139 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +252 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +135 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +55 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +11 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +153 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +164 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +224 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +331 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +50 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +59 -0
- package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
- package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
- package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +51 -0
- package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
- package/src/bmm/workflows/4-implementation/correct-course/instructions.md +206 -0
- package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +60 -0
- package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
- package/src/bmm/workflows/4-implementation/create-story/instructions.xml +345 -0
- package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
- package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +61 -0
- package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
- package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +410 -0
- package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +32 -0
- package/src/bmm/workflows/4-implementation/fix-and-test/workflow.md +197 -0
- package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1443 -0
- package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +58 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +225 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +54 -0
- package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +229 -0
- package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +36 -0
- package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/steps/step-01-detect.md +55 -0
- package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/steps/step-02-confirm.md +48 -0
- package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/steps/step-03-implement.md +61 -0
- package/src/bmm/workflows/bmad-quick-flow/brownfield-fast-track/workflow.md +41 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +176 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +120 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +153 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +113 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +106 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +149 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +73 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +192 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +145 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +128 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +93 -0
- package/src/bmm/workflows/bmad-quick-flow/yolo-mode/steps/step-01-rapid-spec.md +54 -0
- package/src/bmm/workflows/bmad-quick-flow/yolo-mode/steps/step-02-ship-it.md +65 -0
- package/src/bmm/workflows/bmad-quick-flow/yolo-mode/workflow.md +54 -0
- package/src/bmm/workflows/document-project/checklist.md +245 -0
- package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
- package/src/bmm/workflows/document-project/instructions.md +221 -0
- package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
- package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
- package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
- package/src/bmm/workflows/document-project/workflow.yaml +30 -0
- package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-library.json +90 -0
- package/src/bmm/workflows/excalidraw-diagrams/_shared/excalidraw-templates.yaml +127 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/checklist.md +39 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +130 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml +27 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-diagram/checklist.md +43 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +141 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml +27 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/checklist.md +49 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +241 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml +27 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/checklist.md +38 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +133 -0
- package/src/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml +27 -0
- package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-01-parse-target.md +49 -0
- package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-02-launch-streams.md +135 -0
- package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-03-sync-point.md +74 -0
- package/src/bmm/workflows/parallel-work/parallel-analysis/steps/step-04-merge-insights.md +179 -0
- package/src/bmm/workflows/parallel-work/parallel-analysis/workflow.md +55 -0
- package/src/bmm/workflows/parallel-work/parallel-generation/workflow.md +109 -0
- package/src/bmm/workflows/parallel-work/parallel-reviews/workflow.md +111 -0
- package/src/bmm/workflows/parallel-work/parallel-stories/workflow.md +112 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-01-load-sprint.md +54 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-02-plan-execution.md +63 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-03-execute-stories.md +112 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-04-code-review.md +148 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-05-integration-testing.md +200 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/steps/step-06-sprint-report.md +290 -0
- package/src/bmm/workflows/parallel-work/sprint-mode/workflow.md +58 -0
- package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
- package/src/bmm/workflows/testarch/atdd/checklist.md +374 -0
- package/src/bmm/workflows/testarch/atdd/instructions.md +806 -0
- package/src/bmm/workflows/testarch/atdd/workflow.yaml +47 -0
- package/src/bmm/workflows/testarch/automate/checklist.md +582 -0
- package/src/bmm/workflows/testarch/automate/instructions.md +1324 -0
- package/src/bmm/workflows/testarch/automate/workflow.yaml +54 -0
- package/src/bmm/workflows/testarch/ci/checklist.md +247 -0
- package/src/bmm/workflows/testarch/ci/github-actions-template.yaml +198 -0
- package/src/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +149 -0
- package/src/bmm/workflows/testarch/ci/instructions.md +536 -0
- package/src/bmm/workflows/testarch/ci/workflow.yaml +47 -0
- package/src/bmm/workflows/testarch/framework/checklist.md +320 -0
- package/src/bmm/workflows/testarch/framework/instructions.md +481 -0
- package/src/bmm/workflows/testarch/framework/workflow.yaml +49 -0
- package/src/bmm/workflows/testarch/nfr-assess/checklist.md +407 -0
- package/src/bmm/workflows/testarch/nfr-assess/instructions.md +726 -0
- package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +461 -0
- package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
- package/src/bmm/workflows/testarch/test-design/checklist.md +407 -0
- package/src/bmm/workflows/testarch/test-design/instructions.md +1158 -0
- package/src/bmm/workflows/testarch/test-design/test-design-architecture-template.md +213 -0
- package/src/bmm/workflows/testarch/test-design/test-design-qa-template.md +286 -0
- package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
- package/src/bmm/workflows/testarch/test-design/workflow.yaml +71 -0
- package/src/bmm/workflows/testarch/test-review/checklist.md +472 -0
- package/src/bmm/workflows/testarch/test-review/instructions.md +628 -0
- package/src/bmm/workflows/testarch/test-review/test-review-template.md +390 -0
- package/src/bmm/workflows/testarch/test-review/workflow.yaml +48 -0
- package/src/bmm/workflows/testarch/trace/checklist.md +642 -0
- package/src/bmm/workflows/testarch/trace/instructions.md +1030 -0
- package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
- package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
- package/src/core/_module-installer/installer.js +60 -0
- package/src/core/agents/bmad-master.agent.yaml +29 -0
- package/src/core/module-help.csv +9 -0
- package/src/core/module.yaml +25 -0
- package/src/core/resources/excalidraw/README.md +160 -0
- package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
- package/src/core/resources/excalidraw/library-loader.md +50 -0
- package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
- package/src/core/tasks/editorial-review-prose.xml +100 -0
- package/src/core/tasks/editorial-review-structure.xml +209 -0
- package/src/core/tasks/help.md +62 -0
- package/src/core/tasks/index-docs.xml +65 -0
- package/src/core/tasks/review-adversarial-general.xml +48 -0
- package/src/core/tasks/shard-doc.xml +109 -0
- package/src/core/tasks/workflow.xml +235 -0
- package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
- package/src/core/workflows/advanced-elicitation/workflow.xml +117 -0
- package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
- package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +197 -0
- package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
- package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
- package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
- package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
- package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +399 -0
- package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
- package/src/core/workflows/brainstorming/template.md +15 -0
- package/src/core/workflows/brainstorming/workflow.md +58 -0
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +157 -0
- package/src/core/workflows/party-mode/workflow.md +194 -0
- package/src/utility/agent-components/activation-rules.txt +6 -0
- package/src/utility/agent-components/activation-steps.txt +14 -0
- package/src/utility/agent-components/agent-command-header.md +1 -0
- package/src/utility/agent-components/agent.customize.template.yaml +41 -0
- package/src/utility/agent-components/handler-action.txt +4 -0
- package/src/utility/agent-components/handler-data.txt +5 -0
- package/src/utility/agent-components/handler-exec.txt +6 -0
- package/src/utility/agent-components/handler-multi.txt +14 -0
- package/src/utility/agent-components/handler-tmpl.txt +5 -0
- package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
- package/src/utility/agent-components/handler-workflow.txt +10 -0
- package/src/utility/agent-components/menu-handlers.txt +6 -0
- package/tools/bmad-npx-wrapper.js +69 -0
- package/tools/build-docs.js +577 -0
- package/tools/cli/README.md +7 -0
- package/tools/cli/bmad-cli.js +65 -0
- package/tools/cli/commands/diagnostics.js +303 -0
- package/tools/cli/commands/install.js +87 -0
- package/tools/cli/commands/module.js +210 -0
- package/tools/cli/commands/status.js +65 -0
- package/tools/cli/commands/uninstall.js +86 -0
- package/tools/cli/external-official-modules.yaml +54 -0
- package/tools/cli/installers/install-messages.yaml +59 -0
- package/tools/cli/installers/lib/core/config-collector.js +1079 -0
- package/tools/cli/installers/lib/core/custom-module-cache.js +259 -0
- package/tools/cli/installers/lib/core/dependency-resolver.js +739 -0
- package/tools/cli/installers/lib/core/detector.js +223 -0
- package/tools/cli/installers/lib/core/ide-config-manager.js +156 -0
- package/tools/cli/installers/lib/core/installer.js +2812 -0
- package/tools/cli/installers/lib/core/manifest-generator.js +1054 -0
- package/tools/cli/installers/lib/core/manifest.js +1036 -0
- package/tools/cli/installers/lib/custom/handler.js +363 -0
- package/tools/cli/installers/lib/ide/_base-ide.js +655 -0
- package/tools/cli/installers/lib/ide/_config-driven.js +450 -0
- package/tools/cli/installers/lib/ide/codex.js +440 -0
- package/tools/cli/installers/lib/ide/kilo.js +250 -0
- package/tools/cli/installers/lib/ide/kiro-cli.js +326 -0
- package/tools/cli/installers/lib/ide/manager.js +271 -0
- package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
- package/tools/cli/installers/lib/ide/platform-codes.yaml +227 -0
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +181 -0
- package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +163 -0
- package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
- package/tools/cli/installers/lib/ide/shared/path-utils.js +292 -0
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +270 -0
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +319 -0
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +15 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +6 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
- package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
- package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
- package/tools/cli/installers/lib/ide/templates/split/opencode/body.md +10 -0
- package/tools/cli/installers/lib/ide/templates/split/opencode/header.md +4 -0
- package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
- package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
- package/tools/cli/installers/lib/message-loader.js +85 -0
- package/tools/cli/installers/lib/modules/external-manager.js +135 -0
- package/tools/cli/installers/lib/modules/manager.js +1375 -0
- package/tools/cli/lib/activation-builder.js +163 -0
- package/tools/cli/lib/agent/compiler.js +522 -0
- package/tools/cli/lib/agent/compiler.ts +572 -0
- package/tools/cli/lib/agent/installer.js +716 -0
- package/tools/cli/lib/agent/template-engine.js +152 -0
- package/tools/cli/lib/agent/types.ts +155 -0
- package/tools/cli/lib/agent-analyzer.js +109 -0
- package/tools/cli/lib/agent-party-generator.js +194 -0
- package/tools/cli/lib/cli-utils.js +227 -0
- package/tools/cli/lib/config.js +213 -0
- package/tools/cli/lib/config.ts +227 -0
- package/tools/cli/lib/file-ops.js +204 -0
- package/tools/cli/lib/file-ops.ts +215 -0
- package/tools/cli/lib/platform-codes.js +116 -0
- package/tools/cli/lib/project-root.js +77 -0
- package/tools/cli/lib/prompts.js +433 -0
- package/tools/cli/lib/prompts.ts +541 -0
- package/tools/cli/lib/types/config.types.ts +43 -0
- package/tools/cli/lib/types/xml-handler.types.ts +50 -0
- package/tools/cli/lib/ui.js +1660 -0
- package/tools/cli/lib/xml-handler.js +177 -0
- package/tools/cli/lib/xml-handler.ts +188 -0
- package/tools/cli/lib/xml-to-markdown.js +82 -0
- package/tools/cli/lib/yaml-format.js +245 -0
- package/tools/cli/lib/yaml-xml-builder.js +587 -0
- package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
- package/tools/docs/fix-refs.md +91 -0
- package/tools/docs/index.md +2 -0
- package/tools/fix-doc-links.js +288 -0
- package/tools/flattener/aggregate.js +76 -0
- package/tools/flattener/aggregate.ts +78 -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/files.ts +31 -0
- package/tools/flattener/ignoreRules.js +172 -0
- package/tools/flattener/main.js +483 -0
- package/tools/flattener/main.ts +262 -0
- package/tools/flattener/projectRoot.js +201 -0
- package/tools/flattener/prompts.js +44 -0
- package/tools/flattener/stats.helpers.js +368 -0
- package/tools/flattener/stats.js +75 -0
- package/tools/flattener/test-matrix.js +409 -0
- package/tools/flattener/types.ts +53 -0
- package/tools/flattener/xml.js +82 -0
- package/tools/format-workflow-md.js +263 -0
- package/tools/lib/xml-utils.js +13 -0
- package/tools/maintainer/review-pr-README.md +55 -0
- package/tools/maintainer/review-pr.md +242 -0
- package/tools/migrate-custom-module-paths.js +124 -0
- package/tools/platform-codes.yaml +157 -0
- package/tools/schema/agent.js +491 -0
- package/tools/schema/agent.ts +489 -0
- package/tools/schema/agent.types.ts +31 -0
- package/tools/update-bmad.sh +24 -0
- package/tools/validate-agent-schema.js +110 -0
- package/tools/validate-doc-links.js +371 -0
- package/tools/validate-svg-changes.sh +356 -0
- package/vite-plugin-monaco-editor.ts +108 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Notification System
|
|
2
|
+
|
|
3
|
+
A comprehensive notification system for BMAD Studio with support for multiple notification types, auto-dismissal, manual dismissal, and action buttons.
|
|
4
|
+
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
### NotificationCenter
|
|
8
|
+
|
|
9
|
+
Fixed-position component that displays notifications with smooth animations.
|
|
10
|
+
|
|
11
|
+
**Features:**
|
|
12
|
+
- Multiple notification types (success, error, warning, info)
|
|
13
|
+
- Auto-dismiss with configurable timeout
|
|
14
|
+
- Manual dismissal via close button
|
|
15
|
+
- Smooth enter/exit animations
|
|
16
|
+
- Stacking support for multiple notifications
|
|
17
|
+
- Dark/light theme support
|
|
18
|
+
- Progress bar showing remaining time
|
|
19
|
+
- ARIA live regions for accessibility
|
|
20
|
+
|
|
21
|
+
### useNotifications Hook
|
|
22
|
+
|
|
23
|
+
Custom React hook for managing notification state and lifecycle.
|
|
24
|
+
|
|
25
|
+
**Features:**
|
|
26
|
+
- Add notifications with `success()`, `error()`, `warning()`, `info()`, or `notify()`
|
|
27
|
+
- Dismiss individual notifications with `dismiss(id)`
|
|
28
|
+
- Clear all notifications with `clearAll()`
|
|
29
|
+
- Configurable auto-dismiss duration
|
|
30
|
+
- Optional action buttons
|
|
31
|
+
- Unique ID generation
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
### Basic Setup
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import React from 'react';
|
|
39
|
+
import NotificationCenter from './components/NotificationCenter';
|
|
40
|
+
import { useNotifications } from './hooks/useNotifications';
|
|
41
|
+
|
|
42
|
+
function App() {
|
|
43
|
+
const { notifications, success, error, warning, info, dismiss } = useNotifications();
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<div>
|
|
47
|
+
{/* Your app content */}
|
|
48
|
+
|
|
49
|
+
{/* Add NotificationCenter anywhere in your component tree */}
|
|
50
|
+
<NotificationCenter
|
|
51
|
+
notifications={notifications}
|
|
52
|
+
onDismiss={dismiss}
|
|
53
|
+
position="top-right"
|
|
54
|
+
/>
|
|
55
|
+
</div>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Showing Notifications
|
|
61
|
+
|
|
62
|
+
```tsx
|
|
63
|
+
// Success notification (auto-dismisses after 5 seconds)
|
|
64
|
+
success('Operation completed successfully!');
|
|
65
|
+
|
|
66
|
+
// Error notification (does not auto-dismiss by default)
|
|
67
|
+
error('An error occurred', {
|
|
68
|
+
description: 'Please check your input and try again.'
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Warning notification
|
|
72
|
+
warning('This action cannot be undone!', {
|
|
73
|
+
duration: 10000 // Custom 10-second duration
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// Info notification with action button
|
|
77
|
+
info('New update available', {
|
|
78
|
+
description: 'Version 1.1.0 is ready to install.',
|
|
79
|
+
action: {
|
|
80
|
+
label: 'Update Now',
|
|
81
|
+
onClick: () => {
|
|
82
|
+
// Handle update
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// Custom notification with all options
|
|
88
|
+
notify('success', 'Custom notification', {
|
|
89
|
+
description: 'Optional detailed description',
|
|
90
|
+
duration: 7000, // 7 seconds
|
|
91
|
+
dismissible: true, // Show dismiss button
|
|
92
|
+
action: {
|
|
93
|
+
label: 'View Details',
|
|
94
|
+
onClick: () => console.log('Action clicked')
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Advanced Options
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
// Notification that never auto-dismisses
|
|
103
|
+
error('Critical error', {
|
|
104
|
+
duration: 0, // 0 = no auto-dismiss
|
|
105
|
+
dismissible: true
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// Non-dismissible notification (e.g., for system messages)
|
|
109
|
+
info('System maintenance in progress', {
|
|
110
|
+
duration: 0,
|
|
111
|
+
dismissible: false
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
// Get notification ID for manual control
|
|
115
|
+
const id = success('Processing...');
|
|
116
|
+
// Later, dismiss it manually
|
|
117
|
+
dismiss(id);
|
|
118
|
+
|
|
119
|
+
// Clear all notifications at once
|
|
120
|
+
clearAll();
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Configuration
|
|
124
|
+
|
|
125
|
+
**NotificationCenter Props:**
|
|
126
|
+
- `notifications` (required): Array of notifications from `useNotifications` hook
|
|
127
|
+
- `onDismiss` (required): Callback function to dismiss notifications
|
|
128
|
+
- `position`: Position of notification center (default: `'top-right'`)
|
|
129
|
+
- Options: `'top-right'`, `'top-left'`, `'bottom-right'`, `'bottom-left'`
|
|
130
|
+
- `maxVisible`: Maximum number of notifications to display (default: `5`)
|
|
131
|
+
- `className`: Optional custom CSS class
|
|
132
|
+
|
|
133
|
+
**Notification Options:**
|
|
134
|
+
- `type`: Notification type (`'success'`, `'error'`, `'warning'`, `'info'`)
|
|
135
|
+
- `message`: Main notification message (required)
|
|
136
|
+
- `description`: Optional detailed description
|
|
137
|
+
- `duration`: Auto-dismiss timeout in milliseconds (default: `5000` for most types, `0` for errors)
|
|
138
|
+
- `dismissible`: Whether notification can be manually dismissed (default: `true`)
|
|
139
|
+
- `action`: Optional action button with `label` and `onClick` callback
|
|
140
|
+
|
|
141
|
+
## Notification Types
|
|
142
|
+
|
|
143
|
+
### Success (Green)
|
|
144
|
+
- Icon: ✓
|
|
145
|
+
- Default duration: 5 seconds
|
|
146
|
+
- Use for: Successful operations, confirmations
|
|
147
|
+
|
|
148
|
+
### Error (Red)
|
|
149
|
+
- Icon: ✕
|
|
150
|
+
- Default duration: Never (0)
|
|
151
|
+
- Use for: Errors, failures, critical issues
|
|
152
|
+
|
|
153
|
+
### Warning (Yellow)
|
|
154
|
+
- Icon: ⚠
|
|
155
|
+
- Default duration: 5 seconds
|
|
156
|
+
- Use for: Warnings, cautions, important notices
|
|
157
|
+
|
|
158
|
+
### Info (Blue)
|
|
159
|
+
- Icon: ℹ
|
|
160
|
+
- Default duration: 5 seconds
|
|
161
|
+
- Use for: Information, updates, tips
|
|
162
|
+
|
|
163
|
+
## Styling
|
|
164
|
+
|
|
165
|
+
The notification system uses TailwindCSS utility classes and supports dark mode automatically through the `dark:` variants.
|
|
166
|
+
|
|
167
|
+
Custom animations are defined in `renderer/styles.css`:
|
|
168
|
+
- `slideInRight`: Entrance animation
|
|
169
|
+
- `slideOutRight`: Exit animation
|
|
170
|
+
|
|
171
|
+
## Accessibility
|
|
172
|
+
|
|
173
|
+
- Uses ARIA `role="alert"` and `aria-live="polite"`
|
|
174
|
+
- Keyboard accessible dismiss buttons
|
|
175
|
+
- Focus management for action buttons
|
|
176
|
+
- Screen reader friendly labels
|
|
177
|
+
|
|
178
|
+
## Best Practices
|
|
179
|
+
|
|
180
|
+
1. **Use appropriate types**: Match notification type to the message severity
|
|
181
|
+
2. **Keep messages concise**: Main message should be brief, use description for details
|
|
182
|
+
3. **Don't overuse**: Too many notifications can overwhelm users
|
|
183
|
+
4. **Auto-dismiss appropriately**:
|
|
184
|
+
- Success/Info: 5 seconds is usually enough
|
|
185
|
+
- Warning: 7-10 seconds for important notices
|
|
186
|
+
- Error: Don't auto-dismiss unless trivial
|
|
187
|
+
5. **Provide actions when helpful**: If user can take action, include an action button
|
|
188
|
+
6. **Test with multiple notifications**: Ensure stacking behavior works correctly
|
|
189
|
+
|
|
190
|
+
## Examples
|
|
191
|
+
|
|
192
|
+
See `renderer/App.tsx` for a complete working example with demo buttons for each notification type.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
@tailwind base;
|
|
2
|
+
@tailwind components;
|
|
3
|
+
@tailwind utilities;
|
|
4
|
+
|
|
5
|
+
/* Custom styles for BMAD Studio */
|
|
6
|
+
body {
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 0;
|
|
9
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
|
10
|
+
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
|
11
|
+
sans-serif;
|
|
12
|
+
-webkit-font-smoothing: antialiased;
|
|
13
|
+
-moz-osx-font-smoothing: grayscale;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
code {
|
|
17
|
+
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
|
18
|
+
monospace;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
#root {
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: 100%;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Notification animations */
|
|
27
|
+
@keyframes slideInRight {
|
|
28
|
+
from {
|
|
29
|
+
transform: translateX(100%);
|
|
30
|
+
opacity: 0;
|
|
31
|
+
}
|
|
32
|
+
to {
|
|
33
|
+
transform: translateX(0);
|
|
34
|
+
opacity: 1;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@keyframes slideOutRight {
|
|
39
|
+
from {
|
|
40
|
+
transform: translateX(0);
|
|
41
|
+
opacity: 1;
|
|
42
|
+
}
|
|
43
|
+
to {
|
|
44
|
+
transform: translateX(100%);
|
|
45
|
+
opacity: 0;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.animate-slideInRight {
|
|
50
|
+
animation: slideInRight 0.3s ease-out;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.animate-slideOutRight {
|
|
54
|
+
animation: slideOutRight 0.3s ease-in;
|
|
55
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSS Modules Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This file provides TypeScript support for CSS Module imports.
|
|
5
|
+
* It allows importing .module.css files with proper type checking.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
declare module '*.module.css' {
|
|
9
|
+
const classes: { [key: string]: string };
|
|
10
|
+
export default classes;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare module '*.module.scss' {
|
|
14
|
+
const classes: { [key: string]: string };
|
|
15
|
+
export default classes;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare module '*.module.sass' {
|
|
19
|
+
const classes: { [key: string]: string };
|
|
20
|
+
export default classes;
|
|
21
|
+
}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript declarations for Electron IPC API
|
|
3
|
+
*
|
|
4
|
+
* Defines the types for window.electron API exposed by preload script.
|
|
5
|
+
*
|
|
6
|
+
* @module renderer/types/electron
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Workflow data structure
|
|
11
|
+
*/
|
|
12
|
+
interface WorkflowData {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
nodes: unknown[];
|
|
16
|
+
edges: unknown[];
|
|
17
|
+
createdAt: string | Date;
|
|
18
|
+
updatedAt: string | Date;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Workflow list item
|
|
23
|
+
*/
|
|
24
|
+
interface WorkflowListItem {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
path: string;
|
|
28
|
+
createdAt: string;
|
|
29
|
+
updatedAt: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Party Mode Agent
|
|
34
|
+
*/
|
|
35
|
+
interface PartyAgent {
|
|
36
|
+
id: string;
|
|
37
|
+
displayName: string;
|
|
38
|
+
title: string;
|
|
39
|
+
icon: string;
|
|
40
|
+
role: string;
|
|
41
|
+
identity: string;
|
|
42
|
+
communicationStyle: string;
|
|
43
|
+
principles?: string;
|
|
44
|
+
module?: string;
|
|
45
|
+
path?: string;
|
|
46
|
+
status: 'idle' | 'thinking' | 'speaking' | 'active';
|
|
47
|
+
contributions: number;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Party Mode Message
|
|
52
|
+
*/
|
|
53
|
+
interface PartyMessage {
|
|
54
|
+
id: string;
|
|
55
|
+
agentId: string;
|
|
56
|
+
agentName: string;
|
|
57
|
+
content: string;
|
|
58
|
+
timestamp: number;
|
|
59
|
+
metadata?: Record<string, unknown>;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Party Mode Session
|
|
64
|
+
*/
|
|
65
|
+
interface PartySession {
|
|
66
|
+
sessionId: string;
|
|
67
|
+
startTime: number;
|
|
68
|
+
endTime?: number;
|
|
69
|
+
agents: PartyAgent[];
|
|
70
|
+
messageHistory: PartyMessage[];
|
|
71
|
+
metadata?: Record<string, unknown>;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Agent Selection Criteria
|
|
76
|
+
*/
|
|
77
|
+
interface AgentSelectionCriteria {
|
|
78
|
+
count?: number;
|
|
79
|
+
preferredAgents?: string[];
|
|
80
|
+
requiredRole?: string;
|
|
81
|
+
balanceContributions?: boolean;
|
|
82
|
+
topic?: string;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Session Statistics
|
|
87
|
+
*/
|
|
88
|
+
interface PartySessionStats {
|
|
89
|
+
totalMessages: number;
|
|
90
|
+
agentContributions: Record<string, number>;
|
|
91
|
+
sessionDuration: number;
|
|
92
|
+
activeAgents: number;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Project type detection result
|
|
97
|
+
*/
|
|
98
|
+
interface ProjectTypeResult {
|
|
99
|
+
id: string;
|
|
100
|
+
name: string;
|
|
101
|
+
category: string;
|
|
102
|
+
confidence: number;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Project size information
|
|
107
|
+
*/
|
|
108
|
+
interface ProjectSize {
|
|
109
|
+
id: string;
|
|
110
|
+
name: string;
|
|
111
|
+
fileCount: number;
|
|
112
|
+
totalLines: number;
|
|
113
|
+
totalSize: number;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Project detection metadata
|
|
118
|
+
*/
|
|
119
|
+
interface ProjectDetectionMeta {
|
|
120
|
+
projectPath: string;
|
|
121
|
+
analyzedAt: string;
|
|
122
|
+
analysisTimeMs: number;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Complete project detection result
|
|
127
|
+
*/
|
|
128
|
+
interface ProjectDetectionResult {
|
|
129
|
+
types: ProjectTypeResult[];
|
|
130
|
+
size: ProjectSize;
|
|
131
|
+
meta: ProjectDetectionMeta;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Electron API interface exposed to renderer process
|
|
136
|
+
*/
|
|
137
|
+
interface ElectronAPI {
|
|
138
|
+
send: (channel: string, data: unknown) => void;
|
|
139
|
+
receive: (channel: string, func: (...args: unknown[]) => void) => void;
|
|
140
|
+
invoke: (channel: string, data?: unknown) => Promise<unknown>;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Platform information interface
|
|
145
|
+
*/
|
|
146
|
+
interface PlatformAPI {
|
|
147
|
+
os: string;
|
|
148
|
+
arch: string;
|
|
149
|
+
version: string;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Party Mode API
|
|
154
|
+
*/
|
|
155
|
+
interface PartyAPI {
|
|
156
|
+
getAgents: () => Promise<PartyAgent[]>;
|
|
157
|
+
startSession: (sessionId?: string, selectedAgentIds?: string[]) => Promise<PartySession>;
|
|
158
|
+
endSession: () => Promise<PartySession | null>;
|
|
159
|
+
getCurrentSession: () => Promise<PartySession | null>;
|
|
160
|
+
getSessionAgents: () => Promise<PartyAgent[]>;
|
|
161
|
+
selectAgents: (criteria: AgentSelectionCriteria) => Promise<PartyAgent[]>;
|
|
162
|
+
updateAgentStatus: (agentId: string, status: PartyAgent['status']) => Promise<void>;
|
|
163
|
+
recordContribution: (agentId: string) => Promise<void>;
|
|
164
|
+
addMessage: (message: Omit<PartyMessage, 'id' | 'timestamp'>) => Promise<PartyMessage>;
|
|
165
|
+
getMessageHistory: () => Promise<PartyMessage[]>;
|
|
166
|
+
getSessionStats: () => Promise<PartySessionStats>;
|
|
167
|
+
reset: () => Promise<void>;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Project Detector API
|
|
172
|
+
*/
|
|
173
|
+
interface ProjectAPI {
|
|
174
|
+
detect: (projectPath: string) => Promise<ProjectDetectionResult>;
|
|
175
|
+
getPrimaryType: (projectPath: string) => Promise<string | null>;
|
|
176
|
+
isType: (projectPath: string, typeId: string, minConfidence?: number) => Promise<boolean>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Legacy project information
|
|
181
|
+
*/
|
|
182
|
+
interface LegacyProjectInfo {
|
|
183
|
+
isLegacy: boolean;
|
|
184
|
+
version?: string;
|
|
185
|
+
projectPath: string;
|
|
186
|
+
directories: {
|
|
187
|
+
agents?: string;
|
|
188
|
+
workflows?: string;
|
|
189
|
+
config?: string;
|
|
190
|
+
steps?: string;
|
|
191
|
+
};
|
|
192
|
+
counts: {
|
|
193
|
+
agents: number;
|
|
194
|
+
workflows: number;
|
|
195
|
+
steps: number;
|
|
196
|
+
hasConfig: boolean;
|
|
197
|
+
};
|
|
198
|
+
issues: string[];
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Migration step
|
|
203
|
+
*/
|
|
204
|
+
interface MigrationStep {
|
|
205
|
+
id: string;
|
|
206
|
+
name: string;
|
|
207
|
+
description: string;
|
|
208
|
+
status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped';
|
|
209
|
+
progress: number;
|
|
210
|
+
error?: string;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Migration result
|
|
215
|
+
*/
|
|
216
|
+
interface MigrationResult {
|
|
217
|
+
success: boolean;
|
|
218
|
+
steps: MigrationStep[];
|
|
219
|
+
migrated: {
|
|
220
|
+
agents: number;
|
|
221
|
+
workflows: number;
|
|
222
|
+
config: boolean;
|
|
223
|
+
};
|
|
224
|
+
backupPath?: string;
|
|
225
|
+
error?: string;
|
|
226
|
+
completedAt: string;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Migration options
|
|
231
|
+
*/
|
|
232
|
+
interface MigrationOptions {
|
|
233
|
+
sourcePath: string;
|
|
234
|
+
createBackup?: boolean;
|
|
235
|
+
preserveOriginal?: boolean;
|
|
236
|
+
skipSteps?: string[];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Legacy Migrator API
|
|
241
|
+
*/
|
|
242
|
+
interface LegacyMigratorAPI {
|
|
243
|
+
detect: (projectPath: string) => Promise<{ success: boolean; data?: LegacyProjectInfo; error?: string }>;
|
|
244
|
+
migrate: (options: MigrationOptions) => Promise<{ success: boolean; data?: MigrationResult; error?: string }>;
|
|
245
|
+
rollback: (backupPath: string, targetPath: string) => Promise<{ success: boolean; data?: boolean; error?: string }>;
|
|
246
|
+
on: (event: string, callback: (...args: unknown[]) => void) => void;
|
|
247
|
+
off: (event: string) => void;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Flow type for workflow routing
|
|
252
|
+
*/
|
|
253
|
+
type FlowType = 'quick-flow' | 'full-method';
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Complexity level
|
|
257
|
+
*/
|
|
258
|
+
type ComplexityLevel = 'trivial' | 'simple' | 'moderate' | 'complex' | 'enterprise';
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Task analysis input for workflow router
|
|
262
|
+
*/
|
|
263
|
+
interface TaskAnalysisInput {
|
|
264
|
+
taskDescription: string;
|
|
265
|
+
projectType?: string;
|
|
266
|
+
projectSize?: 'tiny' | 'small' | 'medium' | 'large' | 'huge';
|
|
267
|
+
fileCount?: number;
|
|
268
|
+
userPreference?: FlowType;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Routing decision from workflow router
|
|
273
|
+
*/
|
|
274
|
+
interface RoutingDecision {
|
|
275
|
+
recommendedFlow: FlowType;
|
|
276
|
+
confidence: number;
|
|
277
|
+
complexity: ComplexityLevel;
|
|
278
|
+
reasoning: string;
|
|
279
|
+
characteristics: {
|
|
280
|
+
isNewProduct: boolean;
|
|
281
|
+
isMajorFeature: boolean;
|
|
282
|
+
requiresMultipleTeams: boolean;
|
|
283
|
+
requiresStakeholderAlignment: boolean;
|
|
284
|
+
isBugFix: boolean;
|
|
285
|
+
isRefactoring: boolean;
|
|
286
|
+
isSmallFeature: boolean;
|
|
287
|
+
isPrototype: boolean;
|
|
288
|
+
};
|
|
289
|
+
matchedKeywords: string[];
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Workflow Router API
|
|
294
|
+
*/
|
|
295
|
+
interface WorkflowRouterAPI {
|
|
296
|
+
analyzeTask: (input: TaskAnalysisInput) => Promise<RoutingDecision>;
|
|
297
|
+
getFlowDescription: (flow: FlowType) => Promise<string>;
|
|
298
|
+
getComplexityDescription: (complexity: ComplexityLevel) => Promise<string>;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Extend Window interface with Electron APIs
|
|
303
|
+
*/
|
|
304
|
+
declare global {
|
|
305
|
+
interface Window {
|
|
306
|
+
electron: ElectronAPI & {
|
|
307
|
+
party: PartyAPI;
|
|
308
|
+
project: ProjectAPI;
|
|
309
|
+
legacyMigrator: LegacyMigratorAPI;
|
|
310
|
+
workflowRouter: WorkflowRouterAPI;
|
|
311
|
+
};
|
|
312
|
+
platform: PlatformAPI;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const fs = require('fs-extra');
|
|
2
|
+
const path = require('node:path');
|
|
3
|
+
const chalk = require('chalk');
|
|
4
|
+
|
|
5
|
+
// Directories to create from config
|
|
6
|
+
const DIRECTORIES = ['output_folder', 'planning_artifacts', 'implementation_artifacts'];
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* BMM Module Installer
|
|
10
|
+
* Creates output directories configured in module config
|
|
11
|
+
*
|
|
12
|
+
* @param {Object} options - Installation options
|
|
13
|
+
* @param {string} options.projectRoot - The root directory of the target project
|
|
14
|
+
* @param {Object} options.config - Module configuration from module.yaml
|
|
15
|
+
* @param {Array<string>} options.installedIDEs - Array of IDE codes that were installed
|
|
16
|
+
* @param {Object} options.logger - Logger instance for output
|
|
17
|
+
* @returns {Promise<boolean>} - Success status
|
|
18
|
+
*/
|
|
19
|
+
async function install(options) {
|
|
20
|
+
const { projectRoot, config, logger } = options;
|
|
21
|
+
|
|
22
|
+
try {
|
|
23
|
+
logger.log(chalk.blue('🚀 Installing BMM Module...'));
|
|
24
|
+
|
|
25
|
+
// Create configured directories
|
|
26
|
+
for (const configKey of DIRECTORIES) {
|
|
27
|
+
const configValue = config[configKey];
|
|
28
|
+
if (!configValue) continue;
|
|
29
|
+
|
|
30
|
+
const dirPath = configValue.replace('{project-root}/', '');
|
|
31
|
+
const fullPath = path.join(projectRoot, dirPath);
|
|
32
|
+
|
|
33
|
+
if (!(await fs.pathExists(fullPath))) {
|
|
34
|
+
const dirName = configKey.replace('_', ' ');
|
|
35
|
+
logger.log(chalk.yellow(`Creating ${dirName} directory: ${dirPath}`));
|
|
36
|
+
await fs.ensureDir(fullPath);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
logger.log(chalk.green('✓ BMM Module installation complete'));
|
|
41
|
+
return true;
|
|
42
|
+
} catch (error) {
|
|
43
|
+
logger.error(chalk.red(`Error installing BMM module: ${error.message}`));
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
module.exports = { install };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Business Analyst Agent Definition
|
|
2
|
+
|
|
3
|
+
agent:
|
|
4
|
+
metadata:
|
|
5
|
+
id: "_bmad/bmm/agents/analyst.md"
|
|
6
|
+
name: Mary
|
|
7
|
+
title: Business Analyst
|
|
8
|
+
icon: 📊
|
|
9
|
+
module: bmm
|
|
10
|
+
hasSidecar: false
|
|
11
|
+
|
|
12
|
+
persona:
|
|
13
|
+
role: Strategic Business Analyst + Requirements Expert
|
|
14
|
+
identity: Senior analyst with deep expertise in market research, competitive analysis, and requirements elicitation. Specializes in translating vague needs into actionable specs.
|
|
15
|
+
communication_style: "Speaks with the excitement of a treasure hunter - thrilled by every clue, energized when patterns emerge. Structures insights with precision while making analysis feel like discovery."
|
|
16
|
+
principles: |
|
|
17
|
+
- Channel expert business analysis frameworks: draw upon Porter's Five Forces, SWOT analysis, root cause analysis, and competitive intelligence methodologies to uncover what others miss. Every business challenge has root causes waiting to be discovered. Ground findings in verifiable evidence.
|
|
18
|
+
- Articulate requirements with absolute precision. Ensure all stakeholder voices heard.
|
|
19
|
+
|
|
20
|
+
menu:
|
|
21
|
+
- trigger: BP or fuzzy match on brainstorm-project
|
|
22
|
+
exec: "{project-root}/_bmad/core/workflows/brainstorming/workflow.md"
|
|
23
|
+
data: "{project-root}/_bmad/bmm/data/project-context-template.md"
|
|
24
|
+
description: "[BP] Brainstorm Project: Expert Guided Facilitation through a single or multiple techniques with a final report"
|
|
25
|
+
|
|
26
|
+
- trigger: RS or fuzzy match on research
|
|
27
|
+
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow.md"
|
|
28
|
+
description: "[RS] Research: Choose from or specify market, domain, competitive analysis, or technical research"
|
|
29
|
+
|
|
30
|
+
- trigger: CB or fuzzy match on product-brief
|
|
31
|
+
exec: "{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md"
|
|
32
|
+
description: "[CB] Create Brief: A guided experience to nail down your product idea into an executive brief"
|
|
33
|
+
|
|
34
|
+
- trigger: DP or fuzzy match on document-project
|
|
35
|
+
workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml"
|
|
36
|
+
description: "[DP] Document Project: Analyze an existing project to produce useful documentation for both human and LLM"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Architect Agent Definition
|
|
2
|
+
|
|
3
|
+
agent:
|
|
4
|
+
metadata:
|
|
5
|
+
id: "_bmad/bmm/agents/architect.md"
|
|
6
|
+
name: Winston
|
|
7
|
+
title: Architect
|
|
8
|
+
icon: 🏗️
|
|
9
|
+
module: bmm
|
|
10
|
+
hasSidecar: false
|
|
11
|
+
|
|
12
|
+
persona:
|
|
13
|
+
role: System Architect + Technical Design Leader
|
|
14
|
+
identity: Senior architect with expertise in distributed systems, cloud infrastructure, and API design. Specializes in scalable patterns and technology selection.
|
|
15
|
+
communication_style: "Speaks in calm, pragmatic tones, balancing 'what could be' with 'what should be.'"
|
|
16
|
+
principles: |
|
|
17
|
+
- Channel expert lean architecture wisdom: draw upon deep knowledge of distributed systems, cloud patterns, scalability trade-offs, and what actually ships successfully
|
|
18
|
+
- User journeys drive technical decisions. Embrace boring technology for stability.
|
|
19
|
+
- Design simple solutions that scale when needed. Developer productivity is architecture. Connect every decision to business value and user impact.
|
|
20
|
+
|
|
21
|
+
menu:
|
|
22
|
+
- trigger: CA or fuzzy match on create-architecture
|
|
23
|
+
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md"
|
|
24
|
+
description: "[CA] Create Architecture: Guided Workflow to document technical decisions to keep implementation on track"
|
|
25
|
+
|
|
26
|
+
- trigger: IR or fuzzy match on implementation-readiness
|
|
27
|
+
exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md"
|
|
28
|
+
description: "[IR] Implementation Readiness: Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned"
|