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,27 @@
1
+ # Test: critical_actions as non-array
2
+ # Expected: FAIL
3
+ # Error code: invalid_type
4
+ # Error path: agent.critical_actions
5
+ # Error expected: array
6
+
7
+ agent:
8
+ metadata:
9
+ id: actions-string
10
+ name: Actions String
11
+ title: Actions String
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ critical_actions: This should be an array
23
+
24
+ menu:
25
+ - trigger: help
26
+ description: Show help
27
+ action: display_help
@@ -0,0 +1,30 @@
1
+ # Test: critical_actions with empty strings
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.critical_actions[1]
5
+ # Error message: agent.critical_actions[] must be a non-empty string
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-action-string
10
+ name: Empty Action String
11
+ title: Empty Action String
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ critical_actions:
23
+ - Valid action
24
+ - " "
25
+ - Another valid action
26
+
27
+ menu:
28
+ - trigger: help
29
+ description: Show help
30
+ action: display_help
@@ -0,0 +1,22 @@
1
+ # Test: Empty menu array
2
+ # Expected: FAIL
3
+ # Error code: too_small
4
+ # Error path: agent.menu
5
+ # Error minimum: 1
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-menu
10
+ name: Empty Menu
11
+ title: Empty Menu
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu: []
@@ -0,0 +1,20 @@
1
+ # Test: Missing menu field
2
+ # Expected: FAIL
3
+ # Error code: invalid_type
4
+ # Error path: agent.menu
5
+ # Error expected: array
6
+
7
+ agent:
8
+ metadata:
9
+ id: missing-menu
10
+ name: Missing Menu
11
+ title: Missing Menu
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
@@ -0,0 +1,25 @@
1
+ # Test: Menu item with empty string command target
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].action
5
+ # Error message: agent.menu[].action must be a non-empty string
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-command
10
+ name: Empty Command Target
11
+ title: Empty Command
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: help
24
+ description: Show help
25
+ action: " "
@@ -0,0 +1,24 @@
1
+ # Test: Menu item with no command target fields
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0]
5
+ # Error message: agent.menu[] entries must include at least one command target field
6
+
7
+ agent:
8
+ metadata:
9
+ id: no-command
10
+ name: No Command Target
11
+ title: No Command
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: help
24
+ description: Show help but no command target
@@ -0,0 +1,25 @@
1
+ # Test: CamelCase trigger
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6
+
7
+ agent:
8
+ metadata:
9
+ id: camel-case-trigger
10
+ name: CamelCase Trigger
11
+ title: CamelCase
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: listTasks
24
+ description: Invalid CamelCase trigger
25
+ action: list_tasks
@@ -0,0 +1,25 @@
1
+ # Test: Compound trigger with invalid format
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger compound format error: invalid compound trigger format
6
+
7
+ agent:
8
+ metadata:
9
+ id: compound-invalid-format
10
+ name: Invalid Format
11
+ title: Invalid Format Test
12
+ icon: 🧪
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: TS or tech-spec
24
+ description: Missing fuzzy match clause
25
+ action: test
@@ -0,0 +1,25 @@
1
+ # Test: Compound trigger with old format (no longer supported)
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger compound format error: invalid compound trigger format
6
+
7
+ agent:
8
+ metadata:
9
+ id: compound-mismatched-kebab
10
+ name: Old Format
11
+ title: Old Format Test
12
+ icon: 🧪
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: TS or tech-spec or fuzzy match on tech-spec
24
+ description: Old format with middle kebab-case (no longer supported)
25
+ action: test
@@ -0,0 +1,31 @@
1
+ # Test: Duplicate triggers within same agent
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[2].trigger
5
+ # Error message: agent.menu[].trigger duplicates "help" within the same agent
6
+
7
+ agent:
8
+ metadata:
9
+ id: duplicate-triggers
10
+ name: Duplicate Triggers
11
+ title: Duplicate
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: help
24
+ description: First help command
25
+ action: display_help
26
+ - trigger: list-tasks
27
+ description: List tasks
28
+ action: list_tasks
29
+ - trigger: help
30
+ description: Duplicate help command
31
+ action: show_help
@@ -0,0 +1,25 @@
1
+ # Test: Empty trigger string
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger must be a non-empty string
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-trigger
10
+ name: Empty Trigger
11
+ title: Empty
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: " "
24
+ description: Empty trigger
25
+ action: display_help
@@ -0,0 +1,25 @@
1
+ # Test: Trigger with leading asterisk
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6
+
7
+ agent:
8
+ metadata:
9
+ id: asterisk-trigger
10
+ name: Asterisk Trigger
11
+ title: Asterisk
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: "*help"
24
+ description: Invalid trigger with asterisk
25
+ action: display_help
@@ -0,0 +1,25 @@
1
+ # Test: Snake_case trigger
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6
+
7
+ agent:
8
+ metadata:
9
+ id: snake-case-trigger
10
+ name: Snake Case Trigger
11
+ title: Snake Case
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: list_tasks
24
+ description: Invalid snake_case trigger
25
+ action: list_tasks
@@ -0,0 +1,25 @@
1
+ # Test: Trigger with spaces
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.menu[0].trigger
5
+ # Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)
6
+
7
+ agent:
8
+ metadata:
9
+ id: spaces-trigger
10
+ name: Spaces Trigger
11
+ title: Spaces
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ menu:
23
+ - trigger: list tasks
24
+ description: Invalid trigger with spaces
25
+ action: list_tasks
@@ -0,0 +1,26 @@
1
+ # Test: Module field with whitespace only
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.metadata.module
5
+ # Error message: agent.metadata.module must be a non-empty string
6
+ # Path context: src/bmm/agents/empty-module-string.agent.yaml
7
+
8
+ agent:
9
+ metadata:
10
+ id: empty-module
11
+ name: Empty Module String
12
+ title: Empty Module
13
+ icon: ❌
14
+ module: " "
15
+
16
+ persona:
17
+ role: Test agent
18
+ identity: Test identity
19
+ communication_style: Test style
20
+ principles:
21
+ - Test principle
22
+
23
+ menu:
24
+ - trigger: help
25
+ description: Show help
26
+ action: display_help
@@ -0,0 +1,24 @@
1
+ # Test: Empty string in metadata.name field
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.metadata.name
5
+ # Error message: agent.metadata.name must be a non-empty string
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-name-test
10
+ name: " "
11
+ title: Empty Name Test
12
+ icon: ❌
13
+
14
+ persona:
15
+ role: Test agent
16
+ identity: Test identity
17
+ communication_style: Test style
18
+ principles:
19
+ - Test principle
20
+
21
+ menu:
22
+ - trigger: help
23
+ description: Show help
24
+ action: display_help
@@ -0,0 +1,27 @@
1
+ # Test: Extra unknown fields in metadata
2
+ # Expected: FAIL
3
+ # Error code: unrecognized_keys
4
+ # Error path: agent.metadata
5
+ # Error keys: ["unknown_field", "another_extra"]
6
+
7
+ agent:
8
+ metadata:
9
+ id: extra-fields
10
+ name: Extra Fields
11
+ title: Extra Fields
12
+ icon: ❌
13
+ hasSidecar: false
14
+ unknown_field: This is not allowed
15
+ another_extra: Also invalid
16
+
17
+ persona:
18
+ role: Test agent
19
+ identity: Test identity
20
+ communication_style: Test style
21
+ principles:
22
+ - Test principle
23
+
24
+ menu:
25
+ - trigger: help
26
+ description: Show help
27
+ action: display_help
@@ -0,0 +1,23 @@
1
+ # Test: Missing required metadata.id field
2
+ # Expected: FAIL
3
+ # Error code: invalid_type
4
+ # Error path: agent.metadata.id
5
+ # Error expected: string
6
+
7
+ agent:
8
+ metadata:
9
+ name: Missing ID Agent
10
+ title: Missing ID
11
+ icon: ❌
12
+
13
+ persona:
14
+ role: Test agent
15
+ identity: Test identity
16
+ communication_style: Test style
17
+ principles:
18
+ - Test principle
19
+
20
+ menu:
21
+ - trigger: help
22
+ description: Show help
23
+ action: display_help
@@ -0,0 +1,24 @@
1
+ # Test: Empty principles array
2
+ # Expected: FAIL
3
+ # Error code: too_small
4
+ # Error path: agent.persona.principles
5
+ # Error minimum: 1
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-principles
10
+ name: Empty Principles
11
+ title: Empty Principles
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles: []
20
+
21
+ menu:
22
+ - trigger: help
23
+ description: Show help
24
+ action: display_help
@@ -0,0 +1,27 @@
1
+ # Test: Empty string in principles array
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.persona.principles[1]
5
+ # Error message: agent.persona.principles[] must be a non-empty string
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-principle-string
10
+ name: Empty Principle String
11
+ title: Empty Principle
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Valid principle
21
+ - " "
22
+ - Another valid principle
23
+
24
+ menu:
25
+ - trigger: help
26
+ description: Show help
27
+ action: display_help
@@ -0,0 +1,27 @@
1
+ # Test: Extra unknown fields in persona
2
+ # Expected: FAIL
3
+ # Error code: unrecognized_keys
4
+ # Error path: agent.persona
5
+ # Error keys: ["extra_field", "another_extra"]
6
+
7
+ agent:
8
+ metadata:
9
+ id: extra-persona-fields
10
+ name: Extra Persona Fields
11
+ title: Extra Persona
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+ extra_field: Not allowed
22
+ another_extra: Also invalid
23
+
24
+ menu:
25
+ - trigger: help
26
+ description: Show help
27
+ action: display_help
@@ -0,0 +1,24 @@
1
+ # Test: Missing required persona.role field
2
+ # Expected: FAIL
3
+ # Error code: invalid_type
4
+ # Error path: agent.persona.role
5
+ # Error expected: string
6
+
7
+ agent:
8
+ metadata:
9
+ id: missing-role
10
+ name: Missing Role
11
+ title: Missing Role
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ identity: Test identity
17
+ communication_style: Test style
18
+ principles:
19
+ - Test principle
20
+
21
+ menu:
22
+ - trigger: help
23
+ description: Show help
24
+ action: display_help
@@ -0,0 +1,29 @@
1
+ # Test: Prompt with empty content string
2
+ # Expected: FAIL
3
+ # Error code: custom
4
+ # Error path: agent.prompts[0].content
5
+ # Error message: agent.prompts[].content must be a non-empty string
6
+
7
+ agent:
8
+ metadata:
9
+ id: empty-content
10
+ name: Empty Content
11
+ title: Empty Content
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ prompts:
23
+ - id: prompt1
24
+ content: " "
25
+
26
+ menu:
27
+ - trigger: help
28
+ description: Show help
29
+ action: display_help
@@ -0,0 +1,31 @@
1
+ # Test: Extra unknown fields in prompts
2
+ # Expected: FAIL
3
+ # Error code: unrecognized_keys
4
+ # Error path: agent.prompts[0]
5
+ # Error keys: ["extra_field"]
6
+
7
+ agent:
8
+ metadata:
9
+ id: extra-prompt-fields
10
+ name: Extra Prompt Fields
11
+ title: Extra Fields
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ prompts:
23
+ - id: prompt1
24
+ content: Valid content
25
+ description: Valid description
26
+ extra_field: Not allowed
27
+
28
+ menu:
29
+ - trigger: help
30
+ description: Show help
31
+ action: display_help
@@ -0,0 +1,28 @@
1
+ # Test: Prompt missing required content field
2
+ # Expected: FAIL
3
+ # Error code: invalid_type
4
+ # Error path: agent.prompts[0].content
5
+ # Error expected: string
6
+
7
+ agent:
8
+ metadata:
9
+ id: prompt-missing-content
10
+ name: Prompt Missing Content
11
+ title: Missing Content
12
+ icon: ❌
13
+ hasSidecar: false
14
+
15
+ persona:
16
+ role: Test agent
17
+ identity: Test identity
18
+ communication_style: Test style
19
+ principles:
20
+ - Test principle
21
+
22
+ prompts:
23
+ - id: prompt1
24
+
25
+ menu:
26
+ - trigger: help
27
+ description: Show help
28
+ action: display_help