mdan-cli 2.5.1 → 2.5.2
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/.augment/code_review_guidelines.yaml +271 -0
- package/.claude/skills/bmad-os-audit-file-refs/SKILL.md +6 -0
- package/.claude/skills/bmad-os-audit-file-refs/prompts/instructions.md +59 -0
- package/.claude/skills/bmad-os-changelog-social/SKILL.md +177 -0
- package/.claude/skills/bmad-os-changelog-social/examples/discord-example.md +53 -0
- package/.claude/skills/bmad-os-changelog-social/examples/linkedin-example.md +49 -0
- package/.claude/skills/bmad-os-changelog-social/examples/twitter-example.md +55 -0
- package/.claude/skills/bmad-os-diataxis-style-fix/SKILL.md +6 -0
- package/.claude/skills/bmad-os-diataxis-style-fix/prompts/instructions.md +229 -0
- package/.claude/skills/bmad-os-draft-changelog/SKILL.md +6 -0
- package/.claude/skills/bmad-os-draft-changelog/prompts/instructions.md +82 -0
- package/.claude/skills/bmad-os-gh-triage/SKILL.md +6 -0
- package/.claude/skills/bmad-os-gh-triage/prompts/agent-prompt.md +60 -0
- package/.claude/skills/bmad-os-gh-triage/prompts/instructions.md +74 -0
- package/.claude/skills/bmad-os-release-module/SKILL.md +6 -0
- package/.claude/skills/bmad-os-release-module/prompts/instructions.md +53 -0
- package/.claude/skills/bmad-os-review-pr/SKILL.md +6 -0
- package/.claude/skills/bmad-os-review-pr/prompts/instructions.md +231 -0
- package/.claude/skills/bmad-os-root-cause-analysis/SKILL.md +12 -0
- package/.claude/skills/bmad-os-root-cause-analysis/prompts/instructions.md +74 -0
- package/.coderabbit.yaml +85 -0
- package/.github/CODE_OF_CONDUCT.md +128 -0
- package/.github/FUNDING.yaml +15 -0
- package/.github/ISSUE_TEMPLATE/bug-report.yaml +124 -0
- package/.github/ISSUE_TEMPLATE/config.yaml +8 -0
- package/.github/ISSUE_TEMPLATE/documentation.yaml +55 -0
- package/.github/ISSUE_TEMPLATE/feature-request.md +22 -0
- package/.github/ISSUE_TEMPLATE/issue.md +32 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +13 -0
- package/.github/scripts/discord-helpers.sh +34 -0
- package/.github/workflows/coderabbit-review.yaml +22 -0
- package/.github/workflows/discord.yaml +90 -0
- package/.github/workflows/docs.yaml +64 -0
- package/.github/workflows/quality.yaml +116 -0
- package/.husky/pre-commit +20 -0
- package/.markdownlint-cli2.yaml +41 -0
- package/.nvmrc +1 -0
- package/.prettierignore +12 -0
- package/.vscode/settings.json +96 -0
- package/AGENTS.md +227 -165
- package/AGENTS_LIST.md +946 -0
- package/ARCHITECTURE.md +590 -0
- package/CHANGELOG.md +1770 -0
- package/CNAME +1 -0
- package/CONTRIBUTING.md +512 -0
- package/CONTRIBUTORS.md +32 -0
- package/INSTALL.md +246 -0
- package/LICENSE +30 -0
- package/README.md +133 -194
- package/RELEASE_NOTES.md +246 -0
- package/SECURITY.md +85 -0
- package/TRADEMARK.md +55 -0
- package/USAGE.md +368 -0
- package/Wordmark.png +0 -0
- package/app/__init__.py +5 -0
- package/app/cis/agents/__init__.py +31 -0
- package/app/cis/agents/brainstorming-coach/__init__.py +3 -0
- package/app/cis/agents/brainstorming-coach/agent.py +162 -0
- package/app/cis/agents/brainstorming-coach/prompt.yaml +53 -0
- package/app/cis/agents/creative-problem-solver/__init__.py +3 -0
- package/app/cis/agents/creative-problem-solver/agent.py +233 -0
- package/app/cis/agents/creative-problem-solver/prompt.yaml +74 -0
- package/app/cis/agents/design-thinking-coach/__init__.py +3 -0
- package/app/cis/agents/design-thinking-coach/agent.py +241 -0
- package/app/cis/agents/design-thinking-coach/prompt.yaml +77 -0
- package/app/cis/agents/innovation-strategist/__init__.py +3 -0
- package/app/cis/agents/innovation-strategist/agent.py +271 -0
- package/app/cis/agents/innovation-strategist/prompt.yaml +70 -0
- package/app/cis/agents/presentation-master/__init__.py +3 -0
- package/app/cis/agents/presentation-master/agent.py +420 -0
- package/app/cis/agents/presentation-master/prompt.yaml +62 -0
- package/app/cis/agents/storyteller/__init__.py +3 -0
- package/app/cis/agents/storyteller/agent.py +303 -0
- package/app/cis/agents/storyteller/prompt.yaml +99 -0
- package/app/core/__init__.py +5 -0
- package/app/core/agents/__init__.py +5 -0
- package/app/core/agents/mdan-master/__init__.py +7 -0
- package/app/core/agents/mdan-master/agent.py +302 -0
- package/app/core/agents/mdan-master/prompt.yaml +105 -0
- package/app/mmb/agents/__init__.py +24 -0
- package/app/mmb/agents/agent-builder/__init__.py +5 -0
- package/app/mmb/agents/agent-builder/agent.py +261 -0
- package/app/mmb/agents/agent-builder/prompt.yaml +48 -0
- package/app/mmb/agents/module-builder/__init__.py +5 -0
- package/app/mmb/agents/module-builder/agent.py +299 -0
- package/app/mmb/agents/module-builder/prompt.yaml +50 -0
- package/app/mmb/agents/workflow-builder/__init__.py +5 -0
- package/app/mmb/agents/workflow-builder/agent.py +318 -0
- package/app/mmb/agents/workflow-builder/prompt.yaml +52 -0
- package/app/mmm/agents/__init__.py +48 -0
- package/app/mmm/agents/analyst/__init__.py +7 -0
- package/app/mmm/agents/analyst/agent.py +384 -0
- package/app/mmm/agents/analyst/prompt.yaml +62 -0
- package/app/mmm/agents/architect/__init__.py +7 -0
- package/app/mmm/agents/architect/agent.py +300 -0
- package/app/mmm/agents/architect/prompt.yaml +66 -0
- package/app/mmm/agents/dev/__init__.py +7 -0
- package/app/mmm/agents/dev/agent.py +285 -0
- package/app/mmm/agents/dev/prompt.yaml +62 -0
- package/app/mmm/agents/pm/__init__.py +7 -0
- package/app/mmm/agents/pm/agent.py +417 -0
- package/app/mmm/agents/pm/prompt.yaml +64 -0
- package/app/mmm/agents/qa/__init__.py +7 -0
- package/app/mmm/agents/qa/agent.py +267 -0
- package/app/mmm/agents/qa/prompt.yaml +67 -0
- package/app/mmm/agents/quick-flow-solo-dev/__init__.py +7 -0
- package/app/mmm/agents/quick-flow-solo-dev/agent.py +319 -0
- package/app/mmm/agents/quick-flow-solo-dev/prompt.yaml +60 -0
- package/app/mmm/agents/sm/__init__.py +7 -0
- package/app/mmm/agents/sm/agent.py +357 -0
- package/app/mmm/agents/sm/prompt.yaml +61 -0
- package/app/mmm/agents/tech-writer/__init__.py +7 -0
- package/app/mmm/agents/tech-writer/agent.py +420 -0
- package/app/mmm/agents/tech-writer/prompt.yaml +70 -0
- package/app/mmm/agents/ux-designer/__init__.py +14 -0
- package/app/mmm/agents/ux-designer/agent.py +412 -0
- package/app/mmm/agents/ux-designer/prompt.yaml +37 -0
- package/app/packs/__init__.py +32 -0
- package/app/packs/db-optimization/__init__.py +13 -0
- package/app/packs/db-optimization/agents/__init__.py +11 -0
- package/app/packs/db-optimization/agents/db-performance-analyst/__init__.py +5 -0
- package/app/packs/db-optimization/agents/db-performance-analyst/agent.py +559 -0
- package/app/packs/db-optimization/agents/db-performance-analyst/prompt.yaml +63 -0
- package/app/packs/db-optimization/agents/indexing-specialist/__init__.py +5 -0
- package/app/packs/db-optimization/agents/indexing-specialist/agent.py +713 -0
- package/app/packs/db-optimization/agents/indexing-specialist/prompt.yaml +92 -0
- package/app/packs/db-optimization/agents/query-optimizer/__init__.py +5 -0
- package/app/packs/db-optimization/agents/query-optimizer/agent.py +566 -0
- package/app/packs/db-optimization/agents/query-optimizer/prompt.yaml +74 -0
- package/app/packs/devops-azure/__init__.py +13 -0
- package/app/packs/devops-azure/agents/__init__.py +11 -0
- package/app/packs/devops-azure/agents/azure-specialist/__init__.py +5 -0
- package/app/packs/devops-azure/agents/azure-specialist/agent.py +584 -0
- package/app/packs/devops-azure/agents/azure-specialist/prompt.yaml +301 -0
- package/app/packs/devops-azure/agents/cicd-architect/__init__.py +5 -0
- package/app/packs/devops-azure/agents/cicd-architect/agent.py +665 -0
- package/app/packs/devops-azure/agents/cicd-architect/prompt.yaml +409 -0
- package/app/packs/devops-azure/agents/devops-engineer/__init__.py +5 -0
- package/app/packs/devops-azure/agents/devops-engineer/agent.py +545 -0
- package/app/packs/devops-azure/agents/devops-engineer/prompt.yaml +263 -0
- package/app/packs/fintech/__init__.py +13 -0
- package/app/packs/fintech/agents/__init__.py +11 -0
- package/app/packs/fintech/agents/compliance-officer/__init__.py +5 -0
- package/app/packs/fintech/agents/compliance-officer/agent.py +449 -0
- package/app/packs/fintech/agents/compliance-officer/prompt.yaml +135 -0
- package/app/packs/fintech/agents/financial-analyst/__init__.py +5 -0
- package/app/packs/fintech/agents/financial-analyst/agent.py +392 -0
- package/app/packs/fintech/agents/financial-analyst/prompt.yaml +143 -0
- package/app/packs/fintech/agents/risk-manager/__init__.py +5 -0
- package/app/packs/fintech/agents/risk-manager/agent.py +664 -0
- package/app/packs/fintech/agents/risk-manager/prompt.yaml +240 -0
- package/app/tea/agents/tea/__init__.py +9 -0
- package/app/tea/agents/tea/agent.py +689 -0
- package/app/tea/agents/tea/prompt.yaml +100 -0
- package/banner-bmad-method.png +0 -0
- package/docs/404.md +9 -0
- package/docs/_STYLE_GUIDE.md +370 -0
- package/docs/explanation/advanced-elicitation.md +49 -0
- package/docs/explanation/adversarial-review.md +59 -0
- package/docs/explanation/brainstorming.md +33 -0
- package/docs/explanation/established-projects-faq.md +50 -0
- package/docs/explanation/party-mode.md +59 -0
- package/docs/explanation/preventing-agent-conflicts.md +112 -0
- package/docs/explanation/project-context.md +157 -0
- package/docs/explanation/quick-flow.md +73 -0
- package/docs/explanation/why-solutioning-matters.md +77 -0
- package/docs/how-to/customize-bmad.md +172 -0
- package/docs/how-to/established-projects.md +117 -0
- package/docs/how-to/get-answers-about-bmad.md +134 -0
- package/docs/how-to/install-bmad.md +97 -0
- package/docs/how-to/non-interactive-installation.md +171 -0
- package/docs/how-to/project-context.md +136 -0
- package/docs/how-to/quick-fixes.md +123 -0
- package/docs/how-to/shard-large-documents.md +78 -0
- package/docs/how-to/upgrade-to-v6.md +97 -0
- package/docs/index.md +59 -0
- package/docs/reference/agents.md +28 -0
- package/docs/reference/commands.md +151 -0
- package/docs/reference/modules.md +76 -0
- package/docs/reference/testing.md +106 -0
- package/docs/reference/workflow-map.md +89 -0
- package/docs/roadmap.mdx +136 -0
- package/docs/tutorials/getting-started.md +286 -0
- package/eslint.config.mjs +141 -0
- package/package.json +106 -37
- package/prettier.config.mjs +32 -0
- package/prompts/cis/brainstorming-coach.yaml +53 -0
- package/prompts/cis/creative-problem-solver.yaml +74 -0
- package/prompts/cis/design-thinking-coach.yaml +77 -0
- package/prompts/cis/innovation-strategist.yaml +70 -0
- package/prompts/cis/presentation-master.yaml +62 -0
- package/prompts/cis/storyteller.yaml +99 -0
- package/prompts/core/mdan-master.yaml +105 -0
- package/prompts/mmb/agent-builder.yaml +48 -0
- package/prompts/mmb/module-builder.yaml +50 -0
- package/prompts/mmb/workflow-builder.yaml +52 -0
- package/prompts/mmm/analyst.yaml +62 -0
- package/prompts/mmm/architect.yaml +66 -0
- package/prompts/mmm/dev.yaml +62 -0
- package/prompts/mmm/pm.yaml +64 -0
- package/prompts/mmm/qa.yaml +67 -0
- package/prompts/mmm/quick-flow-solo-dev.yaml +60 -0
- package/prompts/mmm/sm.yaml +61 -0
- package/prompts/mmm/tech-writer.yaml +70 -0
- package/prompts/mmm/ux-designer.yaml +33 -0
- package/prompts/packs/db-optimization/db-performance-analyst.yaml +63 -0
- package/prompts/packs/db-optimization/indexing-specialist.yaml +92 -0
- package/prompts/packs/db-optimization/query-optimizer.yaml +74 -0
- package/prompts/packs/devops-azure/azure-specialist.yaml +301 -0
- package/prompts/packs/devops-azure/cicd-architect.yaml +409 -0
- package/prompts/packs/devops-azure/devops-engineer.yaml +263 -0
- package/prompts/packs/fintech/compliance-officer.yaml +135 -0
- package/prompts/packs/fintech/financial-analyst.yaml +143 -0
- package/prompts/packs/fintech/risk-manager.yaml +240 -0
- package/prompts/tea/tea.yaml +100 -0
- package/prompts.json +237 -0
- package/src/bmm/agents/analyst.agent.yaml +43 -0
- package/src/bmm/agents/architect.agent.yaml +29 -0
- package/src/bmm/agents/dev.agent.yaml +38 -0
- package/src/bmm/agents/pm.agent.yaml +44 -0
- package/src/bmm/agents/qa.agent.yaml +58 -0
- package/src/bmm/agents/quick-flow-solo-dev.agent.yaml +32 -0
- package/src/bmm/agents/sm.agent.yaml +37 -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 +46 -0
- package/src/bmm/agents/ux-designer.agent.yaml +27 -0
- package/src/bmm/data/project-context-template.md +26 -0
- package/src/bmm/module-help.csv +31 -0
- package/src/bmm/module.yaml +50 -0
- package/src/bmm/teams/default-party.csv +20 -0
- package/src/bmm/teams/team-fullstack.yaml +12 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +177 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +161 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +199 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +202 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +205 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +219 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +162 -0
- package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -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 +444 -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-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 +476 -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 +233 -0
- package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +487 -0
- package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
- package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
- package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +152 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +154 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +170 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +213 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +207 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +231 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +124 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +247 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +249 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +253 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +168 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +226 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +191 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +174 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +228 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +217 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +263 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +209 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +242 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +231 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +63 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
- package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +135 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +127 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +190 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +216 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +219 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +234 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +252 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +254 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +224 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +241 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +248 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +237 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +171 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +42 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +184 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +172 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +173 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +133 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +245 -0
- package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -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 +54 -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 +13 -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 +173 -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 +329 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +318 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +359 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +379 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +359 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +76 -0
- package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +259 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +233 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +272 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +149 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
- package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -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 +43 -0
- package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
- package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
- package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -0
- package/src/bmm/workflows/4-implementation/create-story/checklist.md +358 -0
- package/src/bmm/workflows/4-implementation/create-story/instructions.xml +346 -0
- package/src/bmm/workflows/4-implementation/create-story/template.md +49 -0
- package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -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 +20 -0
- package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
- package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +226 -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 +47 -0
- package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
- package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +174 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +118 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +111 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +111 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +104 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -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 +143 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +126 -0
- package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +200 -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 +130 -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 +22 -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/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/qa-generate-e2e-tests/checklist.md +33 -0
- package/src/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -0
- package/src/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -0
- package/src/core/agents/bmad-master.agent.yaml +30 -0
- package/src/core/module-help.csv +9 -0
- package/src/core/module.yaml +25 -0
- package/src/core/tasks/editorial-review-prose.xml +102 -0
- package/src/core/tasks/editorial-review-structure.xml +208 -0
- package/src/core/tasks/help.md +86 -0
- package/src/core/tasks/index-docs.xml +65 -0
- package/src/core/tasks/review-adversarial-general.xml +49 -0
- package/src/core/tasks/shard-doc.xml +108 -0
- package/src/core/tasks/workflow.xml +235 -0
- package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
- package/src/core/workflows/advanced-elicitation/workflow.xml +118 -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 +168 -0
- package/src/core/workflows/party-mode/workflow.md +194 -0
- package/src/utility/agent-components/activation-rules.txt +6 -0
- package/src/utility/agent-components/activation-steps.txt +14 -0
- package/src/utility/agent-components/agent-command-header.md +1 -0
- package/src/utility/agent-components/agent.customize.template.yaml +41 -0
- package/src/utility/agent-components/handler-action.txt +4 -0
- package/src/utility/agent-components/handler-data.txt +5 -0
- package/src/utility/agent-components/handler-exec.txt +6 -0
- package/src/utility/agent-components/handler-multi.txt +14 -0
- package/src/utility/agent-components/handler-tmpl.txt +5 -0
- package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
- package/src/utility/agent-components/handler-workflow.txt +10 -0
- package/src/utility/agent-components/menu-handlers.txt +6 -0
- package/test/README.md +295 -0
- package/test/adversarial-review-tests/README.md +56 -0
- package/test/adversarial-review-tests/sample-content.md +46 -0
- package/test/adversarial-review-tests/test-cases.yaml +103 -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/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +3 -0
- package/test/fixtures/file-refs-csv/invalid/empty-data.csv +1 -0
- package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +3 -0
- package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +3 -0
- package/test/fixtures/file-refs-csv/valid/bmm-style.csv +3 -0
- package/test/fixtures/file-refs-csv/valid/core-style.csv +3 -0
- package/test/fixtures/file-refs-csv/valid/minimal.csv +2 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-cli-integration.sh +159 -0
- package/test/test-file-refs-csv.js +133 -0
- package/test/test-installation-components.js +212 -0
- package/test/test-rehype-plugins.mjs +1050 -0
- package/test/unit-test-schema.js +133 -0
- package/tests/run_all_tests.py +80 -0
- package/tests/scenarios/cis/brainstorming-coach.test.py +150 -0
- package/tests/scenarios/cis/creative-problem-solver.test.py +167 -0
- package/tests/scenarios/cis/design-thinking-coach.test.py +177 -0
- package/tests/scenarios/cis/innovation-strategist.test.py +191 -0
- package/tests/scenarios/cis/presentation-master.test.py +240 -0
- package/tests/scenarios/cis/storyteller.test.py +324 -0
- package/tests/scenarios/core/mdan-master.test.py +281 -0
- package/tests/scenarios/mmb/agent-builder.test.py +124 -0
- package/tests/scenarios/mmb/module-builder.test.py +124 -0
- package/tests/scenarios/mmb/workflow-builder.test.py +124 -0
- package/tests/scenarios/mmm/analyst.test.py +138 -0
- package/tests/scenarios/mmm/architect.test.py +138 -0
- package/tests/scenarios/mmm/dev.test.py +138 -0
- package/tests/scenarios/mmm/pm.test.py +138 -0
- package/tests/scenarios/mmm/qa.test.py +138 -0
- package/tests/scenarios/mmm/quick-flow-solo-dev.test.py +138 -0
- package/tests/scenarios/mmm/sm.test.py +138 -0
- package/tests/scenarios/mmm/tech-writer.test.py +138 -0
- package/tests/scenarios/mmm/ux-designer.test.py +294 -0
- package/tests/scenarios/packs/db-optimization/db-performance-analyst.test.py +108 -0
- package/tests/scenarios/packs/db-optimization/indexing-specialist.test.py +108 -0
- package/tests/scenarios/packs/db-optimization/query-optimizer.test.py +106 -0
- package/tests/scenarios/packs/devops-azure/azure-specialist.test.py +125 -0
- package/tests/scenarios/packs/devops-azure/cicd-architect.test.py +122 -0
- package/tests/scenarios/packs/devops-azure/devops-engineer.test.py +128 -0
- package/tests/scenarios/packs/fintech/compliance-officer.test.py +165 -0
- package/tests/scenarios/packs/fintech/financial-analyst.test.py +184 -0
- package/tests/scenarios/packs/fintech/risk-manager.test.py +171 -0
- package/tests/scenarios/tea/tea.test.py +346 -0
- package/tests/simple_cis_test.py +285 -0
- package/tests/simple_db_optimization_test.py +199 -0
- package/tests/simple_devops_test.py +193 -0
- package/tests/simple_fintech_test.py +205 -0
- package/tests/simple_mmb_test.py +103 -0
- package/tests/simple_mmm_test.py +159 -0
- package/tests/simple_tea_test.py +80 -0
- package/tests/simple_test.py +111 -0
- package/tests/simple_ux_designer_test.py +144 -0
- package/tests/validate_yaml.py +86 -0
- package/tools/bmad-npx-wrapper.js +38 -0
- package/tools/build-docs.mjs +463 -0
- package/tools/cli/README.md +60 -0
- package/tools/cli/bmad-cli.js +106 -0
- package/tools/cli/commands/install.js +87 -0
- package/tools/cli/commands/status.js +65 -0
- package/tools/cli/commands/uninstall.js +167 -0
- package/tools/cli/external-official-modules.yaml +53 -0
- package/tools/cli/installers/install-messages.yaml +39 -0
- package/tools/cli/installers/lib/core/config-collector.js +1285 -0
- package/tools/cli/installers/lib/core/custom-module-cache.js +260 -0
- package/tools/cli/installers/lib/core/dependency-resolver.js +743 -0
- package/tools/cli/installers/lib/core/detector.js +223 -0
- package/tools/cli/installers/lib/core/ide-config-manager.js +157 -0
- package/tools/cli/installers/lib/core/installer.js +3162 -0
- package/tools/cli/installers/lib/core/manifest-generator.js +1081 -0
- package/tools/cli/installers/lib/core/manifest.js +1038 -0
- package/tools/cli/installers/lib/custom/handler.js +358 -0
- package/tools/cli/installers/lib/ide/_base-ide.js +665 -0
- package/tools/cli/installers/lib/ide/_config-driven.js +634 -0
- package/tools/cli/installers/lib/ide/codex.js +440 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +699 -0
- package/tools/cli/installers/lib/ide/kilo.js +269 -0
- package/tools/cli/installers/lib/ide/manager.js +342 -0
- package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
- package/tools/cli/installers/lib/ide/platform-codes.yaml +243 -0
- package/tools/cli/installers/lib/ide/rovodev.js +257 -0
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +180 -0
- package/tools/cli/installers/lib/ide/shared/bmad-artifacts.js +174 -0
- package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
- package/tools/cli/installers/lib/ide/shared/path-utils.js +299 -0
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +366 -0
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +318 -0
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +15 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-task.md +10 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +10 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +6 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +11 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +11 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
- package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/combined/kiro-agent.md +16 -0
- package/tools/cli/installers/lib/ide/templates/combined/kiro-task.md +9 -0
- package/tools/cli/installers/lib/ide/templates/combined/kiro-tool.md +9 -0
- package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow-yaml.md +15 -0
- package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow.md +7 -0
- package/tools/cli/installers/lib/ide/templates/combined/opencode-agent.md +15 -0
- package/tools/cli/installers/lib/ide/templates/combined/opencode-task.md +13 -0
- package/tools/cli/installers/lib/ide/templates/combined/opencode-tool.md +13 -0
- package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow-yaml.md +16 -0
- package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow.md +16 -0
- package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
- package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
- package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
- package/tools/cli/installers/lib/ide/templates/split/.gitkeep +0 -0
- package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
- package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
- package/tools/cli/installers/lib/message-loader.js +83 -0
- package/tools/cli/installers/lib/modules/external-manager.js +136 -0
- package/tools/cli/installers/lib/modules/manager.js +1498 -0
- package/tools/cli/lib/activation-builder.js +165 -0
- package/tools/cli/lib/agent/compiler.js +525 -0
- package/tools/cli/lib/agent/installer.js +680 -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 +182 -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 +809 -0
- package/tools/cli/lib/ui.js +1936 -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/docs/_prompt-external-modules-page.md +59 -0
- package/tools/docs/fix-refs.md +91 -0
- package/tools/fix-doc-links.js +285 -0
- package/tools/format-workflow-md.js +263 -0
- package/tools/lib/xml-utils.js +13 -0
- package/tools/migrate-custom-module-paths.js +124 -0
- package/tools/platform-codes.yaml +157 -0
- package/tools/schema/agent.js +491 -0
- package/tools/validate-agent-schema.js +110 -0
- package/tools/validate-doc-links.js +407 -0
- package/tools/validate-file-refs.js +554 -0
- package/tools/validate-svg-changes.sh +356 -0
- package/website/README.md +75 -0
- package/website/astro.config.mjs +136 -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/workflow-map-diagram.html +361 -0
- package/website/src/components/Banner.astro +62 -0
- package/website/src/components/Header.astro +96 -0
- package/website/src/components/MobileMenuFooter.astro +33 -0
- package/website/src/content/config.ts +6 -0
- package/website/src/lib/site-url.mjs +25 -0
- package/website/src/pages/404.astro +11 -0
- package/website/src/pages/robots.txt.ts +48 -0
- package/website/src/rehype-base-paths.js +112 -0
- package/website/src/rehype-markdown-links.js +119 -0
- package/website/src/styles/custom.css +805 -0
- package/.mcp.json +0 -46
- package/agents/AGENTS-REGISTRY.md +0 -215
- package/agents/architect.md +0 -160
- package/agents/dev.md +0 -166
- package/agents/devops.md +0 -230
- package/agents/doc.md +0 -189
- package/agents/learn.md +0 -377
- package/agents/product.md +0 -124
- package/agents/security.md +0 -168
- package/agents/test.md +0 -209
- package/agents/ux.md +0 -207
- package/cli/mdan.js +0 -628
- package/cli/mdan.py +0 -316
- package/cli/mdan.sh +0 -724
- package/cli/postinstall.js +0 -4
- package/core/orchestrator.md +0 -238
- package/core/universal-envelope.md +0 -160
- package/install.sh +0 -91
- package/integrations/all-integrations.md +0 -300
- package/integrations/claude.md +0 -46
- package/integrations/cursor.md +0 -74
- package/integrations/mcp.md +0 -153
- package/integrations/windsurf.md +0 -48
- package/memory/MDAN-STATE.template.json +0 -44
- package/memory/MEMORY-SYSTEM.md +0 -197
- package/phases/01-discover.md +0 -136
- package/phases/02-design.md +0 -147
- package/phases/03-build.md +0 -113
- package/phases/04-verify.md +0 -107
- package/phases/05-ship.md +0 -156
- package/skills/find-skills/skill.md +0 -133
- package/templates/ARCHITECTURE.md +0 -186
- package/templates/CHANGELOG.md +0 -41
- package/templates/MDAN-KNOWLEDGE.md +0 -73
- package/templates/PRD.md +0 -120
- package/templates/SECURITY-REVIEW.md +0 -99
- package/templates/TEST-PLAN.md +0 -97
- package/templates/prompts/README.md +0 -108
- package/templates/prompts/dev-agent.yaml +0 -85
- package/templates/prompts/orchestrator.yaml +0 -97
- package/templates/prompts.json +0 -81
- package/templates/tests/evaluations/README.md +0 -80
- package/templates/tests/evaluations/classification_eval.md +0 -136
- package/templates/tests/evaluations/rag_eval.md +0 -116
- package/templates/tests/scenarios/README.md +0 -62
- package/templates/tests/scenarios/basic_authentication.test.md +0 -82
- package/templates/tests/scenarios/user_registration.test.md +0 -107
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: dev
|
|
2
|
+
version: 1.0.0
|
|
3
|
+
description: Senior Software Engineer who executes approved stories with strict adherence to story details
|
|
4
|
+
|
|
5
|
+
prompt: |
|
|
6
|
+
You are Amina, a Senior Software Engineer.
|
|
7
|
+
|
|
8
|
+
## Role
|
|
9
|
+
Executes approved stories with strict adherence to story details and team standards and practices.
|
|
10
|
+
|
|
11
|
+
## Communication Style
|
|
12
|
+
Ultra-succinct. Speaks in file paths and AC IDs - every statement citable. No fluff, all precision.
|
|
13
|
+
|
|
14
|
+
## Principles
|
|
15
|
+
- All existing and new tests must pass 100% before story is ready for review
|
|
16
|
+
- Every task/subtask must be covered by comprehensive unit tests before marking an item complete
|
|
17
|
+
- Read the entire story file BEFORE any implementation
|
|
18
|
+
- Execute tasks/subtasks IN ORDER as written - no skipping, no reordering
|
|
19
|
+
- Mark task/subtask [x] ONLY when both implementation AND tests are complete and passing
|
|
20
|
+
- Run full test suite after each task - NEVER proceed with failing tests
|
|
21
|
+
- Document in story file Dev Agent Record what was implemented, tests created, and any decisions made
|
|
22
|
+
- Update story file File List with ALL changed files after each task completion
|
|
23
|
+
- NEVER lie about tests being written or passing - tests must actually exist and pass 100%
|
|
24
|
+
|
|
25
|
+
## Capabilities
|
|
26
|
+
- Story Execution: Implement stories following exact task sequence
|
|
27
|
+
- Test-Driven Development: Write tests first, then implement
|
|
28
|
+
- Code Implementation: Write clean, maintainable code
|
|
29
|
+
- Code Review: Comprehensive code review across multiple quality facets
|
|
30
|
+
|
|
31
|
+
## Menu Items
|
|
32
|
+
1. [MH] Redisplay Menu Help - Show this menu
|
|
33
|
+
2. [CH] Chat with the Agent - Chat about anything
|
|
34
|
+
3. [DS] Dev Story - Write the next or specified stories tests and code
|
|
35
|
+
4. [CR] Code Review - Initiate a comprehensive code review
|
|
36
|
+
5. [PM] Start Party Mode - Start party mode
|
|
37
|
+
6. [DA] Dismiss Agent - Exit the agent
|
|
38
|
+
|
|
39
|
+
## Important Notes
|
|
40
|
+
- Always communicate in the user's preferred language
|
|
41
|
+
- Stay in character until exit is selected
|
|
42
|
+
- Display menu items as dictated and in the order given
|
|
43
|
+
- Load files only when executing a user-chosen workflow or when a command requires it
|
|
44
|
+
- Users can type `/mmm-help` at any time to get advice on what to do next
|
|
45
|
+
|
|
46
|
+
## When Processing User Input
|
|
47
|
+
- Accept number, command trigger, or fuzzy command match
|
|
48
|
+
- Multiple matches → ask user to clarify
|
|
49
|
+
- No match → show "Not recognized"
|
|
50
|
+
- Execute menu items based on their type (exec, workflow, data, action)
|
|
51
|
+
|
|
52
|
+
## Development Workflow
|
|
53
|
+
1. **Read Story**: Load and read the entire story file
|
|
54
|
+
2. **Understand Tasks**: Review all tasks and subtasks in sequence
|
|
55
|
+
3. **Execute Sequentially**: Complete tasks in order, no skipping
|
|
56
|
+
4. **TDD Approach**: Write tests first, then implement code
|
|
57
|
+
5. **Verify**: Run tests after each task, ensure 100% pass rate
|
|
58
|
+
6. **Document**: Record implementation details in Dev Agent Record
|
|
59
|
+
7. **Update**: Maintain File List with all changed files
|
|
60
|
+
8. **Complete**: Mark story ready for review only when all tasks done and tests pass
|
|
61
|
+
|
|
62
|
+
Remember: Code quality is non-negotiable. Every line must be tested. Every test must pass. No exceptions.
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Product Manager Agent
|
|
3
|
+
|
|
4
|
+
A product manager specializing in collaborative PRD creation through user interviews,
|
|
5
|
+
requirement discovery, and stakeholder alignment.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from typing import Any, Dict, List, Optional
|
|
9
|
+
import json
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class PMAgent:
|
|
13
|
+
"""
|
|
14
|
+
Product Manager Agent - John
|
|
15
|
+
|
|
16
|
+
Product management veteran with 8+ years launching B2B and consumer products.
|
|
17
|
+
Expert in market research, competitive analysis, and user behavior insights.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
def __init__(self, config: Optional[Dict[str, Any]] = None):
|
|
21
|
+
"""
|
|
22
|
+
Initialize the Product Manager Agent.
|
|
23
|
+
|
|
24
|
+
Args:
|
|
25
|
+
config: Optional configuration dictionary containing:
|
|
26
|
+
- user_name: Name of the user
|
|
27
|
+
- communication_language: Language for communication
|
|
28
|
+
- output_folder: Path for output files
|
|
29
|
+
"""
|
|
30
|
+
self.config = config or {}
|
|
31
|
+
self.user_name = self.config.get("user_name", "User")
|
|
32
|
+
self.communication_language = self.config.get(
|
|
33
|
+
"communication_language", "English"
|
|
34
|
+
)
|
|
35
|
+
self.output_folder = self.config.get("output_folder", "./output")
|
|
36
|
+
|
|
37
|
+
# Agent metadata
|
|
38
|
+
self.name = "John"
|
|
39
|
+
self.title = "Product Manager"
|
|
40
|
+
self.icon = "📋"
|
|
41
|
+
self.capabilities = [
|
|
42
|
+
"PRD creation",
|
|
43
|
+
"requirements discovery",
|
|
44
|
+
"stakeholder alignment",
|
|
45
|
+
"user interviews",
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
# Menu items
|
|
49
|
+
self.menu_items = [
|
|
50
|
+
{
|
|
51
|
+
"cmd": "MH",
|
|
52
|
+
"label": "Redisplay Menu Help",
|
|
53
|
+
"description": "Show this menu",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"cmd": "CH",
|
|
57
|
+
"label": "Chat with the Agent",
|
|
58
|
+
"description": "Chat about anything",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"cmd": "CP",
|
|
62
|
+
"label": "Create PRD",
|
|
63
|
+
"description": "Expert led facilitation to produce your Product Requirements Document",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"cmd": "VP",
|
|
67
|
+
"label": "Validate PRD",
|
|
68
|
+
"description": "Validate a Product Requirements Document is comprehensive, lean, well organized and cohesive",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"cmd": "EP",
|
|
72
|
+
"label": "Edit PRD",
|
|
73
|
+
"description": "Update an existing Product Requirements Document",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"cmd": "CE",
|
|
77
|
+
"label": "Create Epics and Stories",
|
|
78
|
+
"description": "Create the Epics and Stories Listing",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"cmd": "IR",
|
|
82
|
+
"label": "Implementation Readiness",
|
|
83
|
+
"description": "Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned",
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"cmd": "CC",
|
|
87
|
+
"label": "Course Correction",
|
|
88
|
+
"description": "Determine how to proceed if major need for change is discovered mid implementation",
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"cmd": "PM",
|
|
92
|
+
"label": "Start Party Mode",
|
|
93
|
+
"description": "Start party mode",
|
|
94
|
+
},
|
|
95
|
+
{"cmd": "DA", "label": "Dismiss Agent", "description": "Exit the agent"},
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
async def process(
|
|
99
|
+
self, input_text: str, context: Optional[Dict[str, Any]] = None
|
|
100
|
+
) -> Dict[str, Any]:
|
|
101
|
+
"""
|
|
102
|
+
Process user input and generate a response.
|
|
103
|
+
|
|
104
|
+
Args:
|
|
105
|
+
input_text: The user's input text
|
|
106
|
+
context: Optional context dictionary with additional information
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
Dictionary containing:
|
|
110
|
+
- response: The agent's response text
|
|
111
|
+
- action: Any action to be taken
|
|
112
|
+
- context: Updated context
|
|
113
|
+
"""
|
|
114
|
+
context = context or {}
|
|
115
|
+
|
|
116
|
+
# Check for menu display request
|
|
117
|
+
if self._is_menu_request(input_text):
|
|
118
|
+
return {
|
|
119
|
+
"response": self._get_menu_display(),
|
|
120
|
+
"action": "display_menu",
|
|
121
|
+
"context": context,
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
# Check for exit request
|
|
125
|
+
if self._is_exit_request(input_text):
|
|
126
|
+
return {
|
|
127
|
+
"response": f"Goodbye {self.user_name}! Great working together on product strategy.",
|
|
128
|
+
"action": "exit",
|
|
129
|
+
"context": context,
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
# Check for chat request
|
|
133
|
+
if self._is_chat_request(input_text):
|
|
134
|
+
return {
|
|
135
|
+
"response": self._process_chat(input_text),
|
|
136
|
+
"action": "chat",
|
|
137
|
+
"context": context,
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
# Check for specific menu item commands
|
|
141
|
+
menu_action = self._parse_menu_command(input_text)
|
|
142
|
+
if menu_action:
|
|
143
|
+
return await self._execute_menu_item(menu_action, input_text, context)
|
|
144
|
+
|
|
145
|
+
# Default: unrecognized command
|
|
146
|
+
return {
|
|
147
|
+
"response": f"I didn't recognize that command. Please select a menu item or type 'MH' to see the menu.",
|
|
148
|
+
"action": "unrecognized",
|
|
149
|
+
"context": context,
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
def _is_menu_request(self, input_text: str) -> bool:
|
|
153
|
+
"""Check if input is a menu display request."""
|
|
154
|
+
menu_triggers = ["mh", "menu", "help"]
|
|
155
|
+
return any(trigger in input_text.lower() for trigger in menu_triggers)
|
|
156
|
+
|
|
157
|
+
def _is_exit_request(self, input_text: str) -> bool:
|
|
158
|
+
"""Check if input is an exit request."""
|
|
159
|
+
exit_triggers = ["da", "exit", "leave", "goodbye", "dismiss", "quit"]
|
|
160
|
+
return any(trigger in input_text.lower() for trigger in exit_triggers)
|
|
161
|
+
|
|
162
|
+
def _is_chat_request(self, input_text: str) -> bool:
|
|
163
|
+
"""Check if input is a chat request."""
|
|
164
|
+
chat_triggers = ["ch", "chat"]
|
|
165
|
+
return any(trigger in input_text.lower() for trigger in chat_triggers)
|
|
166
|
+
|
|
167
|
+
def _parse_menu_command(self, input_text: str) -> Optional[str]:
|
|
168
|
+
"""Parse menu command from input text."""
|
|
169
|
+
input_lower = input_text.lower().strip()
|
|
170
|
+
|
|
171
|
+
for item in self.menu_items:
|
|
172
|
+
cmd = item["cmd"].lower()
|
|
173
|
+
label = item["label"].lower()
|
|
174
|
+
|
|
175
|
+
if input_lower == cmd:
|
|
176
|
+
return cmd
|
|
177
|
+
|
|
178
|
+
if cmd in input_lower or any(
|
|
179
|
+
word in label for word in input_lower.split() if len(word) > 2
|
|
180
|
+
):
|
|
181
|
+
return cmd
|
|
182
|
+
|
|
183
|
+
return None
|
|
184
|
+
|
|
185
|
+
async def _execute_menu_item(
|
|
186
|
+
self, command: str, input_text: str, context: Dict[str, Any]
|
|
187
|
+
) -> Dict[str, Any]:
|
|
188
|
+
"""Execute a menu item action."""
|
|
189
|
+
command = command.upper()
|
|
190
|
+
|
|
191
|
+
if command == "CP":
|
|
192
|
+
return {
|
|
193
|
+
"response": self._create_prd(input_text),
|
|
194
|
+
"action": "create_prd",
|
|
195
|
+
"context": context,
|
|
196
|
+
}
|
|
197
|
+
elif command == "VP":
|
|
198
|
+
return {
|
|
199
|
+
"response": self._validate_prd(input_text),
|
|
200
|
+
"action": "validate_prd",
|
|
201
|
+
"context": context,
|
|
202
|
+
}
|
|
203
|
+
elif command == "EP":
|
|
204
|
+
return {
|
|
205
|
+
"response": self._edit_prd(input_text),
|
|
206
|
+
"action": "edit_prd",
|
|
207
|
+
"context": context,
|
|
208
|
+
}
|
|
209
|
+
elif command == "CE":
|
|
210
|
+
return {
|
|
211
|
+
"response": self._create_epics_stories(input_text),
|
|
212
|
+
"action": "create_epics_stories",
|
|
213
|
+
"context": context,
|
|
214
|
+
}
|
|
215
|
+
elif command == "IR":
|
|
216
|
+
return {
|
|
217
|
+
"response": self._implementation_readiness(input_text),
|
|
218
|
+
"action": "implementation_readiness",
|
|
219
|
+
"context": context,
|
|
220
|
+
}
|
|
221
|
+
elif command == "CC":
|
|
222
|
+
return {
|
|
223
|
+
"response": self._course_correction(input_text),
|
|
224
|
+
"action": "course_correction",
|
|
225
|
+
"context": context,
|
|
226
|
+
}
|
|
227
|
+
elif command == "PM":
|
|
228
|
+
return {
|
|
229
|
+
"response": "🎉 Party Mode! Let's celebrate our product wins!",
|
|
230
|
+
"action": "party_mode",
|
|
231
|
+
"context": context,
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return {
|
|
235
|
+
"response": f"Command '{command}' recognized but not yet implemented.",
|
|
236
|
+
"action": "not_implemented",
|
|
237
|
+
"context": context,
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
def _get_menu_display(self) -> str:
|
|
241
|
+
"""Generate the menu display."""
|
|
242
|
+
menu = f"👋 Hello {self.user_name}! I'm {self.name}, your {self.title} {self.icon}\n\n"
|
|
243
|
+
menu += "Here's what I can help you with:\n\n"
|
|
244
|
+
|
|
245
|
+
for i, item in enumerate(self.menu_items, 1):
|
|
246
|
+
menu += f"{i}. [{item['cmd']}] {item['label']}\n"
|
|
247
|
+
menu += f" {item['description']}\n\n"
|
|
248
|
+
|
|
249
|
+
menu += f"\n💡 Tip: You can type `/mmm-help` at any time to get advice on what to do next.\n"
|
|
250
|
+
menu += f"Example: `/mmm-help how should I prioritize features`\n"
|
|
251
|
+
|
|
252
|
+
return menu
|
|
253
|
+
|
|
254
|
+
def _process_chat(self, input_text: str) -> str:
|
|
255
|
+
"""Process a chat request."""
|
|
256
|
+
text = input_text.lower().replace("ch", "").replace("chat", "").strip()
|
|
257
|
+
|
|
258
|
+
if not text:
|
|
259
|
+
return "I'd love to chat! What would you like to discuss? I can help with product strategy, requirements, user research, and more."
|
|
260
|
+
|
|
261
|
+
return (
|
|
262
|
+
f"Great product question! Let me think about this strategically.\n\n"
|
|
263
|
+
f"**Key Questions to Ask:**\n"
|
|
264
|
+
f"- WHY are we building this? (User value)\n"
|
|
265
|
+
f"- WHO is this for? (Target users)\n"
|
|
266
|
+
f"- WHAT problem does it solve? (User need)\n"
|
|
267
|
+
f"- HOW will we measure success? (Metrics)\n\n"
|
|
268
|
+
f"**My Approach:**\n"
|
|
269
|
+
f"- PRDs emerge from user interviews, not template filling\n"
|
|
270
|
+
f"- Discover what users actually need\n"
|
|
271
|
+
f"- Ship the smallest thing that validates the assumption\n"
|
|
272
|
+
f"- Iteration over perfection\n"
|
|
273
|
+
f"- Technical feasibility is a constraint, not the driver\n"
|
|
274
|
+
f"- User value first\n\n"
|
|
275
|
+
f"Your input: '{text}'\n\n"
|
|
276
|
+
f"Let me know if you'd like me to dive deeper into any specific aspect!"
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
def _create_prd(self, input_text: str) -> str:
|
|
280
|
+
"""Create a Product Requirements Document."""
|
|
281
|
+
return (
|
|
282
|
+
f"📋 **PRD Creation Workflow**\n\n"
|
|
283
|
+
f"I'll guide you through creating a comprehensive Product Requirements Document through user interviews and requirement discovery.\n\n"
|
|
284
|
+
f"**PRD Sections:**\n"
|
|
285
|
+
f"- Problem Statement\n"
|
|
286
|
+
f"- Target Users & Personas\n"
|
|
287
|
+
f"- User Stories & Jobs-to-be-Done\n"
|
|
288
|
+
f"- Functional Requirements\n"
|
|
289
|
+
f"- Non-Functional Requirements\n"
|
|
290
|
+
f"- Success Metrics & KPIs\n"
|
|
291
|
+
f"- Competitive Analysis\n"
|
|
292
|
+
f"- Technical Constraints\n"
|
|
293
|
+
f"- Dependencies & Risks\n\n"
|
|
294
|
+
f"**My Approach:**\n"
|
|
295
|
+
f"- PRDs emerge from user interviews, not template filling\n"
|
|
296
|
+
f"- Discover what users actually need\n"
|
|
297
|
+
f"- Ship the smallest thing that validates the assumption\n"
|
|
298
|
+
f"- Iteration over perfection\n"
|
|
299
|
+
f"- Technical feasibility is a constraint, not the driver\n"
|
|
300
|
+
f"- User value first\n\n"
|
|
301
|
+
f"Tell me about your product idea, and I'll help you create a comprehensive PRD!\n\n"
|
|
302
|
+
f"Your input: {input_text}"
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
def _validate_prd(self, input_text: str) -> str:
|
|
306
|
+
"""Validate a Product Requirements Document."""
|
|
307
|
+
return (
|
|
308
|
+
f"✅ **PRD Validation**\n\n"
|
|
309
|
+
f"I'll validate your PRD to ensure it's comprehensive, lean, well organized, and cohesive.\n\n"
|
|
310
|
+
f"**Validation Criteria:**\n"
|
|
311
|
+
f"- [ ] Problem statement is clear and compelling\n"
|
|
312
|
+
f"- [ ] Target users are well-defined\n"
|
|
313
|
+
f"- [ ] User stories follow proper format\n"
|
|
314
|
+
f"- [ ] Requirements are specific and measurable\n"
|
|
315
|
+
f"- [ ] Success metrics are defined\n"
|
|
316
|
+
f"- [ ] Technical constraints are realistic\n"
|
|
317
|
+
f"- [ ] Dependencies and risks are identified\n"
|
|
318
|
+
f"- [ ] Document is lean and focused\n"
|
|
319
|
+
f"- [ ] All sections are cohesive and aligned\n\n"
|
|
320
|
+
f"Provide the path to your PRD, and I'll perform a comprehensive validation!\n\n"
|
|
321
|
+
f"Your input: {input_text}"
|
|
322
|
+
)
|
|
323
|
+
|
|
324
|
+
def _edit_prd(self, input_text: str) -> str:
|
|
325
|
+
"""Edit an existing Product Requirements Document."""
|
|
326
|
+
return (
|
|
327
|
+
f"✏️ **PRD Editing**\n\n"
|
|
328
|
+
f"I'll help you update an existing Product Requirements Document.\n\n"
|
|
329
|
+
f"**What I Can Help With:**\n"
|
|
330
|
+
f"- Add new requirements\n"
|
|
331
|
+
f"- Update existing sections\n"
|
|
332
|
+
f"- Refine user stories\n"
|
|
333
|
+
f"- Adjust success metrics\n"
|
|
334
|
+
f"- Update competitive analysis\n"
|
|
335
|
+
f"- Revise technical constraints\n\n"
|
|
336
|
+
f"Provide the path to your PRD and describe what changes you'd like to make!\n\n"
|
|
337
|
+
f"Your input: {input_text}"
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
def _create_epics_stories(self, input_text: str) -> str:
|
|
341
|
+
"""Create Epics and Stories."""
|
|
342
|
+
return (
|
|
343
|
+
f"📝 **Epics and Stories Creation**\n\n"
|
|
344
|
+
f"I'll help you create the Epics and Stories Listing - these are the specs that will drive development.\n\n"
|
|
345
|
+
f"**Epic Structure:**\n"
|
|
346
|
+
f"- Epic Name\n"
|
|
347
|
+
f"- Description\n"
|
|
348
|
+
f"- Business Value\n"
|
|
349
|
+
f"- Acceptance Criteria\n"
|
|
350
|
+
f"- Stories List\n\n"
|
|
351
|
+
f"**Story Structure:**\n"
|
|
352
|
+
f"- Story ID\n"
|
|
353
|
+
f"- Title\n"
|
|
354
|
+
f"- User Story (As a... I want to... So that...)\n"
|
|
355
|
+
f"- Acceptance Criteria\n"
|
|
356
|
+
f"- Tasks/Subtasks\n"
|
|
357
|
+
f"- Priority\n"
|
|
358
|
+
f"- Estimates\n\n"
|
|
359
|
+
f"Provide your PRD, and I'll help you break it down into epics and stories!\n\n"
|
|
360
|
+
f"Your input: {input_text}"
|
|
361
|
+
)
|
|
362
|
+
|
|
363
|
+
def _implementation_readiness(self, input_text: str) -> str:
|
|
364
|
+
"""Check implementation readiness."""
|
|
365
|
+
return (
|
|
366
|
+
f"✅ **Implementation Readiness Check**\n\n"
|
|
367
|
+
f"I'll ensure your PRD, UX, Architecture, and Epics/Stories are all aligned before development begins.\n\n"
|
|
368
|
+
f"**Readiness Checklist:**\n"
|
|
369
|
+
f"- [ ] PRD is complete and approved\n"
|
|
370
|
+
f"- [ ] UX designs are finalized\n"
|
|
371
|
+
f"- [ ] Architecture decisions are documented\n"
|
|
372
|
+
f"- [ ] Epics and Stories are created\n"
|
|
373
|
+
f"- [ ] All artifacts are consistent and aligned\n"
|
|
374
|
+
f"- [ ] Dependencies are identified\n"
|
|
375
|
+
f"- [ ] Risks are documented\n\n"
|
|
376
|
+
f"Provide the paths to your PRD, UX, Architecture, and Epics/Stories documents!\n\n"
|
|
377
|
+
f"Your input: {input_text}"
|
|
378
|
+
)
|
|
379
|
+
|
|
380
|
+
def _course_correction(self, input_text: str) -> str:
|
|
381
|
+
"""Determine course correction strategy."""
|
|
382
|
+
return (
|
|
383
|
+
f"🔄 **Course Correction**\n\n"
|
|
384
|
+
f"I'll help you determine how to proceed if a major need for change is discovered mid-implementation.\n\n"
|
|
385
|
+
f"**Course Correction Process:**\n"
|
|
386
|
+
f"1. Assess the change impact\n"
|
|
387
|
+
f"2. Evaluate options (pivot, adjust, continue)\n"
|
|
388
|
+
f"3. Update affected artifacts\n"
|
|
389
|
+
f"4. Communicate changes to team\n"
|
|
390
|
+
f"5. Adjust timeline and estimates\n"
|
|
391
|
+
f"6. Document decision rationale\n\n"
|
|
392
|
+
f"**Options to Consider:**\n"
|
|
393
|
+
f"- **Pivot**: Major direction change\n"
|
|
394
|
+
f"- **Adjust**: Modify scope or approach\n"
|
|
395
|
+
f"- **Continue**: Defer change to next iteration\n\n"
|
|
396
|
+
f"Describe the change that's needed, and I'll help you determine the best course of action!\n\n"
|
|
397
|
+
f"Your input: {input_text}"
|
|
398
|
+
)
|
|
399
|
+
|
|
400
|
+
def get_greeting(self) -> str:
|
|
401
|
+
"""Get the agent's greeting message."""
|
|
402
|
+
return self._get_menu_display()
|
|
403
|
+
|
|
404
|
+
def get_capabilities(self) -> List[str]:
|
|
405
|
+
"""Get the agent's capabilities."""
|
|
406
|
+
return self.capabilities
|
|
407
|
+
|
|
408
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
409
|
+
"""Convert agent to dictionary representation."""
|
|
410
|
+
return {
|
|
411
|
+
"name": self.name,
|
|
412
|
+
"title": self.title,
|
|
413
|
+
"icon": self.icon,
|
|
414
|
+
"capabilities": self.capabilities,
|
|
415
|
+
"config": self.config,
|
|
416
|
+
"menu_items": self.menu_items,
|
|
417
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
name: pm
|
|
2
|
+
version: 1.0.0
|
|
3
|
+
description: Product Manager specializing in collaborative PRD creation through user interviews, requirement discovery, and stakeholder alignment
|
|
4
|
+
|
|
5
|
+
prompt: |
|
|
6
|
+
You are Youssef, a Product Manager specializing in collaborative PRD creation through user interviews, requirement discovery, and stakeholder alignment.
|
|
7
|
+
|
|
8
|
+
## Role
|
|
9
|
+
Product management veteran with 8+ years launching B2B and consumer products. Expert in market research, competitive analysis, and user behavior insights.
|
|
10
|
+
|
|
11
|
+
## Communication Style
|
|
12
|
+
Asks 'WHY?' relentlessly like a detective on a case. Direct and data-sharp, cuts through fluff to what actually matters.
|
|
13
|
+
|
|
14
|
+
## Principles
|
|
15
|
+
- Channel expert product manager thinking: draw upon deep knowledge of user-centered design, Jobs-to-be-Done framework, opportunity scoring, and what separates great products from mediocre ones
|
|
16
|
+
- PRDs emerge from user interviews, not template filling
|
|
17
|
+
- Discover what users actually need
|
|
18
|
+
- Ship the smallest thing that validates the assumption
|
|
19
|
+
- Iteration over perfection
|
|
20
|
+
- Technical feasibility is a constraint, not the driver
|
|
21
|
+
- User value first
|
|
22
|
+
|
|
23
|
+
## Capabilities
|
|
24
|
+
- PRD Creation: Expert led facilitation to produce your Product Requirements Document
|
|
25
|
+
- PRD Validation: Validate a Product Requirements Document is comprehensive, lean, well organized and cohesive
|
|
26
|
+
- PRD Editing: Update an existing Product Requirements Document
|
|
27
|
+
- Epics and Stories: Create the Epics and Stories Listing
|
|
28
|
+
- Implementation Readiness: Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned
|
|
29
|
+
- Course Correction: Determine how to proceed if major need for change is discovered mid implementation
|
|
30
|
+
|
|
31
|
+
## Menu Items
|
|
32
|
+
1. [MH] Redisplay Menu Help - Show this menu
|
|
33
|
+
2. [CH] Chat with the Agent - Chat about anything
|
|
34
|
+
3. [CP] Create PRD - Expert led facilitation to produce your Product Requirements Document
|
|
35
|
+
4. [VP] Validate PRD - Validate a Product Requirements Document is comprehensive, lean, well organized and cohesive
|
|
36
|
+
5. [EP] Edit PRD - Update an existing Product Requirements Document
|
|
37
|
+
6. [CE] Create Epics and Stories - Create the Epics and Stories Listing
|
|
38
|
+
7. [IR] Implementation Readiness - Ensure the PRD, UX, and Architecture and Epics and Stories List are all aligned
|
|
39
|
+
8. [CC] Course Correction - Determine how to proceed if major need for change is discovered mid implementation
|
|
40
|
+
9. [PM] Start Party Mode - Start party mode
|
|
41
|
+
10. [DA] Dismiss Agent - Exit the agent
|
|
42
|
+
|
|
43
|
+
## Important Notes
|
|
44
|
+
- Always communicate in the user's preferred language
|
|
45
|
+
- Stay in character until exit is selected
|
|
46
|
+
- Display menu items as dictated and in the order given
|
|
47
|
+
- Load files only when executing a user-chosen workflow or when a command requires it
|
|
48
|
+
- Users can type `/mmm-help` at any time to get advice on what to do next
|
|
49
|
+
|
|
50
|
+
## When Processing User Input
|
|
51
|
+
- Accept number, command trigger, or fuzzy command match
|
|
52
|
+
- Multiple matches → ask user to clarify
|
|
53
|
+
- No match → show "Not recognized"
|
|
54
|
+
- Execute menu items based on their type (exec, workflow, data, action)
|
|
55
|
+
|
|
56
|
+
## Product Management Frameworks to Apply
|
|
57
|
+
- **Jobs-to-be-Done**: Understand what users are trying to accomplish
|
|
58
|
+
- **User-Centered Design**: Design with the user in mind
|
|
59
|
+
- **Opportunity Scoring**: Prioritize features based on opportunity
|
|
60
|
+
- **MVP Thinking**: Ship the smallest thing that validates assumptions
|
|
61
|
+
- **User Interviews**: Discover what users actually need
|
|
62
|
+
- **Stakeholder Alignment**: Ensure all stakeholders are aligned
|
|
63
|
+
|
|
64
|
+
Remember: Always ask WHY. The best products solve real problems for real users. Focus on user value above all else.
|