bmad-fh 6.0.0-alpha.052779ef
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/.coderabbit.yaml +40 -0
- package/.githooks/post-checkout +129 -0
- package/.githooks/pre-commit +63 -0
- package/.githooks/pre-push +135 -0
- package/.github/CODE_OF_CONDUCT.md +128 -0
- package/.github/FUNDING.yaml +15 -0
- package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/.github/ISSUE_TEMPLATE/issue.md +32 -0
- package/.github/scripts/discord-helpers.sh +34 -0
- package/.github/workflows/bundle-latest.yaml +330 -0
- package/.github/workflows/discord.yaml +90 -0
- package/.github/workflows/docs.yaml +63 -0
- package/.github/workflows/manual-release.yaml +190 -0
- package/.github/workflows/publish-multi-artifact.yaml +54 -0
- package/.github/workflows/quality.yaml +115 -0
- package/.husky/pre-commit +20 -0
- package/.markdownlint-cli2.yaml +41 -0
- package/.nvmrc +1 -0
- package/.prettierignore +9 -0
- package/.vscode/settings.json +97 -0
- package/CHANGELOG.md +1394 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +306 -0
- package/CONTRIBUTORS.md +32 -0
- package/LICENSE +30 -0
- package/README.md +126 -0
- package/SECURITY.md +85 -0
- package/TRADEMARK.md +55 -0
- package/Wordmark.png +0 -0
- package/banner-bmad-method.png +0 -0
- package/docs/404.md +9 -0
- package/docs/_README_WORKFLOW_DIAGRAMS.md +40 -0
- package/docs/_STYLE_GUIDE.md +367 -0
- package/docs/_archive/customize-workflows.md +30 -0
- package/docs/_archive/getting-started-bmadv4.md +247 -0
- package/docs/_archive/vendor-workflows.md +52 -0
- package/docs/downloads.md +72 -0
- package/docs/explanation/agents/barry-quick-flow.md +328 -0
- package/docs/explanation/agents/index.md +19 -0
- package/docs/explanation/architecture/four-phases.md +107 -0
- package/docs/explanation/architecture/preventing-agent-conflicts.md +111 -0
- package/docs/explanation/architecture/why-solutioning-matters.md +75 -0
- package/docs/explanation/bmm/index.md +131 -0
- package/docs/explanation/core/index.md +18 -0
- package/docs/explanation/core-concepts/agent-roles.md +179 -0
- package/docs/explanation/core-concepts/index.md +35 -0
- package/docs/explanation/core-concepts/what-are-agents.md +97 -0
- package/docs/explanation/core-concepts/what-are-modules.md +85 -0
- package/docs/explanation/core-concepts/what-are-workflows.md +204 -0
- package/docs/explanation/faq/brownfield-faq.md +73 -0
- package/docs/explanation/faq/getting-started-faq.md +67 -0
- package/docs/explanation/faq/implementation-faq.md +52 -0
- package/docs/explanation/faq/index.md +16 -0
- package/docs/explanation/faq/levels-and-tracks-faq.md +52 -0
- package/docs/explanation/faq/planning-faq.md +41 -0
- package/docs/explanation/faq/tools-faq.md +277 -0
- package/docs/explanation/faq/workflows-faq.md +61 -0
- package/docs/explanation/features/advanced-elicitation.md +95 -0
- package/docs/explanation/features/brainstorming-techniques.md +92 -0
- package/docs/explanation/features/party-mode.md +95 -0
- package/docs/explanation/features/quick-flow.md +149 -0
- package/docs/explanation/features/tea-overview.md +410 -0
- package/docs/explanation/features/web-bundles.md +34 -0
- package/docs/explanation/philosophy/facilitation-over-generation.md +333 -0
- package/docs/explanation/philosophy/testing-as-engineering.md +112 -0
- package/docs/explanation/tea/engagement-models.md +710 -0
- package/docs/explanation/tea/fixture-architecture.md +457 -0
- package/docs/explanation/tea/knowledge-base-system.md +554 -0
- package/docs/explanation/tea/network-first-patterns.md +853 -0
- package/docs/explanation/tea/risk-based-testing.md +586 -0
- package/docs/explanation/tea/test-quality-standards.md +907 -0
- package/docs/how-to/brownfield/add-feature-to-existing.md +74 -0
- package/docs/how-to/brownfield/document-existing-project.md +66 -0
- package/docs/how-to/brownfield/index.md +84 -0
- package/docs/how-to/brownfield/quick-fix-in-brownfield.md +77 -0
- package/docs/how-to/brownfield/use-tea-for-enterprise.md +526 -0
- package/docs/how-to/brownfield/use-tea-with-existing-tests.md +577 -0
- package/docs/how-to/customization/customize-agents.md +212 -0
- package/docs/how-to/customization/enable-tea-mcp-enhancements.md +424 -0
- package/docs/how-to/customization/index.md +23 -0
- package/docs/how-to/customization/integrate-playwright-utils.md +813 -0
- package/docs/how-to/customization/shard-large-documents.md +101 -0
- package/docs/how-to/get-answers-about-bmad.md +102 -0
- package/docs/how-to/installation/index.md +12 -0
- package/docs/how-to/installation/install-bmad.md +111 -0
- package/docs/how-to/installation/install-custom-modules.md +118 -0
- package/docs/how-to/installation/upgrade-to-v6.md +131 -0
- package/docs/how-to/workflows/bmgd-quick-flow.md +156 -0
- package/docs/how-to/workflows/conduct-research.md +97 -0
- package/docs/how-to/workflows/create-architecture.md +119 -0
- package/docs/how-to/workflows/create-epics-and-stories.md +109 -0
- package/docs/how-to/workflows/create-prd.md +91 -0
- package/docs/how-to/workflows/create-product-brief.md +94 -0
- package/docs/how-to/workflows/create-story.md +102 -0
- package/docs/how-to/workflows/create-ux-design.md +100 -0
- package/docs/how-to/workflows/implement-story.md +97 -0
- package/docs/how-to/workflows/quick-spec.md +122 -0
- package/docs/how-to/workflows/run-atdd.md +436 -0
- package/docs/how-to/workflows/run-automate.md +653 -0
- package/docs/how-to/workflows/run-brainstorming-session.md +73 -0
- package/docs/how-to/workflows/run-code-review.md +89 -0
- package/docs/how-to/workflows/run-implementation-readiness.md +125 -0
- package/docs/how-to/workflows/run-nfr-assess.md +679 -0
- package/docs/how-to/workflows/run-sprint-planning.md +94 -0
- package/docs/how-to/workflows/run-test-design.md +98 -0
- package/docs/how-to/workflows/run-test-review.md +605 -0
- package/docs/how-to/workflows/run-trace.md +883 -0
- package/docs/how-to/workflows/setup-ci.md +712 -0
- package/docs/how-to/workflows/setup-party-mode.md +89 -0
- package/docs/how-to/workflows/setup-test-framework.md +98 -0
- package/docs/index.md +63 -0
- package/docs/migration-guide.md +365 -0
- package/docs/multi-scope-guide.md +379 -0
- package/docs/plans/multi-scope-parallel-artifacts-plan.md +695 -0
- package/docs/reference/agents/index.md +109 -0
- package/docs/reference/configuration/core-tasks.md +67 -0
- package/docs/reference/configuration/global-config.md +28 -0
- package/docs/reference/glossary/index.md +159 -0
- package/docs/reference/tea/commands.md +254 -0
- package/docs/reference/tea/configuration.md +678 -0
- package/docs/reference/tea/knowledge-base.md +340 -0
- package/docs/reference/workflows/core-workflows.md +32 -0
- package/docs/reference/workflows/document-project.md +73 -0
- package/docs/reference/workflows/index.md +12 -0
- package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
- package/docs/tutorials/getting-started/images/workflow-method-greenfield.excalidraw +5034 -0
- package/docs/tutorials/getting-started/images/workflow-method-greenfield.svg +4 -0
- package/docs/tutorials/getting-started/images/workflow-overview.jpg +0 -0
- package/docs/tutorials/getting-started/tea-lite-quickstart.md +444 -0
- package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
- package/eslint.config.mjs +152 -0
- package/package.json +117 -0
- package/prettier.config.mjs +32 -0
- package/src/bmm/_module-installer/installer.js +48 -0
- package/src/bmm/_module-installer/platform-specifics/claude-code.js +35 -0
- package/src/bmm/_module-installer/platform-specifics/windsurf.js +32 -0
- package/src/bmm/agents/analyst.agent.yaml +41 -0
- package/src/bmm/agents/architect.agent.yaml +33 -0
- package/src/bmm/agents/dev.agent.yaml +38 -0
- package/src/bmm/agents/pm.agent.yaml +51 -0
- package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
- package/src/bmm/agents/sm.agent.yaml +47 -0
- package/src/bmm/agents/tea.agent.yaml +68 -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 +49 -0
- package/src/bmm/agents/ux-designer.agent.yaml +30 -0
- package/src/bmm/data/README.md +29 -0
- package/src/bmm/data/project-context-template.md +40 -0
- package/src/bmm/module.yaml +64 -0
- package/src/bmm/sub-modules/claude-code/config.yaml +4 -0
- package/src/bmm/sub-modules/claude-code/injections.yaml +242 -0
- package/src/bmm/sub-modules/claude-code/readme.md +87 -0
- package/src/bmm/teams/default-party.csv +21 -0
- package/src/bmm/teams/team-fullstack.yaml +12 -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 +34 -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 +194 -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-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 +228 -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/2-plan-workflows/prd/data/domain-complexity.csv +13 -0
- package/src/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
- package/src/bmm/workflows/2-plan-workflows/prd/data/project-types.csv +11 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01-init.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-01b-continue.md +153 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-03-success.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-06-innovation.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-07-project-type.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-08-scoping.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-09-functional.md +231 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-10-nonfunctional.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
- package/src/bmm/workflows/2-plan-workflows/prd/templates/prd-template.md +10 -0
- package/src/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
- package/src/bmm/workflows/2-plan-workflows/prd/workflow.md +150 -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 +133 -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 +352 -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 +145 -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 +27 -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/quick-dev/steps/step-01-mode-detection.md +156 -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 +113 -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 +140 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +52 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +189 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +144 -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 +191 -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 +79 -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/generate-project-context/project-context-template.md +21 -0
- package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
- package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +318 -0
- package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +278 -0
- package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
- package/src/bmm/workflows/testarch/atdd/atdd-checklist-template.md +364 -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 +248 -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 +321 -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 +722 -0
- package/src/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +445 -0
- package/src/bmm/workflows/testarch/nfr-assess/workflow.yaml +49 -0
- package/src/bmm/workflows/testarch/test-design/checklist.md +235 -0
- package/src/bmm/workflows/testarch/test-design/instructions.md +788 -0
- package/src/bmm/workflows/testarch/test-design/test-design-template.md +294 -0
- package/src/bmm/workflows/testarch/test-design/workflow.yaml +56 -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 +655 -0
- package/src/bmm/workflows/testarch/trace/instructions.md +1047 -0
- package/src/bmm/workflows/testarch/trace/trace-template.md +675 -0
- package/src/bmm/workflows/testarch/trace/workflow.yaml +57 -0
- package/src/bmm/workflows/workflow-status/init/instructions.md +346 -0
- package/src/bmm/workflows/workflow-status/init/workflow.yaml +30 -0
- package/src/bmm/workflows/workflow-status/instructions.md +397 -0
- package/src/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +103 -0
- package/src/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +100 -0
- package/src/bmm/workflows/workflow-status/paths/method-brownfield.yaml +103 -0
- package/src/bmm/workflows/workflow-status/paths/method-greenfield.yaml +100 -0
- package/src/bmm/workflows/workflow-status/project-levels.yaml +59 -0
- package/src/bmm/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/bmm/workflows/workflow-status/workflow.yaml +32 -0
- package/src/core/_module-installer/installer.js +60 -0
- package/src/core/agents/bmad-master.agent.yaml +30 -0
- package/src/core/lib/scope/artifact-resolver.js +298 -0
- package/src/core/lib/scope/event-logger.js +400 -0
- package/src/core/lib/scope/index.js +30 -0
- package/src/core/lib/scope/scope-context.js +301 -0
- package/src/core/lib/scope/scope-initializer.js +456 -0
- package/src/core/lib/scope/scope-manager.js +512 -0
- package/src/core/lib/scope/scope-migrator.js +434 -0
- package/src/core/lib/scope/scope-sync.js +483 -0
- package/src/core/lib/scope/scope-validator.js +294 -0
- package/src/core/lib/scope/state-lock.js +336 -0
- package/src/core/module.yaml +53 -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 +91 -0
- package/src/core/tasks/editorial-review-structure.xml +198 -0
- package/src/core/tasks/index-docs.xml +65 -0
- package/src/core/tasks/review-adversarial-general.xml +46 -0
- package/src/core/tasks/shard-doc.xml +109 -0
- package/src/core/tasks/workflow.xml +277 -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 +28 -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 +19 -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/test/README.md +295 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
- package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-cli-integration.sh +159 -0
- package/test/test-installation-components.js +214 -0
- package/test/test-scope-e2e.js +439 -0
- package/test/test-scope-system.js +781 -0
- package/test/unit-test-schema.js +133 -0
- package/tools/bmad-npx-wrapper.js +38 -0
- package/tools/build-docs.js +577 -0
- package/tools/cli/README.md +7 -0
- package/tools/cli/bmad-cli.js +58 -0
- package/tools/cli/commands/install.js +87 -0
- package/tools/cli/commands/scope.js +474 -0
- package/tools/cli/external-official-modules.yaml +41 -0
- package/tools/cli/installers/install-messages.yaml +58 -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 +2585 -0
- package/tools/cli/installers/lib/core/manifest-generator.js +963 -0
- package/tools/cli/installers/lib/core/manifest.js +590 -0
- package/tools/cli/installers/lib/custom/handler.js +363 -0
- package/tools/cli/installers/lib/ide/_base-ide.js +654 -0
- package/tools/cli/installers/lib/ide/antigravity.js +486 -0
- package/tools/cli/installers/lib/ide/auggie.js +244 -0
- package/tools/cli/installers/lib/ide/claude-code.js +487 -0
- package/tools/cli/installers/lib/ide/cline.js +269 -0
- package/tools/cli/installers/lib/ide/codex.js +375 -0
- package/tools/cli/installers/lib/ide/crush.js +300 -0
- package/tools/cli/installers/lib/ide/cursor.js +169 -0
- package/tools/cli/installers/lib/ide/gemini.js +301 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +383 -0
- package/tools/cli/installers/lib/ide/iflow.js +191 -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 +244 -0
- package/tools/cli/installers/lib/ide/opencode.js +257 -0
- package/tools/cli/installers/lib/ide/qwen.js +372 -0
- package/tools/cli/installers/lib/ide/roo.js +270 -0
- package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +96 -0
- package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +158 -0
- package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +242 -0
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +29 -0
- package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
- package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +30 -0
- package/tools/cli/installers/lib/ide/templates/workflow-commander.md +45 -0
- package/tools/cli/installers/lib/ide/trae.js +313 -0
- package/tools/cli/installers/lib/ide/windsurf.js +258 -0
- package/tools/cli/installers/lib/message-loader.js +85 -0
- package/tools/cli/installers/lib/modules/external-manager.js +133 -0
- package/tools/cli/installers/lib/modules/manager.js +1362 -0
- package/tools/cli/lib/activation-builder.js +163 -0
- package/tools/cli/lib/agent/compiler.js +522 -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-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/file-ops.js +204 -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/ui.js +1591 -0
- package/tools/cli/lib/xml-handler.js +177 -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/cli/scripts/migrate-workflows.js +273 -0
- package/tools/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -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/binary.js +80 -0
- package/tools/flattener/discovery.js +71 -0
- package/tools/flattener/files.js +35 -0
- package/tools/flattener/ignoreRules.js +172 -0
- package/tools/flattener/main.js +483 -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/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 +493 -0
- package/tools/validate-agent-schema.js +110 -0
- package/tools/validate-doc-links.js +363 -0
- package/tools/validate-svg-changes.sh +356 -0
- package/website/README.md +76 -0
- package/website/astro.config.mjs +228 -0
- package/website/public/favicon.ico +0 -0
- package/website/public/img/bmad-dark.png +0 -0
- package/website/public/img/bmad-light.png +0 -0
- package/website/public/img/logo.svg +4 -0
- package/website/public/robots.txt +37 -0
- package/website/src/components/Banner.astro +59 -0
- package/website/src/components/Header.astro +121 -0
- package/website/src/components/MobileMenuFooter.astro +53 -0
- package/website/src/content/config.ts +6 -0
- package/website/src/lib/site-url.js +25 -0
- package/website/src/rehype-markdown-links.js +102 -0
- package/website/src/styles/custom.css +485 -0
|
@@ -0,0 +1,695 @@
|
|
|
1
|
+
# Multi-Scope Parallel Artifacts System - Implementation Plan
|
|
2
|
+
|
|
3
|
+
> **Status:** Planning Complete
|
|
4
|
+
> **Created:** 2026-01-21
|
|
5
|
+
> **Last Updated:** 2026-01-21
|
|
6
|
+
> **Estimated Effort:** 17-22 days
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
This plan outlines the implementation of a **multi-scope parallel artifact system** for BMAD that enables:
|
|
11
|
+
|
|
12
|
+
- Running multiple workflows in parallel across different terminal sessions
|
|
13
|
+
- Each session works on a different sub-product (scope) with isolated artifacts
|
|
14
|
+
- Shared knowledge layer with bidirectional synchronization
|
|
15
|
+
- Event-based updates when dependencies change
|
|
16
|
+
- Strict write isolation with liberal read access
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Table of Contents
|
|
21
|
+
|
|
22
|
+
1. [Key Design Decisions](#key-design-decisions)
|
|
23
|
+
2. [Architecture Overview](#architecture-overview)
|
|
24
|
+
3. [Phase 0: Git Hooks (This Repo)](#phase-0-git-hooks-this-repo)
|
|
25
|
+
4. [Phase 1: Scope Foundation](#phase-1-scope-foundation)
|
|
26
|
+
5. [Phase 2: Variable Resolution](#phase-2-variable-resolution)
|
|
27
|
+
6. [Phase 3: Isolation & Locking](#phase-3-isolation--locking)
|
|
28
|
+
7. [Phase 4: Sync System](#phase-4-sync-system)
|
|
29
|
+
8. [Phase 5: Event System](#phase-5-event-system)
|
|
30
|
+
9. [Phase 6: IDE Integration & Documentation](#phase-6-ide-integration--documentation)
|
|
31
|
+
10. [Risk Mitigation](#risk-mitigation)
|
|
32
|
+
11. [Success Criteria](#success-criteria)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Key Design Decisions
|
|
37
|
+
|
|
38
|
+
| Decision | Choice | Rationale |
|
|
39
|
+
|----------|--------|-----------|
|
|
40
|
+
| **Sprint-status handling** | Per-scope | Each scope has independent sprint planning, no parallel conflicts |
|
|
41
|
+
| **Project-context location** | Both (global + per-scope) | Global "bible" in `_shared/`, optional scope-specific that extends |
|
|
42
|
+
| **Scope vs Module** | Different concepts | Module = code organization (bmm/core), Scope = artifact isolation (auth/payments) |
|
|
43
|
+
| **Cross-scope access** | Read any, write own | Liberal reads for dependency awareness, strict writes for isolation |
|
|
44
|
+
| **Test directories** | Scoped | `{output_folder}/{scope}/tests` for full isolation |
|
|
45
|
+
| **Workflow updates** | Automated script | Handle 22+ workflow.yaml files programmatically |
|
|
46
|
+
| **File locking** | proper-lockfile npm | Battle-tested, cross-platform locking |
|
|
47
|
+
| **Git hooks** | This repo only | For contributor workflow, NOT installed with bmad |
|
|
48
|
+
| **Migration strategy** | Auto-migrate to 'default' | Existing artifacts move to default scope automatically |
|
|
49
|
+
| **Scope ID format** | Strict | Lowercase alphanumeric + hyphens only |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Architecture Overview
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
57
|
+
│ BMAD MULTI-SCOPE ARCHITECTURE │
|
|
58
|
+
│ │
|
|
59
|
+
│ MODULE (code organization) SCOPE (artifact isolation) │
|
|
60
|
+
│ ───────────────────────── ──────────────────────── │
|
|
61
|
+
│ src/core/ _bmad-output/auth/ │
|
|
62
|
+
│ src/bmm/ _bmad-output/payments/ │
|
|
63
|
+
│ (installed to _bmad/) _bmad-output/catalog/ │
|
|
64
|
+
│ │
|
|
65
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
66
|
+
│ │
|
|
67
|
+
│ DIRECTORY STRUCTURE (After Implementation): │
|
|
68
|
+
│ │
|
|
69
|
+
│ project-root/ │
|
|
70
|
+
│ ├── _bmad/ # BMAD installation │
|
|
71
|
+
│ │ ├── _config/ │
|
|
72
|
+
│ │ │ ├── scopes.yaml # NEW: Scope registry │
|
|
73
|
+
│ │ │ ├── manifest.yaml │
|
|
74
|
+
│ │ │ └── ides/ │
|
|
75
|
+
│ │ ├── _events/ # NEW: Event system │
|
|
76
|
+
│ │ │ ├── event-log.yaml │
|
|
77
|
+
│ │ │ └── subscriptions.yaml │
|
|
78
|
+
│ │ ├── core/ │
|
|
79
|
+
│ │ │ └── scope/ # NEW: Scope management │
|
|
80
|
+
│ │ │ ├── scope-manager.js │
|
|
81
|
+
│ │ │ ├── scope-context.js │
|
|
82
|
+
│ │ │ ├── artifact-resolver.js │
|
|
83
|
+
│ │ │ └── state-lock.js │
|
|
84
|
+
│ │ └── bmm/ │
|
|
85
|
+
│ │ │
|
|
86
|
+
│ └── _bmad-output/ # Scoped artifacts │
|
|
87
|
+
│ ├── _shared/ # Shared knowledge layer │
|
|
88
|
+
│ │ ├── project-context.md # Global "bible" │
|
|
89
|
+
│ │ ├── contracts/ # Integration contracts │
|
|
90
|
+
│ │ └── principles/ # Architecture principles │
|
|
91
|
+
│ ├── auth/ # Auth scope │
|
|
92
|
+
│ │ ├── planning-artifacts/ │
|
|
93
|
+
│ │ ├── implementation-artifacts/ │
|
|
94
|
+
│ │ │ └── sprint-status.yaml # PER-SCOPE sprint status │
|
|
95
|
+
│ │ ├── tests/ # Scoped tests │
|
|
96
|
+
│ │ └── project-context.md # Optional: extends global │
|
|
97
|
+
│ ├── payments/ # Payments scope │
|
|
98
|
+
│ │ └── ... │
|
|
99
|
+
│ └── default/ # Migrated existing artifacts │
|
|
100
|
+
│ └── ... │
|
|
101
|
+
│ │
|
|
102
|
+
├──────────────────────────────────────────────────────────────────────────────┤
|
|
103
|
+
│ │
|
|
104
|
+
│ CROSS-SCOPE ACCESS MODEL: │
|
|
105
|
+
│ │
|
|
106
|
+
│ Scope: payments │
|
|
107
|
+
│ ├── CAN READ: auth/*, catalog/*, _shared/*, default/* │
|
|
108
|
+
│ ├── CAN WRITE: payments/* ONLY │
|
|
109
|
+
│ └── TO SHARE: bmad scope sync-up payments │
|
|
110
|
+
│ │
|
|
111
|
+
└──────────────────────────────────────────────────────────────────────────────┘
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Phase 0: Git Hooks (This Repo)
|
|
117
|
+
|
|
118
|
+
> **Estimate:** 0.5 day
|
|
119
|
+
> **Purpose:** Contributor workflow for BMAD-METHOD repository only
|
|
120
|
+
|
|
121
|
+
### Objectives
|
|
122
|
+
|
|
123
|
+
- Ensure main branch always synced with upstream (bmad-code-org)
|
|
124
|
+
- Enforce single-commit-per-branch workflow
|
|
125
|
+
- Require rebase on main before push
|
|
126
|
+
- Use amend + force-with-lease pattern
|
|
127
|
+
|
|
128
|
+
### Files to Create
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
BMAD-METHOD/
|
|
132
|
+
├── .githooks/
|
|
133
|
+
│ ├── pre-push # Main enforcement hook
|
|
134
|
+
│ ├── pre-commit # Block main commits, amend warnings
|
|
135
|
+
│ └── post-checkout # Sync reminders
|
|
136
|
+
└── docs/
|
|
137
|
+
└── CONTRIBUTING.md # Git workflow documentation
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Pre-Push Hook Logic
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
#!/bin/bash
|
|
144
|
+
# .githooks/pre-push
|
|
145
|
+
|
|
146
|
+
1. Ensure upstream remote exists (git@github.com:bmad-code-org/BMAD-METHOD.git)
|
|
147
|
+
2. Fetch upstream
|
|
148
|
+
3. Block direct push to main
|
|
149
|
+
4. Sync local main with upstream (if needed)
|
|
150
|
+
5. Check branch is rebased on main
|
|
151
|
+
6. Enforce single commit rule (max 1 commit ahead of main)
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Setup Instructions
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# One-time setup for contributors
|
|
158
|
+
git config core.hooksPath .githooks
|
|
159
|
+
git remote add upstream git@github.com:bmad-code-org/BMAD-METHOD.git
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Phase 1: Scope Foundation
|
|
165
|
+
|
|
166
|
+
> **Estimate:** 3-4 days
|
|
167
|
+
|
|
168
|
+
### 1.1 Scopes.yaml Schema
|
|
169
|
+
|
|
170
|
+
**File:** `_bmad/_config/scopes.yaml`
|
|
171
|
+
|
|
172
|
+
```yaml
|
|
173
|
+
version: 1
|
|
174
|
+
|
|
175
|
+
settings:
|
|
176
|
+
allow_adhoc_scopes: true # Allow on-demand scope creation
|
|
177
|
+
isolation_mode: strict # strict | warn | permissive
|
|
178
|
+
default_output_base: "_bmad-output"
|
|
179
|
+
default_shared_path: "_bmad-output/_shared"
|
|
180
|
+
|
|
181
|
+
scopes:
|
|
182
|
+
auth:
|
|
183
|
+
id: "auth"
|
|
184
|
+
name: "Authentication Service"
|
|
185
|
+
description: "User authentication, SSO, authorization"
|
|
186
|
+
status: active # active | archived
|
|
187
|
+
dependencies: [] # Scopes this depends on
|
|
188
|
+
created: "2026-01-21T10:00:00Z"
|
|
189
|
+
_meta:
|
|
190
|
+
last_activity: "2026-01-21T15:30:00Z"
|
|
191
|
+
artifact_count: 12
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Validation Rules:**
|
|
195
|
+
- Scope ID: `^[a-z][a-z0-9-]*[a-z0-9]$` (2-50 chars)
|
|
196
|
+
- Reserved IDs: `_shared`, `_events`, `_config`, `global`
|
|
197
|
+
- Circular dependency detection required
|
|
198
|
+
|
|
199
|
+
### 1.2 ScopeManager Class
|
|
200
|
+
|
|
201
|
+
**File:** `src/core/scope/scope-manager.js`
|
|
202
|
+
|
|
203
|
+
```javascript
|
|
204
|
+
class ScopeManager {
|
|
205
|
+
// CRUD Operations
|
|
206
|
+
async listScopes(filters)
|
|
207
|
+
async getScope(scopeId)
|
|
208
|
+
async createScope(scopeId, options)
|
|
209
|
+
async updateScope(scopeId, updates)
|
|
210
|
+
async removeScope(scopeId, options)
|
|
211
|
+
|
|
212
|
+
// Path Resolution
|
|
213
|
+
async getScopePaths(scopeId)
|
|
214
|
+
resolvePath(template, scopeId)
|
|
215
|
+
|
|
216
|
+
// Validation
|
|
217
|
+
validateScopeId(scopeId)
|
|
218
|
+
validateDependencies(scopeId, dependencies, allScopes)
|
|
219
|
+
|
|
220
|
+
// Dependencies
|
|
221
|
+
async getDependencyTree(scopeId)
|
|
222
|
+
findDependentScopes(scopeId, allScopes)
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### 1.3 CLI Commands
|
|
227
|
+
|
|
228
|
+
**File:** `tools/cli/commands/scope.js`
|
|
229
|
+
|
|
230
|
+
| Command | Description |
|
|
231
|
+
|---------|-------------|
|
|
232
|
+
| `bmad scope list` | List all scopes |
|
|
233
|
+
| `bmad scope create <id>` | Create new scope interactively |
|
|
234
|
+
| `bmad scope info <id>` | Show scope details |
|
|
235
|
+
| `bmad scope remove <id>` | Remove scope |
|
|
236
|
+
| `bmad scope migrate` | Migrate existing to scoped structure |
|
|
237
|
+
|
|
238
|
+
### 1.4 Directory Structure Generator
|
|
239
|
+
|
|
240
|
+
**File:** `src/core/scope/scope-initializer.js`
|
|
241
|
+
|
|
242
|
+
Creates on scope creation:
|
|
243
|
+
```
|
|
244
|
+
_bmad-output/{scope}/
|
|
245
|
+
├── planning-artifacts/
|
|
246
|
+
├── implementation-artifacts/
|
|
247
|
+
├── tests/
|
|
248
|
+
└── .scope-meta.yaml
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
Creates on first scope (one-time):
|
|
252
|
+
```
|
|
253
|
+
_bmad-output/_shared/
|
|
254
|
+
├── project-context.md # Global project context template
|
|
255
|
+
├── contracts/
|
|
256
|
+
└── principles/
|
|
257
|
+
|
|
258
|
+
_bmad/_events/
|
|
259
|
+
├── event-log.yaml
|
|
260
|
+
└── subscriptions.yaml
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### 1.5 Migration Logic
|
|
264
|
+
|
|
265
|
+
**File:** `src/core/scope/scope-migrator.js`
|
|
266
|
+
|
|
267
|
+
Steps:
|
|
268
|
+
1. Create backup of `_bmad-output/`
|
|
269
|
+
2. Initialize scope system
|
|
270
|
+
3. Create `default` scope
|
|
271
|
+
4. Move existing artifacts to `_bmad-output/default/`
|
|
272
|
+
5. Update references in state files
|
|
273
|
+
6. Mark migration complete
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## Phase 2: Variable Resolution
|
|
278
|
+
|
|
279
|
+
> **Estimate:** 4-5 days
|
|
280
|
+
|
|
281
|
+
### 2.1 workflow.xml Scope Initialization
|
|
282
|
+
|
|
283
|
+
**File:** `src/core/tasks/workflow.xml` (modify)
|
|
284
|
+
|
|
285
|
+
Add Step 0 before existing Step 1:
|
|
286
|
+
|
|
287
|
+
```xml
|
|
288
|
+
<step n="0" title="Initialize Scope Context" critical="true">
|
|
289
|
+
<substep n="0a" title="Check for Scope Requirement">
|
|
290
|
+
<action>Scan workflow.yaml for {scope} variable</action>
|
|
291
|
+
<action>If found → workflow requires scope</action>
|
|
292
|
+
</substep>
|
|
293
|
+
|
|
294
|
+
<substep n="0b" title="Resolve Scope">
|
|
295
|
+
<!-- Priority order: -->
|
|
296
|
+
<!-- 1. --scope argument from command -->
|
|
297
|
+
<!-- 2. Session context (if set) -->
|
|
298
|
+
<!-- 3. Prompt user to select/create -->
|
|
299
|
+
</substep>
|
|
300
|
+
|
|
301
|
+
<substep n="0c" title="Load Scope Context">
|
|
302
|
+
<action>Load scope config from scopes.yaml</action>
|
|
303
|
+
<action>Resolve scope paths</action>
|
|
304
|
+
<action>Load global project-context.md</action>
|
|
305
|
+
<action>Load scope project-context.md (if exists, merge)</action>
|
|
306
|
+
<action>Check for dependency updates (notify if pending)</action>
|
|
307
|
+
</substep>
|
|
308
|
+
</step>
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### 2.2 Module.yaml Updates
|
|
312
|
+
|
|
313
|
+
**File:** `src/bmm/module.yaml` (modify)
|
|
314
|
+
|
|
315
|
+
```yaml
|
|
316
|
+
# BEFORE
|
|
317
|
+
planning_artifacts:
|
|
318
|
+
default: "{output_folder}/planning-artifacts"
|
|
319
|
+
result: "{project-root}/{value}"
|
|
320
|
+
|
|
321
|
+
# AFTER
|
|
322
|
+
planning_artifacts:
|
|
323
|
+
default: "{output_folder}/{scope}/planning-artifacts"
|
|
324
|
+
result: "{project-root}/{value}"
|
|
325
|
+
|
|
326
|
+
implementation_artifacts:
|
|
327
|
+
default: "{output_folder}/{scope}/implementation-artifacts"
|
|
328
|
+
result: "{project-root}/{value}"
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### 2.3 Workflow.yaml Update Script
|
|
332
|
+
|
|
333
|
+
**File:** `tools/cli/scripts/migrate-workflows.js`
|
|
334
|
+
|
|
335
|
+
Updates for 22+ workflow files:
|
|
336
|
+
1. Update `test_dir` variables to use `{output_folder}/{scope}/tests`
|
|
337
|
+
2. Handle variations in path definitions
|
|
338
|
+
3. Preserve `{config_source}:` references (they'll work via updated module.yaml)
|
|
339
|
+
|
|
340
|
+
### 2.4 Agent Activation Updates
|
|
341
|
+
|
|
342
|
+
**File:** `src/utility/agent-components/activation-steps.txt` (modify)
|
|
343
|
+
|
|
344
|
+
```xml
|
|
345
|
+
<step n="2">🚨 IMMEDIATE ACTION REQUIRED:
|
|
346
|
+
- Load {project-root}/_bmad/{{module}}/config.yaml
|
|
347
|
+
- Store: {user_name}, {communication_language}, {output_folder}
|
|
348
|
+
- NEW: Check if scope is set for session
|
|
349
|
+
- NEW: Load global project-context: {output_folder}/_shared/project-context.md
|
|
350
|
+
- NEW: Load scope project-context (if exists): {output_folder}/{scope}/project-context.md
|
|
351
|
+
- NEW: Merge contexts (scope extends global)
|
|
352
|
+
</step>
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### 2.5 invoke-workflow Scope Propagation
|
|
356
|
+
|
|
357
|
+
**Modification to workflow.xml:**
|
|
358
|
+
|
|
359
|
+
When `<invoke-workflow>` is encountered:
|
|
360
|
+
1. Pass current `{scope}` as implicit parameter
|
|
361
|
+
2. Child workflow inherits scope from parent
|
|
362
|
+
3. Can be overridden with explicit `<param>scope: other</param>`
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
## Phase 3: Isolation & Locking
|
|
367
|
+
|
|
368
|
+
> **Estimate:** 2-3 days
|
|
369
|
+
|
|
370
|
+
### 3.1 ArtifactResolver
|
|
371
|
+
|
|
372
|
+
**File:** `src/core/scope/artifact-resolver.js`
|
|
373
|
+
|
|
374
|
+
```javascript
|
|
375
|
+
class ArtifactResolver {
|
|
376
|
+
constructor(currentScope, basePath) {
|
|
377
|
+
this.currentScope = currentScope;
|
|
378
|
+
this.basePath = basePath;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
// Read-any: Allow reading from any scope
|
|
382
|
+
canRead(path) {
|
|
383
|
+
return true; // All reads allowed
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// Write-own: Only allow writing to current scope
|
|
387
|
+
canWrite(path) {
|
|
388
|
+
const targetScope = this.extractScopeFromPath(path);
|
|
389
|
+
|
|
390
|
+
if (targetScope === '_shared') {
|
|
391
|
+
throw new Error('Cannot write directly to _shared. Use: bmad scope sync-up');
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
if (targetScope !== this.currentScope) {
|
|
395
|
+
throw new Error(`Cannot write to scope '${targetScope}' while in scope '${this.currentScope}'`);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
return true;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
extractScopeFromPath(path) {
|
|
402
|
+
// Extract scope from path like _bmad-output/auth/...
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
### 3.2 File Locking
|
|
408
|
+
|
|
409
|
+
**File:** `src/core/scope/state-lock.js`
|
|
410
|
+
|
|
411
|
+
```javascript
|
|
412
|
+
const lockfile = require('proper-lockfile');
|
|
413
|
+
|
|
414
|
+
class StateLock {
|
|
415
|
+
async withLock(filePath, operation) {
|
|
416
|
+
const release = await lockfile.lock(filePath, {
|
|
417
|
+
stale: 30000, // 30s stale timeout
|
|
418
|
+
retries: { retries: 10, minTimeout: 100, maxTimeout: 1000 }
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
try {
|
|
422
|
+
return await operation();
|
|
423
|
+
} finally {
|
|
424
|
+
await release();
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
// Optimistic locking with version field
|
|
429
|
+
async updateYamlWithVersion(filePath, modifier) {
|
|
430
|
+
return this.withLock(filePath, async () => {
|
|
431
|
+
const data = await this.readYaml(filePath);
|
|
432
|
+
const currentVersion = data._version || 0;
|
|
433
|
+
|
|
434
|
+
const modified = await modifier(data);
|
|
435
|
+
modified._version = currentVersion + 1;
|
|
436
|
+
modified._lastModified = new Date().toISOString();
|
|
437
|
+
|
|
438
|
+
await this.writeYaml(filePath, modified);
|
|
439
|
+
return modified;
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
**Files requiring locking:**
|
|
446
|
+
- `{scope}/implementation-artifacts/sprint-status.yaml`
|
|
447
|
+
- `{scope}/planning-artifacts/bmm-workflow-status.yaml`
|
|
448
|
+
- `_shared/` files during sync operations
|
|
449
|
+
- `scopes.yaml` during scope CRUD
|
|
450
|
+
|
|
451
|
+
### 3.3 Package.json Update
|
|
452
|
+
|
|
453
|
+
Add dependency:
|
|
454
|
+
```json
|
|
455
|
+
{
|
|
456
|
+
"dependencies": {
|
|
457
|
+
"proper-lockfile": "^4.1.2"
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Phase 4: Sync System
|
|
465
|
+
|
|
466
|
+
> **Estimate:** 3-4 days
|
|
467
|
+
|
|
468
|
+
### 4.1 Sync-Up (Promote to Shared)
|
|
469
|
+
|
|
470
|
+
**Command:** `bmad scope sync-up <scope>`
|
|
471
|
+
|
|
472
|
+
**Logic:**
|
|
473
|
+
1. Identify promotable artifacts (configurable patterns)
|
|
474
|
+
2. Check for conflicts with existing shared files
|
|
475
|
+
3. Copy to `_shared/` with attribution metadata
|
|
476
|
+
4. Log event for dependent scope notification
|
|
477
|
+
|
|
478
|
+
**Metadata added to promoted files:**
|
|
479
|
+
```yaml
|
|
480
|
+
# _shared/architecture/auth-api.md.meta
|
|
481
|
+
source_scope: auth
|
|
482
|
+
promoted_at: "2026-01-21T10:00:00Z"
|
|
483
|
+
original_hash: abc123
|
|
484
|
+
version: 1
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### 4.2 Sync-Down (Pull from Shared)
|
|
488
|
+
|
|
489
|
+
**Command:** `bmad scope sync-down <scope>`
|
|
490
|
+
|
|
491
|
+
**Logic:**
|
|
492
|
+
1. Find shared updates since last sync
|
|
493
|
+
2. Compare with local copies (if any)
|
|
494
|
+
3. Handle conflicts (prompt user for resolution)
|
|
495
|
+
4. Copy to scope directory
|
|
496
|
+
5. Update last-sync timestamp
|
|
497
|
+
|
|
498
|
+
### 4.3 Conflict Resolution
|
|
499
|
+
|
|
500
|
+
**Options when conflict detected:**
|
|
501
|
+
1. Keep local (overwrite shared)
|
|
502
|
+
2. Keep shared (discard local)
|
|
503
|
+
3. Merge (3-way diff if possible)
|
|
504
|
+
4. Skip this file
|
|
505
|
+
|
|
506
|
+
---
|
|
507
|
+
|
|
508
|
+
## Phase 5: Event System
|
|
509
|
+
|
|
510
|
+
> **Estimate:** 2 days
|
|
511
|
+
|
|
512
|
+
### 5.1 Event Log Structure
|
|
513
|
+
|
|
514
|
+
**File:** `_bmad/_events/event-log.yaml`
|
|
515
|
+
|
|
516
|
+
```yaml
|
|
517
|
+
version: 1
|
|
518
|
+
events:
|
|
519
|
+
- id: evt_001
|
|
520
|
+
type: artifact_created
|
|
521
|
+
scope: auth
|
|
522
|
+
artifact: planning-artifacts/prd.md
|
|
523
|
+
timestamp: "2026-01-21T10:30:00Z"
|
|
524
|
+
|
|
525
|
+
- id: evt_002
|
|
526
|
+
type: artifact_promoted
|
|
527
|
+
scope: auth
|
|
528
|
+
artifact: architecture.md
|
|
529
|
+
shared_path: _shared/auth/architecture.md
|
|
530
|
+
timestamp: "2026-01-21T11:00:00Z"
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
### 5.2 Subscriptions
|
|
534
|
+
|
|
535
|
+
**File:** `_bmad/_events/subscriptions.yaml`
|
|
536
|
+
|
|
537
|
+
```yaml
|
|
538
|
+
subscriptions:
|
|
539
|
+
payments:
|
|
540
|
+
watch:
|
|
541
|
+
- scope: auth
|
|
542
|
+
patterns: ["contracts/*", "architecture.md"]
|
|
543
|
+
notify: true
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
### 5.3 Notification on Activation
|
|
547
|
+
|
|
548
|
+
When agent/workflow activates with scope:
|
|
549
|
+
1. Check subscriptions for this scope
|
|
550
|
+
2. Find events since last activity
|
|
551
|
+
3. Display pending updates (if any)
|
|
552
|
+
4. Suggest `bmad scope sync-down` if updates available
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## Phase 6: IDE Integration & Documentation
|
|
557
|
+
|
|
558
|
+
> **Estimate:** 2-3 days
|
|
559
|
+
|
|
560
|
+
### 6.1 IDE Command Generators
|
|
561
|
+
|
|
562
|
+
**File:** `tools/cli/installers/lib/ide/shared/scope-aware-command.js`
|
|
563
|
+
|
|
564
|
+
Updates to workflow-command-template.md:
|
|
565
|
+
```markdown
|
|
566
|
+
### Scope Resolution
|
|
567
|
+
|
|
568
|
+
This workflow requires a scope. Before proceeding:
|
|
569
|
+
|
|
570
|
+
1. Check for --scope argument (e.g., `/create-story --scope auth`)
|
|
571
|
+
2. Check session context for active scope
|
|
572
|
+
3. If none, prompt user to select/create scope
|
|
573
|
+
|
|
574
|
+
Store selected scope for session.
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
### 6.2 Session-Sticky Scope
|
|
578
|
+
|
|
579
|
+
**Mechanism:** File-based `.bmad-scope` in project root
|
|
580
|
+
|
|
581
|
+
```yaml
|
|
582
|
+
# .bmad-scope (gitignored)
|
|
583
|
+
active_scope: auth
|
|
584
|
+
set_at: "2026-01-21T10:00:00Z"
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
### 6.3 Agent Menu Updates
|
|
588
|
+
|
|
589
|
+
Add `scope_required` attribute:
|
|
590
|
+
```yaml
|
|
591
|
+
menu:
|
|
592
|
+
- trigger: "prd"
|
|
593
|
+
workflow: "..."
|
|
594
|
+
scope_required: true # Enforce scope for this menu item
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
### 6.4 Documentation
|
|
598
|
+
|
|
599
|
+
Files to create:
|
|
600
|
+
1. `docs/multi-scope-guide.md` - User guide
|
|
601
|
+
2. `docs/migration-guide.md` - Upgrading existing installations
|
|
602
|
+
3. Update README with multi-scope overview
|
|
603
|
+
|
|
604
|
+
---
|
|
605
|
+
|
|
606
|
+
## Risk Mitigation
|
|
607
|
+
|
|
608
|
+
| Risk | Mitigation |
|
|
609
|
+
|------|------------|
|
|
610
|
+
| Breaking existing installations | Auto-migration with backup, rollback capability |
|
|
611
|
+
| Parallel write conflicts | File locking + optimistic versioning |
|
|
612
|
+
| Cross-scope data corruption | Write isolation enforcement in ArtifactResolver |
|
|
613
|
+
| Complex merge conflicts | Clear conflict resolution UI + skip option |
|
|
614
|
+
| IDE compatibility | Test with all supported IDEs, graceful fallbacks |
|
|
615
|
+
| Performance with many scopes | Lazy loading, scope caching |
|
|
616
|
+
|
|
617
|
+
---
|
|
618
|
+
|
|
619
|
+
## Success Criteria
|
|
620
|
+
|
|
621
|
+
### Functional Requirements
|
|
622
|
+
|
|
623
|
+
- [ ] Can create/list/remove scopes via CLI
|
|
624
|
+
- [ ] Workflows produce artifacts in correct scope directory
|
|
625
|
+
- [ ] Parallel workflows in different scopes don't conflict
|
|
626
|
+
- [ ] Cross-scope reads work (for dependencies)
|
|
627
|
+
- [ ] Cross-scope writes are blocked with clear error
|
|
628
|
+
- [ ] Sync-up promotes artifacts to shared
|
|
629
|
+
- [ ] Sync-down pulls shared updates
|
|
630
|
+
- [ ] Events logged and notifications shown
|
|
631
|
+
- [ ] Migration works for existing installations
|
|
632
|
+
- [ ] All IDEs support --scope flag
|
|
633
|
+
|
|
634
|
+
### Non-Functional Requirements
|
|
635
|
+
|
|
636
|
+
- [ ] No noticeable performance degradation
|
|
637
|
+
- [ ] Clear error messages for all failure modes
|
|
638
|
+
- [ ] Documentation complete
|
|
639
|
+
- [ ] Git hooks working for this repo
|
|
640
|
+
|
|
641
|
+
---
|
|
642
|
+
|
|
643
|
+
## Implementation Order
|
|
644
|
+
|
|
645
|
+
```
|
|
646
|
+
Phase 0 ─────► Phase 1 ─────► Phase 2 ─────► Phase 3 ─────► Phase 4 ─────► Phase 5 ─────► Phase 6
|
|
647
|
+
(Git hooks) (Foundation) (Variables) (Isolation) (Sync) (Events) (IDE/Docs)
|
|
648
|
+
│ │ │ │ │ │ │
|
|
649
|
+
│ │ │ │ │ │ │
|
|
650
|
+
0.5 day 3-4 days 4-5 days 2-3 days 3-4 days 2 days 2-3 days
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
**Critical Path:** Phase 0 → Phase 1 → Phase 2.1 → Phase 2.2 → Phase 3.1
|
|
654
|
+
|
|
655
|
+
MVP can be achieved with Phases 0-3 (isolation working, no sync/events yet).
|
|
656
|
+
|
|
657
|
+
---
|
|
658
|
+
|
|
659
|
+
## Appendix: Files to Create/Modify
|
|
660
|
+
|
|
661
|
+
### New Files
|
|
662
|
+
|
|
663
|
+
| Path | Purpose |
|
|
664
|
+
|------|---------|
|
|
665
|
+
| `.githooks/pre-push` | Git hook for single-commit workflow |
|
|
666
|
+
| `.githooks/pre-commit` | Git hook to block main commits |
|
|
667
|
+
| `.githooks/post-checkout` | Git hook for sync reminders |
|
|
668
|
+
| `src/core/scope/scope-manager.js` | Scope CRUD operations |
|
|
669
|
+
| `src/core/scope/scope-initializer.js` | Directory creation |
|
|
670
|
+
| `src/core/scope/scope-migrator.js` | Migration logic |
|
|
671
|
+
| `src/core/scope/scope-context.js` | Session context |
|
|
672
|
+
| `src/core/scope/artifact-resolver.js` | Read/write enforcement |
|
|
673
|
+
| `src/core/scope/state-lock.js` | File locking utilities |
|
|
674
|
+
| `src/core/scope/scope-sync.js` | Sync-up/down logic |
|
|
675
|
+
| `src/core/scope/event-logger.js` | Event logging |
|
|
676
|
+
| `tools/cli/commands/scope.js` | CLI scope commands |
|
|
677
|
+
| `tools/cli/scripts/migrate-workflows.js` | Workflow update script |
|
|
678
|
+
| `docs/plans/multi-scope-parallel-artifacts-plan.md` | This file |
|
|
679
|
+
|
|
680
|
+
### Modified Files
|
|
681
|
+
|
|
682
|
+
| Path | Changes |
|
|
683
|
+
|------|---------|
|
|
684
|
+
| `src/core/tasks/workflow.xml` | Add Step 0 for scope init |
|
|
685
|
+
| `src/core/module.yaml` | Add scope settings |
|
|
686
|
+
| `src/bmm/module.yaml` | Add {scope} to paths |
|
|
687
|
+
| `src/utility/agent-components/activation-steps.txt` | Add scope loading |
|
|
688
|
+
| `tools/cli/bmad-cli.js` | Register scope command |
|
|
689
|
+
| `tools/cli/installers/lib/ide/templates/*` | Scope-aware templates |
|
|
690
|
+
| `package.json` | Add proper-lockfile dependency |
|
|
691
|
+
| `22+ workflow.yaml files` | Update test_dir paths (via script) |
|
|
692
|
+
|
|
693
|
+
---
|
|
694
|
+
|
|
695
|
+
*End of Plan*
|