@josstei/maestro 1.6.4-nightly.20260430

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 +486 -0
  3. package/EXAMPLES.md +255 -0
  4. package/GEMINI.md +251 -0
  5. package/LICENSE +201 -0
  6. package/QWEN.md +274 -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 +15 -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 +387 -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 +307 -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 +323 -0
  263. package/docs/cicd.md +658 -0
  264. package/docs/flow.md +266 -0
  265. package/docs/maestro-cheatsheet.md +207 -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 +173 -0
  270. package/docs/runtime-qwen.md +150 -0
  271. package/docs/usage.md +315 -0
  272. package/gemini-extension.json +56 -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 +15 -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 +387 -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 +307 -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 +56 -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 +338 -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 +133 -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 +15 -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 +387 -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 +307 -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,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.
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: review-code
3
+ description: Perform a Maestro-style code review with findings ordered by severity and concrete file references
4
+ ---
5
+
6
+
7
+ # Maestro Review Code
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. Determine review scope: explicit user-provided paths, staged changes, or last commit diff
18
+ 2. Delegate to the code-reviewer agent with the diff content and file paths
19
+ 3. Review for correctness, regressions, security, maintainability risk, and missing tests
20
+ 4. Classify findings by severity (Critical, Major, Minor, Suggestion) with concrete file and line references
21
+ 5. Present findings first, ordered by severity; keep the closing summary brief and only after findings
22
+
23
+ ## Constraints
24
+
25
+ - Do not bury findings behind a long overview
26
+ - Every finding must reference a specific file and line number -- no speculative issues
27
+ - If no findings exist, say so explicitly and note residual testing gaps
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: security-audit
3
+ description: Run a Maestro-style security assessment for authentication, authorization, data exposure, secret handling, and exploitability risks
4
+ ---
5
+
6
+
7
+ # Maestro Security 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 audit scope from the user request and relevant code paths
18
+ 2. Trace trust boundaries, auth flows, secret handling, and data exposure paths
19
+ 3. Review for exploitable flaws, unsafe defaults, OWASP Top 10 vulnerabilities, and high-risk dependencies
20
+ 4. Classify findings by severity (CVSS-aligned) with file references and exploitability assessment
21
+ 5. Provide remediation guidance with the highest-risk issues first
22
+
23
+ ## Constraints
24
+
25
+ - Prefer actionable findings over generic security advice
26
+ - Present findings before proposing remediation
27
+ - State clearly when the review is limited by unavailable runtime context
28
+ - Do not modify code without explicit user approval
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: seo-audit
3
+ description: Run a Maestro-style SEO assessment for meta tags, structured data, crawlability, and Core Web Vitals
4
+ ---
5
+
6
+
7
+ # Maestro SEO 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 SEO audit scope (page or site)
18
+ 2. Identify web-facing output files (HTML, templates, routes)
19
+ 3. Audit meta tags, schema markup, crawlability, canonicalization, internal linking, and Core Web Vitals
20
+ 4. Present findings with severity, SEO impact, location, and remediation guidance
21
+ 5. Note any checks that require live-site verification if the current environment cannot provide it
22
+
23
+ ## Constraints
24
+
25
+ - Present findings before proposing remediation
26
+ - Do not modify code without explicit user approval
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: session-management
3
+ description: Manages orchestration session state, tracking, and resumption
4
+ user-invocable: false
5
+ ---
6
+
7
+ Methodology loaded via MCP. Call `get_skill_content(resources: ["session-management"])`.