@josstei/maestro 1.6.4-rc.1

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 (655) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/CHANGELOG.md +485 -0
  3. package/EXAMPLES.md +255 -0
  4. package/GEMINI.md +231 -0
  5. package/LICENSE +201 -0
  6. package/QWEN.md +241 -0
  7. package/README.md +220 -0
  8. package/agents/accessibility_specialist.md +20 -0
  9. package/agents/analytics_engineer.md +22 -0
  10. package/agents/api_designer.md +19 -0
  11. package/agents/architect.md +19 -0
  12. package/agents/cloud_architect.md +19 -0
  13. package/agents/cobol_engineer.md +22 -0
  14. package/agents/code_reviewer.md +17 -0
  15. package/agents/coder.md +22 -0
  16. package/agents/compliance_reviewer.md +19 -0
  17. package/agents/content_strategist.md +19 -0
  18. package/agents/copywriter.md +19 -0
  19. package/agents/data_engineer.md +22 -0
  20. package/agents/database_administrator.md +21 -0
  21. package/agents/db2_dba.md +21 -0
  22. package/agents/debugger.md +19 -0
  23. package/agents/design_system_engineer.md +22 -0
  24. package/agents/devops_engineer.md +23 -0
  25. package/agents/hlasm_assembler_specialist.md +22 -0
  26. package/agents/i18n_specialist.md +21 -0
  27. package/agents/ibm_i_specialist.md +22 -0
  28. package/agents/integration_engineer.md +23 -0
  29. package/agents/ml_engineer.md +23 -0
  30. package/agents/mlops_engineer.md +23 -0
  31. package/agents/mobile_engineer.md +23 -0
  32. package/agents/observability_engineer.md +23 -0
  33. package/agents/performance_engineer.md +21 -0
  34. package/agents/platform_engineer.md +24 -0
  35. package/agents/product_manager.md +20 -0
  36. package/agents/prompt_engineer.md +22 -0
  37. package/agents/refactor.md +22 -0
  38. package/agents/release_manager.md +22 -0
  39. package/agents/security_engineer.md +21 -0
  40. package/agents/seo_specialist.md +21 -0
  41. package/agents/site_reliability_engineer.md +21 -0
  42. package/agents/solutions_architect.md +19 -0
  43. package/agents/technical_writer.md +21 -0
  44. package/agents/tester.md +23 -0
  45. package/agents/ux_designer.md +20 -0
  46. package/agents/zos_sysprog.md +21 -0
  47. package/bin/maestro-mcp-server.js +10 -0
  48. package/claude/.claude-plugin/plugin.json +21 -0
  49. package/claude/.mcp.json +11 -0
  50. package/claude/README.md +191 -0
  51. package/claude/agents/accessibility-specialist.md +36 -0
  52. package/claude/agents/analytics-engineer.md +38 -0
  53. package/claude/agents/api-designer.md +33 -0
  54. package/claude/agents/architect.md +33 -0
  55. package/claude/agents/cloud-architect.md +33 -0
  56. package/claude/agents/cobol-engineer.md +38 -0
  57. package/claude/agents/code-reviewer.md +31 -0
  58. package/claude/agents/coder.md +38 -0
  59. package/claude/agents/compliance-reviewer.md +33 -0
  60. package/claude/agents/content-strategist.md +33 -0
  61. package/claude/agents/copywriter.md +33 -0
  62. package/claude/agents/data-engineer.md +37 -0
  63. package/claude/agents/database-administrator.md +37 -0
  64. package/claude/agents/db2-dba.md +37 -0
  65. package/claude/agents/debugger.md +32 -0
  66. package/claude/agents/design-system-engineer.md +38 -0
  67. package/claude/agents/devops-engineer.md +39 -0
  68. package/claude/agents/hlasm-assembler-specialist.md +38 -0
  69. package/claude/agents/i18n-specialist.md +37 -0
  70. package/claude/agents/ibm-i-specialist.md +38 -0
  71. package/claude/agents/integration-engineer.md +39 -0
  72. package/claude/agents/ml-engineer.md +39 -0
  73. package/claude/agents/mlops-engineer.md +39 -0
  74. package/claude/agents/mobile-engineer.md +39 -0
  75. package/claude/agents/observability-engineer.md +39 -0
  76. package/claude/agents/performance-engineer.md +34 -0
  77. package/claude/agents/platform-engineer.md +40 -0
  78. package/claude/agents/product-manager.md +34 -0
  79. package/claude/agents/prompt-engineer.md +38 -0
  80. package/claude/agents/refactor.md +38 -0
  81. package/claude/agents/release-manager.md +38 -0
  82. package/claude/agents/security-engineer.md +37 -0
  83. package/claude/agents/seo-specialist.md +37 -0
  84. package/claude/agents/site-reliability-engineer.md +37 -0
  85. package/claude/agents/solutions-architect.md +33 -0
  86. package/claude/agents/technical-writer.md +37 -0
  87. package/claude/agents/tester.md +39 -0
  88. package/claude/agents/ux-designer.md +34 -0
  89. package/claude/agents/zos-sysprog.md +37 -0
  90. package/claude/hooks/claude-hooks.json +48 -0
  91. package/claude/mcp/maestro-server.js +9 -0
  92. package/claude/mcp-config.example.json +9 -0
  93. package/claude/scripts/adapters/claude-adapter.js +7 -0
  94. package/claude/scripts/hook-runner.js +8 -0
  95. package/claude/scripts/policy-enforcer.js +294 -0
  96. package/claude/skills/a11y-audit/SKILL.md +26 -0
  97. package/claude/skills/archive/SKILL.md +24 -0
  98. package/claude/skills/code-review/SKILL.md +7 -0
  99. package/claude/skills/compliance-check/SKILL.md +26 -0
  100. package/claude/skills/debug-workflow/SKILL.md +27 -0
  101. package/claude/skills/delegation/SKILL.md +7 -0
  102. package/claude/skills/design-dialogue/SKILL.md +7 -0
  103. package/claude/skills/execute/SKILL.md +38 -0
  104. package/claude/skills/execution/SKILL.md +7 -0
  105. package/claude/skills/implementation-planning/SKILL.md +7 -0
  106. package/claude/skills/orchestrate/SKILL.md +38 -0
  107. package/claude/skills/perf-check/SKILL.md +26 -0
  108. package/claude/skills/resume-session/SKILL.md +38 -0
  109. package/claude/skills/review-code/SKILL.md +27 -0
  110. package/claude/skills/security-audit/SKILL.md +28 -0
  111. package/claude/skills/seo-audit/SKILL.md +26 -0
  112. package/claude/skills/session-management/SKILL.md +7 -0
  113. package/claude/skills/status/SKILL.md +22 -0
  114. package/claude/skills/validation/SKILL.md +7 -0
  115. package/claude/src/agents/accessibility-specialist.md +163 -0
  116. package/claude/src/agents/analytics-engineer.md +182 -0
  117. package/claude/src/agents/api-designer.md +124 -0
  118. package/claude/src/agents/architect.md +120 -0
  119. package/claude/src/agents/cloud-architect.md +134 -0
  120. package/claude/src/agents/cobol-engineer.md +127 -0
  121. package/claude/src/agents/code-reviewer.md +123 -0
  122. package/claude/src/agents/coder.md +132 -0
  123. package/claude/src/agents/compliance-reviewer.md +219 -0
  124. package/claude/src/agents/content-strategist.md +111 -0
  125. package/claude/src/agents/copywriter.md +113 -0
  126. package/claude/src/agents/data-engineer.md +130 -0
  127. package/claude/src/agents/database-administrator.md +126 -0
  128. package/claude/src/agents/db2-dba.md +124 -0
  129. package/claude/src/agents/debugger.md +133 -0
  130. package/claude/src/agents/design-system-engineer.md +258 -0
  131. package/claude/src/agents/devops-engineer.md +138 -0
  132. package/claude/src/agents/hlasm-assembler-specialist.md +134 -0
  133. package/claude/src/agents/i18n-specialist.md +241 -0
  134. package/claude/src/agents/ibm-i-specialist.md +132 -0
  135. package/claude/src/agents/integration-engineer.md +133 -0
  136. package/claude/src/agents/ml-engineer.md +115 -0
  137. package/claude/src/agents/mlops-engineer.md +116 -0
  138. package/claude/src/agents/mobile-engineer.md +115 -0
  139. package/claude/src/agents/observability-engineer.md +133 -0
  140. package/claude/src/agents/performance-engineer.md +139 -0
  141. package/claude/src/agents/platform-engineer.md +129 -0
  142. package/claude/src/agents/product-manager.md +170 -0
  143. package/claude/src/agents/prompt-engineer.md +129 -0
  144. package/claude/src/agents/refactor.md +138 -0
  145. package/claude/src/agents/release-manager.md +132 -0
  146. package/claude/src/agents/security-engineer.md +143 -0
  147. package/claude/src/agents/seo-specialist.md +129 -0
  148. package/claude/src/agents/site-reliability-engineer.md +131 -0
  149. package/claude/src/agents/solutions-architect.md +137 -0
  150. package/claude/src/agents/technical-writer.md +129 -0
  151. package/claude/src/agents/tester.md +135 -0
  152. package/claude/src/agents/ux-designer.md +168 -0
  153. package/claude/src/agents/zos-sysprog.md +134 -0
  154. package/claude/src/config/setting-resolver.js +32 -0
  155. package/claude/src/core/agent-registry.js +67 -0
  156. package/claude/src/core/canonical-source.js +39 -0
  157. package/claude/src/core/env-file-parser.js +82 -0
  158. package/claude/src/core/feature-blocks.js +34 -0
  159. package/claude/src/core/logger.js +12 -0
  160. package/claude/src/core/markdown-state.js +36 -0
  161. package/claude/src/core/policy-rules.js +32 -0
  162. package/claude/src/core/project-root-resolver.js +184 -0
  163. package/claude/src/core/stdin-reader.js +77 -0
  164. package/claude/src/core/version.js +50 -0
  165. package/claude/src/entry-points/core-command-registry.js +37 -0
  166. package/claude/src/entry-points/preamble-builders.js +54 -0
  167. package/claude/src/entry-points/registry.js +199 -0
  168. package/claude/src/entry-points/templates/claude-core-command.md.tmpl +38 -0
  169. package/claude/src/entry-points/templates/claude-skill.md.tmpl +18 -0
  170. package/claude/src/entry-points/templates/codex-core-command.md.tmpl +16 -0
  171. package/claude/src/entry-points/templates/codex-skill.md.tmpl +11 -0
  172. package/claude/src/entry-points/templates/gemini-command.toml.tmpl +17 -0
  173. package/claude/src/entry-points/templates/gemini-core-command.toml.tmpl +30 -0
  174. package/claude/src/generated/agent-registry.json +630 -0
  175. package/claude/src/generated/hook-registry.json +18 -0
  176. package/claude/src/generated/resource-registry.json +16 -0
  177. package/claude/src/hooks/logic/after-agent-logic.js +54 -0
  178. package/claude/src/hooks/logic/before-agent-logic.js +57 -0
  179. package/claude/src/hooks/logic/hook-state.js +127 -0
  180. package/claude/src/hooks/logic/session-end-logic.js +17 -0
  181. package/claude/src/hooks/logic/session-start-logic.js +25 -0
  182. package/claude/src/lib/discovery/index.js +172 -0
  183. package/claude/src/lib/errors/index.js +104 -0
  184. package/claude/src/lib/framework-detection.js +50 -0
  185. package/claude/src/lib/frontmatter/index.js +262 -0
  186. package/claude/src/lib/io/index.js +96 -0
  187. package/claude/src/lib/naming/index.js +94 -0
  188. package/claude/src/lib/validation/index.js +124 -0
  189. package/claude/src/lib/yaml-emit.js +38 -0
  190. package/claude/src/mcp/content/provider.js +68 -0
  191. package/claude/src/mcp/content/runtime-content.js +188 -0
  192. package/claude/src/mcp/contracts/cache-path-rejector.js +39 -0
  193. package/claude/src/mcp/contracts/downstream-context.js +106 -0
  194. package/claude/src/mcp/contracts/plan-schema.js +148 -0
  195. package/claude/src/mcp/contracts/workspace-marker.js +61 -0
  196. package/claude/src/mcp/core/create-server.js +76 -0
  197. package/claude/src/mcp/core/line-reader.js +35 -0
  198. package/claude/src/mcp/core/project-root-cache.js +120 -0
  199. package/claude/src/mcp/core/protocol-dispatcher.js +274 -0
  200. package/claude/src/mcp/core/recovery-hints.js +43 -0
  201. package/claude/src/mcp/core/tool-outcome.js +77 -0
  202. package/claude/src/mcp/core/tool-registry.js +82 -0
  203. package/claude/src/mcp/handlers/assess-task-complexity.js +108 -0
  204. package/claude/src/mcp/handlers/blocker-parser.js +34 -0
  205. package/claude/src/mcp/handlers/design-gate.js +393 -0
  206. package/claude/src/mcp/handlers/get-agent.js +54 -0
  207. package/claude/src/mcp/handlers/get-runtime-context.js +49 -0
  208. package/claude/src/mcp/handlers/get-skill-content.js +51 -0
  209. package/claude/src/mcp/handlers/initialize-workspace.js +45 -0
  210. package/claude/src/mcp/handlers/reconciliation.js +224 -0
  211. package/claude/src/mcp/handlers/resolve-settings.js +39 -0
  212. package/claude/src/mcp/handlers/session-state-core.js +108 -0
  213. package/claude/src/mcp/handlers/session-state-tools.js +562 -0
  214. package/claude/src/mcp/handlers/validate-plan.js +76 -0
  215. package/claude/src/mcp/maestro-server.js +122 -0
  216. package/claude/src/mcp/runtime/runtime-config-map.js +70 -0
  217. package/claude/src/mcp/tool-packs/content/index.js +80 -0
  218. package/claude/src/mcp/tool-packs/contracts.js +30 -0
  219. package/claude/src/mcp/tool-packs/index.js +15 -0
  220. package/claude/src/mcp/tool-packs/session/index.js +243 -0
  221. package/claude/src/mcp/tool-packs/workspace/index.js +98 -0
  222. package/claude/src/mcp/utils/extension-root.js +31 -0
  223. package/claude/src/mcp/validation/agent-checker.js +81 -0
  224. package/claude/src/mcp/validation/dag-checker.js +214 -0
  225. package/claude/src/mcp/validation/file-overlap-checker.js +63 -0
  226. package/claude/src/mcp/validation/schema-checker.js +108 -0
  227. package/claude/src/platforms/claude/runtime-config.js +60 -0
  228. package/claude/src/platforms/shared/adapters/claude-adapter.js +36 -0
  229. package/claude/src/platforms/shared/adapters/conventions.js +29 -0
  230. package/claude/src/platforms/shared/adapters/exit-codes.js +6 -0
  231. package/claude/src/platforms/shared/adapters/factory.js +40 -0
  232. package/claude/src/platforms/shared/agent-names.js +10 -0
  233. package/claude/src/platforms/shared/hook-runner.js +52 -0
  234. package/claude/src/references/architecture.md +139 -0
  235. package/claude/src/references/orchestration-steps.md +193 -0
  236. package/claude/src/skills/shared/code-review/SKILL.md +145 -0
  237. package/claude/src/skills/shared/delegation/SKILL.md +370 -0
  238. package/claude/src/skills/shared/delegation/protocols/agent-base-protocol.md +145 -0
  239. package/claude/src/skills/shared/delegation/protocols/filesystem-safety-protocol.md +31 -0
  240. package/claude/src/skills/shared/design-dialogue/SKILL.md +284 -0
  241. package/claude/src/skills/shared/execution/SKILL.md +258 -0
  242. package/claude/src/skills/shared/implementation-planning/SKILL.md +303 -0
  243. package/claude/src/skills/shared/session-management/SKILL.md +314 -0
  244. package/claude/src/skills/shared/validation/SKILL.md +204 -0
  245. package/claude/src/state/session-state.js +113 -0
  246. package/claude/src/templates/design-document.md +95 -0
  247. package/claude/src/templates/implementation-plan.md +86 -0
  248. package/claude/src/templates/session-state.md +68 -0
  249. package/claude/src/version.json +3 -0
  250. package/commands/maestro/a11y-audit.toml +22 -0
  251. package/commands/maestro/archive.toml +23 -0
  252. package/commands/maestro/compliance-check.toml +22 -0
  253. package/commands/maestro/debug.toml +23 -0
  254. package/commands/maestro/execute.toml +30 -0
  255. package/commands/maestro/orchestrate.toml +30 -0
  256. package/commands/maestro/perf-check.toml +22 -0
  257. package/commands/maestro/resume.toml +38 -0
  258. package/commands/maestro/review.toml +23 -0
  259. package/commands/maestro/security-audit.toml +24 -0
  260. package/commands/maestro/seo-audit.toml +22 -0
  261. package/commands/maestro/status.toml +21 -0
  262. package/docs/architecture.md +310 -0
  263. package/docs/cicd.md +647 -0
  264. package/docs/flow.md +255 -0
  265. package/docs/maestro-cheatsheet.md +199 -0
  266. package/docs/overview.md +141 -0
  267. package/docs/runtime-claude.md +190 -0
  268. package/docs/runtime-codex.md +197 -0
  269. package/docs/runtime-gemini.md +170 -0
  270. package/docs/runtime-qwen.md +147 -0
  271. package/docs/usage.md +312 -0
  272. package/gemini-extension.json +55 -0
  273. package/hooks/adapters/gemini-adapter.js +2 -0
  274. package/hooks/adapters/qwen-adapter.js +2 -0
  275. package/hooks/hook-runner.js +3 -0
  276. package/hooks/hooks.json +56 -0
  277. package/mcp/maestro-server.js +4 -0
  278. package/package.json +93 -0
  279. package/plugins/maestro/.app.json +3 -0
  280. package/plugins/maestro/.codex-plugin/plugin.json +41 -0
  281. package/plugins/maestro/.mcp.json +16 -0
  282. package/plugins/maestro/README.md +57 -0
  283. package/plugins/maestro/references/runtime-guide.md +125 -0
  284. package/plugins/maestro/skills/a11y-audit/SKILL.md +16 -0
  285. package/plugins/maestro/skills/archive/SKILL.md +16 -0
  286. package/plugins/maestro/skills/code-review/SKILL.md +6 -0
  287. package/plugins/maestro/skills/compliance-check/SKILL.md +16 -0
  288. package/plugins/maestro/skills/debug-workflow/SKILL.md +16 -0
  289. package/plugins/maestro/skills/delegation/SKILL.md +6 -0
  290. package/plugins/maestro/skills/design-dialogue/SKILL.md +6 -0
  291. package/plugins/maestro/skills/execute/SKILL.md +16 -0
  292. package/plugins/maestro/skills/execution/SKILL.md +6 -0
  293. package/plugins/maestro/skills/implementation-planning/SKILL.md +6 -0
  294. package/plugins/maestro/skills/orchestrate/SKILL.md +16 -0
  295. package/plugins/maestro/skills/perf-check/SKILL.md +16 -0
  296. package/plugins/maestro/skills/resume-session/SKILL.md +16 -0
  297. package/plugins/maestro/skills/review-code/SKILL.md +16 -0
  298. package/plugins/maestro/skills/security-audit/SKILL.md +16 -0
  299. package/plugins/maestro/skills/seo-audit/SKILL.md +16 -0
  300. package/plugins/maestro/skills/session-management/SKILL.md +6 -0
  301. package/plugins/maestro/skills/status/SKILL.md +14 -0
  302. package/plugins/maestro/skills/validation/SKILL.md +6 -0
  303. package/plugins/maestro/src/agents/accessibility-specialist.md +163 -0
  304. package/plugins/maestro/src/agents/analytics-engineer.md +182 -0
  305. package/plugins/maestro/src/agents/api-designer.md +124 -0
  306. package/plugins/maestro/src/agents/architect.md +120 -0
  307. package/plugins/maestro/src/agents/cloud-architect.md +134 -0
  308. package/plugins/maestro/src/agents/cobol-engineer.md +127 -0
  309. package/plugins/maestro/src/agents/code-reviewer.md +123 -0
  310. package/plugins/maestro/src/agents/coder.md +132 -0
  311. package/plugins/maestro/src/agents/compliance-reviewer.md +219 -0
  312. package/plugins/maestro/src/agents/content-strategist.md +111 -0
  313. package/plugins/maestro/src/agents/copywriter.md +113 -0
  314. package/plugins/maestro/src/agents/data-engineer.md +130 -0
  315. package/plugins/maestro/src/agents/database-administrator.md +126 -0
  316. package/plugins/maestro/src/agents/db2-dba.md +124 -0
  317. package/plugins/maestro/src/agents/debugger.md +133 -0
  318. package/plugins/maestro/src/agents/design-system-engineer.md +258 -0
  319. package/plugins/maestro/src/agents/devops-engineer.md +138 -0
  320. package/plugins/maestro/src/agents/hlasm-assembler-specialist.md +134 -0
  321. package/plugins/maestro/src/agents/i18n-specialist.md +241 -0
  322. package/plugins/maestro/src/agents/ibm-i-specialist.md +132 -0
  323. package/plugins/maestro/src/agents/integration-engineer.md +133 -0
  324. package/plugins/maestro/src/agents/ml-engineer.md +115 -0
  325. package/plugins/maestro/src/agents/mlops-engineer.md +116 -0
  326. package/plugins/maestro/src/agents/mobile-engineer.md +115 -0
  327. package/plugins/maestro/src/agents/observability-engineer.md +133 -0
  328. package/plugins/maestro/src/agents/performance-engineer.md +139 -0
  329. package/plugins/maestro/src/agents/platform-engineer.md +129 -0
  330. package/plugins/maestro/src/agents/product-manager.md +170 -0
  331. package/plugins/maestro/src/agents/prompt-engineer.md +129 -0
  332. package/plugins/maestro/src/agents/refactor.md +138 -0
  333. package/plugins/maestro/src/agents/release-manager.md +132 -0
  334. package/plugins/maestro/src/agents/security-engineer.md +143 -0
  335. package/plugins/maestro/src/agents/seo-specialist.md +129 -0
  336. package/plugins/maestro/src/agents/site-reliability-engineer.md +131 -0
  337. package/plugins/maestro/src/agents/solutions-architect.md +137 -0
  338. package/plugins/maestro/src/agents/technical-writer.md +129 -0
  339. package/plugins/maestro/src/agents/tester.md +135 -0
  340. package/plugins/maestro/src/agents/ux-designer.md +168 -0
  341. package/plugins/maestro/src/agents/zos-sysprog.md +134 -0
  342. package/plugins/maestro/src/config/setting-resolver.js +32 -0
  343. package/plugins/maestro/src/core/agent-registry.js +67 -0
  344. package/plugins/maestro/src/core/canonical-source.js +39 -0
  345. package/plugins/maestro/src/core/env-file-parser.js +82 -0
  346. package/plugins/maestro/src/core/feature-blocks.js +34 -0
  347. package/plugins/maestro/src/core/logger.js +12 -0
  348. package/plugins/maestro/src/core/markdown-state.js +36 -0
  349. package/plugins/maestro/src/core/policy-rules.js +32 -0
  350. package/plugins/maestro/src/core/project-root-resolver.js +184 -0
  351. package/plugins/maestro/src/core/stdin-reader.js +77 -0
  352. package/plugins/maestro/src/core/version.js +50 -0
  353. package/plugins/maestro/src/entry-points/core-command-registry.js +37 -0
  354. package/plugins/maestro/src/entry-points/preamble-builders.js +54 -0
  355. package/plugins/maestro/src/entry-points/registry.js +199 -0
  356. package/plugins/maestro/src/entry-points/templates/claude-core-command.md.tmpl +38 -0
  357. package/plugins/maestro/src/entry-points/templates/claude-skill.md.tmpl +18 -0
  358. package/plugins/maestro/src/entry-points/templates/codex-core-command.md.tmpl +16 -0
  359. package/plugins/maestro/src/entry-points/templates/codex-skill.md.tmpl +11 -0
  360. package/plugins/maestro/src/entry-points/templates/gemini-command.toml.tmpl +17 -0
  361. package/plugins/maestro/src/entry-points/templates/gemini-core-command.toml.tmpl +30 -0
  362. package/plugins/maestro/src/generated/agent-registry.json +630 -0
  363. package/plugins/maestro/src/generated/hook-registry.json +18 -0
  364. package/plugins/maestro/src/generated/resource-registry.json +16 -0
  365. package/plugins/maestro/src/hooks/logic/after-agent-logic.js +54 -0
  366. package/plugins/maestro/src/hooks/logic/before-agent-logic.js +57 -0
  367. package/plugins/maestro/src/hooks/logic/hook-state.js +127 -0
  368. package/plugins/maestro/src/hooks/logic/session-end-logic.js +17 -0
  369. package/plugins/maestro/src/hooks/logic/session-start-logic.js +25 -0
  370. package/plugins/maestro/src/lib/discovery/index.js +172 -0
  371. package/plugins/maestro/src/lib/errors/index.js +104 -0
  372. package/plugins/maestro/src/lib/framework-detection.js +50 -0
  373. package/plugins/maestro/src/lib/frontmatter/index.js +262 -0
  374. package/plugins/maestro/src/lib/io/index.js +96 -0
  375. package/plugins/maestro/src/lib/naming/index.js +94 -0
  376. package/plugins/maestro/src/lib/validation/index.js +124 -0
  377. package/plugins/maestro/src/lib/yaml-emit.js +38 -0
  378. package/plugins/maestro/src/mcp/content/provider.js +68 -0
  379. package/plugins/maestro/src/mcp/content/runtime-content.js +188 -0
  380. package/plugins/maestro/src/mcp/contracts/cache-path-rejector.js +39 -0
  381. package/plugins/maestro/src/mcp/contracts/downstream-context.js +106 -0
  382. package/plugins/maestro/src/mcp/contracts/plan-schema.js +148 -0
  383. package/plugins/maestro/src/mcp/contracts/workspace-marker.js +61 -0
  384. package/plugins/maestro/src/mcp/core/create-server.js +76 -0
  385. package/plugins/maestro/src/mcp/core/line-reader.js +35 -0
  386. package/plugins/maestro/src/mcp/core/project-root-cache.js +120 -0
  387. package/plugins/maestro/src/mcp/core/protocol-dispatcher.js +274 -0
  388. package/plugins/maestro/src/mcp/core/recovery-hints.js +43 -0
  389. package/plugins/maestro/src/mcp/core/tool-outcome.js +77 -0
  390. package/plugins/maestro/src/mcp/core/tool-registry.js +82 -0
  391. package/plugins/maestro/src/mcp/handlers/assess-task-complexity.js +108 -0
  392. package/plugins/maestro/src/mcp/handlers/blocker-parser.js +34 -0
  393. package/plugins/maestro/src/mcp/handlers/design-gate.js +393 -0
  394. package/plugins/maestro/src/mcp/handlers/get-agent.js +54 -0
  395. package/plugins/maestro/src/mcp/handlers/get-runtime-context.js +49 -0
  396. package/plugins/maestro/src/mcp/handlers/get-skill-content.js +51 -0
  397. package/plugins/maestro/src/mcp/handlers/initialize-workspace.js +45 -0
  398. package/plugins/maestro/src/mcp/handlers/reconciliation.js +224 -0
  399. package/plugins/maestro/src/mcp/handlers/resolve-settings.js +39 -0
  400. package/plugins/maestro/src/mcp/handlers/session-state-core.js +108 -0
  401. package/plugins/maestro/src/mcp/handlers/session-state-tools.js +562 -0
  402. package/plugins/maestro/src/mcp/handlers/validate-plan.js +76 -0
  403. package/plugins/maestro/src/mcp/maestro-server.js +122 -0
  404. package/plugins/maestro/src/mcp/runtime/runtime-config-map.js +70 -0
  405. package/plugins/maestro/src/mcp/tool-packs/content/index.js +80 -0
  406. package/plugins/maestro/src/mcp/tool-packs/contracts.js +30 -0
  407. package/plugins/maestro/src/mcp/tool-packs/index.js +15 -0
  408. package/plugins/maestro/src/mcp/tool-packs/session/index.js +243 -0
  409. package/plugins/maestro/src/mcp/tool-packs/workspace/index.js +98 -0
  410. package/plugins/maestro/src/mcp/utils/extension-root.js +31 -0
  411. package/plugins/maestro/src/mcp/validation/agent-checker.js +81 -0
  412. package/plugins/maestro/src/mcp/validation/dag-checker.js +214 -0
  413. package/plugins/maestro/src/mcp/validation/file-overlap-checker.js +63 -0
  414. package/plugins/maestro/src/mcp/validation/schema-checker.js +108 -0
  415. package/plugins/maestro/src/platforms/codex/runtime-config.js +58 -0
  416. package/plugins/maestro/src/platforms/shared/adapters/conventions.js +29 -0
  417. package/plugins/maestro/src/platforms/shared/adapters/exit-codes.js +6 -0
  418. package/plugins/maestro/src/platforms/shared/adapters/factory.js +40 -0
  419. package/plugins/maestro/src/platforms/shared/agent-names.js +10 -0
  420. package/plugins/maestro/src/platforms/shared/hook-runner.js +52 -0
  421. package/plugins/maestro/src/references/architecture.md +139 -0
  422. package/plugins/maestro/src/references/orchestration-steps.md +193 -0
  423. package/plugins/maestro/src/skills/shared/code-review/SKILL.md +145 -0
  424. package/plugins/maestro/src/skills/shared/delegation/SKILL.md +370 -0
  425. package/plugins/maestro/src/skills/shared/delegation/protocols/agent-base-protocol.md +145 -0
  426. package/plugins/maestro/src/skills/shared/delegation/protocols/filesystem-safety-protocol.md +31 -0
  427. package/plugins/maestro/src/skills/shared/design-dialogue/SKILL.md +284 -0
  428. package/plugins/maestro/src/skills/shared/execution/SKILL.md +258 -0
  429. package/plugins/maestro/src/skills/shared/implementation-planning/SKILL.md +303 -0
  430. package/plugins/maestro/src/skills/shared/session-management/SKILL.md +314 -0
  431. package/plugins/maestro/src/skills/shared/validation/SKILL.md +204 -0
  432. package/plugins/maestro/src/state/session-state.js +113 -0
  433. package/plugins/maestro/src/templates/design-document.md +95 -0
  434. package/plugins/maestro/src/templates/implementation-plan.md +86 -0
  435. package/plugins/maestro/src/templates/session-state.md +68 -0
  436. package/plugins/maestro/src/version.json +3 -0
  437. package/policies/maestro.toml +44 -0
  438. package/qwen/agents/accessibility_specialist.md +18 -0
  439. package/qwen/agents/analytics_engineer.md +20 -0
  440. package/qwen/agents/api_designer.md +17 -0
  441. package/qwen/agents/architect.md +17 -0
  442. package/qwen/agents/cloud_architect.md +17 -0
  443. package/qwen/agents/cobol_engineer.md +20 -0
  444. package/qwen/agents/code_reviewer.md +15 -0
  445. package/qwen/agents/coder.md +20 -0
  446. package/qwen/agents/compliance_reviewer.md +17 -0
  447. package/qwen/agents/content_strategist.md +17 -0
  448. package/qwen/agents/copywriter.md +17 -0
  449. package/qwen/agents/data_engineer.md +20 -0
  450. package/qwen/agents/database_administrator.md +19 -0
  451. package/qwen/agents/db2_dba.md +19 -0
  452. package/qwen/agents/debugger.md +17 -0
  453. package/qwen/agents/design_system_engineer.md +20 -0
  454. package/qwen/agents/devops_engineer.md +21 -0
  455. package/qwen/agents/hlasm_assembler_specialist.md +20 -0
  456. package/qwen/agents/i18n_specialist.md +19 -0
  457. package/qwen/agents/ibm_i_specialist.md +20 -0
  458. package/qwen/agents/integration_engineer.md +21 -0
  459. package/qwen/agents/ml_engineer.md +21 -0
  460. package/qwen/agents/mlops_engineer.md +21 -0
  461. package/qwen/agents/mobile_engineer.md +21 -0
  462. package/qwen/agents/observability_engineer.md +21 -0
  463. package/qwen/agents/performance_engineer.md +19 -0
  464. package/qwen/agents/platform_engineer.md +22 -0
  465. package/qwen/agents/product_manager.md +18 -0
  466. package/qwen/agents/prompt_engineer.md +20 -0
  467. package/qwen/agents/refactor.md +20 -0
  468. package/qwen/agents/release_manager.md +20 -0
  469. package/qwen/agents/security_engineer.md +19 -0
  470. package/qwen/agents/seo_specialist.md +19 -0
  471. package/qwen/agents/site_reliability_engineer.md +19 -0
  472. package/qwen/agents/solutions_architect.md +17 -0
  473. package/qwen/agents/technical_writer.md +19 -0
  474. package/qwen/agents/tester.md +21 -0
  475. package/qwen/agents/ux_designer.md +18 -0
  476. package/qwen/agents/zos_sysprog.md +19 -0
  477. package/qwen/hooks.json +56 -0
  478. package/qwen-extension.json +55 -0
  479. package/scripts/check-layer-boundaries.js +74 -0
  480. package/scripts/generate.js +155 -0
  481. package/scripts/install-codex-plugin.js +167 -0
  482. package/scripts/install-git-hooks.js +43 -0
  483. package/scripts/npm-publish-idempotent.js +150 -0
  484. package/scripts/package-release-artifacts.js +156 -0
  485. package/scripts/release-artifact-manifest.js +378 -0
  486. package/scripts/release-version-metadata.js +129 -0
  487. package/scripts/update-versions.js +33 -0
  488. package/scripts/verify-npm-pack.js +85 -0
  489. package/scripts/verify-release-artifacts.js +95 -0
  490. package/src/agents/accessibility-specialist.md +163 -0
  491. package/src/agents/analytics-engineer.md +182 -0
  492. package/src/agents/api-designer.md +124 -0
  493. package/src/agents/architect.md +120 -0
  494. package/src/agents/cloud-architect.md +134 -0
  495. package/src/agents/cobol-engineer.md +127 -0
  496. package/src/agents/code-reviewer.md +123 -0
  497. package/src/agents/coder.md +132 -0
  498. package/src/agents/compliance-reviewer.md +219 -0
  499. package/src/agents/content-strategist.md +111 -0
  500. package/src/agents/copywriter.md +113 -0
  501. package/src/agents/data-engineer.md +130 -0
  502. package/src/agents/database-administrator.md +126 -0
  503. package/src/agents/db2-dba.md +124 -0
  504. package/src/agents/debugger.md +133 -0
  505. package/src/agents/design-system-engineer.md +258 -0
  506. package/src/agents/devops-engineer.md +138 -0
  507. package/src/agents/hlasm-assembler-specialist.md +134 -0
  508. package/src/agents/i18n-specialist.md +241 -0
  509. package/src/agents/ibm-i-specialist.md +132 -0
  510. package/src/agents/integration-engineer.md +133 -0
  511. package/src/agents/ml-engineer.md +115 -0
  512. package/src/agents/mlops-engineer.md +116 -0
  513. package/src/agents/mobile-engineer.md +115 -0
  514. package/src/agents/observability-engineer.md +133 -0
  515. package/src/agents/performance-engineer.md +139 -0
  516. package/src/agents/platform-engineer.md +129 -0
  517. package/src/agents/product-manager.md +170 -0
  518. package/src/agents/prompt-engineer.md +129 -0
  519. package/src/agents/refactor.md +138 -0
  520. package/src/agents/release-manager.md +132 -0
  521. package/src/agents/security-engineer.md +143 -0
  522. package/src/agents/seo-specialist.md +129 -0
  523. package/src/agents/site-reliability-engineer.md +131 -0
  524. package/src/agents/solutions-architect.md +137 -0
  525. package/src/agents/technical-writer.md +129 -0
  526. package/src/agents/tester.md +135 -0
  527. package/src/agents/ux-designer.md +168 -0
  528. package/src/agents/zos-sysprog.md +134 -0
  529. package/src/config/setting-resolver.js +32 -0
  530. package/src/core/agent-registry.js +67 -0
  531. package/src/core/canonical-source.js +39 -0
  532. package/src/core/env-file-parser.js +82 -0
  533. package/src/core/feature-blocks.js +34 -0
  534. package/src/core/logger.js +12 -0
  535. package/src/core/markdown-state.js +36 -0
  536. package/src/core/policy-rules.js +32 -0
  537. package/src/core/project-root-resolver.js +184 -0
  538. package/src/core/stdin-reader.js +77 -0
  539. package/src/core/version.js +50 -0
  540. package/src/entry-points/core-command-registry.js +37 -0
  541. package/src/entry-points/preamble-builders.js +54 -0
  542. package/src/entry-points/registry.js +199 -0
  543. package/src/entry-points/templates/claude-core-command.md.tmpl +38 -0
  544. package/src/entry-points/templates/claude-skill.md.tmpl +18 -0
  545. package/src/entry-points/templates/codex-core-command.md.tmpl +16 -0
  546. package/src/entry-points/templates/codex-skill.md.tmpl +11 -0
  547. package/src/entry-points/templates/gemini-command.toml.tmpl +17 -0
  548. package/src/entry-points/templates/gemini-core-command.toml.tmpl +30 -0
  549. package/src/generated/agent-registry.json +630 -0
  550. package/src/generated/hook-registry.json +18 -0
  551. package/src/generated/resource-registry.json +16 -0
  552. package/src/generator/entry-point-expander.js +182 -0
  553. package/src/generator/file-writer.js +167 -0
  554. package/src/generator/generation-session.js +62 -0
  555. package/src/generator/manifest-curator.js +31 -0
  556. package/src/generator/manifest-expander.js +256 -0
  557. package/src/generator/payload-builder.js +217 -0
  558. package/src/generator/registry-scanner.js +130 -0
  559. package/src/generator/stale-pruner.js +101 -0
  560. package/src/hooks/logic/after-agent-logic.js +54 -0
  561. package/src/hooks/logic/before-agent-logic.js +57 -0
  562. package/src/hooks/logic/hook-state.js +127 -0
  563. package/src/hooks/logic/session-end-logic.js +17 -0
  564. package/src/hooks/logic/session-start-logic.js +25 -0
  565. package/src/lib/discovery/index.js +172 -0
  566. package/src/lib/errors/index.js +104 -0
  567. package/src/lib/framework-detection.js +50 -0
  568. package/src/lib/frontmatter/index.js +262 -0
  569. package/src/lib/io/index.js +96 -0
  570. package/src/lib/naming/index.js +94 -0
  571. package/src/lib/validation/index.js +124 -0
  572. package/src/lib/yaml-emit.js +38 -0
  573. package/src/manifest.js +11 -0
  574. package/src/mcp/content/provider.js +68 -0
  575. package/src/mcp/content/runtime-content.js +188 -0
  576. package/src/mcp/contracts/cache-path-rejector.js +39 -0
  577. package/src/mcp/contracts/downstream-context.js +106 -0
  578. package/src/mcp/contracts/plan-schema.js +148 -0
  579. package/src/mcp/contracts/workspace-marker.js +61 -0
  580. package/src/mcp/core/create-server.js +76 -0
  581. package/src/mcp/core/line-reader.js +35 -0
  582. package/src/mcp/core/project-root-cache.js +120 -0
  583. package/src/mcp/core/protocol-dispatcher.js +274 -0
  584. package/src/mcp/core/recovery-hints.js +43 -0
  585. package/src/mcp/core/tool-outcome.js +77 -0
  586. package/src/mcp/core/tool-registry.js +82 -0
  587. package/src/mcp/handlers/assess-task-complexity.js +108 -0
  588. package/src/mcp/handlers/blocker-parser.js +34 -0
  589. package/src/mcp/handlers/design-gate.js +393 -0
  590. package/src/mcp/handlers/get-agent.js +54 -0
  591. package/src/mcp/handlers/get-runtime-context.js +49 -0
  592. package/src/mcp/handlers/get-skill-content.js +51 -0
  593. package/src/mcp/handlers/initialize-workspace.js +45 -0
  594. package/src/mcp/handlers/reconciliation.js +224 -0
  595. package/src/mcp/handlers/resolve-settings.js +39 -0
  596. package/src/mcp/handlers/session-state-core.js +108 -0
  597. package/src/mcp/handlers/session-state-tools.js +562 -0
  598. package/src/mcp/handlers/validate-plan.js +76 -0
  599. package/src/mcp/maestro-server.js +122 -0
  600. package/src/mcp/runtime/runtime-config-map.js +70 -0
  601. package/src/mcp/tool-packs/content/index.js +80 -0
  602. package/src/mcp/tool-packs/contracts.js +30 -0
  603. package/src/mcp/tool-packs/index.js +15 -0
  604. package/src/mcp/tool-packs/session/index.js +243 -0
  605. package/src/mcp/tool-packs/workspace/index.js +98 -0
  606. package/src/mcp/utils/extension-root.js +31 -0
  607. package/src/mcp/validation/agent-checker.js +81 -0
  608. package/src/mcp/validation/dag-checker.js +214 -0
  609. package/src/mcp/validation/file-overlap-checker.js +63 -0
  610. package/src/mcp/validation/schema-checker.js +108 -0
  611. package/src/platforms/claude/metadata.js +96 -0
  612. package/src/platforms/claude/runtime-config.js +60 -0
  613. package/src/platforms/codex/metadata.js +107 -0
  614. package/src/platforms/codex/runtime-config.js +58 -0
  615. package/src/platforms/gemini/metadata.js +27 -0
  616. package/src/platforms/gemini/runtime-config.js +62 -0
  617. package/src/platforms/metadata-shared.js +131 -0
  618. package/src/platforms/metadata.js +29 -0
  619. package/src/platforms/qwen/metadata.js +27 -0
  620. package/src/platforms/qwen/runtime-config.js +62 -0
  621. package/src/platforms/shared/adapters/claude-adapter.js +36 -0
  622. package/src/platforms/shared/adapters/conventions.js +29 -0
  623. package/src/platforms/shared/adapters/exit-codes.js +6 -0
  624. package/src/platforms/shared/adapters/factory.js +40 -0
  625. package/src/platforms/shared/adapters/gemini-adapter.js +34 -0
  626. package/src/platforms/shared/adapters/qwen-adapter.js +93 -0
  627. package/src/platforms/shared/agent-names.js +10 -0
  628. package/src/platforms/shared/hook-runner.js +52 -0
  629. package/src/references/architecture.md +139 -0
  630. package/src/references/orchestration-steps.md +193 -0
  631. package/src/scripts/ensure-workspace.js +14 -0
  632. package/src/scripts/read-active-session.js +26 -0
  633. package/src/scripts/read-setting.js +18 -0
  634. package/src/scripts/read-state.js +17 -0
  635. package/src/scripts/write-state.js +22 -0
  636. package/src/skills/shared/code-review/SKILL.md +145 -0
  637. package/src/skills/shared/delegation/SKILL.md +370 -0
  638. package/src/skills/shared/delegation/protocols/agent-base-protocol.md +145 -0
  639. package/src/skills/shared/delegation/protocols/filesystem-safety-protocol.md +31 -0
  640. package/src/skills/shared/design-dialogue/SKILL.md +284 -0
  641. package/src/skills/shared/execution/SKILL.md +258 -0
  642. package/src/skills/shared/implementation-planning/SKILL.md +303 -0
  643. package/src/skills/shared/session-management/SKILL.md +314 -0
  644. package/src/skills/shared/validation/SKILL.md +204 -0
  645. package/src/state/session-state.js +113 -0
  646. package/src/templates/design-document.md +95 -0
  647. package/src/templates/implementation-plan.md +86 -0
  648. package/src/templates/session-state.md +68 -0
  649. package/src/transforms/agent-stub.js +29 -0
  650. package/src/transforms/extract-examples.js +63 -0
  651. package/src/transforms/index.js +35 -0
  652. package/src/transforms/parse-frontmatter.js +23 -0
  653. package/src/transforms/rebuild-frontmatter.js +147 -0
  654. package/src/transforms/skill-discovery-stub.js +27 -0
  655. package/src/transforms/skill-metadata.js +14 -0
@@ -0,0 +1,204 @@
1
+ ---
2
+ name: validation
3
+ description: Cross-cutting validation methodology for verifying phase outputs and project integrity
4
+ ---
5
+
6
+ # Validation Skill
7
+
8
+ Activate this skill when validating phase outputs during orchestration execution or when running standalone validation checks. This skill provides the pipeline, heuristics, and interpretation rules for verifying that changes meet quality standards.
9
+
10
+ ## Validation Pipeline
11
+
12
+ Execute validation steps in this order. Stop on the first blocking failure unless the user explicitly requests continuing.
13
+
14
+ ### Step 1: Build / Compile
15
+ Verify the project compiles without errors.
16
+
17
+ | Project Type | Command |
18
+ |-------------|---------|
19
+ | Node.js (TypeScript) | `npx tsc --noEmit` |
20
+ | Node.js (JavaScript) | N/A (skip) |
21
+ | Rust | `cargo build` |
22
+ | Go | `go build ./...` |
23
+ | Python | `python -m py_compile [files]` |
24
+ | Java (Maven) | `mvn compile` |
25
+ | Java (Gradle) | `./gradlew compileJava` |
26
+
27
+ ### Step 2: Lint / Format
28
+ Verify code meets style and quality standards.
29
+
30
+ | Project Type | Command |
31
+ |-------------|---------|
32
+ | Node.js | `npx eslint . && npx prettier --check .` |
33
+ | Rust | `cargo clippy && cargo fmt --check` |
34
+ | Go | `go vet ./... && gofmt -l .` |
35
+ | Python | `ruff check . && ruff format --check .` |
36
+ | Java | `mvn checkstyle:check` or `./gradlew checkstyleMain` |
37
+
38
+ ### Step 3: Unit Tests
39
+ Run unit tests to verify behavior preservation.
40
+
41
+ | Project Type | Command |
42
+ |-------------|---------|
43
+ | Node.js (Jest) | `npx jest` |
44
+ | Node.js (Vitest) | `npx vitest run` |
45
+ | Rust | `cargo test` |
46
+ | Go | `go test ./...` |
47
+ | Python (pytest) | `python -m pytest tests/` |
48
+ | Java (Maven) | `mvn test` |
49
+ | Java (Gradle) | `./gradlew test` |
50
+
51
+ ### Step 4: Integration Tests
52
+ Run integration tests if available and applicable.
53
+
54
+ Detect integration test presence by looking for:
55
+ - `tests/integration/`, `test/integration/`, or `**/integration_test*` directories/files
56
+ - Test files with `integration` in the name
57
+ - Test scripts in package.json (e.g., `test:integration`)
58
+
59
+ ### Step 5: Manual Verification
60
+ For changes that cannot be automatically validated, present a checklist to the user.
61
+
62
+ ## Project Type Detection
63
+
64
+ Detect the project type by checking for the presence of these files in the project root:
65
+
66
+ | Indicator File | Project Type |
67
+ |---------------|-------------|
68
+ | `package.json` | Node.js (check for `typescript` dep for TS) |
69
+ | `Cargo.toml` | Rust |
70
+ | `go.mod` | Go |
71
+ | `pyproject.toml` or `setup.py` | Python |
72
+ | `pom.xml` | Java (Maven) |
73
+ | `build.gradle` or `build.gradle.kts` | Java (Gradle) |
74
+ | `Gemfile` | Ruby |
75
+ | `*.csproj` or `*.sln` | .NET |
76
+
77
+ When multiple indicators are present, validate each project type independently.
78
+
79
+ ## Validation Result Interpretation
80
+
81
+ ### Pass
82
+ All executed validation steps completed with exit code 0. No errors or warnings that indicate broken functionality.
83
+
84
+ ### Fail (Blocking)
85
+ Any of the following constitute a blocking failure:
86
+ - Build/compile errors
87
+ - Lint errors (not warnings, unless the project treats warnings as errors)
88
+ - Test failures
89
+ - Type errors
90
+
91
+ ### Warn (Non-Blocking)
92
+ The following are recorded but do not block progression:
93
+ - Lint warnings (when not configured as errors)
94
+ - Deprecation notices
95
+ - Coverage decreases (unless coverage threshold is configured)
96
+ - Format-only issues (can be auto-fixed)
97
+
98
+ ## Validation Modes
99
+
100
+ The validation strictness is controlled by `MAESTRO_VALIDATION_STRICTNESS` (default: `normal`).
101
+
102
+ | Mode | Behavior |
103
+ |------|----------|
104
+ | `strict` | Warnings are treated as blocking failures. All lint warnings, deprecation notices, and coverage decreases block phase progression. |
105
+ | `normal` | Only errors block. Warnings are recorded but do not prevent phase completion. This is the default behavior described in the Pass/Fail/Warn sections above. |
106
+ | `lenient` | Nothing blocks automatically. All failures and warnings are recorded in session state and reported to the user, but phase progression continues. The user reviews the accumulated report at completion. |
107
+
108
+ ### Strictness Application
109
+
110
+ When evaluating each validation step:
111
+ 1. Run the validation command and capture the exit code and output
112
+ 2. Classify the result as Pass, Fail (Blocking), or Warn (Non-Blocking) using the standard criteria above
113
+ 3. Apply the strictness mode:
114
+ - `strict`: Fail (Blocking) AND Warn (Non-Blocking) both stop progression
115
+ - `normal`: Only Fail (Blocking) stops progression
116
+ - `lenient`: Record everything, stop nothing — append all results to session state and continue
117
+ 4. If strictness causes a result to be downgraded from blocking to non-blocking, note this in the validation output: "Warning recorded but not blocking (lenient mode)"
118
+
119
+ ## Post-Phase Validation
120
+
121
+ ### When to Validate
122
+ Run validation after:
123
+ - Every phase that creates or modifies source code
124
+ - Every parallel batch completion (validate the combined result)
125
+ - Before marking any phase as `completed`
126
+
127
+ ### When to Skip Validation
128
+ Skip validation when:
129
+ - The phase only modified documentation files
130
+ - The phase only produced read-only analysis (`architect`, `code-reviewer` reports)
131
+ - The user explicitly requests skipping validation
132
+
133
+ Record `skipped` with rationale in the phase validation result.
134
+
135
+ ## Manual Verification Checklist
136
+
137
+ For changes that cannot be automatically validated, present this checklist template:
138
+
139
+ ```
140
+ ### Manual Verification Required
141
+
142
+ The following changes require manual verification:
143
+
144
+ - [ ] [Description of what to verify]
145
+ - [ ] [Visual/UI changes look correct]
146
+ - [ ] [Integration with external service works]
147
+ - [ ] [Environment-specific behavior confirmed]
148
+
149
+ Please confirm these items are verified before I mark this phase as complete.
150
+ ```
151
+
152
+ Use manual verification for:
153
+ - UI/visual changes
154
+ - External service integrations
155
+ - Environment-specific configurations
156
+ - Performance improvements (require load testing)
157
+ - Security remediations (require penetration testing)
158
+
159
+ ## Incremental Validation Mode
160
+
161
+ When full pipeline validation is unnecessary, use targeted validation based on the type of changes in the completed phase:
162
+
163
+ ### Validation Scope by Change Type
164
+ - **Phase created new files only** (no existing files modified): Run lint + type check on the new files only. This provides fast feedback without running the full test suite against unchanged code.
165
+ - **Phase modified existing files**: Run the full test suite. Existing tests serve as behavior-preservation checks — any failure indicates a potential regression.
166
+ - **Phase touched configuration files** (build config, CI config, environment config, dependency manifests): Run the full pipeline (build + lint + type check + all tests). Configuration changes can have cascading effects across the entire project.
167
+ - **Phase only produced documentation or analysis**: Skip validation (record as `skipped` with rationale).
168
+
169
+ ### Scope Detection
170
+ Determine the change type automatically from the completing agent's Task Report:
171
+ 1. Parse Files Created and Files Modified lists
172
+ 2. Classify each file: source code, test code, configuration, documentation
173
+ 3. Apply the most comprehensive validation scope that matches any changed file type (e.g., if one config file and three source files changed, run the full pipeline because config was touched)
174
+
175
+ ## Validation Failure Diagnosis
176
+
177
+ When validation fails, provide a structured diagnosis to help the orchestrator decide next steps.
178
+
179
+ ### Diagnosis Protocol
180
+ 1. **Categorize the failure**: type error, lint error, test failure, build error, runtime error
181
+ 2. **Identify involved files**: Which files from the current phase appear in the error output?
182
+ 3. **Determine causality**: Is the failure caused by the current phase's changes, or is it a pre-existing issue?
183
+ - Check: Does the failure reference files modified in this phase?
184
+ - Check: Run validation against a clean snapshot while always restoring local state:
185
+ - `git stash push --include-untracked -m "maestro-causality-check"`
186
+ - `[validation command]` (capture exit code as `validation_exit`)
187
+ - `git stash pop` (run regardless of `validation_exit`)
188
+ - If `validation_exit` is non-zero in the clean snapshot, classify the failure as pre-existing.
189
+ - If `git stash pop` fails, mark the diagnosis as inconclusive until restoration conflicts are resolved.
190
+ 4. **Classify resolution path**:
191
+ - **Fixable by same agent**: The error is in files the agent owns, the fix is straightforward (missing import, type mismatch, lint violation). Re-delegate to the same agent with the error context.
192
+ - **Requires different agent**: The error is caused by an interface mismatch between phases. Identify which phase introduced the incompatibility.
193
+ - **Requires human input**: The error reveals an ambiguity in the design or plan that cannot be resolved without user guidance. Escalate with full context.
194
+
195
+ ### Diagnosis Output Format
196
+ ```
197
+ ### Validation Diagnosis
198
+ - **Failure Type**: [type error | lint error | test failure | build error]
199
+ - **Failing Files**: [list of files from current phase involved in the failure]
200
+ - **Root Cause**: [brief description of why validation failed]
201
+ - **Pre-existing**: [yes | no — was this failure present before this phase's changes?]
202
+ - **Resolution Path**: [re-delegate to same agent | escalate to user | requires cross-phase fix]
203
+ - **Recommended Action**: [specific next step with context to include in re-delegation or escalation]
204
+ ```
@@ -0,0 +1,113 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { atomicWriteSync } = require('../lib/io');
6
+
7
+ const DEFAULT_STATE_DIR = 'docs/maestro';
8
+
9
+ function validateRelativePath(filePath) {
10
+ if (path.isAbsolute(filePath)) {
11
+ throw new Error('Path must be relative');
12
+ }
13
+ const segments = filePath.split(/[/\\]/);
14
+ if (segments.includes('..')) {
15
+ throw new Error('Path traversal not allowed');
16
+ }
17
+ }
18
+
19
+ function validateContainment(absolutePath, rootDir) {
20
+ let resolved = path.resolve(absolutePath);
21
+ let resolvedRoot = path.resolve(rootDir);
22
+ try { resolved = fs.realpathSync(resolved); } catch {}
23
+ try { resolvedRoot = fs.realpathSync(resolvedRoot); } catch {}
24
+ const rootPrefix = resolvedRoot + path.sep;
25
+ if (!resolved.startsWith(rootPrefix) && resolved !== resolvedRoot) {
26
+ throw new Error('state_dir must be within the project root');
27
+ }
28
+ return resolved;
29
+ }
30
+
31
+ function resolveStateDirPath(cwd, stateDirOverride) {
32
+ const stateDir = stateDirOverride || process.env.MAESTRO_STATE_DIR || DEFAULT_STATE_DIR;
33
+ const base = cwd || process.cwd();
34
+
35
+ if (path.isAbsolute(stateDir)) {
36
+ return validateContainment(stateDir, base);
37
+ }
38
+
39
+ validateRelativePath(stateDir);
40
+ return path.join(base, stateDir);
41
+ }
42
+
43
+ function resolveActiveSessionPath(cwd) {
44
+ return path.join(resolveStateDirPath(cwd), 'state', 'active-session.md');
45
+ }
46
+
47
+ function hasActiveSession(cwd) {
48
+ try {
49
+ const sessionPath = resolveActiveSessionPath(cwd);
50
+ return fs.existsSync(sessionPath);
51
+ } catch {
52
+ return false;
53
+ }
54
+ }
55
+
56
+ function readState(relativePath, basePath) {
57
+ validateRelativePath(relativePath);
58
+ const fullPath = path.join(basePath, relativePath);
59
+ return fs.readFileSync(fullPath, 'utf8');
60
+ }
61
+
62
+ function writeState(relativePath, content, basePath) {
63
+ validateRelativePath(relativePath);
64
+ const fullPath = path.join(basePath, relativePath);
65
+ atomicWriteSync(fullPath, content);
66
+ }
67
+
68
+ function ensureWorkspace(stateDir, basePath) {
69
+ const fullBase = path.isAbsolute(stateDir)
70
+ ? validateContainment(stateDir, basePath)
71
+ : (() => {
72
+ validateRelativePath(stateDir);
73
+ return path.join(basePath, stateDir);
74
+ })();
75
+ fs.mkdirSync(fullBase, { recursive: true, mode: 0o700 });
76
+ const stats = fs.lstatSync(fullBase);
77
+ if (stats.isSymbolicLink()) {
78
+ throw new Error('STATE_DIR must not be a symlink');
79
+ }
80
+ const dirs = [
81
+ path.join(fullBase, 'state'),
82
+ path.join(fullBase, 'state', 'archive'),
83
+ path.join(fullBase, 'plans'),
84
+ path.join(fullBase, 'plans', 'archive'),
85
+ ];
86
+ for (const dir of dirs) {
87
+ try {
88
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
89
+ } catch {
90
+ throw new Error('Failed to create workspace directory');
91
+ }
92
+ try {
93
+ fs.accessSync(dir, fs.constants.W_OK);
94
+ } catch {
95
+ throw new Error('Workspace directory not writable');
96
+ }
97
+ }
98
+ const stateGitignore = path.join(fullBase, 'state', '.gitignore');
99
+ try {
100
+ fs.writeFileSync(stateGitignore, 'active-session.md\narchive/\n', { mode: 0o600, flag: 'wx' });
101
+ } catch {}
102
+ }
103
+
104
+ module.exports = {
105
+ DEFAULT_STATE_DIR,
106
+ validateContainment,
107
+ resolveStateDirPath,
108
+ resolveActiveSessionPath,
109
+ hasActiveSession,
110
+ readState,
111
+ writeState,
112
+ ensureWorkspace,
113
+ };
@@ -0,0 +1,95 @@
1
+ ---
2
+ title: "<topic>"
3
+ created: "<ISO 8601 timestamp>"
4
+ status: "draft"
5
+ authors: ["TechLead", "User"]
6
+ type: "design"
7
+ design_depth: "standard" # one of: quick, standard, deep
8
+ task_complexity: "medium" # one of: simple, medium, complex
9
+ ---
10
+
11
+ # <Topic> Design Document
12
+
13
+ ## Problem Statement
14
+
15
+ [Clear description of the problem being solved, including context and motivation]
16
+
17
+ ## Requirements
18
+
19
+ ### Functional Requirements
20
+
21
+ 1. **REQ-1**: [Requirement with measurable acceptance criteria]
22
+
23
+ ### Non-Functional Requirements
24
+
25
+ 1. **REQ-N**: [Performance, security, scalability, reliability requirements]
26
+
27
+ ### Constraints
28
+
29
+ - [Technical, organizational, or business constraints]
30
+
31
+ ## Approach
32
+
33
+ ### Selected Approach
34
+
35
+ **[Approach Name]**
36
+
37
+ [Description of the selected approach and why it was chosen]
38
+
39
+ ### Alternatives Considered
40
+
41
+ #### [Alternative 1 Name]
42
+
43
+ - **Description**: [Brief overview]
44
+ - **Pros**: [Key advantages]
45
+ - **Cons**: [Key disadvantages]
46
+ - **Rejected Because**: [Specific reason this was not selected]
47
+
48
+ ### Decision Matrix
49
+
50
+ *(Standard and Deep modes only — omit in Quick mode)*
51
+
52
+ | Criterion | Weight | [Approach A] | [Approach B] |
53
+ |-----------|--------|--------------|--------------|
54
+ | [Criterion from requirements] | [%] | [1-5]: [justification] | [1-5]: [justification] |
55
+ | **Weighted Total** | | [score] | [score] |
56
+
57
+ ## Architecture
58
+
59
+ <!-- Standard+Deep: Include rationale annotations on key decisions.
60
+ Format: [decision] — *[rationale referencing constraints or user-stated preferences]*
61
+ Deep only: Include per-decision alternatives considered.
62
+ Format: [decision] *(considered: [alt A] — rejected because [reason]; [alt B] — rejected because [reason])*
63
+ Deep only: Tag decisions with Traces To: REQ-N -->
64
+
65
+ ### Component Diagram
66
+
67
+ ```
68
+ [ASCII or text-based component diagram showing key components and their relationships]
69
+ ```
70
+
71
+ ### Data Flow
72
+
73
+ [Description of how data flows through the system, including inputs, transformations, and outputs]
74
+
75
+ ### Key Interfaces
76
+
77
+ ```
78
+ [Interface definitions with type signatures for the primary contracts between components]
79
+ ```
80
+
81
+ ## Agent Team
82
+
83
+ | Phase | Agent(s) | Parallel | Deliverables |
84
+ |-------|----------|----------|--------------|
85
+ | 1 | [agent] | No | [deliverable] |
86
+
87
+ ## Risk Assessment
88
+
89
+ | Risk | Severity | Likelihood | Mitigation |
90
+ |------|----------|------------|------------|
91
+ | [risk] | HIGH/MEDIUM/LOW | HIGH/MEDIUM/LOW | [mitigation strategy] |
92
+
93
+ ## Success Criteria
94
+
95
+ 1. [Measurable criterion that indicates successful completion]
@@ -0,0 +1,86 @@
1
+ ---
2
+ title: "<topic> Implementation Plan"
3
+ design_ref: "<path to design document>"
4
+ created: "<ISO 8601 timestamp>"
5
+ status: "draft"
6
+ total_phases: <integer>
7
+ estimated_files: <integer>
8
+ task_complexity: "medium" # one of: simple, medium, complex
9
+ ---
10
+
11
+ # <Topic> Implementation Plan
12
+
13
+ ## Plan Overview
14
+
15
+ - **Total phases**: [N]
16
+ - **Agents involved**: [list of agent names]
17
+ - **Estimated effort**: [summary of scope and complexity]
18
+
19
+ ## Dependency Graph
20
+
21
+ ```
22
+ [ASCII diagram showing phase dependencies and parallel opportunities]
23
+ ```
24
+
25
+ ## Execution Strategy
26
+
27
+ | Stage | Phases | Execution | Agent Count | Notes |
28
+ |-------|--------|-----------|-------------|-------|
29
+ | 1 | Phase 1 | Sequential | 1 | Foundation |
30
+
31
+ ## Phase 1: <Phase Name>
32
+
33
+ ### Objective
34
+ [Clear, measurable statement of what this phase delivers]
35
+
36
+ ### Agent: <agent-name>
37
+ ### Parallel: <Yes/No>
38
+
39
+ ### Files to Create
40
+
41
+ - `path/to/file` — [Purpose, key interfaces/classes to define]
42
+
43
+ ### Files to Modify
44
+
45
+ - `path/to/existing/file` — [What changes and why]
46
+
47
+ ### Implementation Details
48
+
49
+ [Interface definitions, base class contracts, dependency injection patterns, error handling strategy]
50
+
51
+ ### Validation
52
+
53
+ - [Commands to run and expected outcomes]
54
+
55
+ ### Dependencies
56
+
57
+ - Blocked by: [Phase IDs or "None"]
58
+ - Blocks: [Phase IDs or "None"]
59
+
60
+ ---
61
+
62
+ ## File Inventory
63
+
64
+ | # | File | Phase | Purpose |
65
+ |---|------|-------|---------|
66
+ | 1 | `path/to/file` | 1 | [Purpose] |
67
+
68
+ ## Risk Classification
69
+
70
+ | Phase | Risk | Rationale |
71
+ |-------|------|-----------|
72
+ | 1 | LOW/MEDIUM/HIGH | [Why this risk level — complexity, number of dependents, reversibility] |
73
+
74
+ ## Execution Profile
75
+
76
+ ```
77
+ Execution Profile:
78
+ - Total phases: [N]
79
+ - Parallelizable phases: [M] (in [B] batches)
80
+ - Sequential-only phases: [S]
81
+ - Estimated parallel wall time: [time estimate based on batch execution]
82
+ - Estimated sequential wall time: [time estimate based on serial execution]
83
+
84
+ Note: Native subagents currently run without user approval gates.
85
+ All tool calls are auto-approved without user confirmation.
86
+ ```
@@ -0,0 +1,68 @@
1
+ ---
2
+ session_id: "<YYYY-MM-DD-topic-slug>"
3
+ task: "<user's original task description>"
4
+ created: "<ISO 8601 timestamp>"
5
+ updated: "<ISO 8601 timestamp>"
6
+ status: "in_progress"
7
+ workflow_mode: "standard"
8
+ design_document: "<state_dir>/plans/<YYYY-MM-DD-topic-slug>-design.md"
9
+ implementation_plan: "<state_dir>/plans/<YYYY-MM-DD-topic-slug>-impl-plan.md"
10
+ current_phase: 1
11
+ total_phases: <integer>
12
+ execution_mode: null
13
+ execution_backend: null
14
+ current_batch: null
15
+ task_complexity: null
16
+
17
+ token_usage:
18
+ total_input: 0
19
+ total_output: 0
20
+ total_cached: 0
21
+ by_agent: {}
22
+
23
+ phases:
24
+ - id: 1
25
+ name: "<phase name>"
26
+ status: "pending"
27
+ agents: []
28
+ parallel: false
29
+ started: null
30
+ completed: null
31
+ blocked_by: []
32
+ files_created: []
33
+ files_modified: []
34
+ files_deleted: []
35
+ downstream_context:
36
+ key_interfaces_introduced: []
37
+ patterns_established: []
38
+ integration_points: []
39
+ assumptions: []
40
+ warnings: []
41
+ errors: []
42
+ retry_count: 0
43
+ ---
44
+
45
+ # <Topic> Orchestration Log
46
+
47
+ ## Phase 1: <Phase Name>
48
+
49
+ ### Status
50
+ Pending
51
+
52
+ ### Agent Output
53
+ [Agent output will be recorded here as execution proceeds]
54
+
55
+ ### Files Changed
56
+ - Created: [none yet]
57
+ - Modified: [none yet]
58
+ - Deleted: [none yet]
59
+
60
+ ### Downstream Context
61
+ - Key Interfaces Introduced: [none yet]
62
+ - Patterns Established: [none yet]
63
+ - Integration Points: [none yet]
64
+ - Assumptions: [none yet]
65
+ - Warnings: [none yet]
66
+
67
+ ### Validation Result
68
+ [Pending]
@@ -0,0 +1,3 @@
1
+ {
2
+ "version": "1.6.4-rc.1"
3
+ }
@@ -0,0 +1,44 @@
1
+ # Maestro extension policy pack.
2
+ #
3
+ # These rules add low-friction guardrails for autonomous and interactive runs:
4
+ # - deny obviously destructive shell commands
5
+ # - ask before shell-based file writing patterns
6
+ #
7
+ # The extension tier may only contribute deny / ask_user decisions.
8
+
9
+ [[rule]]
10
+ toolName = "run_shell_command"
11
+ commandRegex = ".*\\btee\\b.*"
12
+ decision = "ask_user"
13
+ priority = 850
14
+
15
+ [[rule]]
16
+ toolName = "run_shell_command"
17
+ commandRegex = ".*(?:\\s>>?\\s|\\s>>?$|^>>?\\s|\\d>>?\\s).*$"
18
+ decision = "ask_user"
19
+ priority = 850
20
+
21
+ [[rule]]
22
+ toolName = "run_shell_command"
23
+ commandPrefix = [
24
+ "rm -rf",
25
+ "rm -fr",
26
+ "sudo rm -rf",
27
+ "sudo rm -fr",
28
+ "git reset --hard",
29
+ "git checkout --",
30
+ "git clean -fd",
31
+ "git clean -df",
32
+ "git clean -xfd",
33
+ "git clean -xdf"
34
+ ]
35
+ decision = "deny"
36
+ priority = 950
37
+ deny_message = "Maestro blocks destructive shell commands. Use safer targeted tools or handle the cleanup manually."
38
+
39
+ [[rule]]
40
+ toolName = "run_shell_command"
41
+ commandRegex = ".*(?:<<).*$"
42
+ decision = "deny"
43
+ priority = 950
44
+ deny_message = "Heredoc corrupts structured content (YAML, Markdown, JSON) — use write_file instead"
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: accessibility_specialist
3
+ kind: local
4
+ description: "Accessibility specialist for WCAG compliance auditing, ARIA implementation review, keyboard navigation testing, and inclusive design assessment. Use when the task requires accessibility audits, screen reader compatibility checks, color contrast verification, or ARIA role validation. For example: auditing a web app for WCAG 2.1 AA compliance, reviewing keyboard navigation in modal dialogs, or validating ARIA usage in custom components."
5
+ max_turns: 20
6
+ tools:
7
+ - read_file
8
+ - list_directory
9
+ - glob
10
+ - grep_search
11
+ - run_shell_command
12
+ - web_search
13
+ - todo_write
14
+ - read_many_files
15
+ - ask_user_question
16
+ ---
17
+
18
+ Agent methodology loaded via MCP tool `get_agent`. Call `get_agent(agents: ["accessibility-specialist"])` to read the full methodology at delegation time.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: analytics_engineer
3
+ kind: local
4
+ description: "Analytics engineering specialist for event tracking implementation, analytics schemas, conversion funnels, A/B test design, and measurement planning. Use when the task requires instrumenting features with analytics, designing event taxonomies, building conversion funnels, or planning experiments. For example: adding event tracking to a checkout flow, designing an A/B test for a pricing page, or defining KPI dashboards."
5
+ max_turns: 25
6
+ tools:
7
+ - read_file
8
+ - list_directory
9
+ - glob
10
+ - grep_search
11
+ - write_file
12
+ - edit
13
+ - run_shell_command
14
+ - web_search
15
+ - todo_write
16
+ - read_many_files
17
+ - ask_user_question
18
+ ---
19
+
20
+ Agent methodology loaded via MCP tool `get_agent`. Call `get_agent(agents: ["analytics-engineer"])` to read the full methodology at delegation time.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: api_designer
3
+ kind: local
4
+ description: "API design specialist for endpoint design, request/response contracts, and API versioning strategies. Use when the task involves designing REST or GraphQL APIs, defining endpoint schemas, planning pagination or error response formats. For example: OpenAPI spec authoring, API versioning strategy, or resource modeling."
5
+ max_turns: 15
6
+ tools:
7
+ - read_file
8
+ - list_directory
9
+ - glob
10
+ - grep_search
11
+ - read_many_files
12
+ - ask_user_question
13
+ - web_search
14
+ - web_fetch
15
+ ---
16
+
17
+ Agent methodology loaded via MCP tool `get_agent`. Call `get_agent(agents: ["api-designer"])` to read the full methodology at delegation time.
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: architect
3
+ kind: local
4
+ description: "System design specialist for architecture decisions, technology selection, and high-level component design. Use when the task requires evaluating architectural trade-offs, designing system components, selecting technology stacks, or planning service boundaries. For example: microservice decomposition, database schema design, or API contract planning."
5
+ max_turns: 15
6
+ tools:
7
+ - read_file
8
+ - list_directory
9
+ - glob
10
+ - grep_search
11
+ - web_search
12
+ - read_many_files
13
+ - ask_user_question
14
+ - web_fetch
15
+ ---
16
+
17
+ Agent methodology loaded via MCP tool `get_agent`. Call `get_agent(agents: ["architect"])` to read the full methodology at delegation time.