bmad-method 6.0.0-alpha.22 → 6.0.0-alpha.23
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 +2 -2
- package/.github/workflows/docs.yaml +3 -12
- package/CHANGELOG.md +153 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +9 -7
- package/README.md +40 -198
- package/docs/404.md +9 -0
- package/docs/{modules/bmm-bmad-method/images/README.md → _README_WORKFLOW_DIAGRAMS.md} +4 -1
- package/docs/_STYLE_GUIDE.md +347 -0
- package/docs/_archive/getting-started-bmadv4.md +247 -0
- package/{website/src/pages → docs}/downloads.md +17 -11
- package/docs/{modules/bmm-bmad-method/quick-flow-solo-dev.md → explanation/agents/barry-quick-flow.md} +18 -15
- package/docs/explanation/agents/index.md +28 -0
- package/docs/explanation/architecture/four-phases.md +126 -0
- package/docs/explanation/architecture/preventing-agent-conflicts.md +138 -0
- package/docs/explanation/architecture/why-solutioning-matters.md +91 -0
- package/docs/{modules/bmb-bmad-builder/custom-content.md → explanation/bmad-builder/custom-content-types.md} +17 -18
- package/docs/explanation/bmad-builder/index.md +66 -0
- package/docs/{modules/bmm-bmad-method → explanation/bmm}/index.md +27 -22
- package/docs/explanation/core/index.md +18 -0
- package/docs/explanation/core-concepts/agent-roles.md +204 -0
- package/docs/explanation/core-concepts/index.md +40 -0
- package/docs/{bmad-core-concepts/agents.md → explanation/core-concepts/what-are-agents.md} +8 -5
- package/docs/{bmad-core-concepts/modules.md → explanation/core-concepts/what-are-modules.md} +12 -9
- package/docs/explanation/core-concepts/what-are-workflows.md +217 -0
- package/docs/{modules/cis-creative-intelligence-suite → explanation/creative-intelligence}/index.md +26 -54
- package/docs/explanation/faq/brownfield-faq.md +73 -0
- package/docs/explanation/faq/getting-started-faq.md +62 -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 +253 -0
- package/docs/explanation/faq/workflows-faq.md +61 -0
- package/docs/{modules/core → explanation/features}/advanced-elicitation.md +5 -2
- package/docs/{modules/core/brainstorming.md → explanation/features/brainstorming-techniques.md} +4 -1
- package/docs/{modules/bmm-bmad-method → explanation/features}/party-mode.md +7 -9
- package/docs/explanation/features/quick-flow.md +169 -0
- package/docs/{modules/bmm-bmad-method/test-architecture.md → explanation/features/tea-overview.md} +144 -98
- package/docs/{bmad-core-concepts/web-bundles/index.md → explanation/features/web-bundles.md} +6 -5
- package/docs/{modules/bmgd-bmad-game-dev/agents-guide.md → explanation/game-dev/agents.md} +8 -5
- package/docs/explanation/game-dev/bmgd-vs-bmm.md +150 -0
- package/docs/{modules/bmgd-bmad-game-dev/game-types-guide.md → explanation/game-dev/game-types.md} +7 -4
- package/docs/explanation/game-dev/index.md +85 -0
- package/docs/explanation/philosophy/facilitation-over-generation.md +121 -0
- package/docs/explanation/philosophy/testing-as-engineering.md +119 -0
- package/docs/how-to/brownfield/add-feature-to-existing.md +91 -0
- package/docs/how-to/brownfield/document-existing-project.md +84 -0
- package/docs/how-to/brownfield/index.md +102 -0
- package/docs/how-to/brownfield/quick-fix-in-brownfield.md +94 -0
- package/docs/{bmad-core-concepts/bmad-customization/agents.md → how-to/customization/customize-agents.md} +8 -10
- package/docs/{bmad-core-concepts/bmad-customization/workflows.md → how-to/customization/customize-workflows.md} +8 -5
- package/docs/how-to/customization/index.md +27 -0
- package/docs/{modules/core/document-sharding-guide.md → how-to/customization/shard-large-documents.md} +9 -17
- package/docs/{modules/bmb-bmad-builder/workflow-vendoring-customization-inheritance.md → how-to/customization/vendor-workflows.md} +4 -1
- package/docs/how-to/get-answers-about-bmad.md +98 -0
- package/docs/how-to/installation/index.md +15 -0
- package/docs/how-to/installation/install-bmad.md +138 -0
- package/docs/{modules/bmb-bmad-builder/custom-content-installation.md → how-to/installation/install-custom-modules.md} +12 -9
- package/docs/{bmad-core-concepts/installing/upgrading.md → how-to/installation/upgrade-to-v6.md} +6 -3
- package/docs/{modules/bmgd-bmad-game-dev/troubleshooting.md → how-to/troubleshooting/bmgd-troubleshooting.md} +7 -5
- package/docs/{modules/bmgd-bmad-game-dev/quick-flow-guide.md → how-to/workflows/bmgd-quick-flow.md} +8 -5
- package/docs/how-to/workflows/conduct-research.md +130 -0
- package/docs/how-to/workflows/create-architecture.md +147 -0
- package/docs/how-to/workflows/create-epics-and-stories.md +136 -0
- package/docs/how-to/workflows/create-prd.md +130 -0
- package/docs/how-to/workflows/create-product-brief.md +117 -0
- package/docs/how-to/workflows/create-story.md +119 -0
- package/docs/how-to/workflows/create-ux-design.md +117 -0
- package/docs/how-to/workflows/implement-story.md +127 -0
- package/docs/how-to/workflows/quick-spec.md +159 -0
- package/docs/how-to/workflows/run-brainstorming-session.md +94 -0
- package/docs/how-to/workflows/run-code-review.md +141 -0
- package/docs/how-to/workflows/run-implementation-readiness.md +162 -0
- package/docs/how-to/workflows/run-sprint-planning.md +111 -0
- package/docs/how-to/workflows/run-test-design.md +128 -0
- package/docs/how-to/workflows/setup-party-mode.md +117 -0
- package/docs/how-to/workflows/setup-test-framework.md +113 -0
- package/docs/index.md +35 -83
- package/docs/{modules/bmm-bmad-method/agents-guide.md → reference/agents/index.md} +36 -39
- package/docs/{modules/core → reference/configuration}/core-tasks.md +5 -2
- package/docs/{modules/core/global-core-config.md → reference/configuration/global-config.md} +4 -1
- package/docs/{modules/bmm-bmad-method/glossary.md → reference/glossary/index.md} +90 -24
- package/docs/{modules/bmgd-bmad-game-dev/workflows-guide.md → reference/workflows/bmgd-workflows.md} +11 -8
- package/docs/{modules/core → reference/workflows}/core-workflows.md +9 -6
- package/docs/{modules/bmm-bmad-method/workflow-document-project-reference.md → reference/workflows/document-project.md} +7 -4
- package/docs/reference/workflows/index.md +16 -0
- package/docs/tutorials/advanced/create-custom-agent.md +171 -0
- package/docs/tutorials/getting-started/getting-started-bmadv6.md +246 -0
- package/docs/tutorials/getting-started/quick-start-bmgd.md +260 -0
- package/docs/tutorials/getting-started/workflow-overview.jpg +0 -0
- package/eslint.config.mjs +2 -2
- package/package.json +10 -10
- package/samples/sample-custom-modules/sample-unitary-module/agents/commit-poet/commit-poet.agent.yaml +1 -0
- package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +1 -1
- package/samples/sample-custom-modules/sample-unitary-module/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +1 -1
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-01-init.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-02-q1.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-03-q2.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-04-q3.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-05-q4.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-06-q5.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-07-q6.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-08-q7.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-09-q8.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-10-q9.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-11-q10.md +3 -3
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/steps/step-12-results.md +2 -2
- package/samples/sample-custom-modules/sample-unitary-module/workflows/quiz-master/workflow.md +1 -1
- package/samples/sample-custom-modules/sample-wellness-module/agents/meditation-guide.agent.yaml +1 -0
- package/src/core/agents/bmad-master.agent.yaml +1 -0
- package/src/core/tasks/shard-doc.xml +2 -2
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +68 -9
- package/src/core/workflows/brainstorming/workflow.md +7 -0
- package/src/modules/bmb/agents/agent-builder.agent.yaml +5 -0
- package/src/modules/bmb/agents/module-builder.agent.yaml +5 -8
- package/src/modules/bmb/agents/workflow-builder.agent.yaml +16 -7
- package/src/modules/bmb/workflows/agent/data/agent-menu-patterns.md +5 -5
- package/src/modules/bmb/workflows/agent/data/critical-actions.md +2 -2
- package/src/modules/bmb/workflows/agent/data/expert-agent-architecture.md +1 -1
- package/src/modules/bmb/workflows/agent/data/expert-agent-validation.md +2 -1
- package/src/modules/bmb/workflows/agent/data/module-agent-validation.md +2 -0
- package/src/modules/bmb/workflows/agent/data/reference/expert-examples/journal-keeper/journal-keeper.agent.yaml +1 -0
- package/src/modules/bmb/workflows/agent/data/reference/module-examples/architect.agent.yaml +1 -0
- package/src/modules/bmb/workflows/agent/data/reference/module-examples/security-engineer.agent.yaml +1 -0
- package/src/modules/bmb/workflows/agent/data/reference/module-examples/trend-analyst.agent.yaml +1 -0
- package/src/modules/bmb/workflows/agent/data/reference/simple-examples/commit-poet.agent.yaml +1 -0
- package/src/modules/bmb/workflows/agent/data/simple-agent-validation.md +2 -1
- package/src/modules/bmb/workflows/agent/steps-c/step-01-brainstorm.md +3 -1
- package/src/modules/bmb/workflows/agent/steps-c/step-02-discovery.md +3 -1
- package/src/modules/bmb/workflows/agent/steps-c/step-03-type-metadata.md +6 -4
- package/src/modules/bmb/workflows/agent/steps-c/step-04-persona.md +4 -2
- package/src/modules/bmb/workflows/agent/steps-c/step-05-commands-menu.md +4 -2
- package/src/modules/bmb/workflows/agent/steps-c/step-06-activation.md +11 -7
- package/src/modules/bmb/workflows/agent/steps-c/step-07a-build-simple.md +7 -5
- package/src/modules/bmb/workflows/agent/steps-c/step-07b-build-expert.md +16 -16
- package/src/modules/bmb/workflows/agent/steps-c/step-07c-build-module.md +2 -2
- package/src/modules/bmb/workflows/agent/steps-c/{step-09-celebrate.md → step-08-celebrate.md} +14 -9
- package/src/modules/bmb/workflows/agent/steps-e/e-01-load-existing.md +12 -5
- package/src/modules/bmb/workflows/agent/steps-e/e-02-discover-edits.md +5 -3
- package/src/modules/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
- package/src/modules/bmb/workflows/agent/steps-e/e-04-type-metadata.md +3 -1
- package/src/modules/bmb/workflows/agent/steps-e/e-05-persona.md +3 -1
- package/src/modules/bmb/workflows/agent/steps-e/e-06-commands-menu.md +3 -1
- package/src/modules/bmb/workflows/agent/steps-e/e-07-activation.md +13 -10
- package/src/modules/bmb/workflows/agent/steps-e/e-08a-edit-simple.md +8 -5
- package/src/modules/bmb/workflows/agent/steps-e/e-08b-edit-expert.md +7 -5
- package/src/modules/bmb/workflows/agent/steps-e/e-08c-edit-module.md +8 -5
- package/src/modules/bmb/workflows/agent/steps-e/{e-10-celebrate.md → e-09-celebrate.md} +13 -8
- package/src/modules/bmb/workflows/agent/steps-v/v-01-load-review.md +14 -6
- package/src/modules/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +54 -11
- package/src/modules/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +62 -10
- package/src/modules/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +84 -10
- package/src/modules/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +75 -10
- package/src/modules/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +76 -16
- package/src/modules/bmb/workflows/agent/steps-v/v-03-summary.md +5 -1
- package/src/modules/bmb/workflows/agent/templates/expert-agent-template/expert-agent.template.md +1 -0
- package/src/modules/bmb/workflows/agent/templates/simple-agent.template.md +1 -0
- package/src/modules/bmb/workflows/module/data/agent-architecture.md +179 -0
- package/src/modules/bmb/workflows/module/data/agent-spec-template.md +79 -0
- package/src/modules/bmb/workflows/module/data/module-installer-standards.md +348 -0
- package/src/modules/bmb/workflows/module/data/module-standards.md +280 -0
- package/src/modules/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
- package/src/modules/bmb/workflows/module/steps-b/step-01-welcome.md +147 -0
- package/src/modules/bmb/workflows/module/steps-b/step-02-spark.md +140 -0
- package/src/modules/bmb/workflows/module/steps-b/step-03-module-type.md +148 -0
- package/src/modules/bmb/workflows/module/steps-b/step-04-vision.md +82 -0
- package/src/modules/bmb/workflows/module/steps-b/step-05-identity.md +96 -0
- package/src/modules/bmb/workflows/module/steps-b/step-06-users.md +85 -0
- package/src/modules/bmb/workflows/module/steps-b/step-07-value.md +75 -0
- package/src/modules/bmb/workflows/module/steps-b/step-08-agents.md +96 -0
- package/src/modules/bmb/workflows/module/steps-b/step-09-workflows.md +82 -0
- package/src/modules/bmb/workflows/module/steps-b/step-10-tools.md +90 -0
- package/src/modules/bmb/workflows/module/steps-b/step-11-scenarios.md +83 -0
- package/src/modules/bmb/workflows/module/steps-b/step-12-creative.md +94 -0
- package/src/modules/bmb/workflows/module/steps-b/step-13-review.md +104 -0
- package/src/modules/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
- package/src/modules/bmb/workflows/module/steps-c/step-01-load-brief.md +178 -0
- package/src/modules/bmb/workflows/module/steps-c/step-01b-continue.md +83 -0
- package/src/modules/bmb/workflows/module/steps-c/step-02-structure.md +109 -0
- package/src/modules/bmb/workflows/module/steps-c/step-03-config.md +118 -0
- package/src/modules/bmb/workflows/module/steps-c/step-04-installer.md +160 -0
- package/src/modules/bmb/workflows/module/steps-c/step-05-agents.md +167 -0
- package/src/modules/bmb/workflows/module/steps-c/step-06-workflows.md +183 -0
- package/src/modules/bmb/workflows/module/steps-c/step-07-docs.md +402 -0
- package/src/modules/bmb/workflows/module/steps-c/step-08-complete.md +123 -0
- package/src/modules/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
- package/src/modules/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
- package/src/modules/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
- package/src/modules/bmb/workflows/module/steps-e/step-04-review.md +80 -0
- package/src/modules/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
- package/src/modules/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
- package/src/modules/bmb/workflows/module/steps-v/step-02-file-structure.md +94 -0
- package/src/modules/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
- package/src/modules/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
- package/src/modules/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
- package/src/modules/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
- package/src/modules/bmb/workflows/module/steps-v/step-07-installation.md +113 -0
- package/src/modules/bmb/workflows/module/steps-v/step-08-report.md +197 -0
- package/src/modules/bmb/workflows/module/templates/brief-template.md +154 -0
- package/src/modules/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
- package/src/modules/bmb/workflows/module/workflow.md +100 -0
- package/src/modules/bmb/workflows/workflow/data/architecture.md +152 -0
- package/src/modules/bmb/workflows/workflow/data/csv-data-file-standards.md +81 -0
- package/src/modules/bmb/workflows/workflow/data/frontmatter-standards.md +225 -0
- package/src/modules/bmb/workflows/workflow/data/input-discovery-standards.md +269 -0
- package/src/modules/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +50 -0
- package/src/modules/bmb/workflows/workflow/data/menu-handling-standards.md +167 -0
- package/src/modules/bmb/workflows/workflow/data/output-format-standards.md +188 -0
- package/src/modules/bmb/workflows/workflow/data/step-file-rules.md +235 -0
- package/src/modules/bmb/workflows/workflow/data/step-type-patterns.md +311 -0
- package/src/modules/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +386 -0
- package/src/modules/bmb/workflows/workflow/data/trimodal-workflow-structure.md +209 -0
- package/src/modules/bmb/workflows/workflow/data/workflow-chaining-standards.md +271 -0
- package/src/modules/bmb/workflows/workflow/data/workflow-examples.md +276 -0
- package/src/modules/bmb/workflows/workflow/data/workflow-type-criteria.md +172 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-00-conversion.md +262 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-02-classification.md +269 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-03-requirements.md +282 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-04-tools.md +281 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-05-plan-review.md +242 -0
- package/src/modules/bmb/workflows/{create-workflow/steps → workflow/steps-c}/step-06-design.md +92 -35
- package/src/modules/bmb/workflows/workflow/steps-c/step-07-foundation.md +238 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +377 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-10-confirmation.md +320 -0
- package/src/modules/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +248 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +252 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +275 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
- package/src/modules/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
- package/src/modules/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
- package/src/modules/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-01-init-continuable-template.md +3 -3
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-1b-template.md +1 -1
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/step-template.md +14 -14
- package/src/modules/bmb/{docs/workflows → workflows/workflow}/templates/workflow-template.md +2 -4
- package/src/modules/bmb/workflows/workflow/workflow.md +109 -0
- package/src/modules/bmgd/agents/game-architect.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-designer.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-dev.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-qa.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-scrum-master.agent.yaml +1 -0
- package/src/modules/bmgd/agents/game-solo-dev.agent.yaml +2 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/instructions.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-01-init.md +4 -3
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-02-context.md +3 -3
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-03-ideation.md +50 -45
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/steps/step-04-complete.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md +4 -1
- package/src/modules/bmgd/workflows/1-preproduction/brainstorm-game/workflow.yaml +3 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01-init.md +3 -3
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-01b-continue.md +1 -1
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-02-vision.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-03-market.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-04-fundamentals.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-05-scope.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-06-references.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-07-content.md +2 -2
- package/src/modules/bmgd/workflows/1-preproduction/game-brief/steps/step-08-complete.md +1 -1
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01-init.md +3 -3
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-01b-continue.md +1 -1
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-02-context.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-03-platforms.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-04-vision.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-05-core-gameplay.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-06-mechanics.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-07-game-type.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-08-progression.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-09-levels.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-10-art-audio.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-11-technical.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-12-epics.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-13-metrics.md +2 -2
- package/src/modules/bmgd/workflows/2-design/gdd/steps/step-14-complete.md +1 -1
- package/src/modules/bmgd/workflows/2-design/narrative/instructions-narrative.md +1 -1
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01-init.md +3 -3
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-01b-continue.md +11 -11
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-02-foundation.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-03-story.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-04-characters.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-05-world.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-06-dialogue.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-07-environmental.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-08-delivery.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-09-integration.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-10-production.md +2 -2
- package/src/modules/bmgd/workflows/2-design/narrative/steps/step-11-complete.md +1 -1
- package/src/modules/bmgd/workflows/2-design/narrative/workflow.md +1 -1
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01-init.md +3 -3
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-01b-continue.md +9 -9
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-02-context.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-03-starter.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-04-decisions.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-05-crosscutting.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-06-structure.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-07-patterns.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-08-validation.md +2 -2
- package/src/modules/bmgd/workflows/3-technical/game-architecture/steps/step-09-complete.md +1 -1
- package/src/modules/bmgd/workflows/3-technical/game-architecture/workflow.md +1 -1
- package/src/modules/bmgd/workflows/4-production/code-review/instructions.xml +1 -0
- package/src/modules/bmgd/workflows/4-production/code-review/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/correct-course/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/create-story/checklist.md +2 -2
- package/src/modules/bmgd/workflows/4-production/create-story/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/dev-story/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/retrospective/workflow.yaml +1 -1
- package/src/modules/bmgd/workflows/4-production/sprint-status/workflow.yaml +2 -2
- package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/workflow.yaml +2 -2
- package/src/modules/bmgd/workflows/workflow-status/paths/quickflow-brownfield.yaml +2 -2
- package/src/modules/bmm/agents/analyst.agent.yaml +3 -2
- package/src/modules/bmm/agents/architect.agent.yaml +3 -1
- package/src/modules/bmm/agents/dev.agent.yaml +4 -3
- package/src/modules/bmm/agents/pm.agent.yaml +11 -2
- package/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +3 -2
- package/src/modules/bmm/agents/sm.agent.yaml +1 -0
- package/src/modules/bmm/agents/tea.agent.yaml +6 -3
- package/src/modules/bmm/agents/tech-writer.agent.yaml +1 -0
- package/src/modules/bmm/agents/ux-designer.agent.yaml +1 -0
- package/src/modules/bmm/module.yaml +1 -1
- package/src/modules/bmm/testarch/knowledge/api-request.md +155 -16
- package/src/modules/bmm/testarch/knowledge/api-testing-patterns.md +843 -0
- package/src/modules/bmm/testarch/knowledge/auth-session.md +197 -1
- package/src/modules/bmm/testarch/knowledge/file-utils.md +257 -54
- package/src/modules/bmm/testarch/knowledge/intercept-network-call.md +159 -9
- package/src/modules/bmm/testarch/knowledge/log.md +170 -35
- package/src/modules/bmm/testarch/knowledge/network-error-monitor.md +228 -95
- package/src/modules/bmm/testarch/knowledge/network-recorder.md +314 -52
- package/src/modules/bmm/testarch/knowledge/overview.md +15 -12
- package/src/modules/bmm/testarch/knowledge/recurse.md +173 -48
- package/src/modules/bmm/testarch/tea-index.csv +19 -18
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +3 -8
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +0 -5
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +1 -6
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +1 -6
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +1 -6
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +1 -6
- package/src/modules/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +0 -5
- package/src/modules/bmm/workflows/2-plan-workflows/prd/data/prd-purpose.md +197 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01-init.md +7 -13
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-01b-continue.md +36 -49
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-02-discovery.md +224 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-03-success.md +50 -114
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-04-journeys.md +213 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-05-domain.md +207 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-06-innovation.md +43 -79
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-07-project-type.md +37 -58
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-08-scoping.md +43 -114
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-09-functional.md +21 -60
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{steps → steps-c}/step-10-nonfunctional.md +32 -84
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-11-polish.md +217 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-c/step-12-complete.md +180 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01-discovery.md +247 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-02-review.md +249 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-03-edit.md +253 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-e/step-e-04-complete.md +168 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-01-discovery.md +218 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02-format-detection.md +191 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-03-density-validation.md +174 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps-v/step-v-13-report-complete.md +232 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/{prd-template.md → templates/prd-template.md} +0 -1
- package/src/modules/bmm/workflows/2-plan-workflows/prd/validation-report-prd-workflow.md +433 -0
- package/src/modules/bmm/workflows/2-plan-workflows/prd/workflow.md +96 -9
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +1 -1
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +2 -2
- package/src/modules/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +1 -1
- package/src/modules/bmm/workflows/4-implementation/code-review/instructions.xml +2 -0
- package/src/modules/bmm/workflows/4-implementation/correct-course/workflow.yaml +1 -1
- package/src/modules/bmm/workflows/4-implementation/create-story/checklist.md +2 -2
- package/src/modules/bmm/workflows/4-implementation/create-story/instructions.xml +2 -1
- package/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml +1 -1
- package/src/modules/bmm/workflows/4-implementation/dev-story/instructions.xml +2 -1
- package/src/modules/bmm/workflows/4-implementation/sprint-status/workflow.yaml +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +6 -6
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +2 -2
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +1 -1
- package/src/modules/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +1 -1
- package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-01-understand.md +3 -3
- package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-02-investigate.md +1 -1
- package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-03-generate.md +1 -1
- package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/steps/step-04-review.md +1 -1
- package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/workflow.md +2 -2
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-dataflow/instructions.md +1 -1
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-diagram/instructions.md +1 -1
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-flowchart/instructions.md +1 -1
- package/src/modules/bmm/workflows/excalidraw-diagrams/create-wireframe/instructions.md +1 -1
- package/src/modules/bmm/workflows/testarch/test-design/instructions.md +2 -2
- package/src/modules/bmm/workflows/workflow-status/instructions.md +4 -4
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +2 -1
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +1 -0
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +1 -0
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +1 -0
- package/src/modules/cis/agents/presentation-master.agent.yaml +1 -0
- package/src/modules/cis/module.yaml +1 -0
- package/src/modules/cis/workflows/design-thinking/instructions.md +2 -2
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +2 -2
- package/src/modules/cis/workflows/problem-solving/instructions.md +2 -2
- package/src/modules/cis/workflows/storytelling/instructions.md +2 -2
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +1 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +1 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +1 -0
- package/tools/build-docs.js +200 -271
- package/tools/cli/commands/install.js +8 -2
- package/tools/cli/installers/install-messages.yaml +36 -36
- package/tools/cli/installers/lib/core/config-collector.js +11 -1
- package/tools/cli/installers/lib/core/installer.js +3 -4
- package/tools/cli/installers/lib/core/manifest-generator.js +46 -2
- package/tools/cli/installers/lib/ide/antigravity.js +3 -3
- package/tools/cli/installers/lib/ide/claude-code.js +3 -3
- package/tools/cli/installers/lib/ide/codex.js +1 -1
- package/tools/cli/installers/lib/ide/cursor.js +57 -304
- package/tools/cli/installers/lib/ide/github-copilot.js +1 -1
- package/tools/cli/lib/ui.js +22 -1
- package/tools/fix-doc-links.js +288 -0
- package/tools/schema/agent.js +1 -0
- package/tools/validate-doc-links.js +363 -0
- package/website/README.md +76 -0
- package/website/astro.config.mjs +218 -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 +483 -0
- package/docs/bmad-core-concepts/bmad-customization/index.md +0 -26
- package/docs/bmad-core-concepts/index.md +0 -37
- package/docs/bmad-core-concepts/installing/index.md +0 -77
- package/docs/bmad-core-concepts/workflows.md +0 -89
- package/docs/modules/bmb-bmad-builder/agent-creation-guide.md +0 -166
- package/docs/modules/bmb-bmad-builder/index.md +0 -60
- package/docs/modules/bmgd-bmad-game-dev/glossary.md +0 -293
- package/docs/modules/bmgd-bmad-game-dev/index.md +0 -175
- package/docs/modules/bmgd-bmad-game-dev/quick-start.md +0 -250
- package/docs/modules/bmm-bmad-method/bmad-quick-flow.md +0 -506
- package/docs/modules/bmm-bmad-method/brownfield-guide.md +0 -747
- package/docs/modules/bmm-bmad-method/faq.md +0 -540
- package/docs/modules/bmm-bmad-method/quick-spec-flow.md +0 -622
- package/docs/modules/bmm-bmad-method/quick-start.md +0 -363
- package/docs/modules/bmm-bmad-method/troubleshooting.md +0 -3
- package/docs/modules/bmm-bmad-method/workflows-analysis.md +0 -199
- package/docs/modules/bmm-bmad-method/workflows-implementation.md +0 -210
- package/docs/modules/bmm-bmad-method/workflows-planning.md +0 -89
- package/docs/modules/bmm-bmad-method/workflows-solutioning.md +0 -509
- package/docs/modules/core/index.md +0 -15
- package/docs/modules/core/party-mode.md +0 -50
- package/src/core/tasks/validate-workflow.xml +0 -89
- package/src/modules/bmb/docs/workflows/architecture.md +0 -220
- package/src/modules/bmb/docs/workflows/csv-data-file-standards.md +0 -206
- package/src/modules/bmb/docs/workflows/intent-vs-prescriptive-spectrum.md +0 -220
- package/src/modules/bmb/docs/workflows/step-file-rules.md +0 -469
- package/src/modules/bmb/docs/workflows/templates/step-file.md +0 -139
- package/src/modules/bmb/docs/workflows/templates/workflow.md +0 -58
- package/src/modules/bmb/docs/workflows/terms.md +0 -97
- package/src/modules/bmb/reference/agents/simple-examples/README.md +0 -223
- package/src/modules/bmb/reference/readme.md +0 -3
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +0 -16
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +0 -28
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +0 -177
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +0 -121
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +0 -165
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +0 -154
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +0 -183
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +0 -168
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -195
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +0 -25
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +0 -47
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +0 -37
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +0 -18
- package/src/modules/bmb/reference/workflows/meal-prep-nutrition/workflow.md +0 -59
- package/src/modules/bmb/workflows/agent/steps-c/step-08a-plan-traceability.md +0 -203
- package/src/modules/bmb/workflows/agent/steps-c/step-08b-metadata-validation.md +0 -135
- package/src/modules/bmb/workflows/agent/steps-c/step-08c-persona-validation.md +0 -161
- package/src/modules/bmb/workflows/agent/steps-c/step-08d-menu-validation.md +0 -158
- package/src/modules/bmb/workflows/agent/steps-c/step-08e-structure-validation.md +0 -306
- package/src/modules/bmb/workflows/agent/steps-c/step-08f-sidecar-validation.md +0 -462
- package/src/modules/bmb/workflows/agent/steps-e/e-03a-validate-metadata.md +0 -78
- package/src/modules/bmb/workflows/agent/steps-e/e-03b-validate-persona.md +0 -76
- package/src/modules/bmb/workflows/agent/steps-e/e-03c-validate-menu.md +0 -75
- package/src/modules/bmb/workflows/agent/steps-e/e-03d-validate-structure.md +0 -75
- package/src/modules/bmb/workflows/agent/steps-e/e-03e-validate-sidecar.md +0 -78
- package/src/modules/bmb/workflows/agent/steps-e/e-03f-validation-summary.md +0 -119
- package/src/modules/bmb/workflows/agent/steps-e/e-09a-validate-metadata.md +0 -70
- package/src/modules/bmb/workflows/agent/steps-e/e-09b-validate-persona.md +0 -70
- package/src/modules/bmb/workflows/agent/steps-e/e-09c-validate-menu.md +0 -69
- package/src/modules/bmb/workflows/agent/steps-e/e-09d-validate-structure.md +0 -69
- package/src/modules/bmb/workflows/agent/steps-e/e-09e-validate-sidecar.md +0 -70
- package/src/modules/bmb/workflows/agent/steps-e/e-09f-validation-summary.md +0 -111
- package/src/modules/bmb/workflows/create-module/steps/step-01-init.md +0 -156
- package/src/modules/bmb/workflows/create-module/steps/step-01b-continue.md +0 -170
- package/src/modules/bmb/workflows/create-module/steps/step-02-concept.md +0 -218
- package/src/modules/bmb/workflows/create-module/steps/step-03-components.md +0 -268
- package/src/modules/bmb/workflows/create-module/steps/step-04-structure.md +0 -229
- package/src/modules/bmb/workflows/create-module/steps/step-05-config.md +0 -234
- package/src/modules/bmb/workflows/create-module/steps/step-06-agents.md +0 -297
- package/src/modules/bmb/workflows/create-module/steps/step-07-workflows.md +0 -229
- package/src/modules/bmb/workflows/create-module/steps/step-08-installer.md +0 -187
- package/src/modules/bmb/workflows/create-module/steps/step-09-documentation.md +0 -310
- package/src/modules/bmb/workflows/create-module/steps/step-10-roadmap.md +0 -338
- package/src/modules/bmb/workflows/create-module/steps/step-11-validate.md +0 -336
- package/src/modules/bmb/workflows/create-module/templates/agent.template.md +0 -313
- package/src/modules/bmb/workflows/create-module/templates/installer.template.js +0 -47
- package/src/modules/bmb/workflows/create-module/templates/module-plan.template.md +0 -5
- package/src/modules/bmb/workflows/create-module/templates/module.template.yaml +0 -53
- package/src/modules/bmb/workflows/create-module/templates/workflow-plan-template.md +0 -23
- package/src/modules/bmb/workflows/create-module/validation.md +0 -126
- package/src/modules/bmb/workflows/create-module/workflow.md +0 -56
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/dietary-restrictions.csv +0 -18
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/macro-calculator.csv +0 -16
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/data/recipe-database.csv +0 -28
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01-init.md +0 -177
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-01b-continue.md +0 -150
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-02-profile.md +0 -164
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-03-assessment.md +0 -152
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-04-strategy.md +0 -182
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-05-shopping.md +0 -167
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/steps/step-06-prep-schedule.md +0 -194
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/assessment-section.md +0 -25
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/nutrition-plan.md +0 -68
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/prep-schedule-section.md +0 -29
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/profile-section.md +0 -47
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/shopping-section.md +0 -37
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/templates/strategy-section.md +0 -18
- package/src/modules/bmb/workflows/create-workflow/data/examples/meal-prep-nutrition/workflow.md +0 -58
- package/src/modules/bmb/workflows/create-workflow/steps/step-01-init.md +0 -158
- package/src/modules/bmb/workflows/create-workflow/steps/step-02-gather.md +0 -212
- package/src/modules/bmb/workflows/create-workflow/steps/step-03-tools-configuration.md +0 -251
- package/src/modules/bmb/workflows/create-workflow/steps/step-04-plan-review.md +0 -217
- package/src/modules/bmb/workflows/create-workflow/steps/step-05-output-format-design.md +0 -290
- package/src/modules/bmb/workflows/create-workflow/steps/step-07-build.md +0 -323
- package/src/modules/bmb/workflows/create-workflow/steps/step-08-review.md +0 -285
- package/src/modules/bmb/workflows/create-workflow/steps/step-09-complete.md +0 -188
- package/src/modules/bmb/workflows/create-workflow/workflow.md +0 -59
- package/src/modules/bmb/workflows/edit-workflow/steps/step-01-analyze.md +0 -217
- package/src/modules/bmb/workflows/edit-workflow/steps/step-02-discover.md +0 -254
- package/src/modules/bmb/workflows/edit-workflow/steps/step-03-improve.md +0 -218
- package/src/modules/bmb/workflows/edit-workflow/steps/step-04-validate.md +0 -194
- package/src/modules/bmb/workflows/edit-workflow/steps/step-05-compliance-check.md +0 -246
- package/src/modules/bmb/workflows/edit-workflow/templates/completion-summary.md +0 -75
- package/src/modules/bmb/workflows/edit-workflow/templates/improvement-goals.md +0 -68
- package/src/modules/bmb/workflows/edit-workflow/templates/improvement-log.md +0 -40
- package/src/modules/bmb/workflows/edit-workflow/templates/validation-results.md +0 -51
- package/src/modules/bmb/workflows/edit-workflow/templates/workflow-analysis.md +0 -56
- package/src/modules/bmb/workflows/edit-workflow/workflow.md +0 -59
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +0 -153
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +0 -244
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +0 -275
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +0 -296
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +0 -265
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +0 -361
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +0 -259
- package/src/modules/bmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +0 -302
- package/src/modules/bmb/workflows/workflow-compliance-check/templates/compliance-report.md +0 -140
- package/src/modules/bmb/workflows/workflow-compliance-check/workflow.md +0 -59
- package/src/modules/bmb/workflows-legacy/edit-module/README.md +0 -171
- package/src/modules/bmb/workflows-legacy/edit-module/checklist.md +0 -163
- package/src/modules/bmb/workflows-legacy/edit-module/instructions.md +0 -340
- package/src/modules/bmb/workflows-legacy/edit-module/workflow.yaml +0 -34
- package/src/modules/bmb/workflows-legacy/module-brief/README.md +0 -264
- package/src/modules/bmb/workflows-legacy/module-brief/checklist.md +0 -116
- package/src/modules/bmb/workflows-legacy/module-brief/instructions.md +0 -268
- package/src/modules/bmb/workflows-legacy/module-brief/template.md +0 -275
- package/src/modules/bmb/workflows-legacy/module-brief/workflow.yaml +0 -36
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +0 -421
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +0 -291
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-05-domain.md +0 -271
- package/src/modules/bmm/workflows/2-plan-workflows/prd/steps/step-11-complete.md +0 -186
- package/website/css/custom.css +0 -52
- package/website/docusaurus.config.js +0 -179
- package/website/sidebars.js +0 -139
- package/website/src/pages/index.js +0 -50
- /package/docs/{modules/bmm-bmad-method → tutorials/getting-started}/images/workflow-method-greenfield.excalidraw +0 -0
- /package/docs/{modules/bmm-bmad-method → tutorials/getting-started}/images/workflow-method-greenfield.svg +0 -0
- /package/docs/{modules/bmgd-bmad-game-dev → tutorials/getting-started/images}/workflow-overview.jpg +0 -0
- /package/src/modules/bmb/{docs/workflows → workflows/workflow/data}/common-workflow-tools.csv +0 -0
- /package/src/modules/bmgd/workflows/bmgd-quick-flow/{create-tech-spec → quick-spec}/instructions.md +0 -0
- /package/src/modules/bmm/workflows/2-plan-workflows/prd/{domain-complexity.csv → data/domain-complexity.csv} +0 -0
- /package/src/modules/bmm/workflows/2-plan-workflows/prd/{project-types.csv → data/project-types.csv} +0 -0
- /package/src/modules/bmm/workflows/bmad-quick-flow/{create-tech-spec → quick-spec}/tech-spec-template.md +0 -0
- /package/website/{static → public}/favicon.ico +0 -0
- /package/website/{static → public}/img/logo.svg +0 -0
- /package/website/{static → public}/robots.txt +0 -0
|
@@ -21,6 +21,46 @@ HAR-based recording/playback provides:
|
|
|
21
21
|
- **Stateful mocking**: CRUD operations work naturally (not just read-only)
|
|
22
22
|
- **Environment flexibility**: Map URLs for any environment
|
|
23
23
|
|
|
24
|
+
## Quick Start
|
|
25
|
+
|
|
26
|
+
### 1. Record Network Traffic
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
// Set mode to 'record' to capture network traffic
|
|
30
|
+
process.env.PW_NET_MODE = 'record';
|
|
31
|
+
|
|
32
|
+
test('should add, edit and delete a movie', async ({ page, context, networkRecorder }) => {
|
|
33
|
+
// Setup network recorder - it will record all network traffic
|
|
34
|
+
await networkRecorder.setup(context);
|
|
35
|
+
|
|
36
|
+
// Your normal test code
|
|
37
|
+
await page.goto('/');
|
|
38
|
+
await page.fill('#movie-name', 'Inception');
|
|
39
|
+
await page.click('#add-movie');
|
|
40
|
+
|
|
41
|
+
// Network traffic is automatically saved to HAR file
|
|
42
|
+
});
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 2. Playback Network Traffic
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
// Set mode to 'playback' to use recorded traffic
|
|
49
|
+
process.env.PW_NET_MODE = 'playback';
|
|
50
|
+
|
|
51
|
+
test('should add, edit and delete a movie', async ({ page, context, networkRecorder }) => {
|
|
52
|
+
// Setup network recorder - it will replay from HAR file
|
|
53
|
+
await networkRecorder.setup(context);
|
|
54
|
+
|
|
55
|
+
// Same test code runs without hitting real backend!
|
|
56
|
+
await page.goto('/');
|
|
57
|
+
await page.fill('#movie-name', 'Inception');
|
|
58
|
+
await page.click('#add-movie');
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
That's it! Your tests now run completely offline using recorded network traffic.
|
|
63
|
+
|
|
24
64
|
## Pattern Examples
|
|
25
65
|
|
|
26
66
|
### Example 1: Basic Record and Playback
|
|
@@ -115,74 +155,173 @@ test.describe('Movie CRUD - offline with network recorder', () => {
|
|
|
115
155
|
- Combine with `interceptNetworkCall` for deterministic waits
|
|
116
156
|
- First run records, subsequent runs replay
|
|
117
157
|
|
|
118
|
-
### Example 3:
|
|
158
|
+
### Example 3: Common Patterns
|
|
119
159
|
|
|
120
|
-
**
|
|
160
|
+
**Recording Only API Calls**:
|
|
121
161
|
|
|
122
|
-
|
|
162
|
+
```typescript
|
|
163
|
+
await networkRecorder.setup(context, {
|
|
164
|
+
recording: {
|
|
165
|
+
urlFilter: /\/api\// // Only record API calls, ignore static assets
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
**Playback with Fallback**:
|
|
123
171
|
|
|
124
172
|
```typescript
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
},
|
|
173
|
+
await networkRecorder.setup(context, {
|
|
174
|
+
playback: {
|
|
175
|
+
fallback: true // Fall back to live requests if HAR entry missing
|
|
176
|
+
}
|
|
130
177
|
});
|
|
178
|
+
```
|
|
131
179
|
|
|
132
|
-
|
|
133
|
-
test('cross-environment playback', async ({ page, context, networkRecorder }) => {
|
|
134
|
-
await networkRecorder.setup(context);
|
|
180
|
+
**Custom HAR File Location**:
|
|
135
181
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
182
|
+
```typescript
|
|
183
|
+
await networkRecorder.setup(context, {
|
|
184
|
+
harFile: {
|
|
185
|
+
harDir: 'recordings/api-calls',
|
|
186
|
+
baseName: 'user-journey',
|
|
187
|
+
organizeByTestFile: false // Optional: flatten directory structure
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
```
|
|
139
191
|
|
|
140
|
-
|
|
141
|
-
|
|
192
|
+
**Directory Organization:**
|
|
193
|
+
|
|
194
|
+
- `organizeByTestFile: true` (default): `har-files/test-file-name/baseName-test-title.har`
|
|
195
|
+
- `organizeByTestFile: false`: `har-files/baseName-test-title.har`
|
|
196
|
+
|
|
197
|
+
### Example 4: Response Content Storage - Embed vs Attach
|
|
198
|
+
|
|
199
|
+
**Context**: Choose how response content is stored in HAR files.
|
|
200
|
+
|
|
201
|
+
**`embed` (Default - Recommended):**
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
await networkRecorder.setup(context, {
|
|
205
|
+
recording: {
|
|
206
|
+
content: 'embed' // Store content inline (default)
|
|
207
|
+
}
|
|
142
208
|
});
|
|
143
209
|
```
|
|
144
210
|
|
|
145
|
-
**
|
|
211
|
+
**Pros:**
|
|
146
212
|
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- No manual URL rewriting needed
|
|
213
|
+
- Single self-contained file - Easy to share, version control
|
|
214
|
+
- Better for small-medium responses (API JSON, HTML pages)
|
|
215
|
+
- HAR specification compliant
|
|
151
216
|
|
|
152
|
-
|
|
217
|
+
**Cons:**
|
|
153
218
|
|
|
154
|
-
|
|
219
|
+
- Larger HAR files
|
|
220
|
+
- Not ideal for large binary content (images, videos)
|
|
155
221
|
|
|
156
|
-
|
|
222
|
+
**`attach` (Alternative):**
|
|
157
223
|
|
|
158
224
|
```typescript
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
225
|
+
await networkRecorder.setup(context, {
|
|
226
|
+
recording: {
|
|
227
|
+
content: 'attach' // Store content separately
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
```
|
|
162
231
|
|
|
163
|
-
|
|
164
|
-
process.env.PW_NET_MODE = 'record' // Set at top of test file
|
|
232
|
+
**Pros:**
|
|
165
233
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
234
|
+
- Smaller HAR files
|
|
235
|
+
- Better for large responses (images, videos, documents)
|
|
236
|
+
|
|
237
|
+
**Cons:**
|
|
238
|
+
|
|
239
|
+
- Multiple files to manage
|
|
240
|
+
- Harder to share
|
|
241
|
+
|
|
242
|
+
**When to Use Each:**
|
|
243
|
+
|
|
244
|
+
| Use `embed` (default) when | Use `attach` when |
|
|
245
|
+
|---------------------------|-------------------|
|
|
246
|
+
| Recording API responses (JSON, XML) | Recording large images, videos |
|
|
247
|
+
| Small to medium HTML pages | HAR file size >50MB |
|
|
248
|
+
| You want a single, portable file | Maximum disk efficiency needed |
|
|
249
|
+
| Sharing HAR files with team | Working with ZIP archive output |
|
|
250
|
+
|
|
251
|
+
### Example 5: Cross-Environment Compatibility (URL Mapping)
|
|
252
|
+
|
|
253
|
+
**Context**: Record in dev environment, play back in CI with different base URLs.
|
|
254
|
+
|
|
255
|
+
**The Problem**: HAR files contain URLs for the recording environment (e.g., `dev.example.com`). Playing back on a different environment fails.
|
|
256
|
+
|
|
257
|
+
**Simple Hostname Mapping:**
|
|
258
|
+
|
|
259
|
+
```typescript
|
|
260
|
+
await networkRecorder.setup(context, {
|
|
261
|
+
playback: {
|
|
262
|
+
urlMapping: {
|
|
263
|
+
hostMapping: {
|
|
264
|
+
'preview.example.com': 'dev.example.com',
|
|
265
|
+
'staging.example.com': 'dev.example.com',
|
|
266
|
+
'localhost:3000': 'dev.example.com'
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
});
|
|
178
271
|
```
|
|
179
272
|
|
|
180
|
-
**
|
|
273
|
+
**Pattern-Based Mapping (Recommended):**
|
|
274
|
+
|
|
275
|
+
```typescript
|
|
276
|
+
await networkRecorder.setup(context, {
|
|
277
|
+
playback: {
|
|
278
|
+
urlMapping: {
|
|
279
|
+
patterns: [
|
|
280
|
+
// Map any preview-XXXX subdomain to dev
|
|
281
|
+
{ match: /preview-\d+\.example\.com/, replace: 'dev.example.com' }
|
|
282
|
+
]
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Custom Function:**
|
|
289
|
+
|
|
290
|
+
```typescript
|
|
291
|
+
await networkRecorder.setup(context, {
|
|
292
|
+
playback: {
|
|
293
|
+
urlMapping: {
|
|
294
|
+
mapUrl: (url) => url.replace('staging.example.com', 'dev.example.com')
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
**Complex Multi-Environment Example:**
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
await networkRecorder.setup(context, {
|
|
304
|
+
playback: {
|
|
305
|
+
urlMapping: {
|
|
306
|
+
hostMapping: {
|
|
307
|
+
'localhost:3000': 'admin.seondev.space',
|
|
308
|
+
'admin-staging.seon.io': 'admin.seondev.space',
|
|
309
|
+
'admin.seon.io': 'admin.seondev.space',
|
|
310
|
+
},
|
|
311
|
+
patterns: [
|
|
312
|
+
{ match: /admin-\d+\.seondev\.space/, replace: 'admin.seondev.space' },
|
|
313
|
+
{ match: /admin-staging-pr-\w+-\d\.seon\.io/, replace: 'admin.seondev.space' }
|
|
314
|
+
]
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Benefits:**
|
|
181
321
|
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
185
|
-
- Auto-fallback when no mode specified
|
|
322
|
+
- Record once on dev, all environments map back to recordings
|
|
323
|
+
- CORS headers automatically updated based on request origin
|
|
324
|
+
- Debug with: `LOG_LEVEL=debug npm run test`
|
|
186
325
|
|
|
187
326
|
## Why Use This Instead of Native Playwright?
|
|
188
327
|
|
|
@@ -191,7 +330,7 @@ test('auto mode', async ({ page, context, networkRecorder }) => {
|
|
|
191
330
|
| ~80 lines setup boilerplate | ~5 lines total |
|
|
192
331
|
| Manual HAR file management | Automatic file organization |
|
|
193
332
|
| Complex setup/teardown | Automatic cleanup via fixtures |
|
|
194
|
-
| **Read-only tests**
|
|
333
|
+
| **Read-only tests only** | **Full CRUD support** |
|
|
195
334
|
| **Stateless** | **Stateful mocking** |
|
|
196
335
|
| Manual URL mapping | Automatic environment mapping |
|
|
197
336
|
|
|
@@ -199,9 +338,132 @@ test('auto mode', async ({ page, context, networkRecorder }) => {
|
|
|
199
338
|
|
|
200
339
|
Native Playwright HAR playback is stateless - a POST create followed by GET list won't show the created item. This utility intelligently tracks CRUD operations in memory to reflect state changes, making offline tests behave like real APIs.
|
|
201
340
|
|
|
341
|
+
## How Stateful CRUD Detection Works
|
|
342
|
+
|
|
343
|
+
When in playback mode, the Network Recorder automatically analyzes your HAR file to detect CRUD patterns. If it finds:
|
|
344
|
+
|
|
345
|
+
- Multiple GET requests to the same resource endpoint (e.g., `/movies`)
|
|
346
|
+
- Mutation operations (POST, PUT, DELETE) to those resources
|
|
347
|
+
- Evidence of state changes between identical requests
|
|
348
|
+
|
|
349
|
+
It automatically switches from static HAR playback to an intelligent stateful mock that:
|
|
350
|
+
|
|
351
|
+
- Maintains state across requests
|
|
352
|
+
- Auto-generates IDs for new resources
|
|
353
|
+
- Returns proper 404s for deleted resources
|
|
354
|
+
- Supports polling scenarios where state changes over time
|
|
355
|
+
|
|
356
|
+
**This happens automatically - no configuration needed!**
|
|
357
|
+
|
|
358
|
+
## API Reference
|
|
359
|
+
|
|
360
|
+
### NetworkRecorder Methods
|
|
361
|
+
|
|
362
|
+
| Method | Return Type | Description |
|
|
363
|
+
| -------------------- | ------------------------ | ----------------------------------------------------- |
|
|
364
|
+
| `setup(context)` | `Promise<void>` | Sets up recording/playback on browser context |
|
|
365
|
+
| `cleanup()` | `Promise<void>` | Flushes data to disk and cleans up memory |
|
|
366
|
+
| `getContext()` | `NetworkRecorderContext` | Gets current recorder context information |
|
|
367
|
+
| `getStatusMessage()` | `string` | Gets human-readable status message |
|
|
368
|
+
| `getHarStats()` | `Promise<HarFileStats>` | Gets HAR file statistics and metadata |
|
|
369
|
+
|
|
370
|
+
### Understanding `cleanup()`
|
|
371
|
+
|
|
372
|
+
The `cleanup()` method performs memory and resource cleanup - **it does NOT delete HAR files**:
|
|
373
|
+
|
|
374
|
+
**What it does:**
|
|
375
|
+
|
|
376
|
+
- Flushes recorded data to disk (writes HAR file in recording mode)
|
|
377
|
+
- Releases file locks
|
|
378
|
+
- Clears in-memory data
|
|
379
|
+
- Resets internal state
|
|
380
|
+
|
|
381
|
+
**What it does NOT do:**
|
|
382
|
+
|
|
383
|
+
- Delete HAR files from disk
|
|
384
|
+
- Remove recorded network traffic
|
|
385
|
+
- Clear browser context or cookies
|
|
386
|
+
|
|
387
|
+
### Configuration Options
|
|
388
|
+
|
|
389
|
+
```typescript
|
|
390
|
+
type NetworkRecorderConfig = {
|
|
391
|
+
harFile?: {
|
|
392
|
+
harDir?: string // Directory for HAR files (default: 'har-files')
|
|
393
|
+
baseName?: string // Base name for HAR files (default: 'network-traffic')
|
|
394
|
+
organizeByTestFile?: boolean // Organize by test file (default: true)
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
recording?: {
|
|
398
|
+
content?: 'embed' | 'attach' // Response content handling (default: 'embed')
|
|
399
|
+
urlFilter?: string | RegExp // URL filter for recording
|
|
400
|
+
update?: boolean // Update existing HAR files (default: false)
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
playback?: {
|
|
404
|
+
fallback?: boolean // Fall back to live requests (default: false)
|
|
405
|
+
urlFilter?: string | RegExp // URL filter for playback
|
|
406
|
+
updateMode?: boolean // Update mode during playback (default: false)
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
forceMode?: 'record' | 'playback' | 'disabled'
|
|
410
|
+
}
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Environment Configuration
|
|
414
|
+
|
|
415
|
+
Control the recording mode using the `PW_NET_MODE` environment variable:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
# Record mode - captures network traffic to HAR files
|
|
419
|
+
PW_NET_MODE=record npm run test:pw
|
|
420
|
+
|
|
421
|
+
# Playback mode - replays network traffic from HAR files
|
|
422
|
+
PW_NET_MODE=playback npm run test:pw
|
|
423
|
+
|
|
424
|
+
# Disabled mode - no network recording/playback
|
|
425
|
+
PW_NET_MODE=disabled npm run test:pw
|
|
426
|
+
|
|
427
|
+
# Default behavior (when PW_NET_MODE is empty/unset) - same as disabled
|
|
428
|
+
npm run test:pw
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**Tip**: We recommend setting `process.env.PW_NET_MODE` directly in your test file for better control.
|
|
432
|
+
|
|
433
|
+
## Troubleshooting
|
|
434
|
+
|
|
435
|
+
### HAR File Not Found
|
|
436
|
+
|
|
437
|
+
If you see "HAR file not found" errors during playback:
|
|
438
|
+
|
|
439
|
+
1. Ensure you've recorded the test first with `PW_NET_MODE=record`
|
|
440
|
+
2. Check the HAR file exists in the expected location (usually `har-files/`)
|
|
441
|
+
3. Enable fallback mode: `playback: { fallback: true }`
|
|
442
|
+
|
|
443
|
+
### Authentication and Network Recording
|
|
444
|
+
|
|
445
|
+
The network recorder works seamlessly with authentication:
|
|
446
|
+
|
|
447
|
+
```typescript
|
|
448
|
+
test('Authenticated recording', async ({ page, context, authSession, networkRecorder }) => {
|
|
449
|
+
// First authenticate
|
|
450
|
+
await authSession.login('testuser', 'password');
|
|
451
|
+
|
|
452
|
+
// Then setup network recording with authenticated context
|
|
453
|
+
await networkRecorder.setup(context);
|
|
454
|
+
|
|
455
|
+
// Test authenticated flows
|
|
456
|
+
await page.goto('/dashboard');
|
|
457
|
+
});
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Concurrent Test Issues
|
|
461
|
+
|
|
462
|
+
The recorder includes built-in file locking for safe parallel execution. Each test gets its own HAR file based on the test name.
|
|
463
|
+
|
|
202
464
|
## Integration with Other Utilities
|
|
203
465
|
|
|
204
|
-
**With interceptNetworkCall
|
|
466
|
+
**With interceptNetworkCall (deterministic waits):**
|
|
205
467
|
|
|
206
468
|
```typescript
|
|
207
469
|
test('use both utilities', async ({ page, context, networkRecorder, interceptNetworkCall }) => {
|
|
@@ -228,7 +490,7 @@ test('use both utilities', async ({ page, context, networkRecorder, interceptNet
|
|
|
228
490
|
|
|
229
491
|
## Anti-Patterns
|
|
230
492
|
|
|
231
|
-
|
|
493
|
+
**DON'T mix record and playback in same test:**
|
|
232
494
|
|
|
233
495
|
```typescript
|
|
234
496
|
process.env.PW_NET_MODE = 'record';
|
|
@@ -236,7 +498,7 @@ process.env.PW_NET_MODE = 'record';
|
|
|
236
498
|
process.env.PW_NET_MODE = 'playback'; // Don't switch mid-test
|
|
237
499
|
```
|
|
238
500
|
|
|
239
|
-
|
|
501
|
+
**DO use one mode per test:**
|
|
240
502
|
|
|
241
503
|
```typescript
|
|
242
504
|
process.env.PW_NET_MODE = 'playback'; // Set once at top
|
|
@@ -247,7 +509,7 @@ test('my test', async ({ page, context, networkRecorder }) => {
|
|
|
247
509
|
});
|
|
248
510
|
```
|
|
249
511
|
|
|
250
|
-
|
|
512
|
+
**DON'T forget to call setup:**
|
|
251
513
|
|
|
252
514
|
```typescript
|
|
253
515
|
test('broken', async ({ page, networkRecorder }) => {
|
|
@@ -255,7 +517,7 @@ test('broken', async ({ page, networkRecorder }) => {
|
|
|
255
517
|
});
|
|
256
518
|
```
|
|
257
519
|
|
|
258
|
-
|
|
520
|
+
**DO always call setup before navigation:**
|
|
259
521
|
|
|
260
522
|
```typescript
|
|
261
523
|
test('correct', async ({ page, context, networkRecorder }) => {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Principle
|
|
4
4
|
|
|
5
|
-
Use production-ready, fixture-based utilities from `@seontechnologies/playwright-utils` for common Playwright testing patterns. Build test helpers as pure functions first, then wrap in framework-specific fixtures for composability and reuse.
|
|
5
|
+
Use production-ready, fixture-based utilities from `@seontechnologies/playwright-utils` for common Playwright testing patterns. Build test helpers as pure functions first, then wrap in framework-specific fixtures for composability and reuse. **Works equally well for pure API testing (no browser) and UI testing.**
|
|
6
6
|
|
|
7
7
|
## Rationale
|
|
8
8
|
|
|
@@ -20,6 +20,7 @@ Writing Playwright utilities from scratch for every project leads to:
|
|
|
20
20
|
- **Composable fixtures**: Use `mergeTests` to combine utilities
|
|
21
21
|
- **TypeScript support**: Full type safety with generic types
|
|
22
22
|
- **Comprehensive coverage**: API requests, auth, network, logging, file handling, burn-in
|
|
23
|
+
- **Backend-first mentality**: Most utilities work without a browser - pure API/service testing is a first-class use case
|
|
23
24
|
|
|
24
25
|
## Installation
|
|
25
26
|
|
|
@@ -37,17 +38,19 @@ npm install -D @seontechnologies/playwright-utils
|
|
|
37
38
|
|
|
38
39
|
### Core Testing Utilities
|
|
39
40
|
|
|
40
|
-
| Utility | Purpose
|
|
41
|
-
| -------------------------- |
|
|
42
|
-
| **api-request** | Typed HTTP client with schema validation | API
|
|
43
|
-
| **
|
|
44
|
-
| **auth-session** | Token persistence, multi-user
|
|
45
|
-
| **
|
|
46
|
-
| **
|
|
47
|
-
| **
|
|
48
|
-
| **
|
|
49
|
-
| **
|
|
50
|
-
| **network-error-monitor** | Automatic HTTP 4xx/5xx detection
|
|
41
|
+
| Utility | Purpose | Test Context |
|
|
42
|
+
| -------------------------- | ---------------------------------------------------- | ------------------ |
|
|
43
|
+
| **api-request** | Typed HTTP client with schema validation and retry | **API/Backend** |
|
|
44
|
+
| **recurse** | Polling for async operations, background jobs | **API/Backend** |
|
|
45
|
+
| **auth-session** | Token persistence, multi-user, service-to-service | **API/Backend/UI** |
|
|
46
|
+
| **log** | Playwright report-integrated logging | **API/Backend/UI** |
|
|
47
|
+
| **file-utils** | CSV/XLSX/PDF/ZIP reading & validation | **API/Backend/UI** |
|
|
48
|
+
| **burn-in** | Smart test selection with git diff | **CI/CD** |
|
|
49
|
+
| **network-recorder** | HAR record/playback for offline testing | UI only |
|
|
50
|
+
| **intercept-network-call** | Network spy/stub with auto JSON parsing | UI only |
|
|
51
|
+
| **network-error-monitor** | Automatic HTTP 4xx/5xx detection | UI only |
|
|
52
|
+
|
|
53
|
+
**Note**: 6 of 9 utilities work without a browser. Only 3 are UI-specific (network-recorder, intercept-network-call, network-error-monitor).
|
|
51
54
|
|
|
52
55
|
## Design Patterns
|
|
53
56
|
|