@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,48 @@
1
+ {
2
+ "hooks": {
3
+ "SessionEnd": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/hook-runner.js claude session-end",
9
+ "timeout": 10
10
+ }
11
+ ]
12
+ }
13
+ ],
14
+ "SessionStart": [
15
+ {
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/hook-runner.js claude session-start",
20
+ "timeout": 10
21
+ }
22
+ ]
23
+ }
24
+ ],
25
+ "PreToolUse": [
26
+ {
27
+ "hooks": [
28
+ {
29
+ "type": "command",
30
+ "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/hook-runner.js claude before-agent",
31
+ "timeout": 10
32
+ }
33
+ ],
34
+ "matcher": "Agent"
35
+ },
36
+ {
37
+ "hooks": [
38
+ {
39
+ "type": "command",
40
+ "command": "node ${CLAUDE_PLUGIN_ROOT}/scripts/policy-enforcer.js",
41
+ "timeout": 5
42
+ }
43
+ ],
44
+ "matcher": "Bash"
45
+ }
46
+ ]
47
+ }
48
+ }
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+
6
+ process.env.MAESTRO_RUNTIME = process.env.MAESTRO_RUNTIME || 'claude';
7
+ const repoEntry = path.resolve(__dirname, '../../src/mcp/maestro-server.js');
8
+ const bundledEntry = path.resolve(__dirname, '../src/mcp/maestro-server.js');
9
+ require(fs.existsSync(repoEntry) ? repoEntry : bundledEntry).main();
@@ -0,0 +1,9 @@
1
+ {
2
+ "maestro": {
3
+ "command": "node",
4
+ "args": [
5
+ "./mcp/maestro-server.js"
6
+ ],
7
+ "cwd": "<path-to-maestro-plugin>"
8
+ }
9
+ }
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+ const fs = require('node:fs');
3
+ const path = require('node:path');
4
+
5
+ const repoEntry = path.resolve(__dirname, '../../../src/platforms/shared/adapters/claude-adapter.js');
6
+ const bundledEntry = path.resolve(__dirname, '../../src/platforms/shared/adapters/claude-adapter.js');
7
+ module.exports = require(fs.existsSync(repoEntry) ? repoEntry : bundledEntry);
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+
6
+ const repoEntry = path.resolve(__dirname, '../../src/platforms/shared/hook-runner.js');
7
+ const bundledEntry = path.resolve(__dirname, '../src/platforms/shared/hook-runner.js');
8
+ require(fs.existsSync(repoEntry) ? repoEntry : bundledEntry);
@@ -0,0 +1,294 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Maestro policy enforcer for Claude Code.
5
+ * Reads stdin (Claude Code PreToolUse hook input for Bash),
6
+ * checks tool_input.command against deny and ask patterns,
7
+ * and outputs a decision JSON to stdout.
8
+ *
9
+ * Rules are loaded from the canonical source (src/core/policy-rules.js)
10
+ * with a fallback to the bundled copy for detached installs.
11
+ */
12
+
13
+ const fs = require('node:fs');
14
+ const path = require('node:path');
15
+
16
+ const repoRules = path.resolve(__dirname, '../../src/core/policy-rules.js');
17
+ const bundledRules = path.resolve(__dirname, '../src/core/policy-rules.js');
18
+ const { DENY_RULES, ASK_RULES } = require(fs.existsSync(repoRules) ? repoRules : bundledRules);
19
+
20
+ function splitCommands(command) {
21
+ const parts = [];
22
+ let depth = 0;
23
+ let current = '';
24
+ let inSingle = false;
25
+ let inDouble = false;
26
+ let escaped = false;
27
+
28
+ for (let i = 0; i < command.length; i++) {
29
+ const ch = command[i];
30
+
31
+ if (escaped) {
32
+ current += ch;
33
+ escaped = false;
34
+ continue;
35
+ }
36
+ if (ch === '\\' && !inSingle) {
37
+ current += ch;
38
+ escaped = true;
39
+ continue;
40
+ }
41
+ if (ch === "'" && !inDouble) { inSingle = !inSingle; current += ch; continue; }
42
+ if (ch === '"' && !inSingle) { inDouble = !inDouble; current += ch; continue; }
43
+
44
+ if (!inSingle && ch === '$' && command[i + 1] === '(') {
45
+ const parsed = readDollarSubshell(command, i + 2);
46
+ current += '$(' + parsed.content + ')';
47
+ i = parsed.end;
48
+ continue;
49
+ }
50
+ if (!inSingle && ch === '`') {
51
+ const parsed = readBacktickSubshell(command, i + 1);
52
+ current += '`' + parsed.content + '`';
53
+ i = parsed.end;
54
+ continue;
55
+ }
56
+
57
+ if (inSingle || inDouble) {
58
+ current += ch;
59
+ continue;
60
+ }
61
+
62
+ if (ch === '(' || ch === '{') { depth++; current += ch; continue; }
63
+ if (ch === ')') {
64
+ if (depth > 0) {
65
+ depth--;
66
+ }
67
+ current += ch;
68
+ continue;
69
+ }
70
+ if (ch === '}') { depth--; current += ch; continue; }
71
+
72
+ if (depth === 0) {
73
+ if (ch === ';') {
74
+ parts.push(current);
75
+ current = '';
76
+ continue;
77
+ }
78
+ if (ch === '&' && command[i + 1] === '&') {
79
+ parts.push(current);
80
+ current = '';
81
+ i++;
82
+ continue;
83
+ }
84
+ if (ch === '|' && command[i + 1] === '|') {
85
+ parts.push(current);
86
+ current = '';
87
+ i++;
88
+ continue;
89
+ }
90
+ if (ch === '|') {
91
+ parts.push(current);
92
+ current = '';
93
+ continue;
94
+ }
95
+ }
96
+ current += ch;
97
+ }
98
+ if (current) parts.push(current);
99
+ return parts.map((p) => p.trim()).filter(Boolean);
100
+ }
101
+
102
+ function readBacktickSubshell(command, startIndex) {
103
+ let content = '';
104
+
105
+ for (let i = startIndex; i < command.length; i++) {
106
+ const ch = command[i];
107
+ if (ch === '\\') {
108
+ const next = command[i + 1];
109
+ if (next === '`') {
110
+ content += '`';
111
+ i++;
112
+ continue;
113
+ }
114
+ content += ch;
115
+ continue;
116
+ }
117
+ if (ch === '`') {
118
+ return { content, end: i };
119
+ }
120
+ content += ch;
121
+ }
122
+
123
+ throw new Error('Unterminated backtick command substitution');
124
+ }
125
+
126
+ function readDollarSubshell(command, startIndex) {
127
+ let content = '';
128
+ let inSingle = false;
129
+ let inDouble = false;
130
+ let escaped = false;
131
+
132
+ for (let i = startIndex; i < command.length; i++) {
133
+ const ch = command[i];
134
+
135
+ if (escaped) {
136
+ content += ch;
137
+ escaped = false;
138
+ continue;
139
+ }
140
+ if (ch === '\\' && !inSingle) {
141
+ if (command[i + 1] === '`') {
142
+ content += '`';
143
+ i++;
144
+ continue;
145
+ }
146
+ content += ch;
147
+ escaped = true;
148
+ continue;
149
+ }
150
+ if (ch === "'" && !inDouble) {
151
+ inSingle = !inSingle;
152
+ content += ch;
153
+ continue;
154
+ }
155
+ if (ch === '"' && !inSingle) {
156
+ inDouble = !inDouble;
157
+ content += ch;
158
+ continue;
159
+ }
160
+ if (inSingle) {
161
+ content += ch;
162
+ continue;
163
+ }
164
+ if (ch === '$' && command[i + 1] === '(') {
165
+ const parsed = readDollarSubshell(command, i + 2);
166
+ content += '$(' + parsed.content + ')';
167
+ i = parsed.end;
168
+ continue;
169
+ }
170
+ if (ch === '`') {
171
+ const parsed = readBacktickSubshell(command, i + 1);
172
+ content += '`' + parsed.content + '`';
173
+ i = parsed.end;
174
+ continue;
175
+ }
176
+ if (!inSingle && ch === ')') {
177
+ return { content, end: i };
178
+ }
179
+
180
+ content += ch;
181
+ }
182
+
183
+ throw new Error('Unterminated $(...) command substitution');
184
+ }
185
+
186
+ function extractSubshells(command) {
187
+ const patterns = [];
188
+ let inSingle = false;
189
+ let inDouble = false;
190
+ let escaped = false;
191
+
192
+ for (let i = 0; i < command.length; i++) {
193
+ const ch = command[i];
194
+
195
+ if (escaped) {
196
+ escaped = false;
197
+ continue;
198
+ }
199
+ if (ch === '\\' && !inSingle) {
200
+ escaped = true;
201
+ continue;
202
+ }
203
+ if (ch === "'" && !inDouble) {
204
+ inSingle = !inSingle;
205
+ continue;
206
+ }
207
+ if (ch === '"' && !inSingle) {
208
+ inDouble = !inDouble;
209
+ continue;
210
+ }
211
+ if (inSingle) continue;
212
+
213
+ if (ch === '$' && command[i + 1] === '(') {
214
+ const parsed = readDollarSubshell(command, i + 2);
215
+ const content = parsed.content.trim();
216
+ if (content) {
217
+ patterns.push(content, ...extractSubshells(content));
218
+ }
219
+ i = parsed.end;
220
+ continue;
221
+ }
222
+
223
+ if (ch === '`') {
224
+ const parsed = readBacktickSubshell(command, i + 1);
225
+ const content = parsed.content.trim();
226
+ if (content) {
227
+ patterns.push(content, ...extractSubshells(content));
228
+ }
229
+ i = parsed.end;
230
+ }
231
+ }
232
+
233
+ return patterns;
234
+ }
235
+
236
+ function checkCommand(command) {
237
+ const segments = splitCommands(command);
238
+ const subshells = extractSubshells(command);
239
+ const allParts = [...new Set([...segments, ...subshells, ...subshells.flatMap((s) => splitCommands(s))])];
240
+
241
+ for (const part of allParts) {
242
+ for (const rule of DENY_RULES) {
243
+ if (matchRule(rule, part)) {
244
+ return { decision: 'block', reason: rule.reason };
245
+ }
246
+ }
247
+ }
248
+ for (const part of allParts) {
249
+ for (const rule of ASK_RULES) {
250
+ if (matchRule(rule, part)) {
251
+ return { decision: 'ask', reason: rule.reason };
252
+ }
253
+ }
254
+ }
255
+ return { decision: 'approve' };
256
+ }
257
+
258
+ function matchRule(rule, command) {
259
+ const trimmed = command.trimStart();
260
+ switch (rule.matchType) {
261
+ case 'prefix':
262
+ return trimmed.startsWith(rule.pattern);
263
+ case 'regex':
264
+ return new RegExp(rule.pattern).test(trimmed);
265
+ case 'word':
266
+ return new RegExp('\\b' + rule.pattern + '\\b').test(trimmed);
267
+ default:
268
+ return false;
269
+ }
270
+ }
271
+
272
+ const MAX_STDIN_BYTES = 1024 * 1024;
273
+ const chunks = [];
274
+ let totalBytes = 0;
275
+ process.stdin.on('data', (chunk) => {
276
+ totalBytes += chunk.length;
277
+ if (totalBytes > MAX_STDIN_BYTES) {
278
+ process.stderr.write('Policy enforcer: stdin payload too large\n');
279
+ process.stdout.write(JSON.stringify({ decision: 'block', reason: 'Payload too large' }) + '\n');
280
+ process.exit(1);
281
+ }
282
+ chunks.push(chunk);
283
+ });
284
+ process.stdin.on('end', () => {
285
+ try {
286
+ const input = JSON.parse(Buffer.concat(chunks).toString());
287
+ const command = (input.tool_input && input.tool_input.command) || '';
288
+ const result = checkCommand(command);
289
+ process.stdout.write(JSON.stringify(result) + '\n');
290
+ } catch (err) {
291
+ process.stderr.write('Policy enforcer error: ' + err.message + '\n');
292
+ process.stdout.write(JSON.stringify({ decision: 'block', reason: 'Policy enforcer internal error' }) + '\n');
293
+ }
294
+ });
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: a11y-audit
3
+ description: Run a Maestro-style accessibility audit for WCAG compliance, ARIA usage, keyboard navigation, and screen reader compatibility
4
+ ---
5
+
6
+
7
+ # Maestro Accessibility Audit
8
+
9
+ Call `get_skill_content` with resources: ["architecture"].
10
+
11
+ ## Protocol
12
+
13
+ Before delegating, call `get_skill_content` with resources: ["delegation"] and follow the returned methodology.
14
+
15
+ ## Workflow
16
+
17
+ 1. Define the accessibility audit scope and target conformance level (A, AA, AAA)
18
+ 2. Identify UI components, pages, and interactive elements
19
+ 3. Audit WCAG compliance: ARIA usage, keyboard navigation, focus management, color contrast, screen reader compatibility
20
+ 4. Present findings with WCAG criterion reference, severity, user impact, location, and remediation code patterns
21
+ 5. Note any manual verification gaps if the environment cannot exercise the UI directly
22
+
23
+ ## Constraints
24
+
25
+ - Present findings before proposing remediation
26
+ - Do not modify code without explicit user approval
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: archive
3
+ description: Archive the active Maestro session while preserving the shared state layout
4
+ ---
5
+
6
+
7
+ # Maestro Archive
8
+
9
+ Call `get_skill_content` with resources: ["architecture"].
10
+
11
+
12
+ ## Workflow
13
+
14
+ 1. Check for an active session; if none exists, inform the user there is nothing to archive
15
+ 2. Present a brief summary of what will be archived (session ID, task, phase progress)
16
+ 3. Ask the user to confirm archival (the session may have incomplete phases)
17
+ 4. Move the active session file into the state archive directory
18
+ 5. Move the associated design and implementation plan files into the plans archive directory
19
+ 6. Verify that no active-session file remains and report the archived paths
20
+
21
+ ## Constraints
22
+
23
+ - Do not delete plan or session history
24
+ - Preserve the existing archive directory structure
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: code-review
3
+ description: Standalone code review methodology for structured, severity-classified code assessment
4
+ user-invocable: false
5
+ ---
6
+
7
+ Methodology loaded via MCP. Call `get_skill_content(resources: ["code-review"])`.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: compliance-check
3
+ description: Run a Maestro-style regulatory compliance review for GDPR/CCPA, cookie consent, data handling, and licensing
4
+ ---
5
+
6
+
7
+ # Maestro Compliance Check
8
+
9
+ Call `get_skill_content` with resources: ["architecture"].
10
+
11
+ ## Protocol
12
+
13
+ Before delegating, call `get_skill_content` with resources: ["delegation"] and follow the returned methodology.
14
+
15
+ ## Workflow
16
+
17
+ 1. Identify applicable regulations and define audit scope
18
+ 2. Review data handling patterns, user disclosures, consent flows, retention policies, and third-party integrations
19
+ 3. Audit regulatory compliance: GDPR/CCPA, cookie consent, data residency, licensing, and open-source obligations
20
+ 4. Present findings with regulatory reference, severity, compliance risk, and recommended actions
21
+ 5. Distinguish legal-risk observations from code-level bugs
22
+
23
+ ## Constraints
24
+
25
+ - Present findings before proposing remediation
26
+ - Do not modify code without explicit user approval
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: debug-workflow
3
+ description: Run the Maestro debugging workflow for investigation-heavy tasks
4
+ ---
5
+
6
+
7
+ # Maestro Debug Workflow
8
+
9
+ Call `get_skill_content` with resources: ["architecture"].
10
+
11
+ ## Protocol
12
+
13
+ Before delegating, call `get_skill_content` with resources: ["delegation"] and follow the returned methodology.
14
+
15
+ ## Workflow
16
+
17
+ 1. Establish the failing behavior, repro path, and expected behavior
18
+ 2. Form concrete hypotheses (2-3 likely root causes)
19
+ 3. Gather evidence from code, logs, tests, and runtime behavior before proposing fixes
20
+ 4. Isolate the most likely root cause and trace the execution path from trigger to failure
21
+ 5. Verify the conclusion explains all symptoms and present the recommended fix with specific code location
22
+
23
+ ## Constraints
24
+
25
+ - Prefer evidence over speculation
26
+ - Make uncertainty explicit when the issue cannot be reproduced
27
+ - Return root cause, affected files, confidence level, and the smallest defensible next action
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: delegation
3
+ description: Agent delegation best practices for constructing effective subagent prompts with proper scoping
4
+ user-invocable: false
5
+ ---
6
+
7
+ Methodology loaded via MCP. Call `get_skill_content(resources: ["delegation"])`.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: design-dialogue
3
+ description: Guides structured design conversations for complex engineering tasks
4
+ user-invocable: false
5
+ ---
6
+
7
+ Methodology loaded via MCP. Call `get_skill_content(resources: ["design-dialogue"])`.
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: execute
3
+ description: Execute an approved Maestro implementation plan using the shared session-state contract
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash
9
+ - Agent
10
+ - Glob
11
+ - Grep
12
+ - WebSearch
13
+ - WebFetch
14
+ - AskUserQuestion
15
+ - TaskCreate
16
+ - TaskUpdate
17
+ - TaskList
18
+ - Skill
19
+ - EnterPlanMode
20
+ - ExitPlanMode
21
+ ---
22
+
23
+ ## Setup
24
+
25
+ 1. Call `get_runtime_context` if it appears in your available tools. Use the returned tool mappings,
26
+ agent dispatch syntax, MCP prefix, and paths throughout this session.
27
+ 2. If `get_runtime_context` is unavailable, use this compact fallback:
28
+ - Core tools: read_file=Read, write_file=Write, replace=Edit, run_shell_command=Bash, glob=Glob, grep_search=Grep, activate_skill=Skill, ask_user=AskUserQuestion, enter_plan_mode=EnterPlanMode, exit_plan_mode=ExitPlanMode
29
+ - Extended tools: google_web_search=WebSearch, web_fetch=WebFetch, write_todos=[TaskCreate,TaskUpdate,TaskList], read_many_files=Read, list_directory=Glob, codebase_investigator=Agent (Explore) / Grep / Glob
30
+ - Agent dispatch: Agent(subagent_type: "maestro:<name>", prompt: "...")
31
+ - MCP prefix: mcp__plugin_maestro_maestro__
32
+ - Shared skills/templates/references/protocols: call `get_skill_content(resources: ["<name>"])`
33
+
34
+ ## Execute
35
+
36
+ Call `get_skill_content` with resources: ["execution", "delegation", "session-management", "validation"].
37
+
38
+ Read the approved implementation plan at the user-provided path (or check `docs/maestro/plans/` for the most recent plan). Resolve the execution mode gate, create or resume session state, then execute phases through child agents following the loaded methodology.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: execution
3
+ description: Phase execution methodology for orchestration workflows with error handling and completion protocols
4
+ user-invocable: false
5
+ ---
6
+
7
+ Methodology loaded via MCP. Call `get_skill_content(resources: ["execution"])`.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: implementation-planning
3
+ description: Generates detailed implementation plans from finalized designs
4
+ user-invocable: false
5
+ ---
6
+
7
+ Methodology loaded via MCP. Call `get_skill_content(resources: ["implementation-planning"])`.
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: orchestrate
3
+ description: Run the full Maestro workflow for complex engineering tasks that need a mandatory design dialogue, approved implementation plan, and then execution with shared session state
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash
9
+ - Agent
10
+ - Glob
11
+ - Grep
12
+ - WebSearch
13
+ - WebFetch
14
+ - AskUserQuestion
15
+ - TaskCreate
16
+ - TaskUpdate
17
+ - TaskList
18
+ - Skill
19
+ - EnterPlanMode
20
+ - ExitPlanMode
21
+ ---
22
+
23
+ ## Setup
24
+
25
+ 1. Call `get_runtime_context` if it appears in your available tools. Use the returned tool mappings,
26
+ agent dispatch syntax, MCP prefix, and paths throughout this session.
27
+ 2. If `get_runtime_context` is unavailable, use this compact fallback:
28
+ - Core tools: read_file=Read, write_file=Write, replace=Edit, run_shell_command=Bash, glob=Glob, grep_search=Grep, activate_skill=Skill, ask_user=AskUserQuestion, enter_plan_mode=EnterPlanMode, exit_plan_mode=ExitPlanMode
29
+ - Extended tools: google_web_search=WebSearch, web_fetch=WebFetch, write_todos=[TaskCreate,TaskUpdate,TaskList], read_many_files=Read, list_directory=Glob, codebase_investigator=Agent (Explore) / Grep / Glob
30
+ - Agent dispatch: Agent(subagent_type: "maestro:<name>", prompt: "...")
31
+ - MCP prefix: mcp__plugin_maestro_maestro__
32
+ - Shared skills/templates/references/protocols: call `get_skill_content(resources: ["<name>"])`
33
+
34
+ ## Execute
35
+
36
+ Call `get_skill_content` with resources: ["orchestration-steps"].
37
+
38
+ Follow the returned step sequence exactly. The steps are the sole procedural authority — do not improvise, skip, or reorder them.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: perf-check
3
+ description: Run a Maestro-style performance assessment for hotspots, regressions, and optimization planning
4
+ ---
5
+
6
+
7
+ # Maestro Perf Check
8
+
9
+ Call `get_skill_content` with resources: ["architecture"].
10
+
11
+ ## Protocol
12
+
13
+ Before delegating, call `get_skill_content` with resources: ["delegation"] and follow the returned methodology.
14
+
15
+ ## Workflow
16
+
17
+ 1. Define the performance target or pain point
18
+ 2. Establish the current baseline from available code, metrics, or reproducible commands
19
+ 3. Identify likely hotspots, structural bottlenecks, and hot loops through code analysis
20
+ 4. Prioritize fixes by expected impact versus implementation cost
21
+ 5. Report measurement gaps when hard evidence is unavailable and propose a validation plan
22
+
23
+ ## Constraints
24
+
25
+ - Avoid optimization advice that is disconnected from the observed bottleneck
26
+ - Distinguish measured issues from inferred ones
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: resume-session
3
+ description: Resume an interrupted Maestro session using the existing active-session file and shared phase tracking
4
+ allowed-tools:
5
+ - Read
6
+ - Write
7
+ - Edit
8
+ - Bash
9
+ - Agent
10
+ - Glob
11
+ - Grep
12
+ - WebSearch
13
+ - WebFetch
14
+ - AskUserQuestion
15
+ - TaskCreate
16
+ - TaskUpdate
17
+ - TaskList
18
+ - Skill
19
+ - EnterPlanMode
20
+ - ExitPlanMode
21
+ ---
22
+
23
+ ## Setup
24
+
25
+ 1. Call `get_runtime_context` if it appears in your available tools. Use the returned tool mappings,
26
+ agent dispatch syntax, MCP prefix, and paths throughout this session.
27
+ 2. If `get_runtime_context` is unavailable, use this compact fallback:
28
+ - Core tools: read_file=Read, write_file=Write, replace=Edit, run_shell_command=Bash, glob=Glob, grep_search=Grep, activate_skill=Skill, ask_user=AskUserQuestion, enter_plan_mode=EnterPlanMode, exit_plan_mode=ExitPlanMode
29
+ - Extended tools: google_web_search=WebSearch, web_fetch=WebFetch, write_todos=[TaskCreate,TaskUpdate,TaskList], read_many_files=Read, list_directory=Glob, codebase_investigator=Agent (Explore) / Grep / Glob
30
+ - Agent dispatch: Agent(subagent_type: "maestro:<name>", prompt: "...")
31
+ - MCP prefix: mcp__plugin_maestro_maestro__
32
+ - Shared skills/templates/references/protocols: call `get_skill_content(resources: ["<name>"])`
33
+
34
+ ## Execute
35
+
36
+ Call `get_skill_content` with resources: ["session-management", "execution", "delegation", "validation"].
37
+
38
+ Read the active session state, summarize completed and pending phases, then resume from the first pending or failed phase following the loaded methodology.