@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,20 @@
1
+ {
2
+ "name": "maestro-orchestrator",
3
+ "interface": {
4
+ "displayName": "Maestro Orchestrator"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "maestro",
9
+ "source": {
10
+ "source": "local",
11
+ "path": "./plugins/maestro"
12
+ },
13
+ "policy": {
14
+ "installation": "AVAILABLE",
15
+ "authentication": "ON_INSTALL"
16
+ },
17
+ "category": "Coding"
18
+ }
19
+ ]
20
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,485 @@
1
+ # Changelog
2
+
3
+ All notable changes to Maestro will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.6.4] - 2026-04-30
11
+
12
+ ### Added
13
+
14
+ - **Maestro cheatsheet**: added an English quick-reference guide covering supported runtimes, common commands, workflow concepts, and suggested reading order.
15
+
16
+ ### Changed
17
+
18
+ - **npm package identity**: renamed the planned npm package to `@josstei/maestro`, added `hello@josstei.dev` to public author metadata, and moved the stable release publish path toward GitHub Actions trusted publishing.
19
+
20
+ ### Fixed
21
+
22
+ - **Codex plugin MCP server fails to start**: corrected `npx` args in `plugins/maestro/.mcp.json` — added `-p`/`--package` flag so `maestro-mcp-server` is resolved as the binary name rather than an argument to the package's default binary.
23
+ - **Release metadata drift**: runtime manifests, marketplace entries, detached payload versions, and Codex MCP package specs are now generated from `package.json` so stable and prerelease packages stay self-consistent.
24
+
25
+ ## [1.6.3] - 2026-04-20
26
+
27
+ ### Added
28
+
29
+ - **5 new MCP tools** (Session pack 5 → 10; total pack count 12 → 17):
30
+ - `enter_design_gate`, `record_design_approval`, `get_design_gate_status` — server-side design-gate lifecycle; `create_session` now enforces approval before session creation
31
+ - `scan_phase_changes`, `reconcile_phase` — post-hoc phase reconciliation when an agent's actual file manifest diverges from the plan
32
+ - **17 additional specialist agents** — Expanded the roster from 22 to 39 specialists:
33
+ - **ML / AI**: `ml-engineer`, `mlops-engineer`, `prompt-engineer`
34
+ - **Ops / reliability**: `site-reliability-engineer`, `observability-engineer`, `release-manager`
35
+ - **Platform**: `cloud-architect`, `platform-engineer`, `solutions-architect`, `integration-engineer`
36
+ - **Data / mobile**: `database-administrator`, `mobile-engineer`
37
+ - **Mainframe / legacy**: `cobol-engineer`, `db2-dba`, `zos-sysprog`, `hlasm-assembler-specialist`, `ibm-i-specialist`
38
+ - **`maestro-mcp-server` bin** (`bin/maestro-mcp-server.js`) — Thin Node entrypoint declared in `package.json` bin; sets `MAESTRO_RUNTIME=codex` and `MAESTRO_EXTENSION_PATH`, then delegates to `src/mcp/maestro-server.js`. Invoked by Codex via `npx`.
39
+ - **Root-level Codex marketplace manifest** (`.agents/plugins/marketplace.json`) — Makes the repo a valid marketplace target for `codex marketplace add`.
40
+ - **Declarative `requiresWorkspace` tool contract** — Tool schemas carry `requiresWorkspace: true` when they depend on an initialized workspace; the registry captures the metadata and the dispatcher enforces it before handler invocation, returning a typed `WORKSPACE_NOT_INITIALIZED` error that names `initialize_workspace` in the recovery message.
41
+ - **Workspace marker file module** — `initialize_workspace` now writes a canonical marker and `requireExplicitWorkspaceRoot` rejects extension-cache paths.
42
+ - **Content variant for design-gate and implementation-plan submission** — `record_design_approval` accepts `design_document_content` + `design_document_filename`; `create_session` accepts `implementation_plan_content` + `implementation_plan_filename`. Bytes are materialized atomically into `<state_dir>/plans/` by the server. Motivation: Gemini Plan Mode resolves relative paths against `~/.gemini/tmp/<uuid>/`, so a path the model hands back to MCP never resolves to the same file the server sees — the content variant bypasses runtime-specific path resolution.
43
+ - **Shared plan-phase schema contract** (`src/mcp/contracts/plan-schema.js`) — Single source of truth for phase shape consumed by both `validate_plan` and `create_session`. `phase.files` is recognized as the planning-time canonical file manifest and is checked by `file_overlap` and `agent_capability_mismatch` validators.
44
+ - **`downstream-context` contract module** (`src/mcp/contracts/downstream-context.js`) — Canonical handoff shape: accepts string or array, handles `'none'`/`'n/a'`/empty-string sentinels, and embeds a human-readable shape description in the `HANDOFF_INCOMPLETE` error.
45
+ - **Runtime `delegation.constraints` object** — Per-runtime machine-readable constraints exposed via `get_runtime_context`. Codex declares deferred results and fork-incompatibility with `agent_type`/`model`/`reasoning_effort`; Claude, Gemini, and Qwen declare synchronous dispatch.
46
+ - **Blocker parser for child-agent question surfacing** — Agents emit a `Blockers:` section in their handoff report; the orchestrator surfaces unresolved blockers back to the user.
47
+ - **`workspace_suggestion` in `get_runtime_context`** — Server surfaces a recommended workspace path for runtimes that cannot auto-resolve one.
48
+ - **Per-entry `runtimeNames`** — Each entry-point registry entry owns its per-runtime rename declaratively; replaces the centralized `ENTRY_POINT_NAME_OVERRIDES` map.
49
+ - **Host-reserved command protection extended to Claude** — Entry-point generation now rejects names that would shadow Claude's built-in slash commands (`review`, `debug`, `resume`). Previously only Codex was guarded.
50
+ - **Adapter factory** (`src/platforms/shared/adapters/factory.js`) — Captures the adapter contract (`normalizeInput`, `formatOutput`, `errorFallback`, `readBoundedStdin`, `getExitCode`) with shared defaults. `claude`, `gemini`, and `qwen` adapters now declare only their protocol-specific extractors.
51
+ - **Adapter naming conventions module** — Shared conventions consumed by `hook-runner` for adapter discovery; replaces open-coded filename parsing.
52
+ - **`src/lib/yaml-emit.js`** — `emitBlockList` and `emitInlineQuotedList` helpers replace 4 hand-rolled YAML emission sites.
53
+ - **`src/lib/framework-detection.js`** — `SKIP_DIRS`, `CONFIG_FILES`, `FRAMEWORK_INDICATORS` extracted from `assess_task_complexity` so the handler owns only logic.
54
+ - **`src/generator/manifest-curator.js`** — `collectManifestPaths` relocated from `scripts/generate.js` shell wrapper into the generator module.
55
+ - **`session-state-core.js`** — `withSessionState` / `readActiveSession` transaction helpers; the three mutation handlers in `session-state-tools.js` route through the helper (418 → 378 lines).
56
+ - **Isolated integration tests** — Codex workspace resolution contract, `validate_plan → create_session` round-trip, handoff validation and reconciliation flow, design-gate Plan Mode lifecycle (late-write success path, phantom-path failure path, archival).
57
+
58
+ ### Changed
59
+
60
+ - **Codex MCP server invocation** — `plugins/maestro/.mcp.json` now spawns the server via `npx -y github:josstei/maestro-orchestrate maestro-mcp-server`, matching the convention used by every curated Codex plugin. The previous relative-path spawn (`./mcp/maestro-server.js`) resolved against the user's workspace cwd rather than the plugin directory, causing MCP handshake failures in any workspace outside the repo checkout. The new invocation is location-independent.
61
+ - **Codex installation path** — Primary install is now `codex marketplace add josstei/maestro-orchestrate` (uses the new root `.agents/plugins/marketplace.json`). `scripts/install-codex-plugin.js` remains as a legacy/offline fallback.
62
+ - **`initialize_workspace` requires explicit `workspace_path`** — Handler calls `requireExplicitWorkspaceRoot`, writes a workspace marker, and returns `workspace_path` in the result. Schema declares `workspace_path` as required. Back-compat preserved via a `cachedProjectRoot` fallback for callers that pass the third MCP arg but not the explicit param.
63
+ - **`create_session` enforces design-gate approval** — Auto-populates `state.design_document` from the approved gate when the param is omitted, and resolves `implementation_plan` paths through the same copy-into-plans contract. Extends the design-gate from a single-step approval signal to the owner of the full design-doc lifecycle through archival.
64
+ - **`create_session` preserves phase ID types** — `phase.id` and `blocked_by` preserved verbatim, so plans with string IDs round-trip consistently. Tool schemas for `completed_phase_id`, `next_phase_id`, `next_phase_ids`, and the `scan_phase_changes` / `reconcile_phase` `phase_id` now accept number or string.
65
+ - **`transition_phase` rejects handoffs with files but empty `downstream_context`** — Returns `HANDOFF_INCOMPLETE` with the shape description embedded.
66
+ - **`archive_session` blocks on `requires_reconciliation`** and removes the `state/<session_id>.design-gate.json` sidecar on success (previously lingered; a future session reusing the same id inherited a stale "already approved" gate).
67
+ - **`validate_plan` enforces the shared phase schema** — `file-overlap` and `agent-capability` checkers inspect `phase.files` in addition to runtime `files_created` / `files_modified` manifests. Previously a plan using `phase.files` bypassed both guards, letting parallel phases declare conflicting ownership and letting read-only agents be assigned to write phases. Both error early-return paths now include `parallelization_profile: null`, matching the success-path response shape.
68
+ - **`reconcile_phase` rejects empty payloads** — Returns `RECONCILIATION_EMPTY_PAYLOAD` when no files and no populated `downstream_context` are supplied; overwrites file arrays only when the caller explicitly supplies them (previously silently cleared `requires_reconciliation` without recording attribution).
69
+ - **`resolve_settings` tolerates null project root** — Falls back to env + extension settings when no workspace is available, matching the documented startup-phase contract. Fixes the parallel-race crash where Gemini's concurrent startup calls produced a raw Node path error.
70
+ - **`maestro-server.js` decomposed** — 398-line monolith split into three single-purpose core modules and a 115-line composer: `core/line-reader.js` (readline stdin → JSON dispatch), `core/protocol-dispatcher.js` (JSON-RPC 2.0 routing, result builders), `core/project-root-cache.js` (workspace env + `roots/list` caching). Public exports preserved.
71
+ - **`validate-plan.js` decomposed** — 341-line handler split into four orthogonal checkers plus a 65-line orchestrator: `validation/schema-checker.js`, `validation/agent-checker.js`, `validation/dag-checker.js`, `validation/file-overlap-checker.js`. Violation ordering and error codes preserved.
72
+ - **`rebuild-frontmatter.js` rewritten as table-driven** — Per-field emitter map plus per-runtime ordered field lists. Claude's block-scalar description and color emission, Gemini's `tools`-before-`turns` layout, and the default (codex/qwen) shape are now data rather than conditionals. Generator output byte-identical.
73
+ - **Content provider simplified** — Inlined the filesystem branch of `content/provider.js`; every runtime uses `primary=filesystem` so the fallback-chain was dead code. Public exports (`CONTENT_SOURCES`, `createContentProvider`, `createFilesystemProvider`, `normalizeContentPolicy`) preserved.
74
+ - **Entry-point expansion unified** — `expandEntryPoints` and `expandCoreCommands` share `runTemplateExpansion` with per-runtime config maps.
75
+ - **Recovery hints table-driven** — `recovery-hints.js` cascade replaced by `RECOVERY_TABLE` lookup.
76
+ - **Manifest-expander refactored** — `normalizeSrcRelPath` (skills/shared flatten + snake_case agent rename) composed with `buildRuntimeOutputPath`; removes three open-coded `runtime.outputDir + outPath` sites and the `{ ...runtime, outputDir: './' }` glob-fallback hack.
77
+ - **Skill-discovery-stub consolidated onto the canonical `parse()` API** — `agent-stub.js` keeps `extractValue`/`splitAtBoundary` because those are the right primitives for its permissive unclosed-frontmatter behavior.
78
+ - **13 unused feature flags pruned** from each runtime-config's `features` block. Only `exampleBlocks`, `claudeStateContract`, `scriptBasedStateContract`, and `codexStateContract` remain — the others were mutual-exclusion triples with no readers in `src/` or tests.
79
+ - **Renamed:** `geminiStateContract` → `scriptBasedStateContract` (the flag gates the contract shared by Gemini and Qwen, which is a Gemini fork using the same `read-active-session.js` script); `createAdapter` → `defineAdapter` (matches `defineToolPack`/`defineRuntime` pattern; the factory is a spec-assembler, not a registry-dispatch builder).
80
+ - **Payload builder separated concerns** — Allowlist and adapter filtering are now distinct pipeline steps.
81
+ - **Orchestration flow restructured for Gemini Plan Mode** — Step 7 pre-loads architecture plus every pre-execution skill (`design-dialogue`, `design-document`, `implementation-planning`, `implementation-plan`) in a single batch before any Plan Mode entry. Gemini Plan Mode deregisters MCP tools, so previously `get_skill_content` calls at steps 11/13/15 returned "tool not found" and stranded the orchestrator. Steps 11/13/15 now reference the already-loaded skills. Step 13/14 split so `record_design_approval` is called AFTER `exit_plan_mode`. Step 9a HARD-GATE pins the chosen `session_id` across every MCP call that accepts `session_id` to prevent orphan-gate drift.
82
+ - **MCP client request timeout** — Bumped to 5000ms.
83
+ - **Documentation refreshed to canonical state** — Agent count 22 → 39, MCP tools 12 → 17, transforms 10 → 6, runtimes 3 → 4 applied across every hand-maintained surface. New `docs/runtime-qwen.md` mirrors the `runtime-gemini.md` structure. `src/references/architecture.md` agent roster lists all 39 agents with focus areas. `docs/usage.md` replaced the non-existent `just release <version>` target with `just check-layers` and `just cleanup-branches` which do exist.
84
+ - **Qwen Code runtime documentation** — Added to Runtime Targets and installation sections across README and docs.
85
+
86
+ ### Fixed
87
+
88
+ - **`downstream_context` contract mismatch across three layers** — `agent-base-protocol` documented string examples (`'or none'`), session-state stored arrays, `transition_phase` accepted arrays only. Agents emitting the documented string form were rejected with a misleading "no downstream context" error. The canonical contract now normalizes both forms.
89
+ - **Latent error-hierarchy bug** — `ValidationError`, `StateError`, `NotFoundError`, and `ConfigError` hard-coded their code and silently dropped caller-supplied subtype codes. `HANDOFF_INCOMPLETE`, `DESIGN_GATE_UNAPPROVED`, `RECONCILIATION_PENDING` were all collapsing to the base code.
90
+ - **Design-gate race under Gemini Plan Mode** — `write_file` and `record_design_approval` fire in the same turn; the approval handler's existence check raced the write. File materialization deferred from `record_design_approval` to `create_session` so the file has settled by the time the server reads it.
91
+ - **Design-gate `session_id` drift** — `create_session` rejects with `DESIGN_GATE_SESSION_MISMATCH` when an approved orphan gate exists and the current session has no gate of its own (belt-and-suspenders with the step 9a HARD-GATE).
92
+ - **Skill loading inside Plan Mode** — Addressed by the step 7 pre-load (see Changed).
93
+ - **Dispatcher drain on close** — Pending outbound client-request timeouts are now rejected when the server closes, letting Node exit promptly even with `roots/list` requests in flight.
94
+ - **Swallowed dispatcher errors** — `protocol-dispatcher` bare catch on `getProjectRoot()` now logs any error whose code is not `WORKSPACE_NOT_INITIALIZED` instead of silently resolving to null.
95
+ - **Codex public skill naming collisions (carry-through)** — Codex plugin MCP manifest no longer declares a misleading `cwd` key.
96
+ - **CI changelog version-header matching** — `awk` now uses a prefix match.
97
+
98
+ ### Removed
99
+
100
+ - **`plugins/maestro/mcp/maestro-server.js`** — No longer referenced; Codex invokes the server via `npx` rather than a local wrapper file.
101
+ - **Centralized `ENTRY_POINT_NAME_OVERRIDES` map** — Replaced by per-entry `runtimeNames`.
102
+ - **Top-level `delegationPattern` field** in runtime-configs — Duplicated `delegation.pattern`; the consumer's fallback branch was dead code. `get-runtime-context` simplified to `resolvedRuntimeConfig.delegation || { pattern: '', constraints: {} }`.
103
+ - **Gemini `workspacePath` env key** — Non-functional (Gemini has no CLI-injected workspace env var); replaced with explicit `workspacePath: null` to make the asymmetry with `CLAUDE_PROJECT_DIR` / `MAESTRO_WORKSPACE_PATH` visible in the config.
104
+ - **Dead module exports** — `ACTIVE_SESSION_REL` (`session-state-core`), `PHASE_LIMITS` (`schema-checker`), `CREATION_SIGNAL_PATTERNS` (`agent-checker`), and the `parseSessionState` / `serializeSessionState` back-compat re-exports from `session-state-tools.js`.
105
+
106
+ ### Security
107
+
108
+ - **`protocol-dispatcher` error visibility** — Unexpected workspace-resolution errors now log instead of silently coercing to null, surfacing future failure modes.
109
+ - **`yaml-emit` caller-safe-scalar contract documented** — JSDoc names the precondition (no escaping in the emitter) for future callers.
110
+ - **`withSessionState` contract documented** — JSDoc names the requirement that callers return an outcome object; the `|| {}` coalesce is preserved to avoid crashing on a genuine read-only mutator, but the footgun is now named.
111
+ - **Filename validation for design-doc / plan content variants** — Rejects path separators, `.`, `..`, and null bytes.
112
+
113
+ ### Known limitations
114
+
115
+ - **Local Codex plugin development iterates through GitHub.** `plugins/maestro/.mcp.json` always points `npx` at `github:josstei/maestro-orchestrate`, so running `codex marketplace add /path/to/maestro-orchestrate` still fetches the server from the default branch rather than the working tree. For iterating on server code, push the branch and test there, or invoke `bin/maestro-mcp-server.js` directly and point Codex at it with a hand-authored `.mcp.json`.
116
+ - **`qwen-extension.json` version drift.** `scripts/update-versions.js` does not include it in `JSON_VERSION_FILES`, so it drifts behind the other three manifests on each release. Bumped manually to 1.6.3 during this release; future releases must bump it manually or the script should be extended.
117
+
118
+ ## [1.6.2] - 2026-04-15
119
+
120
+ ### Added
121
+
122
+ - **Qwen Code runtime support** (#26) — Fourth runtime target with hook adapter, extension manifest (`qwen-extension.json`), context file (`QWEN.md`), 22 agent stubs, and `hooks.json` for `SubagentStart`/`SubagentStop` lifecycle events
123
+ - **`getExitCode(result)` adapter contract** (#42) — Each hook adapter now owns its exit code semantics; shared `exit-codes.js` constants (`EXIT_SUCCESS`, `EXIT_BLOCK`) verified against Gemini CLI, Claude Code, and Codex CLI source
124
+ - **npm publishing workflows** — Nightly (cron), preview (PR label), RC (release PR), and stable release pipelines with `NPM_TOKEN` gating
125
+ - **Community standards** — Code of Conduct (Contributor Covenant v2.1), Contributing Guide, Security Policy, issue/PR templates
126
+ - **CI/CD pipeline documentation** (`docs/cicd.md`) — Mermaid workflow diagrams, job breakdowns, release pipeline chain, and cross-references from existing docs
127
+ - **`lib/` foundation layer** — 6 shared modules (`errors`, `io`, `naming`, `frontmatter`, `validation`, `discovery`) extracted from duplicated implementations across the codebase
128
+ - **Exhaustive test coverage** — 121 tests across 22 files wired into CI; previously only transforms and integration tests ran in CI
129
+ - **Build-time auto-discovered registries** — `agent-registry.json`, `resource-registry.json`, `hook-registry.json` scanned at generate time, replacing hardcoded allowlists
130
+
131
+ ### Changed
132
+
133
+ - **Thin multi-runtime entrypoints** — Replaced generated `canonical-source.js`, MCP entrypoint, hook-runner, and adapter copies with hand-authored wrappers that default `MAESTRO_RUNTIME` per runtime and use bounded repo-first / bundled-fallback resolution for detached Claude and Codex installs
134
+ - **Generator architecture** (`src/manifest.js`, `scripts/generate.js`) — Simplified the manifest to 2 discovery rules, reduced the generation-time transform registry from 10 entries to 4, and added an explicit detached-payload pack step for `claude/src/` and `plugins/maestro/src/`
135
+ - **Generator decomposed** — 807-line monolith split into focused modules: `file-writer`, `manifest-expander`, `stale-pruner`, `payload-builder`, `registry-scanner`, `entry-point-expander`
136
+ - **Codex plugin packaging** — Removed unused `plugins/maestro/agents/` stubs; Codex now relies on skills, MCP tools, and `get_agent` for methodology instead of plugin-level agent files
137
+ - **Centralized policy rules** — Claude policy-enforcer imports from canonical `src/core/policy-rules.js` with bundled fallback; deduplicated `readBoundedStdin` into `core/stdin-reader.js`
138
+ - **Lazy-loaded runtime configs** — Runtime configs loaded on demand with per-runtime detached payload filtering
139
+ - **Minimum Node.js version** — Raised to 20 (Node 18 EOL); `engines` field declared in `package.json`
140
+ - **Package renamed** — From `@maestro-orchestrator/gemini-extension` to `@maestro-orchestrator/maestro`
141
+ - **Runtime documentation** — Updated Gemini, Claude, and Codex runtime docs to describe thin entrypoints plus detached payloads rather than generated helper copies
142
+ - **Documentation aligned** — All docs updated to match post-consolidation codebase state
143
+
144
+ ### Fixed
145
+
146
+ - **Codex public skill naming collisions** — Renamed the public Codex skills to `$maestro:review-code`, `$maestro:debug-workflow`, and `$maestro:resume-session` so installing Maestro does not shadow or break Codex's built-in `/review`, `/debug`, and `/resume` commands
147
+ - **LLM string-to-integer coercion** — Phase IDs sent as strings by LLMs in `transition_phase` now parsed correctly before phase lookups
148
+
149
+ ## [1.6.1] - 2026-04-10
150
+
151
+ ### Added
152
+
153
+ - **Self-contained Claude runtime payload** (`src/manifest.js`) — Added `'claude'` to the self-contained runtime payload manifest rule (already used by Codex) so the full `src/` tree is bundled into `claude/src/`; canonical-source resolution now succeeds from plugin caches outside the repo tree
154
+ - **`withIsolatedClaudePlugin` test helper** (`tests/integration/helpers.js`) — Copies the generated `claude/` directory into an isolated temp directory for testing plugin behavior outside the repo tree; mirrors the existing `withIsolatedCodexPlugin` helper
155
+ - **Isolated Claude bundle integration tests** — Hook entrypoint boot test, MCP server startup test, MCP tool listing and content serving tests, all running against an isolated plugin bundle
156
+
157
+ ### Fixed
158
+
159
+ - **Claude plugin canonical-source resolution from plugin cache** — `requireFromCanonicalSrc(__dirname)` in hook scripts (`session-start.js`, `before-agent.js`, `session-end.js`) and MCP entry-point walked up from `~/.claude/plugins/cache/` looking for `src/mcp/maestro-server.js` but never found it because the Claude runtime did not bundle `src/`; resolved by the self-contained payload rule above
160
+
161
+ ## [1.6.0] - 2026-04-09
162
+
163
+ ### Added
164
+
165
+ - **Codex runtime target** (`plugins/maestro/`) — Complete third runtime for OpenAI Codex with plugin manifest, 22 agent stubs, 19 skills, MCP entry-point, and runtime guide; agents use kebab-case names and `spawn_agent(...)` delegation
166
+ - **Canonical source architecture** — Single `src/` tree serves all three runtimes (Gemini, Claude, Codex) via `requireFromCanonicalSrc()` dynamic resolution, eliminating verbatim lib copies and runtime-specific source directories
167
+ - **`get_agent` MCP tool** — Returns agent methodology content by name, enabling runtime access to agent definitions without filesystem reads
168
+ - **`get_runtime_context` MCP tool** — Returns runtime-specific configuration (delegation patterns, tool mappings, environment variables) for the active platform
169
+ - **Entry-point generation system** (`src/entry-points/`) — Registry of 9 entry-point commands with 3 per-runtime templates (Gemini TOML, Claude SKILL.md, Codex SKILL.md); entry-point commands are now generated rather than hand-maintained
170
+ - **4 new transforms** — `agent-stub` (generates lightweight stubs that load methodology via MCP), `inline-runtime` (injects runtime-specific content blocks), `skill-discovery-stub` (generates skill stubs that load content via MCP), `copy` (verbatim file copy)
171
+ - **`canonical-source.js` utility** (`src/core/`) — `requireFromCanonicalSrc()` resolves the canonical `src/` directory from any runtime entry-point by walking parent directories; deployed as thin shims in each runtime's `mcp/` and `scripts/` directories
172
+ - **`project-root-resolver.js` rewrite** (`src/core/`) — Multi-strategy workspace resolution supporting all three runtimes: env vars (`MAESTRO_WORKSPACE_PATH`, `CLAUDE_PROJECT_DIR`), git root detection, and cwd fallback
173
+ - **Justfile** — Development commands: `just test`, `just check`, `just test-transforms`, `just test-integration`; replaces ad-hoc npm scripts
174
+ - **Documentation suite** (`docs/`) — 7 focused docs replacing old plans/specs: `overview.md`, `architecture.md`, `flow.md`, `usage.md`, `runtime-gemini.md`, `runtime-claude.md`, `runtime-codex.md`
175
+ - **27 new test files** — MCP handler tests (content provider, runtime context, kernel, session pack, workspace pack, content pack, pack composition), transform tests (copy, index, project-root-resolver), integration tests (entry-point templates, hook entry-points, glob manifest, source of truth, MCP server bundle behavior, MCP server entry-point, MCP stdio client helper)
176
+ - **CI release workflow** (`.github/workflows/release.yml`) — Automated GitHub releases from version tags using `CHANGELOG.md` content
177
+
178
+ ### Changed
179
+
180
+ - **MCP server decomposed** — Monolithic ~38k-line bundles (`mcp/maestro-server.js`, `claude/mcp/maestro-server.js`) replaced by ~14-line entry-points delegating to modular `src/mcp/` tree: 8 handlers, 3 tool-packs (workspace, session, content), core modules (server creation, tool registry, recovery hints), and utilities (extension root resolution)
181
+ - **Generator rewrite** (`scripts/generate.js`) — Updated to support manifest expansion with glob patterns, transform pipeline across three runtimes, entry-point rendering from templates, platform file mapping, and stale file pruning
182
+ - **`src/manifest.js` expanded** — Glob patterns, per-runtime platform file mappings, entry-point generation rules, and self-contained Codex `src/` payload rules
183
+ - **Codex skill names** — Dropped `maestro-` prefix from all skill names; skills use plugin namespace directly (`$maestro:orchestrate` instead of `$maestro:maestro-orchestrate`)
184
+ - **Shared skills restructured** — All 7 methodology skills (delegation, design-dialogue, execution, implementation-planning, session-management, code-review, validation) updated to load protocols and references via `get_skill_content` MCP tool instead of filesystem reads
185
+ - **Agent methodologies** — All 22 agents updated with explicit tool access declarations in frontmatter; Claude and Codex runtimes serve methodology content via MCP at runtime rather than inlining full definitions
186
+ - **Hook entry-points** — All 10 hook scripts (5 Gemini, 5 Claude) now use `requireFromCanonicalSrc()` to resolve logic modules from canonical source instead of runtime-local `lib/` copies
187
+ - **CI generator check** (`.github/workflows/generator-check.yml`) — Updated for three-runtime architecture with Codex output verification
188
+ - **Shared skill content** — Delegation protocols, design-dialogue, execution, implementation-planning, and session-management skills updated with runtime-agnostic path references and MCP-first content loading patterns
189
+ - **`GEMINI.md`** — Updated pointers to canonical source locations
190
+ - **62 documentation audit findings resolved** — Cross-referenced all docs against codebase; corrected stale paths, outdated counts, missing entries, and inaccurate descriptions across 12 files
191
+
192
+ ### Removed
193
+
194
+ - **`lib/` directory** (root) — `lib/core/`, `lib/hooks/` modules relocated to `src/core/`, `src/hooks/logic/`; root-level `lib/` eliminated
195
+ - **`src/lib/` directory** — All 14 modules (`config/`, `core/`, `hooks/`, `mcp/`, `state/`) relocated to canonical `src/` locations; entire directory removed
196
+ - **`claude/lib/` directory** — Runtime-specific `core/` and `hooks/` copies removed; Claude runtime delegates to canonical source via `requireFromCanonicalSrc()`
197
+ - **`src/runtime-only/` directory** — 9 Claude skill stubs and 9 Gemini command stubs replaced by entry-point generation system
198
+ - **Monolithic MCP bundles** — `mcp/maestro-server.js` and `claude/mcp/maestro-server.js` reduced from ~38k lines each to ~14-line entry-points; bundled source replaced by modular `src/mcp/` tree
199
+ - **Library drift detection** (`scripts/check-claude-lib-drift.sh`) — Superseded by the runtime generator; canonical source architecture makes drift impossible
200
+ - **Root-level utility scripts** — `scripts/ensure-workspace.js`, `scripts/read-active-session.js`, `scripts/read-setting.js`, `scripts/read-state.js` relocated to `src/scripts/`
201
+ - **`references/` directory** (root) — `architecture.md` and `orchestration-steps.md` moved to `src/references/`
202
+ - **`templates/` directory** (root) — `design-document.md`, `implementation-plan.md`, `session-state.md` moved to `src/templates/`
203
+ - **`claude/scripts/write-state.js`** — Consolidated into `src/scripts/write-state.js`
204
+ - **`claude/skills/delegation/protocols/`** — Protocol files removed from runtime output; loaded via MCP `get_skill_content` from canonical source
205
+ - **Old planning docs** — `docs/plans/2026-04-04-runtime-generator.md` and `docs/specs/2026-04-04-runtime-generator-design.md` replaced by focused documentation suite
206
+
207
+ ## [1.5.0] - 2026-04-01
208
+
209
+ ### Added
210
+
211
+ - **`get_skill_content` MCP tool** — Reads delegation protocols, templates, and reference documents by identifier via MCP, bypassing workspace sandbox restrictions. Used by the orchestrate command to load non-skill resources (methodology skills are loaded via `activate_skill`).
212
+ - **`references/orchestration-steps.md`** — Shared numbered-step sequence (40 steps with inline HARD-GATEs) loaded by both Gemini CLI and Claude Code orchestrate commands as the sole procedural authority.
213
+ - **`AGENT_CAPABILITIES` tier map** in `lib/core/agent-registry.js` — Classifies all 22 agents into `read_only`, `read_shell`, `read_write`, or `full` capability tiers. Exports `getAgentCapability()` and `canCreateFiles()`.
214
+ - **`agent_capability_mismatch` validation rule** in `validate_plan` — Server-side enforcement that read-only agents cannot be assigned to file-creating phases. Emits error violations for explicit file lists, warnings for creation-signal phase names.
215
+ - **Claude Code plugin** — Full dual-runtime support. Same 22 agents, 7 methodology skills (plus 12 command entry-point wrappers), 12 commands, lifecycle hooks, and MCP state management now available on Claude Code via the `claude/` subdirectory
216
+ - **Claude Code MCP auto-registration** (`claude/.mcp.json`) — MCP server discovered automatically when the plugin is loaded
217
+ - **MCP tool name mapping** — Orchestrator commands include mapping tables translating bare tool names (e.g., `initialize_workspace`) to Claude Code's prefixed names (`mcp__plugin_maestro_maestro__initialize_workspace`)
218
+ - **Agent name mapping** — Orchestrator commands include mapping for Claude Code's `maestro:` agent prefix (e.g., `maestro:coder`, `maestro:code-reviewer`)
219
+ - **Claude Code hook adapter** (`claude/scripts/hook-adapter.js`) — Normalizes Claude Code's PreToolUse/SessionStart/SessionEnd hook contract to Maestro's internal format
220
+ - **Policy enforcer** (`claude/scripts/policy-enforcer.js`) — Blocks destructive shell commands via Claude Code's PreToolUse hook on Bash tool calls
221
+
222
+ ### Changed
223
+
224
+ - **Orchestrate command restructured to numbered-step backbone** — `commands/maestro/orchestrate.toml` is now a thin runtime preamble (~28 lines) that loads `orchestration-steps.md`. The previous 347-line inlined protocol with prose instruction sections has been replaced. Same change applied to `claude/commands/orchestrate.md` (~773 lines → ~214 lines).
225
+ - **Design-dialogue protocol moved** from inlined in orchestrate command to on-demand loading via `activate_skill` (Gemini) or `Read` tool (Claude).
226
+ - **Template and reference loading deferred to consumption points** — `design-document`, `implementation-plan`, and `session-state` templates are no longer loaded at classification time; each is loaded at the step where it's consumed (steps 13, 15, 20).
227
+ - **`GEMINI.md` inline workflow content removed** — Express Workflow, Standard Workflow Phase 1-4, Task Complexity Classification, and Workflow Mode Selection sections replaced by pointer to `orchestration-steps.md`.
228
+ - **Express Flow state persistence** — Added step 5 (`transition_phase`) between coder delegation and code review to persist file manifests and downstream context before the review runs. Previously, state was only updated after the review.
229
+ - **Express Flow delegation enforcement** — Added HARD-GATE blocks preventing the orchestrator from editing code directly after code review findings. Fixes must be re-delegated to the implementing agent.
230
+ - **Express Flow brief presentation** — Split into two explicit sub-steps (2a: output brief as text, 2b: short approval prompt) with HARD-GATE preventing brief content from being stuffed into AskUserQuestion/ask_user
231
+ - **`create_session` field name** — Express Flow instructions now explicitly require `agent` (singular string) in phase objects, not `agents` (plural array which was silently ignored by the MCP server)
232
+ - **Delegation headers** — Added `Batch: single` to Express Flow delegation headers to match the delegation skill's required header set
233
+ - **Environment variable fallbacks** — `lib/config/setting-resolver.js` checks `CLAUDE_PLUGIN_ROOT` as fallback for `MAESTRO_EXTENSION_PATH`; `lib/core/project-root-resolver.js` checks `CLAUDE_PROJECT_DIR` as fallback for `MAESTRO_WORKSPACE_PATH`. Harmless no-op under Gemini CLI.
234
+
235
+ ### Security
236
+
237
+ - **`validateContainment()` in `session-state.js`** — Absolute `state_dir` paths must resolve within the project root; rejects paths outside the cwd boundary. Applied to both `resolveStateDirPath` and `ensureWorkspace`.
238
+ - **`ensureBaseDir()` in `hook-state.js`** — Validates hook state base directory is not a symlink before creating session subdirectories. Temp directory naming changed from predictable `/tmp/maestro-hooks` to per-user `maestro-hooks-${uid}`.
239
+ - **Policy enforcer full-command parsing** — `splitCommands()` and `extractSubshells()` in `policy-enforcer.js` decompose commands on `;`, `&&`, `||`, `|`, and `$()` boundaries before checking deny rules against each segment. Prefix matching trims leading whitespace. Error handler changed from fail-open to fail-closed.
240
+ - **MCP error message path stripping** — Error handler in both MCP bundles replaces absolute filesystem paths with `[path]` before returning to the client. `get-skill-content.js` returns `err.code` instead of `err.message`.
241
+ - **`readBoundedStdin()` in hook adapters** — 1MB `MAX_STDIN_BYTES` limit applied to all hook entry scripts (7 scripts across both runtimes), `stdin-reader.js`, and `policy-enforcer.js`.
242
+ - **`ensureWorkspace` create-then-verify ordering** — Directory is created first, then verified via `lstatSync` that it is not a symlink, replacing the previous check-then-create ordering.
243
+ - **Explicit file permissions in `atomicWriteSync`** — Directories created with mode `0o700`, files with mode `0o600`. Same modes applied in `ensureWorkspace` and `ensureSessionDir`.
244
+ - **Session state `.gitignore`** — `docs/maestro/state/` added to project `.gitignore`. `ensureWorkspace` auto-creates a `.gitignore` inside the state directory excluding `active-session.md` and `archive/`.
245
+
246
+ ### Fixed
247
+
248
+ - **Skill files now accessible in all modes** (normal, Plan Mode, auto-edit) via `get_skill_content` MCP tool — replaces broken `read_file` → `run_shell_command cat` fallback chain that failed due to workspace sandbox + Plan Mode policy restrictions.
249
+ - **Agent dispatch enforcement** — Delegation rules now require calling agents by registered tool name, preventing fallback to the built-in `generalist` tool which ignores agent frontmatter (methodology, temperature, tool restrictions, turn limits).
250
+ - **Express workflow `transition_phase` enforcement** — HARD-GATE ensures session state records all delivered files after agent execution.
251
+
252
+ ## [1.4.0] - 2026-03-19
253
+
254
+ ### Added
255
+
256
+ - **10 new specialist agents** — `seo_specialist`, `copywriter`, `content_strategist`, `ux_designer`, `accessibility_specialist`, `product_manager`, `analytics_engineer`, `i18n_specialist`, `design_system_engineer`, `compliance_reviewer`; roster expanded from 12 to 22
257
+ - **MCP server** (`mcp/maestro-server.js`) — Bundled Model Context Protocol server registered via `mcpServers` in `gemini-extension.json` with 9 tools at launch: `initialize_workspace`, `assess_task_complexity`, `validate_plan`, `create_session`, `get_session_status`, `update_session`, `transition_phase`, `archive_session`, `resolve_settings` (10th tool `get_skill_content` added in v1.5.0)
258
+ - **Express workflow** — Streamlined inline flow for `simple` tasks: 1-2 clarifying questions, combined design+plan structured brief, single-agent delegation, code review, and archival without skill activations or execution-mode gating
259
+ - **Task complexity classification** — Three-tier system (`simple`, `medium`, `complex`) gating workflow mode selection (Express vs Standard), design depth defaults, domain analysis breadth, question coverage, and phase count limits
260
+ - **8-domain analysis** — Pre-planning domain sweep across Engineering, Product, Design, Content, SEO, Compliance, Internationalization, and Analytics; scaled by task complexity to identify specialist involvement
261
+ - **Design depth gate** — Three-tier depth selector (`Quick`, `Standard`, `Deep`) in design-dialogue controlling reasoning richness: assumption surfacing, decision matrices, rationale annotations, and requirement traceability; orthogonal to task complexity
262
+ - **3 standalone commands** — `/maestro:a11y-audit` (WCAG compliance), `/maestro:compliance-check` (GDPR/CCPA/regulatory), `/maestro:seo-audit` (technical SEO assessment)
263
+ - **Policy engine rules** (`policies/maestro.toml`) — Extension-tier deny/ask guardrails: blocks `rm -rf`, `git reset --hard`, `git clean`, and heredoc shell writes; prompts on `tee` and shell redirection operators
264
+ - **Hook adapter layer** (`hooks/hook-adapter.js`) — Normalizes Gemini stdin JSON to internal context contract and formats responses for stdout, decoupling hook I/O from business logic
265
+ - **Runtime-agnostic hook logic** — Extracted core hook behavior into `lib/hooks/` modules (`before-agent-logic.js`, `after-agent-logic.js`, `session-start-logic.js`, `session-end-logic.js`) separate from I/O handling
266
+ - **`scripts/read-setting.js`** — CLI utility to resolve a single Maestro setting using script-accurate precedence
267
+ - **Architecture reference** (`references/architecture.md`) — Compact reference for agent roster, state contract, session lifecycle, execution modes, and delegation contract; read by commands at startup
268
+ - **`ARCHITECTURE.md`** and **`OVERVIEW.md`** — Top-level project documentation for architecture deep-dive and quick-start overview
269
+ - **Context budget guidance** — GEMINI.md section on minimizing skill activations, leveraging delegation for context relief, and preferring compact MCP responses over full state reads
270
+ - **`codebase_investigator` integration** — Design-dialogue and implementation-planning skills call the built-in investigator for repo grounding before proposing approaches or decomposing phases
271
+ - **Design document enrichments** — Decision matrix template (Standard/Deep), rationale annotations, per-decision alternatives (Deep), requirement traceability tags (Deep), `design_depth` and `task_complexity` frontmatter fields, numbered requirement IDs (`REQ-N`)
272
+ - **Session state fields** — `workflow_mode`, `execution_backend`, `current_batch`, and `task_complexity` added to session state template
273
+
274
+ ### Changed
275
+
276
+ - **`src/lib/` flattened to `lib/`** — All shared modules relocated from `src/lib/` to `lib/`; scripts, hooks, and internal imports updated to new paths
277
+ - **Default state directory** — `MAESTRO_STATE_DIR` default changed from `.gemini` to `docs/maestro`; updated in `gemini-extension.json`, GEMINI.md, session-state module, and all command/skill references
278
+ - **Hook architecture** — Hooks (`before-agent.js`, `after-agent.js`, `session-start.js`, `session-end.js`) refactored from `defineHook`/`hook-facade` pattern to direct stdin/stdout with `hook-adapter.js` normalization and separated logic modules
279
+ - **Agent registry** — `KNOWN_AGENTS` array updated from 12 to 22 entries; `detectAgentFromPrompt` now checks agent header (`agent: <name>`) before env var and prompt pattern matching
280
+ - **Orchestrate command** — Expanded from 14-line protocol summary to full orchestrator template with hard gates, first-turn contract, required question order, design/plan approval gates, execution mode gate, delegation requirements, Express workflow routing, and recovery rules
281
+ - **Execute command** — Added inline Maestro Execute section with workspace initialization, execution-mode gate resolution, and parallel/sequential dispatch constraints
282
+ - **Resume command** — Added Express resume detection (`workflow_mode: "express"`), anti-delegation guards for token/status queries, and inline Maestro Resume section with constraint rules
283
+ - **Archive command** — Rewritten to use `get_session_status` and `archive_session` MCP tools instead of direct file manipulation
284
+ - **Status and resume commands** — Added anti-delegation guards preventing token/accounting questions from being routed to `cli_help` or research agents
285
+ - **All standalone audit commands** (`debug`, `perf-check`, `security-audit`, `review`) — Added delegation skill activation for protocol injection
286
+ - **Delegation skill** — Protocol injection paths updated to `${extensionPath}/skills/delegation/protocols/`; added missing context fallback and downstream consumer declaration patterns
287
+ - **Design-dialogue skill** — Added Standard-workflow-only gate, Express bypass, repository grounding protocol with `codebase_investigator`, depth gate with first-turn contract, and complexity-aware section/question scaling
288
+ - **Implementation-planning skill** — Added Standard-workflow-only gate, codebase grounding protocol, `task_complexity` propagation from design document to plan frontmatter
289
+ - **Session-management skill** — Added MCP-first state access protocol (preferred > fallback > legacy), Express workflow session creation, and `workflow_mode` awareness
290
+ - **Execution skill** — Added Standard-workflow-only scope note and Express bypass
291
+ - **GEMINI.md orchestrator context** — Expanded with workflow routing, complexity classification, Express workflow definition, domain analysis matrix, context budget section, MCP tool preference for state operations, `codebase_investigator` guidance, and 22-agent roster
292
+ - **Package identity** — Renamed from `gemini-maestro` to `@maestro-orchestrator/gemini-extension`; added `files` manifest for publishable assets
293
+ - **License** — Changed from MIT to Apache-2.0
294
+ - **`env-file-parser`** — Added multi-line quoted value support for values spanning multiple lines within double quotes
295
+ - **`session-state` module** — Added `resolveStateDirPath` helper; `ensureWorkspace` accepts absolute `stateDir` paths; removed `parallel` subdirectory from workspace scaffold
296
+ - **`atomic-write`** — Added monotonic counter to temp file names to prevent PID-only collisions
297
+ - **`project-root-resolver`** — Added `MAESTRO_WORKSPACE_PATH` env var check before git fallback
298
+ - **`hook-state`** — Added `MAESTRO_HOOKS_DIR` env var override for hook state base directory
299
+ - **`setting-resolver`** — Removed `os.homedir()` fallback for extension path; requires `MAESTRO_EXTENSION_PATH` env var when resolving extension `.env`
300
+ - **`refactor` agent** — Added `run_shell_command` to tool set
301
+ - **Implementation plan template** — Updated parallel dispatch note from `--approval-mode=yolo` reference to native subagent framing; added `task_complexity` frontmatter
302
+ - **`USAGE.md`** and **`README.md`** — Rewrites reflecting 22-agent roster, Express workflow, MCP tools, policy engine, and updated configuration
303
+
304
+ ### Removed
305
+
306
+ - **`src/lib/` directory** — All modules relocated to `lib/`; removed `src/lib/config/dispatch-config-resolver.js`, `src/lib/core/integer-parser.js`, `src/lib/dispatch/concurrency-limiter.js`, `src/lib/dispatch/process-runner.js`, `src/lib/hooks/hook-facade.js`, `src/lib/hooks/hook-response.js`
307
+ - **`scripts/parallel-dispatch.js`** — Script-based parallel dispatch replaced by native subagent calls in v1.3.0; module fully removed
308
+ - **`scripts/sync-version.js`** — Version sync script between `package.json` and `gemini-extension.json`; replaced by `files` manifest in `package.json`
309
+ - **Entire test suite** — Removed `tests/` directory: 19 unit tests, 8 integration tests, test runner (`run-all.js`), and helpers; tests were coupled to removed `src/lib/` modules and dispatch infrastructure
310
+ - **CI workflow** — Removed `.github/workflows/ci.yml` (cross-platform test matrix on `ubuntu-latest` and `windows-latest`)
311
+ - **Architecture docs directory** — Removed `docs/architecture/` (5 files: `agent-system.md`, `comprehensive-map.md`, `skills-and-commands.md`, `state-management-and-scripts.md`, `system-overview.md`); replaced by `ARCHITECTURE.md`, `OVERVIEW.md`, and `references/architecture.md`
312
+
313
+ ## [1.3.0] - 2026-03-07
314
+
315
+ ### Added
316
+
317
+ - **Plan-based execution mode recommendation** — When `MAESTRO_EXECUTION_MODE=ask` (default), the orchestrator analyzes the implementation plan's dependency graph and presents a data-driven parallel vs sequential recommendation via `ask_user`
318
+ - **Execution mode gate enforcement** — `<HARD-GATE>` language in the execution skill ensures the mode prompt cannot be skipped; safety fallback stops delegation if `execution_mode` is missing from session state
319
+ - **Mandatory gate references across all entry points** — `orchestrate`, `execute`, and `resume` command prompts all enforce the execution mode gate before any delegation proceeds
320
+
321
+ ### Changed
322
+
323
+ - **Native-only parallel execution** — Replaced script-based parallel dispatch (`parallel-dispatch.js`, `process-runner.js`, `concurrency-limiter.js`) with Gemini CLI's native subagent scheduler; parallel batches are now contiguous agent tool calls in a single turn
324
+ - **Simplified extension settings** — Removed script-dispatch-only settings (`MAESTRO_DEFAULT_MODEL`, `MAESTRO_WRITER_MODEL`, `MAESTRO_DEFAULT_TEMPERATURE`, `MAESTRO_MAX_TURNS`, `MAESTRO_AGENT_TIMEOUT`, `MAESTRO_STAGGER_DELAY`, `MAESTRO_GEMINI_EXTRA_ARGS`); native tuning uses agent frontmatter and Gemini CLI `agents.overrides`
325
+ - **`MAESTRO_MAX_CONCURRENT` redefined** — Now controls native parallel batch chunk size (how many subagent calls per turn) instead of subprocess concurrency limit
326
+ - **Execution skill rewrite** — Structured 5-step mode gate protocol with plan analysis, `ask_user` call format, and recommendation logic covering all parallelization percentages
327
+ - **GEMINI.md orchestrator context** — Updated Phase 3 description and Execution Mode Protocol section to reference the execution skill as the authoritative gate source
328
+
329
+ ### Removed
330
+
331
+ - **Script-based dispatch backend** — Removed `scripts/parallel-dispatch.js`, `src/lib/dispatch/process-runner.js`, `src/lib/dispatch/concurrency-limiter.js`, `src/lib/config/dispatch-config-resolver.js`, and all associated tests
332
+ - **Dispatch-only extension settings** — Removed 7 settings from `gemini-extension.json` that only applied to the script dispatch backend
333
+
334
+ ## [1.2.1] - 2026-02-19
335
+
336
+ ### Added
337
+
338
+ - **Expanded test coverage** — Added 91 unit tests and migrated integration tests to Node.js to validate hooks, dispatch, state handling, config resolution, and timeout behavior
339
+ - **Cross-platform PR CI matrix** — Added GitHub Actions workflow (`.github/workflows/ci.yml`) running `node tests/run-all.js` on both `ubuntu-latest` and `windows-latest`
340
+
341
+ ### Changed
342
+
343
+ - **Cross-platform runtime migration** — Replaced bash/Python hook and script execution paths with Node.js entry points for Windows PowerShell compatibility
344
+ - **Layered module architecture** — Reorganized shared runtime into focused modules under `src/lib/core`, `src/lib/config`, `src/lib/hooks`, `src/lib/state`, and `src/lib/dispatch`
345
+ - **Hook lifecycle and context output** — Registered SessionStart/SessionEnd hooks and standardized hook response context metadata (`hookEventName` + `additionalContext`) via shared hook helpers
346
+ - **Dispatch and settings behavior** — Moved operational logs to stderr, standardized env resolution/parsing, strengthened integer/path validation, and enforced canonical snake_case agent naming with hyphen alias normalization
347
+ - **Windows shell behavior** — Made shell mode opt-in to avoid `cmd.exe` argument mangling in Windows terminal flows
348
+ - **Documentation alignment** — Updated project documentation to align with current codebase behavior, naming conventions, and workflows
349
+
350
+ ### Fixed
351
+
352
+ - **Windows stability fixes** — Resolved Windows-specific dispatch/session regressions and aligned integration harness behavior with `windows-latest` runner semantics
353
+ - **AfterAgent stale-state handling** — Cleared active-agent state on deny responses to prevent sticky handoff validation across unrelated turns
354
+ - **Process safety hardening** — Added PID guards, timeout validation, descriptor cleanup safeguards, and safer stale hook-state handling
355
+
356
+ ### Removed
357
+
358
+ - **Legacy shell runtime paths** — Removed `.sh` hooks/scripts and bash/Python runtime dependencies in favor of Node.js equivalents
359
+
360
+ ## [1.2.0] - 2026-02-19
361
+
362
+ ### Added
363
+
364
+ - **Hooks-based lifecycle middleware** — BeforeAgent and AfterAgent hooks with shared shell library (`hooks/lib/common.sh`), `safe_main` wrapper for guaranteed JSON output, and advisory error handling
365
+ - **Agent tracking** — BeforeAgent/AfterAgent hooks track active agent identity via `/tmp/maestro-hooks/<session-id>/active-agent`; lazy state creation on first write, stale-pruned during BeforeAgent
366
+ - **Handoff report validation** — AfterAgent hook validates delegated agent output includes `Task Report` and `Downstream Context`; skips TechLead and non-delegation turns; requests one retry on malformed output
367
+ - **Active session gating** — `has_active_maestro_session` helper allows hooks to skip initialization when no Maestro session exists in the workspace
368
+ - **Final code review quality gate** — Phase 4 completion requires a `code_reviewer` pass on non-documentation file changes before archival; blocks on unresolved Critical/Major findings with remediation loop
369
+ - **14 extension settings** — All `MAESTRO_*` env vars declared in `gemini-extension.json`: `DEFAULT_MODEL`, `WRITER_MODEL`, `DEFAULT_TEMPERATURE`, `MAX_TURNS`, `AGENT_TIMEOUT`, `DISABLED_AGENTS`, `MAX_RETRIES`, `AUTO_ARCHIVE`, `VALIDATION_STRICTNESS`, `STATE_DIR`, `MAX_CONCURRENT`, `STAGGER_DELAY`, `GEMINI_EXTRA_ARGS`, `EXECUTION_MODE`
370
+ - **`MAESTRO_WRITER_MODEL`** (restored) — Per-agent model override for technical_writer in parallel dispatch
371
+ - **`MAESTRO_GEMINI_EXTRA_ARGS`** — Space-separated Gemini CLI flags forwarded to each parallel dispatch process
372
+ - **`MAESTRO_STATE_DIR`** (restored) — Configurable state directory with `extensionPath` resolution and env/workspace/extension/default precedence
373
+ - **`read-active-session.sh`** — Script to resolve the active session file path respecting `MAESTRO_STATE_DIR`
374
+ - **macOS timeout fallback** — Cancel-file-based watchdog with SIGTERM/SIGKILL for systems without GNU `timeout`
375
+ - **Shell helper library** (`hooks/lib/common.sh`) — `read_stdin`, `json_get`, `json_get_bool`, `respond_allow`, `respond_block`, `log_hook`, `validate_session_id`, `resolve_active_session_path`, `has_active_maestro_session`, `prune_stale_hook_state`
376
+ - **Built-in tools expanded** — `read_many_files`, `write_todos`, `ask_user`, and web tools added across agents
377
+ - **`activate_skill` guidance** — Agents and skills document how to activate skills with user consent behavior
378
+ - `enter_plan_mode`/`exit_plan_mode` for read-only Phase 1-2 with fallback when Plan Mode unavailable
379
+ - `save_memory` for cross-session knowledge persistence at Phase 4
380
+ - `{{args}}` parameter forwarding in status and resume commands
381
+ - **Integration test suite** — `tests/run-all.sh` covering all hooks, parallel dispatch (args forwarding, config fallback, exit-code propagation), and active-session resolution (8 test files)
382
+ - **`CLAUDE.md`** — Project-level contributor instructions
383
+
384
+ ### Changed
385
+
386
+ - **Lazy hook lifecycle** — SessionStart and SessionEnd removed from `hooks.json` registration; hook state created lazily by BeforeAgent and stale-pruned inline (2-hour threshold)
387
+ - All 12 agents: `model` field omitted (inherits main session model), canonical `grep_search` tool name, unified Handoff Report output contract
388
+ - `parallel-dispatch.sh`: sets `MAESTRO_CURRENT_AGENT` per spawned process, forwards `MAESTRO_GEMINI_EXTRA_ARGS`, warns on deprecated `--allowed-tools` flag
389
+ - Commands moved from `commands/maestro.*.toml` to `commands/maestro/*.toml` (directory-based namespace)
390
+ - Protocols moved from `protocols/` to `skills/delegation/protocols/` (co-located with delegation skill)
391
+ - `delegation` skill: prompt-based enforcement documented as defense-in-depth (native frontmatter is primary gate)
392
+ - `code-review` skill: updated for orchestration quality gates (post-phase checks and final completion gate); includes current file contents when diff unavailable
393
+ - `execution` skill: documents hook lifecycle, adds final code review gate section, includes review status in completion summary
394
+ - `session-management` skill: documents lazy hook state lifecycle with BeforeAgent creation and stale pruning
395
+ - `design-dialogue` skill: adds Plan Mode handling
396
+ - `session-start.sh`: checks for active Maestro session before initializing state
397
+ - `session-end.sh`: simplified to minimal cleanup without logging
398
+ - Architecture docs rewritten for accuracy against Gemini CLI specification
399
+ - Deprecated `--yolo` and `-p` flags replaced with `--approval-mode=yolo` and positional args in dispatch
400
+ - Session state template: added `task` field, reconciled `execution_mode`
401
+
402
+ ### Fixed
403
+
404
+ - Hook advisory behavior: `safe_main` wrapper guarantees JSON output on all code paths; errors emit `{}` instead of crashing
405
+ - Hook matchers removed (were too restrictive for SessionStart/SessionEnd)
406
+ - AfterAgent validates on retry without re-issuing denial
407
+ - `ask_user` parameter schema corrected in design-dialogue skill
408
+ - Plan Mode write paths corrected (`exit_plan_mode` path)
409
+ - Delegation paths corrected in skills to use `activate_skill` resources
410
+ - State template synced with runtime expectations
411
+ - `read_file` ignore enforcement and state access asymmetry clarified in skills
412
+ - Agent roster corrections: `run_shell_command` removed from refactor, `get_internal_docs` removed from devops_engineer and technical_writer
413
+ - macOS timeout support in parallel dispatch
414
+
415
+ ### Removed
416
+
417
+ - `before-tool.sh`, `before-tool-selection.sh`, `after-tool.sh` hooks — native frontmatter `tools:` handles tool enforcement
418
+ - `BeforeModel` hook — Gemini CLI discards model field from hook output
419
+ - `permissions.json` and `generate-permissions.sh` — redundant with native frontmatter enforcement
420
+ - `validate-agent-permissions.sh` — validated against the removed permissions manifest
421
+ - `display_name` field from all agent frontmatter (undocumented by Gemini CLI)
422
+ - `excludeTools` patterns — non-functional; use Policy Engine instead
423
+ - `hookEventName` from hook output (not consumed by Gemini CLI)
424
+
425
+ ## [1.1.1] - 2026-02-15
426
+
427
+ ### Fixed
428
+
429
+ - Removed extension settings prompts from install — Gemini CLI doesn't support default values, so users were forced through 13 prompts on install. All settings now use orchestrator defaults and are configurable via environment variables.
430
+
431
+ ### Changed
432
+
433
+ - README configuration section renamed from "Extension Settings" to "Environment Variables" with all 13 parameters documented
434
+
435
+ ## [1.1.0] - 2026-02-15
436
+
437
+ ### Added
438
+
439
+ - Extension settings with 13 configurable parameters via environment variables
440
+ - Maestro branded dark theme with warm gold accents
441
+ - Shell-based parallel dispatch for concurrent subagent execution (`scripts/parallel-dispatch.sh`)
442
+ - Agent base protocol with pre-flight procedures and structured output formatting
443
+ - Settings references in delegation, execution, session-management, and validation skills
444
+ - TechLead orchestrator startup checks with settings resolution
445
+ - Filesystem safety protocol for delegated agents (`protocols/filesystem-safety-protocol.md`)
446
+ - Workspace bootstrap script for directory safety (`scripts/ensure-workspace.sh`)
447
+ - State file I/O scripts for atomic reads and writes (`scripts/read-state.sh`, `scripts/write-state.sh`)
448
+ - Agent name validation against `agents/` directory in parallel dispatch (`scripts/validate-agent-permissions.sh`)
449
+ - Concurrency cap (`max_concurrent`) and stagger delay (`stagger_delay_seconds`) settings for parallel dispatch
450
+ - Execution mode selection (`execution_mode`) in extension settings and session state template
451
+ - Workspace readiness startup check in orchestrator
452
+ - File-writing enforcement rules across agent base protocol, delegation prompts, and filesystem safety protocol
453
+ - Project root auto-injection into all parallel dispatch prompts
454
+ - Execution mode gate and state file access protocol in execution skill
455
+ - Execution profile requirement in implementation planning skill
456
+
457
+ ### Fixed
458
+
459
+ - Hardened `parallel-dispatch.sh` against shell injection and edge cases
460
+ - Hardened scripts and commands against injection and path traversal attacks
461
+ - Stagger delay default changed from 0 to 5 seconds
462
+ - File writing rules enforced via `write_file` tool-only policy across all delegation prompts
463
+
464
+ ### Changed
465
+
466
+ - Execution mode upgraded from sequential-only to PARALLEL (shell-based) as default strategy
467
+ - Delegation skill updated with agent name rules and absolute path safety net
468
+ - Filesystem safety protocol injected into all delegation prompts
469
+ - Session-management `mkdir` steps annotated as defense-in-depth fallbacks
470
+
471
+ ## [1.0.0] - 2026-02-09
472
+
473
+ ### Added
474
+
475
+ - TechLead orchestrator with 12 specialized subagents
476
+ - Guided design dialogue with structured requirements gathering
477
+ - Automated implementation planning with phase dependencies and parallelization
478
+ - Parallel execution of independent phases via subagent invocation
479
+ - Session persistence with YAML+Markdown state tracking
480
+ - Least-privilege security model per agent
481
+ - Standalone commands: `maestro.orchestrate`, `maestro.resume`, `maestro.execute`
482
+ - Standalone commands: `maestro.review`, `maestro.debug`, `maestro.security-audit`, `maestro.perf-check`
483
+ - Session management: `maestro.status`, `maestro.archive`
484
+ - Design document, implementation plan, and session state templates
485
+ - Skill modules: code-review, delegation, design-dialogue, execution, implementation-planning, session-management, validation