maestro-flow 0.4.8 → 0.4.10

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 (280) hide show
  1. package/.agy/agents/cli-explore-agent.md +186 -0
  2. package/.agy/agents/conceptual-planning-agent.md +244 -0
  3. package/.agy/agents/impeccable-agent.md +97 -0
  4. package/.agy/agents/team-supervisor.md +142 -0
  5. package/.agy/agents/team-worker.md +236 -0
  6. package/.agy/agents/ui-design-agent.md +286 -0
  7. package/.agy/agents/workflow-analyzer.md +114 -0
  8. package/.agy/agents/workflow-codebase-mapper.md +76 -0
  9. package/.agy/agents/workflow-collab-planner.md +142 -0
  10. package/.agy/agents/workflow-debugger.md +102 -0
  11. package/.agy/agents/workflow-executor.md +131 -0
  12. package/.agy/agents/workflow-external-researcher.md +86 -0
  13. package/.agy/agents/workflow-integration-checker.md +82 -0
  14. package/.agy/agents/workflow-nyquist-auditor.md +84 -0
  15. package/.agy/agents/workflow-phase-researcher.md +84 -0
  16. package/.agy/agents/workflow-plan-checker.md +89 -0
  17. package/.agy/agents/workflow-planner.md +194 -0
  18. package/.agy/agents/workflow-project-researcher.md +73 -0
  19. package/.agy/agents/workflow-research-synthesizer.md +70 -0
  20. package/.agy/agents/workflow-reviewer.md +81 -0
  21. package/.agy/agents/workflow-roadmapper.md +81 -0
  22. package/.agy/agents/workflow-verifier.md +119 -0
  23. package/.agy/skills/codify-to-knowhow/SKILL.md +172 -0
  24. package/.agy/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
  25. package/.agy/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
  26. package/.agy/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
  27. package/.agy/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
  28. package/.agy/skills/learn-decompose/SKILL.md +118 -0
  29. package/.agy/skills/learn-follow/SKILL.md +129 -0
  30. package/.agy/skills/learn-investigate/SKILL.md +154 -0
  31. package/.agy/skills/learn-retro/SKILL.md +159 -0
  32. package/.agy/skills/learn-second-opinion/SKILL.md +124 -0
  33. package/.agy/skills/maestro/SKILL.md +221 -0
  34. package/.agy/skills/maestro-amend/SKILL.md +162 -0
  35. package/.agy/skills/maestro-analyze/SKILL.md +135 -0
  36. package/.agy/skills/maestro-brainstorm/SKILL.md +118 -0
  37. package/.agy/skills/maestro-collab/SKILL.md +174 -0
  38. package/.agy/skills/maestro-composer/SKILL.md +180 -0
  39. package/.agy/skills/maestro-execute/SKILL.md +133 -0
  40. package/.agy/skills/maestro-fork/SKILL.md +88 -0
  41. package/.agy/skills/maestro-guard/SKILL.md +101 -0
  42. package/.agy/skills/maestro-help/SKILL.md +267 -0
  43. package/.agy/skills/maestro-help/index/catalog.json +184 -0
  44. package/.agy/skills/maestro-help/phases/01-parse-intent.md +122 -0
  45. package/.agy/skills/maestro-help/phases/02-search-present.md +181 -0
  46. package/.agy/skills/maestro-help/phases/03-workflow-guide.md +186 -0
  47. package/.agy/skills/maestro-impeccable/SKILL.md +250 -0
  48. package/.agy/skills/maestro-init/SKILL.md +80 -0
  49. package/.agy/skills/maestro-learn/SKILL.md +142 -0
  50. package/.agy/skills/maestro-merge/SKILL.md +66 -0
  51. package/.agy/skills/maestro-milestone-audit/SKILL.md +70 -0
  52. package/.agy/skills/maestro-milestone-complete/SKILL.md +77 -0
  53. package/.agy/skills/maestro-milestone-release/SKILL.md +98 -0
  54. package/.agy/skills/maestro-overlay/SKILL.md +177 -0
  55. package/.agy/skills/maestro-plan/SKILL.md +172 -0
  56. package/.agy/skills/maestro-player/SKILL.md +176 -0
  57. package/.agy/skills/maestro-quick/SKILL.md +67 -0
  58. package/.agy/skills/maestro-ralph/SKILL.md +546 -0
  59. package/.agy/skills/maestro-ralph-execute/SKILL.md +255 -0
  60. package/.agy/skills/maestro-roadmap/SKILL.md +170 -0
  61. package/.agy/skills/maestro-tools-execute/SKILL.md +119 -0
  62. package/.agy/skills/maestro-tools-register/SKILL.md +159 -0
  63. package/.agy/skills/maestro-ui-codify/SKILL.md +81 -0
  64. package/.agy/skills/maestro-update/SKILL.md +175 -0
  65. package/.agy/skills/maestro-verify/SKILL.md +111 -0
  66. package/.agy/skills/manage-codebase-rebuild/SKILL.md +77 -0
  67. package/.agy/skills/manage-codebase-refresh/SKILL.md +59 -0
  68. package/.agy/skills/manage-harvest/SKILL.md +96 -0
  69. package/.agy/skills/manage-issue/SKILL.md +72 -0
  70. package/.agy/skills/manage-issue-discover/SKILL.md +83 -0
  71. package/.agy/skills/manage-knowhow/SKILL.md +76 -0
  72. package/.agy/skills/manage-knowhow-capture/SKILL.md +78 -0
  73. package/.agy/skills/manage-learn/SKILL.md +64 -0
  74. package/.agy/skills/manage-status/SKILL.md +51 -0
  75. package/.agy/skills/manage-wiki/SKILL.md +61 -0
  76. package/.agy/skills/quality-auto-test/SKILL.md +135 -0
  77. package/.agy/skills/quality-debug/SKILL.md +122 -0
  78. package/.agy/skills/quality-refactor/SKILL.md +69 -0
  79. package/.agy/skills/quality-retrospective/SKILL.md +79 -0
  80. package/.agy/skills/quality-review/SKILL.md +130 -0
  81. package/.agy/skills/quality-sync/SKILL.md +53 -0
  82. package/.agy/skills/quality-test/SKILL.md +119 -0
  83. package/.agy/skills/security-audit/SKILL.md +157 -0
  84. package/.agy/skills/skill-iter-tune/SKILL.md +381 -0
  85. package/.agy/skills/skill-iter-tune/phases/01-setup.md +144 -0
  86. package/.agy/skills/skill-iter-tune/phases/02-execute.md +292 -0
  87. package/.agy/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  88. package/.agy/skills/skill-iter-tune/phases/04-improve.md +198 -0
  89. package/.agy/skills/skill-iter-tune/phases/05-report.md +166 -0
  90. package/.agy/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  91. package/.agy/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  92. package/.agy/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  93. package/.agy/skills/spec-add/SKILL.md +67 -0
  94. package/.agy/skills/spec-load/SKILL.md +70 -0
  95. package/.agy/skills/spec-remove/SKILL.md +50 -0
  96. package/.agy/skills/spec-setup/SKILL.md +47 -0
  97. package/.agy/skills/team-coordinate/SKILL.md +267 -0
  98. package/.agy/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  99. package/.agy/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
  100. package/.agy/skills/team-coordinate/roles/coordinator/commands/monitor.md +348 -0
  101. package/.agy/skills/team-coordinate/roles/coordinator/role.md +362 -0
  102. package/.agy/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  103. package/.agy/skills/team-coordinate/specs/pipelines.md +97 -0
  104. package/.agy/skills/team-coordinate/specs/quality-gates.md +112 -0
  105. package/.agy/skills/team-coordinate/specs/role-spec-template.md +198 -0
  106. package/.agy/skills/team-executor/SKILL.md +180 -0
  107. package/.agy/skills/team-executor/roles/executor/commands/monitor.md +235 -0
  108. package/.agy/skills/team-executor/roles/executor/role.md +171 -0
  109. package/.agy/skills/team-executor/specs/session-schema.md +264 -0
  110. package/.agy/skills/team-lifecycle-v4/SKILL.md +189 -0
  111. package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +92 -0
  112. package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  113. package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
  114. package/.agy/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
  115. package/.agy/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
  116. package/.agy/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  117. package/.agy/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
  118. package/.agy/skills/team-lifecycle-v4/roles/executor/role.md +64 -0
  119. package/.agy/skills/team-lifecycle-v4/roles/planner/role.md +82 -0
  120. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
  121. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  122. package/.agy/skills/team-lifecycle-v4/roles/reviewer/role.md +65 -0
  123. package/.agy/skills/team-lifecycle-v4/roles/supervisor/role.md +188 -0
  124. package/.agy/skills/team-lifecycle-v4/roles/tester/role.md +84 -0
  125. package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +92 -0
  126. package/.agy/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
  127. package/.agy/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
  128. package/.agy/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  129. package/.agy/skills/team-lifecycle-v4/templates/architecture.md +254 -0
  130. package/.agy/skills/team-lifecycle-v4/templates/epics.md +196 -0
  131. package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
  132. package/.agy/skills/team-lifecycle-v4/templates/requirements.md +224 -0
  133. package/.agy/skills/team-quality-assurance/SKILL.md +148 -0
  134. package/.agy/skills/team-quality-assurance/roles/analyst/role.md +85 -0
  135. package/.agy/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  136. package/.agy/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
  137. package/.agy/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +235 -0
  138. package/.agy/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  139. package/.agy/skills/team-quality-assurance/roles/executor/role.md +62 -0
  140. package/.agy/skills/team-quality-assurance/roles/generator/role.md +65 -0
  141. package/.agy/skills/team-quality-assurance/roles/scout/role.md +72 -0
  142. package/.agy/skills/team-quality-assurance/roles/strategist/role.md +69 -0
  143. package/.agy/skills/team-quality-assurance/specs/pipelines.md +115 -0
  144. package/.agy/skills/team-quality-assurance/specs/team-config.json +131 -0
  145. package/.agy/skills/team-review/SKILL.md +149 -0
  146. package/.agy/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  147. package/.agy/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
  148. package/.agy/skills/team-review/roles/coordinator/commands/monitor.md +209 -0
  149. package/.agy/skills/team-review/roles/coordinator/role.md +132 -0
  150. package/.agy/skills/team-review/roles/fixer/role.md +74 -0
  151. package/.agy/skills/team-review/roles/reviewer/role.md +66 -0
  152. package/.agy/skills/team-review/roles/scanner/role.md +77 -0
  153. package/.agy/skills/team-review/specs/dimensions.md +82 -0
  154. package/.agy/skills/team-review/specs/finding-schema.json +82 -0
  155. package/.agy/skills/team-review/specs/pipelines.md +102 -0
  156. package/.agy/skills/team-review/specs/team-config.json +27 -0
  157. package/.agy/skills/team-tech-debt/SKILL.md +133 -0
  158. package/.agy/skills/team-tech-debt/roles/assessor/role.md +76 -0
  159. package/.agy/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  160. package/.agy/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
  161. package/.agy/skills/team-tech-debt/roles/coordinator/commands/monitor.md +198 -0
  162. package/.agy/skills/team-tech-debt/roles/coordinator/role.md +123 -0
  163. package/.agy/skills/team-tech-debt/roles/executor/role.md +76 -0
  164. package/.agy/skills/team-tech-debt/roles/planner/role.md +68 -0
  165. package/.agy/skills/team-tech-debt/roles/scanner/role.md +90 -0
  166. package/.agy/skills/team-tech-debt/roles/validator/role.md +78 -0
  167. package/.agy/skills/team-tech-debt/specs/pipelines.md +47 -0
  168. package/.agy/skills/team-tech-debt/specs/team-config.json +129 -0
  169. package/.agy/skills/team-testing/SKILL.md +144 -0
  170. package/.agy/skills/team-testing/roles/analyst/role.md +101 -0
  171. package/.agy/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  172. package/.agy/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
  173. package/.agy/skills/team-testing/roles/coordinator/commands/monitor.md +242 -0
  174. package/.agy/skills/team-testing/roles/coordinator/role.md +134 -0
  175. package/.agy/skills/team-testing/roles/executor/role.md +95 -0
  176. package/.agy/skills/team-testing/roles/generator/role.md +95 -0
  177. package/.agy/skills/team-testing/roles/strategist/role.md +81 -0
  178. package/.agy/skills/team-testing/specs/pipelines.md +101 -0
  179. package/.agy/skills/team-testing/specs/team-config.json +93 -0
  180. package/.agy/skills/wiki-connect/SKILL.md +64 -0
  181. package/.agy/skills/wiki-digest/SKILL.md +70 -0
  182. package/.agy/skills/workflow-skill-designer/SKILL.md +506 -0
  183. package/.agy/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  184. package/.agy/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  185. package/.agy/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  186. package/.agy/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  187. package/dashboard/dist/assets/{ArtifactsPage-CVh0Z2I2.js → ArtifactsPage-BLvAqQlQ.js} +1 -1
  188. package/dashboard/dist/assets/{ChatInput-CBI3qHQQ.js → ChatInput-DU9YGZKX.js} +1 -1
  189. package/dashboard/dist/assets/{ChatPage-BjJ9CYox.js → ChatPage-DYHfheXC.js} +1 -1
  190. package/dashboard/dist/assets/{CollabPage-CprGGO9y.js → CollabPage-CSlmvEa-.js} +1 -1
  191. package/dashboard/dist/assets/{ExecutionPanel-CClxD7cH.js → ExecutionPanel-RYWf0dYC.js} +1 -1
  192. package/dashboard/dist/assets/{KanbanPage-copqjdPg.js → KanbanPage-N55Iv0-X.js} +1 -1
  193. package/dashboard/dist/assets/{MaestroCoordinatePage-CioZjQ9N.js → MaestroCoordinatePage-BxwZ6yy5.js} +1 -1
  194. package/dashboard/dist/assets/{MarkdownRenderer-CtUhoxCT.js → MarkdownRenderer-ZGtOY7Ti.js} +1 -1
  195. package/dashboard/dist/assets/{McpPage-BcPPcJpr.js → McpPage-Im6s4pGR.js} +1 -1
  196. package/dashboard/dist/assets/{MeetingRoomPage-BgmAKxU-.js → MeetingRoomPage-CxHRn1xx.js} +1 -1
  197. package/dashboard/dist/assets/{OutputPanel-DgT3gMyp.js → OutputPanel-DaL8c1i5.js} +1 -1
  198. package/dashboard/dist/assets/{ProblemsPanel-BmG7rxoG.js → ProblemsPanel-BQTd5812.js} +1 -1
  199. package/dashboard/dist/assets/{RequirementBoardPage-k8YoeQ0r.js → RequirementBoardPage-22y9u1qh.js} +1 -1
  200. package/dashboard/dist/assets/{RequirementPage-Da2354px.js → RequirementPage-_mO743Xm.js} +1 -1
  201. package/dashboard/dist/assets/{RoomsPage-BtqDiYaU.js → RoomsPage-CExTbOGr.js} +1 -1
  202. package/dashboard/dist/assets/{SpecsPage-ByPVH_M3.js → SpecsPage-gr4KX51-.js} +1 -1
  203. package/dashboard/dist/assets/{TeamsPage-sFDLN30L.js → TeamsPage-BxEXLb5g.js} +1 -1
  204. package/dashboard/dist/assets/{TreeBrowser-oEx8YJXV.js → TreeBrowser-CVtPF5C9.js} +1 -1
  205. package/dashboard/dist/assets/{WorkflowPage-JrX7CVHh.js → WorkflowPage-BoN18Lhs.js} +1 -1
  206. package/dashboard/dist/assets/{arrow-left-DYvgSdIH.js → arrow-left-C5ROg97G.js} +1 -1
  207. package/dashboard/dist/assets/{check-jcgYBWVR.js → check-Bs8PM0tQ.js} +1 -1
  208. package/dashboard/dist/assets/{chevron-right-DvZ5sMOg.js → chevron-right-SmErd_1F.js} +1 -1
  209. package/dashboard/dist/assets/{circle-DYT-zoRZ.js → circle-CjpslL_D.js} +1 -1
  210. package/dashboard/dist/assets/{circle-alert-Bfbv3gt4.js → circle-alert-CuzAg2fd.js} +1 -1
  211. package/dashboard/dist/assets/{circle-check-D82WnpbI.js → circle-check-BIkDU5D5.js} +1 -1
  212. package/dashboard/dist/assets/{circle-check-big-CPVD1GKF.js → circle-check-big-CYctV8bK.js} +1 -1
  213. package/dashboard/dist/assets/{code-B3bKFGI4.js → code-DoB7rfxt.js} +1 -1
  214. package/dashboard/dist/assets/{columns-3-BeMAQCix.js → columns-3-Ch5KIyRa.js} +1 -1
  215. package/dashboard/dist/assets/{download-BCtpoWYB.js → download-DadtG2Nr.js} +1 -1
  216. package/dashboard/dist/assets/{folder-CTj6SNNu.js → folder-B8ODoZfb.js} +1 -1
  217. package/dashboard/dist/assets/{index-BxR_3IbJ.js → index-BL4h1OKY.js} +1 -1
  218. package/dashboard/dist/assets/{index-DpcPd-UG.js → index-DQIlX2w_.js} +4 -4
  219. package/dashboard/dist/assets/{index-CWBJLu42.js → index-DaFwSmVJ.js} +10 -10
  220. package/dashboard/dist/assets/{list-BMv8pIQn.js → list-CI-XIPZh.js} +1 -1
  221. package/dashboard/dist/assets/{loader-DdM4VOgF.js → loader-DpdMoQvh.js} +1 -1
  222. package/dashboard/dist/assets/{minus-D15s2E__.js → minus-BVbfXGrC.js} +1 -1
  223. package/dashboard/dist/assets/{pen-line-DO6o4xWz.js → pen-line-CR8GaHt-.js} +1 -1
  224. package/dashboard/dist/assets/{pencil-qGxg9jOe.js → pencil-I7GE0y29.js} +1 -1
  225. package/dashboard/dist/assets/{proxy-DOffTzwA.js → proxy-CcYyZZWI.js} +1 -1
  226. package/dashboard/dist/assets/{refresh-cw-C9UNdLCy.js → refresh-cw-BG9V_T4R.js} +1 -1
  227. package/dashboard/dist/assets/{rows-2-CifAA5SL.js → rows-2-DP6NjQFk.js} +1 -1
  228. package/dashboard/dist/assets/{search-pe7pU1YN.js → search-b78eLlw2.js} +1 -1
  229. package/dashboard/dist/assets/{shallow-r7YynQYA.js → shallow-CJEesgtu.js} +1 -1
  230. package/dashboard/dist/assets/{table-Bh772iIw.js → table-B_lk-a1d.js} +1 -1
  231. package/dashboard/dist/assets/{team-types-C_HqX2p2.js → team-types-Se7f9LfJ.js} +1 -1
  232. package/dashboard/dist/assets/{terminal-EpmtGBlw.js → terminal-DXx4tvzq.js} +1 -1
  233. package/dashboard/dist/assets/{trash-2-Xen46iNQ.js → trash-2-CVh9mnRj.js} +1 -1
  234. package/dashboard/dist/assets/{users-BLueDPxF.js → users-Da9zGME5.js} +1 -1
  235. package/dashboard/dist/assets/{zap-DsQCPF61.js → zap-C0zaC7gJ.js} +1 -1
  236. package/dashboard/dist/index.html +1 -1
  237. package/dashboard/dist-server/dashboard/src/server/agents/adapter-factory.js +4 -0
  238. package/dashboard/dist-server/dashboard/src/server/agents/adapter-factory.js.map +1 -1
  239. package/dashboard/dist-server/dashboard/src/server/agents/agy-adapter.d.ts +39 -0
  240. package/dashboard/dist-server/dashboard/src/server/agents/agy-adapter.js +423 -0
  241. package/dashboard/dist-server/dashboard/src/server/agents/agy-adapter.js.map +1 -0
  242. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.d.ts +6 -0
  243. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +109 -0
  244. package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
  245. package/dashboard/dist-server/dashboard/src/shared/constants.js +2 -0
  246. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  247. package/dashboard/dist-server/shared/agent-types.d.ts +1 -1
  248. package/dist/shared/agent-types.d.ts +1 -1
  249. package/dist/shared/agent-types.d.ts.map +1 -1
  250. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  251. package/dist/src/agents/cli-agent-runner.js +3 -0
  252. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  253. package/dist/src/commands/hooks.d.ts +64 -0
  254. package/dist/src/commands/hooks.d.ts.map +1 -1
  255. package/dist/src/commands/hooks.js +107 -0
  256. package/dist/src/commands/hooks.js.map +1 -1
  257. package/dist/src/commands/install.d.ts.map +1 -1
  258. package/dist/src/commands/install.js +17 -3
  259. package/dist/src/commands/install.js.map +1 -1
  260. package/dist/src/commands/update.d.ts.map +1 -1
  261. package/dist/src/commands/update.js +53 -0
  262. package/dist/src/commands/update.js.map +1 -1
  263. package/dist/src/config/cli-tools-config.d.ts +19 -5
  264. package/dist/src/config/cli-tools-config.d.ts.map +1 -1
  265. package/dist/src/config/cli-tools-config.js +77 -32
  266. package/dist/src/config/cli-tools-config.js.map +1 -1
  267. package/dist/src/config/cli-tools-defaults.json +2 -1
  268. package/dist/src/core/component-defs.d.ts.map +1 -1
  269. package/dist/src/core/component-defs.js +53 -0
  270. package/dist/src/core/component-defs.js.map +1 -1
  271. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  272. package/dist/src/tui/install-ui/InstallExecution.js +5 -3
  273. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  274. package/dist/src/utils/update-notices.d.ts +62 -0
  275. package/dist/src/utils/update-notices.d.ts.map +1 -0
  276. package/dist/src/utils/update-notices.js +178 -0
  277. package/dist/src/utils/update-notices.js.map +1 -0
  278. package/package.json +84 -82
  279. package/shared/agent-types.ts +1 -1
  280. package/workflows/agy-instructions.md +124 -0
@@ -0,0 +1,458 @@
1
+ # Phase 3: Phase Files Design
2
+
3
+ Generate phase files in `phases/` directory, preserving full execution detail from source content. Each phase file is a complete execution instruction.
4
+
5
+ ## Objective
6
+
7
+ - Create `phases/0N-{slug}.md` for each phase in workflowConfig
8
+ - Preserve full source content (agent prompts, bash commands, code, validation)
9
+ - Add standard phase structure (header, objective, output, next phase)
10
+ - Handle different source types (command extraction vs new generation)
11
+
12
+ ## Critical Rule
13
+
14
+ **Content Fidelity**: Phase files must be **content-faithful** to their source. Do NOT summarize, abbreviate, or simplify execution detail. The phase file IS the execution instruction.
15
+
16
+ | Content Type | Rule |
17
+ |-------------|------|
18
+ | Agent prompts (Task calls) | Preserve **verbatim** including all prompt text, variables, constraints |
19
+ | Bash command blocks | Preserve **verbatim** including all flags, paths, error handling |
20
+ | Code implementations | Preserve **verbatim** including all functions, validation logic |
21
+ | Validation checklists | Preserve **verbatim** including all check items |
22
+ | Error handling details | Preserve **verbatim** including recovery strategies |
23
+ | Tables and specifications | Preserve **verbatim** including all rows and columns |
24
+ | Comments and notes | Preserve **verbatim** including inline documentation |
25
+
26
+ **Anti-Pattern**: Creating a phase file that says "See original command for details" or "Execute the agent with appropriate parameters" - this defeats the purpose of the skill structure. The phase file must be self-contained.
27
+
28
+ ## Phase File Content Restrictions
29
+
30
+ Phase files are internal execution documents. They MUST NOT contain the following prohibited content:
31
+
32
+ | Prohibited Pattern | Detection | Correct Location |
33
+ |-------------------|-----------|-----------------|
34
+ | Flag parsing (`$ARGUMENTS.includes(...)`) | Grep: `\$ARGUMENTS\.includes` | SKILL.md via ask_question → `workflowPreferences` |
35
+ | Invocation syntax (`/skill-name "..."`) | Grep: `\/\w+[\-:]\w+\s+"` | Removed entirely (phase files are not user-facing) |
36
+ | Conversion provenance (`Source: Converted from...`) | Grep: `Source:.*Converted from` | Removed entirely (implementation detail) |
37
+ | Skill routing for inter-phase (`view_file(AbsolutePath="<agy-skills-dir>/.../SKILL.md") + execute inline`) | Grep: `Skill\(skill=` | Direct `view_file("phases/0N-xxx.md")` |
38
+
39
+ ### Preference Reference Pattern
40
+
41
+ Phase files may **reference** workflow preferences but must NOT **parse** them from arguments:
42
+
43
+ ```javascript
44
+ // CORRECT: Reference workflowPreferences (set by SKILL.md)
45
+ const autoYes = workflowPreferences.autoYes
46
+ const forceExplore = workflowPreferences.forceExplore
47
+
48
+ // WRONG: Parse from $ARGUMENTS
49
+ const autoYes = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
50
+ const forceExplore = $ARGUMENTS.includes('--explore') || $ARGUMENTS.includes('-e')
51
+ ```
52
+
53
+ ### Inter-Phase Handoff Pattern
54
+
55
+ When phase N needs to invoke phase M, use direct phase reading:
56
+
57
+ ```javascript
58
+ // CORRECT: Direct handoff (executionContext already set)
59
+ view_file("phases/02-lite-execute.md")
60
+ // Execute with executionContext (Mode 1)
61
+
62
+ // WRONG: Skill routing (unnecessary round-trip)
63
+ view_file(AbsolutePath="<agy-skills-dir>/workflow-lite-plan/SKILL.md") + execute inline (args: "--in-memory")
64
+ ```
65
+
66
+ ### Content Restriction Enforcement
67
+
68
+ When extracting from commands (Step 3.2), apply content sanitization after verbatim extraction:
69
+
70
+ ```javascript
71
+ function sanitizePhaseContent(content) {
72
+ let sanitized = content;
73
+
74
+ // Remove flag parsing blocks
75
+ sanitized = sanitized.replace(
76
+ /\/\/.*flag.*parsing[\s\S]*?\n(?=\n)/gi, ''
77
+ );
78
+
79
+ // Remove invocation syntax examples
80
+ sanitized = sanitized.replace(
81
+ /^.*\/\w+[\-:]\w+\s+"[^"]*".*$/gm, ''
82
+ );
83
+
84
+ // Remove conversion provenance notes
85
+ sanitized = sanitized.replace(
86
+ /^\*\*Source\*\*:.*Converted from.*$/gm, ''
87
+ );
88
+
89
+ // Replace all $ARGUMENTS.includes patterns with workflowPreferences reference
90
+ // Handles any flag name, not just --yes/-y
91
+ sanitized = sanitized.replace(
92
+ /\$ARGUMENTS\.includes\(['"]--?([^"']+)['"]\)/g,
93
+ (match, flagName) => {
94
+ // Map common flag names to workflowPreferences keys
95
+ const flagMap = {
96
+ 'yes': 'workflowPreferences.autoYes',
97
+ 'y': 'workflowPreferences.autoYes',
98
+ 'explore': 'workflowPreferences.forceExplore',
99
+ 'e': 'workflowPreferences.forceExplore'
100
+ };
101
+ return flagMap[flagName] || `workflowPreferences.${flagName}`;
102
+ }
103
+ );
104
+ // Also clean up residual || chains from multi-flag expressions
105
+ sanitized = sanitized.replace(
106
+ /workflowPreferences\.(\w+)\s*\|\|\s*workflowPreferences\.\1/g,
107
+ 'workflowPreferences.$1'
108
+ );
109
+
110
+ // Replace Skill() inter-phase routing with direct view_file(with or without args)
111
+ sanitized = sanitized.replace(
112
+ /Skill\(skill=["']([^"']+)["'](?:,\s*args=["']([^"']+)["'])?\)/g,
113
+ (match, skillName) => `view_file("phases/0N-xxx.md")\n// Execute with context`
114
+ );
115
+
116
+ return sanitized;
117
+ }
118
+ ```
119
+
120
+ ## Step 3.1: Phase File Generation Strategy
121
+
122
+ ```javascript
123
+ function selectGenerationStrategy(phase, config) {
124
+ if (config.source.type === 'command_set' && phase.sourcePath) {
125
+ return 'extract'; // Extract from existing command file
126
+ } else if (config.source.type === 'text_description') {
127
+ return 'generate'; // Generate from requirements
128
+ } else if (config.source.type === 'existing_skill') {
129
+ return 'restructure'; // Restructure existing content
130
+ }
131
+ return 'generate';
132
+ }
133
+ ```
134
+
135
+ ## Step 3.2: Mode A - Extract from Command
136
+
137
+ When source is an existing command file, transform its content into phase file format:
138
+
139
+ ```javascript
140
+ function extractPhaseFromCommand(phase, config) {
141
+ const sourceContent = view_file(phase.sourcePath);
142
+ const sourceFrontmatter = extractYAMLFrontmatter(sourceContent);
143
+ const sourceBody = removeYAMLFrontmatter(sourceContent);
144
+
145
+ // Phase file structure:
146
+ // 1. Phase header (new)
147
+ // 2. Source body content (preserved verbatim)
148
+ // 3. Output section (extracted or added)
149
+ // 4. Next Phase link (new)
150
+
151
+ let phaseContent = '';
152
+
153
+ // 1. Phase header
154
+ phaseContent += `# Phase ${phase.number}: ${phase.name}\n\n`;
155
+ phaseContent += `${phase.description}.\n\n`;
156
+
157
+ // 2. Source body content - PRESERVED VERBATIM
158
+ // Only modifications:
159
+ // a. Remove original H1 title (replaced by phase header)
160
+ // b. Remove command-specific frontmatter references
161
+ // c. Preserve everything else as-is
162
+
163
+ // Remove original H1 title line(s)
164
+ let bodyContent = sourceBody;
165
+ bodyContent = bodyContent.replace(/^# .+\n+/, '');
166
+
167
+ // Remove command-specific overview if it just restates what the phase header says
168
+ // But KEEP any overview content that adds execution detail
169
+
170
+ phaseContent += bodyContent;
171
+
172
+ // 2.5. Ensure Objective section exists
173
+ if (!bodyContent.includes('## Objective')) {
174
+ // Insert Objective after phase header, before main content
175
+ const objectiveSection = `## Objective\n\n- ${phase.description}\n`;
176
+ phaseContent = phaseContent.replace(
177
+ `${phase.description}.\n\n${bodyContent}`,
178
+ `${phase.description}.\n\n${objectiveSection}\n${bodyContent}`
179
+ );
180
+ }
181
+
182
+ // 3. Ensure Output section exists
183
+ if (!bodyContent.includes('## Output')) {
184
+ phaseContent += '\n## Output\n\n';
185
+ if (phase.outputVariables.length > 0) {
186
+ phaseContent += phase.outputVariables.map(v => `- **Variable**: \`${v}\``).join('\n') + '\n';
187
+ }
188
+ if (phase.outputFiles.length > 0) {
189
+ phaseContent += phase.outputFiles.map(f => `- **File**: \`${f}\``).join('\n') + '\n';
190
+ }
191
+ phaseContent += `- **TodoWrite**: Mark Phase ${phase.number} completed, Phase ${phase.number + 1} in_progress\n`;
192
+ }
193
+
194
+ // 4. Ensure Next Phase link exists
195
+ if (!bodyContent.includes('## Next Phase')) {
196
+ const nextPhase = config.phases.find(p => p.number === phase.number + 1);
197
+ if (nextPhase) {
198
+ const nextFilename = `${String(nextPhase.number).padStart(2, '0')}-${nextPhase.slug}.md`;
199
+ phaseContent += `\n## Next Phase\n\n`;
200
+ phaseContent += `Return to orchestrator, then auto-continue to [Phase ${nextPhase.number}: ${nextPhase.name}](${nextFilename}).\n`;
201
+ }
202
+ }
203
+
204
+ return phaseContent;
205
+ }
206
+ ```
207
+
208
+ ### Content Preservation Checklist
209
+
210
+ When extracting from commands, verify these content types are preserved:
211
+
212
+ ```javascript
213
+ function verifyContentPreservation(sourceContent, phaseContent) {
214
+ const checks = {
215
+ // Count code blocks
216
+ sourceCodeBlocks: (sourceContent.match(/```/g) || []).length / 2,
217
+ phaseCodeBlocks: (phaseContent.match(/```/g) || []).length / 2,
218
+
219
+ // Count Task/Agent calls
220
+ sourceAgentCalls: (sourceContent.match(/Task\(/g) || []).length,
221
+ phaseAgentCalls: (phaseContent.match(/Task\(/g) || []).length,
222
+
223
+ // Count bash commands
224
+ sourceBashBlocks: (sourceContent.match(/```bash/g) || []).length,
225
+ phaseBashBlocks: (phaseContent.match(/```bash/g) || []).length,
226
+
227
+ // Count tables
228
+ sourceTables: (sourceContent.match(/\|.*\|.*\|/g) || []).length,
229
+ phaseTables: (phaseContent.match(/\|.*\|.*\|/g) || []).length,
230
+
231
+ // Count ask_question calls
232
+ sourceAUQ: (sourceContent.match(/ask_question/g) || []).length,
233
+ phaseAUQ: (phaseContent.match(/ask_question/g) || []).length,
234
+
235
+ // Line count comparison (phase should be >= source minus frontmatter)
236
+ sourceLines: sourceContent.split('\n').length,
237
+ phaseLines: phaseContent.split('\n').length
238
+ };
239
+
240
+ const issues = [];
241
+ if (checks.phaseCodeBlocks < checks.sourceCodeBlocks) {
242
+ issues.push(`Missing code blocks: source=${checks.sourceCodeBlocks}, phase=${checks.phaseCodeBlocks}`);
243
+ }
244
+ if (checks.phaseAgentCalls < checks.sourceAgentCalls) {
245
+ issues.push(`Missing agent calls: source=${checks.sourceAgentCalls}, phase=${checks.phaseAgentCalls}`);
246
+ }
247
+ if (checks.phaseBashBlocks < checks.sourceBashBlocks) {
248
+ issues.push(`Missing bash blocks: source=${checks.sourceBashBlocks}, phase=${checks.phaseBashBlocks}`);
249
+ }
250
+ if (checks.phaseTables < checks.sourceTables * 0.8) {
251
+ issues.push(`Missing tables: source=${checks.sourceTables}, phase=${checks.phaseTables}`);
252
+ }
253
+ if (checks.phaseAUQ < checks.sourceAUQ) {
254
+ issues.push(`Missing ask_question: source=${checks.sourceAUQ}, phase=${checks.phaseAUQ}`);
255
+ }
256
+
257
+ return { checks, issues, passed: issues.length === 0 };
258
+ }
259
+ ```
260
+
261
+ ### Handling Orchestrator-Level Content in Source Commands
262
+
263
+ Some commands mix orchestrator-level instructions (coordination, TodoWrite) with execution detail. Separation rules:
264
+
265
+ | Content in Source Command | Goes To | Rule |
266
+ |---------------------------|---------|------|
267
+ | Phase execution steps, agent prompts, bash commands | **Phase file** | Preserve verbatim |
268
+ | TodoWrite update examples specific to this phase | **Phase file** (optional) | Keep if useful for context |
269
+ | Inter-phase data passing code | **SKILL.md** Post-Phase Updates | Extract to orchestrator |
270
+ | Coordinator instructions ("after this phase, auto-continue") | **SKILL.md** Core Rules | Extract to orchestrator |
271
+ | Conditional logic ("if conflict_risk >= medium") | **SKILL.md** Execution Flow | Extract to orchestrator |
272
+
273
+ When in doubt, **keep content in the phase file**. It's better to have slight overlap than to lose execution detail.
274
+
275
+ ## Step 3.3: Mode B - Generate from Requirements
276
+
277
+ When source is a text description, generate phase files interactively:
278
+
279
+ ```javascript
280
+ function generatePhaseFromRequirements(phase, config) {
281
+ let phaseContent = '';
282
+
283
+ // Phase header
284
+ phaseContent += `# Phase ${phase.number}: ${phase.name}\n\n`;
285
+ phaseContent += `${phase.description}.\n\n`;
286
+
287
+ // Objective
288
+ phaseContent += `## Objective\n\n`;
289
+ phaseContent += `- ${phase.description}\n`;
290
+ if (phase.outputVariables.length > 0) {
291
+ phaseContent += `- Produce: ${phase.outputVariables.join(', ')}\n`;
292
+ }
293
+ if (phase.outputFiles.length > 0) {
294
+ phaseContent += `- Generate: ${phase.outputFiles.join(', ')}\n`;
295
+ }
296
+ phaseContent += '\n';
297
+
298
+ // Execution steps
299
+ phaseContent += `## Execution\n\n`;
300
+
301
+ if (phase.usesAgents) {
302
+ // Generate agent delegation skeleton
303
+ for (const agentType of phase.agentTypes) {
304
+ phaseContent += `### Step: ${agentType} Delegation\n\n`;
305
+ phaseContent += '```javascript\n';
306
+ phaseContent += `const result = invoke_subagent({\n`;
307
+ phaseContent += ` subagent_type: "${mapAgentType(agentType)}",\n`;
308
+ phaseContent += ` prompt: \`\n`;
309
+ phaseContent += ` [ROLE] ${agentType}\n`;
310
+ phaseContent += ` [TASK] ${phase.description}\n`;
311
+ phaseContent += ` [INPUT] \${inputData}\n`;
312
+ phaseContent += ` [OUTPUT] \${outputPath}\n`;
313
+ phaseContent += ` \`,\n`;
314
+ phaseContent += ` run_in_background: false\n`;
315
+ phaseContent += `});\n`;
316
+ phaseContent += '```\n\n';
317
+ }
318
+ } else {
319
+ // Generate direct execution skeleton
320
+ phaseContent += `### Step ${phase.number}.1: Execute\n\n`;
321
+ phaseContent += `TODO: Add execution detail for ${phase.name}\n\n`;
322
+ }
323
+
324
+ // Output
325
+ phaseContent += `## Output\n\n`;
326
+ phase.outputVariables.forEach(v => {
327
+ phaseContent += `- **Variable**: \`${v}\`\n`;
328
+ });
329
+ phase.outputFiles.forEach(f => {
330
+ phaseContent += `- **File**: \`${f}\`\n`;
331
+ });
332
+ phaseContent += `- **TodoWrite**: Mark Phase ${phase.number} completed\n\n`;
333
+
334
+ // Next Phase
335
+ const nextPhase = config.phases.find(p => p.number === phase.number + 1);
336
+ if (nextPhase) {
337
+ const nextFilename = `${String(nextPhase.number).padStart(2, '0')}-${nextPhase.slug}.md`;
338
+ phaseContent += `## Next Phase\n\n`;
339
+ phaseContent += `Return to orchestrator, then auto-continue to [Phase ${nextPhase.number}: ${nextPhase.name}](${nextFilename}).\n`;
340
+ }
341
+
342
+ return phaseContent;
343
+ }
344
+
345
+ // Map custom agent type names to Task subagent_types
346
+ function mapAgentType(agentType) {
347
+ const mapping = {
348
+ 'cli-explore-agent': 'cli-explore-agent',
349
+ 'context-search-agent': 'context-search-agent',
350
+ 'cli-execution-agent': 'cli-execution-agent',
351
+ 'action-planning-agent': 'action-planning-agent',
352
+ 'code-developer': 'code-developer',
353
+ 'test-fix-agent': 'test-fix-agent',
354
+ 'general-purpose': 'general-purpose',
355
+ 'Explore': 'Explore'
356
+ };
357
+ return mapping[agentType] || 'general-purpose';
358
+ }
359
+ ```
360
+
361
+ ## Step 3.4: Write Phase Files
362
+
363
+ ```javascript
364
+ function writePhaseFiles(config) {
365
+ const skillDir = `.claude/skills/${config.skillName}`;
366
+
367
+ for (const phase of config.phases) {
368
+ const filename = `${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
369
+ const filepath = `${skillDir}/phases/${filename}`;
370
+
371
+ const strategy = selectGenerationStrategy(phase, config);
372
+ let content;
373
+
374
+ switch (strategy) {
375
+ case 'extract':
376
+ content = extractPhaseFromCommand(phase, config);
377
+ // Verify content preservation
378
+ const sourceContent = view_file(phase.sourcePath);
379
+ const verification = verifyContentPreservation(sourceContent, content);
380
+ if (!verification.passed) {
381
+ console.warn(`⚠️ Content preservation issues for Phase ${phase.number}:`);
382
+ verification.issues.forEach(issue => console.warn(` - ${issue}`));
383
+ // Re-extract with more aggressive preservation
384
+ content = extractPhaseFromCommand(phase, config, { aggressive: true });
385
+ }
386
+ break;
387
+
388
+ case 'generate':
389
+ content = generatePhaseFromRequirements(phase, config);
390
+ break;
391
+
392
+ case 'restructure':
393
+ content = restructureExistingPhase(phase, config);
394
+ break;
395
+ }
396
+
397
+ write_to_file(filepath, content);
398
+ console.log(`✓ Generated: ${filepath} (${content.split('\n').length} lines)`);
399
+ }
400
+ }
401
+ ```
402
+
403
+ ## Step 3.5: Cross-Phase Consistency Check
404
+
405
+ After generating all phase files, verify cross-phase consistency:
406
+
407
+ ```javascript
408
+ function checkCrossPhaseConsistency(config) {
409
+ const skillDir = `.claude/skills/${config.skillName}`;
410
+ const issues = [];
411
+
412
+ for (const phase of config.phases) {
413
+ const filename = `${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
414
+ const content = view_file(`${skillDir}/phases/${filename}`);
415
+
416
+ // Check: Next Phase links point to correct file
417
+ const nextPhaseMatch = content.match(/\[Phase (\d+): (.+?)\]\((.+?)\)/);
418
+ if (nextPhaseMatch) {
419
+ const nextNum = parseInt(nextPhaseMatch[1]);
420
+ const nextPhase = config.phases.find(p => p.number === nextNum);
421
+ if (!nextPhase) {
422
+ issues.push(`Phase ${phase.number}: Next Phase link points to non-existent Phase ${nextNum}`);
423
+ }
424
+ }
425
+
426
+ // Check: Output variables match config
427
+ for (const varName of phase.outputVariables) {
428
+ if (!content.includes(varName)) {
429
+ issues.push(`Phase ${phase.number}: Output variable '${varName}' not mentioned in content`);
430
+ }
431
+ }
432
+ }
433
+
434
+ return issues;
435
+ }
436
+ ```
437
+
438
+ ## Size Comparison Reference
439
+
440
+ Expected phase file sizes relative to their source commands:
441
+
442
+ | Scenario | Phase File Size vs Source | Reason |
443
+ |----------|--------------------------|--------|
444
+ | Command extraction | ≥ 90% of source | Minor removals (H1 title, frontmatter) |
445
+ | New generation (with agents) | 50-200 lines | Agent prompt skeletons |
446
+ | New generation (direct) | 30-80 lines | Step skeletons |
447
+ | Restructure | ~100% of source | Content reorganization only |
448
+
449
+ **Red Flag**: If a phase file is significantly smaller than its source (< 70%), content was likely lost during extraction. Re-check with `verifyContentPreservation()`.
450
+
451
+ ## Output
452
+
453
+ - **Files**: `.claude/skills/{skillName}/phases/0N-{slug}.md` for each phase
454
+ - **TodoWrite**: Mark Phase 3 completed, Phase 4 in_progress
455
+
456
+ ## Next Phase
457
+
458
+ Return to orchestrator, then auto-continue to [Phase 4: Validation & Integration](04-validation.md).