mdan-cli 2.5.0 → 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,74 @@
|
|
|
1
|
+
name: query-optimizer
|
|
2
|
+
version: 1.0.0
|
|
3
|
+
description: Specialized agent for SQL query optimization, execution plan analysis, and query refactoring
|
|
4
|
+
|
|
5
|
+
system_prompt: |
|
|
6
|
+
You are Haytame, a Query Optimizer, a SQL Query Optimization and Execution Plan Expert.
|
|
7
|
+
|
|
8
|
+
Your capabilities:
|
|
9
|
+
- SQL query analysis and optimization
|
|
10
|
+
- Execution plan interpretation
|
|
11
|
+
- Query refactoring and rewriting
|
|
12
|
+
- Index utilization optimization
|
|
13
|
+
- Join strategy optimization
|
|
14
|
+
- Subquery optimization
|
|
15
|
+
- CTE and window function optimization
|
|
16
|
+
- Query performance prediction
|
|
17
|
+
- Index design for queries
|
|
18
|
+
- Query caching strategies
|
|
19
|
+
|
|
20
|
+
Your communication style:
|
|
21
|
+
- Technical and precise, focusing on query mechanics, execution plans, and optimization techniques
|
|
22
|
+
- Provides concrete query rewrites with explanations of why they perform better
|
|
23
|
+
- Uses specific examples and before/after comparisons
|
|
24
|
+
- Explains the underlying database behavior
|
|
25
|
+
|
|
26
|
+
Your principles:
|
|
27
|
+
- Understand the execution plan before optimizing
|
|
28
|
+
- Optimize for the actual data distribution
|
|
29
|
+
- Consider the query's place in the overall workload
|
|
30
|
+
- Balance query complexity with maintainability
|
|
31
|
+
- Use appropriate join types and orders
|
|
32
|
+
- Leverage indexes effectively
|
|
33
|
+
- Avoid unnecessary data processing
|
|
34
|
+
- Test optimizations with realistic data volumes
|
|
35
|
+
|
|
36
|
+
Your role:
|
|
37
|
+
Expert query optimizer with deep understanding of SQL query execution, database query planners, and optimization techniques. Specialized in transforming inefficient queries into high-performing alternatives across multiple database systems including PostgreSQL, MySQL, SQL Server, and Oracle.
|
|
38
|
+
|
|
39
|
+
When analyzing queries:
|
|
40
|
+
1. Examine the query structure and identify potential issues
|
|
41
|
+
2. Review the execution plan to understand how the database processes the query
|
|
42
|
+
3. Identify bottlenecks and expensive operations
|
|
43
|
+
4. Consider the data distribution and access patterns
|
|
44
|
+
5. Evaluate index usage and effectiveness
|
|
45
|
+
|
|
46
|
+
When optimizing queries:
|
|
47
|
+
- Provide specific, actionable query rewrites
|
|
48
|
+
- Explain why the optimization works
|
|
49
|
+
- Estimate the expected performance improvement
|
|
50
|
+
- Recommend appropriate indexes
|
|
51
|
+
- Consider trade-offs (performance vs. maintainability)
|
|
52
|
+
- Suggest configuration changes if needed
|
|
53
|
+
|
|
54
|
+
Common optimization techniques:
|
|
55
|
+
- Replace SELECT * with specific columns
|
|
56
|
+
- Use appropriate JOIN types (INNER, LEFT, etc.)
|
|
57
|
+
- Optimize subqueries (convert to JOINs when appropriate)
|
|
58
|
+
- Use EXISTS instead of IN for existence checks
|
|
59
|
+
- Add LIMIT to prevent processing unnecessary rows
|
|
60
|
+
- Use covering indexes for index-only scans
|
|
61
|
+
- Consider partial indexes for filtered data
|
|
62
|
+
- Optimize ORDER BY with proper indexes
|
|
63
|
+
- Use UNION ALL instead of UNION when duplicates are not a concern
|
|
64
|
+
|
|
65
|
+
user_prompt_template: |
|
|
66
|
+
Task: {action}
|
|
67
|
+
|
|
68
|
+
Database Type: {db_type}
|
|
69
|
+
Query: {query}
|
|
70
|
+
Execution Plan: {execution_plan}
|
|
71
|
+
Schema Info: {schema_info}
|
|
72
|
+
Performance Goal: {performance_goal}
|
|
73
|
+
|
|
74
|
+
Please provide a comprehensive analysis and optimization recommendations.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""DevOps/Azure Pack Agents Package."""
|
|
2
|
+
|
|
3
|
+
from .devops_engineer import DevOpsEngineerAgent
|
|
4
|
+
from .azure_specialist import AzureSpecialistAgent
|
|
5
|
+
from .cicd_architect import CICDArchitectAgent
|
|
6
|
+
|
|
7
|
+
__all__ = [
|
|
8
|
+
"DevOpsEngineerAgent",
|
|
9
|
+
"AzureSpecialistAgent",
|
|
10
|
+
"CICDArchitectAgent",
|
|
11
|
+
]
|
|
@@ -0,0 +1,584 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Azure Specialist Agent
|
|
3
|
+
|
|
4
|
+
Specialized agent for Azure cloud services, architecture, and optimization.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from typing import Dict, Any, List, Optional
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
import asyncio
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@dataclass
|
|
13
|
+
class AzureRequest:
|
|
14
|
+
"""Request data structure for the Azure Specialist agent."""
|
|
15
|
+
|
|
16
|
+
action: str
|
|
17
|
+
azure_service: Optional[str] = None
|
|
18
|
+
architecture_type: Optional[str] = None
|
|
19
|
+
optimization_goal: Optional[str] = None
|
|
20
|
+
region: Optional[str] = None
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class AzureSpecialistAgent:
|
|
24
|
+
"""
|
|
25
|
+
Azure Specialist - Expert in Azure cloud services and architecture.
|
|
26
|
+
|
|
27
|
+
Specialized in designing, implementing, and optimizing Azure solutions.
|
|
28
|
+
Expert in Azure services, best practices, security, and cost optimization.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(self):
|
|
32
|
+
"""Initialize the Azure Specialist agent."""
|
|
33
|
+
self.name = "Azure Specialist"
|
|
34
|
+
self.title = "Azure Cloud Services and Architecture Expert"
|
|
35
|
+
self.icon = "☁️"
|
|
36
|
+
self.capabilities = [
|
|
37
|
+
"Azure architecture design",
|
|
38
|
+
"Azure service selection and configuration",
|
|
39
|
+
"Azure security and compliance",
|
|
40
|
+
"Azure cost optimization",
|
|
41
|
+
"Azure DevOps integration",
|
|
42
|
+
"Azure monitoring and management",
|
|
43
|
+
"Azure migration strategies",
|
|
44
|
+
"Azure serverless and PaaS solutions",
|
|
45
|
+
]
|
|
46
|
+
self.role = "Azure Expert"
|
|
47
|
+
self.identity = (
|
|
48
|
+
"Expert Azure specialist with comprehensive knowledge of Azure services, "
|
|
49
|
+
"architecture patterns, and best practices. Specialized in designing scalable, "
|
|
50
|
+
"secure, and cost-effective Azure solutions."
|
|
51
|
+
)
|
|
52
|
+
self.communication_style = (
|
|
53
|
+
"Technical and Azure-focused, providing clear guidance on Azure services "
|
|
54
|
+
"and configurations. Includes specific Azure recommendations, ARM templates, "
|
|
55
|
+
"and best practices."
|
|
56
|
+
)
|
|
57
|
+
self.principles = [
|
|
58
|
+
"Design for scalability and reliability",
|
|
59
|
+
"Implement security best practices",
|
|
60
|
+
"Optimize for cost efficiency",
|
|
61
|
+
"Use managed services when possible",
|
|
62
|
+
"Implement proper monitoring and logging",
|
|
63
|
+
"Follow Azure Well-Architected Framework",
|
|
64
|
+
"Design for disaster recovery",
|
|
65
|
+
]
|
|
66
|
+
|
|
67
|
+
async def process(self, request: AzureRequest) -> Dict[str, Any]:
|
|
68
|
+
"""
|
|
69
|
+
Process the Azure request and return a response.
|
|
70
|
+
|
|
71
|
+
Args:
|
|
72
|
+
request: The Azure request to process
|
|
73
|
+
|
|
74
|
+
Returns:
|
|
75
|
+
A dictionary containing the Azure solution
|
|
76
|
+
"""
|
|
77
|
+
action = request.action.lower()
|
|
78
|
+
|
|
79
|
+
if action == "design":
|
|
80
|
+
return await self._design_architecture(request)
|
|
81
|
+
elif action == "configure":
|
|
82
|
+
return await self._configure_service(request)
|
|
83
|
+
elif action == "optimize":
|
|
84
|
+
return await self._optimize_costs(request)
|
|
85
|
+
elif action == "secure":
|
|
86
|
+
return await self._implement_security(request)
|
|
87
|
+
elif action == "migrate":
|
|
88
|
+
return await self._plan_migration(request)
|
|
89
|
+
else:
|
|
90
|
+
return await self._handle_unknown_action(request)
|
|
91
|
+
|
|
92
|
+
async def _design_architecture(self, request: AzureRequest) -> Dict[str, Any]:
|
|
93
|
+
"""
|
|
94
|
+
Design Azure architecture.
|
|
95
|
+
|
|
96
|
+
Args:
|
|
97
|
+
request: The request to process
|
|
98
|
+
|
|
99
|
+
Returns:
|
|
100
|
+
Architecture design
|
|
101
|
+
"""
|
|
102
|
+
architecture_type = request.architecture_type or "web_application"
|
|
103
|
+
region = request.region or "East US"
|
|
104
|
+
|
|
105
|
+
architecture = {
|
|
106
|
+
"message": f"Azure architecture design for {architecture_type}",
|
|
107
|
+
"agent": self.name,
|
|
108
|
+
"icon": self.icon,
|
|
109
|
+
"architecture_type": architecture_type,
|
|
110
|
+
"region": region,
|
|
111
|
+
"components": {
|
|
112
|
+
"compute": {
|
|
113
|
+
"service": "Azure Kubernetes Service (AKS)",
|
|
114
|
+
"configuration": {
|
|
115
|
+
"node_count": 3,
|
|
116
|
+
"vm_size": "Standard_D4s_v3",
|
|
117
|
+
"autoscaling": {
|
|
118
|
+
"min_nodes": 2,
|
|
119
|
+
"max_nodes": 10,
|
|
120
|
+
"target_cpu": 70,
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
"networking": {
|
|
125
|
+
"vnet": {
|
|
126
|
+
"address_space": "10.0.0.0/16",
|
|
127
|
+
"subnets": {
|
|
128
|
+
"aks_subnet": "10.0.1.0/24",
|
|
129
|
+
"database_subnet": "10.0.2.0/24",
|
|
130
|
+
"gateway_subnet": "10.0.3.0/24",
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
"load_balancer": "Azure Load Balancer",
|
|
134
|
+
"application_gateway": "Azure Application Gateway (WAF enabled)",
|
|
135
|
+
},
|
|
136
|
+
"storage": {
|
|
137
|
+
"service": "Azure Storage",
|
|
138
|
+
"configuration": {
|
|
139
|
+
"type": "Standard_LRS",
|
|
140
|
+
"containers": ["app-data", "logs", "backups"],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
"database": {
|
|
144
|
+
"service": "Azure Database for PostgreSQL",
|
|
145
|
+
"configuration": {
|
|
146
|
+
"tier": "General Purpose",
|
|
147
|
+
"vcores": 4,
|
|
148
|
+
"storage": 100,
|
|
149
|
+
"backup_retention": 7,
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
"caching": {
|
|
153
|
+
"service": "Azure Cache for Redis",
|
|
154
|
+
"configuration": {
|
|
155
|
+
"size": "Standard C1",
|
|
156
|
+
"shard_count": 1,
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
"monitoring": {
|
|
160
|
+
"service": "Azure Monitor + Application Insights",
|
|
161
|
+
"configuration": {
|
|
162
|
+
"log_analytics": "Enabled",
|
|
163
|
+
"alert_rules": "Configured",
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
"architecture_patterns": [
|
|
168
|
+
"Microservices architecture",
|
|
169
|
+
"High availability with multi-AZ deployment",
|
|
170
|
+
"Auto-scaling based on demand",
|
|
171
|
+
"Geo-redundancy for disaster recovery",
|
|
172
|
+
],
|
|
173
|
+
"best_practices": [
|
|
174
|
+
"Use Azure Well-Architected Framework",
|
|
175
|
+
"Implement proper network segmentation",
|
|
176
|
+
"Use managed identities for authentication",
|
|
177
|
+
"Enable Azure Security Center",
|
|
178
|
+
"Implement proper backup and disaster recovery",
|
|
179
|
+
"Use Azure Policy for governance",
|
|
180
|
+
"Monitor all resources with Azure Monitor",
|
|
181
|
+
],
|
|
182
|
+
"estimated_costs": {
|
|
183
|
+
"compute": "$300/month",
|
|
184
|
+
"networking": "$150/month",
|
|
185
|
+
"storage": "$50/month",
|
|
186
|
+
"database": "$200/month",
|
|
187
|
+
"caching": "$80/month",
|
|
188
|
+
"monitoring": "$100/month",
|
|
189
|
+
"total": "$880/month",
|
|
190
|
+
},
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return architecture
|
|
194
|
+
|
|
195
|
+
async def _configure_service(self, request: AzureRequest) -> Dict[str, Any]:
|
|
196
|
+
"""
|
|
197
|
+
Configure Azure service.
|
|
198
|
+
|
|
199
|
+
Args:
|
|
200
|
+
request: The request to process
|
|
201
|
+
|
|
202
|
+
Returns:
|
|
203
|
+
Service configuration
|
|
204
|
+
"""
|
|
205
|
+
azure_service = request.azure_service or "Azure Kubernetes Service"
|
|
206
|
+
|
|
207
|
+
configuration = {
|
|
208
|
+
"message": f"Configuration for {azure_service}",
|
|
209
|
+
"agent": self.name,
|
|
210
|
+
"icon": self.icon,
|
|
211
|
+
"service": azure_service,
|
|
212
|
+
"configuration": {
|
|
213
|
+
"resource_group": "rg-production",
|
|
214
|
+
"location": "East US",
|
|
215
|
+
"tags": {
|
|
216
|
+
"Environment": "Production",
|
|
217
|
+
"Application": "WebApp",
|
|
218
|
+
"Owner": "DevOps Team",
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
"security": {
|
|
222
|
+
"managed_identity": "Enabled",
|
|
223
|
+
"rbac": "Enabled",
|
|
224
|
+
"network_policies": "Enabled",
|
|
225
|
+
"encryption": "Enabled (Azure-managed keys)",
|
|
226
|
+
},
|
|
227
|
+
"monitoring": {
|
|
228
|
+
"diagnostic_settings": "Enabled",
|
|
229
|
+
"log_analytics_workspace": "Enabled",
|
|
230
|
+
"alert_rules": "Configured",
|
|
231
|
+
},
|
|
232
|
+
"backup": {
|
|
233
|
+
"enabled": True,
|
|
234
|
+
"retention_period": "30 days",
|
|
235
|
+
"geo_redundant": True,
|
|
236
|
+
},
|
|
237
|
+
"arm_template": {
|
|
238
|
+
"description": "ARM template for deployment",
|
|
239
|
+
"parameters": [
|
|
240
|
+
{"name": "location", "type": "string", "defaultValue": "East US"},
|
|
241
|
+
{
|
|
242
|
+
"name": "environment",
|
|
243
|
+
"type": "string",
|
|
244
|
+
"defaultValue": "production",
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
"resources": [
|
|
248
|
+
{
|
|
249
|
+
"type": "Microsoft.ContainerService/managedClusters",
|
|
250
|
+
"apiVersion": "2023-01-01",
|
|
251
|
+
"name": "[parameters('clusterName')]",
|
|
252
|
+
"location": "[parameters('location')]",
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
},
|
|
256
|
+
"deployment_commands": [
|
|
257
|
+
"az group create --name rg-production --location eastus",
|
|
258
|
+
"az aks create --resource-group rg-production --name aks-cluster --node-count 3 --node-vm-size Standard_D4s_v3",
|
|
259
|
+
"az aks get-credentials --resource-group rg-production --name aks-cluster",
|
|
260
|
+
],
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return configuration
|
|
264
|
+
|
|
265
|
+
async def _optimize_costs(self, request: AzureRequest) -> Dict[str, Any]:
|
|
266
|
+
"""
|
|
267
|
+
Optimize Azure costs.
|
|
268
|
+
|
|
269
|
+
Args:
|
|
270
|
+
request: The request to process
|
|
271
|
+
|
|
272
|
+
Returns:
|
|
273
|
+
Cost optimization recommendations
|
|
274
|
+
"""
|
|
275
|
+
optimization_goal = request.optimization_goal or "reduce_costs"
|
|
276
|
+
|
|
277
|
+
optimization = {
|
|
278
|
+
"message": f"Azure cost optimization - {optimization_goal}",
|
|
279
|
+
"agent": self.name,
|
|
280
|
+
"icon": self.icon,
|
|
281
|
+
"optimization_goal": optimization_goal,
|
|
282
|
+
"recommendations": [
|
|
283
|
+
{
|
|
284
|
+
"area": "Compute",
|
|
285
|
+
"recommendation": "Use Azure Reserved Instances",
|
|
286
|
+
"potential_savings": "30-60%",
|
|
287
|
+
"description": "Commit to 1 or 3-year reservations for predictable workloads",
|
|
288
|
+
"action": "Purchase reserved instances for production workloads",
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"area": "Compute",
|
|
292
|
+
"recommendation": "Implement auto-scaling",
|
|
293
|
+
"potential_savings": "20-40%",
|
|
294
|
+
"description": "Scale resources based on demand",
|
|
295
|
+
"action": "Configure AKS cluster autoscaler and horizontal pod autoscaler",
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"area": "Compute",
|
|
299
|
+
"recommendation": "Use Azure Spot Instances",
|
|
300
|
+
"potential_savings": "60-90%",
|
|
301
|
+
"description": "Use spot instances for fault-tolerant workloads",
|
|
302
|
+
"action": "Configure spot node pools for batch processing jobs",
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"area": "Storage",
|
|
306
|
+
"recommendation": "Optimize storage tiers",
|
|
307
|
+
"potential_savings": "20-50%",
|
|
308
|
+
"description": "Use appropriate storage tiers based on access patterns",
|
|
309
|
+
"action": "Move infrequently accessed data to Cool or Archive tier",
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"area": "Database",
|
|
313
|
+
"recommendation": "Right-size database resources",
|
|
314
|
+
"potential_savings": "15-30%",
|
|
315
|
+
"description": "Monitor and adjust database resources based on usage",
|
|
316
|
+
"action": "Review database metrics and adjust vcores and storage",
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"area": "Network",
|
|
320
|
+
"recommendation": "Optimize data transfer",
|
|
321
|
+
"potential_savings": "10-20%",
|
|
322
|
+
"description": "Minimize data transfer costs",
|
|
323
|
+
"action": "Use Azure Front Door for CDN, optimize VNet peering",
|
|
324
|
+
},
|
|
325
|
+
],
|
|
326
|
+
"tools": [
|
|
327
|
+
"Azure Cost Management + Billing",
|
|
328
|
+
"Azure Advisor",
|
|
329
|
+
"Azure Pricing Calculator",
|
|
330
|
+
"Azure Cost Analysis",
|
|
331
|
+
],
|
|
332
|
+
"best_practices": [
|
|
333
|
+
"Regularly review Azure Advisor recommendations",
|
|
334
|
+
"Set up budget alerts",
|
|
335
|
+
"Use resource tags for cost allocation",
|
|
336
|
+
"Implement governance policies",
|
|
337
|
+
"Monitor and optimize continuously",
|
|
338
|
+
"Use Azure Cost Management APIs for automation",
|
|
339
|
+
],
|
|
340
|
+
"estimated_monthly_savings": "$200-400",
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
return optimization
|
|
344
|
+
|
|
345
|
+
async def _implement_security(self, request: AzureRequest) -> Dict[str, Any]:
|
|
346
|
+
"""
|
|
347
|
+
Implement Azure security.
|
|
348
|
+
|
|
349
|
+
Args:
|
|
350
|
+
request: The request to process
|
|
351
|
+
|
|
352
|
+
Returns:
|
|
353
|
+
Security implementation
|
|
354
|
+
"""
|
|
355
|
+
security = {
|
|
356
|
+
"message": "Azure security implementation",
|
|
357
|
+
"agent": self.name,
|
|
358
|
+
"icon": self.icon,
|
|
359
|
+
"security_layers": [
|
|
360
|
+
{
|
|
361
|
+
"layer": "Identity and Access Management",
|
|
362
|
+
"controls": [
|
|
363
|
+
"Azure Active Directory (Entra ID)",
|
|
364
|
+
"Multi-Factor Authentication (MFA)",
|
|
365
|
+
"Conditional Access Policies",
|
|
366
|
+
"Privileged Identity Management (PIM)",
|
|
367
|
+
"Managed Identities",
|
|
368
|
+
],
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"layer": "Network Security",
|
|
372
|
+
"controls": [
|
|
373
|
+
"Virtual Network (VNet) segmentation",
|
|
374
|
+
"Network Security Groups (NSGs)",
|
|
375
|
+
"Azure Firewall",
|
|
376
|
+
"Application Gateway WAF",
|
|
377
|
+
"DDoS Protection",
|
|
378
|
+
"Private Endpoints",
|
|
379
|
+
],
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"layer": "Data Protection",
|
|
383
|
+
"controls": [
|
|
384
|
+
"Azure Key Vault",
|
|
385
|
+
"Azure Disk Encryption",
|
|
386
|
+
"Transparent Data Encryption (TDE)",
|
|
387
|
+
"Always Encrypted",
|
|
388
|
+
"Customer-managed keys",
|
|
389
|
+
],
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"layer": "Application Security",
|
|
393
|
+
"controls": [
|
|
394
|
+
"Azure App Service Security",
|
|
395
|
+
"Azure Container Registry security",
|
|
396
|
+
"Azure Security Center",
|
|
397
|
+
"Azure Defender",
|
|
398
|
+
"Vulnerability scanning",
|
|
399
|
+
],
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"layer": "Monitoring and Logging",
|
|
403
|
+
"controls": [
|
|
404
|
+
"Azure Monitor",
|
|
405
|
+
"Azure Sentinel",
|
|
406
|
+
"Log Analytics Workspace",
|
|
407
|
+
"Activity Logs",
|
|
408
|
+
"Diagnostic Settings",
|
|
409
|
+
],
|
|
410
|
+
},
|
|
411
|
+
],
|
|
412
|
+
"compliance": [
|
|
413
|
+
"SOC 2",
|
|
414
|
+
"ISO 27001",
|
|
415
|
+
"HIPAA",
|
|
416
|
+
"PCI DSS",
|
|
417
|
+
"GDPR",
|
|
418
|
+
],
|
|
419
|
+
"best_practices": [
|
|
420
|
+
"Implement zero-trust security model",
|
|
421
|
+
"Use least privilege access",
|
|
422
|
+
"Enable MFA for all users",
|
|
423
|
+
"Regularly review and update security policies",
|
|
424
|
+
"Conduct security assessments",
|
|
425
|
+
"Implement security monitoring and alerting",
|
|
426
|
+
"Keep all resources updated and patched",
|
|
427
|
+
],
|
|
428
|
+
"security_score": "Target: 80+ (Azure Secure Score)",
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
return security
|
|
432
|
+
|
|
433
|
+
async def _plan_migration(self, request: AzureRequest) -> Dict[str, Any]:
|
|
434
|
+
"""
|
|
435
|
+
Plan Azure migration.
|
|
436
|
+
|
|
437
|
+
Args:
|
|
438
|
+
request: The request to process
|
|
439
|
+
|
|
440
|
+
Returns:
|
|
441
|
+
Migration plan
|
|
442
|
+
"""
|
|
443
|
+
migration = {
|
|
444
|
+
"message": "Azure migration plan",
|
|
445
|
+
"agent": self.name,
|
|
446
|
+
"icon": self.icon,
|
|
447
|
+
"migration_phases": [
|
|
448
|
+
{
|
|
449
|
+
"phase": "Assess",
|
|
450
|
+
"duration": "2-4 weeks",
|
|
451
|
+
"activities": [
|
|
452
|
+
"Inventory existing workloads",
|
|
453
|
+
"Assess dependencies",
|
|
454
|
+
"Estimate costs",
|
|
455
|
+
"Identify migration blockers",
|
|
456
|
+
"Create migration strategy",
|
|
457
|
+
],
|
|
458
|
+
"tools": [
|
|
459
|
+
"Azure Migrate",
|
|
460
|
+
"Azure Assessment",
|
|
461
|
+
"Azure TCO Calculator",
|
|
462
|
+
],
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"phase": "Migrate",
|
|
466
|
+
"duration": "4-8 weeks",
|
|
467
|
+
"activities": [
|
|
468
|
+
"Set up Azure infrastructure",
|
|
469
|
+
"Migrate data",
|
|
470
|
+
"Migrate applications",
|
|
471
|
+
"Configure networking",
|
|
472
|
+
"Implement security",
|
|
473
|
+
],
|
|
474
|
+
"tools": [
|
|
475
|
+
"Azure Database Migration Service",
|
|
476
|
+
"Azure Site Recovery",
|
|
477
|
+
"Azure Data Factory",
|
|
478
|
+
],
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"phase": "Optimize",
|
|
482
|
+
"duration": "2-4 weeks",
|
|
483
|
+
"activities": [
|
|
484
|
+
"Optimize performance",
|
|
485
|
+
"Implement auto-scaling",
|
|
486
|
+
"Optimize costs",
|
|
487
|
+
"Configure monitoring",
|
|
488
|
+
"Implement disaster recovery",
|
|
489
|
+
],
|
|
490
|
+
"tools": [
|
|
491
|
+
"Azure Advisor",
|
|
492
|
+
"Azure Monitor",
|
|
493
|
+
"Azure Cost Management",
|
|
494
|
+
],
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"phase": "Manage",
|
|
498
|
+
"duration": "Ongoing",
|
|
499
|
+
"activities": [
|
|
500
|
+
"Monitor performance",
|
|
501
|
+
"Manage security",
|
|
502
|
+
"Optimize costs",
|
|
503
|
+
"Implement updates",
|
|
504
|
+
"Handle incidents",
|
|
505
|
+
],
|
|
506
|
+
"tools": [
|
|
507
|
+
"Azure Monitor",
|
|
508
|
+
"Azure Security Center",
|
|
509
|
+
"Azure Automation",
|
|
510
|
+
],
|
|
511
|
+
},
|
|
512
|
+
],
|
|
513
|
+
"migration_strategies": [
|
|
514
|
+
{
|
|
515
|
+
"strategy": "Rehost (Lift and Shift)",
|
|
516
|
+
"description": "Move applications to Azure with minimal changes",
|
|
517
|
+
"best_for": "Quick migration, legacy applications",
|
|
518
|
+
"effort": "Low",
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
"strategy": "Refactor",
|
|
522
|
+
"description": "Make minimal changes to optimize for Azure",
|
|
523
|
+
"best_for": "Applications needing cloud optimization",
|
|
524
|
+
"effort": "Medium",
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
"strategy": "Rearchitect",
|
|
528
|
+
"description": "Redesign applications for cloud-native architecture",
|
|
529
|
+
"best_for": "Modern applications, microservices",
|
|
530
|
+
"effort": "High",
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"strategy": "Rebuild",
|
|
534
|
+
"description": "Build new applications using Azure services",
|
|
535
|
+
"best_for": "Applications requiring complete rewrite",
|
|
536
|
+
"effort": "Very High",
|
|
537
|
+
},
|
|
538
|
+
],
|
|
539
|
+
"best_practices": [
|
|
540
|
+
"Start with a pilot migration",
|
|
541
|
+
"Use Azure Migrate for assessment",
|
|
542
|
+
"Implement proper monitoring from day one",
|
|
543
|
+
"Plan for rollback",
|
|
544
|
+
"Train team on Azure services",
|
|
545
|
+
"Document all migration steps",
|
|
546
|
+
],
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
return migration
|
|
550
|
+
|
|
551
|
+
async def _handle_unknown_action(self, request: AzureRequest) -> Dict[str, Any]:
|
|
552
|
+
"""
|
|
553
|
+
Handle unknown actions.
|
|
554
|
+
|
|
555
|
+
Args:
|
|
556
|
+
request: The request to process
|
|
557
|
+
|
|
558
|
+
Returns:
|
|
559
|
+
An error message
|
|
560
|
+
"""
|
|
561
|
+
return {
|
|
562
|
+
"message": "Action not recognized",
|
|
563
|
+
"action": request.action,
|
|
564
|
+
"agent": self.name,
|
|
565
|
+
"suggestion": "Use one of: design, configure, optimize, secure, migrate",
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
def get_info(self) -> Dict[str, Any]:
|
|
569
|
+
"""
|
|
570
|
+
Get agent information.
|
|
571
|
+
|
|
572
|
+
Returns:
|
|
573
|
+
Agent information dictionary
|
|
574
|
+
"""
|
|
575
|
+
return {
|
|
576
|
+
"name": self.name,
|
|
577
|
+
"title": self.title,
|
|
578
|
+
"icon": self.icon,
|
|
579
|
+
"capabilities": self.capabilities,
|
|
580
|
+
"role": self.role,
|
|
581
|
+
"identity": self.identity,
|
|
582
|
+
"communication_style": self.communication_style,
|
|
583
|
+
"principles": self.principles,
|
|
584
|
+
}
|