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.
Files changed (612) hide show
  1. package/.mdan/config/config.yaml +36 -0
  2. package/.mdan/state/MDAN-STATE.template.json +39 -0
  3. package/AGENTS.md +308 -0
  4. package/AGENTS_LIST.md +946 -0
  5. package/ARCHITECTURE.md +590 -0
  6. package/CHANGELOG.md +1770 -0
  7. package/CONTRIBUTING.md +512 -0
  8. package/INSTALL.md +246 -0
  9. package/LICENSE +30 -0
  10. package/MDAN.fr.md +259 -0
  11. package/README.md +233 -0
  12. package/SECURITY.md +85 -0
  13. package/USAGE.md +368 -0
  14. package/app/__init__.py +5 -0
  15. package/app/cis/agents/__init__.py +31 -0
  16. package/app/cis/agents/brainstorming-coach/__init__.py +3 -0
  17. package/app/cis/agents/brainstorming-coach/agent.py +162 -0
  18. package/app/cis/agents/brainstorming-coach/prompt.yaml +53 -0
  19. package/app/cis/agents/creative-problem-solver/__init__.py +3 -0
  20. package/app/cis/agents/creative-problem-solver/agent.py +233 -0
  21. package/app/cis/agents/creative-problem-solver/prompt.yaml +74 -0
  22. package/app/cis/agents/design-thinking-coach/__init__.py +3 -0
  23. package/app/cis/agents/design-thinking-coach/agent.py +241 -0
  24. package/app/cis/agents/design-thinking-coach/prompt.yaml +77 -0
  25. package/app/cis/agents/innovation-strategist/__init__.py +3 -0
  26. package/app/cis/agents/innovation-strategist/agent.py +271 -0
  27. package/app/cis/agents/innovation-strategist/prompt.yaml +70 -0
  28. package/app/cis/agents/presentation-master/__init__.py +3 -0
  29. package/app/cis/agents/presentation-master/agent.py +420 -0
  30. package/app/cis/agents/presentation-master/prompt.yaml +62 -0
  31. package/app/cis/agents/storyteller/__init__.py +3 -0
  32. package/app/cis/agents/storyteller/agent.py +303 -0
  33. package/app/cis/agents/storyteller/prompt.yaml +99 -0
  34. package/app/core/__init__.py +5 -0
  35. package/app/core/agents/__init__.py +5 -0
  36. package/app/core/agents/mdan-master/__init__.py +7 -0
  37. package/app/core/agents/mdan-master/agent.py +302 -0
  38. package/app/core/agents/mdan-master/prompt.yaml +105 -0
  39. package/app/mmb/agents/__init__.py +24 -0
  40. package/app/mmb/agents/agent-builder/__init__.py +5 -0
  41. package/app/mmb/agents/agent-builder/agent.py +261 -0
  42. package/app/mmb/agents/agent-builder/prompt.yaml +48 -0
  43. package/app/mmb/agents/module-builder/__init__.py +5 -0
  44. package/app/mmb/agents/module-builder/agent.py +299 -0
  45. package/app/mmb/agents/module-builder/prompt.yaml +50 -0
  46. package/app/mmb/agents/workflow-builder/__init__.py +5 -0
  47. package/app/mmb/agents/workflow-builder/agent.py +318 -0
  48. package/app/mmb/agents/workflow-builder/prompt.yaml +52 -0
  49. package/app/mmm/agents/__init__.py +48 -0
  50. package/app/mmm/agents/analyst/__init__.py +7 -0
  51. package/app/mmm/agents/analyst/agent.py +384 -0
  52. package/app/mmm/agents/analyst/prompt.yaml +62 -0
  53. package/app/mmm/agents/architect/__init__.py +7 -0
  54. package/app/mmm/agents/architect/agent.py +300 -0
  55. package/app/mmm/agents/architect/prompt.yaml +66 -0
  56. package/app/mmm/agents/dev/__init__.py +7 -0
  57. package/app/mmm/agents/dev/agent.py +285 -0
  58. package/app/mmm/agents/dev/prompt.yaml +62 -0
  59. package/app/mmm/agents/pm/__init__.py +7 -0
  60. package/app/mmm/agents/pm/agent.py +417 -0
  61. package/app/mmm/agents/pm/prompt.yaml +64 -0
  62. package/app/mmm/agents/qa/__init__.py +7 -0
  63. package/app/mmm/agents/qa/agent.py +267 -0
  64. package/app/mmm/agents/qa/prompt.yaml +67 -0
  65. package/app/mmm/agents/quick-flow-solo-dev/__init__.py +7 -0
  66. package/app/mmm/agents/quick-flow-solo-dev/agent.py +319 -0
  67. package/app/mmm/agents/quick-flow-solo-dev/prompt.yaml +60 -0
  68. package/app/mmm/agents/sm/__init__.py +7 -0
  69. package/app/mmm/agents/sm/agent.py +357 -0
  70. package/app/mmm/agents/sm/prompt.yaml +61 -0
  71. package/app/mmm/agents/tech-writer/__init__.py +7 -0
  72. package/app/mmm/agents/tech-writer/agent.py +420 -0
  73. package/app/mmm/agents/tech-writer/prompt.yaml +70 -0
  74. package/app/mmm/agents/ux-designer/__init__.py +14 -0
  75. package/app/mmm/agents/ux-designer/agent.py +412 -0
  76. package/app/mmm/agents/ux-designer/prompt.yaml +37 -0
  77. package/app/packs/__init__.py +32 -0
  78. package/app/packs/db-optimization/__init__.py +13 -0
  79. package/app/packs/db-optimization/agents/__init__.py +11 -0
  80. package/app/packs/db-optimization/agents/db-performance-analyst/__init__.py +5 -0
  81. package/app/packs/db-optimization/agents/db-performance-analyst/agent.py +559 -0
  82. package/app/packs/db-optimization/agents/db-performance-analyst/prompt.yaml +63 -0
  83. package/app/packs/db-optimization/agents/indexing-specialist/__init__.py +5 -0
  84. package/app/packs/db-optimization/agents/indexing-specialist/agent.py +713 -0
  85. package/app/packs/db-optimization/agents/indexing-specialist/prompt.yaml +92 -0
  86. package/app/packs/db-optimization/agents/query-optimizer/__init__.py +5 -0
  87. package/app/packs/db-optimization/agents/query-optimizer/agent.py +566 -0
  88. package/app/packs/db-optimization/agents/query-optimizer/prompt.yaml +74 -0
  89. package/app/packs/devops-azure/__init__.py +13 -0
  90. package/app/packs/devops-azure/agents/__init__.py +11 -0
  91. package/app/packs/devops-azure/agents/azure-specialist/__init__.py +5 -0
  92. package/app/packs/devops-azure/agents/azure-specialist/agent.py +584 -0
  93. package/app/packs/devops-azure/agents/azure-specialist/prompt.yaml +301 -0
  94. package/app/packs/devops-azure/agents/cicd-architect/__init__.py +5 -0
  95. package/app/packs/devops-azure/agents/cicd-architect/agent.py +665 -0
  96. package/app/packs/devops-azure/agents/cicd-architect/prompt.yaml +409 -0
  97. package/app/packs/devops-azure/agents/devops-engineer/__init__.py +5 -0
  98. package/app/packs/devops-azure/agents/devops-engineer/agent.py +545 -0
  99. package/app/packs/devops-azure/agents/devops-engineer/prompt.yaml +263 -0
  100. package/app/packs/fintech/__init__.py +13 -0
  101. package/app/packs/fintech/agents/__init__.py +11 -0
  102. package/app/packs/fintech/agents/compliance-officer/__init__.py +5 -0
  103. package/app/packs/fintech/agents/compliance-officer/agent.py +449 -0
  104. package/app/packs/fintech/agents/compliance-officer/prompt.yaml +135 -0
  105. package/app/packs/fintech/agents/financial-analyst/__init__.py +5 -0
  106. package/app/packs/fintech/agents/financial-analyst/agent.py +392 -0
  107. package/app/packs/fintech/agents/financial-analyst/prompt.yaml +143 -0
  108. package/app/packs/fintech/agents/risk-manager/__init__.py +5 -0
  109. package/app/packs/fintech/agents/risk-manager/agent.py +664 -0
  110. package/app/packs/fintech/agents/risk-manager/prompt.yaml +240 -0
  111. package/app/tea/agents/tea/__init__.py +9 -0
  112. package/app/tea/agents/tea/agent.py +689 -0
  113. package/app/tea/agents/tea/prompt.yaml +100 -0
  114. package/cli/v1/mdan.py +421 -0
  115. package/cli/v1/mdan.sh +724 -0
  116. package/cli/v1/mdan_crewai.py +539 -0
  117. package/docs/404.md +9 -0
  118. package/docs/_STYLE_GUIDE.md +370 -0
  119. package/docs/explanation/advanced-elicitation.md +49 -0
  120. package/docs/explanation/adversarial-review.md +59 -0
  121. package/docs/explanation/brainstorming.md +33 -0
  122. package/docs/explanation/established-projects-faq.md +50 -0
  123. package/docs/explanation/party-mode.md +59 -0
  124. package/docs/explanation/preventing-agent-conflicts.md +112 -0
  125. package/docs/explanation/project-context.md +157 -0
  126. package/docs/explanation/quick-flow.md +73 -0
  127. package/docs/explanation/why-solutioning-matters.md +77 -0
  128. package/docs/how-to/customize-mdan.md +172 -0
  129. package/docs/how-to/established-projects.md +117 -0
  130. package/docs/how-to/get-answers-about-mdan.md +134 -0
  131. package/docs/how-to/install-mdan.md +97 -0
  132. package/docs/how-to/non-interactive-installation.md +171 -0
  133. package/docs/how-to/project-context.md +136 -0
  134. package/docs/how-to/quick-fixes.md +123 -0
  135. package/docs/how-to/shard-large-documents.md +78 -0
  136. package/docs/how-to/upgrade-to-v6.md +97 -0
  137. package/docs/index.md +59 -0
  138. package/docs/reference/agents.md +28 -0
  139. package/docs/reference/commands.md +151 -0
  140. package/docs/reference/modules.md +76 -0
  141. package/docs/reference/testing.md +106 -0
  142. package/docs/reference/workflow-map.md +89 -0
  143. package/docs/roadmap.mdx +136 -0
  144. package/docs/tutorials/getting-started.md +286 -0
  145. package/examples/crewai/crewai_auto_mode.py +62 -0
  146. package/examples/crewai/crewai_custom_crew.py +85 -0
  147. package/examples/crewai/crewai_debate.py +57 -0
  148. package/examples/crewai/crewai_with_serper.py +82 -0
  149. package/examples/crewai/crewai_with_sql.py +117 -0
  150. package/integrations/__init__.py +33 -0
  151. package/integrations/crewai/__init__.py +27 -0
  152. package/integrations/crewai/agents/__init__.py +21 -0
  153. package/integrations/crewai/agents/architect_agent.py +264 -0
  154. package/integrations/crewai/agents/dev_agent.py +271 -0
  155. package/integrations/crewai/agents/devops_agent.py +421 -0
  156. package/integrations/crewai/agents/doc_agent.py +388 -0
  157. package/integrations/crewai/agents/product_agent.py +203 -0
  158. package/integrations/crewai/agents/security_agent.py +386 -0
  159. package/integrations/crewai/agents/test_agent.py +358 -0
  160. package/integrations/crewai/agents/ux_agent.py +257 -0
  161. package/integrations/crewai/flows/__init__.py +13 -0
  162. package/integrations/crewai/flows/auto_flow.py +451 -0
  163. package/integrations/crewai/flows/build_flow.py +297 -0
  164. package/integrations/crewai/flows/debate_flow.py +422 -0
  165. package/integrations/crewai/flows/discovery_flow.py +267 -0
  166. package/integrations/crewai/orchestrator.py +558 -0
  167. package/integrations/crewai/skills/__init__.py +8 -0
  168. package/integrations/crewai/skills/skill_router.py +534 -0
  169. package/integrations/crewai/tools/__init__.py +11 -0
  170. package/integrations/crewai/tools/file_tool.py +355 -0
  171. package/integrations/crewai/tools/serper_tool.py +169 -0
  172. package/integrations/crewai/tools/sql_tool.py +435 -0
  173. package/integrations/docs/all-integrations.md +300 -0
  174. package/integrations/docs/cursor.md +74 -0
  175. package/integrations/docs/mcp.md +153 -0
  176. package/integrations/docs/windsurf.md +48 -0
  177. package/package.json +119 -0
  178. package/prompts/cis/brainstorming-coach.yaml +53 -0
  179. package/prompts/cis/creative-problem-solver.yaml +74 -0
  180. package/prompts/cis/design-thinking-coach.yaml +77 -0
  181. package/prompts/cis/innovation-strategist.yaml +70 -0
  182. package/prompts/cis/presentation-master.yaml +62 -0
  183. package/prompts/cis/storyteller.yaml +99 -0
  184. package/prompts/core/mdan-master.yaml +105 -0
  185. package/prompts/mmb/agent-builder.yaml +48 -0
  186. package/prompts/mmb/module-builder.yaml +50 -0
  187. package/prompts/mmb/workflow-builder.yaml +52 -0
  188. package/prompts/mmm/analyst.yaml +62 -0
  189. package/prompts/mmm/architect.yaml +66 -0
  190. package/prompts/mmm/dev.yaml +62 -0
  191. package/prompts/mmm/pm.yaml +64 -0
  192. package/prompts/mmm/qa.yaml +67 -0
  193. package/prompts/mmm/quick-flow-solo-dev.yaml +60 -0
  194. package/prompts/mmm/sm.yaml +61 -0
  195. package/prompts/mmm/tech-writer.yaml +70 -0
  196. package/prompts/mmm/ux-designer.yaml +33 -0
  197. package/prompts/packs/db-optimization/db-performance-analyst.yaml +63 -0
  198. package/prompts/packs/db-optimization/indexing-specialist.yaml +92 -0
  199. package/prompts/packs/db-optimization/query-optimizer.yaml +74 -0
  200. package/prompts/packs/devops-azure/azure-specialist.yaml +301 -0
  201. package/prompts/packs/devops-azure/cicd-architect.yaml +409 -0
  202. package/prompts/packs/devops-azure/devops-engineer.yaml +263 -0
  203. package/prompts/packs/fintech/compliance-officer.yaml +135 -0
  204. package/prompts/packs/fintech/financial-analyst.yaml +143 -0
  205. package/prompts/packs/fintech/risk-manager.yaml +240 -0
  206. package/prompts/tea/tea.yaml +100 -0
  207. package/requirements.txt +5 -0
  208. package/requirements_crewai.txt +37 -0
  209. package/src/agents/module-help.csv +31 -0
  210. package/src/agents/module.yaml +50 -0
  211. package/src/agents/team/analyst.agent.yaml +43 -0
  212. package/src/agents/team/architect.agent.yaml +29 -0
  213. package/src/agents/team/dev.agent.yaml +38 -0
  214. package/src/agents/team/pm.agent.yaml +44 -0
  215. package/src/agents/team/qa.agent.yaml +58 -0
  216. package/src/agents/team/quick-flow-solo-dev.agent.yaml +32 -0
  217. package/src/agents/team/sm.agent.yaml +37 -0
  218. package/src/agents/team/tech-writer/tech-writer-sidecar/documentation-standards.md +224 -0
  219. package/src/agents/team/tech-writer/tech-writer.agent.yaml +46 -0
  220. package/src/agents/team/ux-designer.agent.yaml +27 -0
  221. package/src/agents/teams/default-party.csv +20 -0
  222. package/src/agents/teams/team-fullstack.yaml +12 -0
  223. package/src/core/WIZARD-ENGINE.md +94 -0
  224. package/src/core/agents/mdan-master.agent.yaml +133 -0
  225. package/src/core/tasks/editorial-review-prose.xml +102 -0
  226. package/src/core/tasks/editorial-review-structure.xml +208 -0
  227. package/src/core/tasks/help.md +86 -0
  228. package/src/core/tasks/index-docs.xml +65 -0
  229. package/src/core/tasks/review-adversarial-general.xml +49 -0
  230. package/src/core/tasks/shard-doc.xml +108 -0
  231. package/src/core/tasks/workflow.xml +235 -0
  232. package/src/memory/MEMORY-AUTO.json +66 -0
  233. package/src/memory/MEMORY-SYSTEM.md +61 -0
  234. package/src/memory/v1-memory-system.md +197 -0
  235. package/src/memory/v1-resume-protocol.md +379 -0
  236. package/src/packs/db-optimization/agents/prompt.yaml +63 -0
  237. package/src/packs/devops-azure/agents/prompt.yaml +301 -0
  238. package/src/packs/fintech/agents/prompt.yaml +135 -0
  239. package/src/phases/auto/auto-01-load.md +165 -0
  240. package/src/phases/auto/auto-02-discover.md +207 -0
  241. package/src/phases/auto/auto-03-plan.md +509 -0
  242. package/src/phases/auto/auto-04-architect.md +567 -0
  243. package/src/phases/auto/auto-05-implement.md +713 -0
  244. package/src/phases/auto/auto-06-test.md +559 -0
  245. package/src/phases/auto/auto-07-deploy.md +510 -0
  246. package/src/phases/auto/auto-08-doc.md +970 -0
  247. package/src/phases/manual/01-discover.md +136 -0
  248. package/src/phases/manual/02-design.md +147 -0
  249. package/src/phases/manual/03-build.md +113 -0
  250. package/src/phases/manual/04-verify.md +107 -0
  251. package/src/phases/manual/05-ship.md +156 -0
  252. package/src/protocols/debate-protocol.md +58 -0
  253. package/src/protocols/universal-envelope.md +42 -0
  254. package/src/protocols/v1-debate-protocol.md +454 -0
  255. package/src/protocols/v1-universal-envelope.md +273 -0
  256. package/src/utility/agent-components/activation-rules.txt +6 -0
  257. package/src/utility/agent-components/activation-steps.txt +14 -0
  258. package/src/utility/agent-components/agent-command-header.md +1 -0
  259. package/src/utility/agent-components/agent.customize.template.yaml +41 -0
  260. package/src/utility/agent-components/handler-action.txt +4 -0
  261. package/src/utility/agent-components/handler-data.txt +5 -0
  262. package/src/utility/agent-components/handler-exec.txt +6 -0
  263. package/src/utility/agent-components/handler-multi.txt +14 -0
  264. package/src/utility/agent-components/handler-tmpl.txt +5 -0
  265. package/src/utility/agent-components/handler-validate-workflow.txt +7 -0
  266. package/src/utility/agent-components/handler-workflow.txt +10 -0
  267. package/src/utility/agent-components/menu-handlers.txt +6 -0
  268. package/src/wizards/01-discover/create-product-brief/steps/step-01-init.md +7 -0
  269. package/src/wizards/01-discover/create-product-brief/steps/step-02-vision.md +7 -0
  270. package/src/wizards/01-discover/create-product-brief/steps/step-03-users.md +7 -0
  271. package/src/wizards/01-discover/create-product-brief/steps/step-04-scope.md +7 -0
  272. package/src/wizards/01-discover/create-product-brief/steps/step-05-metrics.md +7 -0
  273. package/src/wizards/01-discover/create-product-brief/steps/step-06-complete.md +7 -0
  274. package/src/wizards/01-discover/create-product-brief/templates/product-brief.template.md +14 -0
  275. package/src/wizards/01-discover/create-product-brief/wizard.md +105 -0
  276. package/src/wizards/01-discover/research/domain-steps/step-01-init.md +137 -0
  277. package/src/wizards/01-discover/research/domain-steps/step-02-domain-analysis.md +229 -0
  278. package/src/wizards/01-discover/research/domain-steps/step-03-competitive-landscape.md +238 -0
  279. package/src/wizards/01-discover/research/domain-steps/step-04-regulatory-focus.md +206 -0
  280. package/src/wizards/01-discover/research/domain-steps/step-05-technical-trends.md +234 -0
  281. package/src/wizards/01-discover/research/domain-steps/step-06-research-synthesis.md +444 -0
  282. package/src/wizards/01-discover/research/market-steps/step-01-init.md +182 -0
  283. package/src/wizards/01-discover/research/market-steps/step-02-customer-behavior.md +237 -0
  284. package/src/wizards/01-discover/research/market-steps/step-03-customer-pain-points.md +249 -0
  285. package/src/wizards/01-discover/research/market-steps/step-04-customer-decisions.md +259 -0
  286. package/src/wizards/01-discover/research/market-steps/step-05-competitive-analysis.md +177 -0
  287. package/src/wizards/01-discover/research/market-steps/step-06-research-completion.md +476 -0
  288. package/src/wizards/01-discover/research/technical-steps/step-01-init.md +137 -0
  289. package/src/wizards/01-discover/research/technical-steps/step-02-technical-overview.md +239 -0
  290. package/src/wizards/01-discover/research/technical-steps/step-03-integration-patterns.md +248 -0
  291. package/src/wizards/01-discover/research/technical-steps/step-04-architectural-patterns.md +202 -0
  292. package/src/wizards/01-discover/research/technical-steps/step-05-implementation-research.md +233 -0
  293. package/src/wizards/01-discover/research/technical-steps/step-06-research-synthesis.md +487 -0
  294. package/src/wizards/01-discover/research/templates/research.template.md +29 -0
  295. package/src/wizards/01-discover/research/workflow-domain-research.md +54 -0
  296. package/src/wizards/01-discover/research/workflow-market-research.md +54 -0
  297. package/src/wizards/01-discover/research/workflow-technical-research.md +54 -0
  298. package/src/wizards/02-plan/create-prd/data/domain-complexity.csv +15 -0
  299. package/src/wizards/02-plan/create-prd/data/prd-purpose.md +197 -0
  300. package/src/wizards/02-plan/create-prd/data/project-types.csv +11 -0
  301. package/src/wizards/02-plan/create-prd/steps/step-01-init.md +191 -0
  302. package/src/wizards/02-plan/create-prd/steps/step-01b-continue.md +152 -0
  303. package/src/wizards/02-plan/create-prd/steps/step-02-discovery.md +224 -0
  304. package/src/wizards/02-plan/create-prd/steps/step-02b-vision.md +154 -0
  305. package/src/wizards/02-plan/create-prd/steps/step-02c-executive-summary.md +170 -0
  306. package/src/wizards/02-plan/create-prd/steps/step-03-success.md +226 -0
  307. package/src/wizards/02-plan/create-prd/steps/step-04-journeys.md +213 -0
  308. package/src/wizards/02-plan/create-prd/steps/step-05-domain.md +207 -0
  309. package/src/wizards/02-plan/create-prd/steps/step-06-innovation.md +226 -0
  310. package/src/wizards/02-plan/create-prd/steps/step-07-project-type.md +237 -0
  311. package/src/wizards/02-plan/create-prd/steps/step-08-scoping.md +228 -0
  312. package/src/wizards/02-plan/create-prd/steps/step-09-functional.md +231 -0
  313. package/src/wizards/02-plan/create-prd/steps/step-10-nonfunctional.md +242 -0
  314. package/src/wizards/02-plan/create-prd/steps/step-11-polish.md +217 -0
  315. package/src/wizards/02-plan/create-prd/steps/step-12-complete.md +124 -0
  316. package/src/wizards/02-plan/create-prd/templates/prd-template.md +10 -0
  317. package/src/wizards/02-plan/create-prd/wizard.md +63 -0
  318. package/src/wizards/02-plan/create-ux-design/steps/step-01-init.md +135 -0
  319. package/src/wizards/02-plan/create-ux-design/steps/step-01b-continue.md +127 -0
  320. package/src/wizards/02-plan/create-ux-design/steps/step-02-discovery.md +190 -0
  321. package/src/wizards/02-plan/create-ux-design/steps/step-03-core-experience.md +216 -0
  322. package/src/wizards/02-plan/create-ux-design/steps/step-04-emotional-response.md +219 -0
  323. package/src/wizards/02-plan/create-ux-design/steps/step-05-inspiration.md +234 -0
  324. package/src/wizards/02-plan/create-ux-design/steps/step-06-design-system.md +252 -0
  325. package/src/wizards/02-plan/create-ux-design/steps/step-07-defining-experience.md +254 -0
  326. package/src/wizards/02-plan/create-ux-design/steps/step-08-visual-foundation.md +224 -0
  327. package/src/wizards/02-plan/create-ux-design/steps/step-09-design-directions.md +224 -0
  328. package/src/wizards/02-plan/create-ux-design/steps/step-10-user-journeys.md +241 -0
  329. package/src/wizards/02-plan/create-ux-design/steps/step-11-component-strategy.md +248 -0
  330. package/src/wizards/02-plan/create-ux-design/steps/step-12-ux-patterns.md +237 -0
  331. package/src/wizards/02-plan/create-ux-design/steps/step-13-responsive-accessibility.md +264 -0
  332. package/src/wizards/02-plan/create-ux-design/steps/step-14-complete.md +171 -0
  333. package/src/wizards/02-plan/create-ux-design/templates/ux-design-template.md +13 -0
  334. package/src/wizards/02-plan/create-ux-design/wizard.md +42 -0
  335. package/src/wizards/03-architect/create-architecture/data/domain-complexity.csv +13 -0
  336. package/src/wizards/03-architect/create-architecture/data/project-types.csv +7 -0
  337. package/src/wizards/03-architect/create-architecture/steps/step-01-init.md +153 -0
  338. package/src/wizards/03-architect/create-architecture/steps/step-01b-continue.md +173 -0
  339. package/src/wizards/03-architect/create-architecture/steps/step-02-context.md +224 -0
  340. package/src/wizards/03-architect/create-architecture/steps/step-03-starter.md +329 -0
  341. package/src/wizards/03-architect/create-architecture/steps/step-04-decisions.md +318 -0
  342. package/src/wizards/03-architect/create-architecture/steps/step-05-patterns.md +359 -0
  343. package/src/wizards/03-architect/create-architecture/steps/step-06-structure.md +379 -0
  344. package/src/wizards/03-architect/create-architecture/steps/step-07-validation.md +359 -0
  345. package/src/wizards/03-architect/create-architecture/steps/step-08-complete.md +76 -0
  346. package/src/wizards/03-architect/create-architecture/templates/architecture-decision-template.md +12 -0
  347. package/src/wizards/03-architect/create-architecture/wizard.md +49 -0
  348. package/src/wizards/03-architect/create-epics/steps/step-01-validate-prerequisites.md +259 -0
  349. package/src/wizards/03-architect/create-epics/steps/step-02-design-epics.md +233 -0
  350. package/src/wizards/03-architect/create-epics/steps/step-03-create-stories.md +272 -0
  351. package/src/wizards/03-architect/create-epics/steps/step-04-final-validation.md +149 -0
  352. package/src/wizards/03-architect/create-epics/templates/epics-template.md +57 -0
  353. package/src/wizards/03-architect/create-epics/wizard.md +58 -0
  354. package/src/wizards/04-build/code-review/checklist.md +23 -0
  355. package/src/wizards/04-build/code-review/instructions.xml +227 -0
  356. package/src/wizards/04-build/code-review/workflow.yaml +43 -0
  357. package/src/wizards/04-build/dev-story/checklist.md +80 -0
  358. package/src/wizards/04-build/dev-story/instructions.xml +410 -0
  359. package/src/wizards/04-build/dev-story/workflow.yaml +20 -0
  360. package/src/wizards/04-build/sprint-planning/checklist.md +33 -0
  361. package/src/wizards/04-build/sprint-planning/instructions.md +226 -0
  362. package/src/wizards/04-build/sprint-planning/sprint-status-template.yaml +55 -0
  363. package/src/wizards/04-build/sprint-planning/workflow.yaml +47 -0
  364. package/src/wizards/05-ship/document-project/templates/deep-dive-template.md +345 -0
  365. package/src/wizards/05-ship/document-project/templates/index-template.md +169 -0
  366. package/src/wizards/05-ship/document-project/templates/project-overview-template.md +103 -0
  367. package/src/wizards/05-ship/document-project/templates/project-scan-report-schema.json +160 -0
  368. package/src/wizards/05-ship/document-project/templates/source-tree-template.md +135 -0
  369. package/src/wizards/05-ship/document-project/wizard.md +130 -0
  370. package/src/wizards/quick/quick-dev/steps/step-01-mode-detection.md +174 -0
  371. package/src/wizards/quick/quick-dev/steps/step-02-context-gathering.md +118 -0
  372. package/src/wizards/quick/quick-dev/steps/step-03-execute.md +111 -0
  373. package/src/wizards/quick/quick-dev/steps/step-04-self-check.md +111 -0
  374. package/src/wizards/quick/quick-dev/steps/step-05-adversarial-review.md +104 -0
  375. package/src/wizards/quick/quick-dev/steps/step-06-resolve-findings.md +146 -0
  376. package/src/wizards/quick/quick-dev/wizard.md +50 -0
  377. package/src/wizards/quick/quick-spec/steps/step-01-understand.md +189 -0
  378. package/src/wizards/quick/quick-spec/steps/step-02-investigate.md +143 -0
  379. package/src/wizards/quick/quick-spec/steps/step-03-generate.md +126 -0
  380. package/src/wizards/quick/quick-spec/steps/step-04-review.md +200 -0
  381. package/src/wizards/quick/quick-spec/templates/tech-spec-template.md +74 -0
  382. package/src/wizards/quick/quick-spec/wizard.md +79 -0
  383. package/src/wizards/special/brainstorming/methods/brain-methods.csv +62 -0
  384. package/src/wizards/special/brainstorming/steps/step-01-session-setup.md +197 -0
  385. package/src/wizards/special/brainstorming/steps/step-01b-continue.md +122 -0
  386. package/src/wizards/special/brainstorming/steps/step-02a-user-selected.md +225 -0
  387. package/src/wizards/special/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  388. package/src/wizards/special/brainstorming/steps/step-02c-random-selection.md +209 -0
  389. package/src/wizards/special/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  390. package/src/wizards/special/brainstorming/steps/step-03-technique-execution.md +399 -0
  391. package/src/wizards/special/brainstorming/steps/step-04-idea-organization.md +303 -0
  392. package/src/wizards/special/brainstorming/wizard.md +58 -0
  393. package/src/wizards/special/party-mode/steps/step-01-agent-loading.md +138 -0
  394. package/src/wizards/special/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  395. package/src/wizards/special/party-mode/steps/step-03-graceful-exit.md +168 -0
  396. package/src/wizards/special/party-mode/wizard.md +194 -0
  397. package/test/README.md +295 -0
  398. package/test/adversarial-review-tests/README.md +56 -0
  399. package/test/adversarial-review-tests/sample-content.md +46 -0
  400. package/test/adversarial-review-tests/test-cases.yaml +103 -0
  401. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +27 -0
  402. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +30 -0
  403. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +22 -0
  404. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +20 -0
  405. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +25 -0
  406. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +24 -0
  407. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +25 -0
  408. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +25 -0
  409. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +25 -0
  410. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +31 -0
  411. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +25 -0
  412. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +25 -0
  413. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +25 -0
  414. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +25 -0
  415. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
  416. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
  417. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +27 -0
  418. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
  419. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +24 -0
  420. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +27 -0
  421. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +27 -0
  422. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +24 -0
  423. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +29 -0
  424. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +31 -0
  425. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +28 -0
  426. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +28 -0
  427. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
  428. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +28 -0
  429. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
  430. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
  431. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
  432. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +24 -0
  433. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +22 -0
  434. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +27 -0
  435. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +31 -0
  436. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +22 -0
  437. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +38 -0
  438. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +24 -0
  439. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +31 -0
  440. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +34 -0
  441. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +24 -0
  442. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +24 -0
  443. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +24 -0
  444. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +24 -0
  445. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +23 -0
  446. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +24 -0
  447. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +24 -0
  448. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +24 -0
  449. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +22 -0
  450. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +28 -0
  451. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +30 -0
  452. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +24 -0
  453. package/test/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +3 -0
  454. package/test/fixtures/file-refs-csv/invalid/empty-data.csv +1 -0
  455. package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +3 -0
  456. package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +3 -0
  457. package/test/fixtures/file-refs-csv/valid/bmm-style.csv +3 -0
  458. package/test/fixtures/file-refs-csv/valid/core-style.csv +3 -0
  459. package/test/fixtures/file-refs-csv/valid/minimal.csv +2 -0
  460. package/test/test-agent-schema.js +387 -0
  461. package/test/test-cli-integration.sh +159 -0
  462. package/test/test-file-refs-csv.js +133 -0
  463. package/test/test-installation-components.js +212 -0
  464. package/test/test-rehype-plugins.mjs +1050 -0
  465. package/test/unit-test-schema.js +133 -0
  466. package/tests/run_all_tests.py +80 -0
  467. package/tests/scenarios/cis/brainstorming-coach.test.py +150 -0
  468. package/tests/scenarios/cis/creative-problem-solver.test.py +167 -0
  469. package/tests/scenarios/cis/design-thinking-coach.test.py +177 -0
  470. package/tests/scenarios/cis/innovation-strategist.test.py +191 -0
  471. package/tests/scenarios/cis/presentation-master.test.py +240 -0
  472. package/tests/scenarios/cis/storyteller.test.py +324 -0
  473. package/tests/scenarios/core/mdan-master.test.py +281 -0
  474. package/tests/scenarios/mmb/agent-builder.test.py +124 -0
  475. package/tests/scenarios/mmb/module-builder.test.py +124 -0
  476. package/tests/scenarios/mmb/workflow-builder.test.py +124 -0
  477. package/tests/scenarios/mmm/analyst.test.py +138 -0
  478. package/tests/scenarios/mmm/architect.test.py +138 -0
  479. package/tests/scenarios/mmm/dev.test.py +138 -0
  480. package/tests/scenarios/mmm/pm.test.py +138 -0
  481. package/tests/scenarios/mmm/qa.test.py +138 -0
  482. package/tests/scenarios/mmm/quick-flow-solo-dev.test.py +138 -0
  483. package/tests/scenarios/mmm/sm.test.py +138 -0
  484. package/tests/scenarios/mmm/tech-writer.test.py +138 -0
  485. package/tests/scenarios/mmm/ux-designer.test.py +294 -0
  486. package/tests/scenarios/packs/db-optimization/db-performance-analyst.test.py +108 -0
  487. package/tests/scenarios/packs/db-optimization/indexing-specialist.test.py +108 -0
  488. package/tests/scenarios/packs/db-optimization/query-optimizer.test.py +106 -0
  489. package/tests/scenarios/packs/devops-azure/azure-specialist.test.py +125 -0
  490. package/tests/scenarios/packs/devops-azure/cicd-architect.test.py +122 -0
  491. package/tests/scenarios/packs/devops-azure/devops-engineer.test.py +128 -0
  492. package/tests/scenarios/packs/fintech/compliance-officer.test.py +165 -0
  493. package/tests/scenarios/packs/fintech/financial-analyst.test.py +184 -0
  494. package/tests/scenarios/packs/fintech/risk-manager.test.py +171 -0
  495. package/tests/scenarios/tea/tea.test.py +346 -0
  496. package/tests/simple_cis_test.py +285 -0
  497. package/tests/simple_db_optimization_test.py +199 -0
  498. package/tests/simple_devops_test.py +193 -0
  499. package/tests/simple_fintech_test.py +205 -0
  500. package/tests/simple_mmb_test.py +103 -0
  501. package/tests/simple_mmm_test.py +159 -0
  502. package/tests/simple_tea_test.py +80 -0
  503. package/tests/simple_test.py +111 -0
  504. package/tests/simple_ux_designer_test.py +144 -0
  505. package/tests/validate_yaml.py +86 -0
  506. package/tools/build-docs.mjs +463 -0
  507. package/tools/cli/README.md +60 -0
  508. package/tools/cli/commands/install.js +87 -0
  509. package/tools/cli/commands/status.js +65 -0
  510. package/tools/cli/commands/uninstall.js +167 -0
  511. package/tools/cli/external-official-modules.yaml +53 -0
  512. package/tools/cli/installers/install-messages.yaml +39 -0
  513. package/tools/cli/installers/lib/core/config-collector.js +1285 -0
  514. package/tools/cli/installers/lib/core/custom-module-cache.js +260 -0
  515. package/tools/cli/installers/lib/core/dependency-resolver.js +743 -0
  516. package/tools/cli/installers/lib/core/detector.js +223 -0
  517. package/tools/cli/installers/lib/core/ide-config-manager.js +157 -0
  518. package/tools/cli/installers/lib/core/installer.js +3162 -0
  519. package/tools/cli/installers/lib/core/manifest-generator.js +1081 -0
  520. package/tools/cli/installers/lib/core/manifest.js +1038 -0
  521. package/tools/cli/installers/lib/custom/handler.js +358 -0
  522. package/tools/cli/installers/lib/ide/_base-ide.js +665 -0
  523. package/tools/cli/installers/lib/ide/_config-driven.js +634 -0
  524. package/tools/cli/installers/lib/ide/codex.js +440 -0
  525. package/tools/cli/installers/lib/ide/github-copilot.js +699 -0
  526. package/tools/cli/installers/lib/ide/kilo.js +269 -0
  527. package/tools/cli/installers/lib/ide/manager.js +342 -0
  528. package/tools/cli/installers/lib/ide/platform-codes.js +100 -0
  529. package/tools/cli/installers/lib/ide/platform-codes.yaml +243 -0
  530. package/tools/cli/installers/lib/ide/rovodev.js +257 -0
  531. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +180 -0
  532. package/tools/cli/installers/lib/ide/shared/mdan-artifacts.js +174 -0
  533. package/tools/cli/installers/lib/ide/shared/module-injections.js +136 -0
  534. package/tools/cli/installers/lib/ide/shared/path-utils.js +299 -0
  535. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +366 -0
  536. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +318 -0
  537. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
  538. package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +8 -0
  539. package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +15 -0
  540. package/tools/cli/installers/lib/ide/templates/combined/default-task.md +10 -0
  541. package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +10 -0
  542. package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +14 -0
  543. package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +6 -0
  544. package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +14 -0
  545. package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +11 -0
  546. package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +11 -0
  547. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +16 -0
  548. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +14 -0
  549. package/tools/cli/installers/lib/ide/templates/combined/kiro-agent.md +16 -0
  550. package/tools/cli/installers/lib/ide/templates/combined/kiro-task.md +9 -0
  551. package/tools/cli/installers/lib/ide/templates/combined/kiro-tool.md +9 -0
  552. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow-yaml.md +15 -0
  553. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow.md +7 -0
  554. package/tools/cli/installers/lib/ide/templates/combined/opencode-agent.md +15 -0
  555. package/tools/cli/installers/lib/ide/templates/combined/opencode-task.md +13 -0
  556. package/tools/cli/installers/lib/ide/templates/combined/opencode-tool.md +13 -0
  557. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow-yaml.md +16 -0
  558. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow.md +16 -0
  559. package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +9 -0
  560. package/tools/cli/installers/lib/ide/templates/combined/trae.md +9 -0
  561. package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +10 -0
  562. package/tools/cli/installers/lib/ide/templates/split/.gitkeep +0 -0
  563. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
  564. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +5 -0
  565. package/tools/cli/installers/lib/message-loader.js +83 -0
  566. package/tools/cli/installers/lib/modules/external-manager.js +136 -0
  567. package/tools/cli/installers/lib/modules/manager.js +1498 -0
  568. package/tools/cli/lib/activation-builder.js +165 -0
  569. package/tools/cli/lib/agent/compiler.js +525 -0
  570. package/tools/cli/lib/agent/installer.js +680 -0
  571. package/tools/cli/lib/agent/template-engine.js +152 -0
  572. package/tools/cli/lib/agent-analyzer.js +109 -0
  573. package/tools/cli/lib/agent-party-generator.js +194 -0
  574. package/tools/cli/lib/cli-utils.js +182 -0
  575. package/tools/cli/lib/config.js +213 -0
  576. package/tools/cli/lib/file-ops.js +204 -0
  577. package/tools/cli/lib/platform-codes.js +116 -0
  578. package/tools/cli/lib/project-root.js +77 -0
  579. package/tools/cli/lib/prompts.js +809 -0
  580. package/tools/cli/lib/ui.js +1936 -0
  581. package/tools/cli/lib/xml-handler.js +177 -0
  582. package/tools/cli/lib/xml-to-markdown.js +82 -0
  583. package/tools/cli/lib/yaml-format.js +245 -0
  584. package/tools/cli/lib/yaml-xml-builder.js +587 -0
  585. package/tools/cli/mdan-cli.js +106 -0
  586. package/tools/docs/_prompt-external-modules-page.md +59 -0
  587. package/tools/docs/fix-refs.md +91 -0
  588. package/tools/fix-doc-links.js +285 -0
  589. package/tools/format-workflow-md.js +263 -0
  590. package/tools/lib/xml-utils.js +13 -0
  591. package/tools/mdan-npx-wrapper.js +38 -0
  592. package/tools/migrate-custom-module-paths.js +124 -0
  593. package/tools/platform-codes.yaml +157 -0
  594. package/tools/schema/agent.js +491 -0
  595. package/tools/validate-agent-schema.js +110 -0
  596. package/tools/validate-doc-links.js +407 -0
  597. package/tools/validate-file-refs.js +554 -0
  598. package/tools/validate-svg-changes.sh +356 -0
  599. package/website/README.md +75 -0
  600. package/website/astro.config.mjs +136 -0
  601. package/website/public/favicon.ico +0 -0
  602. package/website/public/workflow-map-diagram.html +361 -0
  603. package/website/src/components/Banner.astro +62 -0
  604. package/website/src/components/Header.astro +96 -0
  605. package/website/src/components/MobileMenuFooter.astro +33 -0
  606. package/website/src/content/config.ts +6 -0
  607. package/website/src/lib/site-url.mjs +25 -0
  608. package/website/src/pages/404.astro +11 -0
  609. package/website/src/pages/robots.txt.ts +48 -0
  610. package/website/src/rehype-base-paths.js +112 -0
  611. package/website/src/rehype-markdown-links.js +119 -0
  612. package/website/src/styles/custom.css +805 -0
@@ -0,0 +1,100 @@
1
+ name: tea
2
+ version: 1.0.0
3
+ description: Master Test Architect and Quality Advisor specializing in risk-based testing, fixture architecture, ATDD, API testing, backend services, UI automation, CI/CD governance, and scalable quality gates
4
+
5
+ system_prompt: |
6
+ You are Mustapha, a Master Test Architect and Quality Advisor.
7
+
8
+ Your identity:
9
+ Test architect specializing in risk-based testing, fixture architecture, ATDD, API testing, backend services, UI automation, CI/CD governance, and scalable quality gates. Equally proficient in pure API/service-layer testing (pytest, JUnit, Go test, xUnit, RSpec) as in browser-based E2E testing (Playwright, Cypress). Supports GitHub Actions, GitLab CI, Jenkins, Azure DevOps, and Harness CI platforms.
10
+
11
+ Your communication style:
12
+ Blends data with gut instinct. "Strong opinions, weakly held" is your mantra. Speaks in risk calculations and impact assessments.
13
+
14
+ Your principles:
15
+ - Risk-based testing - depth scales with impact
16
+ - Quality gates backed by data
17
+ - Tests mirror usage patterns (API, UI, or both)
18
+ - Flakiness is critical technical debt
19
+ - Tests first AI implements suite validates
20
+ - Calculate risk vs value for every testing decision
21
+ - Prefer lower test levels (unit > integration > E2E) when possible
22
+ - API tests are first-class citizens, not just UI support
23
+
24
+ Your capabilities:
25
+ - Teach testing fundamentals through advanced practices (7 progressive sessions)
26
+ - Initialize production-ready test framework architecture
27
+ - Generate failing acceptance tests plus implementation checklist (ATDD)
28
+ - Generate prioritized API/E2E tests, fixtures, and DoD summary
29
+ - Risk assessment plus coverage strategy for system or epic scope
30
+ - Map requirements to tests and make quality gate decisions
31
+ - Assess NFRs and recommend actions
32
+ - Recommend and scaffold CI/CD quality pipeline
33
+ - Perform quality checks against written tests
34
+
35
+ When providing guidance:
36
+ 1. Always consider risk level and impact
37
+ 2. Provide data-driven recommendations
38
+ 3. Balance thoroughness with practicality
39
+ 4. Consider the test pyramid (unit > integration > E2E)
40
+ 5. Emphasize API testing as first-class citizens
41
+ 6. Address flakiness as critical technical debt
42
+ 7. Provide specific, actionable recommendations
43
+ 8. Reference official documentation when relevant
44
+
45
+ user_prompt_template: |
46
+ Task: {task}
47
+
48
+ Context: {context}
49
+
50
+ {# Optional parameters #}
51
+ {# Project Type: {project_type} #}
52
+ {# Tech Stack: {tech_stack} #}
53
+ {# CI Platform: {ci_platform} #}
54
+ {# Risk Level: {risk_level} #}
55
+ {# Scope: {scope} #}
56
+
57
+ Please provide expert testing guidance and recommendations based on the task and context provided.
58
+
59
+ examples:
60
+ - task: "test-automate"
61
+ context: "User authentication flow for a web application"
62
+ project_type: "web"
63
+ tech_stack: ["playwright", "pytest"]
64
+ risk_level: "high"
65
+ scope: "feature"
66
+ expected_output: |
67
+ Prioritized test strategy for user authentication:
68
+ - High Priority: Login, logout, password reset, MFA
69
+ - Medium Priority: Remember me, social login
70
+ - Test Types: API tests for auth endpoints, E2E for login flow
71
+ - Definition of Done: All critical paths covered, integrated in CI/CD
72
+
73
+ - task: "continuous-integration"
74
+ context: "Setting up CI/CD pipeline for a microservices API"
75
+ tech_stack: ["pytest", "go-test"]
76
+ ci_platform: "github-actions"
77
+ expected_output: |
78
+ CI/CD Quality Pipeline for microservices:
79
+ - Stages: Lint, Unit Tests, Integration Tests, Build, E2E Tests, Security Scan, Deploy
80
+ - Quality Gates: All tests pass, 80% coverage, no critical vulnerabilities
81
+ - Best Practices: Parallel execution, caching, notifications
82
+
83
+ metadata:
84
+ author: "MDAN Team"
85
+ created: "2026-02-28"
86
+ version: "1.0.0"
87
+ tags:
88
+ - testing
89
+ - quality
90
+ - test-architecture
91
+ - atdd
92
+ - ci-cd
93
+ - risk-based-testing
94
+ - api-testing
95
+ - e2e-testing
96
+ - pytest
97
+ - playwright
98
+ - cypress
99
+ - junit
100
+ - go-test
package/cli/v1/mdan.py ADDED
@@ -0,0 +1,421 @@
1
+ #!/usr/bin/env python3
2
+ """MDAN CLI - Multi-Agent Development Agentic Network"""
3
+
4
+ import sys
5
+ import shutil
6
+ import json
7
+ from pathlib import Path
8
+
9
+ VERSION = "2.7.0"
10
+ MDAN_DIR = Path(__file__).parent.parent
11
+
12
+ # Check CrewAI availability
13
+ try:
14
+ import importlib.util
15
+
16
+ CREWAI_AVAILABLE = importlib.util.find_spec("cli.mdan_crewai") is not None
17
+ except ImportError:
18
+ CREWAI_AVAILABLE = False
19
+
20
+ # Colors
21
+ RED = "\033[0;31m"
22
+ GREEN = "\033[0;32m"
23
+ YELLOW = "\033[1;33m"
24
+ CYAN = "\033[0;36m"
25
+ MAGENTA = "\033[0;35m"
26
+ BOLD = "\033[1m"
27
+ NC = "\033[0m"
28
+
29
+
30
+ def banner():
31
+ print(f"{CYAN}")
32
+ print(" ███╗ ███╗██████╗ █████╗ ███╗ ██╗")
33
+ print(" ████╗ ████║██╔══██╗██╔══██╗████╗ ██║")
34
+ print(" ██╔████╔██║██║ ██║███████║██╔██╗ ██║")
35
+ print(" ██║╚██╔╝██║██║ ██║██╔══██║██║╚██╗██║")
36
+ print(" ██║ ╚═╝ ██║██████╔╝██║ ██║██║ ╚████║")
37
+ print(" ╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝")
38
+ print(f"{NC}")
39
+ print(f" {BOLD}Multi-Agent Development Agentic Network{NC} v{VERSION}\n")
40
+
41
+
42
+ def show_help():
43
+ banner()
44
+ print(f"{BOLD}USAGE{NC}")
45
+ print(" mdan <command> [options]\\n")
46
+ print(f"{BOLD}COMMANDS{NC}")
47
+ print(" init [name] Create a new project")
48
+ print(" attach [--rebuild] Add MDAN to existing project")
49
+ print(" status Show project status")
50
+ print(" phase [1-5] Show phase guide")
51
+ print(" agent [name] Show agent prompt")
52
+ print(" oc Copy orchestrator prompt to clipboard")
53
+ print(" skills List available skills")
54
+ print(" auto Start autonomous development mode")
55
+ print(" resume <save-file> Resume from saved context")
56
+ print(" crewai <command> CrewAI integration commands")
57
+ print(" version Show version\\n")
58
+ print(f"{BOLD}CREWAI COMMANDS{NC}")
59
+ print(" crewai init Initialize CrewAI in project")
60
+ print(" crewai auto <task> Run autonomous mode")
61
+ print(" crewai debate <topic> Start multi-agent debate")
62
+ print(" crewai agent <name> <task> Execute task with agent")
63
+ print(" crewai flow <name> <task> Execute specific flow")
64
+ print(" crewai skills List available skills")
65
+ print(" crewai status Show CrewAI status\\n")
66
+ print(f"{BOLD}EXAMPLES{NC}")
67
+ print(" mdan init my-app # New project")
68
+ print(" cd my-project && mdan attach # Existing project")
69
+ print(" mdan attach --rebuild # Rebuild from scratch")
70
+ print(" mdan auto # Start autonomous mode")
71
+ print(" mdan crewai init # Initialize CrewAI")
72
+ print(' mdan crewai auto "Build app" # Run CrewAI auto mode')
73
+ print(" mdan resume /tmp/mdan-save-*.json # Resume execution\\n")
74
+ print(f"{BOLD}AGENTS{NC}")
75
+ print(
76
+ " product, architect, ux, dev, test, security, devops, doc, auto-orchestrator"
77
+ )
78
+
79
+
80
+ def cmd_init(name="my-project"):
81
+ print(f"{CYAN}🚀 Creating: {BOLD}{name}{NC}")
82
+
83
+ dirs = [
84
+ f"{name}/mdan/agents",
85
+ f"{name}/mdan/skills",
86
+ f"{name}/mdan_output",
87
+ f"{name}/.claude/skills",
88
+ f"{name}/.github",
89
+ ]
90
+ for d in dirs:
91
+ Path(d).mkdir(parents=True, exist_ok=True)
92
+
93
+ shutil.copy(f"{MDAN_DIR}/core/orchestrator.md", f"{name}/mdan/")
94
+ shutil.copy(f"{MDAN_DIR}/core/universal-envelope.md", f"{name}/mdan/")
95
+
96
+ for f in Path(f"{MDAN_DIR}/agents").glob("*.md"):
97
+ shutil.copy(f, f"{name}/mdan/agents/")
98
+
99
+ for f in Path(f"{MDAN_DIR}/templates").glob("*.md"):
100
+ shutil.copy(f, f"{name}/mdan_output/")
101
+
102
+ skills_dir = Path(f"{MDAN_DIR}/skills")
103
+ if skills_dir.exists():
104
+ for s in skills_dir.iterdir():
105
+ if s.is_dir():
106
+ shutil.copytree(s, f"{name}/mdan/skills/{s.name}", dirs_exist_ok=True)
107
+ shutil.copytree(
108
+ s, f"{name}/.claude/skills/{s.name}", dirs_exist_ok=True
109
+ )
110
+
111
+ cursorrules = Path(f"{MDAN_DIR}/core/orchestrator.md").read_text()
112
+ cursorrules += "\n\n## CURSOR INSTRUCTIONS\nAgent files in mdan/agents/\nSkills in mdan/skills/"
113
+ Path(f"{name}/.cursorrules").write_text(cursorrules)
114
+ shutil.copy(f"{name}/.cursorrules", f"{name}/.windsurfrules")
115
+ shutil.copy(
116
+ f"{MDAN_DIR}/core/orchestrator.md", f"{name}/.github/copilot-instructions.md"
117
+ )
118
+ Path(f"{name}/README.md").write_text(f"# {name}\n\n> Built with MDAN\n")
119
+
120
+ print(f"{GREEN}✅ Created {name}/{NC}\n")
121
+ print(f" {BOLD}Next:{NC} cursor {name}")
122
+
123
+
124
+ def cmd_attach(rebuild=None):
125
+ project = Path.cwd().name
126
+
127
+ if rebuild == "--rebuild":
128
+ print(f"{MAGENTA}🔄 REBUILD MODE: {BOLD}{project}{NC}")
129
+ else:
130
+ print(f"{CYAN}🔗 Attaching to: {BOLD}{project}{NC}")
131
+
132
+ Path("mdan/agents").mkdir(parents=True, exist_ok=True)
133
+ Path("mdan/skills").mkdir(parents=True, exist_ok=True)
134
+ Path(".claude/skills").mkdir(parents=True, exist_ok=True)
135
+ Path(".github").mkdir(parents=True, exist_ok=True)
136
+
137
+ shutil.copy(f"{MDAN_DIR}/core/orchestrator.md", "mdan/")
138
+ shutil.copy(f"{MDAN_DIR}/core/universal-envelope.md", "mdan/")
139
+
140
+ for f in Path(f"{MDAN_DIR}/agents").glob("*.md"):
141
+ shutil.copy(f, "mdan/agents/")
142
+
143
+ skills_dir = Path(f"{MDAN_DIR}/skills")
144
+ if skills_dir.exists():
145
+ for s in skills_dir.iterdir():
146
+ if s.is_dir():
147
+ shutil.copytree(s, f"mdan/skills/{s.name}", dirs_exist_ok=True)
148
+ shutil.copytree(s, f".claude/skills/{s.name}", dirs_exist_ok=True)
149
+
150
+ cursorrules = Path(f"{MDAN_DIR}/core/orchestrator.md").read_text()
151
+ if rebuild == "--rebuild":
152
+ cursorrules += (
153
+ "\n\n## REBUILD MODE\nAnalyze existing code then rewrite from scratch."
154
+ )
155
+ else:
156
+ cursorrules += (
157
+ "\n\n## EXISTING PROJECT\nAnalyze codebase before making changes."
158
+ )
159
+ Path(".cursorrules").write_text(cursorrules)
160
+ shutil.copy(".cursorrules", ".windsurfrules")
161
+ shutil.copy(f"{MDAN_DIR}/core/orchestrator.md", ".github/copilot-instructions.md")
162
+
163
+ print(f"{GREEN}✅ MDAN ready!{NC}\n")
164
+ print(f" {BOLD}Next:{NC} Run {CYAN}mdan oc{NC} to copy prompt")
165
+ if rebuild == "--rebuild":
166
+ print(f" Start: {CYAN}MDAN REBUILD: Analyze and rewrite this project{NC}")
167
+ else:
168
+ print(f" Start: {CYAN}MDAN: Analyze this project{NC}")
169
+
170
+
171
+ def cmd_oc():
172
+ import subprocess
173
+
174
+ orch_file = Path("mdan/orchestrator.md")
175
+ if not orch_file.exists():
176
+ orch_file = Path(f"{MDAN_DIR}/core/orchestrator.md")
177
+
178
+ if orch_file.exists():
179
+ content = orch_file.read_text()
180
+ try:
181
+ if sys.platform == "darwin":
182
+ subprocess.run(
183
+ "pbcopy", universal_newlines=True, input=content, check=True
184
+ )
185
+ elif sys.platform == "win32":
186
+ subprocess.run(
187
+ "clip", universal_newlines=True, input=content, check=True
188
+ )
189
+ elif sys.platform == "linux":
190
+ if shutil.which("xclip"):
191
+ subprocess.run(
192
+ ["xclip", "-selection", "clipboard"],
193
+ universal_newlines=True,
194
+ input=content,
195
+ check=True,
196
+ )
197
+ elif shutil.which("wl-copy"):
198
+ subprocess.run(
199
+ ["wl-copy"], universal_newlines=True, input=content, check=True
200
+ )
201
+ else:
202
+ raise Exception("No clipboard tool found")
203
+ print(f"{GREEN}✅ Orchestrator prompt copied to clipboard!{NC}")
204
+ print(" Paste it into Claude, ChatGPT, or your favorite LLM.")
205
+ except Exception:
206
+ print(content)
207
+ print(
208
+ f"\n{YELLOW}⚠️ Could not copy to clipboard automatically. Please copy the text above.{NC}"
209
+ )
210
+ else:
211
+ print(f"{RED}Orchestrator file not found.{NC}")
212
+
213
+
214
+ def cmd_status():
215
+ if Path("mdan/orchestrator.md").exists():
216
+ print(f"{GREEN}✅ MDAN is active in this project{NC}")
217
+ if Path("mdan/STATUS.md").exists():
218
+ print(Path("mdan/STATUS.md").read_text())
219
+ else:
220
+ print(f"{YELLOW}No MDAN project here.{NC}")
221
+ print(" Run: mdan init [name] or mdan attach")
222
+
223
+
224
+ def cmd_phase(num, action=None):
225
+ import subprocess
226
+
227
+ phases = {
228
+ "1": ("01-discover.md", "DISCOVER"),
229
+ "discover": ("01-discover.md", "DISCOVER"),
230
+ "2": ("02-design.md", "DESIGN"),
231
+ "design": ("02-design.md", "DESIGN"),
232
+ "3": ("03-build.md", "BUILD"),
233
+ "build": ("03-build.md", "BUILD"),
234
+ "4": ("04-verify.md", "VERIFY"),
235
+ "verify": ("04-verify.md", "VERIFY"),
236
+ "5": ("05-ship.md", "SHIP"),
237
+ "ship": ("05-ship.md", "SHIP"),
238
+ }
239
+
240
+ if num not in phases:
241
+ print("Usage: mdan phase [1-5|name] [copy]")
242
+ return
243
+
244
+ file, name = phases[num]
245
+ phase_file = Path(f"{MDAN_DIR}/phases/{file}")
246
+
247
+ if phase_file.exists():
248
+ content = phase_file.read_text()
249
+ if action in ["copy", "-c"]:
250
+ try:
251
+ if sys.platform == "darwin":
252
+ subprocess.run(
253
+ "pbcopy", universal_newlines=True, input=content, check=True
254
+ )
255
+ elif sys.platform == "win32":
256
+ subprocess.run(
257
+ "clip", universal_newlines=True, input=content, check=True
258
+ )
259
+ elif sys.platform == "linux":
260
+ if shutil.which("xclip"):
261
+ subprocess.run(
262
+ ["xclip", "-selection", "clipboard"],
263
+ universal_newlines=True,
264
+ input=content,
265
+ check=True,
266
+ )
267
+ elif shutil.which("wl-copy"):
268
+ subprocess.run(
269
+ ["wl-copy"],
270
+ universal_newlines=True,
271
+ input=content,
272
+ check=True,
273
+ )
274
+ else:
275
+ raise Exception("No clipboard tool found")
276
+ print(f"{GREEN}✅ Phase {name} prompt copied to clipboard!{NC}")
277
+ print(" Paste it into your LLM to start the phase.")
278
+ except Exception:
279
+ print(content)
280
+ print(
281
+ f"\n{YELLOW}⚠️ Could not copy automatically. Please copy the text above.{NC}"
282
+ )
283
+ else:
284
+ print(f"{CYAN}{BOLD}Phase {name}{NC}")
285
+ print(content)
286
+ print(
287
+ f"\n{YELLOW}Tip: Run '{CYAN}mdan phase {num} copy{YELLOW}' to copy this content to clipboard.{NC}"
288
+ )
289
+ else:
290
+ print(f"Phase file not found: {file}")
291
+
292
+
293
+ def cmd_agent(name):
294
+ file = Path(f"{MDAN_DIR}/agents/{name}.md")
295
+ if file.exists():
296
+ print(file.read_text())
297
+ else:
298
+ print("Agents: product, architect, ux, dev, test, security, devops, doc")
299
+
300
+
301
+ def cmd_skills():
302
+ print(f"{CYAN}Skills:{NC}")
303
+ skills_dir = Path(f"{MDAN_DIR}/skills")
304
+ if skills_dir.exists():
305
+ for s in skills_dir.iterdir():
306
+ print(f" {s.name}")
307
+ else:
308
+ print(" No skills installed")
309
+
310
+
311
+ def cmd_auto():
312
+ print(f"{CYAN}🚀 MDAN-AUTO v1.0 - Autonomous Development Mode{NC}\n")
313
+ print(f"{BOLD}Starting autonomous execution...{NC}\n")
314
+ print(f"{YELLOW}This will execute all phases without human intervention.{NC}")
315
+ print(f"{YELLOW}Context will be saved at 80% token limit.{NC}\n")
316
+ print(f"{BOLD}Phases:{NC}")
317
+ print(" 1. LOAD - Load project context")
318
+ print(" 2. DISCOVER - Analyze requirements")
319
+ print(" 3. PLAN - Create implementation plan")
320
+ print(" 4. ARCHITECT - Design system architecture")
321
+ print(" 5. IMPLEMENT - Execute implementation")
322
+ print(" 6. TEST - Run comprehensive tests")
323
+ print(" 7. DEPLOY - Deploy to production")
324
+ print(" 8. DOC - Generate documentation\n")
325
+ print(f"{GREEN}✅ MDAN-AUTO initialized{NC}")
326
+ print(
327
+ f" {BOLD}Next:{NC} Load the Auto Orchestrator prompt from agents/auto-orchestrator.md"
328
+ )
329
+
330
+
331
+ def cmd_resume(save_file=None):
332
+ if not save_file:
333
+ print(f"{RED}Error: Save file required{NC}")
334
+ print(" Usage: mdan resume <save-file>")
335
+ return
336
+
337
+ save_path = Path(save_file)
338
+ if not save_path.exists():
339
+ print(f"{RED}Error: Save file not found: {save_file}{NC}")
340
+ return
341
+
342
+ print(f"{CYAN}🔄 Resuming from: {BOLD}{save_file}{NC}\n")
343
+
344
+ try:
345
+ with open(save_path, "r") as f:
346
+ state = json.load(f)
347
+
348
+ print(f"{BOLD}Project:{NC} {state.get('project', {}).get('name', 'Unknown')}")
349
+ print(
350
+ f"{BOLD}Current Phase:{NC} {state.get('phases', {}).get('current', 'Unknown')}"
351
+ )
352
+ print(
353
+ f"{BOLD}Completed Phases:{NC} {', '.join(state.get('phases', {}).get('completed', []))}"
354
+ )
355
+ print(
356
+ f"{BOLD}Token Usage:{NC} {state.get('context', {}).get('token_usage', {}).get('total', 0)} / {state.get('context', {}).get('token_usage', {}).get('limit', 128000)} ({state.get('context', {}).get('token_usage', {}).get('percentage', 0) * 100:.1f}%)\n"
357
+ )
358
+
359
+ print(f"{GREEN}✅ Context loaded{NC}")
360
+ print(
361
+ f" {BOLD}Next:{NC} Continue from {state.get('phases', {}).get('current', 'Unknown')} phase"
362
+ )
363
+ print(
364
+ f" {BOLD}Tip:{NC} Load the Auto Orchestrator prompt with the restored context"
365
+ )
366
+
367
+ except json.JSONDecodeError:
368
+ print(f"{RED}Error: Invalid save file format{NC}")
369
+ except Exception as e:
370
+ print(f"{RED}Error: {e}{NC}")
371
+
372
+
373
+ def cmd_crewai():
374
+ """Handle CrewAI subcommands."""
375
+ if not CREWAI_AVAILABLE:
376
+ print(f"{RED}❌ CrewAI integration not available{NC}")
377
+ print(f" Install with: {CYAN}pip install -r requirements_crewai.txt{NC}")
378
+ sys.exit(1)
379
+
380
+ # Pass control to CrewAI CLI
381
+ from cli.mdan_crewai import crewai_cli
382
+
383
+ crewai_cli()
384
+
385
+
386
+ def main():
387
+ args = sys.argv[1:]
388
+ cmd = args[0] if args else "help"
389
+
390
+ if cmd in ["help", "--help", "-h", None]:
391
+ show_help()
392
+ elif cmd == "init":
393
+ cmd_init(args[1] if len(args) > 1 else "my-project")
394
+ elif cmd == "attach":
395
+ cmd_attach(args[1] if len(args) > 1 else None)
396
+ elif cmd == "oc":
397
+ cmd_oc()
398
+ elif cmd == "status":
399
+ cmd_status()
400
+ elif cmd == "phase":
401
+ cmd_phase(
402
+ args[1] if len(args) > 1 else None, args[2] if len(args) > 2 else None
403
+ )
404
+ elif cmd == "agent":
405
+ cmd_agent(args[1] if len(args) > 1 else None)
406
+ elif cmd == "skills":
407
+ cmd_skills()
408
+ elif cmd == "auto":
409
+ cmd_auto()
410
+ elif cmd == "resume":
411
+ cmd_resume(args[1] if len(args) > 1 else None)
412
+ elif cmd == "crewai":
413
+ cmd_crewai()
414
+ elif cmd in ["version", "-v"]:
415
+ print(f"MDAN v{VERSION}")
416
+ else:
417
+ print(f"Unknown: {cmd}. Run: mdan help")
418
+
419
+
420
+ if __name__ == "__main__":
421
+ main()