maestro-flow 0.3.11 → 0.3.13

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 (339) hide show
  1. package/.claude/CLAUDE.md +7 -0
  2. package/.claude/agents/conceptual-planning-agent.md +1 -0
  3. package/.claude/agents/workflow-analyzer.md +113 -114
  4. package/.claude/agents/workflow-collab-planner.md +143 -144
  5. package/.claude/agents/workflow-debugger.md +101 -103
  6. package/.claude/agents/workflow-executor.md +127 -128
  7. package/.claude/agents/workflow-integration-checker.md +82 -82
  8. package/.claude/agents/workflow-nyquist-auditor.md +84 -84
  9. package/.claude/agents/workflow-phase-researcher.md +85 -85
  10. package/.claude/agents/workflow-plan-checker.md +90 -90
  11. package/.claude/agents/workflow-planner.md +177 -178
  12. package/.claude/agents/workflow-roadmapper.md +81 -83
  13. package/.claude/agents/workflow-verifier.md +118 -119
  14. package/.claude/commands/learn-retro.md +2 -2
  15. package/.claude/commands/learn-second-opinion.md +2 -2
  16. package/.claude/commands/maestro-analyze.md +10 -2
  17. package/.claude/commands/maestro-brainstorm.md +2 -1
  18. package/.claude/commands/maestro-execute.md +21 -4
  19. package/.claude/commands/maestro-fork.md +133 -111
  20. package/.claude/commands/maestro-merge.md +85 -77
  21. package/.claude/commands/maestro-milestone-complete.md +14 -0
  22. package/.claude/commands/maestro-plan.md +100 -8
  23. package/.claude/commands/maestro-roadmap.md +113 -2
  24. package/.claude/commands/maestro-ui-design.md +7 -7
  25. package/.claude/commands/maestro-update.md +176 -0
  26. package/.claude/commands/maestro-verify.md +18 -3
  27. package/.claude/commands/maestro.md +1 -0
  28. package/.claude/commands/manage-codebase-rebuild.md +0 -1
  29. package/.claude/commands/manage-harvest.md +1 -1
  30. package/.claude/commands/manage-learn.md +5 -5
  31. package/.claude/commands/manage-memory-capture.md +4 -4
  32. package/.claude/commands/manage-memory.md +1 -1
  33. package/.claude/commands/manage-wiki.md +62 -0
  34. package/.claude/commands/quality-business-test.md +5 -5
  35. package/.claude/commands/quality-debug.md +53 -6
  36. package/.claude/commands/quality-retrospective.md +9 -7
  37. package/.claude/commands/quality-review.md +39 -7
  38. package/.claude/commands/quality-sync.md +1 -1
  39. package/.claude/commands/quality-test-gen.md +5 -4
  40. package/.claude/commands/quality-test.md +45 -12
  41. package/.claude/commands/spec-remove.md +51 -0
  42. package/.claude/commands/spec-setup.md +1 -3
  43. package/.claude/commands/wiki-connect.md +9 -5
  44. package/.claude/commands/wiki-digest.md +6 -3
  45. package/.codex/skills/maestro/SKILL.md +2 -2
  46. package/.codex/skills/maestro-analyze/SKILL.md +4 -4
  47. package/.codex/skills/maestro-brainstorm/SKILL.md +4 -4
  48. package/.codex/skills/maestro-coordinate/SKILL.md +2 -2
  49. package/.codex/skills/maestro-execute/SKILL.md +15 -5
  50. package/.codex/skills/maestro-fork/SKILL.md +98 -68
  51. package/.codex/skills/maestro-init/SKILL.md +5 -4
  52. package/.codex/skills/maestro-merge/SKILL.md +69 -62
  53. package/.codex/skills/maestro-milestone-complete/SKILL.md +18 -1
  54. package/.codex/skills/maestro-plan/SKILL.md +6 -6
  55. package/.codex/skills/maestro-roadmap/SKILL.md +3 -4
  56. package/.codex/skills/maestro-spec-generate/SKILL.md +2 -2
  57. package/.codex/skills/maestro-ui-design/SKILL.md +6 -6
  58. package/.codex/skills/maestro-verify/SKILL.md +29 -20
  59. package/.codex/skills/manage-codebase-rebuild/SKILL.md +4 -4
  60. package/.codex/skills/manage-harvest/SKILL.md +10 -1
  61. package/.codex/skills/manage-issue-discover/SKILL.md +3 -3
  62. package/.codex/skills/manage-learn/SKILL.md +3 -2
  63. package/.codex/skills/manage-memory/SKILL.md +3 -3
  64. package/.codex/skills/manage-memory-capture/SKILL.md +8 -14
  65. package/.codex/skills/manage-status/SKILL.md +9 -4
  66. package/.codex/skills/manage-wiki/SKILL.md +55 -0
  67. package/.codex/skills/quality-business-test/SKILL.md +8 -6
  68. package/.codex/skills/quality-debug/SKILL.md +22 -9
  69. package/.codex/skills/quality-integration-test/SKILL.md +11 -7
  70. package/.codex/skills/quality-retrospective/SKILL.md +48 -29
  71. package/.codex/skills/quality-review/SKILL.md +10 -7
  72. package/.codex/skills/quality-test/SKILL.md +10 -5
  73. package/.codex/skills/quality-test-gen/SKILL.md +13 -9
  74. package/.codex/skills/spec-add/SKILL.md +11 -3
  75. package/.codex/skills/spec-load/SKILL.md +7 -0
  76. package/.codex/skills/spec-map/SKILL.md +2 -2
  77. package/.codex/skills/spec-remove/SKILL.md +101 -0
  78. package/.codex/skills/spec-setup/SKILL.md +4 -8
  79. package/.codex/skills/wiki-connect/SKILL.md +6 -5
  80. package/.codex/skills/wiki-digest/SKILL.md +2 -2
  81. package/README.md +2 -0
  82. package/README.zh-CN.md +2 -0
  83. package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
  84. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
  85. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
  86. package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
  87. package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
  88. package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
  89. package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
  90. package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
  91. package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
  92. package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
  93. package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
  94. package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
  95. package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
  96. package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
  97. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
  98. package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
  99. package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
  100. package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
  101. package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
  102. package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
  103. package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
  104. package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
  105. package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
  106. package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
  107. package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
  108. package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
  109. package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
  110. package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
  111. package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
  112. package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
  113. package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
  114. package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
  115. package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
  116. package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
  117. package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
  118. package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
  119. package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
  120. package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
  121. package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
  122. package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
  123. package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
  124. package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
  125. package/dashboard/dist/index.html +2 -2
  126. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
  127. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  128. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +9 -0
  129. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +109 -9
  130. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  131. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.test.js +49 -0
  132. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.test.js.map +1 -1
  133. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
  134. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
  135. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
  136. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
  137. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
  138. package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
  139. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  140. package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
  141. package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
  142. package/dashboard/dist-server/dashboard/src/server/routes/index.js +5 -4
  143. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  144. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +5 -13
  145. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +97 -155
  146. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  147. package/dashboard/dist-server/dashboard/src/server/routes/wiki.d.ts +11 -1
  148. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +27 -6
  149. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  150. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +25 -7
  151. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  152. package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js +8 -0
  153. package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js.map +1 -1
  154. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +1 -0
  155. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  156. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.d.ts +29 -0
  157. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +148 -0
  158. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -0
  159. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +4 -2
  160. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  161. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js +8 -2
  162. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js.map +1 -1
  163. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +5 -0
  164. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +80 -38
  165. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  166. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +8 -6
  167. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  168. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +40 -5
  169. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +21 -23
  170. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  171. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +33 -3
  172. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +184 -12
  173. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  174. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
  175. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
  176. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
  177. package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
  178. package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
  179. package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
  180. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  181. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  182. package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
  183. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
  184. package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
  185. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  186. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +1 -0
  187. package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
  188. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  189. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +27 -1
  190. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  191. package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
  192. package/dashboard/dist-server/src/commands/delegate.js +26 -0
  193. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  194. package/dashboard/dist-server/src/coordinator/graph-types.d.ts +11 -1
  195. package/dashboard/dist-server/src/coordinator/graph-walker.js +29 -2
  196. package/dashboard/dist-server/src/coordinator/graph-walker.js.map +1 -1
  197. package/dashboard/dist-server/src/coordinator/prompt-assembler.js +3 -2
  198. package/dashboard/dist-server/src/coordinator/prompt-assembler.js.map +1 -1
  199. package/dashboard/dist-server/src/hooks/constants.d.ts +29 -60
  200. package/dashboard/dist-server/src/hooks/constants.js +105 -82
  201. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  202. package/dashboard/dist-server/src/types/index.d.ts +2 -1
  203. package/dist/shared/agent-types.d.ts +4 -0
  204. package/dist/shared/agent-types.d.ts.map +1 -1
  205. package/dist/src/commands/delegate.d.ts.map +1 -1
  206. package/dist/src/commands/delegate.js +26 -0
  207. package/dist/src/commands/delegate.js.map +1 -1
  208. package/dist/src/commands/hooks.d.ts +2 -4
  209. package/dist/src/commands/hooks.d.ts.map +1 -1
  210. package/dist/src/commands/hooks.js +4 -7
  211. package/dist/src/commands/hooks.js.map +1 -1
  212. package/dist/src/commands/install-backend.d.ts.map +1 -1
  213. package/dist/src/commands/install-backend.js +29 -18
  214. package/dist/src/commands/install-backend.js.map +1 -1
  215. package/dist/src/commands/install-ui/InstallConfirm.d.ts +2 -3
  216. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  217. package/dist/src/commands/install-ui/InstallConfirm.js +1 -1
  218. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  219. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  220. package/dist/src/commands/install-ui/InstallExecution.js +1 -2
  221. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  222. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  223. package/dist/src/commands/install-ui/InstallFlow.js +5 -7
  224. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  225. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +3 -6
  226. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  227. package/dist/src/commands/install-ui/StatuslineConfig.js +21 -17
  228. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  229. package/dist/src/commands/update.d.ts.map +1 -1
  230. package/dist/src/commands/update.js +95 -0
  231. package/dist/src/commands/update.js.map +1 -1
  232. package/dist/src/commands/wiki.d.ts.map +1 -1
  233. package/dist/src/commands/wiki.js +75 -11
  234. package/dist/src/commands/wiki.js.map +1 -1
  235. package/dist/src/coordinator/graph-types.d.ts +11 -1
  236. package/dist/src/coordinator/graph-types.d.ts.map +1 -1
  237. package/dist/src/coordinator/graph-walker.d.ts.map +1 -1
  238. package/dist/src/coordinator/graph-walker.js +29 -2
  239. package/dist/src/coordinator/graph-walker.js.map +1 -1
  240. package/dist/src/coordinator/prompt-assembler.d.ts.map +1 -1
  241. package/dist/src/coordinator/prompt-assembler.js +3 -2
  242. package/dist/src/coordinator/prompt-assembler.js.map +1 -1
  243. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +4 -1
  244. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -1
  245. package/dist/src/hooks/__tests__/statusline-visual-test.js +55 -152
  246. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
  247. package/dist/src/hooks/constants.d.ts +29 -60
  248. package/dist/src/hooks/constants.d.ts.map +1 -1
  249. package/dist/src/hooks/constants.js +105 -82
  250. package/dist/src/hooks/constants.js.map +1 -1
  251. package/dist/src/hooks/skill-context.d.ts +3 -0
  252. package/dist/src/hooks/skill-context.d.ts.map +1 -1
  253. package/dist/src/hooks/skill-context.js +149 -15
  254. package/dist/src/hooks/skill-context.js.map +1 -1
  255. package/dist/src/hooks/statusline.d.ts +11 -8
  256. package/dist/src/hooks/statusline.d.ts.map +1 -1
  257. package/dist/src/hooks/statusline.js +284 -179
  258. package/dist/src/hooks/statusline.js.map +1 -1
  259. package/dist/src/hooks/workspace.d.ts.map +1 -1
  260. package/dist/src/hooks/workspace.js +2 -1
  261. package/dist/src/hooks/workspace.js.map +1 -1
  262. package/dist/src/migrations/_template.d.ts +12 -0
  263. package/dist/src/migrations/_template.d.ts.map +1 -0
  264. package/dist/src/migrations/_template.js +55 -0
  265. package/dist/src/migrations/_template.js.map +1 -0
  266. package/dist/src/migrations/index.d.ts +14 -0
  267. package/dist/src/migrations/index.d.ts.map +1 -0
  268. package/dist/src/migrations/index.js +20 -0
  269. package/dist/src/migrations/index.js.map +1 -0
  270. package/dist/src/migrations/run.d.ts +12 -0
  271. package/dist/src/migrations/run.d.ts.map +1 -0
  272. package/dist/src/migrations/run.js +119 -0
  273. package/dist/src/migrations/run.js.map +1 -0
  274. package/dist/src/migrations/v1-to-v2.d.ts +10 -0
  275. package/dist/src/migrations/v1-to-v2.d.ts.map +1 -0
  276. package/dist/src/migrations/v1-to-v2.js +71 -0
  277. package/dist/src/migrations/v1-to-v2.js.map +1 -0
  278. package/dist/src/tools/merge-validator.d.ts.map +1 -1
  279. package/dist/src/tools/merge-validator.js +114 -16
  280. package/dist/src/tools/merge-validator.js.map +1 -1
  281. package/dist/src/tools/team-activity.d.ts.map +1 -1
  282. package/dist/src/tools/team-activity.js +22 -0
  283. package/dist/src/tools/team-activity.js.map +1 -1
  284. package/dist/src/tools/transition-recorder.d.ts +2 -17
  285. package/dist/src/tools/transition-recorder.d.ts.map +1 -1
  286. package/dist/src/tools/transition-recorder.js +6 -3
  287. package/dist/src/tools/transition-recorder.js.map +1 -1
  288. package/dist/src/types/index.d.ts +2 -1
  289. package/dist/src/types/index.d.ts.map +1 -1
  290. package/dist/src/utils/migration-registry.d.ts +65 -0
  291. package/dist/src/utils/migration-registry.d.ts.map +1 -0
  292. package/dist/src/utils/migration-registry.js +117 -0
  293. package/dist/src/utils/migration-registry.js.map +1 -0
  294. package/dist/src/utils/state-schema.d.ts +153 -0
  295. package/dist/src/utils/state-schema.d.ts.map +1 -0
  296. package/dist/src/utils/state-schema.js +329 -0
  297. package/dist/src/utils/state-schema.js.map +1 -0
  298. package/package.json +1 -1
  299. package/shared/agent-types.ts +4 -0
  300. package/templates/state.json +17 -39
  301. package/templates/worktree-scope.json +9 -10
  302. package/templates/worktrees.json +26 -27
  303. package/workflows/brainstorm.md +10 -1
  304. package/workflows/codebase-rebuild.md +2 -12
  305. package/workflows/debug.md +17 -8
  306. package/workflows/execute.md +18 -4
  307. package/workflows/fork.md +52 -37
  308. package/workflows/init.md +1 -4
  309. package/workflows/integration-test.md +13 -2
  310. package/workflows/issue.md +8 -4
  311. package/workflows/learn.md +25 -10
  312. package/workflows/maestro.codex.md +8 -1
  313. package/workflows/maestro.md +13 -3
  314. package/workflows/memory.md +26 -71
  315. package/workflows/merge.md +48 -52
  316. package/workflows/milestone-complete.md +24 -7
  317. package/workflows/retrospective.md +87 -80
  318. package/workflows/review.md +11 -5
  319. package/workflows/specs-remove.md +115 -0
  320. package/workflows/specs-setup.md +10 -32
  321. package/workflows/status.md +291 -290
  322. package/workflows/sync.md +5 -5
  323. package/workflows/test.md +11 -2
  324. package/workflows/ui-style.md +8 -2
  325. package/workflows/verify.md +2 -2
  326. package/workflows/wiki-connect.md +188 -0
  327. package/workflows/wiki-digest.md +221 -0
  328. package/workflows/wiki-manage.md +204 -0
  329. package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
  330. package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
  331. package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
  332. package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
  333. package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
  334. package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
  335. package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
  336. package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
  337. package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
  338. package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
  339. package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
@@ -9,7 +9,7 @@ This is a **post-execution analysis** workflow. It reads only — until the rout
9
9
  ## Prerequisites
10
10
 
11
11
  - `.workflow/` initialized (`.workflow/state.json` exists)
12
- - At least one phase directory under `.workflow/phases/{NN}-{slug}/`
12
+ - At least one completed phase (via artifact registry in state.json)
13
13
  - Target phase has been executed (has `.task/` and `.summaries/`)
14
14
  - `maestro delegate` available (used for the four lens analyses via Agent calls)
15
15
 
@@ -61,18 +61,26 @@ This is a **post-execution analysis** workflow. It reads only — until the rout
61
61
 
62
62
  ```
63
63
  candidates = []
64
- FOR each .workflow/phases/{NN}-{slug}/index.json:
65
- Read index.json
66
- IF index.json.status == "completed":
67
- has_retro = file exists at "{phase_dir}/retrospective.json"
64
+
65
+ Read .workflow/state.json → state
66
+ artifacts = state.artifacts ?? []
67
+
68
+ // Resolve completed phases from artifact registry
69
+ phaseNums = [...new Set(artifacts.map(a => a.phase).filter(Boolean))]
70
+ FOR each phaseNum in phaseNums:
71
+ execArt = artifacts.find(a => a.type === 'execute' && a.phase === phaseNum && a.status === 'completed')
72
+ IF execArt:
73
+ artifact_dir = ".workflow/" + execArt.path
74
+ has_retro = file exists at "{artifact_dir}/retrospective.json"
68
75
  candidates.push({
69
- number: NN,
70
- slug: slug,
71
- title: index.json.title or slug,
72
- completed_at: index.json.completed_at,
76
+ number: phaseNum,
77
+ slug: execArt.slug ?? "phase-" + phaseNum,
78
+ title: execArt.title ?? execArt.slug ?? "Phase " + phaseNum,
79
+ completed_at: execArt.completed_at,
73
80
  has_retro: has_retro,
74
- gaps: index.json.verification?.gaps?.length or 0,
75
- review_verdict: index.json.review?.verdict or "—"
81
+ phase_dir: artifact_dir,
82
+ gaps: 0,
83
+ review_verdict: "—"
76
84
  })
77
85
  ```
78
86
 
@@ -103,34 +111,43 @@ FOR each .workflow/phases/{NN}-{slug}/index.json:
103
111
 
104
112
  If overwriting existing retrospective.json:
105
113
  ```
106
- mkdir -p "{phase_dir}/.history"
114
+ mkdir -p "{candidate.phase_dir}/.history" // phase_dir is artifact_dir from registry
107
115
  TIMESTAMP = format(now(), "YYYY-MM-DDTHH-mm-ss")
108
- mv "{phase_dir}/retrospective.json" "{phase_dir}/.history/retrospective-{TIMESTAMP}.json"
109
- mv "{phase_dir}/retrospective.md" "{phase_dir}/.history/retrospective-{TIMESTAMP}.md"
116
+ mv "{candidate.phase_dir}/retrospective.json" "{candidate.phase_dir}/.history/retrospective-{TIMESTAMP}.json"
117
+ mv "{candidate.phase_dir}/retrospective.md" "{candidate.phase_dir}/.history/retrospective-{TIMESTAMP}.md"
110
118
  ```
111
119
 
112
120
  ---
113
121
 
114
122
  ## Stage 3: load_artifacts (per phase)
115
123
 
116
- For each selected phase, build the in-memory artifacts bundle:
124
+ For each selected phase (using `candidate.phase_dir` resolved in Stage 2), build the in-memory artifacts bundle:
117
125
 
118
126
  ```
127
+ phase_dir = candidate.phase_dir // already resolved from artifact registry (e.g. .workflow/scratch/plan-auth-2026-04-20)
128
+
119
129
  artifacts = {
120
130
  phase_num: NN,
121
131
  phase_slug: slug,
122
- phase_dir: ".workflow/phases/{NN}-{slug}",
123
- index: read JSON,
132
+ artifact_dir: artifact_dir,
133
+ index: read "{artifact_dir}/index.json" or null,
124
134
  state: read .workflow/state.json,
125
- plan: read "{phase_dir}/plan.json" or null,
126
- verification: read "{phase_dir}/verification.json" or null,
127
- review: read "{phase_dir}/review.json" or null,
128
- uat: read "{phase_dir}/uat.md" or null,
129
- task_summaries: read all "{phase_dir}/.summaries/TASK-*-summary.md",
130
- task_jsons: read all "{phase_dir}/.task/TASK-*.json",
135
+ plan: read "{artifact_dir}/plan.json" or null,
136
+ verification: read "{artifact_dir}/verification.json" or null,
137
+ review: read "{artifact_dir}/review.json" or null,
138
+ uat: read "{artifact_dir}/uat.md" or null,
139
+ task_summaries: read all "{artifact_dir}/.summaries/TASK-*-summary.md",
140
+ task_jsons: read all "{artifact_dir}/.task/TASK-*.json",
131
141
  phase_issues: filter ".workflow/issues/issues.jsonl" + ".workflow/issues/issue-history.jsonl"
132
142
  where issue.phase_ref == phase_slug or issue.phase_ref == NN,
133
- prior_retro: (if --compare M) read .workflow/phases/{MM}-*/retrospective.json
143
+ prior_retro: null
144
+ }
145
+
146
+ // Resolve --compare target
147
+ IF --compare M:
148
+ compareArt = state.artifacts.find(a => a.type === 'execute' && a.phase === M)
149
+ IF compareArt:
150
+ artifacts.prior_retro = read ".workflow/" + compareArt.path + "/retrospective.json"
134
151
  }
135
152
  ```
136
153
 
@@ -206,12 +223,12 @@ the project's spec / note / issue stores.
206
223
  - Completed at: {index.completed_at}
207
224
 
208
225
  ## Artifacts (read these from disk)
209
- - Plan: {phase_dir}/plan.json
210
- - Verification: {phase_dir}/verification.json
211
- - Review: {phase_dir}/review.json
212
- - UAT notes: {phase_dir}/uat.md
213
- - Task summaries: {phase_dir}/.summaries/
214
- - Task JSONs: {phase_dir}/.task/
226
+ - Plan: {artifact_dir}/plan.json
227
+ - Verification: {artifact_dir}/verification.json
228
+ - Review: {artifact_dir}/review.json
229
+ - UAT notes: {artifact_dir}/uat.md
230
+ - Task summaries: {artifact_dir}/.summaries/
231
+ - Task JSONs: {artifact_dir}/.task/
215
232
  - Phase issues: .workflow/issues/issues.jsonl (filter phase_ref == "{phase_slug}")
216
233
  - Project state: .workflow/state.json (decisions, deferred)
217
234
 
@@ -248,7 +265,7 @@ Return ONLY a single JSON object, no prose, matching this schema:
248
265
  "title": "Short imperative title",
249
266
  "summary": "1–3 sentences a future planner can act on",
250
267
  "confidence": "high|medium|low",
251
- "evidence_refs": ["{phase_dir}/verification.json#gaps[2]", "..."],
268
+ "evidence_refs": ["{artifact_dir}/verification.json#gaps[2]", "..."],
252
269
  "routed_to": "spec|note|issue|none",
253
270
  "tags": ["..."]
254
271
  }
@@ -422,10 +439,10 @@ retrospective = {
422
439
  | {INS-id} | note | ... |
423
440
  ```
424
441
 
425
- Write both files:
442
+ Write both files (phase_dir already resolved in Stage 2):
426
443
  ```
427
- Write "{phase_dir}/retrospective.json"
428
- Write "{phase_dir}/retrospective.md"
444
+ Write "{artifact_dir}/retrospective.json"
445
+ Write "{artifact_dir}/retrospective.md"
429
446
  ```
430
447
 
431
448
  ---
@@ -454,46 +471,31 @@ Accept all? [Y/n/i for individual]
454
471
 
455
472
  #### Target: spec
456
473
 
457
- Write a stub spec file directly. Do NOT invoke `spec-generate` (heavyweight 7-phase pipeline).
474
+ Route spec-routed insights as `<spec-entry>` entries into the appropriate category file. Map insight type to category:
475
+ - `pattern` / `convention` → `coding`
476
+ - `adr-candidate` / architecture → `arch`
477
+ - quality-related → `quality`
458
478
 
459
479
  ```
460
- mkdir -p ".workflow/specs"
461
- slug = slugify(insight.title)
462
- spec_file = ".workflow/specs/SPEC-retro-{phase_num}-{INS_id}-{slug}.md"
463
-
464
- Write spec_file:
465
- ---
466
- status: draft
467
- type: pattern | convention | adr-candidate
468
- source: retrospective
469
- source_phase: {NN}
470
- source_insight: {INS_id}
471
- created_at: {now ISO}
472
- tags: {insight.tags}
473
- confidence: {insight.confidence}
474
- ---
475
-
476
- # {insight.title}
480
+ category = map_insight_to_category(insight.type)
481
+ target_file = category_to_file(category) # e.g., coding → coding-conventions.md
477
482
 
478
- ## Context
483
+ keywords = extract_keywords(insight.title + insight.summary) # 3-5 domain-specific terms
479
484
 
480
- Extracted from phase {NN} ({phase_slug}) retrospective by the {lens} lens.
481
- This stub captures a reusable {category} surfaced during execution; expand it
482
- into a full spec via `/maestro-spec-generate` if it warrants project-wide adoption.
485
+ Append to .workflow/specs/{target_file}:
486
+ <spec-entry category="{category}" keywords="{keywords}" date="{YYYY-MM-DD}" source="retrospective">
483
487
 
484
- ## Pattern / Convention
488
+ ### {insight.title}
485
489
 
486
- {insight.summary}
490
+ {insight.summary}
487
491
 
488
- ## Evidence
489
-
490
- {FOR ref in evidence_refs:} - `{ref}`{END FOR}
492
+ **Evidence:** {FOR ref in evidence_refs:} `{ref}` {END FOR}
493
+ **Phase:** {NN} ({phase_slug}) | **Lens:** {lens} | **Insight:** {INS_id} | **Confidence:** {insight.confidence}
491
494
 
492
- ## Open Questions
495
+ </spec-entry>
496
+ ```
493
497
 
494
- - Is this pattern already documented elsewhere?
495
- - Should existing code be migrated to this pattern, or is it forward-only?
496
- - What is the failure mode if this pattern is violated?
498
+ If the target file does not exist, create it with category frontmatter first (same as `spec-add` on-demand creation).
497
499
 
498
500
  ## Routing trail
499
501
 
@@ -502,7 +504,7 @@ into a full spec via `/maestro-spec-generate` if it warrants project-wide adopti
502
504
  - Insight: {INS_id}
503
505
  - Confidence: {confidence}
504
506
 
505
- insight.routed_id = "SPEC-retro-{phase_num}-{INS_id}-{slug}.md"
507
+ insight.routed_id = "{category_file}#INS-{INS_id}" # e.g., coding-conventions.md#INS-a1b2c3d4
506
508
  ```
507
509
 
508
510
  #### Target: note
@@ -522,7 +524,7 @@ Capture the returned TIP-{id} from the skill output.
522
524
  insight.routed_id = "TIP-{captured_id}"
523
525
  ```
524
526
 
525
- If the skill call cannot be intercepted to capture the ID, fall back to writing the tip file directly using the schema in `workflows/memory.md` Part B Step 3 (Tip mode), and update `memory-index.json` per Step 4.
527
+ If the skill call cannot be intercepted to capture the ID, fall back to writing the tip file directly using the schema in `workflows/memory.md` Part B Step 3 (Tip mode), and update `wiki-index.json` per Step 4.
526
528
 
527
529
  #### Target: issue
528
530
 
@@ -667,19 +669,24 @@ Write .workflow/learning/learning-index.json
667
669
 
668
670
  ### Backward-compat append to specs/learnings.md
669
671
 
670
- Append learnings to `.workflow/specs/learnings.md` (shared with milestone-complete's learning extraction). Append a one-line summary per insight:
672
+ Append learnings to `.workflow/specs/learnings.md` (shared with milestone-complete's learning extraction) using `<spec-entry>` closed-tag format:
671
673
 
672
674
  ```
673
675
  IF .workflow/specs/learnings.md exists:
674
676
  FOR each insight:
675
- Append under "## Entries":
676
- ### [{YYYY-MM-DD HH:mm}] {category}: {title}
677
+ keywords = extract_keywords(insight.title + insight.summary) # 3-5 domain-specific terms
678
+ Append:
679
+ <spec-entry category="learning" keywords="{keywords}" date="{YYYY-MM-DD}" source="retrospective">
680
+
681
+ ### {title}
677
682
 
678
683
  {summary}
679
- Phase: {NN} | Source: retrospective | Insight: {INS_id} | Lens: {lens}
684
+ Phase: {NN} | Lens: {lens} | Insight: {INS_id}
685
+
686
+ </spec-entry>
680
687
  ```
681
688
 
682
- If the file does not exist, create it with a `## Entries` header.
689
+ If the file does not exist, create it with category frontmatter and a `## Entries` header.
683
690
 
684
691
  ---
685
692
 
@@ -694,14 +701,14 @@ Lenses run: {lenses joined by ", "}
694
701
  Insights: {count}
695
702
 
696
703
  Routing summary:
697
- Specs drafted: {N} → .workflow/specs/SPEC-retro-*
704
+ Spec entries: {N} → .workflow/specs/{category-file}.md
698
705
  Notes saved: {N} → .workflow/memory/TIP-*
699
706
  Issues opened: {N} → .workflow/issues/issues.jsonl
700
707
  Lessons logged: {N} → .workflow/learning/lessons.jsonl
701
708
 
702
709
  Files:
703
- {phase_dir}/retrospective.md
704
- {phase_dir}/retrospective.json
710
+ {artifact_dir}/retrospective.md
711
+ {artifact_dir}/retrospective.json
705
712
 
706
713
  Next steps (suggested):
707
714
  Skill({ skill: "manage-status" }) — Review project state
@@ -770,12 +777,12 @@ Total issues: {sum}
770
777
  "summary": "Refresh-on-use prevents replay attacks. Implemented in src/auth/refresh.ts; should become a project-wide convention.",
771
778
  "confidence": "high",
772
779
  "evidence_refs": [
773
- ".workflow/phases/01-auth/verification.json#gaps[2]",
774
- ".workflow/phases/01-auth/.summaries/TASK-005-summary.md:42"
780
+ ".workflow/scratch/plan-auth-2026-04-15/verification.json#gaps[2]",
781
+ ".workflow/scratch/plan-auth-2026-04-15/.summaries/TASK-005-summary.md:42"
775
782
  ],
776
783
  "tags": ["auth", "jwt", "security"],
777
784
  "routed_to": "spec",
778
- "routed_id": "SPEC-retro-1-INS-a1b2c3d4-jwt-refresh-rotation.md"
785
+ "routed_id": "coding-conventions.md#INS-a1b2c3d4"
779
786
  }
780
787
  ],
781
788
  "routing_recommendations": [
@@ -790,7 +797,7 @@ Total issues: {sum}
790
797
  One JSON object per line:
791
798
 
792
799
  ```json
793
- {"id":"INS-a1b2c3d4","phase":1,"phase_slug":"01-auth","lens":"technical","category":"pattern","title":"JWT refresh tokens must rotate on every use","summary":"...","confidence":"high","tags":["auth","jwt","security"],"evidence_refs":["..."],"routed_to":"spec","routed_id":"SPEC-retro-1-INS-a1b2c3d4-jwt-refresh-rotation.md","source":"retrospective","captured_at":"2026-04-11T10:00:00Z"}
800
+ {"id":"INS-a1b2c3d4","phase":1,"phase_slug":"01-auth","lens":"technical","category":"pattern","title":"JWT refresh tokens must rotate on every use","summary":"...","confidence":"high","tags":["auth","jwt","security"],"evidence_refs":["..."],"routed_to":"spec","routed_id":"coding-conventions.md#INS-a1b2c3d4","source":"retrospective","captured_at":"2026-04-11T10:00:00Z"}
794
801
  ```
795
802
 
796
803
  ### learning-index.json
@@ -811,7 +818,7 @@ One JSON object per line:
811
818
  "phase_slug": "01-auth",
812
819
  "confidence": "high",
813
820
  "routed_to": "spec",
814
- "routed_id": "SPEC-retro-1-INS-a1b2c3d4-jwt-refresh-rotation.md"
821
+ "routed_id": "coding-conventions.md#INS-a1b2c3d4"
815
822
  }
816
823
  ],
817
824
  "_metadata": {
@@ -15,10 +15,16 @@ Tiered multi-dimensional code review with parallel agents, severity classificati
15
15
 
16
16
  ```
17
17
  Input: <phase> argument (number or slug)
18
- 1. If number: find .workflow/phases/{NN}-*/index.json
19
- 2. If slug: find .workflow/phases/*-{slug}/index.json
20
- 3. Validate execution has occurred (index.json.execution.tasks_completed > 0)
21
- 4. Set PHASE_DIR = resolved path
18
+
19
+ Read .workflow/state.json → state
20
+ artifacts = state.artifacts ?? []
21
+
22
+ IF number: art = artifacts.find(a => a.type === 'execute' && a.phase === number)
23
+ IF slug: art = artifacts.find(a => a.type === 'execute' && a.slug?.includes(slug))
24
+ IF art: PHASE_DIR = ".workflow/" + art.path
25
+ ELSE: ERROR "Phase not found in artifact registry"
26
+
27
+ Validate execution has occurred (tasks_completed > 0 or .task/ exists)
22
28
  ```
23
29
 
24
30
  ---
@@ -574,7 +580,7 @@ Verdict: {PASS | WARN | BLOCK}
574
580
  Issues Created: {count}
575
581
 
576
582
  Files:
577
- {phase_dir}/review.json
583
+ {artifact_dir}/review.json
578
584
 
579
585
  Next steps:
580
586
  {suggested_next_command}
@@ -0,0 +1,115 @@
1
+ # Spec Remove Workflow
2
+
3
+ Remove a `<spec-entry>` block from a specs container file. Symmetric with `specs-add.md`.
4
+
5
+ Uses `maestro wiki remove-entry` for atomic removal — the entry is deleted from the markdown file and the unified wiki index is auto-updated by WikiIndexer.
6
+
7
+ ---
8
+
9
+ ## Prerequisites
10
+
11
+ - `.workflow/specs/` initialized (at least one specs file exists)
12
+ - `maestro wiki` CLI available
13
+ - Entry ID known (use `maestro wiki list --type spec` to discover)
14
+
15
+ ---
16
+
17
+ ## Argument Shape
18
+
19
+ ```
20
+ /spec-remove spec-learnings-003 → remove entry 003 from learnings.md
21
+ /spec-remove spec-coding-conventions-001 → remove entry 001 from coding-conventions.md
22
+ /spec-remove spec-quality-rules-005 -y → remove without confirmation
23
+ ```
24
+
25
+ | Flag | Effect |
26
+ |------|--------|
27
+ | `<entry-id>` | Required. The spec sub-node ID to remove |
28
+ | `-y` / `--yes` | Skip confirmation prompt |
29
+
30
+ ---
31
+
32
+ ## Stage 1: Parse Input
33
+
34
+ 1. Extract entry ID from arguments
35
+ 2. Validate non-empty (E001 if missing)
36
+ 3. Check `.workflow/specs/` exists (E002 if not)
37
+
38
+ ---
39
+
40
+ ## Stage 2: Lookup Entry
41
+
42
+ 1. Run `maestro wiki get <entry-id> --json` to fetch entry metadata
43
+ 2. Validate entry exists (E003 if not found)
44
+ 3. Validate entry is a spec sub-node — must have:
45
+ - `type` = "spec"
46
+ - `parent` field set (sub-nodes have parent pointing to container)
47
+ - If not a sub-node, error E004
48
+ 4. Extract: title, category, keywords, container file path, body preview
49
+
50
+ ---
51
+
52
+ ## Stage 3: Confirm Removal
53
+
54
+ Display entry details for user confirmation:
55
+
56
+ ```
57
+ == Spec Entry to Remove ==
58
+ ID: {entry-id}
59
+ Title: {title}
60
+ Category: {category}
61
+ Keywords: {keywords}
62
+ Container: .workflow/specs/{filename}
63
+ Preview: {first 80 chars of body}
64
+
65
+ Remove this entry? [y/N]
66
+ ```
67
+
68
+ If `-y` flag: skip confirmation.
69
+ If user declines: abort with "Cancelled."
70
+
71
+ ---
72
+
73
+ ## Stage 4: Remove Entry
74
+
75
+ Execute removal via wiki CLI:
76
+
77
+ ```bash
78
+ maestro wiki remove-entry <entry-id>
79
+ ```
80
+
81
+ This command:
82
+ 1. Reads the container file
83
+ 2. Locates the `<spec-entry>` block by index position
84
+ 3. Removes the block (including opening tag, body, closing tag)
85
+ 4. Writes the updated file
86
+ 5. WikiIndexer auto-updates `.workflow/wiki-index.json`
87
+
88
+ ---
89
+
90
+ ## Stage 5: Verify & Report
91
+
92
+ 1. Verify entry no longer appears: `maestro wiki get <entry-id>` should return not-found
93
+ 2. Display confirmation:
94
+
95
+ ```
96
+ == Entry Removed ==
97
+ ID: {entry-id}
98
+ From: .workflow/specs/{filename}
99
+ Remaining: {remaining entry count} entries in {filename}
100
+
101
+ To verify: maestro wiki list --type spec --category {category}
102
+ To re-add: /spec-add {category} {content}
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Error Codes
108
+
109
+ | Code | Severity | Condition | Recovery |
110
+ |------|----------|-----------|----------|
111
+ | E001 | fatal | Entry ID required | Usage: `/spec-remove <entry-id>` |
112
+ | E002 | fatal | `.workflow/specs/` not initialized | Run `/spec-setup` first |
113
+ | E003 | fatal | Entry ID not found in wiki index | Check ID with `maestro wiki list --type spec` |
114
+ | E004 | fatal | Entry is not a spec sub-node | Only `<spec-entry>` sub-nodes can be removed this way |
115
+ | W001 | warning | Container file empty after removal | File kept but has no entries |
@@ -52,28 +52,7 @@ Framework detection (from dependency files):
52
52
  spring --> Java Spring
53
53
  ```
54
54
 
55
- ### Step 3: Write project-tech.json
56
-
57
- Output: `.workflow/project-tech.json`
58
-
59
- ```json
60
- {
61
- "detected_at": "{ISO timestamp}",
62
- "languages": ["TypeScript", "..."],
63
- "frameworks": ["Next.js", "..."],
64
- "package_manager": "npm | yarn | pnpm | ...",
65
- "build_system": "tsc | webpack | vite | ...",
66
- "test_framework": "jest | vitest | pytest | ...",
67
- "linter": "eslint | prettier | ...",
68
- "architecture": {
69
- "type": "monorepo | single-package | ...",
70
- "entry_points": ["src/index.ts", "..."],
71
- "key_directories": ["src/", "lib/", "..."]
72
- }
73
- }
74
- ```
75
-
76
- ### Step 4: Detect Code Patterns
55
+ ### Step 3: Detect Code Patterns
77
56
 
78
57
  Scan source files for coding conventions:
79
58
 
@@ -85,9 +64,9 @@ Formatting: Check for .prettierrc, .editorconfig, eslint config
85
64
  File naming: kebab-case vs camelCase vs PascalCase for source files
86
65
  ```
87
66
 
88
- ### Step 5: Generate Core Files (always created)
67
+ ### Step 4: Generate Core Files (always created)
89
68
 
90
- #### 5a: coding-conventions.md
69
+ #### 4a: coding-conventions.md
91
70
 
92
71
  Output: `.workflow/specs/coding-conventions.md`
93
72
 
@@ -124,7 +103,7 @@ Auto-generated from project analysis. Update manually as patterns evolve.
124
103
  {empty section for spec-add entries}
125
104
  ```
126
105
 
127
- #### 5b: architecture-constraints.md
106
+ #### 4b: architecture-constraints.md
128
107
 
129
108
  Output: `.workflow/specs/architecture-constraints.md`
130
109
 
@@ -156,7 +135,7 @@ Auto-generated from project structure. Update manually as architecture evolves.
156
135
  {empty section for spec-add entries}
157
136
  ```
158
137
 
159
- #### 5c: learnings.md
138
+ #### 4c: learnings.md
160
139
 
161
140
  Output: `.workflow/specs/learnings.md`
162
141
 
@@ -175,9 +154,9 @@ Add entries with: `/spec-add learning <description>`
175
154
  {empty -- entries added via spec-add}
176
155
  ```
177
156
 
178
- ### Step 6: Generate Optional Files (when signals detected)
157
+ ### Step 5: Generate Optional Files (when signals detected)
179
158
 
180
- #### 6a: quality-rules.md (when linter config or CI detected)
159
+ #### 5a: quality-rules.md (when linter config or CI detected)
181
160
 
182
161
  Output: `.workflow/specs/quality-rules.md`
183
162
 
@@ -193,7 +172,7 @@ category: quality
193
172
  {empty -- entries added via spec-add}
194
173
  ```
195
174
 
196
- #### 6b: test-conventions.md (when test framework or test files detected)
175
+ #### 5b: test-conventions.md (when test framework or test files detected)
197
176
 
198
177
  Scan existing test files for conventions (framework, naming, directory structure, patterns).
199
178
 
@@ -225,16 +204,15 @@ Auto-generated from project analysis. Update manually as patterns evolve.
225
204
  {empty section for spec-add entries}
226
205
  ```
227
206
 
228
- #### 6c: debug-notes.md and review-standards.md
207
+ #### 5c: debug-notes.md and review-standards.md
229
208
 
230
209
  These are NOT created during setup. They are created on demand when `spec-add debug` or `spec-add review` is first used.
231
210
 
232
- ### Step 7: Summary
211
+ ### Step 6: Summary
233
212
 
234
213
  Display what was created:
235
214
  ```
236
215
  Specs initialized:
237
- .workflow/project-tech.json -- Tech stack analysis
238
216
  .workflow/specs/coding-conventions.md (category: coding)
239
217
  .workflow/specs/architecture-constraints.md (category: arch)
240
218
  .workflow/specs/learnings.md (category: learning)