maestro-flow 0.4.10 → 0.4.12

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 (354) hide show
  1. package/.agents/agents/cli-explore-agent.md +187 -0
  2. package/.agents/agents/cross-role-reviewer.md +173 -0
  3. package/.agents/agents/impeccable-agent.md +101 -0
  4. package/.agents/agents/role-design-author.md +218 -0
  5. package/.agents/agents/team-supervisor.md +145 -0
  6. package/.agents/agents/team-worker.md +239 -0
  7. package/.agents/agents/ui-design-agent.md +272 -0
  8. package/.agents/agents/workflow-analyzer.md +117 -0
  9. package/.agents/agents/workflow-codebase-mapper.md +79 -0
  10. package/.agents/agents/workflow-collab-planner.md +145 -0
  11. package/.agents/agents/workflow-debugger.md +105 -0
  12. package/.agents/agents/workflow-executor.md +134 -0
  13. package/.agents/agents/workflow-external-researcher.md +88 -0
  14. package/.agents/agents/workflow-integration-checker.md +85 -0
  15. package/.agents/agents/workflow-nyquist-auditor.md +87 -0
  16. package/.agents/agents/workflow-phase-researcher.md +87 -0
  17. package/.agents/agents/workflow-plan-checker.md +92 -0
  18. package/.agents/agents/workflow-planner.md +197 -0
  19. package/.agents/agents/workflow-project-researcher.md +76 -0
  20. package/.agents/agents/workflow-research-synthesizer.md +72 -0
  21. package/.agents/agents/workflow-reviewer.md +84 -0
  22. package/.agents/agents/workflow-roadmapper.md +83 -0
  23. package/.agents/agents/workflow-verifier.md +122 -0
  24. package/.agents/skills/codify-to-knowhow/SKILL.md +169 -0
  25. package/.agents/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
  26. package/.agents/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
  27. package/.agents/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
  28. package/.agents/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
  29. package/.agents/skills/learn-decompose/SKILL.md +118 -0
  30. package/.agents/skills/learn-follow/SKILL.md +129 -0
  31. package/.agents/skills/learn-investigate/SKILL.md +154 -0
  32. package/.agents/skills/learn-retro/SKILL.md +159 -0
  33. package/.agents/skills/learn-second-opinion/SKILL.md +124 -0
  34. package/.agents/skills/maestro/SKILL.md +258 -0
  35. package/.agents/skills/maestro-amend/SKILL.md +165 -0
  36. package/.agents/skills/maestro-analyze/SKILL.md +161 -0
  37. package/.agents/skills/maestro-blueprint/SKILL.md +132 -0
  38. package/.agents/skills/maestro-brainstorm/SKILL.md +134 -0
  39. package/.agents/skills/maestro-collab/SKILL.md +174 -0
  40. package/.agents/skills/maestro-composer/SKILL.md +181 -0
  41. package/.agents/skills/maestro-execute/SKILL.md +133 -0
  42. package/.agents/skills/maestro-fork/SKILL.md +88 -0
  43. package/.agents/skills/maestro-guard/SKILL.md +103 -0
  44. package/.agents/skills/maestro-help/SKILL.md +300 -0
  45. package/.agents/skills/maestro-help/index/catalog.json +202 -0
  46. package/.agents/skills/maestro-help/phases/01-parse-intent.md +122 -0
  47. package/.agents/skills/maestro-help/phases/02-search-present.md +183 -0
  48. package/.agents/skills/maestro-help/phases/03-workflow-guide.md +213 -0
  49. package/.agents/skills/maestro-impeccable/SKILL.md +251 -0
  50. package/.agents/skills/maestro-init/SKILL.md +80 -0
  51. package/.agents/skills/maestro-learn/SKILL.md +142 -0
  52. package/.agents/skills/maestro-merge/SKILL.md +66 -0
  53. package/.agents/skills/maestro-milestone-audit/SKILL.md +72 -0
  54. package/.agents/skills/maestro-milestone-complete/SKILL.md +79 -0
  55. package/.agents/skills/maestro-milestone-release/SKILL.md +98 -0
  56. package/.agents/skills/maestro-overlay/SKILL.md +180 -0
  57. package/.agents/skills/maestro-plan/SKILL.md +182 -0
  58. package/.agents/skills/maestro-player/SKILL.md +177 -0
  59. package/.agents/skills/maestro-quick/SKILL.md +67 -0
  60. package/.agents/skills/maestro-ralph/SKILL.md +756 -0
  61. package/.agents/skills/maestro-ralph-execute/SKILL.md +273 -0
  62. package/.agents/skills/maestro-roadmap/SKILL.md +131 -0
  63. package/.agents/skills/maestro-tools-execute/SKILL.md +119 -0
  64. package/.agents/skills/maestro-tools-register/SKILL.md +159 -0
  65. package/.agents/skills/maestro-ui-codify/SKILL.md +82 -0
  66. package/.agents/skills/maestro-update/SKILL.md +178 -0
  67. package/.agents/skills/maestro-verify/SKILL.md +111 -0
  68. package/.agents/skills/manage-codebase-rebuild/SKILL.md +77 -0
  69. package/.agents/skills/manage-codebase-refresh/SKILL.md +59 -0
  70. package/.agents/skills/manage-harvest/SKILL.md +96 -0
  71. package/.agents/skills/manage-issue/SKILL.md +75 -0
  72. package/.agents/skills/manage-issue-discover/SKILL.md +83 -0
  73. package/.agents/skills/manage-knowhow/SKILL.md +79 -0
  74. package/.agents/skills/manage-knowhow-capture/SKILL.md +81 -0
  75. package/.agents/skills/manage-learn/SKILL.md +67 -0
  76. package/.agents/skills/manage-status/SKILL.md +54 -0
  77. package/.agents/skills/manage-wiki/SKILL.md +64 -0
  78. package/.agents/skills/quality-auto-test/SKILL.md +138 -0
  79. package/.agents/skills/quality-debug/SKILL.md +122 -0
  80. package/.agents/skills/quality-refactor/SKILL.md +69 -0
  81. package/.agents/skills/quality-retrospective/SKILL.md +79 -0
  82. package/.agents/skills/quality-review/SKILL.md +130 -0
  83. package/.agents/skills/quality-sync/SKILL.md +53 -0
  84. package/.agents/skills/quality-test/SKILL.md +119 -0
  85. package/.agents/skills/security-audit/SKILL.md +157 -0
  86. package/.agents/skills/skill-iter-tune/SKILL.md +384 -0
  87. package/.agents/skills/skill-iter-tune/phases/01-setup.md +144 -0
  88. package/.agents/skills/skill-iter-tune/phases/02-execute.md +292 -0
  89. package/.agents/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  90. package/.agents/skills/skill-iter-tune/phases/04-improve.md +186 -0
  91. package/.agents/skills/skill-iter-tune/phases/05-report.md +166 -0
  92. package/.agents/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  93. package/.agents/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  94. package/.agents/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  95. package/.agents/skills/spec-add/SKILL.md +70 -0
  96. package/.agents/skills/spec-load/SKILL.md +73 -0
  97. package/.agents/skills/spec-remove/SKILL.md +53 -0
  98. package/.agents/skills/spec-setup/SKILL.md +50 -0
  99. package/.agents/skills/team-coordinate/SKILL.md +268 -0
  100. package/.agents/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  101. package/.agents/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
  102. package/.agents/skills/team-coordinate/roles/coordinator/commands/monitor.md +358 -0
  103. package/.agents/skills/team-coordinate/roles/coordinator/role.md +365 -0
  104. package/.agents/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  105. package/.agents/skills/team-coordinate/specs/pipelines.md +97 -0
  106. package/.agents/skills/team-coordinate/specs/quality-gates.md +112 -0
  107. package/.agents/skills/team-coordinate/specs/role-spec-template.md +198 -0
  108. package/.agents/skills/team-executor/SKILL.md +191 -0
  109. package/.agents/skills/team-executor/roles/executor/commands/monitor.md +239 -0
  110. package/.agents/skills/team-executor/roles/executor/role.md +171 -0
  111. package/.agents/skills/team-executor/specs/session-schema.md +264 -0
  112. package/.agents/skills/team-lifecycle-v4/SKILL.md +211 -0
  113. package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +96 -0
  114. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  115. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
  116. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
  117. package/.agents/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
  118. package/.agents/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  119. package/.agents/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
  120. package/.agents/skills/team-lifecycle-v4/roles/executor/role.md +69 -0
  121. package/.agents/skills/team-lifecycle-v4/roles/planner/role.md +87 -0
  122. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
  123. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  124. package/.agents/skills/team-lifecycle-v4/roles/reviewer/role.md +71 -0
  125. package/.agents/skills/team-lifecycle-v4/roles/supervisor/role.md +194 -0
  126. package/.agents/skills/team-lifecycle-v4/roles/tester/role.md +89 -0
  127. package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +97 -0
  128. package/.agents/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
  129. package/.agents/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
  130. package/.agents/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  131. package/.agents/skills/team-lifecycle-v4/templates/architecture.md +254 -0
  132. package/.agents/skills/team-lifecycle-v4/templates/epics.md +196 -0
  133. package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
  134. package/.agents/skills/team-lifecycle-v4/templates/requirements.md +224 -0
  135. package/.agents/skills/team-quality-assurance/SKILL.md +149 -0
  136. package/.agents/skills/team-quality-assurance/roles/analyst/role.md +90 -0
  137. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  138. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
  139. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +250 -0
  140. package/.agents/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  141. package/.agents/skills/team-quality-assurance/roles/executor/role.md +68 -0
  142. package/.agents/skills/team-quality-assurance/roles/generator/role.md +70 -0
  143. package/.agents/skills/team-quality-assurance/roles/scout/role.md +77 -0
  144. package/.agents/skills/team-quality-assurance/roles/strategist/role.md +73 -0
  145. package/.agents/skills/team-quality-assurance/specs/pipelines.md +115 -0
  146. package/.agents/skills/team-quality-assurance/specs/team-config.json +131 -0
  147. package/.agents/skills/team-review/SKILL.md +149 -0
  148. package/.agents/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  149. package/.agents/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
  150. package/.agents/skills/team-review/roles/coordinator/commands/monitor.md +224 -0
  151. package/.agents/skills/team-review/roles/coordinator/role.md +132 -0
  152. package/.agents/skills/team-review/roles/fixer/role.md +78 -0
  153. package/.agents/skills/team-review/roles/reviewer/role.md +70 -0
  154. package/.agents/skills/team-review/roles/scanner/role.md +81 -0
  155. package/.agents/skills/team-review/specs/dimensions.md +82 -0
  156. package/.agents/skills/team-review/specs/finding-schema.json +82 -0
  157. package/.agents/skills/team-review/specs/pipelines.md +102 -0
  158. package/.agents/skills/team-review/specs/team-config.json +27 -0
  159. package/.agents/skills/team-tech-debt/SKILL.md +130 -0
  160. package/.agents/skills/team-tech-debt/roles/assessor/role.md +79 -0
  161. package/.agents/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  162. package/.agents/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
  163. package/.agents/skills/team-tech-debt/roles/coordinator/commands/monitor.md +209 -0
  164. package/.agents/skills/team-tech-debt/roles/coordinator/role.md +123 -0
  165. package/.agents/skills/team-tech-debt/roles/executor/role.md +78 -0
  166. package/.agents/skills/team-tech-debt/roles/planner/role.md +71 -0
  167. package/.agents/skills/team-tech-debt/roles/scanner/role.md +92 -0
  168. package/.agents/skills/team-tech-debt/roles/validator/role.md +80 -0
  169. package/.agents/skills/team-tech-debt/specs/pipelines.md +47 -0
  170. package/.agents/skills/team-tech-debt/specs/team-config.json +129 -0
  171. package/.agents/skills/team-testing/SKILL.md +145 -0
  172. package/.agents/skills/team-testing/roles/analyst/role.md +105 -0
  173. package/.agents/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  174. package/.agents/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
  175. package/.agents/skills/team-testing/roles/coordinator/commands/monitor.md +257 -0
  176. package/.agents/skills/team-testing/roles/coordinator/role.md +134 -0
  177. package/.agents/skills/team-testing/roles/executor/role.md +101 -0
  178. package/.agents/skills/team-testing/roles/generator/role.md +100 -0
  179. package/.agents/skills/team-testing/roles/strategist/role.md +85 -0
  180. package/.agents/skills/team-testing/specs/pipelines.md +101 -0
  181. package/.agents/skills/team-testing/specs/team-config.json +93 -0
  182. package/.agents/skills/wiki-connect/SKILL.md +64 -0
  183. package/.agents/skills/wiki-digest/SKILL.md +70 -0
  184. package/.agents/skills/workflow-skill-designer/SKILL.md +498 -0
  185. package/.agents/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  186. package/.agents/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  187. package/.agents/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  188. package/.agents/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  189. package/.agy/agents/cli-explore-agent.md +1 -3
  190. package/.agy/agents/cross-role-reviewer.md +170 -0
  191. package/.agy/agents/role-design-author.md +215 -0
  192. package/.agy/agents/ui-design-agent.md +1 -18
  193. package/.agy/agents/workflow-analyzer.md +1 -1
  194. package/.agy/agents/workflow-external-researcher.md +1 -1
  195. package/.agy/skills/maestro/SKILL.md +63 -27
  196. package/.agy/skills/maestro-analyze/SKILL.md +30 -4
  197. package/.agy/skills/maestro-blueprint/SKILL.md +132 -0
  198. package/.agy/skills/maestro-brainstorm/SKILL.md +119 -103
  199. package/.agy/skills/maestro-help/SKILL.md +48 -14
  200. package/.agy/skills/maestro-help/index/catalog.json +29 -11
  201. package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
  202. package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
  203. package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  204. package/.agy/skills/maestro-init/SKILL.md +3 -3
  205. package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
  206. package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
  207. package/.agy/skills/maestro-plan/SKILL.md +14 -4
  208. package/.agy/skills/maestro-ralph/SKILL.md +368 -162
  209. package/.agy/skills/maestro-ralph-execute/SKILL.md +81 -67
  210. package/.agy/skills/maestro-roadmap/SKILL.md +42 -81
  211. package/.agy/skills/quality-auto-test/SKILL.md +1 -1
  212. package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  213. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  214. package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  215. package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  216. package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
  217. package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  218. package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  219. package/.claude/agents/cli-explore-agent.md +1 -3
  220. package/.claude/agents/cross-role-reviewer.md +171 -0
  221. package/.claude/agents/role-design-author.md +216 -0
  222. package/.claude/agents/ui-design-agent.md +1 -18
  223. package/.claude/agents/workflow-analyzer.md +1 -1
  224. package/.claude/agents/workflow-external-researcher.md +1 -1
  225. package/.claude/commands/maestro-analyze.md +30 -4
  226. package/.claude/commands/maestro-blueprint.md +130 -0
  227. package/.claude/commands/maestro-brainstorm.md +132 -116
  228. package/.claude/commands/maestro-init.md +3 -3
  229. package/.claude/commands/maestro-milestone-audit.md +5 -3
  230. package/.claude/commands/maestro-milestone-complete.md +7 -5
  231. package/.claude/commands/maestro-plan.md +14 -4
  232. package/.claude/commands/maestro-ralph-execute.md +81 -67
  233. package/.claude/commands/maestro-ralph.md +368 -162
  234. package/.claude/commands/maestro-roadmap.md +42 -81
  235. package/.claude/commands/maestro.md +63 -27
  236. package/.claude/commands/quality-auto-test.md +1 -1
  237. package/.claude/skills/maestro-help/SKILL.md +48 -14
  238. package/.claude/skills/maestro-help/index/catalog.json +29 -11
  239. package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
  240. package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
  241. package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  242. package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  243. package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  244. package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  245. package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  246. package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
  247. package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  248. package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  249. package/.codex/skills/maestro/SKILL.md +84 -41
  250. package/.codex/skills/maestro-amend/SKILL.md +157 -0
  251. package/.codex/skills/maestro-analyze/SKILL.md +71 -23
  252. package/.codex/skills/maestro-blueprint/SKILL.md +122 -0
  253. package/.codex/skills/maestro-brainstorm/SKILL.md +135 -45
  254. package/.codex/skills/maestro-composer/SKILL.md +1 -1
  255. package/.codex/skills/maestro-execute/SKILL.md +13 -4
  256. package/.codex/skills/maestro-help/SKILL.md +28 -18
  257. package/.codex/skills/maestro-help/catalog.json +29 -11
  258. package/.codex/skills/maestro-init/SKILL.md +7 -7
  259. package/.codex/skills/maestro-plan/SKILL.md +27 -9
  260. package/.codex/skills/maestro-ralph/SKILL.md +740 -491
  261. package/.codex/skills/maestro-roadmap/SKILL.md +55 -72
  262. package/.codex/skills/maestro-update/SKILL.md +169 -0
  263. package/.codex/skills/maestro-verify/SKILL.md +11 -2
  264. package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -2
  265. package/.codex/skills/manage-harvest/SKILL.md +10 -2
  266. package/.codex/skills/quality-retrospective/SKILL.md +9 -2
  267. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  268. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  269. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  270. package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  271. package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
  272. package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  273. package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  274. package/README.md +8 -8
  275. package/README.zh-CN.md +8 -8
  276. package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
  277. package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
  278. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  279. package/dist/src/agents/cli-agent-runner.js +13 -7
  280. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  281. package/dist/src/commands/install-backend.d.ts +12 -0
  282. package/dist/src/commands/install-backend.d.ts.map +1 -1
  283. package/dist/src/commands/install-backend.js +144 -0
  284. package/dist/src/commands/install-backend.js.map +1 -1
  285. package/dist/src/commands/spec.d.ts.map +1 -1
  286. package/dist/src/commands/spec.js +8 -1
  287. package/dist/src/commands/spec.js.map +1 -1
  288. package/dist/src/core/component-defs.d.ts +6 -0
  289. package/dist/src/core/component-defs.d.ts.map +1 -1
  290. package/dist/src/core/component-defs.js +97 -0
  291. package/dist/src/core/component-defs.js.map +1 -1
  292. package/dist/src/tools/spec-init.d.ts +16 -2
  293. package/dist/src/tools/spec-init.d.ts.map +1 -1
  294. package/dist/src/tools/spec-init.js +58 -187
  295. package/dist/src/tools/spec-init.js.map +1 -1
  296. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  297. package/dist/src/tools/spec-loader.js +16 -16
  298. package/dist/src/tools/spec-loader.js.map +1 -1
  299. package/dist/src/tools/spec-seeds.d.ts +33 -0
  300. package/dist/src/tools/spec-seeds.d.ts.map +1 -0
  301. package/dist/src/tools/spec-seeds.js +200 -0
  302. package/dist/src/tools/spec-seeds.js.map +1 -0
  303. package/dist/src/tools/spec-writer.d.ts.map +1 -1
  304. package/dist/src/tools/spec-writer.js +7 -9
  305. package/dist/src/tools/spec-writer.js.map +1 -1
  306. package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts +11 -0
  307. package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts.map +1 -0
  308. package/dist/src/tui/install-ui/ExtraMcpConfig.js +61 -0
  309. package/dist/src/tui/install-ui/ExtraMcpConfig.js.map +1 -0
  310. package/dist/src/tui/install-ui/InstallConfirm.d.ts +3 -0
  311. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  312. package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
  313. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  314. package/dist/src/tui/install-ui/InstallExecution.d.ts +2 -0
  315. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  316. package/dist/src/tui/install-ui/InstallExecution.js +14 -2
  317. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  318. package/dist/src/tui/install-ui/InstallFlow.d.ts +1 -1
  319. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  320. package/dist/src/tui/install-ui/InstallFlow.js +16 -3
  321. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  322. package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
  323. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  324. package/dist/src/tui/install-ui/InstallHub.js +8 -0
  325. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  326. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  327. package/dist/src/tui/install-ui/InstallResult.js +3 -1
  328. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  329. package/dist/src/utils/update-notices.js +31 -0
  330. package/dist/src/utils/update-notices.js.map +1 -1
  331. package/package.json +5 -2
  332. package/templates/business-test-report.json +1 -1
  333. package/templates/index.json +1 -1
  334. package/templates/roadmap.md +15 -9
  335. package/templates/state.json +18 -17
  336. package/workflows/analyze.md +79 -11
  337. package/workflows/auto-test.md +6 -6
  338. package/workflows/blueprint.md +431 -0
  339. package/workflows/brainstorm.md +603 -496
  340. package/workflows/business-test.md +7 -7
  341. package/workflows/codebase-rebuild.md +4 -4
  342. package/workflows/harvest.md +184 -10
  343. package/workflows/init.md +9 -8
  344. package/workflows/maestro.md +1 -1
  345. package/workflows/milestone-audit.md +12 -4
  346. package/workflows/milestone-complete.md +11 -6
  347. package/workflows/plan.md +88 -22
  348. package/workflows/roadmap-common.md +1 -1
  349. package/workflows/roadmap.md +13 -3
  350. package/workflows/spec-generate.md +24 -13
  351. package/workflows/ui-design.md +2 -2
  352. package/workflows/ui-style.md +1 -1
  353. package/.agy/agents/conceptual-planning-agent.md +0 -244
  354. package/.claude/agents/conceptual-planning-agent.md +0 -245
@@ -0,0 +1,471 @@
1
+ # Phase 4: Validation & Integration
2
+
3
+ Validate the generated skill package for structural completeness, reference integrity, and content quality. Produce a validation report and integration summary.
4
+
5
+ ## Objective
6
+
7
+ - Verify all required files exist
8
+ - Validate SKILL.md references match actual phase files
9
+ - Check content preservation (for command extraction source)
10
+ - Verify cross-phase data flow consistency
11
+ - Report validation results to user
12
+
13
+ ## Step 4.1: Structural Validation
14
+
15
+ ```javascript
16
+ function validateStructure(config) {
17
+ const skillDir = `.claude/skills/${config.skillName}`;
18
+ const results = { errors: [], warnings: [], info: [] };
19
+
20
+ // Check SKILL.md exists
21
+ const skillMdExists = fileExists(`${skillDir}/SKILL.md`);
22
+ if (!skillMdExists) {
23
+ results.errors.push('SKILL.md not found');
24
+ }
25
+
26
+ // Check all phase files exist
27
+ for (const phase of config.phases) {
28
+ const filename = `${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
29
+ const filepath = `${skillDir}/phases/${filename}`;
30
+ if (!fileExists(filepath)) {
31
+ results.errors.push(`Phase file missing: ${filepath}`);
32
+ }
33
+ }
34
+
35
+ // Check SKILL.md frontmatter
36
+ if (skillMdExists) {
37
+ const skillMd = read_file(`${skillDir}/SKILL.md`);
38
+ const fm = extractYAMLFrontmatter(skillMd);
39
+
40
+ if (!fm.name) results.errors.push('Frontmatter missing: name');
41
+ if (!fm.description) results.errors.push('Frontmatter missing: description');
42
+ if (!fm['allowed-tools']) results.errors.push('Frontmatter missing: allowed-tools');
43
+
44
+ // Check description has trigger phrase
45
+ if (fm.description && !fm.description.includes('Triggers on')) {
46
+ results.warnings.push('Description missing trigger phrase (Triggers on "...")');
47
+ }
48
+ }
49
+
50
+ return results;
51
+ }
52
+ ```
53
+
54
+ ## Step 4.2: Reference Integrity
55
+
56
+ ```javascript
57
+ function validateReferences(config) {
58
+ const skillDir = `.claude/skills/${config.skillName}`;
59
+ const results = { errors: [], warnings: [], info: [] };
60
+ const skillMd = read_file(`${skillDir}/SKILL.md`);
61
+
62
+ // Extract all Ref: markers from SKILL.md
63
+ const refMarkers = skillMd.match(/Ref: phases\/\S+\.md/g) || [];
64
+ const linkedFiles = skillMd.match(/\[phases\/\S+\.md\]\(phases\/\S+\.md\)/g) || [];
65
+
66
+ // Collect all referenced phase files
67
+ const referencedFiles = new Set();
68
+ for (const ref of refMarkers) {
69
+ referencedFiles.add(ref.replace('Ref: ', ''));
70
+ }
71
+ for (const link of linkedFiles) {
72
+ const match = link.match(/\(phases\/\S+\.md\)/);
73
+ if (match) referencedFiles.add(match[0].replace(/[()]/g, ''));
74
+ }
75
+
76
+ // Check each referenced file exists
77
+ for (const refFile of referencedFiles) {
78
+ if (!fileExists(`${skillDir}/${refFile}`)) {
79
+ results.errors.push(`Referenced file not found: ${refFile}`);
80
+ }
81
+ }
82
+
83
+ // Check each phase file is referenced in SKILL.md
84
+ for (const phase of config.phases) {
85
+ const filename = `phases/${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
86
+ if (!referencedFiles.has(filename)) {
87
+ results.warnings.push(`Phase file not referenced in SKILL.md: ${filename}`);
88
+ }
89
+ }
90
+
91
+ // Check Phase Reference Documents table exists
92
+ if (!skillMd.includes('Phase Reference Documents')) {
93
+ results.errors.push('SKILL.md missing Phase Reference Documents table');
94
+ }
95
+
96
+ // Check Phase Reference Documents table has entries for all phases
97
+ for (const phase of config.phases) {
98
+ const filename = `${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
99
+ if (!skillMd.includes(filename)) {
100
+ results.errors.push(`Phase Reference table missing entry for: ${filename}`);
101
+ }
102
+ }
103
+
104
+ return results;
105
+ }
106
+ ```
107
+
108
+ ## Step 4.3: Content Quality (Command Extraction Only)
109
+
110
+ ```javascript
111
+ function validateContentQuality(config) {
112
+ const skillDir = `.claude/skills/${config.skillName}`;
113
+ const results = { errors: [], warnings: [], info: [] };
114
+
115
+ if (config.source.type !== 'command_set') {
116
+ results.info.push('Content quality check skipped (not command extraction)');
117
+ return results;
118
+ }
119
+
120
+ for (const phase of config.phases) {
121
+ if (!phase.sourcePath) continue;
122
+
123
+ const sourceContent = read_file(phase.sourcePath);
124
+ const sourceBody = removeYAMLFrontmatter(sourceContent);
125
+ const filename = `${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
126
+ const phaseContent = read_file(`${skillDir}/phases/${filename}`);
127
+
128
+ // Line count comparison
129
+ const sourceLines = sourceBody.split('\n').length;
130
+ const phaseLines = phaseContent.split('\n').length;
131
+ const ratio = phaseLines / sourceLines;
132
+
133
+ if (ratio < 0.7) {
134
+ results.errors.push(
135
+ `Phase ${phase.number} content loss: source=${sourceLines} lines, phase=${phaseLines} lines (${Math.round(ratio * 100)}%)`
136
+ );
137
+ } else if (ratio < 0.9) {
138
+ results.warnings.push(
139
+ `Phase ${phase.number} possible content reduction: source=${sourceLines}, phase=${phaseLines} (${Math.round(ratio * 100)}%)`
140
+ );
141
+ } else {
142
+ results.info.push(
143
+ `Phase ${phase.number} content preserved: source=${sourceLines}, phase=${phaseLines} (${Math.round(ratio * 100)}%)`
144
+ );
145
+ }
146
+
147
+ // Code block count comparison
148
+ const sourceBlocks = (sourceBody.match(/```/g) || []).length / 2;
149
+ const phaseBlocks = (phaseContent.match(/```/g) || []).length / 2;
150
+ if (phaseBlocks < sourceBlocks) {
151
+ results.warnings.push(
152
+ `Phase ${phase.number} missing code blocks: source=${sourceBlocks}, phase=${phaseBlocks}`
153
+ );
154
+ }
155
+
156
+ // Agent prompt preservation
157
+ const sourceAgents = (sourceBody.match(/Task\(|subagent_type/g) || []).length;
158
+ const phaseAgents = (phaseContent.match(/Task\(|subagent_type/g) || []).length;
159
+ if (phaseAgents < sourceAgents) {
160
+ results.errors.push(
161
+ `Phase ${phase.number} missing agent calls: source=${sourceAgents}, phase=${phaseAgents}`
162
+ );
163
+ }
164
+ }
165
+
166
+ return results;
167
+ }
168
+ ```
169
+
170
+ ## Step 4.4: Data Flow Consistency
171
+
172
+ ```javascript
173
+ function validateDataFlow(config) {
174
+ const skillDir = `.claude/skills/${config.skillName}`;
175
+ const results = { errors: [], warnings: [], info: [] };
176
+ const skillMd = read_file(`${skillDir}/SKILL.md`);
177
+
178
+ // Check all data flow variables are mentioned in SKILL.md
179
+ for (const flow of config.dataFlow) {
180
+ for (const variable of flow.variables) {
181
+ if (!skillMd.includes(variable)) {
182
+ results.warnings.push(
183
+ `Data flow variable '${variable}' (${flow.from} → ${flow.to}) not found in SKILL.md`
184
+ );
185
+ }
186
+ }
187
+ }
188
+
189
+ // Check conditional phases have their condition in SKILL.md
190
+ for (const phase of config.phases) {
191
+ if (phase.isConditional && phase.condition) {
192
+ // Extract the key variable from condition
193
+ const condVar = phase.condition.match(/\w+/)?.[0];
194
+ if (condVar && !skillMd.includes(condVar)) {
195
+ results.errors.push(
196
+ `Conditional Phase ${phase.number} condition variable '${condVar}' not found in SKILL.md`
197
+ );
198
+ }
199
+ }
200
+ }
201
+
202
+ return results;
203
+ }
204
+ ```
205
+
206
+ ## Step 4.5: SKILL.md Section Completeness
207
+
208
+ ```javascript
209
+ function validateSkillMdSections(config) {
210
+ const skillDir = `.claude/skills/${config.skillName}`;
211
+ const results = { errors: [], warnings: [], info: [] };
212
+ const skillMd = read_file(`${skillDir}/SKILL.md`);
213
+
214
+ // Required sections
215
+ const requiredSections = [
216
+ { name: 'Architecture Overview', pattern: /## Architecture Overview/ },
217
+ { name: 'Execution Flow', pattern: /## Execution Flow/ },
218
+ { name: 'Core Rules', pattern: /## Core Rules/ },
219
+ { name: 'Data Flow', pattern: /## Data Flow/ },
220
+ { name: 'Error Handling', pattern: /## Error Handling/ }
221
+ ];
222
+
223
+ // Recommended sections
224
+ const recommendedSections = [
225
+ { name: 'Key Design Principles', pattern: /## Key Design Principles/ },
226
+ { name: 'Input Processing', pattern: /## Input Processing/ },
227
+ { name: 'track_tasks Pattern', pattern: /## track_tasks Pattern/ },
228
+ { name: 'Coordinator Checklist', pattern: /## Coordinator Checklist/ },
229
+ { name: 'Related Commands', pattern: /## Related Commands/ }
230
+ ];
231
+
232
+ // Conditional sections
233
+ const conditionalSections = [
234
+ { name: 'Interactive Preference Collection', pattern: /## Interactive Preference Collection/, condition: config.features.hasAutoMode },
235
+ { name: 'Auto Mode Defaults', pattern: /## Auto Mode Defaults/, condition: config.features.hasAutoMode },
236
+ { name: 'Post-Phase Updates', pattern: /## Post-Phase Updates/, condition: config.features.hasPostPhaseUpdates }
237
+ ];
238
+
239
+ for (const section of requiredSections) {
240
+ if (!section.pattern.test(skillMd)) {
241
+ results.errors.push(`Missing required section: ${section.name}`);
242
+ }
243
+ }
244
+
245
+ for (const section of recommendedSections) {
246
+ if (!section.pattern.test(skillMd)) {
247
+ results.warnings.push(`Missing recommended section: ${section.name}`);
248
+ }
249
+ }
250
+
251
+ for (const section of conditionalSections) {
252
+ if (section.condition && !section.pattern.test(skillMd)) {
253
+ results.warnings.push(`Missing conditional section: ${section.name} (feature enabled but section absent)`);
254
+ }
255
+ }
256
+
257
+ return results;
258
+ }
259
+ ```
260
+
261
+ ## Step 4.6: Phase File Hygiene
262
+
263
+ Scan generated phase files for prohibited content patterns. Phase files are internal execution documents and must not contain user-facing syntax, flag parsing, or inter-phase routing.
264
+
265
+ ```javascript
266
+ function validatePhaseFileHygiene(config) {
267
+ const skillDir = `.claude/skills/${config.skillName}`;
268
+ const results = { errors: [], warnings: [], info: [] };
269
+
270
+ const prohibitedPatterns = [
271
+ {
272
+ name: 'Flag parsing ($ARGUMENTS)',
273
+ regex: /\$ARGUMENTS\.includes/g,
274
+ severity: 'error',
275
+ fix: 'Replace with workflowPreferences.{key} reference'
276
+ },
277
+ {
278
+ name: 'Invocation syntax (/skill-name)',
279
+ regex: /\/\w+[\-:]\w+\s+["']/g,
280
+ severity: 'warning',
281
+ fix: 'Remove (phase files are not user-facing docs)'
282
+ },
283
+ {
284
+ name: 'Conversion provenance (Source: Converted from)',
285
+ regex: /Source:.*Converted from/g,
286
+ severity: 'warning',
287
+ fix: 'Remove (implementation detail)'
288
+ },
289
+ {
290
+ name: 'Skill routing for inter-phase (invoke_skill(skill=...)',
291
+ regex: /Skill\(skill=/g,
292
+ severity: 'error',
293
+ fix: 'Replace with direct read_file("phases/0N-xxx.md")'
294
+ },
295
+ {
296
+ name: 'CLI flag definitions (--flag)',
297
+ regex: /^\s*-\w,\s+--\w+\s+/gm,
298
+ severity: 'warning',
299
+ fix: 'Move flag definitions to SKILL.md Interactive Preference Collection'
300
+ }
301
+ ];
302
+
303
+ for (const phase of config.phases) {
304
+ const filename = `${String(phase.number).padStart(2, '0')}-${phase.slug}.md`;
305
+ const filepath = `${skillDir}/phases/${filename}`;
306
+ if (!fileExists(filepath)) continue;
307
+
308
+ const content = read_file(filepath);
309
+
310
+ for (const pattern of prohibitedPatterns) {
311
+ const matches = content.match(pattern.regex);
312
+ if (matches && matches.length > 0) {
313
+ const msg = `Phase ${phase.number} (${filename}): ${pattern.name} found (${matches.length} occurrence(s)). Fix: ${pattern.fix}`;
314
+ if (pattern.severity === 'error') {
315
+ results.errors.push(msg);
316
+ } else {
317
+ results.warnings.push(msg);
318
+ }
319
+ }
320
+ }
321
+ }
322
+
323
+ if (results.errors.length === 0 && results.warnings.length === 0) {
324
+ results.info.push('Phase file hygiene: All phase files clean ✓');
325
+ }
326
+
327
+ return results;
328
+ }
329
+ ```
330
+
331
+ ## Step 4.7: Aggregate Results and Report
332
+
333
+ ```javascript
334
+ function generateValidationReport(config) {
335
+ const structural = validateStructure(config);
336
+ const references = validateReferences(config);
337
+ const content = validateContentQuality(config);
338
+ const dataFlow = validateDataFlow(config);
339
+ const sections = validateSkillMdSections(config);
340
+ const hygiene = validatePhaseFileHygiene(config);
341
+
342
+ // Aggregate
343
+ const allErrors = [
344
+ ...structural.errors,
345
+ ...references.errors,
346
+ ...content.errors,
347
+ ...dataFlow.errors,
348
+ ...sections.errors,
349
+ ...hygiene.errors
350
+ ];
351
+ const allWarnings = [
352
+ ...structural.warnings,
353
+ ...references.warnings,
354
+ ...content.warnings,
355
+ ...dataFlow.warnings,
356
+ ...sections.warnings,
357
+ ...hygiene.warnings
358
+ ];
359
+ const allInfo = [
360
+ ...structural.info,
361
+ ...references.info,
362
+ ...content.info,
363
+ ...dataFlow.info,
364
+ ...sections.info,
365
+ ...hygiene.info
366
+ ];
367
+
368
+ // Quality gate
369
+ const gate = allErrors.length === 0 ? 'PASS' :
370
+ allErrors.length <= 2 ? 'REVIEW' : 'FAIL';
371
+
372
+ // Display report
373
+ const skillDir = `.claude/skills/${config.skillName}`;
374
+
375
+ console.log(`
376
+ ╔══════════════════════════════════════╗
377
+ ║ Workflow Skill Validation Report ║
378
+ ╠══════════════════════════════════════╣
379
+ ║ Skill: ${config.skillName.padEnd(28)}║
380
+ ║ Gate: ${gate.padEnd(28)}║
381
+ ╚══════════════════════════════════════╝
382
+
383
+ Structure:
384
+ ${skillDir}/
385
+ ├── SKILL.md ${fileExists(`${skillDir}/SKILL.md`) ? '✓' : '✗'}
386
+ └── phases/
387
+ ${config.phases.map(p => {
388
+ const fn = `${String(p.number).padStart(2, '0')}-${p.slug}.md`;
389
+ return ` ├── ${fn.padEnd(30)} ${fileExists(`${skillDir}/phases/${fn}`) ? '✓' : '✗'}`;
390
+ }).join('\n')}
391
+
392
+ ${allErrors.length > 0 ? `Errors (${allErrors.length}):\n${allErrors.map(e => ` ✗ ${e}`).join('\n')}` : 'Errors: None ✓'}
393
+
394
+ ${allWarnings.length > 0 ? `Warnings (${allWarnings.length}):\n${allWarnings.map(w => ` ⚠ ${w}`).join('\n')}` : 'Warnings: None ✓'}
395
+
396
+ ${allInfo.length > 0 ? `Info:\n${allInfo.map(i => ` ℹ ${i}`).join('\n')}` : ''}
397
+ `);
398
+
399
+ return { gate, errors: allErrors, warnings: allWarnings, info: allInfo };
400
+ }
401
+ ```
402
+
403
+ ## Step 4.8: Error Recovery
404
+
405
+ If validation fails, offer recovery options:
406
+
407
+ ```javascript
408
+ if (report.gate === 'FAIL') {
409
+ const recovery = ask_user({
410
+ questions: [{
411
+ question: `Validation found ${report.errors.length} errors. How to proceed?`,
412
+ header: "Recovery",
413
+ multiSelect: false,
414
+ options: [
415
+ { label: "Auto-fix", description: "Attempt automatic fixes for common issues" },
416
+ { label: "Regenerate phases", description: "Re-run Phase 3 with stricter preservation" },
417
+ { label: "Accept as-is", description: "Proceed despite errors (manual fix later)" }
418
+ ]
419
+ }]
420
+ });
421
+
422
+ if (recovery === 'Auto-fix') {
423
+ // Common auto-fixes:
424
+ // 1. Missing Next Phase links → add them
425
+ // 2. Missing Output sections → add from config
426
+ // 3. Missing Phase Reference table → generate from config
427
+ autoFixCommonIssues(config, report.errors);
428
+ // Re-validate
429
+ return generateValidationReport(config);
430
+ }
431
+ }
432
+ ```
433
+
434
+ ## Step 4.9: Integration Summary
435
+
436
+ ```javascript
437
+ function displayIntegrationSummary(config) {
438
+ console.log(`
439
+ Integration Complete:
440
+ Location: .claude/skills/${config.skillName}/
441
+ Files: ${config.phases.length + 1} (SKILL.md + ${config.phases.length} phases)
442
+
443
+ Usage:
444
+ Trigger: ${config.triggers.map(t => `"${t}"`).join(', ')}
445
+ Design Patterns Applied:
446
+ ✓ Progressive phase loading (Ref: markers)
447
+ ✓ Phase Reference Documents table
448
+ ✓ Phase file hygiene (no flag parsing, no invocation syntax)
449
+ ${config.features.hasTodoWriteSubTasks ? '✓' : '○'} track_tasks attachment/collapse
450
+ ${config.features.hasConditionalPhases ? '✓' : '○'} Conditional phase execution
451
+ ${config.features.hasAutoMode ? '✓' : '○'} Interactive preference collection (ask_user)
452
+ ${config.features.hasPostPhaseUpdates ? '✓' : '○'} Post-phase state updates
453
+ ${config.features.hasPlanningNotes ? '✓' : '○'} Accumulated planning notes
454
+
455
+ Next Steps:
456
+ 1. Review SKILL.md orchestrator logic
457
+ 2. Review each phase file for completeness
458
+ 3. Test skill invocation with trigger phrase
459
+ 4. Iterate based on execution results
460
+ `);
461
+ }
462
+ ```
463
+
464
+ ## Output
465
+
466
+ - **Report**: Validation results with quality gate (PASS/REVIEW/FAIL)
467
+ - **track_tasks**: Mark Phase 4 completed (all tasks done)
468
+
469
+ ## Completion
470
+
471
+ Workflow Skill Designer has completed. The generated skill package is ready at `.claude/skills/{skillName}/`.
@@ -1,8 +1,6 @@
1
1
  ---
2
2
  name: cli-explore-agent
3
- description: |
4
- Read-only code exploration agent with dual-source analysis strategy (Bash + CLI semantic).
5
- Orchestrates 4-phase workflow: Task Understanding → Analysis Execution → Schema Validation → Output Generation.
3
+ description: Read-only code exploration via Bash + CLI semantic dual-source analysis, with schema-validated structured output.
6
4
  allowed-tools:
7
5
  - grep_search
8
6
  - run_command
@@ -0,0 +1,170 @@
1
+ ---
2
+ name: cross-role-reviewer
3
+ description: Compares Decision Digests across role analysis files in a brainstorm session to surface conflicts, gaps, and synergies. Read-only — returns structured text for the orchestrator to apply.
4
+ allowed-tools:
5
+ - grep_search
6
+ - view_file
7
+ ---
8
+
9
+ # Cross-Role Reviewer
10
+
11
+ You read N role analysis index files from a brainstorm session and report cross-role issues. You do NOT write files. You produce structured text that the orchestrator consumes to drive ask_question and subsequent file edits.
12
+
13
+ ## Inputs (parsed from your prompt)
14
+
15
+ | Field | Required | Notes |
16
+ |---|---|---|
17
+ | `analysis_indexes` | yes | absolute paths to all `{role}/analysis.md` files |
18
+ | `guidance_path` | yes | path to `guidance-specification.md` (for decision-ID context) |
19
+ | `feature_list` | optional | F-id + slug + title rows (for cross-feature analysis) |
20
+
21
+ ## Process
22
+
23
+ 1. Read every `analysis.md` in `analysis_indexes` and `guidance_path`.
24
+ 2. From each `analysis.md`, extract §2 Decision Digest tables:
25
+ - **Decisions table** — role stances per feature
26
+ - **Interfaces table** — contracts and their consumers
27
+ - **Cross-Cutting Positions table** — role-wide stances on shared topics
28
+ - **Findings Summary table** — discoveries and their impact
29
+ 3. Compare across roles:
30
+ - **Conflicts**: same feature or topic, contradictory stances between roles
31
+ - **Gaps**: Interface consumer references a role that has no matching Decisions entry; or a Cross-Cutting topic addressed by one role but not by another that should
32
+ - **Synergies**: complementary Findings or compatible Interfaces that could be unified
33
+ 4. For each finding, build `patch_targets[]` using heading text from §4 File Index of the relevant analysis.md — this gives you exact file paths and heading text for sub-files.
34
+ 5. Return the report as structured markdown. Stop.
35
+
36
+ ### When digest is insufficient
37
+
38
+ If a Decisions/Positions entry is too terse to judge a potential conflict, mark the finding with `need_deeper_context` and specify which sub-file to read:
39
+
40
+ ```yaml
41
+ need_deeper_context:
42
+ file: "{role}/analysis-F-003-auth.md"
43
+ reason: "SA-12 stance ambiguous, need full Architecture section"
44
+ ```
45
+
46
+ The orchestrator will read that file and inject its content for you to continue analysis. This is a fallback — aim to resolve 90%+ of findings from digest alone.
47
+
48
+ ## Output Contract (return as text — do NOT write files)
49
+
50
+ Every finding MUST include a structured `patch_targets[]` block so the orchestrator can locate and apply edits without re-parsing prose. Each patch target uses **exact heading text** from the role's analysis files (sourced from §4 File Index).
51
+
52
+ ```markdown
53
+ # Cross-Role Review
54
+
55
+ ## Conflicts (need user decision)
56
+ ### C-001: {short title}
57
+ - **Feature**: F-{id} (or "cross-cutting" if no specific feature)
58
+ - **Role A position**: {role} — Decision {ID}: "{stance}" (from §2 Decisions)
59
+ - **Role B position**: {role} — Decision {ID}: "{stance}" (from §2 Decisions)
60
+ - **Why it matters**: {what breaks if unresolved}
61
+ - **Suggested resolution**: {your recommended pick + 1-line rationale}
62
+ - **Confidence**: HIGH | MEDIUM | LOW
63
+ - **patch_targets**:
64
+ - target_file: `{role-A}/analysis-F-{id}-{slug}.md`
65
+ target_heading: `## {exact heading text}`
66
+ edit_type: `annotate_and_strikeout`
67
+ edit_content: `> **Cross-Role Resolution (C-001)**: {1-line resolution}`
68
+ - target_file: `{role-B}/analysis-F-{id}-{slug}.md`
69
+ target_heading: `## {exact heading text}`
70
+ edit_type: `annotate_and_strikeout`
71
+ edit_content: `> **Cross-Role Resolution (C-001)**: {1-line resolution}`
72
+
73
+ ### C-002: ...
74
+
75
+ ## Gaps (referenced but undefined)
76
+ ### G-001: {short title}
77
+ - **Where referenced**: {role}'s §2 Interfaces table — consumer "{consumer role}" for "{interface name}"
78
+ - **Where it should be defined**: {owner-role}'s analysis (§2 Decisions or sub-file)
79
+ - **Owner role**: {role most appropriate to define it}
80
+ - **Suggested addition** (1-3 lines to insert at owner site)
81
+ - **patch_targets**:
82
+ - target_file: `{ref-role}/analysis.md`
83
+ target_heading: `### Interfaces`
84
+ edit_type: `annotate_after_heading`
85
+ edit_content: `> **Cross-Role Gap (G-001)**: {interface} consumer {owner-role} has no matching definition — see resolution below`
86
+ - target_file: `{owner-role}/analysis.md`
87
+ target_heading: `### Decisions`
88
+ edit_type: `append_to_section`
89
+ edit_content: `| {new-ID} | {feature} | {stance to fill gap} | {constraints} |`
90
+
91
+ ### G-002: ...
92
+
93
+ ## Synergy Opportunities (cross-role wins)
94
+ ### S-001: {short title}
95
+ - **Roles involved**: {role A, role B}
96
+ - **Observation**: {what they could share / align}
97
+ - **Benefit**: {what's gained by aligning}
98
+ - **patch_targets**:
99
+ - target_file: `{role-A}/analysis-F-{id}-{slug}.md` or `{role-A}/analysis.md`
100
+ target_heading: `## {exact heading text}`
101
+ edit_type: `annotate_after_heading`
102
+ edit_content: `> **Cross-Role Synergy (S-001)**: aligns with {role-B} "{heading}" — {1-line how}`
103
+ - target_file: `{role-B}/analysis-F-{id}-{slug}.md` or `{role-B}/analysis.md`
104
+ target_heading: `## {exact heading text}`
105
+ edit_type: `annotate_after_heading`
106
+ edit_content: `> **Cross-Role Synergy (S-001)**: aligns with {role-A} "{heading}" — {1-line how}`
107
+
108
+ ### S-002: ...
109
+
110
+ ## Summary
111
+ - conflicts_count: N
112
+ - gaps_count: N
113
+ - synergies_count: N
114
+ - deeper_context_requests: N
115
+ - review_confidence: 0.0-1.0
116
+ ```
117
+
118
+ ### edit_type vocabulary (closed set)
119
+
120
+ | edit_type | Behaviour |
121
+ |---|---|
122
+ | `annotate_after_heading` | Insert `edit_content` as a `> blockquote` line immediately after the matched heading. Original content untouched. |
123
+ | `annotate_and_strikeout` | Insert `edit_content` after the heading AND wrap the next paragraph in `<!-- superseded -->` … `<!-- /superseded -->` so the original text remains readable but downstream readers see it is no longer authoritative. |
124
+ | `append_to_section` | Append `edit_content` as a new paragraph/row at the end of the named section (before the next heading at same or higher level). |
125
+
126
+ The orchestrator MUST refuse to apply any edit whose `edit_type` is outside this set.
127
+
128
+ ### edit_type defaults assume "Accept suggested resolution"
129
+
130
+ For Conflicts, both patch_targets default to `annotate_and_strikeout`. The orchestrator adjusts per user choice:
131
+
132
+ | User choice | role-A edit_type | role-B edit_type |
133
+ |---|---|---|
134
+ | Accept suggested resolution | `annotate_and_strikeout` | `annotate_and_strikeout` |
135
+ | Pick role A's stance | `annotate_after_heading` (keep A) | `annotate_and_strikeout` |
136
+ | Pick role B's stance | `annotate_and_strikeout` | `annotate_after_heading` (keep B) |
137
+ | Defer to TODO | skip both patches; log in guidance §12 as deferred | skip |
138
+
139
+ ## Quality Standards
140
+
141
+ - **Every finding MUST include a `patch_targets[]` block** using the closed `edit_type` vocabulary above. Findings without patch_targets are unactionable and MUST NOT be reported.
142
+ - **target_heading MUST be exact heading text** from the role file, sourced from §4 File Index or by reading the target file. The orchestrator uses this for string matching.
143
+ - **target_file paths use role-folder format**: `{role}/analysis.md` or `{role}/analysis-F-{id}-{slug}.md`, not `design/{role}.md`.
144
+ - **Every Conflict MUST be actionable**: include a concrete suggested resolution + 1-line rationale.
145
+ - **Every Gap MUST name an owner role AND provide concrete edit_content**. Vague "more analysis needed" gaps MUST be dropped.
146
+ - **Every Synergy MUST patch BOTH role files** so the alignment is visible from either entry point.
147
+ - **Reference guidance decisions by ID**: when a role decision conflicts with a guidance decision, call out the ID.
148
+
149
+ ## Scope
150
+
151
+ - ✅ Same feature, different role decisions that contradict (compare §2 Decisions rows)
152
+ - ✅ Interface consumer references a role with no matching definition (compare §2 Interfaces)
153
+ - ✅ Cross-Cutting Positions on same topic with contradictory stances
154
+ - ✅ Findings from one role that could benefit another (§2 Findings Summary)
155
+ - ❌ Internal inconsistencies within one role's files (that's the role-design-author's job)
156
+ - ❌ Decisions already locked in guidance §1-§10 (those are settled — surface only if a role file violates them)
157
+
158
+ ## Return Protocol
159
+
160
+ - **TASK COMPLETE**: structured markdown report returned. Include the Summary block with counts.
161
+ - **TASK NEEDS_CONTEXT**: include `need_deeper_context` blocks for files the orchestrator should inject.
162
+ - **TASK BLOCKED**: cannot proceed (missing analysis files, all files empty). Report blocker.
163
+
164
+ ## NEVER
165
+
166
+ - Write files. Your output is text only — the orchestrator does the file edits.
167
+ - Invent conflicts where the role digests actually agree. False positives are worse than misses.
168
+ - Re-derive guidance-specification decisions. Quote them by ID only.
169
+ - Exceed 3000 words in the report — be specific, not exhaustive.
170
+ - Use file paths in `design/` format — always use `{role}/` format.