@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,129 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+
6
+ const STABLE_SEMVER_RE = /^\d+\.\d+\.\d+$/;
7
+ const PACKAGE_JSON_PATH = 'package.json';
8
+ const BADGE_FILES = [
9
+ 'README.md',
10
+ 'claude/README.md',
11
+ ];
12
+ const CHANGELOG_PATH = 'CHANGELOG.md';
13
+
14
+ function readJson(filePath) {
15
+ return JSON.parse(fs.readFileSync(filePath, 'utf8'));
16
+ }
17
+
18
+ function writeJson(filePath, value) {
19
+ fs.writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf8');
20
+ }
21
+
22
+ function requireFile(root, relativePath) {
23
+ const filePath = path.join(root, relativePath);
24
+ if (!fs.existsSync(filePath)) {
25
+ throw new Error(`Required file not found: ${relativePath}`);
26
+ }
27
+
28
+ return filePath;
29
+ }
30
+
31
+ function updatePackageVersion(filePath, version) {
32
+ const content = readJson(filePath);
33
+ content.version = version;
34
+ writeJson(filePath, content);
35
+ }
36
+
37
+ function updateBadge(filePath, version) {
38
+ const content = fs.readFileSync(filePath, 'utf8');
39
+ const updated = content.replace(
40
+ /version-[0-9A-Za-z.-]+-blue/g,
41
+ `version-${version}-blue`
42
+ );
43
+
44
+ fs.writeFileSync(filePath, updated, 'utf8');
45
+ }
46
+
47
+ function trimBlankEdges(lines) {
48
+ let start = 0;
49
+ let end = lines.length;
50
+
51
+ while (start < end && lines[start].trim() === '') {
52
+ start += 1;
53
+ }
54
+
55
+ while (end > start && lines[end - 1].trim() === '') {
56
+ end -= 1;
57
+ }
58
+
59
+ return lines.slice(start, end);
60
+ }
61
+
62
+ function updateChangelog(filePath, version, dateString = new Date().toISOString().slice(0, 10)) {
63
+ const lines = fs.readFileSync(filePath, 'utf8').split('\n');
64
+ const unreleasedIndex = lines.findIndex((line) => line.trim() === '## [Unreleased]');
65
+
66
+ if (unreleasedIndex === -1) {
67
+ throw new Error('CHANGELOG.md missing ## [Unreleased] section');
68
+ }
69
+
70
+ let nextSectionIndex = lines.length;
71
+ for (let index = unreleasedIndex + 1; index < lines.length; index += 1) {
72
+ if (lines[index].startsWith('## [')) {
73
+ nextSectionIndex = index;
74
+ break;
75
+ }
76
+ }
77
+
78
+ const unreleasedLines = trimBlankEdges(lines.slice(unreleasedIndex + 1, nextSectionIndex));
79
+ if (unreleasedLines.length === 0) {
80
+ throw new Error('CHANGELOG [Unreleased] section has no content');
81
+ }
82
+
83
+ const nextVersionSection = [
84
+ `## [${version}] - ${dateString}`,
85
+ '',
86
+ ...unreleasedLines,
87
+ ];
88
+
89
+ const updatedLines = [
90
+ ...lines.slice(0, unreleasedIndex),
91
+ '## [Unreleased]',
92
+ '',
93
+ ...nextVersionSection,
94
+ '',
95
+ ...lines.slice(nextSectionIndex),
96
+ ];
97
+
98
+ fs.writeFileSync(filePath, `${updatedLines.join('\n').replace(/\n+$/, '')}\n`, 'utf8');
99
+ }
100
+
101
+ function updateReleaseInputs(version, options = {}) {
102
+ const root = options.root || path.resolve(__dirname, '..');
103
+
104
+ if (!STABLE_SEMVER_RE.test(version)) {
105
+ throw new Error(`Invalid semver version: "${version}"`);
106
+ }
107
+
108
+ updatePackageVersion(requireFile(root, PACKAGE_JSON_PATH), version);
109
+
110
+ for (const relativePath of BADGE_FILES) {
111
+ updateBadge(requireFile(root, relativePath), version);
112
+ }
113
+
114
+ updateChangelog(requireFile(root, CHANGELOG_PATH), version, options.dateString);
115
+
116
+ return { version };
117
+ }
118
+
119
+ module.exports = {
120
+ BADGE_FILES,
121
+ CHANGELOG_PATH,
122
+ PACKAGE_JSON_PATH,
123
+ STABLE_SEMVER_RE,
124
+ trimBlankEdges,
125
+ updateBadge,
126
+ updateChangelog,
127
+ updatePackageVersion,
128
+ updateReleaseInputs,
129
+ };
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const {
5
+ updateChangelog,
6
+ updateReleaseInputs,
7
+ } = require('./release-version-metadata');
8
+
9
+ function updateVersions(version, options = {}) {
10
+ return updateReleaseInputs(version, options);
11
+ }
12
+
13
+ if (require.main === module) {
14
+ const version = process.argv[2];
15
+
16
+ if (!version) {
17
+ console.error('Usage: node scripts/update-versions.js <version>');
18
+ process.exit(1);
19
+ }
20
+
21
+ try {
22
+ updateVersions(version);
23
+ console.log(`Updated canonical release inputs to ${version}`);
24
+ } catch (error) {
25
+ console.error(`version update failed: ${error.message}`);
26
+ process.exit(1);
27
+ }
28
+ }
29
+
30
+ module.exports = {
31
+ updateChangelog,
32
+ updateVersions,
33
+ };
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('node:fs');
5
+ const os = require('node:os');
6
+ const path = require('node:path');
7
+ const { execFileSync } = require('node:child_process');
8
+ const {
9
+ REQUIRED_PACKAGE_FILES,
10
+ isDeniedPath,
11
+ } = require('./release-artifact-manifest');
12
+
13
+ const ROOT = path.resolve(__dirname, '..');
14
+
15
+ function parsePackJson(stdout) {
16
+ const start = stdout.indexOf('[');
17
+ const end = stdout.lastIndexOf(']');
18
+
19
+ if (start === -1 || end === -1 || end < start) {
20
+ throw new Error(`npm pack did not emit JSON output:\n${stdout}`);
21
+ }
22
+
23
+ return JSON.parse(stdout.slice(start, end + 1));
24
+ }
25
+
26
+ function runNpmPackDryRun(root = ROOT) {
27
+ const cacheDir = fs.mkdtempSync(path.join(os.tmpdir(), 'maestro-npm-pack-cache-'));
28
+
29
+ try {
30
+ const stdout = execFileSync('npm', ['pack', '--dry-run', '--json', '--cache', cacheDir], {
31
+ cwd: root,
32
+ encoding: 'utf8',
33
+ stdio: ['ignore', 'pipe', 'pipe'],
34
+ });
35
+ return parsePackJson(stdout);
36
+ } finally {
37
+ fs.rmSync(cacheDir, { recursive: true, force: true });
38
+ }
39
+ }
40
+
41
+ function verifyPackageEntries(packages) {
42
+ if (!Array.isArray(packages) || packages.length !== 1) {
43
+ throw new Error('Expected npm pack to report exactly one package');
44
+ }
45
+
46
+ const entries = packages[0].files.map((file) => file.path);
47
+
48
+ for (const requiredPath of REQUIRED_PACKAGE_FILES) {
49
+ if (!entries.includes(requiredPath)) {
50
+ throw new Error(`npm package missing required file: ${requiredPath}`);
51
+ }
52
+ }
53
+
54
+ for (const entry of entries) {
55
+ if (isDeniedPath(entry)) {
56
+ throw new Error(`npm package contains forbidden path: ${entry}`);
57
+ }
58
+ }
59
+
60
+ return {
61
+ entryCount: entries.length,
62
+ filename: packages[0].filename,
63
+ };
64
+ }
65
+
66
+ function verifyNpmPack(root = ROOT) {
67
+ return verifyPackageEntries(runNpmPackDryRun(root));
68
+ }
69
+
70
+ if (require.main === module) {
71
+ try {
72
+ const result = verifyNpmPack();
73
+ console.log(`Verified npm pack contents: ${result.filename} (${result.entryCount} files)`);
74
+ } catch (error) {
75
+ console.error(`npm pack verification failed: ${error.message}`);
76
+ process.exit(1);
77
+ }
78
+ }
79
+
80
+ module.exports = {
81
+ parsePackJson,
82
+ runNpmPackDryRun,
83
+ verifyNpmPack,
84
+ verifyPackageEntries,
85
+ };
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('node:fs');
5
+ const os = require('node:os');
6
+ const path = require('node:path');
7
+ const { execFileSync } = require('node:child_process');
8
+ const {
9
+ assertReleaseArtifactContents,
10
+ assertRequiredArtifactPaths,
11
+ assertRuntimeManifestShape,
12
+ readJson,
13
+ } = require('./release-artifact-manifest');
14
+
15
+ const ROOT = path.resolve(__dirname, '..');
16
+
17
+ function printHelp() {
18
+ console.log(`Verify a Maestro release artifact.
19
+
20
+ Usage:
21
+ node scripts/verify-release-artifacts.js [archive]
22
+
23
+ If archive is omitted, the verifier checks:
24
+ dist/release/maestro-v<package.json version>-extension.tar.gz
25
+ `);
26
+ }
27
+
28
+ function parseArgs(argv) {
29
+ if (argv.includes('--help') || argv.includes('-h')) {
30
+ printHelp();
31
+ process.exit(0);
32
+ }
33
+
34
+ if (argv.length > 1) {
35
+ throw new Error('Expected at most one archive path');
36
+ }
37
+
38
+ return {
39
+ archivePath: argv[0] || null,
40
+ };
41
+ }
42
+
43
+ function defaultArchivePath(root) {
44
+ const version = readJson(root, 'package.json').version;
45
+ return path.join(root, 'dist', 'release', `maestro-v${version}-extension.tar.gz`);
46
+ }
47
+
48
+ function extractArchive(archivePath, targetRoot) {
49
+ fs.mkdirSync(targetRoot, { recursive: true });
50
+ execFileSync('tar', ['-xzf', archivePath, '-C', targetRoot], {
51
+ stdio: 'inherit',
52
+ });
53
+ }
54
+
55
+ function verifyReleaseArtifact(archivePath, options = {}) {
56
+ const root = options.root || ROOT;
57
+ const resolvedArchivePath = path.resolve(root, archivePath || defaultArchivePath(root));
58
+
59
+ if (!fs.existsSync(resolvedArchivePath)) {
60
+ throw new Error(`Release artifact not found: ${resolvedArchivePath}`);
61
+ }
62
+
63
+ const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), 'maestro-release-verify-'));
64
+
65
+ try {
66
+ extractArchive(resolvedArchivePath, tempRoot);
67
+ assertRequiredArtifactPaths(tempRoot);
68
+ assertReleaseArtifactContents(tempRoot);
69
+ const version = assertRuntimeManifestShape(tempRoot);
70
+
71
+ return {
72
+ archivePath: resolvedArchivePath,
73
+ version,
74
+ };
75
+ } finally {
76
+ fs.rmSync(tempRoot, { recursive: true, force: true });
77
+ }
78
+ }
79
+
80
+ if (require.main === module) {
81
+ try {
82
+ const args = parseArgs(process.argv.slice(2));
83
+ const result = verifyReleaseArtifact(args.archivePath);
84
+ console.log(`Verified release artifact: ${path.relative(ROOT, result.archivePath)} (${result.version})`);
85
+ } catch (error) {
86
+ console.error(`release artifact verification failed: ${error.message}`);
87
+ process.exit(1);
88
+ }
89
+ }
90
+
91
+ module.exports = {
92
+ defaultArchivePath,
93
+ parseArgs,
94
+ verifyReleaseArtifact,
95
+ };
@@ -0,0 +1,163 @@
1
+ ---
2
+ name: accessibility-specialist
3
+ description: "Accessibility specialist for WCAG compliance auditing, ARIA implementation review, keyboard navigation testing, and inclusive design assessment. Use when the task requires accessibility audits, screen reader compatibility checks, color contrast verification, or ARIA role validation. For example: auditing a web app for WCAG 2.1 AA compliance, reviewing keyboard navigation in modal dialogs, or validating ARIA usage in custom components."
4
+ color: violet
5
+ tools: [read_file, list_directory, glob, grep_search, run_shell_command, google_web_search, write_todos, read_many_files, ask_user]
6
+ tools.gemini: [read_file, list_directory, glob, grep_search, run_shell_command, google_web_search, write_todos, read_many_files, ask_user]
7
+ tools.claude: [Read, Bash, Glob, Grep, WebSearch, TaskCreate, TaskUpdate, TaskList]
8
+ max_turns: 20
9
+ temperature: 0.2
10
+ timeout_mins: 8
11
+ capabilities: read_shell
12
+ ---
13
+ <!-- @feature exampleBlocks -->
14
+ <example>
15
+ Context: User needs a WCAG accessibility audit.
16
+ user: "Audit our web app for WCAG 2.1 AA compliance"
17
+ assistant: "I'll systematically audit against all WCAG 2.1 AA success criteria: perceivable (alt text, contrast, captions), operable (keyboard, timing), understandable (readability, predictability), and robust (parsing, ARIA)."
18
+ <commentary>
19
+ Accessibility Specialist handles WCAG compliance auditing — read-only + shell for a11y tools.
20
+ </commentary>
21
+ </example>
22
+
23
+ <example>
24
+ Context: User needs keyboard navigation review.
25
+ user: "Check if our modal dialogs and dropdown menus are keyboard accessible"
26
+ assistant: "I'll review focus management, tab order, escape key handling, and ARIA roles for each interactive component, providing specific remediation patterns."
27
+ <commentary>
28
+ Accessibility Specialist handles keyboard accessibility and ARIA implementation review.
29
+ </commentary>
30
+ </example>
31
+ <!-- @end-feature -->
32
+
33
+ You are an **Accessibility Specialist** focusing on inclusive design and WCAG compliance. You identify accessibility barriers through systematic auditing, not automated scanner output alone.
34
+
35
+ **Methodology:**
36
+ - Audit interfaces against WCAG 2.1 success criteria at the target conformance level
37
+ - Review semantic HTML structure for correct element usage before assessing ARIA
38
+ - Test keyboard navigation paths: tab order, focus management, escape handling, skip links
39
+ - Verify color contrast ratios for all text and interactive elements
40
+ - Assess screen reader compatibility: landmark regions, heading hierarchy, live regions, form labels
41
+ - Evaluate touch target sizes and spacing for motor accessibility
42
+ - Check media alternatives: alt text for images, captions for video, transcripts for audio
43
+
44
+ **Assessment Areas:**
45
+ - Perceivable: text alternatives for non-text content, captions and audio descriptions, sufficient color contrast (4.5:1 normal text, 3:1 large text), content adaptable to different presentations, distinguishable foreground from background
46
+ - Operable: all functionality available via keyboard, sufficient time for interactions, no content that causes seizures or physical reactions, navigable structure with clear wayfinding, input modalities beyond keyboard supported
47
+ - Understandable: readable and predictable content, text at appropriate reading level, consistent navigation and identification, input assistance with error prevention and correction
48
+ - Robust: valid HTML parsing, complete name/role/value for all UI components, status messages programmatically determinable
49
+
50
+ **Output Format:**
51
+ - Audit findings with: WCAG criterion reference (e.g., 1.1.1 Non-text Content), severity (Critical/Major/Minor), location (file:line or component name), description of the barrier, affected user group, remediation code pattern
52
+ - Component-level ARIA specifications: which roles, states, and properties each interactive component requires
53
+ - Keyboard navigation map: expected tab order and keyboard interaction per component
54
+ - Automated tool results (axe-core, pa11y) with manual verification notes
55
+
56
+ **Constraints:**
57
+ - Read-only + shell for running audit tools (axe-core, pa11y, Lighthouse accessibility)
58
+ - Do not modify code — report findings and provide specific remediation patterns
59
+ - Prioritize findings by actual user impact, not theoretical compliance gaps
60
+ - Always verify automated tool findings manually — automated tools catch ~30% of WCAG issues
61
+
62
+ ## Decision Frameworks
63
+
64
+ ### WCAG Conformance Level Decision Tree
65
+ Determine the appropriate WCAG conformance target based on project context:
66
+
67
+ 1. **Check legal requirements:**
68
+ - Government or public sector project? → **WCAG 2.1 AA minimum** (Section 508, EN 301 549, ADA)
69
+ - Healthcare, education, or financial services? → **WCAG 2.1 AA minimum** (industry regulation and litigation risk)
70
+ - E-commerce with >$10M annual revenue? → **WCAG 2.1 AA recommended** (ADA Title III precedent)
71
+ - No legal mandate? → Proceed to step 2
72
+
73
+ 2. **Assess audience needs:**
74
+ - Known users with disabilities (enterprise tools, assistive technology users)? → **WCAG 2.1 AA minimum**
75
+ - General public audience (consumer web app, marketing site)? → **WCAG 2.1 AA recommended** (15-20% of population has a disability)
76
+ - Internal tool with <50 users and no known accessibility needs? → **WCAG 2.1 A minimum**, AA aspirational
77
+
78
+ 3. **Evaluate project maturity:**
79
+ - New project (greenfield)? → Target AA from the start — cheaper than retrofitting
80
+ - Existing project with no accessibility work? → Achieve Level A first, then plan AA remediation by priority
81
+ - Existing project partially compliant? → Gap analysis against AA, prioritize by user impact
82
+
83
+ 4. **Scope the audit:**
84
+ - Level A: 30 success criteria — baseline accessibility, prevents complete barriers
85
+ - Level AA: 20 additional criteria — good accessibility for most users, industry standard
86
+ - Level AAA: 28 additional criteria — highest level, typically targeted per-criterion rather than full conformance
87
+
88
+ For each criterion at the target level, classify findings as:
89
+ - **Pass**: Criterion fully satisfied
90
+ - **Fail**: Barrier exists that prevents or significantly impairs access
91
+ - **Not applicable**: Criterion does not apply to this content type
92
+
93
+ ### ARIA Role Selection Protocol
94
+ Determine when and how to use ARIA roles, states, and properties. The first rule of ARIA: **do not use ARIA if a native HTML element achieves the same result.**
95
+
96
+ 1. **Check for semantic HTML first:**
97
+
98
+ | Need | Native HTML | ARIA Alternative (use only when HTML is insufficient) |
99
+ |------|------------|------------------------------------------------------|
100
+ | Button | `<button>` | `role="button"` on `<div>` or `<span>` — avoid if possible |
101
+ | Link | `<a href="...">` | `role="link"` — almost never needed |
102
+ | Navigation | `<nav>` | `role="navigation"` — only for `<div>`-based nav |
103
+ | Heading | `<h1>`-`<h6>` | `role="heading" aria-level="N"` — rare edge cases |
104
+ | List | `<ul>`, `<ol>`, `<li>` | `role="list"`, `role="listitem"` — only when CSS strips list semantics |
105
+ | Form input | `<input>`, `<select>`, `<textarea>` with `<label>` | `aria-label` or `aria-labelledby` — only when visible label is impossible |
106
+ | Table | `<table>`, `<th>`, `<td>` | `role="table"`, `role="row"`, `role="cell"` — only for grid-like custom components |
107
+ | Dialog | `<dialog>` | `role="dialog"` or `role="alertdialog"` — needed for custom modal implementations |
108
+
109
+ 2. **For custom interactive components, select the correct composite role:**
110
+
111
+ | Component Type | ARIA Role | Required States/Properties | Keyboard Pattern |
112
+ |---------------|-----------|---------------------------|-----------------|
113
+ | Dropdown menu | `role="menu"` + `role="menuitem"` | `aria-expanded`, `aria-haspopup` | Arrow keys navigate, Enter selects, Escape closes |
114
+ | Tab interface | `role="tablist"` + `role="tab"` + `role="tabpanel"` | `aria-selected`, `aria-controls` | Arrow keys switch tabs, Tab moves to panel content |
115
+ | Accordion | `role="region"` with `<button>` triggers | `aria-expanded`, `aria-controls` | Enter/Space toggles, focus stays on trigger |
116
+ | Combobox (autocomplete) | `role="combobox"` + `role="listbox"` + `role="option"` | `aria-expanded`, `aria-activedescendant`, `aria-autocomplete` | Arrow keys navigate options, Enter selects, Escape closes |
117
+ | Tree view | `role="tree"` + `role="treeitem"` | `aria-expanded`, `aria-selected`, `aria-level` | Arrow keys navigate and expand/collapse |
118
+ | Slider | `role="slider"` | `aria-valuemin`, `aria-valuemax`, `aria-valuenow`, `aria-valuetext` | Arrow keys adjust value |
119
+ | Toggle/switch | `role="switch"` or `<input type="checkbox">` | `aria-checked` | Space toggles state |
120
+ | Alert/notification | `role="alert"` or `role="status"` | `aria-live="assertive"` or `aria-live="polite"` | No keyboard interaction — announced automatically |
121
+
122
+ 3. **Validation checklist for every ARIA usage:**
123
+ - Does removing this ARIA attribute break screen reader comprehension? If no, remove it.
124
+ - Is the `aria-label` or `aria-labelledby` value actually descriptive? ("Click here" and "button" are not descriptive.)
125
+ - Does the component's keyboard behavior match the ARIA Authoring Practices Guide pattern?
126
+ - Are all required states and properties present? (e.g., `role="tab"` without `aria-selected` is incomplete.)
127
+ - Is `aria-hidden="true"` used correctly — only on decorative elements, never on focusable elements?
128
+
129
+ ## Anti-Patterns
130
+
131
+ - Using ARIA roles and attributes when equivalent semantic HTML elements exist — ARIA adds complexity and maintenance burden; native HTML gets accessibility for free
132
+ - Testing only with mouse interactions — keyboard-only testing reveals focus traps, missing focus indicators, and unreachable interactive elements that mouse testing misses entirely
133
+ - Treating accessibility as a post-launch checkbox — retrofitting accessibility is 5-10x more expensive than building it in; audit during development, not after
134
+ - Relying solely on automated scanning tools — automated tools catch approximately 30% of WCAG issues; manual testing with keyboard navigation and screen readers is required for meaningful coverage
135
+ - Adding `tabindex` values greater than 0 to "fix" focus order — positive tabindex creates unpredictable focus order across the page; fix the DOM order instead
136
+
137
+ ## Downstream Consumers
138
+
139
+ - `coder`: Needs specific ARIA attributes per component (role, states, properties), semantic HTML element recommendations, keyboard interaction patterns, and focus management instructions — not just "make it accessible" but the exact implementation pattern
140
+ - `ux-designer`: Needs design-level accessibility issues that require design changes rather than code fixes — color-only status indicators needing shape/text alternatives, touch targets below 44px, insufficient contrast in the color palette, focus indicator styling requirements
141
+
142
+ ## Output Contract
143
+
144
+ When completing your task, conclude with a **Handoff Report** containing two parts:
145
+
146
+ ## Task Report
147
+ - **Status**: success | partial | failure
148
+ - **Objective Achieved**: [One sentence restating the task objective and whether it was fully met]
149
+ - **Files Created**: [Absolute paths with one-line purpose each, or "none"]
150
+ - **Files Modified**: [Absolute paths with one-line summary of what changed and why, or "none"]
151
+ - **Files Deleted**: [Absolute paths with rationale, or "none"]
152
+ - **Decisions Made**: [Choices made that were not explicitly specified in the delegation prompt, with rationale for each, or "none"]
153
+ - **Validation**: pass | fail | skipped
154
+ - **Validation Output**: [Command output or "N/A"]
155
+ - **Errors**: [List with type, description, and resolution status, or "none"]
156
+ - **Scope Deviations**: [Anything asked but not completed, or additional necessary work discovered but not performed, or "none"]
157
+
158
+ ## Downstream Context
159
+ - **Key Interfaces Introduced**: [Type signatures and file locations, or "none"]
160
+ - **Patterns Established**: [New patterns that downstream agents must follow for consistency, or "none"]
161
+ - **Integration Points**: [Where and how downstream work should connect to this output, or "none"]
162
+ - **Assumptions**: [Anything assumed that downstream agents should verify, or "none"]
163
+ - **Warnings**: [Gotchas, edge cases, or fragile areas downstream agents should be aware of, or "none"]