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,563 @@
|
|
|
1
|
+
# BMAD Studio Architecture
|
|
2
|
+
|
|
3
|
+
This document describes the technical architecture of BMAD Studio, the Electron-based desktop application for the BMAD Method.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
BMAD Studio is a cross-platform desktop application built with:
|
|
8
|
+
|
|
9
|
+
- **Electron** — Cross-platform desktop framework
|
|
10
|
+
- **React** — UI component library with hooks
|
|
11
|
+
- **TypeScript** — Type-safe JavaScript
|
|
12
|
+
- **Vite** — Fast build tool and dev server
|
|
13
|
+
- **TailwindCSS** — Utility-first CSS framework
|
|
14
|
+
- **Monaco Editor** — VS Code's code editor
|
|
15
|
+
- **ReactFlow** — Visual workflow graph library
|
|
16
|
+
- **Better-SQLite3** — Embedded database for analytics
|
|
17
|
+
|
|
18
|
+
## Architecture Diagram
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
22
|
+
│ BMAD Studio Application │
|
|
23
|
+
├─────────────────────────────────────────────────────────────┤
|
|
24
|
+
│ │
|
|
25
|
+
│ ┌─────────────────────────────────────────────────────┐ │
|
|
26
|
+
│ │ Renderer Process (React/Vite) │ │
|
|
27
|
+
│ ├─────────────────────────────────────────────────────┤ │
|
|
28
|
+
│ │ │ │
|
|
29
|
+
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────┐ │ │
|
|
30
|
+
│ │ │ Chat Panel │ │ Workflow │ │ Terminal │ │ │
|
|
31
|
+
│ │ │ │ │ Editor │ │ │ │ │
|
|
32
|
+
│ │ └──────────────┘ └──────────────┘ └──────────┘ │ │
|
|
33
|
+
│ │ │ │
|
|
34
|
+
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────┐ │ │
|
|
35
|
+
│ │ │ Token Monitor│ │ Test Center │ │ Settings │ │ │
|
|
36
|
+
│ │ │ │ │ │ │ │ │ │
|
|
37
|
+
│ │ └──────────────┘ └──────────────┘ └──────────┘ │ │
|
|
38
|
+
│ │ │ │
|
|
39
|
+
│ │ Monaco Editor Integration │ │
|
|
40
|
+
│ │ │ │
|
|
41
|
+
│ └─────────────────────────────────────────────────────┘ │
|
|
42
|
+
│ ↕ │
|
|
43
|
+
│ IPC Bridge │
|
|
44
|
+
│ (Preload Script) │
|
|
45
|
+
│ ↕ │
|
|
46
|
+
│ ┌─────────────────────────────────────────────────────┐ │
|
|
47
|
+
│ │ Main Process (Node.js) │ │
|
|
48
|
+
│ ├─────────────────────────────────────────────────────┤ │
|
|
49
|
+
│ │ │ │
|
|
50
|
+
│ │ ┌──────────────────────────────────────────────┐ │ │
|
|
51
|
+
│ │ │ IPC Handlers │ │ │
|
|
52
|
+
│ │ │ • Config • File Ops • Terminal │ │ │
|
|
53
|
+
│ │ │ • Token • Workflow • Party Mode │ │ │
|
|
54
|
+
│ │ └──────────────────────────────────────────────┘ │ │
|
|
55
|
+
│ │ │ │
|
|
56
|
+
│ │ ┌──────────────────────────────────────────────┐ │ │
|
|
57
|
+
│ │ │ Core Services │ │ │
|
|
58
|
+
│ │ │ • Token Tracker • Workflow Router │ │ │
|
|
59
|
+
│ │ │ • AI Test Gen • Project Detector │ │ │
|
|
60
|
+
│ │ │ • Legacy Migrator • Party Coordinator │ │ │
|
|
61
|
+
│ │ └──────────────────────────────────────────────┘ │ │
|
|
62
|
+
│ │ │ │
|
|
63
|
+
│ │ ┌──────────────────────────────────────────────┐ │ │
|
|
64
|
+
│ │ │ Database (SQLite) │ │ │
|
|
65
|
+
│ │ │ • Token Analytics • Usage History │ │ │
|
|
66
|
+
│ │ └──────────────────────────────────────────────┘ │ │
|
|
67
|
+
│ │ │ │
|
|
68
|
+
│ └─────────────────────────────────────────────────────┘ │
|
|
69
|
+
│ │
|
|
70
|
+
└─────────────────────────────────────────────────────────────┘
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Process Architecture
|
|
74
|
+
|
|
75
|
+
### Main Process
|
|
76
|
+
|
|
77
|
+
The main process (`electron/main.ts`) is responsible for:
|
|
78
|
+
|
|
79
|
+
- Creating and managing application windows
|
|
80
|
+
- Setting up IPC handlers for secure communication
|
|
81
|
+
- Managing application lifecycle events
|
|
82
|
+
- Coordinating with core services
|
|
83
|
+
- Handling file system operations
|
|
84
|
+
- Managing global keyboard shortcuts
|
|
85
|
+
|
|
86
|
+
**Key Features:**
|
|
87
|
+
|
|
88
|
+
- **Security First**: `contextIsolation: true`, `nodeIntegration: false`, `sandbox: true`
|
|
89
|
+
- **Development Mode**: Auto-opens DevTools, hot reload via Vite
|
|
90
|
+
- **Production Mode**: Loads built files from `dist/`
|
|
91
|
+
|
|
92
|
+
### Preload Script
|
|
93
|
+
|
|
94
|
+
The preload script (`electron/preload.ts`) creates a secure bridge between renderer and main processes:
|
|
95
|
+
|
|
96
|
+
- Exposes safe APIs to the renderer via `window.electronAPI`
|
|
97
|
+
- Uses `contextBridge` for secure IPC communication
|
|
98
|
+
- Implements typed interfaces for all exposed APIs
|
|
99
|
+
- No direct Node.js access in renderer
|
|
100
|
+
|
|
101
|
+
### Renderer Process
|
|
102
|
+
|
|
103
|
+
The renderer process (`renderer/`) contains the React application:
|
|
104
|
+
|
|
105
|
+
- Built with Vite for fast development
|
|
106
|
+
- TypeScript for type safety
|
|
107
|
+
- TailwindCSS for styling
|
|
108
|
+
- Component-based architecture
|
|
109
|
+
- React Context for state management
|
|
110
|
+
|
|
111
|
+
## Directory Structure
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
bmad-method/
|
|
115
|
+
├── electron/ # Main process code
|
|
116
|
+
│ ├── main.ts # Application entry point
|
|
117
|
+
│ ├── preload.ts # IPC bridge
|
|
118
|
+
│ ├── tsconfig.json # TypeScript config for main
|
|
119
|
+
│ ├── ipc/ # IPC handlers
|
|
120
|
+
│ │ ├── terminal-handler.ts
|
|
121
|
+
│ │ ├── token-handler.ts
|
|
122
|
+
│ │ ├── workflow-handler.ts
|
|
123
|
+
│ │ ├── party-handler.ts
|
|
124
|
+
│ │ ├── project-detector-handler.ts
|
|
125
|
+
│ │ ├── legacy-migrator-handler.ts
|
|
126
|
+
│ │ └── workflow-router-handler.ts
|
|
127
|
+
│ ├── services/ # Core business logic
|
|
128
|
+
│ │ ├── token-tracker.ts
|
|
129
|
+
│ │ ├── token-cache.ts
|
|
130
|
+
│ │ ├── token-modes.ts
|
|
131
|
+
│ │ ├── budget-alerts.ts
|
|
132
|
+
│ │ ├── ai-test-generator.ts
|
|
133
|
+
│ │ ├── coverage-parser.ts
|
|
134
|
+
│ │ ├── project-detector.ts
|
|
135
|
+
│ │ ├── legacy-migrator.ts
|
|
136
|
+
│ │ ├── party-coordinator.ts
|
|
137
|
+
│ │ ├── workflow-router.ts
|
|
138
|
+
│ │ └── workflow-storage.ts
|
|
139
|
+
│ └── database/ # SQLite database
|
|
140
|
+
│ └── token-analytics.db
|
|
141
|
+
│
|
|
142
|
+
├── renderer/ # Renderer process (React)
|
|
143
|
+
│ ├── index.html # HTML entry point
|
|
144
|
+
│ ├── index.tsx # React entry point
|
|
145
|
+
│ ├── App.tsx # Main React component
|
|
146
|
+
│ ├── tsconfig.json # TypeScript config for renderer
|
|
147
|
+
│ ├── styles.css # Global styles
|
|
148
|
+
│ ├── components/ # React components
|
|
149
|
+
│ │ ├── ChatPanel.tsx
|
|
150
|
+
│ │ ├── CodeEditor.tsx
|
|
151
|
+
│ │ ├── Terminal.tsx
|
|
152
|
+
│ │ ├── TokenMonitor.tsx
|
|
153
|
+
│ │ ├── TokenAnalytics.tsx
|
|
154
|
+
│ │ ├── WorkflowEditor.tsx
|
|
155
|
+
│ │ ├── TestCenter.tsx
|
|
156
|
+
│ │ ├── PartyMode.tsx
|
|
157
|
+
│ │ ├── MigrationWizard.tsx
|
|
158
|
+
│ │ ├── FlowSelector.tsx
|
|
159
|
+
│ │ ├── TemplateSelector.tsx
|
|
160
|
+
│ │ ├── OnboardingWizard.tsx
|
|
161
|
+
│ │ ├── NotificationCenter.tsx
|
|
162
|
+
│ │ ├── TutorialOverlay.tsx
|
|
163
|
+
│ │ ├── Sidebar.tsx
|
|
164
|
+
│ │ ├── MessageInput.tsx
|
|
165
|
+
│ │ └── MessageList.tsx
|
|
166
|
+
│ ├── hooks/ # Custom React hooks
|
|
167
|
+
│ ├── context/ # React Context providers
|
|
168
|
+
│ ├── lib/ # Utility functions
|
|
169
|
+
│ └── types/ # TypeScript type definitions
|
|
170
|
+
│
|
|
171
|
+
├── src/ # Legacy CLI code (being migrated)
|
|
172
|
+
│ ├── bmm/ # BMad Method core
|
|
173
|
+
│ ├── core/ # Core utilities
|
|
174
|
+
│ └── utility/ # Utility functions
|
|
175
|
+
│
|
|
176
|
+
├── docs/ # Documentation
|
|
177
|
+
│ ├── developer/ # Developer documentation
|
|
178
|
+
│ ├── user-guide/ # User guides
|
|
179
|
+
│ ├── explanation/ # Conceptual documentation
|
|
180
|
+
│ ├── how-to/ # How-to guides
|
|
181
|
+
│ ├── reference/ # API reference
|
|
182
|
+
│ └── tutorials/ # Tutorial guides
|
|
183
|
+
│
|
|
184
|
+
└── dist/ # Build output (gitignored)
|
|
185
|
+
├── electron/ # Compiled main process
|
|
186
|
+
└── renderer/ # Built renderer assets
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Component Architecture
|
|
190
|
+
|
|
191
|
+
### Core Components
|
|
192
|
+
|
|
193
|
+
#### ChatPanel
|
|
194
|
+
Handles AI agent interactions with streaming response support.
|
|
195
|
+
|
|
196
|
+
- Real-time message streaming
|
|
197
|
+
- Agent selection and switching
|
|
198
|
+
- Message history persistence
|
|
199
|
+
- Token usage display per message
|
|
200
|
+
|
|
201
|
+
#### WorkflowEditor
|
|
202
|
+
Visual workflow creation and editing with drag-and-drop.
|
|
203
|
+
|
|
204
|
+
- ReactFlow-based graph visualization
|
|
205
|
+
- Step dependency visualization
|
|
206
|
+
- Workflow state persistence
|
|
207
|
+
- Multi-agent "Party Mode" coordination
|
|
208
|
+
|
|
209
|
+
#### Terminal
|
|
210
|
+
Integrated terminal for running commands.
|
|
211
|
+
|
|
212
|
+
- Command execution via IPC
|
|
213
|
+
- Output streaming
|
|
214
|
+
- Command history
|
|
215
|
+
- Copy/paste support
|
|
216
|
+
|
|
217
|
+
#### TokenMonitor
|
|
218
|
+
Real-time token usage tracking with budget alerts.
|
|
219
|
+
|
|
220
|
+
- Live token consumption display
|
|
221
|
+
- Three efficiency modes: Ultra-Save, Balanced, Power
|
|
222
|
+
- Budget threshold alerts
|
|
223
|
+
- Historical analytics
|
|
224
|
+
|
|
225
|
+
#### TestCenter
|
|
226
|
+
AI-powered test generation and management.
|
|
227
|
+
|
|
228
|
+
- AI Test Generator for automated test creation
|
|
229
|
+
- Visual Test Builder for non-programmers
|
|
230
|
+
- Jest integration
|
|
231
|
+
- Coverage dashboard
|
|
232
|
+
|
|
233
|
+
#### CodeEditor
|
|
234
|
+
Monaco Editor integration for code viewing/editing.
|
|
235
|
+
|
|
236
|
+
- Offline loading (no CDN)
|
|
237
|
+
- Syntax highlighting for multiple languages
|
|
238
|
+
- IntelliSense and autocomplete
|
|
239
|
+
- File system provider integration
|
|
240
|
+
|
|
241
|
+
### Layout Components
|
|
242
|
+
|
|
243
|
+
#### Sidebar
|
|
244
|
+
Collapsible navigation sidebar.
|
|
245
|
+
|
|
246
|
+
- Navigation menu
|
|
247
|
+
- Quick access to features
|
|
248
|
+
- Collapse/expand animation
|
|
249
|
+
- Persistent state
|
|
250
|
+
|
|
251
|
+
#### NotificationCenter
|
|
252
|
+
Toast-style notifications for system events.
|
|
253
|
+
|
|
254
|
+
- Success/error/warning/info types
|
|
255
|
+
- Auto-dismiss with configurable timeout
|
|
256
|
+
- Action buttons (optional)
|
|
257
|
+
- Stack management
|
|
258
|
+
|
|
259
|
+
## State Management
|
|
260
|
+
|
|
261
|
+
### React Context
|
|
262
|
+
|
|
263
|
+
- **ThemeContext**: Dark/light theme toggle
|
|
264
|
+
- **ConfigContext**: Application configuration
|
|
265
|
+
- **WorkflowContext**: Current workflow state
|
|
266
|
+
- **TokenContext**: Token tracking state
|
|
267
|
+
|
|
268
|
+
### Local State
|
|
269
|
+
|
|
270
|
+
- Component-level state with `useState`
|
|
271
|
+
- Side effects with `useEffect`
|
|
272
|
+
- Custom hooks for reusable logic
|
|
273
|
+
|
|
274
|
+
### Persistent State
|
|
275
|
+
|
|
276
|
+
- Electron Store for application settings
|
|
277
|
+
- SQLite for analytics and historical data
|
|
278
|
+
- File system for workflows and agents
|
|
279
|
+
|
|
280
|
+
## IPC Communication
|
|
281
|
+
|
|
282
|
+
### Security Model
|
|
283
|
+
|
|
284
|
+
All IPC communication follows Electron security best practices:
|
|
285
|
+
|
|
286
|
+
1. **Context Isolation**: Renderer cannot access Node.js directly
|
|
287
|
+
2. **Preload Bridge**: Safe API exposure via `contextBridge`
|
|
288
|
+
3. **Typed Interfaces**: TypeScript ensures type safety
|
|
289
|
+
4. **Validation**: All inputs validated before processing
|
|
290
|
+
|
|
291
|
+
### IPC Channels
|
|
292
|
+
|
|
293
|
+
#### Config Operations
|
|
294
|
+
- `config:get` — Retrieve configuration values
|
|
295
|
+
- `config:set` — Update configuration values
|
|
296
|
+
|
|
297
|
+
#### File Operations
|
|
298
|
+
- `file:read` — Read file contents
|
|
299
|
+
- `file:write` — Write file contents
|
|
300
|
+
- `file:list` — List directory contents
|
|
301
|
+
|
|
302
|
+
#### Terminal Operations
|
|
303
|
+
- `terminal:execute` — Execute shell command
|
|
304
|
+
- `terminal:kill` — Kill running process
|
|
305
|
+
|
|
306
|
+
#### Token Operations
|
|
307
|
+
- `token:track` — Record token usage
|
|
308
|
+
- `token:get-stats` — Retrieve analytics
|
|
309
|
+
- `token:set-mode` — Change efficiency mode
|
|
310
|
+
- `token:set-budget` — Update token budget
|
|
311
|
+
|
|
312
|
+
#### Workflow Operations
|
|
313
|
+
- `workflow:load` — Load workflow definition
|
|
314
|
+
- `workflow:save` — Save workflow changes
|
|
315
|
+
- `workflow:execute` — Run workflow
|
|
316
|
+
- `workflow:list` — List available workflows
|
|
317
|
+
|
|
318
|
+
#### Party Mode Operations
|
|
319
|
+
- `party:start` — Initialize party mode session
|
|
320
|
+
- `party:add-agent` — Add agent to party
|
|
321
|
+
- `party:remove-agent` — Remove agent from party
|
|
322
|
+
- `party:send-message` — Send message to party
|
|
323
|
+
|
|
324
|
+
## Data Storage
|
|
325
|
+
|
|
326
|
+
### Configuration
|
|
327
|
+
|
|
328
|
+
Stored in Electron's `userData` directory:
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
~/.config/bmad-studio/ (Linux)
|
|
332
|
+
~/Library/Application Support/bmad-studio/ (macOS)
|
|
333
|
+
%APPDATA%\bmad-studio\ (Windows)
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Configuration file: `.bmad/config.json`
|
|
337
|
+
|
|
338
|
+
### Token Analytics
|
|
339
|
+
|
|
340
|
+
SQLite database at: `<userData>/.bmad/token-analytics.db`
|
|
341
|
+
|
|
342
|
+
**Schema:**
|
|
343
|
+
```sql
|
|
344
|
+
CREATE TABLE token_usage (
|
|
345
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
346
|
+
timestamp INTEGER NOT NULL,
|
|
347
|
+
tokens_used INTEGER NOT NULL,
|
|
348
|
+
mode TEXT NOT NULL,
|
|
349
|
+
workflow_id TEXT,
|
|
350
|
+
agent_id TEXT,
|
|
351
|
+
cost REAL
|
|
352
|
+
);
|
|
353
|
+
|
|
354
|
+
CREATE INDEX idx_timestamp ON token_usage(timestamp);
|
|
355
|
+
CREATE INDEX idx_workflow ON token_usage(workflow_id);
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### Workflows and Agents
|
|
359
|
+
|
|
360
|
+
Stored in project directory: `.bmad/`
|
|
361
|
+
|
|
362
|
+
```
|
|
363
|
+
.bmad/
|
|
364
|
+
├── config.json # Project configuration
|
|
365
|
+
├── workflows/ # Workflow definitions (YAML)
|
|
366
|
+
├── steps/ # Step definitions
|
|
367
|
+
└── agents/ # Agent configurations (YAML)
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
## Build System
|
|
371
|
+
|
|
372
|
+
### Development
|
|
373
|
+
|
|
374
|
+
```bash
|
|
375
|
+
npm run electron:dev
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
This command:
|
|
379
|
+
1. Watches TypeScript files in `electron/` for changes
|
|
380
|
+
2. Starts Vite dev server on port 5173
|
|
381
|
+
3. Launches Electron with hot reload
|
|
382
|
+
4. Opens DevTools automatically
|
|
383
|
+
|
|
384
|
+
### Production Build
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
npm run electron:build
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
This command:
|
|
391
|
+
1. Builds renderer with Vite (`npm run build:renderer`)
|
|
392
|
+
2. Compiles main process TypeScript (`npm run build:electron`)
|
|
393
|
+
3. Packages app with electron-builder for all platforms
|
|
394
|
+
|
|
395
|
+
### Output
|
|
396
|
+
|
|
397
|
+
- **Windows**: `.exe` installer
|
|
398
|
+
- **macOS**: `.dmg` disk image
|
|
399
|
+
- **Linux**: `.AppImage` package
|
|
400
|
+
|
|
401
|
+
## Performance Considerations
|
|
402
|
+
|
|
403
|
+
### Initial Load Time
|
|
404
|
+
|
|
405
|
+
Target: <2 seconds
|
|
406
|
+
|
|
407
|
+
**Optimizations:**
|
|
408
|
+
- Code splitting with React.lazy
|
|
409
|
+
- Monaco Editor loaded on-demand
|
|
410
|
+
- Virtualized lists for large data sets
|
|
411
|
+
- Lazy-load heavy components
|
|
412
|
+
|
|
413
|
+
### Memory Management
|
|
414
|
+
|
|
415
|
+
**Strategies:**
|
|
416
|
+
- Virtualized rendering for workflows/files
|
|
417
|
+
- Stream large file reads
|
|
418
|
+
- Clean up event listeners in `useEffect` cleanup
|
|
419
|
+
- Dispose Monaco Editor models when unmounted
|
|
420
|
+
|
|
421
|
+
### Token Economy
|
|
422
|
+
|
|
423
|
+
**Caching:**
|
|
424
|
+
- LRU cache for frequent AI responses
|
|
425
|
+
- Cache invalidation on workflow changes
|
|
426
|
+
- Configurable cache size per mode
|
|
427
|
+
|
|
428
|
+
**Modes:**
|
|
429
|
+
- **Ultra-Save**: 40% token reduction, aggressive caching
|
|
430
|
+
- **Balanced**: Moderate caching, good UX
|
|
431
|
+
- **Power**: Minimal caching, best accuracy
|
|
432
|
+
|
|
433
|
+
## Security
|
|
434
|
+
|
|
435
|
+
### Electron Security
|
|
436
|
+
|
|
437
|
+
- ✅ Context Isolation enabled
|
|
438
|
+
- ✅ Node Integration disabled
|
|
439
|
+
- ✅ Sandbox enabled
|
|
440
|
+
- ✅ Preload script for IPC bridge
|
|
441
|
+
- ✅ Content Security Policy configured
|
|
442
|
+
- ✅ No eval() or inline scripts
|
|
443
|
+
|
|
444
|
+
### Data Security
|
|
445
|
+
|
|
446
|
+
- Local storage only (no cloud sync in v1)
|
|
447
|
+
- No credentials stored in plain text
|
|
448
|
+
- File access restricted to user data directory
|
|
449
|
+
- IPC input validation and sanitization
|
|
450
|
+
|
|
451
|
+
## Testing
|
|
452
|
+
|
|
453
|
+
### Unit Tests
|
|
454
|
+
|
|
455
|
+
Jest for all services and utilities:
|
|
456
|
+
|
|
457
|
+
```bash
|
|
458
|
+
npm test
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Integration Tests
|
|
462
|
+
|
|
463
|
+
Test IPC communication between main and renderer:
|
|
464
|
+
|
|
465
|
+
```bash
|
|
466
|
+
npm run test:integration
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
### E2E Tests
|
|
470
|
+
|
|
471
|
+
Spectron for end-to-end application testing:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
npm run test:e2e
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
## Development Tools
|
|
478
|
+
|
|
479
|
+
### React DevTools
|
|
480
|
+
|
|
481
|
+
Install as Chrome extension, accessible via DevTools in development mode.
|
|
482
|
+
|
|
483
|
+
### Electron DevTools
|
|
484
|
+
|
|
485
|
+
Automatically opened in development mode for debugging renderer.
|
|
486
|
+
|
|
487
|
+
### Main Process Debugging
|
|
488
|
+
|
|
489
|
+
Use VS Code debugger with this launch configuration:
|
|
490
|
+
|
|
491
|
+
```json
|
|
492
|
+
{
|
|
493
|
+
"type": "node",
|
|
494
|
+
"request": "launch",
|
|
495
|
+
"name": "Electron Main",
|
|
496
|
+
"runtimeExecutable": "npm",
|
|
497
|
+
"runtimeArgs": ["run", "electron:start"],
|
|
498
|
+
"port": 9229
|
|
499
|
+
}
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
## Common Patterns
|
|
503
|
+
|
|
504
|
+
### Creating a New Component
|
|
505
|
+
|
|
506
|
+
1. Create file in `renderer/components/`
|
|
507
|
+
2. Export React component with TypeScript types
|
|
508
|
+
3. Use TailwindCSS for styling
|
|
509
|
+
4. Add to main App.tsx layout
|
|
510
|
+
5. Write unit tests
|
|
511
|
+
|
|
512
|
+
### Adding an IPC Handler
|
|
513
|
+
|
|
514
|
+
1. Create handler file in `electron/ipc/`
|
|
515
|
+
2. Export setup function (e.g., `setupMyHandlers`)
|
|
516
|
+
3. Call setup function in `main.ts` → `setupIpcHandlers()`
|
|
517
|
+
4. Add types to `renderer/types/electron-api.d.ts`
|
|
518
|
+
5. Expose in `preload.ts`
|
|
519
|
+
|
|
520
|
+
### Creating a Service
|
|
521
|
+
|
|
522
|
+
1. Create service file in `electron/services/`
|
|
523
|
+
2. Export service class or functions
|
|
524
|
+
3. Add tests in `test/services/`
|
|
525
|
+
4. Document in API reference
|
|
526
|
+
|
|
527
|
+
## Troubleshooting
|
|
528
|
+
|
|
529
|
+
### Monaco Editor Not Loading
|
|
530
|
+
|
|
531
|
+
**Issue**: Monaco Editor shows blank screen
|
|
532
|
+
|
|
533
|
+
**Solution**: Ensure local loader configuration is set:
|
|
534
|
+
|
|
535
|
+
```typescript
|
|
536
|
+
loader.config({
|
|
537
|
+
paths: { vs: './node_modules/monaco-editor/min/vs' }
|
|
538
|
+
});
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
### IPC Not Working
|
|
542
|
+
|
|
543
|
+
**Issue**: Renderer cannot call IPC methods
|
|
544
|
+
|
|
545
|
+
**Solution**: Check that:
|
|
546
|
+
1. Handler is registered in `main.ts`
|
|
547
|
+
2. API is exposed in `preload.ts`
|
|
548
|
+
3. Types are defined in `electron-api.d.ts`
|
|
549
|
+
|
|
550
|
+
### Build Fails
|
|
551
|
+
|
|
552
|
+
**Issue**: TypeScript compilation errors
|
|
553
|
+
|
|
554
|
+
**Solution**:
|
|
555
|
+
1. Check `tsconfig.json` for correct paths
|
|
556
|
+
2. Ensure all dependencies installed: `npm install`
|
|
557
|
+
3. Clear build cache: `rm -rf dist/`
|
|
558
|
+
|
|
559
|
+
## Next Steps
|
|
560
|
+
|
|
561
|
+
- [API Reference](./api-reference.md) — Detailed API documentation
|
|
562
|
+
- [Contributing Guide](./contributing.md) — Development workflow and standards
|
|
563
|
+
- [User Guide](../user-guide/) — End-user documentation
|