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,665 @@
|
|
|
1
|
+
"""
|
|
2
|
+
CI/CD Architect Agent
|
|
3
|
+
|
|
4
|
+
Specialized agent for CI/CD pipeline design, implementation, 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 CICDRequest:
|
|
14
|
+
"""Request data structure for the CI/CD Architect agent."""
|
|
15
|
+
|
|
16
|
+
action: str
|
|
17
|
+
pipeline_type: Optional[str] = None
|
|
18
|
+
deployment_strategy: Optional[str] = None
|
|
19
|
+
tools: Optional[List[str]] = None
|
|
20
|
+
environment: Optional[str] = None
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class CICDArchitectAgent:
|
|
24
|
+
"""
|
|
25
|
+
CI/CD Architect - Expert in CI/CD pipeline design and implementation.
|
|
26
|
+
|
|
27
|
+
Specialized in designing, implementing, and optimizing CI/CD pipelines.
|
|
28
|
+
Expert in GitOps, infrastructure as code, automated testing, and deployment
|
|
29
|
+
strategies.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
def __init__(self):
|
|
33
|
+
"""Initialize the CI/CD Architect agent."""
|
|
34
|
+
self.name = "CI/CD Architect"
|
|
35
|
+
self.title = "CI/CD Pipeline Design and Implementation Expert"
|
|
36
|
+
self.icon = "🔄"
|
|
37
|
+
self.capabilities = [
|
|
38
|
+
"CI/CD pipeline design and implementation",
|
|
39
|
+
"GitOps workflows",
|
|
40
|
+
"Infrastructure as Code integration",
|
|
41
|
+
"Automated testing strategies",
|
|
42
|
+
"Deployment strategies (Blue-Green, Canary, Rolling)",
|
|
43
|
+
"Pipeline security and compliance",
|
|
44
|
+
"Pipeline monitoring and optimization",
|
|
45
|
+
"Multi-environment pipeline management",
|
|
46
|
+
]
|
|
47
|
+
self.role = "CI/CD Expert"
|
|
48
|
+
self.identity = (
|
|
49
|
+
"Expert CI/CD architect with comprehensive knowledge of pipeline design, "
|
|
50
|
+
"GitOps practices, and deployment strategies. Specialized in building "
|
|
51
|
+
"efficient, secure, and reliable CI/CD pipelines."
|
|
52
|
+
)
|
|
53
|
+
self.communication_style = (
|
|
54
|
+
"Technical and practical, focusing on pipeline efficiency, automation, "
|
|
55
|
+
"and reliability. Provides clear pipeline configurations, YAML examples, "
|
|
56
|
+
"and best practices."
|
|
57
|
+
)
|
|
58
|
+
self.principles = [
|
|
59
|
+
"Automate everything that can be automated",
|
|
60
|
+
"Fail fast and fail often",
|
|
61
|
+
"Keep pipelines fast and efficient",
|
|
62
|
+
"Implement proper testing at every stage",
|
|
63
|
+
"Use immutable infrastructure",
|
|
64
|
+
"Implement feature flags",
|
|
65
|
+
"Monitor pipeline performance",
|
|
66
|
+
"Practice continuous improvement",
|
|
67
|
+
]
|
|
68
|
+
|
|
69
|
+
async def process(self, request: CICDRequest) -> Dict[str, Any]:
|
|
70
|
+
"""
|
|
71
|
+
Process the CI/CD request and return a response.
|
|
72
|
+
|
|
73
|
+
Args:
|
|
74
|
+
request: The CI/CD request to process
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
A dictionary containing the CI/CD solution
|
|
78
|
+
"""
|
|
79
|
+
action = request.action.lower()
|
|
80
|
+
|
|
81
|
+
if action == "design":
|
|
82
|
+
return await self._design_pipeline(request)
|
|
83
|
+
elif action == "implement":
|
|
84
|
+
return await self._implement_pipeline(request)
|
|
85
|
+
elif action == "optimize":
|
|
86
|
+
return await self._optimize_pipeline(request)
|
|
87
|
+
elif action == "secure":
|
|
88
|
+
return await self._secure_pipeline(request)
|
|
89
|
+
elif action == "monitor":
|
|
90
|
+
return await self._monitor_pipeline(request)
|
|
91
|
+
else:
|
|
92
|
+
return await self._handle_unknown_action(request)
|
|
93
|
+
|
|
94
|
+
async def _design_pipeline(self, request: CICDRequest) -> Dict[str, Any]:
|
|
95
|
+
"""
|
|
96
|
+
Design CI/CD pipeline.
|
|
97
|
+
|
|
98
|
+
Args:
|
|
99
|
+
request: The request to process
|
|
100
|
+
|
|
101
|
+
Returns:
|
|
102
|
+
Pipeline design
|
|
103
|
+
"""
|
|
104
|
+
pipeline_type = request.pipeline_type or "application_deployment"
|
|
105
|
+
deployment_strategy = request.deployment_strategy or "blue_green"
|
|
106
|
+
|
|
107
|
+
pipeline = {
|
|
108
|
+
"message": f"CI/CD pipeline design for {pipeline_type}",
|
|
109
|
+
"agent": self.name,
|
|
110
|
+
"icon": self.icon,
|
|
111
|
+
"pipeline_type": pipeline_type,
|
|
112
|
+
"deployment_strategy": deployment_strategy,
|
|
113
|
+
"pipeline_stages": [
|
|
114
|
+
{
|
|
115
|
+
"name": "Source",
|
|
116
|
+
"description": "Code repository and version control",
|
|
117
|
+
"tools": ["GitHub", "Git"],
|
|
118
|
+
"triggers": ["push", "pull_request"],
|
|
119
|
+
"actions": [
|
|
120
|
+
"Validate commit messages",
|
|
121
|
+
"Check branch protection rules",
|
|
122
|
+
"Run pre-commit hooks",
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"name": "Build",
|
|
127
|
+
"description": "Build application artifacts",
|
|
128
|
+
"tools": ["Docker", "Maven/Gradle", "npm"],
|
|
129
|
+
"steps": [
|
|
130
|
+
"Install dependencies",
|
|
131
|
+
"Run unit tests",
|
|
132
|
+
"Build application",
|
|
133
|
+
"Create Docker image",
|
|
134
|
+
"Push to container registry",
|
|
135
|
+
"Generate build artifacts",
|
|
136
|
+
],
|
|
137
|
+
"duration": "5-10 minutes",
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"name": "Test",
|
|
141
|
+
"description": "Automated testing",
|
|
142
|
+
"tools": ["JUnit", "Selenium", "SonarQube", "OWASP ZAP"],
|
|
143
|
+
"steps": [
|
|
144
|
+
"Run integration tests",
|
|
145
|
+
"Run end-to-end tests",
|
|
146
|
+
"Security scanning (SAST/DAST)",
|
|
147
|
+
"Code quality analysis",
|
|
148
|
+
"License compliance check",
|
|
149
|
+
],
|
|
150
|
+
"duration": "10-20 minutes",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "Deploy",
|
|
154
|
+
"description": "Deploy to environments",
|
|
155
|
+
"tools": ["Kubernetes", "Helm", "ArgoCD"],
|
|
156
|
+
"environments": ["dev", "staging", "production"],
|
|
157
|
+
"strategy": deployment_strategy,
|
|
158
|
+
"steps": [
|
|
159
|
+
"Update deployment configuration",
|
|
160
|
+
"Deploy to dev environment",
|
|
161
|
+
"Run smoke tests",
|
|
162
|
+
"Promote to staging",
|
|
163
|
+
"Run full test suite",
|
|
164
|
+
"Promote to production",
|
|
165
|
+
],
|
|
166
|
+
"duration": "5-15 minutes",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"name": "Verify",
|
|
170
|
+
"description": "Post-deployment verification",
|
|
171
|
+
"tools": ["Prometheus", "Grafana", "Selenium"],
|
|
172
|
+
"steps": [
|
|
173
|
+
"Health checks",
|
|
174
|
+
"Performance monitoring",
|
|
175
|
+
"Error tracking",
|
|
176
|
+
"User acceptance tests",
|
|
177
|
+
],
|
|
178
|
+
"duration": "5-10 minutes",
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
"deployment_strategies": {
|
|
182
|
+
"blue_green": {
|
|
183
|
+
"description": "Deploy new version alongside old, then switch traffic",
|
|
184
|
+
"pros": ["Zero downtime", "Instant rollback"],
|
|
185
|
+
"cons": ["Double resource cost", "Complex setup"],
|
|
186
|
+
"best_for": "Critical applications requiring zero downtime",
|
|
187
|
+
},
|
|
188
|
+
"canary": {
|
|
189
|
+
"description": "Gradually roll out to subset of users",
|
|
190
|
+
"pros": ["Gradual rollout", "Early issue detection"],
|
|
191
|
+
"cons": ["Slower rollout", "Complex monitoring"],
|
|
192
|
+
"best_for": "High-traffic applications",
|
|
193
|
+
},
|
|
194
|
+
"rolling": {
|
|
195
|
+
"description": "Gradually replace old instances with new",
|
|
196
|
+
"pros": ["Resource efficient", "Simple"],
|
|
197
|
+
"cons": ["Potential downtime", "Slower rollback"],
|
|
198
|
+
"best_for": "Stateless applications",
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
"best_practices": [
|
|
202
|
+
"Implement automated testing at every stage",
|
|
203
|
+
"Use immutable infrastructure",
|
|
204
|
+
"Implement feature flags",
|
|
205
|
+
"Automate rollback procedures",
|
|
206
|
+
"Use pipeline as code",
|
|
207
|
+
"Implement security scanning",
|
|
208
|
+
"Monitor pipeline performance",
|
|
209
|
+
"Keep pipelines fast and efficient",
|
|
210
|
+
],
|
|
211
|
+
"dora_metrics": [
|
|
212
|
+
"Deployment frequency",
|
|
213
|
+
"Lead time for changes",
|
|
214
|
+
"Mean time to recovery (MTTR)",
|
|
215
|
+
"Change failure rate",
|
|
216
|
+
],
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return pipeline
|
|
220
|
+
|
|
221
|
+
async def _implement_pipeline(self, request: CICDRequest) -> Dict[str, Any]:
|
|
222
|
+
"""
|
|
223
|
+
Implement CI/CD pipeline.
|
|
224
|
+
|
|
225
|
+
Args:
|
|
226
|
+
request: The request to process
|
|
227
|
+
|
|
228
|
+
Returns:
|
|
229
|
+
Pipeline implementation
|
|
230
|
+
"""
|
|
231
|
+
tools = request.tools or ["GitHub Actions", "Docker", "Kubernetes"]
|
|
232
|
+
|
|
233
|
+
implementation = {
|
|
234
|
+
"message": "CI/CD pipeline implementation",
|
|
235
|
+
"agent": self.name,
|
|
236
|
+
"icon": self.icon,
|
|
237
|
+
"tools": tools,
|
|
238
|
+
"github_actions_workflow": {
|
|
239
|
+
"name": "CI/CD Pipeline",
|
|
240
|
+
"on": {
|
|
241
|
+
"push": {"branches": ["main", "develop"]},
|
|
242
|
+
"pull_request": {"branches": ["main"]},
|
|
243
|
+
},
|
|
244
|
+
"jobs": {
|
|
245
|
+
"build": {
|
|
246
|
+
"runs-on": "ubuntu-latest",
|
|
247
|
+
"steps": [
|
|
248
|
+
{"uses": "actions/checkout@v3"},
|
|
249
|
+
{
|
|
250
|
+
"name": "Set up Docker Buildx",
|
|
251
|
+
"uses": "docker/setup-buildx-action@v2",
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"name": "Build and push",
|
|
255
|
+
"uses": "docker/build-push-action@v4",
|
|
256
|
+
"with": {
|
|
257
|
+
"context": ".",
|
|
258
|
+
"push": True,
|
|
259
|
+
"tags": "myapp:${{ github.sha }}",
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
},
|
|
264
|
+
"test": {
|
|
265
|
+
"runs-on": "ubuntu-latest",
|
|
266
|
+
"needs": "build",
|
|
267
|
+
"steps": [
|
|
268
|
+
{"uses": "actions/checkout@v3"},
|
|
269
|
+
{"name": "Run tests", "run": "npm test"},
|
|
270
|
+
{"name": "Run E2E tests", "run": "npm run test:e2e"},
|
|
271
|
+
],
|
|
272
|
+
},
|
|
273
|
+
"deploy": {
|
|
274
|
+
"runs-on": "ubuntu-latest",
|
|
275
|
+
"needs": "test",
|
|
276
|
+
"if": "github.ref == 'refs/heads/main'",
|
|
277
|
+
"steps": [
|
|
278
|
+
{"uses": "actions/checkout@v3"},
|
|
279
|
+
{
|
|
280
|
+
"name": "Deploy to Kubernetes",
|
|
281
|
+
"run": "kubectl apply -f k8s/",
|
|
282
|
+
},
|
|
283
|
+
],
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
},
|
|
287
|
+
"kubernetes_deployment": {
|
|
288
|
+
"apiVersion": "apps/v1",
|
|
289
|
+
"kind": "Deployment",
|
|
290
|
+
"metadata": {"name": "myapp"},
|
|
291
|
+
"spec": {
|
|
292
|
+
"replicas": 3,
|
|
293
|
+
"selector": {"matchLabels": {"app": "myapp"}},
|
|
294
|
+
"template": {
|
|
295
|
+
"metadata": {"labels": {"app": "myapp"}},
|
|
296
|
+
"spec": {
|
|
297
|
+
"containers": [
|
|
298
|
+
{
|
|
299
|
+
"name": "myapp",
|
|
300
|
+
"image": "myapp:${{ github.sha }}",
|
|
301
|
+
"ports": [{"containerPort": 80}],
|
|
302
|
+
"livenessProbe": {
|
|
303
|
+
"httpGet": {"path": "/health", "port": 80},
|
|
304
|
+
"initialDelaySeconds": 30,
|
|
305
|
+
"periodSeconds": 10,
|
|
306
|
+
},
|
|
307
|
+
"readinessProbe": {
|
|
308
|
+
"httpGet": {"path": "/ready", "port": 80},
|
|
309
|
+
"initialDelaySeconds": 5,
|
|
310
|
+
"periodSeconds": 5,
|
|
311
|
+
},
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
},
|
|
315
|
+
},
|
|
316
|
+
},
|
|
317
|
+
},
|
|
318
|
+
"helm_chart": {
|
|
319
|
+
"description": "Helm chart for application deployment",
|
|
320
|
+
"structure": {
|
|
321
|
+
"Chart.yaml": "Chart metadata",
|
|
322
|
+
"values.yaml": "Default configuration values",
|
|
323
|
+
"templates/": "Kubernetes resource templates",
|
|
324
|
+
"templates/deployment.yaml": "Deployment template",
|
|
325
|
+
"templates/service.yaml": "Service template",
|
|
326
|
+
"templates/ingress.yaml": "Ingress template",
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
"gitops_workflow": {
|
|
330
|
+
"description": "GitOps with ArgoCD",
|
|
331
|
+
"tools": ["ArgoCD", "GitHub"],
|
|
332
|
+
"workflow": [
|
|
333
|
+
"Developer commits code to application repo",
|
|
334
|
+
"CI pipeline builds and tests application",
|
|
335
|
+
"CI pipeline updates image tag in deployment repo",
|
|
336
|
+
"ArgoCD detects change in deployment repo",
|
|
337
|
+
"ArgoCD syncs changes to Kubernetes cluster",
|
|
338
|
+
],
|
|
339
|
+
},
|
|
340
|
+
"environment_variables": {
|
|
341
|
+
"CI": "true",
|
|
342
|
+
"NODE_ENV": "production",
|
|
343
|
+
"DATABASE_URL": "${{ secrets.DATABASE_URL }}",
|
|
344
|
+
"API_KEY": "${{ secrets.API_KEY }}",
|
|
345
|
+
},
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
return implementation
|
|
349
|
+
|
|
350
|
+
async def _optimize_pipeline(self, request: CICDRequest) -> Dict[str, Any]:
|
|
351
|
+
"""
|
|
352
|
+
Optimize CI/CD pipeline.
|
|
353
|
+
|
|
354
|
+
Args:
|
|
355
|
+
request: The request to process
|
|
356
|
+
|
|
357
|
+
Returns:
|
|
358
|
+
Pipeline optimization recommendations
|
|
359
|
+
"""
|
|
360
|
+
optimization = {
|
|
361
|
+
"message": "CI/CD pipeline optimization",
|
|
362
|
+
"agent": self.name,
|
|
363
|
+
"icon": self.icon,
|
|
364
|
+
"optimization_areas": [
|
|
365
|
+
{
|
|
366
|
+
"area": "Build Time",
|
|
367
|
+
"current": "15 minutes",
|
|
368
|
+
"target": "5 minutes",
|
|
369
|
+
"recommendations": [
|
|
370
|
+
"Use Docker layer caching",
|
|
371
|
+
"Parallelize build steps",
|
|
372
|
+
"Use build artifacts caching",
|
|
373
|
+
"Optimize dependency installation",
|
|
374
|
+
"Use faster runners",
|
|
375
|
+
],
|
|
376
|
+
"potential_improvement": "60-70%",
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"area": "Test Time",
|
|
380
|
+
"current": "20 minutes",
|
|
381
|
+
"target": "10 minutes",
|
|
382
|
+
"recommendations": [
|
|
383
|
+
"Parallelize test execution",
|
|
384
|
+
"Use test selection based on changes",
|
|
385
|
+
"Implement test caching",
|
|
386
|
+
"Use faster test frameworks",
|
|
387
|
+
"Run smoke tests first",
|
|
388
|
+
],
|
|
389
|
+
"potential_improvement": "40-50%",
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"area": "Deployment Time",
|
|
393
|
+
"current": "10 minutes",
|
|
394
|
+
"target": "3 minutes",
|
|
395
|
+
"recommendations": [
|
|
396
|
+
"Use blue-green deployment",
|
|
397
|
+
"Implement canary releases",
|
|
398
|
+
"Optimize Kubernetes rollout",
|
|
399
|
+
"Use pre-built images",
|
|
400
|
+
"Implement health checks",
|
|
401
|
+
],
|
|
402
|
+
"potential_improvement": "60-70%",
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"area": "Resource Usage",
|
|
406
|
+
"current": "High",
|
|
407
|
+
"target": "Optimized",
|
|
408
|
+
"recommendations": [
|
|
409
|
+
"Use self-hosted runners",
|
|
410
|
+
"Implement resource limits",
|
|
411
|
+
"Use spot instances for runners",
|
|
412
|
+
"Optimize runner sizing",
|
|
413
|
+
"Clean up resources after pipeline",
|
|
414
|
+
],
|
|
415
|
+
"potential_improvement": "30-50%",
|
|
416
|
+
},
|
|
417
|
+
],
|
|
418
|
+
"best_practices": [
|
|
419
|
+
"Use caching for dependencies and build artifacts",
|
|
420
|
+
"Parallelize independent tasks",
|
|
421
|
+
"Fail fast with early validation",
|
|
422
|
+
"Use incremental builds",
|
|
423
|
+
"Optimize Docker images (multi-stage builds)",
|
|
424
|
+
"Use appropriate runner sizes",
|
|
425
|
+
"Monitor pipeline performance",
|
|
426
|
+
"Regularly review and optimize",
|
|
427
|
+
],
|
|
428
|
+
"tools_for_optimization": [
|
|
429
|
+
"GitHub Actions Cache",
|
|
430
|
+
"Docker BuildKit",
|
|
431
|
+
"Parallel test runners",
|
|
432
|
+
"Build artifacts storage",
|
|
433
|
+
"Pipeline performance monitoring",
|
|
434
|
+
],
|
|
435
|
+
"metrics_to_track": [
|
|
436
|
+
"Pipeline duration",
|
|
437
|
+
"Build time",
|
|
438
|
+
"Test time",
|
|
439
|
+
"Deployment time",
|
|
440
|
+
"Success rate",
|
|
441
|
+
"Resource usage",
|
|
442
|
+
"Cost per run",
|
|
443
|
+
],
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
return optimization
|
|
447
|
+
|
|
448
|
+
async def _secure_pipeline(self, request: CICDRequest) -> Dict[str, Any]:
|
|
449
|
+
"""
|
|
450
|
+
Secure CI/CD pipeline.
|
|
451
|
+
|
|
452
|
+
Args:
|
|
453
|
+
request: The request to process
|
|
454
|
+
|
|
455
|
+
Returns:
|
|
456
|
+
Pipeline security implementation
|
|
457
|
+
"""
|
|
458
|
+
security = {
|
|
459
|
+
"message": "CI/CD pipeline security",
|
|
460
|
+
"agent": self.name,
|
|
461
|
+
"icon": self.icon,
|
|
462
|
+
"security_measures": [
|
|
463
|
+
{
|
|
464
|
+
"area": "Source Code Security",
|
|
465
|
+
"measures": [
|
|
466
|
+
"Branch protection rules",
|
|
467
|
+
"Code review requirements",
|
|
468
|
+
"Signed commits",
|
|
469
|
+
"Secret scanning",
|
|
470
|
+
"Dependency scanning (SCA)",
|
|
471
|
+
],
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"area": "Build Security",
|
|
475
|
+
"measures": [
|
|
476
|
+
"SAST (Static Application Security Testing)",
|
|
477
|
+
"Container image scanning",
|
|
478
|
+
"Vulnerability scanning",
|
|
479
|
+
"License compliance check",
|
|
480
|
+
"Build provenance (SBOM)",
|
|
481
|
+
],
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"area": "Pipeline Security",
|
|
485
|
+
"measures": [
|
|
486
|
+
"Secure secrets management",
|
|
487
|
+
"Least privilege access",
|
|
488
|
+
"Pipeline as code with version control",
|
|
489
|
+
"Audit logging",
|
|
490
|
+
"Approval gates for production",
|
|
491
|
+
],
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"area": "Deployment Security",
|
|
495
|
+
"measures": [
|
|
496
|
+
"Immutable infrastructure",
|
|
497
|
+
"Infrastructure as Code with security checks",
|
|
498
|
+
"Network policies",
|
|
499
|
+
"Pod security policies",
|
|
500
|
+
"Runtime security monitoring",
|
|
501
|
+
],
|
|
502
|
+
},
|
|
503
|
+
],
|
|
504
|
+
"security_tools": [
|
|
505
|
+
"GitHub Advanced Security",
|
|
506
|
+
"SonarQube (SAST)",
|
|
507
|
+
"Trivy (Container scanning)",
|
|
508
|
+
"Snyk (Dependency scanning)",
|
|
509
|
+
"OWASP ZAP (DAST)",
|
|
510
|
+
"Sigstore (Image signing)",
|
|
511
|
+
],
|
|
512
|
+
"best_practices": [
|
|
513
|
+
"Implement security scanning at every stage",
|
|
514
|
+
"Use secrets management (Azure Key Vault, GitHub Secrets)",
|
|
515
|
+
"Implement least privilege access",
|
|
516
|
+
"Use signed commits and images",
|
|
517
|
+
"Regularly update dependencies",
|
|
518
|
+
"Implement security policies as code",
|
|
519
|
+
"Monitor for security vulnerabilities",
|
|
520
|
+
"Conduct regular security audits",
|
|
521
|
+
],
|
|
522
|
+
"compliance": [
|
|
523
|
+
"SOC 2",
|
|
524
|
+
"ISO 27001",
|
|
525
|
+
"PCI DSS",
|
|
526
|
+
"HIPAA",
|
|
527
|
+
],
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
return security
|
|
531
|
+
|
|
532
|
+
async def _monitor_pipeline(self, request: CICDRequest) -> Dict[str, Any]:
|
|
533
|
+
"""
|
|
534
|
+
Monitor CI/CD pipeline.
|
|
535
|
+
|
|
536
|
+
Args:
|
|
537
|
+
request: The request to process
|
|
538
|
+
|
|
539
|
+
Returns:
|
|
540
|
+
Pipeline monitoring setup
|
|
541
|
+
"""
|
|
542
|
+
monitoring = {
|
|
543
|
+
"message": "CI/CD pipeline monitoring",
|
|
544
|
+
"agent": self.name,
|
|
545
|
+
"icon": self.icon,
|
|
546
|
+
"metrics_to_track": [
|
|
547
|
+
{
|
|
548
|
+
"category": "Pipeline Performance",
|
|
549
|
+
"metrics": [
|
|
550
|
+
"Pipeline duration",
|
|
551
|
+
"Build time",
|
|
552
|
+
"Test time",
|
|
553
|
+
"Deployment time",
|
|
554
|
+
"Queue time",
|
|
555
|
+
],
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"category": "Pipeline Quality",
|
|
559
|
+
"metrics": [
|
|
560
|
+
"Success rate",
|
|
561
|
+
"Failure rate",
|
|
562
|
+
"Flaky test rate",
|
|
563
|
+
"Code coverage",
|
|
564
|
+
"Code quality score",
|
|
565
|
+
],
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"category": "DORA Metrics",
|
|
569
|
+
"metrics": [
|
|
570
|
+
"Deployment frequency",
|
|
571
|
+
"Lead time for changes",
|
|
572
|
+
"Mean time to recovery (MTTR)",
|
|
573
|
+
"Change failure rate",
|
|
574
|
+
],
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
"category": "Resource Usage",
|
|
578
|
+
"metrics": [
|
|
579
|
+
"Runner usage",
|
|
580
|
+
"CPU usage",
|
|
581
|
+
"Memory usage",
|
|
582
|
+
"Storage usage",
|
|
583
|
+
"Cost per run",
|
|
584
|
+
],
|
|
585
|
+
},
|
|
586
|
+
],
|
|
587
|
+
"alerting_rules": [
|
|
588
|
+
{
|
|
589
|
+
"name": "Pipeline Failure",
|
|
590
|
+
"condition": "pipeline_status == 'failed'",
|
|
591
|
+
"severity": "critical",
|
|
592
|
+
"notification": ["Slack", "Email"],
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
"name": "High Build Time",
|
|
596
|
+
"condition": "build_time > 15 minutes",
|
|
597
|
+
"severity": "warning",
|
|
598
|
+
"notification": ["Slack"],
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
"name": "Low Success Rate",
|
|
602
|
+
"condition": "success_rate < 90% over 24h",
|
|
603
|
+
"severity": "warning",
|
|
604
|
+
"notification": ["Slack"],
|
|
605
|
+
},
|
|
606
|
+
],
|
|
607
|
+
"dashboards": [
|
|
608
|
+
"Pipeline Overview",
|
|
609
|
+
"Pipeline Performance",
|
|
610
|
+
"DORA Metrics",
|
|
611
|
+
"Resource Usage",
|
|
612
|
+
],
|
|
613
|
+
"tools": [
|
|
614
|
+
"GitHub Actions Insights",
|
|
615
|
+
"Prometheus",
|
|
616
|
+
"Grafana",
|
|
617
|
+
"ELK Stack",
|
|
618
|
+
"Datadog",
|
|
619
|
+
],
|
|
620
|
+
"best_practices": [
|
|
621
|
+
"Track DORA metrics",
|
|
622
|
+
"Monitor pipeline performance",
|
|
623
|
+
"Set up meaningful alerts",
|
|
624
|
+
"Create actionable dashboards",
|
|
625
|
+
"Regularly review metrics",
|
|
626
|
+
"Use metrics for continuous improvement",
|
|
627
|
+
],
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
return monitoring
|
|
631
|
+
|
|
632
|
+
async def _handle_unknown_action(self, request: CICDRequest) -> Dict[str, Any]:
|
|
633
|
+
"""
|
|
634
|
+
Handle unknown actions.
|
|
635
|
+
|
|
636
|
+
Args:
|
|
637
|
+
request: The request to process
|
|
638
|
+
|
|
639
|
+
Returns:
|
|
640
|
+
An error message
|
|
641
|
+
"""
|
|
642
|
+
return {
|
|
643
|
+
"message": "Action not recognized",
|
|
644
|
+
"action": request.action,
|
|
645
|
+
"agent": self.name,
|
|
646
|
+
"suggestion": "Use one of: design, implement, optimize, secure, monitor",
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
def get_info(self) -> Dict[str, Any]:
|
|
650
|
+
"""
|
|
651
|
+
Get agent information.
|
|
652
|
+
|
|
653
|
+
Returns:
|
|
654
|
+
Agent information dictionary
|
|
655
|
+
"""
|
|
656
|
+
return {
|
|
657
|
+
"name": self.name,
|
|
658
|
+
"title": self.title,
|
|
659
|
+
"icon": self.icon,
|
|
660
|
+
"capabilities": self.capabilities,
|
|
661
|
+
"role": self.role,
|
|
662
|
+
"identity": self.identity,
|
|
663
|
+
"communication_style": self.communication_style,
|
|
664
|
+
"principles": self.principles,
|
|
665
|
+
}
|