mdan-method 2.6.3
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/.mdan/config/config.yaml +36 -0
- package/.mdan/state/MDAN-STATE.template.json +39 -0
- package/AGENTS.md +308 -0
- package/AGENTS_LIST.md +946 -0
- package/ARCHITECTURE.md +590 -0
- package/CHANGELOG.md +1770 -0
- package/CONTRIBUTING.md +512 -0
- package/INSTALL.md +246 -0
- package/LICENSE +30 -0
- package/MDAN.fr.md +259 -0
- package/README.md +233 -0
- package/SECURITY.md +85 -0
- package/USAGE.md +368 -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/cli/v1/mdan.py +421 -0
- package/cli/v1/mdan.sh +724 -0
- package/cli/v1/mdan_crewai.py +539 -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-mdan.md +172 -0
- package/docs/how-to/established-projects.md +117 -0
- package/docs/how-to/get-answers-about-mdan.md +134 -0
- package/docs/how-to/install-mdan.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/examples/crewai/crewai_auto_mode.py +62 -0
- package/examples/crewai/crewai_custom_crew.py +85 -0
- package/examples/crewai/crewai_debate.py +57 -0
- package/examples/crewai/crewai_with_serper.py +82 -0
- package/examples/crewai/crewai_with_sql.py +117 -0
- package/integrations/__init__.py +33 -0
- package/integrations/crewai/__init__.py +27 -0
- package/integrations/crewai/agents/__init__.py +21 -0
- package/integrations/crewai/agents/architect_agent.py +264 -0
- package/integrations/crewai/agents/dev_agent.py +271 -0
- package/integrations/crewai/agents/devops_agent.py +421 -0
- package/integrations/crewai/agents/doc_agent.py +388 -0
- package/integrations/crewai/agents/product_agent.py +203 -0
- package/integrations/crewai/agents/security_agent.py +386 -0
- package/integrations/crewai/agents/test_agent.py +358 -0
- package/integrations/crewai/agents/ux_agent.py +257 -0
- package/integrations/crewai/flows/__init__.py +13 -0
- package/integrations/crewai/flows/auto_flow.py +451 -0
- package/integrations/crewai/flows/build_flow.py +297 -0
- package/integrations/crewai/flows/debate_flow.py +422 -0
- package/integrations/crewai/flows/discovery_flow.py +267 -0
- package/integrations/crewai/orchestrator.py +558 -0
- package/integrations/crewai/skills/__init__.py +8 -0
- package/integrations/crewai/skills/skill_router.py +534 -0
- package/integrations/crewai/tools/__init__.py +11 -0
- package/integrations/crewai/tools/file_tool.py +355 -0
- package/integrations/crewai/tools/serper_tool.py +169 -0
- package/integrations/crewai/tools/sql_tool.py +435 -0
- package/integrations/docs/all-integrations.md +300 -0
- package/integrations/docs/cursor.md +74 -0
- package/integrations/docs/mcp.md +153 -0
- package/integrations/docs/windsurf.md +48 -0
- package/package.json +119 -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/requirements.txt +5 -0
- package/requirements_crewai.txt +37 -0
- package/src/agents/module-help.csv +31 -0
- package/src/agents/module.yaml +50 -0
- package/src/agents/team/analyst.agent.yaml +43 -0
- package/src/agents/team/architect.agent.yaml +29 -0
- package/src/agents/team/dev.agent.yaml +38 -0
- package/src/agents/team/pm.agent.yaml +44 -0
- package/src/agents/team/qa.agent.yaml +58 -0
- package/src/agents/team/quick-flow-solo-dev.agent.yaml +32 -0
- package/src/agents/team/sm.agent.yaml +37 -0
- package/src/agents/team/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
- package/src/agents/team/tech-writer/tech-writer.agent.yaml +46 -0
- package/src/agents/team/ux-designer.agent.yaml +27 -0
- package/src/agents/teams/default-party.csv +20 -0
- package/src/agents/teams/team-fullstack.yaml +12 -0
- package/src/core/WIZARD-ENGINE.md +94 -0
- package/src/core/agents/mdan-master.agent.yaml +133 -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/memory/MEMORY-AUTO.json +66 -0
- package/src/memory/MEMORY-SYSTEM.md +61 -0
- package/src/memory/v1-memory-system.md +197 -0
- package/src/memory/v1-resume-protocol.md +379 -0
- package/src/packs/db-optimization/agents/prompt.yaml +63 -0
- package/src/packs/devops-azure/agents/prompt.yaml +301 -0
- package/src/packs/fintech/agents/prompt.yaml +135 -0
- package/src/phases/auto/auto-01-load.md +165 -0
- package/src/phases/auto/auto-02-discover.md +207 -0
- package/src/phases/auto/auto-03-plan.md +509 -0
- package/src/phases/auto/auto-04-architect.md +567 -0
- package/src/phases/auto/auto-05-implement.md +713 -0
- package/src/phases/auto/auto-06-test.md +559 -0
- package/src/phases/auto/auto-07-deploy.md +510 -0
- package/src/phases/auto/auto-08-doc.md +970 -0
- package/src/phases/manual/01-discover.md +136 -0
- package/src/phases/manual/02-design.md +147 -0
- package/src/phases/manual/03-build.md +113 -0
- package/src/phases/manual/04-verify.md +107 -0
- package/src/phases/manual/05-ship.md +156 -0
- package/src/protocols/debate-protocol.md +58 -0
- package/src/protocols/universal-envelope.md +42 -0
- package/src/protocols/v1-debate-protocol.md +454 -0
- package/src/protocols/v1-universal-envelope.md +273 -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/src/wizards/01-discover/create-product-brief/steps/step-01-init.md +7 -0
- package/src/wizards/01-discover/create-product-brief/steps/step-02-vision.md +7 -0
- package/src/wizards/01-discover/create-product-brief/steps/step-03-users.md +7 -0
- package/src/wizards/01-discover/create-product-brief/steps/step-04-scope.md +7 -0
- package/src/wizards/01-discover/create-product-brief/steps/step-05-metrics.md +7 -0
- package/src/wizards/01-discover/create-product-brief/steps/step-06-complete.md +7 -0
- package/src/wizards/01-discover/create-product-brief/templates/product-brief.template.md +14 -0
- package/src/wizards/01-discover/create-product-brief/wizard.md +105 -0
- package/src/wizards/01-discover/research/domain-steps/step-01-init.md +137 -0
- package/src/wizards/01-discover/research/domain-steps/step-02-domain-analysis.md +229 -0
- package/src/wizards/01-discover/research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/src/wizards/01-discover/research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/src/wizards/01-discover/research/domain-steps/step-05-technical-trends.md +234 -0
- package/src/wizards/01-discover/research/domain-steps/step-06-research-synthesis.md +444 -0
- package/src/wizards/01-discover/research/market-steps/step-01-init.md +182 -0
- package/src/wizards/01-discover/research/market-steps/step-02-customer-behavior.md +237 -0
- package/src/wizards/01-discover/research/market-steps/step-03-customer-pain-points.md +249 -0
- package/src/wizards/01-discover/research/market-steps/step-04-customer-decisions.md +259 -0
- package/src/wizards/01-discover/research/market-steps/step-05-competitive-analysis.md +177 -0
- package/src/wizards/01-discover/research/market-steps/step-06-research-completion.md +476 -0
- package/src/wizards/01-discover/research/technical-steps/step-01-init.md +137 -0
- package/src/wizards/01-discover/research/technical-steps/step-02-technical-overview.md +239 -0
- package/src/wizards/01-discover/research/technical-steps/step-03-integration-patterns.md +248 -0
- package/src/wizards/01-discover/research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/src/wizards/01-discover/research/technical-steps/step-05-implementation-research.md +233 -0
- package/src/wizards/01-discover/research/technical-steps/step-06-research-synthesis.md +487 -0
- package/src/wizards/01-discover/research/templates/research.template.md +29 -0
- package/src/wizards/01-discover/research/workflow-domain-research.md +54 -0
- package/src/wizards/01-discover/research/workflow-market-research.md +54 -0
- package/src/wizards/01-discover/research/workflow-technical-research.md +54 -0
- package/src/wizards/02-plan/create-prd/data/domain-complexity.csv +15 -0
- package/src/wizards/02-plan/create-prd/data/prd-purpose.md +197 -0
- package/src/wizards/02-plan/create-prd/data/project-types.csv +11 -0
- package/src/wizards/02-plan/create-prd/steps/step-01-init.md +191 -0
- package/src/wizards/02-plan/create-prd/steps/step-01b-continue.md +152 -0
- package/src/wizards/02-plan/create-prd/steps/step-02-discovery.md +224 -0
- package/src/wizards/02-plan/create-prd/steps/step-02b-vision.md +154 -0
- package/src/wizards/02-plan/create-prd/steps/step-02c-executive-summary.md +170 -0
- package/src/wizards/02-plan/create-prd/steps/step-03-success.md +226 -0
- package/src/wizards/02-plan/create-prd/steps/step-04-journeys.md +213 -0
- package/src/wizards/02-plan/create-prd/steps/step-05-domain.md +207 -0
- package/src/wizards/02-plan/create-prd/steps/step-06-innovation.md +226 -0
- package/src/wizards/02-plan/create-prd/steps/step-07-project-type.md +237 -0
- package/src/wizards/02-plan/create-prd/steps/step-08-scoping.md +228 -0
- package/src/wizards/02-plan/create-prd/steps/step-09-functional.md +231 -0
- package/src/wizards/02-plan/create-prd/steps/step-10-nonfunctional.md +242 -0
- package/src/wizards/02-plan/create-prd/steps/step-11-polish.md +217 -0
- package/src/wizards/02-plan/create-prd/steps/step-12-complete.md +124 -0
- package/src/wizards/02-plan/create-prd/templates/prd-template.md +10 -0
- package/src/wizards/02-plan/create-prd/wizard.md +63 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-01-init.md +135 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-01b-continue.md +127 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-02-discovery.md +190 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-03-core-experience.md +216 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-04-emotional-response.md +219 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-05-inspiration.md +234 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-06-design-system.md +252 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-07-defining-experience.md +254 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-08-visual-foundation.md +224 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-09-design-directions.md +224 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-10-user-journeys.md +241 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-11-component-strategy.md +248 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-12-ux-patterns.md +237 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
- package/src/wizards/02-plan/create-ux-design/steps/step-14-complete.md +171 -0
- package/src/wizards/02-plan/create-ux-design/templates/ux-design-template.md +13 -0
- package/src/wizards/02-plan/create-ux-design/wizard.md +42 -0
- package/src/wizards/03-architect/create-architecture/data/domain-complexity.csv +13 -0
- package/src/wizards/03-architect/create-architecture/data/project-types.csv +7 -0
- package/src/wizards/03-architect/create-architecture/steps/step-01-init.md +153 -0
- package/src/wizards/03-architect/create-architecture/steps/step-01b-continue.md +173 -0
- package/src/wizards/03-architect/create-architecture/steps/step-02-context.md +224 -0
- package/src/wizards/03-architect/create-architecture/steps/step-03-starter.md +329 -0
- package/src/wizards/03-architect/create-architecture/steps/step-04-decisions.md +318 -0
- package/src/wizards/03-architect/create-architecture/steps/step-05-patterns.md +359 -0
- package/src/wizards/03-architect/create-architecture/steps/step-06-structure.md +379 -0
- package/src/wizards/03-architect/create-architecture/steps/step-07-validation.md +359 -0
- package/src/wizards/03-architect/create-architecture/steps/step-08-complete.md +76 -0
- package/src/wizards/03-architect/create-architecture/templates/architecture-decision-template.md +12 -0
- package/src/wizards/03-architect/create-architecture/wizard.md +49 -0
- package/src/wizards/03-architect/create-epics/steps/step-01-validate-prerequisites.md +259 -0
- package/src/wizards/03-architect/create-epics/steps/step-02-design-epics.md +233 -0
- package/src/wizards/03-architect/create-epics/steps/step-03-create-stories.md +272 -0
- package/src/wizards/03-architect/create-epics/steps/step-04-final-validation.md +149 -0
- package/src/wizards/03-architect/create-epics/templates/epics-template.md +57 -0
- package/src/wizards/03-architect/create-epics/wizard.md +58 -0
- package/src/wizards/04-build/code-review/checklist.md +23 -0
- package/src/wizards/04-build/code-review/instructions.xml +227 -0
- package/src/wizards/04-build/code-review/workflow.yaml +43 -0
- package/src/wizards/04-build/dev-story/checklist.md +80 -0
- package/src/wizards/04-build/dev-story/instructions.xml +410 -0
- package/src/wizards/04-build/dev-story/workflow.yaml +20 -0
- package/src/wizards/04-build/sprint-planning/checklist.md +33 -0
- package/src/wizards/04-build/sprint-planning/instructions.md +226 -0
- package/src/wizards/04-build/sprint-planning/sprint-status-template.yaml +55 -0
- package/src/wizards/04-build/sprint-planning/workflow.yaml +47 -0
- package/src/wizards/05-ship/document-project/templates/deep-dive-template.md +345 -0
- package/src/wizards/05-ship/document-project/templates/index-template.md +169 -0
- package/src/wizards/05-ship/document-project/templates/project-overview-template.md +103 -0
- package/src/wizards/05-ship/document-project/templates/project-scan-report-schema.json +160 -0
- package/src/wizards/05-ship/document-project/templates/source-tree-template.md +135 -0
- package/src/wizards/05-ship/document-project/wizard.md +130 -0
- package/src/wizards/quick/quick-dev/steps/step-01-mode-detection.md +174 -0
- package/src/wizards/quick/quick-dev/steps/step-02-context-gathering.md +118 -0
- package/src/wizards/quick/quick-dev/steps/step-03-execute.md +111 -0
- package/src/wizards/quick/quick-dev/steps/step-04-self-check.md +111 -0
- package/src/wizards/quick/quick-dev/steps/step-05-adversarial-review.md +104 -0
- package/src/wizards/quick/quick-dev/steps/step-06-resolve-findings.md +146 -0
- package/src/wizards/quick/quick-dev/wizard.md +50 -0
- package/src/wizards/quick/quick-spec/steps/step-01-understand.md +189 -0
- package/src/wizards/quick/quick-spec/steps/step-02-investigate.md +143 -0
- package/src/wizards/quick/quick-spec/steps/step-03-generate.md +126 -0
- package/src/wizards/quick/quick-spec/steps/step-04-review.md +200 -0
- package/src/wizards/quick/quick-spec/templates/tech-spec-template.md +74 -0
- package/src/wizards/quick/quick-spec/wizard.md +79 -0
- package/src/wizards/special/brainstorming/methods/brain-methods.csv +62 -0
- package/src/wizards/special/brainstorming/steps/step-01-session-setup.md +197 -0
- package/src/wizards/special/brainstorming/steps/step-01b-continue.md +122 -0
- package/src/wizards/special/brainstorming/steps/step-02a-user-selected.md +225 -0
- package/src/wizards/special/brainstorming/steps/step-02b-ai-recommended.md +237 -0
- package/src/wizards/special/brainstorming/steps/step-02c-random-selection.md +209 -0
- package/src/wizards/special/brainstorming/steps/step-02d-progressive-flow.md +264 -0
- package/src/wizards/special/brainstorming/steps/step-03-technique-execution.md +399 -0
- package/src/wizards/special/brainstorming/steps/step-04-idea-organization.md +303 -0
- package/src/wizards/special/brainstorming/wizard.md +58 -0
- package/src/wizards/special/party-mode/steps/step-01-agent-loading.md +138 -0
- package/src/wizards/special/party-mode/steps/step-02-discussion-orchestration.md +187 -0
- package/src/wizards/special/party-mode/steps/step-03-graceful-exit.md +168 -0
- package/src/wizards/special/party-mode/wizard.md +194 -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/build-docs.mjs +463 -0
- package/tools/cli/README.md +60 -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/mdan-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/cli/mdan-cli.js +106 -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/mdan-npx-wrapper.js +38 -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/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
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# MDAN CLI Tool
|
|
2
|
+
|
|
3
|
+
## Installing external repo MDAN official modules
|
|
4
|
+
|
|
5
|
+
For external official modules to be discoverable during install, ensure an entry for the external repo is added to external-official-modules.yaml.
|
|
6
|
+
|
|
7
|
+
For community modules - this will be handled in a different way. This file is only for registration of modules under the mdan-code-org.
|
|
8
|
+
|
|
9
|
+
## Post-Install Notes
|
|
10
|
+
|
|
11
|
+
Modules can display setup guidance to users after configuration is collected during `npx mdan install`. Notes are defined in the module's own `module.yaml` — no changes to the installer are needed.
|
|
12
|
+
|
|
13
|
+
### Simple Format
|
|
14
|
+
|
|
15
|
+
Always displayed after the module is configured:
|
|
16
|
+
|
|
17
|
+
```yaml
|
|
18
|
+
post-install-notes: |
|
|
19
|
+
Thank you for choosing the XYZ Cool Module
|
|
20
|
+
For Support about this Module call 555-1212
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Conditional Format
|
|
24
|
+
|
|
25
|
+
Display different messages based on a config question's answer:
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
post-install-notes:
|
|
29
|
+
config_key_name:
|
|
30
|
+
value1: |
|
|
31
|
+
Instructions for value1...
|
|
32
|
+
value2: |
|
|
33
|
+
Instructions for value2...
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Values without an entry (e.g., `none`) display nothing. Multiple config keys can each have their own conditional notes.
|
|
37
|
+
|
|
38
|
+
### Example: TEA Module
|
|
39
|
+
|
|
40
|
+
The TEA module uses the conditional format keyed on `tea_browser_automation`:
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
post-install-notes:
|
|
44
|
+
tea_browser_automation:
|
|
45
|
+
cli: |
|
|
46
|
+
Playwright CLI Setup:
|
|
47
|
+
npm install -g @playwright/cli@latest
|
|
48
|
+
playwright-cli install --skills
|
|
49
|
+
mcp: |
|
|
50
|
+
Playwright MCP Setup (two servers):
|
|
51
|
+
1. playwright — npx @playwright/mcp@latest
|
|
52
|
+
2. playwright-test — npx playwright run-test-mcp-server
|
|
53
|
+
auto: |
|
|
54
|
+
Playwright CLI Setup:
|
|
55
|
+
...
|
|
56
|
+
Playwright MCP Setup (two servers):
|
|
57
|
+
...
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
When a user selects `auto`, they see both CLI and MCP instructions. When they select `none`, nothing is shown.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const prompts = require('../lib/prompts');
|
|
3
|
+
const { Installer } = require('../installers/lib/core/installer');
|
|
4
|
+
const { UI } = require('../lib/ui');
|
|
5
|
+
|
|
6
|
+
const installer = new Installer();
|
|
7
|
+
const ui = new UI();
|
|
8
|
+
|
|
9
|
+
module.exports = {
|
|
10
|
+
command: 'install',
|
|
11
|
+
description: 'Install MDAN Core agents and tools',
|
|
12
|
+
options: [
|
|
13
|
+
['-d, --debug', 'Enable debug output for manifest generation'],
|
|
14
|
+
['--directory <path>', 'Installation directory (default: current directory)'],
|
|
15
|
+
['--modules <modules>', 'Comma-separated list of module IDs to install (e.g., "bmm,bmb")'],
|
|
16
|
+
[
|
|
17
|
+
'--tools <tools>',
|
|
18
|
+
'Comma-separated list of tool/IDE IDs to configure (e.g., "claude-code,cursor"). Use "none" to skip tool configuration.',
|
|
19
|
+
],
|
|
20
|
+
['--custom-content <paths>', 'Comma-separated list of paths to custom modules/agents/workflows'],
|
|
21
|
+
['--action <type>', 'Action type for existing installations: install, update, quick-update, or compile-agents'],
|
|
22
|
+
['--user-name <name>', 'Name for agents to use (default: system username)'],
|
|
23
|
+
['--communication-language <lang>', 'Language for agent communication (default: English)'],
|
|
24
|
+
['--document-output-language <lang>', 'Language for document output (default: English)'],
|
|
25
|
+
['--output-folder <path>', 'Output folder path relative to project root (default: _mdan-output)'],
|
|
26
|
+
['-y, --yes', 'Accept all defaults and skip prompts where possible'],
|
|
27
|
+
],
|
|
28
|
+
action: async (options) => {
|
|
29
|
+
try {
|
|
30
|
+
// Set debug flag as environment variable for all components
|
|
31
|
+
if (options.debug) {
|
|
32
|
+
process.env.MDAN_DEBUG_MANIFEST = 'true';
|
|
33
|
+
await prompts.log.info('Debug mode enabled');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const config = await ui.promptInstall(options);
|
|
37
|
+
|
|
38
|
+
// Handle cancel
|
|
39
|
+
if (config.actionType === 'cancel') {
|
|
40
|
+
await prompts.log.warn('Installation cancelled.');
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Handle quick update separately
|
|
45
|
+
if (config.actionType === 'quick-update') {
|
|
46
|
+
const result = await installer.quickUpdate(config);
|
|
47
|
+
await prompts.log.success('Quick update complete!');
|
|
48
|
+
await prompts.log.info(`Updated ${result.moduleCount} modules with preserved settings (${result.modules.join(', ')})`);
|
|
49
|
+
process.exit(0);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Handle compile agents separately
|
|
53
|
+
if (config.actionType === 'compile-agents') {
|
|
54
|
+
const result = await installer.compileAgents(config);
|
|
55
|
+
await prompts.log.info(`Recompiled ${result.agentCount} agents with customizations applied`);
|
|
56
|
+
process.exit(0);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Regular install/update flow
|
|
60
|
+
const result = await installer.install(config);
|
|
61
|
+
|
|
62
|
+
// Check if installation was cancelled
|
|
63
|
+
if (result && result.cancelled) {
|
|
64
|
+
process.exit(0);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Check if installation succeeded
|
|
68
|
+
if (result && result.success) {
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
} catch (error) {
|
|
72
|
+
try {
|
|
73
|
+
if (error.fullMessage) {
|
|
74
|
+
await prompts.log.error(error.fullMessage);
|
|
75
|
+
} else {
|
|
76
|
+
await prompts.log.error(`Installation failed: ${error.message}`);
|
|
77
|
+
}
|
|
78
|
+
if (error.stack) {
|
|
79
|
+
await prompts.log.message(error.stack);
|
|
80
|
+
}
|
|
81
|
+
} catch {
|
|
82
|
+
console.error(error.fullMessage || error.message || error);
|
|
83
|
+
}
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const prompts = require('../lib/prompts');
|
|
3
|
+
const { Installer } = require('../installers/lib/core/installer');
|
|
4
|
+
const { Manifest } = require('../installers/lib/core/manifest');
|
|
5
|
+
const { UI } = require('../lib/ui');
|
|
6
|
+
|
|
7
|
+
const installer = new Installer();
|
|
8
|
+
const manifest = new Manifest();
|
|
9
|
+
const ui = new UI();
|
|
10
|
+
|
|
11
|
+
module.exports = {
|
|
12
|
+
command: 'status',
|
|
13
|
+
description: 'Display MDAN installation status and module versions',
|
|
14
|
+
options: [],
|
|
15
|
+
action: async (options) => {
|
|
16
|
+
try {
|
|
17
|
+
// Find the mdan directory
|
|
18
|
+
const projectDir = process.cwd();
|
|
19
|
+
const { mdanDir } = await installer.findMdanDir(projectDir);
|
|
20
|
+
|
|
21
|
+
// Check if mdan directory exists
|
|
22
|
+
const fs = require('fs-extra');
|
|
23
|
+
if (!(await fs.pathExists(mdanDir))) {
|
|
24
|
+
await prompts.log.warn('No MDAN installation found in the current directory.');
|
|
25
|
+
await prompts.log.message(`Expected location: ${mdanDir}`);
|
|
26
|
+
await prompts.log.message('Run "mdan install" to set up a new installation.');
|
|
27
|
+
process.exit(0);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Read manifest
|
|
32
|
+
const manifestData = await manifest._readRaw(mdanDir);
|
|
33
|
+
|
|
34
|
+
if (!manifestData) {
|
|
35
|
+
await prompts.log.warn('No MDAN installation manifest found.');
|
|
36
|
+
await prompts.log.message('Run "mdan install" to set up a new installation.');
|
|
37
|
+
process.exit(0);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Get installation info
|
|
42
|
+
const installation = manifestData.installation || {};
|
|
43
|
+
const modules = manifestData.modules || [];
|
|
44
|
+
|
|
45
|
+
// Check for available updates (only for external modules)
|
|
46
|
+
const availableUpdates = await manifest.checkForUpdates(mdanDir);
|
|
47
|
+
|
|
48
|
+
// Display status
|
|
49
|
+
await ui.displayStatus({
|
|
50
|
+
installation,
|
|
51
|
+
modules,
|
|
52
|
+
availableUpdates,
|
|
53
|
+
mdanDir,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
process.exit(0);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
await prompts.log.error(`Status check failed: ${error.message}`);
|
|
59
|
+
if (process.env.MDAN_DEBUG) {
|
|
60
|
+
await prompts.log.message(error.stack);
|
|
61
|
+
}
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
};
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
3
|
+
const prompts = require('../lib/prompts');
|
|
4
|
+
const { Installer } = require('../installers/lib/core/installer');
|
|
5
|
+
|
|
6
|
+
const installer = new Installer();
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
command: 'uninstall',
|
|
10
|
+
description: 'Remove MDAN installation from the current project',
|
|
11
|
+
options: [
|
|
12
|
+
['-y, --yes', 'Remove all MDAN components without prompting (preserves user artifacts)'],
|
|
13
|
+
['--directory <path>', 'Project directory (default: current directory)'],
|
|
14
|
+
],
|
|
15
|
+
action: async (options) => {
|
|
16
|
+
try {
|
|
17
|
+
let projectDir;
|
|
18
|
+
|
|
19
|
+
if (options.directory) {
|
|
20
|
+
// Explicit --directory flag takes precedence
|
|
21
|
+
projectDir = path.resolve(options.directory);
|
|
22
|
+
} else if (options.yes) {
|
|
23
|
+
// Non-interactive mode: use current directory
|
|
24
|
+
projectDir = process.cwd();
|
|
25
|
+
} else {
|
|
26
|
+
// Interactive: ask user which directory to uninstall from
|
|
27
|
+
// select() handles cancellation internally (exits process)
|
|
28
|
+
const dirChoice = await prompts.select({
|
|
29
|
+
message: 'Where do you want to uninstall MDAN from?',
|
|
30
|
+
choices: [
|
|
31
|
+
{ value: 'cwd', name: `Current directory (${process.cwd()})` },
|
|
32
|
+
{ value: 'other', name: 'Another directory...' },
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
if (dirChoice === 'other') {
|
|
37
|
+
// text() handles cancellation internally (exits process)
|
|
38
|
+
const customDir = await prompts.text({
|
|
39
|
+
message: 'Enter the project directory path:',
|
|
40
|
+
placeholder: process.cwd(),
|
|
41
|
+
validate: (value) => {
|
|
42
|
+
if (!value || value.trim().length === 0) return 'Directory path is required';
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
projectDir = path.resolve(customDir.trim());
|
|
47
|
+
} else {
|
|
48
|
+
projectDir = process.cwd();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
if (!(await fs.pathExists(projectDir))) {
|
|
53
|
+
await prompts.log.error(`Directory does not exist: ${projectDir}`);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const { mdanDir } = await installer.findMdanDir(projectDir);
|
|
58
|
+
|
|
59
|
+
if (!(await fs.pathExists(mdanDir))) {
|
|
60
|
+
await prompts.log.warn('No MDAN installation found.');
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const existingInstall = await installer.getStatus(projectDir);
|
|
65
|
+
const version = existingInstall.version || 'unknown';
|
|
66
|
+
const modules = (existingInstall.modules || []).map((m) => m.id || m.name).join(', ');
|
|
67
|
+
const ides = (existingInstall.ides || []).join(', ');
|
|
68
|
+
|
|
69
|
+
const outputFolder = await installer.getOutputFolder(projectDir);
|
|
70
|
+
|
|
71
|
+
await prompts.intro('MDAN Uninstall');
|
|
72
|
+
await prompts.note(`Version: ${version}\nModules: ${modules}\nIDE integrations: ${ides}`, 'Current Installation');
|
|
73
|
+
|
|
74
|
+
let removeModules = true;
|
|
75
|
+
let removeIdeConfigs = true;
|
|
76
|
+
let removeOutputFolder = false;
|
|
77
|
+
|
|
78
|
+
if (!options.yes) {
|
|
79
|
+
// multiselect() handles cancellation internally (exits process)
|
|
80
|
+
const selected = await prompts.multiselect({
|
|
81
|
+
message: 'Select components to remove:',
|
|
82
|
+
options: [
|
|
83
|
+
{
|
|
84
|
+
value: 'modules',
|
|
85
|
+
label: `MDAN Modules & data (${installer.mdanFolderName}/)`,
|
|
86
|
+
hint: 'Core installation, agents, workflows, config',
|
|
87
|
+
},
|
|
88
|
+
{ value: 'ide', label: 'IDE integrations', hint: ides || 'No IDEs configured' },
|
|
89
|
+
{ value: 'output', label: `User artifacts (${outputFolder}/)`, hint: 'WARNING: Contains your work products' },
|
|
90
|
+
],
|
|
91
|
+
initialValues: ['modules', 'ide'],
|
|
92
|
+
required: true,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
removeModules = selected.includes('modules');
|
|
96
|
+
removeIdeConfigs = selected.includes('ide');
|
|
97
|
+
removeOutputFolder = selected.includes('output');
|
|
98
|
+
|
|
99
|
+
const red = (s) => `\u001B[31m${s}\u001B[0m`;
|
|
100
|
+
await prompts.note(
|
|
101
|
+
red('💀 This action is IRREVERSIBLE! Removed files cannot be recovered!') +
|
|
102
|
+
'\n' +
|
|
103
|
+
red('💀 IDE configurations and modules will need to be reinstalled.') +
|
|
104
|
+
'\n' +
|
|
105
|
+
red('💀 User artifacts are preserved unless explicitly selected.'),
|
|
106
|
+
'!! DESTRUCTIVE ACTION !!',
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const confirmed = await prompts.confirm({
|
|
110
|
+
message: 'Proceed with uninstall?',
|
|
111
|
+
default: false,
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
if (!confirmed) {
|
|
115
|
+
await prompts.outro('Uninstall cancelled.');
|
|
116
|
+
process.exit(0);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Phase 1: IDE integrations
|
|
121
|
+
if (removeIdeConfigs) {
|
|
122
|
+
const s = await prompts.spinner();
|
|
123
|
+
s.start('Removing IDE integrations...');
|
|
124
|
+
await installer.uninstallIdeConfigs(projectDir, existingInstall, { silent: true });
|
|
125
|
+
s.stop(`Removed IDE integrations (${ides || 'none'})`);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Phase 2: User artifacts
|
|
129
|
+
if (removeOutputFolder) {
|
|
130
|
+
const s = await prompts.spinner();
|
|
131
|
+
s.start(`Removing user artifacts (${outputFolder}/)...`);
|
|
132
|
+
await installer.uninstallOutputFolder(projectDir, outputFolder);
|
|
133
|
+
s.stop('User artifacts removed');
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Phase 3: MDAN modules & data (last — other phases may need _.mdan/)
|
|
137
|
+
if (removeModules) {
|
|
138
|
+
const s = await prompts.spinner();
|
|
139
|
+
s.start(`Removing MDAN modules & data (${installer.mdanFolderName}/)...`);
|
|
140
|
+
await installer.uninstallModules(projectDir);
|
|
141
|
+
s.stop('Modules & data removed');
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
const summary = [];
|
|
145
|
+
if (removeIdeConfigs) summary.push('IDE integrations cleaned');
|
|
146
|
+
if (removeModules) summary.push('Modules & data removed');
|
|
147
|
+
if (removeOutputFolder) summary.push('User artifacts removed');
|
|
148
|
+
if (!removeOutputFolder) summary.push(`User artifacts preserved in ${outputFolder}/`);
|
|
149
|
+
|
|
150
|
+
await prompts.note(summary.join('\n'), 'Summary');
|
|
151
|
+
await prompts.outro('To reinstall, run: npx mdan install');
|
|
152
|
+
|
|
153
|
+
process.exit(0);
|
|
154
|
+
} catch (error) {
|
|
155
|
+
try {
|
|
156
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
157
|
+
await prompts.log.error(`Uninstall failed: ${errorMessage}`);
|
|
158
|
+
if (error instanceof Error && error.stack) {
|
|
159
|
+
await prompts.log.message(error.stack);
|
|
160
|
+
}
|
|
161
|
+
} catch {
|
|
162
|
+
console.error(error instanceof Error ? error.message : error);
|
|
163
|
+
}
|
|
164
|
+
process.exit(1);
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# This file allows these modules under mdan-code-org to also be installed with the mdan method installer, while
|
|
2
|
+
# allowing us to keep the source of these projects in separate repos.
|
|
3
|
+
|
|
4
|
+
modules:
|
|
5
|
+
mdan-builder:
|
|
6
|
+
url: https://github.com/mdan-code-org/mdan-builder
|
|
7
|
+
module-definition: src/module.yaml
|
|
8
|
+
code: bmb
|
|
9
|
+
name: "MDAN Builder"
|
|
10
|
+
description: "Agent, Workflow and Module Builder"
|
|
11
|
+
defaultSelected: false
|
|
12
|
+
type: mdan-org
|
|
13
|
+
npmPackage: mdan-builder
|
|
14
|
+
|
|
15
|
+
mdan-creative-intelligence-suite:
|
|
16
|
+
url: https://github.com/mdan-code-org/mdan-module-creative-intelligence-suite
|
|
17
|
+
module-definition: src/module.yaml
|
|
18
|
+
code: cis
|
|
19
|
+
name: "MDAN Creative Intelligence Suite"
|
|
20
|
+
description: "Creative tools for writing, brainstorming, and more"
|
|
21
|
+
defaultSelected: false
|
|
22
|
+
type: mdan-org
|
|
23
|
+
npmPackage: mdan-creative-intelligence-suite
|
|
24
|
+
|
|
25
|
+
mdan-game-dev-studio:
|
|
26
|
+
url: https://github.com/mdan-code-org/mdan-module-game-dev-studio.git
|
|
27
|
+
module-definition: src/module.yaml
|
|
28
|
+
code: gds
|
|
29
|
+
name: "MDAN Game Dev Studio"
|
|
30
|
+
description: "Game development agents and workflows"
|
|
31
|
+
defaultSelected: false
|
|
32
|
+
type: mdan-org
|
|
33
|
+
npmPackage: mdan-game-dev-studio
|
|
34
|
+
|
|
35
|
+
mdan-test-architecture-enterprise:
|
|
36
|
+
url: https://github.com/mdan-code-org/mdan-test-architecture-enterprise
|
|
37
|
+
module-definition: src/module.yaml
|
|
38
|
+
code: tea
|
|
39
|
+
name: "Test Architect"
|
|
40
|
+
description: "Master Test Architect for quality strategy, test automation, and release gates"
|
|
41
|
+
defaultSelected: false
|
|
42
|
+
type: mdan-org
|
|
43
|
+
npmPackage: mdan-test-architecture-enterprise
|
|
44
|
+
|
|
45
|
+
# whiteport-design-system:
|
|
46
|
+
# url: https://github.com/mdan-code-org/mdan-wds-expansion
|
|
47
|
+
# module-definition: src/module.yaml
|
|
48
|
+
# code: wds
|
|
49
|
+
# name: "Whiteport UX Design System"
|
|
50
|
+
# description: "UX design framework with Figma integration"
|
|
51
|
+
# defaultSelected: false
|
|
52
|
+
# type: community
|
|
53
|
+
# npmPackage: mdan-wds-expansion
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# MDAN Installer Messages
|
|
2
|
+
# These messages are displayed during installation
|
|
3
|
+
# Edit this file to change what users see during the install process
|
|
4
|
+
|
|
5
|
+
# Display at the START of installation (after logo, before prompts)
|
|
6
|
+
startMessage: |
|
|
7
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
8
|
+
|
|
9
|
+
🎉 V6 IS HERE! Welcome to MDAN Method V6 - Official Stable Release!
|
|
10
|
+
|
|
11
|
+
The MDAN Method is now a Platform powered by the MDAN Method Core and Module Ecosystem!
|
|
12
|
+
- Select and install modules during setup - customize your experience
|
|
13
|
+
- New MDAN Method for Agile AI-Driven Development (the evolution of V4)
|
|
14
|
+
- Exciting new modules available during installation, with community modules coming soon
|
|
15
|
+
- Documentation: https://docs.mdan.org
|
|
16
|
+
|
|
17
|
+
🌟 MDAN is 100% free and open source.
|
|
18
|
+
- No gated Discord. No paywalls. No gated content.
|
|
19
|
+
- We believe in empowering everyone, not just those who can pay.
|
|
20
|
+
- Knowledge should be shared, not sold.
|
|
21
|
+
|
|
22
|
+
🎤 SPEAKING & MEDIA:
|
|
23
|
+
- Available for conferences, podcasts, and media appearances
|
|
24
|
+
- Topics: AI-Native Transformation, Spec and Context Engineering, MDAN Method
|
|
25
|
+
- For speaking inquiries or interviews, reach out to MDAN on Discord!
|
|
26
|
+
|
|
27
|
+
⭐ HELP US GROW:
|
|
28
|
+
- Star us on GitHub: https://github.com/mdan-code-org/MDAN/
|
|
29
|
+
- Subscribe on YouTube: https://www.youtube.com/@MDANCode
|
|
30
|
+
- Free Community and Support: https://discord.gg/gk8jAdXWmj
|
|
31
|
+
- Donate: https://buymeacoffee.com/mdan
|
|
32
|
+
- Corporate Sponsorship available
|
|
33
|
+
|
|
34
|
+
Latest updates: https://github.com/mdan-code-org/MDAN/blob/main/CHANGELOG.md
|
|
35
|
+
|
|
36
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
37
|
+
|
|
38
|
+
# No end message - install summary and next steps are rendered by the installer
|
|
39
|
+
endMessage: ""
|