@emiliosp/pi-maestro 0.7.4 → 0.9.0

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 (431) hide show
  1. package/ADR.md +89 -0
  2. package/CHANGELOG.md +6 -0
  3. package/README.md +3 -2
  4. package/ROADMAP.md +115 -21
  5. package/agents/builder.md +2 -4
  6. package/docs/glossary.md +2 -1
  7. package/docs/workflow.md +25 -9
  8. package/node_modules/pi-subagents/CHANGELOG.md +140 -0
  9. package/node_modules/pi-subagents/README.md +1 -1
  10. package/node_modules/pi-subagents/agents/evidence-auditor.md +1 -0
  11. package/node_modules/pi-subagents/agents/oracle.md +9 -19
  12. package/node_modules/pi-subagents/agents/researcher.md +0 -3
  13. package/node_modules/pi-subagents/agents/reviewer.md +18 -61
  14. package/node_modules/pi-subagents/agents/scout.md +1 -4
  15. package/node_modules/pi-subagents/agents/worker.md +8 -25
  16. package/node_modules/pi-subagents/docs/agents.md +71 -4
  17. package/node_modules/pi-subagents/docs/configuration.md +75 -10
  18. package/node_modules/pi-subagents/docs/extension-api.md +40 -11
  19. package/node_modules/pi-subagents/docs/missions.md +24 -17
  20. package/node_modules/pi-subagents/docs/models.md +1 -1
  21. package/node_modules/pi-subagents/docs/observability.md +12 -5
  22. package/node_modules/pi-subagents/docs/tool-reference.md +103 -85
  23. package/node_modules/pi-subagents/docs/watchdog.md +8 -6
  24. package/node_modules/pi-subagents/docs/workflows.md +17 -8
  25. package/node_modules/pi-subagents/index.d.ts.map +1 -1
  26. package/node_modules/pi-subagents/index.js +5 -0
  27. package/node_modules/pi-subagents/index.js.map +1 -1
  28. package/node_modules/pi-subagents/package.json +2 -1
  29. package/node_modules/pi-subagents/prompts/council.md +1 -1
  30. package/node_modules/pi-subagents/skills/pi-subagents/SKILL.md +2 -2
  31. package/node_modules/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +1 -1
  32. package/node_modules/pi-subagents/skills/pi-subagents/references/execution-controls.md +16 -16
  33. package/node_modules/pi-subagents/skills/pi-subagents/references/management-authoring-rpc.md +16 -12
  34. package/node_modules/pi-subagents/skills/pi-subagents/references/multi-lane-orchestration.md +1 -1
  35. package/node_modules/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +3 -3
  36. package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.d.ts +5 -1
  37. package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.d.ts.map +1 -1
  38. package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.js +8 -2
  39. package/node_modules/pi-subagents/src/agents/advertised-agent-prompt.js.map +1 -1
  40. package/node_modules/pi-subagents/src/agents/agent-management.d.ts.map +1 -1
  41. package/node_modules/pi-subagents/src/agents/agent-management.js +5 -0
  42. package/node_modules/pi-subagents/src/agents/agent-management.js.map +1 -1
  43. package/node_modules/pi-subagents/src/agents/agent-scope.d.ts +1 -0
  44. package/node_modules/pi-subagents/src/agents/agent-scope.d.ts.map +1 -1
  45. package/node_modules/pi-subagents/src/agents/agent-scope.js +3 -0
  46. package/node_modules/pi-subagents/src/agents/agent-scope.js.map +1 -1
  47. package/node_modules/pi-subagents/src/agents/agent-serializer.d.ts.map +1 -1
  48. package/node_modules/pi-subagents/src/agents/agent-serializer.js +3 -0
  49. package/node_modules/pi-subagents/src/agents/agent-serializer.js.map +1 -1
  50. package/node_modules/pi-subagents/src/agents/agents.d.ts +14 -2
  51. package/node_modules/pi-subagents/src/agents/agents.d.ts.map +1 -1
  52. package/node_modules/pi-subagents/src/agents/agents.js +94 -36
  53. package/node_modules/pi-subagents/src/agents/agents.js.map +1 -1
  54. package/node_modules/pi-subagents/src/api/external-runs.d.ts.map +1 -1
  55. package/node_modules/pi-subagents/src/api/external-runs.js +5 -4
  56. package/node_modules/pi-subagents/src/api/external-runs.js.map +1 -1
  57. package/node_modules/pi-subagents/src/api/preflight.d.ts +2 -0
  58. package/node_modules/pi-subagents/src/api/preflight.d.ts.map +1 -1
  59. package/node_modules/pi-subagents/src/api/preflight.js +7 -3
  60. package/node_modules/pi-subagents/src/api/preflight.js.map +1 -1
  61. package/node_modules/pi-subagents/src/extension/active-runs-prompt.d.ts +8 -0
  62. package/node_modules/pi-subagents/src/extension/active-runs-prompt.d.ts.map +1 -0
  63. package/node_modules/pi-subagents/src/extension/active-runs-prompt.js +30 -0
  64. package/node_modules/pi-subagents/src/extension/active-runs-prompt.js.map +1 -0
  65. package/node_modules/pi-subagents/src/extension/config.d.ts.map +1 -1
  66. package/node_modules/pi-subagents/src/extension/config.js +29 -2
  67. package/node_modules/pi-subagents/src/extension/config.js.map +1 -1
  68. package/node_modules/pi-subagents/src/extension/control-notices.d.ts +0 -2
  69. package/node_modules/pi-subagents/src/extension/control-notices.d.ts.map +1 -1
  70. package/node_modules/pi-subagents/src/extension/control-notices.js +1 -7
  71. package/node_modules/pi-subagents/src/extension/control-notices.js.map +1 -1
  72. package/node_modules/pi-subagents/src/extension/declaration-pinning.d.ts +19 -0
  73. package/node_modules/pi-subagents/src/extension/declaration-pinning.d.ts.map +1 -0
  74. package/node_modules/pi-subagents/src/extension/declaration-pinning.js +154 -0
  75. package/node_modules/pi-subagents/src/extension/declaration-pinning.js.map +1 -0
  76. package/node_modules/pi-subagents/src/extension/doctor.d.ts +3 -1
  77. package/node_modules/pi-subagents/src/extension/doctor.d.ts.map +1 -1
  78. package/node_modules/pi-subagents/src/extension/doctor.js +3 -9
  79. package/node_modules/pi-subagents/src/extension/doctor.js.map +1 -1
  80. package/node_modules/pi-subagents/src/extension/fanout-child.d.ts.map +1 -1
  81. package/node_modules/pi-subagents/src/extension/fanout-child.js +6 -8
  82. package/node_modules/pi-subagents/src/extension/fanout-child.js.map +1 -1
  83. package/node_modules/pi-subagents/src/extension/index.d.ts +1 -2
  84. package/node_modules/pi-subagents/src/extension/index.d.ts.map +1 -1
  85. package/node_modules/pi-subagents/src/extension/index.js +121 -127
  86. package/node_modules/pi-subagents/src/extension/index.js.map +1 -1
  87. package/node_modules/pi-subagents/src/extension/rpc.d.ts.map +1 -1
  88. package/node_modules/pi-subagents/src/extension/rpc.js +12 -6
  89. package/node_modules/pi-subagents/src/extension/rpc.js.map +1 -1
  90. package/node_modules/pi-subagents/src/extension/schemas.d.ts +137 -1
  91. package/node_modules/pi-subagents/src/extension/schemas.d.ts.map +1 -1
  92. package/node_modules/pi-subagents/src/extension/schemas.js +22 -22
  93. package/node_modules/pi-subagents/src/extension/schemas.js.map +1 -1
  94. package/node_modules/pi-subagents/src/extension/subagent-guide.d.ts +1 -0
  95. package/node_modules/pi-subagents/src/extension/subagent-guide.d.ts.map +1 -1
  96. package/node_modules/pi-subagents/src/extension/subagent-guide.js +80 -6
  97. package/node_modules/pi-subagents/src/extension/subagent-guide.js.map +1 -1
  98. package/node_modules/pi-subagents/src/extension/subagent-options.d.ts +8 -0
  99. package/node_modules/pi-subagents/src/extension/subagent-options.d.ts.map +1 -0
  100. package/node_modules/pi-subagents/src/extension/subagent-options.js +52 -0
  101. package/node_modules/pi-subagents/src/extension/subagent-options.js.map +1 -0
  102. package/node_modules/pi-subagents/src/extension/tool-activation.d.ts.map +1 -1
  103. package/node_modules/pi-subagents/src/extension/tool-activation.js +7 -4
  104. package/node_modules/pi-subagents/src/extension/tool-activation.js.map +1 -1
  105. package/node_modules/pi-subagents/src/extension/tool-description.d.ts +4 -7
  106. package/node_modules/pi-subagents/src/extension/tool-description.d.ts.map +1 -1
  107. package/node_modules/pi-subagents/src/extension/tool-description.js +45 -59
  108. package/node_modules/pi-subagents/src/extension/tool-description.js.map +1 -1
  109. package/node_modules/pi-subagents/src/inspectors/actions.d.ts +2 -0
  110. package/node_modules/pi-subagents/src/inspectors/actions.d.ts.map +1 -1
  111. package/node_modules/pi-subagents/src/inspectors/actions.js +41 -13
  112. package/node_modules/pi-subagents/src/inspectors/actions.js.map +1 -1
  113. package/node_modules/pi-subagents/src/inspectors/plugins.d.ts.map +1 -1
  114. package/node_modules/pi-subagents/src/inspectors/plugins.js +3 -2
  115. package/node_modules/pi-subagents/src/inspectors/plugins.js.map +1 -1
  116. package/node_modules/pi-subagents/src/inspectors/tmux/actions.d.ts +26 -0
  117. package/node_modules/pi-subagents/src/inspectors/tmux/actions.d.ts.map +1 -0
  118. package/node_modules/pi-subagents/src/inspectors/tmux/actions.js +182 -0
  119. package/node_modules/pi-subagents/src/inspectors/tmux/actions.js.map +1 -0
  120. package/node_modules/pi-subagents/src/inspectors/tmux/client.d.ts +28 -0
  121. package/node_modules/pi-subagents/src/inspectors/tmux/client.d.ts.map +1 -0
  122. package/node_modules/pi-subagents/src/inspectors/tmux/client.js +65 -0
  123. package/node_modules/pi-subagents/src/inspectors/tmux/client.js.map +1 -0
  124. package/node_modules/pi-subagents/src/inspectors/tmux/plugin.d.ts +8 -0
  125. package/node_modules/pi-subagents/src/inspectors/tmux/plugin.d.ts.map +1 -0
  126. package/node_modules/pi-subagents/src/inspectors/tmux/plugin.js +15 -0
  127. package/node_modules/pi-subagents/src/inspectors/tmux/plugin.js.map +1 -0
  128. package/node_modules/pi-subagents/src/integrations/herdr-status.d.ts +0 -1
  129. package/node_modules/pi-subagents/src/integrations/herdr-status.d.ts.map +1 -1
  130. package/node_modules/pi-subagents/src/integrations/herdr-status.js +18 -52
  131. package/node_modules/pi-subagents/src/integrations/herdr-status.js.map +1 -1
  132. package/node_modules/pi-subagents/src/integrations/program-status.d.ts +31 -0
  133. package/node_modules/pi-subagents/src/integrations/program-status.d.ts.map +1 -0
  134. package/node_modules/pi-subagents/src/integrations/program-status.js +189 -0
  135. package/node_modules/pi-subagents/src/integrations/program-status.js.map +1 -0
  136. package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.d.ts +17 -1
  137. package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.d.ts.map +1 -1
  138. package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.js +102 -9
  139. package/node_modules/pi-subagents/src/intercom/native-supervisor-channel.js.map +1 -1
  140. package/node_modules/pi-subagents/src/intercom/result-intercom.js +1 -1
  141. package/node_modules/pi-subagents/src/intercom/result-intercom.js.map +1 -1
  142. package/node_modules/pi-subagents/src/intercom/supervisor-ui.d.ts +2 -12
  143. package/node_modules/pi-subagents/src/intercom/supervisor-ui.d.ts.map +1 -1
  144. package/node_modules/pi-subagents/src/intercom/supervisor-ui.js +2 -154
  145. package/node_modules/pi-subagents/src/intercom/supervisor-ui.js.map +1 -1
  146. package/node_modules/pi-subagents/src/missions/store.d.ts.map +1 -1
  147. package/node_modules/pi-subagents/src/missions/store.js +27 -5
  148. package/node_modules/pi-subagents/src/missions/store.js.map +1 -1
  149. package/node_modules/pi-subagents/src/runs/background/active-async-capacity.d.ts +2 -1
  150. package/node_modules/pi-subagents/src/runs/background/active-async-capacity.d.ts.map +1 -1
  151. package/node_modules/pi-subagents/src/runs/background/active-async-capacity.js +10 -6
  152. package/node_modules/pi-subagents/src/runs/background/active-async-capacity.js.map +1 -1
  153. package/node_modules/pi-subagents/src/runs/background/async-execution.d.ts +9 -1
  154. package/node_modules/pi-subagents/src/runs/background/async-execution.d.ts.map +1 -1
  155. package/node_modules/pi-subagents/src/runs/background/async-execution.js +253 -144
  156. package/node_modules/pi-subagents/src/runs/background/async-execution.js.map +1 -1
  157. package/node_modules/pi-subagents/src/runs/background/async-job-tracker.d.ts +4 -1
  158. package/node_modules/pi-subagents/src/runs/background/async-job-tracker.d.ts.map +1 -1
  159. package/node_modules/pi-subagents/src/runs/background/async-job-tracker.js +3 -2
  160. package/node_modules/pi-subagents/src/runs/background/async-job-tracker.js.map +1 -1
  161. package/node_modules/pi-subagents/src/runs/background/async-resume.d.ts.map +1 -1
  162. package/node_modules/pi-subagents/src/runs/background/async-resume.js +9 -3
  163. package/node_modules/pi-subagents/src/runs/background/async-resume.js.map +1 -1
  164. package/node_modules/pi-subagents/src/runs/background/await-async-run.d.ts +8 -4
  165. package/node_modules/pi-subagents/src/runs/background/await-async-run.d.ts.map +1 -1
  166. package/node_modules/pi-subagents/src/runs/background/await-async-run.js +14 -8
  167. package/node_modules/pi-subagents/src/runs/background/await-async-run.js.map +1 -1
  168. package/node_modules/pi-subagents/src/runs/background/binary-bootstrap.d.ts.map +1 -1
  169. package/node_modules/pi-subagents/src/runs/background/binary-bootstrap.js +2 -1
  170. package/node_modules/pi-subagents/src/runs/background/binary-bootstrap.js.map +1 -1
  171. package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.d.ts +2 -0
  172. package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -1
  173. package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.js +9 -6
  174. package/node_modules/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -1
  175. package/node_modules/pi-subagents/src/runs/background/control-channel.d.ts +1 -0
  176. package/node_modules/pi-subagents/src/runs/background/control-channel.d.ts.map +1 -1
  177. package/node_modules/pi-subagents/src/runs/background/control-channel.js +27 -3
  178. package/node_modules/pi-subagents/src/runs/background/control-channel.js.map +1 -1
  179. package/node_modules/pi-subagents/src/runs/background/fleet-view.js +5 -5
  180. package/node_modules/pi-subagents/src/runs/background/fleet-view.js.map +1 -1
  181. package/node_modules/pi-subagents/src/runs/background/notify.d.ts +12 -2
  182. package/node_modules/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
  183. package/node_modules/pi-subagents/src/runs/background/notify.js +152 -13
  184. package/node_modules/pi-subagents/src/runs/background/notify.js.map +1 -1
  185. package/node_modules/pi-subagents/src/runs/background/result-files.d.ts +29 -0
  186. package/node_modules/pi-subagents/src/runs/background/result-files.d.ts.map +1 -1
  187. package/node_modules/pi-subagents/src/runs/background/result-files.js +104 -6
  188. package/node_modules/pi-subagents/src/runs/background/result-files.js.map +1 -1
  189. package/node_modules/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
  190. package/node_modules/pi-subagents/src/runs/background/result-watcher.js +60 -64
  191. package/node_modules/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
  192. package/node_modules/pi-subagents/src/runs/background/resume-guidance.js +2 -2
  193. package/node_modules/pi-subagents/src/runs/background/resume-guidance.js.map +1 -1
  194. package/node_modules/pi-subagents/src/runs/background/run-child-session.d.ts.map +1 -1
  195. package/node_modules/pi-subagents/src/runs/background/run-child-session.js +9 -15
  196. package/node_modules/pi-subagents/src/runs/background/run-child-session.js.map +1 -1
  197. package/node_modules/pi-subagents/src/runs/background/run-id-resolver.d.ts.map +1 -1
  198. package/node_modules/pi-subagents/src/runs/background/run-id-resolver.js +9 -6
  199. package/node_modules/pi-subagents/src/runs/background/run-id-resolver.js.map +1 -1
  200. package/node_modules/pi-subagents/src/runs/background/run-status.d.ts.map +1 -1
  201. package/node_modules/pi-subagents/src/runs/background/run-status.js +19 -15
  202. package/node_modules/pi-subagents/src/runs/background/run-status.js.map +1 -1
  203. package/node_modules/pi-subagents/src/runs/background/runner-aliases.d.ts.map +1 -1
  204. package/node_modules/pi-subagents/src/runs/background/runner-aliases.js +11 -8
  205. package/node_modules/pi-subagents/src/runs/background/runner-aliases.js.map +1 -1
  206. package/node_modules/pi-subagents/src/runs/background/runner-child-launch.d.ts.map +1 -1
  207. package/node_modules/pi-subagents/src/runs/background/runner-child-launch.js +1 -0
  208. package/node_modules/pi-subagents/src/runs/background/runner-child-launch.js.map +1 -1
  209. package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.d.ts +3 -0
  210. package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.d.ts.map +1 -1
  211. package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.js +2 -0
  212. package/node_modules/pi-subagents/src/runs/background/runner-http-dispatcher.js.map +1 -1
  213. package/node_modules/pi-subagents/src/runs/background/scheduled-runs.d.ts +9 -0
  214. package/node_modules/pi-subagents/src/runs/background/scheduled-runs.d.ts.map +1 -1
  215. package/node_modules/pi-subagents/src/runs/background/scheduled-runs.js +124 -36
  216. package/node_modules/pi-subagents/src/runs/background/scheduled-runs.js.map +1 -1
  217. package/node_modules/pi-subagents/src/runs/background/subagent-runner-bootstrap.d.ts.map +1 -1
  218. package/node_modules/pi-subagents/src/runs/background/subagent-runner-bootstrap.js +5 -1
  219. package/node_modules/pi-subagents/src/runs/background/subagent-runner-bootstrap.js.map +1 -1
  220. package/node_modules/pi-subagents/src/runs/background/subagent-runner.d.ts +3 -1
  221. package/node_modules/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
  222. package/node_modules/pi-subagents/src/runs/background/subagent-runner.js +211 -283
  223. package/node_modules/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
  224. package/node_modules/pi-subagents/src/runs/background/subagent-wait.d.ts +2 -0
  225. package/node_modules/pi-subagents/src/runs/background/subagent-wait.d.ts.map +1 -1
  226. package/node_modules/pi-subagents/src/runs/background/subagent-wait.js +34 -20
  227. package/node_modules/pi-subagents/src/runs/background/subagent-wait.js.map +1 -1
  228. package/node_modules/pi-subagents/src/runs/background/terminal-run-index.d.ts +1 -0
  229. package/node_modules/pi-subagents/src/runs/background/terminal-run-index.d.ts.map +1 -1
  230. package/node_modules/pi-subagents/src/runs/background/terminal-run-index.js +47 -1
  231. package/node_modules/pi-subagents/src/runs/background/terminal-run-index.js.map +1 -1
  232. package/node_modules/pi-subagents/src/runs/background/wait-tool.d.ts.map +1 -1
  233. package/node_modules/pi-subagents/src/runs/background/wait-tool.js +36 -23
  234. package/node_modules/pi-subagents/src/runs/background/wait-tool.js.map +1 -1
  235. package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.d.ts +1 -1
  236. package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.d.ts.map +1 -1
  237. package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.js +12 -3
  238. package/node_modules/pi-subagents/src/runs/background/workflow-terminal-proof.js.map +1 -1
  239. package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.d.ts +7 -1
  240. package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.d.ts.map +1 -1
  241. package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.js +55 -32
  242. package/node_modules/pi-subagents/src/runs/foreground/async-stop-action.js.map +1 -1
  243. package/node_modules/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
  244. package/node_modules/pi-subagents/src/runs/foreground/execution.js +101 -79
  245. package/node_modules/pi-subagents/src/runs/foreground/execution.js.map +1 -1
  246. package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.d.ts +5 -1
  247. package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
  248. package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.js +184 -84
  249. package/node_modules/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
  250. package/node_modules/pi-subagents/src/runs/shared/child-hooks.js +6 -5
  251. package/node_modules/pi-subagents/src/runs/shared/child-hooks.js.map +1 -1
  252. package/node_modules/pi-subagents/src/runs/shared/child-launch.d.ts +2 -0
  253. package/node_modules/pi-subagents/src/runs/shared/child-launch.d.ts.map +1 -1
  254. package/node_modules/pi-subagents/src/runs/shared/child-launch.js +1 -0
  255. package/node_modules/pi-subagents/src/runs/shared/child-launch.js.map +1 -1
  256. package/node_modules/pi-subagents/src/runs/shared/child-session.d.ts +4 -0
  257. package/node_modules/pi-subagents/src/runs/shared/child-session.d.ts.map +1 -1
  258. package/node_modules/pi-subagents/src/runs/shared/child-session.js +28 -23
  259. package/node_modules/pi-subagents/src/runs/shared/child-session.js.map +1 -1
  260. package/node_modules/pi-subagents/src/runs/shared/child-tool-plan.d.ts.map +1 -1
  261. package/node_modules/pi-subagents/src/runs/shared/child-tool-plan.js +11 -10
  262. package/node_modules/pi-subagents/src/runs/shared/child-tool-plan.js.map +1 -1
  263. package/node_modules/pi-subagents/src/runs/shared/dynamic-fanout.js +1 -1
  264. package/node_modules/pi-subagents/src/runs/shared/dynamic-fanout.js.map +1 -1
  265. package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.d.ts +4 -4
  266. package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.d.ts.map +1 -1
  267. package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.js +5 -4
  268. package/node_modules/pi-subagents/src/runs/shared/effective-system-prompt.js.map +1 -1
  269. package/node_modules/pi-subagents/src/runs/shared/external-cli-runner.d.ts.map +1 -1
  270. package/node_modules/pi-subagents/src/runs/shared/external-cli-runner.js +3 -2
  271. package/node_modules/pi-subagents/src/runs/shared/external-cli-runner.js.map +1 -1
  272. package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.d.ts +1 -0
  273. package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.d.ts.map +1 -1
  274. package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.js +10 -6
  275. package/node_modules/pi-subagents/src/runs/shared/herdr-placed-run.js.map +1 -1
  276. package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.d.ts +17 -5
  277. package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.d.ts.map +1 -1
  278. package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.js +37 -10
  279. package/node_modules/pi-subagents/src/runs/shared/model-resolution-diagnostic.js.map +1 -1
  280. package/node_modules/pi-subagents/src/runs/shared/model-resolution.d.ts.map +1 -1
  281. package/node_modules/pi-subagents/src/runs/shared/model-resolution.js +29 -1
  282. package/node_modules/pi-subagents/src/runs/shared/model-resolution.js.map +1 -1
  283. package/node_modules/pi-subagents/src/runs/shared/nested-events.d.ts +2 -0
  284. package/node_modules/pi-subagents/src/runs/shared/nested-events.d.ts.map +1 -1
  285. package/node_modules/pi-subagents/src/runs/shared/nested-events.js +4 -0
  286. package/node_modules/pi-subagents/src/runs/shared/nested-events.js.map +1 -1
  287. package/node_modules/pi-subagents/src/runs/shared/orca-progress-tabs.js +1 -1
  288. package/node_modules/pi-subagents/src/runs/shared/orca-progress-tabs.js.map +1 -1
  289. package/node_modules/pi-subagents/src/runs/shared/parallel-handoff.js +2 -2
  290. package/node_modules/pi-subagents/src/runs/shared/parallel-handoff.js.map +1 -1
  291. package/node_modules/pi-subagents/src/runs/shared/parallel-utils.d.ts +2 -0
  292. package/node_modules/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
  293. package/node_modules/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
  294. package/node_modules/pi-subagents/src/runs/shared/partial-output.d.ts +7 -0
  295. package/node_modules/pi-subagents/src/runs/shared/partial-output.d.ts.map +1 -1
  296. package/node_modules/pi-subagents/src/runs/shared/partial-output.js +7 -0
  297. package/node_modules/pi-subagents/src/runs/shared/partial-output.js.map +1 -1
  298. package/node_modules/pi-subagents/src/runs/shared/runner-launcher.d.ts +12 -0
  299. package/node_modules/pi-subagents/src/runs/shared/runner-launcher.d.ts.map +1 -0
  300. package/node_modules/pi-subagents/src/runs/shared/runner-launcher.js +25 -0
  301. package/node_modules/pi-subagents/src/runs/shared/runner-launcher.js.map +1 -0
  302. package/node_modules/pi-subagents/src/runs/shared/single-output.d.ts +31 -1
  303. package/node_modules/pi-subagents/src/runs/shared/single-output.d.ts.map +1 -1
  304. package/node_modules/pi-subagents/src/runs/shared/single-output.js +100 -21
  305. package/node_modules/pi-subagents/src/runs/shared/single-output.js.map +1 -1
  306. package/node_modules/pi-subagents/src/runs/shared/structured-output.d.ts +2 -0
  307. package/node_modules/pi-subagents/src/runs/shared/structured-output.d.ts.map +1 -1
  308. package/node_modules/pi-subagents/src/runs/shared/structured-output.js +26 -8
  309. package/node_modules/pi-subagents/src/runs/shared/structured-output.js.map +1 -1
  310. package/node_modules/pi-subagents/src/runs/shared/subagent-control.js +3 -3
  311. package/node_modules/pi-subagents/src/runs/shared/subagent-control.js.map +1 -1
  312. package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts +37 -2
  313. package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.d.ts.map +1 -1
  314. package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.js +130 -22
  315. package/node_modules/pi-subagents/src/runs/shared/subagent-prompt-runtime.js.map +1 -1
  316. package/node_modules/pi-subagents/src/runs/shared/tool-budget.js +1 -1
  317. package/node_modules/pi-subagents/src/runs/shared/tool-budget.js.map +1 -1
  318. package/node_modules/pi-subagents/src/runs/shared/workflow-async-child-guidance.js +1 -1
  319. package/node_modules/pi-subagents/src/runs/shared/workflow-async-child-guidance.js.map +1 -1
  320. package/node_modules/pi-subagents/src/runs/shared/worktree-cleanup-plan.js +1 -1
  321. package/node_modules/pi-subagents/src/runs/shared/worktree-cleanup-plan.js.map +1 -1
  322. package/node_modules/pi-subagents/src/shared/atomic-json.d.ts +4 -3
  323. package/node_modules/pi-subagents/src/shared/atomic-json.d.ts.map +1 -1
  324. package/node_modules/pi-subagents/src/shared/atomic-json.js +3 -1
  325. package/node_modules/pi-subagents/src/shared/atomic-json.js.map +1 -1
  326. package/node_modules/pi-subagents/src/shared/child-transcript.js +1 -1
  327. package/node_modules/pi-subagents/src/shared/child-transcript.js.map +1 -1
  328. package/node_modules/pi-subagents/src/shared/edit-distance.d.ts +5 -0
  329. package/node_modules/pi-subagents/src/shared/edit-distance.d.ts.map +1 -0
  330. package/node_modules/pi-subagents/src/shared/edit-distance.js +33 -0
  331. package/node_modules/pi-subagents/src/shared/edit-distance.js.map +1 -0
  332. package/node_modules/pi-subagents/src/shared/extension-context.d.ts +5 -0
  333. package/node_modules/pi-subagents/src/shared/extension-context.d.ts.map +1 -1
  334. package/node_modules/pi-subagents/src/shared/extension-context.js +7 -0
  335. package/node_modules/pi-subagents/src/shared/extension-context.js.map +1 -1
  336. package/node_modules/pi-subagents/src/shared/formatters.d.ts.map +1 -1
  337. package/node_modules/pi-subagents/src/shared/formatters.js +1 -6
  338. package/node_modules/pi-subagents/src/shared/formatters.js.map +1 -1
  339. package/node_modules/pi-subagents/src/shared/model-info.d.ts +8 -0
  340. package/node_modules/pi-subagents/src/shared/model-info.d.ts.map +1 -1
  341. package/node_modules/pi-subagents/src/shared/model-info.js +22 -0
  342. package/node_modules/pi-subagents/src/shared/model-info.js.map +1 -1
  343. package/node_modules/pi-subagents/src/shared/package-version.d.ts +3 -0
  344. package/node_modules/pi-subagents/src/shared/package-version.d.ts.map +1 -0
  345. package/node_modules/pi-subagents/src/shared/package-version.js +15 -0
  346. package/node_modules/pi-subagents/src/shared/package-version.js.map +1 -0
  347. package/node_modules/pi-subagents/src/shared/parent-wake.d.ts +24 -0
  348. package/node_modules/pi-subagents/src/shared/parent-wake.d.ts.map +1 -0
  349. package/node_modules/pi-subagents/src/shared/parent-wake.js +71 -0
  350. package/node_modules/pi-subagents/src/shared/parent-wake.js.map +1 -0
  351. package/node_modules/pi-subagents/src/shared/pruned-fork.d.ts +1 -1
  352. package/node_modules/pi-subagents/src/shared/pruned-fork.d.ts.map +1 -1
  353. package/node_modules/pi-subagents/src/shared/pruned-fork.js +6 -0
  354. package/node_modules/pi-subagents/src/shared/pruned-fork.js.map +1 -1
  355. package/node_modules/pi-subagents/src/shared/runtime-module-path.d.ts +11 -0
  356. package/node_modules/pi-subagents/src/shared/runtime-module-path.d.ts.map +1 -0
  357. package/node_modules/pi-subagents/src/shared/runtime-module-path.js +17 -0
  358. package/node_modules/pi-subagents/src/shared/runtime-module-path.js.map +1 -0
  359. package/node_modules/pi-subagents/src/shared/types.d.ts +33 -10
  360. package/node_modules/pi-subagents/src/shared/types.d.ts.map +1 -1
  361. package/node_modules/pi-subagents/src/shared/types.js +7 -4
  362. package/node_modules/pi-subagents/src/shared/types.js.map +1 -1
  363. package/node_modules/pi-subagents/src/shared/utils.d.ts +2 -0
  364. package/node_modules/pi-subagents/src/shared/utils.d.ts.map +1 -1
  365. package/node_modules/pi-subagents/src/shared/utils.js +10 -7
  366. package/node_modules/pi-subagents/src/shared/utils.js.map +1 -1
  367. package/node_modules/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
  368. package/node_modules/pi-subagents/src/slash/slash-commands.js +21 -10
  369. package/node_modules/pi-subagents/src/slash/slash-commands.js.map +1 -1
  370. package/node_modules/pi-subagents/src/slash/subagents-admin.d.ts.map +1 -1
  371. package/node_modules/pi-subagents/src/slash/subagents-admin.js +3 -1
  372. package/node_modules/pi-subagents/src/slash/subagents-admin.js.map +1 -1
  373. package/node_modules/pi-subagents/src/tui/fleet-status.d.ts +5 -0
  374. package/node_modules/pi-subagents/src/tui/fleet-status.d.ts.map +1 -1
  375. package/node_modules/pi-subagents/src/tui/fleet-status.js +24 -3
  376. package/node_modules/pi-subagents/src/tui/fleet-status.js.map +1 -1
  377. package/node_modules/pi-subagents/src/tui/fleet-transcript.d.ts +2 -0
  378. package/node_modules/pi-subagents/src/tui/fleet-transcript.d.ts.map +1 -1
  379. package/node_modules/pi-subagents/src/tui/fleet-transcript.js +7 -2
  380. package/node_modules/pi-subagents/src/tui/fleet-transcript.js.map +1 -1
  381. package/node_modules/pi-subagents/src/tui/fleet.d.ts.map +1 -1
  382. package/node_modules/pi-subagents/src/tui/fleet.js +11 -6
  383. package/node_modules/pi-subagents/src/tui/fleet.js.map +1 -1
  384. package/node_modules/pi-subagents/src/tui/render.d.ts +2 -2
  385. package/node_modules/pi-subagents/src/tui/render.d.ts.map +1 -1
  386. package/node_modules/pi-subagents/src/tui/render.js +19 -17
  387. package/node_modules/pi-subagents/src/tui/render.js.map +1 -1
  388. package/node_modules/pi-subagents/src/tui/subagent-messages.d.ts +23 -0
  389. package/node_modules/pi-subagents/src/tui/subagent-messages.d.ts.map +1 -0
  390. package/node_modules/pi-subagents/src/tui/subagent-messages.js +270 -0
  391. package/node_modules/pi-subagents/src/tui/subagent-messages.js.map +1 -0
  392. package/node_modules/pi-subagents/src/watchdog/change-signature.d.ts.map +1 -1
  393. package/node_modules/pi-subagents/src/watchdog/change-signature.js +1 -3
  394. package/node_modules/pi-subagents/src/watchdog/change-signature.js.map +1 -1
  395. package/node_modules/pi-subagents/src/watchdog/register-main.d.ts.map +1 -1
  396. package/node_modules/pi-subagents/src/watchdog/register-main.js +1 -19
  397. package/node_modules/pi-subagents/src/watchdog/register-main.js.map +1 -1
  398. package/node_modules/pi-subagents/src/watchdog/render.d.ts +2 -10
  399. package/node_modules/pi-subagents/src/watchdog/render.d.ts.map +1 -1
  400. package/node_modules/pi-subagents/src/watchdog/render.js +1 -19
  401. package/node_modules/pi-subagents/src/watchdog/render.js.map +1 -1
  402. package/node_modules/pi-subagents/src/watchdog/tool-actions.js +2 -2
  403. package/node_modules/pi-subagents/src/watchdog/tool-actions.js.map +1 -1
  404. package/node_modules/pi-subagents/src/workflows/scripted-workflow.d.ts.map +1 -1
  405. package/node_modules/pi-subagents/src/workflows/scripted-workflow.js +33 -10
  406. package/node_modules/pi-subagents/src/workflows/scripted-workflow.js.map +1 -1
  407. package/node_modules/pi-subagents/src/workflows/workflow-resources.d.ts.map +1 -1
  408. package/node_modules/pi-subagents/src/workflows/workflow-resources.js +12 -0
  409. package/node_modules/pi-subagents/src/workflows/workflow-resources.js.map +1 -1
  410. package/package.json +3 -3
  411. package/src/artifacts/builder-handoff/assertBuilderHandoff.ts +0 -14
  412. package/src/artifacts/builder-handoff/schema.ts +0 -26
  413. package/src/maestro/instructions/getMaestroInstructions.ts +4 -2
  414. package/src/maestro/status/formatMaestroStatus.ts +0 -3
  415. package/src/tools/child/record-builder-handoff.ts +2 -10
  416. package/src/tools/main/resolve-escalations.ts +1 -1
  417. package/src/tools/main/resolve-findings.ts +1 -1
  418. package/src/tools/main/run-builder.ts +9 -49
  419. package/src/workflow/builder/completeBuilderPass.ts +4 -13
  420. package/src/workflow/builder/utils/getWorkflowEventByBuilderHandoff.ts +24 -0
  421. package/src/workflow/state/schema.ts +0 -3
  422. package/src/workflow/transitions.ts +0 -4
  423. package/src/workflow/verifier/completeVerifierPass.ts +3 -9
  424. package/src/workflow/{findings → verifier}/resolveFindings.ts +4 -12
  425. package/src/workflow/verifier/utils/getWorkflowEventByVerifierHandoff.ts +40 -0
  426. package/DESIGN_DECISIONS.md +0 -21
  427. package/node_modules/pi-subagents/src/runs/shared/run-history.d.ts +0 -67
  428. package/node_modules/pi-subagents/src/runs/shared/run-history.d.ts.map +0 -1
  429. package/node_modules/pi-subagents/src/runs/shared/run-history.js +0 -270
  430. package/node_modules/pi-subagents/src/runs/shared/run-history.js.map +0 -1
  431. /package/src/workflow/{escalation → builder}/resolveEscalations.ts +0 -0
package/ADR.md ADDED
@@ -0,0 +1,89 @@
1
+ # Architecture decision records
2
+
3
+ An Architecture Decision Record (ADR) explains an important architectural choice, its context, and its consequences.
4
+ This file contains one numbered record per decision.
5
+
6
+ Requirements and routine project rules belong in the [roadmap](ROADMAP.md) or other relevant documentation.
7
+
8
+ When a new decision replaces an accepted decision, add a new record, mark the earlier record as superseded, and link both records.
9
+
10
+ ## ADR-001: Keep the workflow independent of Git
11
+
12
+ ### Status
13
+
14
+ Accepted. Recorded date: 2026-10-07. Implemented in `0.6.0`.
15
+
16
+ ### Context
17
+
18
+ The previous workflow required Git and used checkpoints and automatic commits. The recorded reason for removing that approach was to simplify the project. Other evaluated alternatives were not recorded.
19
+
20
+ ### Decision
21
+
22
+ `Maestro` uses the Pi project directory and saved workflow phase. It does not require Git or create automatic commits.
23
+
24
+ The `verifier` checks live project files. The `owner` controls later Git use, pull requests, and merging.
25
+
26
+ ### Consequences
27
+
28
+ Workflow execution no longer depends on Git. Revision and commit fields were removed without migration or compatibility readers. Interrupted and older workflows require manual `owner` handling.
29
+
30
+ ### Evidence
31
+
32
+ [Commit deae41c](https://github.com/emilioSp/pi-maestro/commit/deae41ce66a3f2c76859209c44165e7ddd0f3a72), [Changelog 0.6.0](CHANGELOG.md#060), and [workflow completion](docs/workflow.md#workflow-completion).
33
+
34
+ ## ADR-002: Store escalation decisions in builder handoffs
35
+
36
+ ### Status
37
+
38
+ Accepted. Recorded date: 2026-10-08. Implemented in `0.7.0`.
39
+
40
+ ### Context
41
+
42
+ The previous approach stored `escalations` in standalone files and used singular resolution tools. The recorded reason for replacing it was to use the same storage, local ID, and batch decision model as `verifier` `findings`. Other evaluated alternatives were not recorded.
43
+
44
+ ### Decision
45
+
46
+ Numbered `builder` `handoffs` contain `escalation` questions and their `owner` resolutions. One call records all current answers. No parallel storage model is needed.
47
+
48
+ IDs restart at `E1` in each `handoff`. References include both IDs, such as `B1/E1`. Answers update only the active handoff's resolution fields.
49
+
50
+ ### Consequences
51
+
52
+ Standalone `escalation` storage and singular resolution tools were removed. Questions and decisions remain together in each numbered `builder` `handoff`.
53
+
54
+ There are no migration procedures, fallback readers, or deprecated aliases. `Artifact` versions remain `1.0.0` despite the breaking change.
55
+
56
+ ### Evidence
57
+
58
+ [Repository-only specification](.specs/20261008-132344-store-escalations-in-builder-handoffs/spec.md), [Commit dda6eb5](https://github.com/emilioSp/pi-maestro/commit/dda6eb5b3ab76ba175112c3c565c70be747d7344), and [escalation workflow](docs/workflow.md#escalations).
59
+
60
+ ## ADR-003: Route builder failures through owner escalations
61
+
62
+ ### Status
63
+
64
+ Accepted. Implemented.
65
+
66
+ ### Context
67
+
68
+ The `owner` must decide how work continues after a reportable technical problem.
69
+ The workflow also needs a simpler model with two `builder` outcomes.
70
+
71
+ ### Decision
72
+
73
+ The `builder` reports only `done` or `escalation`.
74
+ Reportable technical failures use the existing `escalation` process.
75
+ The `owner` decides how to proceed instead of reaching a terminal failure phase.
76
+
77
+ ### Consequences
78
+
79
+ Reuse the existing tools, numbered `handoffs`, and batch decisions.
80
+ Individual `probe` results retain `failed` as a valid value.
81
+
82
+ Execution and protocol errors without a valid saved result still stop the workflow.
83
+ This decision adds no automatic recovery.
84
+
85
+ This breaking MVP change has no migrations, compatibility readers, deprecated aliases, or dedicated legacy-format tests.
86
+
87
+ ### Evidence
88
+
89
+ [Specification](.specs/20261013-101454-route-builder-failures-through-owner-escalations/spec.md) and [R-03](ROADMAP.md#r-03-route-builder-failures-through-owner-escalations).
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  This file summarizes meaningful changes to the codebase, including behavior, data formats, architecture, and development tools. Git tags identify version boundaries; GitHub Releases are not required. Version-only changes and routine maintenance are omitted.
4
4
 
5
+ ## Unreleased
6
+
7
+ 1. Breaking: `builder` reports now support only `done` and `escalation`. Reportable technical problems use the existing `owner` `escalation` process.
8
+ 2. Removed the terminal `builder` failure phase and event. Execution errors and missing or invalid saved results still stop the workflow without automatic recovery.
9
+ 3. No migrations, compatibility readers, or deprecated aliases are provided. `Artifact` versions remain `1.0.0`.
10
+
5
11
  ## 0.7.3
6
12
 
7
13
  1. Added Oxlint rules for `given ... when ... then ...` test titles, `const` usage, unnecessary `else` branches, type aliases, and ESM imports. See [PR #31](https://github.com/emilioSp/pi-maestro/pull/31).
package/README.md CHANGED
@@ -83,7 +83,8 @@ If a `spec` change is needed during an `escalation` or `finding` decision, the `
83
83
 
84
84
  The workflow ends at `candidate-ready`. Rejected `findings` retain their reasons. Later changes are outside the completed verification. The `owner` controls any later Git use, pull request, and merge.
85
85
 
86
- The same `/maestro` command disables `Maestro` and leaves project files unchanged. Disabling `Maestro`, restarting Pi, or using `/resume` clears live session state. Saved files do not automatically restore or resume an incomplete workflow. The `owner` handles it manually.
86
+ The same `/maestro` command disables `Maestro` and leaves project files unchanged. Disabling `Maestro`, restarting Pi, or using `/resume` clears live session state.
87
+ Saved files do not automatically restore or resume an incomplete workflow. The `owner` handles it manually.
87
88
 
88
89
  ## Configuration
89
90
 
@@ -104,4 +105,4 @@ The reading order is:
104
105
  2. [Tech stack](TECH_STACK.md): runtime technologies and development tools.
105
106
  3. [Roadmap](ROADMAP.md): completed outcomes and planned priorities.
106
107
  4. [Changelog](CHANGELOG.md): meaningful codebase changes and breaking changes.
107
- 5. [Design decisions](DESIGN_DECISIONS.md): recorded choices, reasons, alternatives, and constraints.
108
+ 5. [Architecture decision records](ADR.md): architectural choices, context, consequences, and evidence.
package/ROADMAP.md CHANGED
@@ -10,35 +10,53 @@ Item identifiers remain stable when priorities change. The `owner` approves chan
10
10
 
11
11
  ### R-01: Improve status presentation and activation feedback
12
12
 
13
- The status bar uses phase icons, theme colors, and shortened `spec` IDs. Successful activation shows the configured `builder` and `verifier` settings without adding the notice to session history or model context. All 12 `acceptance criteria` passed with no `verifier` `findings`; the saved workflow reached `candidate-ready`.
13
+ The status bar uses phase icons, theme colors, and shortened `spec` IDs. Successful activation shows the configured `builder` and `verifier` settings without adding the notice to session history or model context. All 12 `acceptance criteria` passed with no `verifier` `findings`. The saved workflow reached `candidate-ready`.
14
14
 
15
- Evidence: [Specification](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/spec.md), [verifier report](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/handoffs/verifier/V1.json), and [merged PR #26](https://github.com/emilioSp/pi-maestro/pull/26).
15
+ #### Evidence
16
+
17
+ [Specification](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/spec.md), [verifier report](.specs/20261007-170438-update-maestro-status-bar-with-agent-models-theme-colors-and-phase-icons/handoffs/verifier/V1.json), and [merged PR #26](https://github.com/emilioSp/pi-maestro/pull/26).
16
18
 
17
19
  ### R-02: Store escalations and owner decisions in builder handoffs
18
20
 
19
- Numbered `builder` `handoffs` contain multiple `escalation` questions and their `owner` resolutions. The `owner` resolves all current questions in one batch, while earlier `handoffs` remain available as history. All 10 `acceptance criteria` passed with no `verifier` `findings`; the saved workflow reached `candidate-ready`.
21
+ Numbered `builder` `handoffs` contain multiple `escalation` questions and their `owner` resolutions. The `owner` resolves all current questions in one batch. Earlier `handoffs` remain available as history. All 10 `acceptance criteria` passed with no `verifier` `findings`. The saved workflow reached `candidate-ready`.
22
+
23
+ #### Evidence
20
24
 
21
- Evidence: [Specification](.specs/20261008-132344-store-escalations-in-builder-handoffs/spec.md), [verifier report](.specs/20261008-132344-store-escalations-in-builder-handoffs/handoffs/verifier/V1.json), and [merged PR #27](https://github.com/emilioSp/pi-maestro/pull/27).
25
+ [Specification](.specs/20261008-132344-store-escalations-in-builder-handoffs/spec.md), [verifier report](.specs/20261008-132344-store-escalations-in-builder-handoffs/handoffs/verifier/V1.json), and [merged PR #27](https://github.com/emilioSp/pi-maestro/pull/27).
22
26
 
23
27
  ### R-12: Format glossary terms consistently
24
28
 
25
29
  Applied glossary formatting across the documentation and recorded its exclusions in `AGENTS.md` and the documentation audit skill. The approved change document uses the term `spec`. The `owner` confirmed completion.
26
30
 
27
- Evidence: [Glossary](docs/glossary.md) and [workflow documentation](docs/workflow.md).
31
+ #### Evidence
28
32
 
29
- ## Now
33
+ [Glossary](docs/glossary.md) and [workflow documentation](docs/workflow.md).
30
34
 
31
- No current priority is selected.
35
+ ### R-15: Rename the test support directory
32
36
 
33
- ## Next
37
+ Renamed `test/` to `tests/` at the owner's request. Updated imports, fixture paths, lint configuration, and project instructions. This follows the global instruction to keep fixtures under `tests/fixtures`. Source tests remain next to their source files. Historical `handoffs` retain their recorded paths.
38
+
39
+ #### Evidence
40
+
41
+ [Test support](tests/support/), [fixtures](tests/fixtures/), [lint configuration](biome.json), and [project instructions](AGENTS.md#tests).
42
+
43
+ ## Now
34
44
 
35
45
  ### R-03: Route builder failures through owner escalations
36
46
 
37
- A technical `builder` failure currently ends the workflow in `builder-failed`. Replace the builder's `failed` `handoff` status and the `builder-failed` workflow phase with an `escalation`. The `owner` decides how to proceed through the existing `escalation` process.
47
+ #### Objective
48
+
49
+ The `builder` reports technical problems that prevent completion through the existing `escalation` process. The `owner` decides how to proceed.
50
+
51
+ The approved [specification](.specs/20261013-101454-route-builder-failures-through-owner-escalations/spec.md) is implemented.
52
+ Automatic recovery of interrupted `runs` remains outside this item.
38
53
 
39
- Complete when `builder` failures produce `owner` `escalations` instead of a terminal failure state. Individual checks retain `failed` as a valid result. Agent instructions, tools, workflow transitions, tests, and documentation must describe the same behavior.
54
+ #### Completed when
55
+
56
+ `Builder` failures produce `owner` `escalations` instead of a terminal failure state. Individual checks retain `failed` as a valid result. Agent instructions, tools, workflow transitions, tests, and documentation describe the same behavior.
57
+
58
+ ## Next
40
59
 
41
- Automatic recovery of interrupted `runs` is outside this item. No `specification` is approved yet.
42
60
 
43
61
  ## Later
44
62
 
@@ -46,44 +64,120 @@ These items need scope review before `specification` approval. Existing behavior
46
64
 
47
65
  ### R-04: Rename the npm package
48
66
 
67
+ #### Objective
68
+
49
69
  Rename `@emiliosp/pi-maestro` to `pi-maestro-sdd`. The `owner` installs the package under the new name. This item changes the package identity, not the development workflow.
50
70
 
51
- Complete when package metadata and installation documentation use the new name and the package is available under it. Compatibility with installations under the old name must be decided in the `specification`. No `specification` is approved yet.
71
+ Compatibility with installations under the old name must be decided in the `specification`. No `specification` is approved yet.
72
+
73
+ #### Completed when
74
+
75
+ Package metadata and installation documentation use the new name. The package is available under that name.
52
76
 
53
77
  ### R-05: Keep acceptance criterion numbering continuous
54
78
 
55
- When criteria are removed during `spec` preparation or revision, renumber the remaining criteria without gaps. Numbering starts at `AC1` and continues through the final criterion. Complete when the `spec` and its current references use consistent numbering.
79
+ #### Objective
80
+
81
+ When criteria are removed during `spec` preparation or revision, renumber the remaining criteria without gaps. Numbering starts at `AC1` and continues through the final criterion.
82
+
83
+ #### Completed when
84
+
85
+ The `spec` and its current references use consistent numbering.
56
86
 
57
87
  ### R-06: Check subagent extensions at activation
58
88
 
59
- Make extension availability problems visible before a `builder` or `verifier` `run` starts. Activation already checks agent launch requirements, so first identify any missing extension checks. Complete when unavailable required subagent extensions prevent activation and the error identifies the problem.
89
+ #### Objective
90
+
91
+ Make extension availability problems visible before a `builder` or `verifier` `run` starts. Activation already checks agent launch requirements, so first identify any missing extension checks.
92
+
93
+ #### Completed when
94
+
95
+ Unavailable required subagent extensions prevent activation. The error identifies the problem.
60
96
 
61
97
  ### R-07: Guide initial configuration
62
98
 
63
- Help the `owner` create `Maestro` configuration through an interview. `Maestro` asks questions and writes the agreed configuration. Complete when the `owner` can create a valid project configuration without writing the file manually.
99
+ #### Objective
100
+
101
+ Help the `owner` create `Maestro` configuration through an interview. `Maestro` asks questions and writes the agreed configuration.
102
+
103
+ #### Completed when
104
+
105
+ The `owner` can create a valid project configuration without writing the file manually.
64
106
 
65
107
  ### R-08: Change agent models before a builder run
66
108
 
67
- Let the `owner` change the `builder` and `verifier` models during `spec` preparation and the `ready-for-builder` phase. The selected models apply to subsequent `runs`. Complete when the `owner` can select available models in those phases and `Maestro` uses the selections.
109
+ #### Objective
110
+
111
+ Let the `owner` change the `builder` and `verifier` models during `spec` preparation and the `ready-for-builder` phase. The selected models apply to subsequent `runs`.
112
+
113
+ #### Completed when
114
+
115
+ The `owner` can select available models in those phases. `Maestro` uses the selections.
68
116
 
69
117
  ### R-09: Define workflow reconciliation
70
118
 
71
- Explore how `Maestro` can reconcile saved `artifacts` and workflow state. The recovery scope is not yet defined. The `owner` must define the intended outcome, recovery boundaries, and completion condition before this item can move forward.
119
+ #### Objective
120
+
121
+ Explore how `Maestro` can reconcile saved `artifacts` and workflow state. The recovery scope is not yet defined.
122
+
123
+ #### Completed when
124
+
125
+ Not yet defined. The `owner` must define the intended outcome, recovery boundaries, and completion condition before this item can move forward.
72
126
 
73
127
  ### R-10: Match handoff criteria to the approved spec
74
128
 
129
+ #### Objective
130
+
75
131
  Prevent `builder` and `verifier` reports from omitting or adding `acceptance criteria`. Each report must contain exactly the criterion IDs in the approved `spec`, with no duplicates in either place. Existing duplicate checks in reports do not establish this match.
76
132
 
77
- Complete when both `handoff` submissions reject missing, extra, or duplicate criterion IDs before saving a report or changing phase. The `specification` must define the criterion heading format used to extract IDs. For example, a heading can use `### AC1: ...`.
133
+ The `specification` must define the criterion heading format used to extract IDs. For example, a heading can use `### AC1: ...`.
134
+
135
+ #### Completed when
136
+
137
+ Both `handoff` submissions reject missing, extra, or duplicate criterion IDs before saving a report or changing phase.
78
138
 
79
139
  ### R-11: Reduce temporary verifier changes
80
140
 
141
+ #### Objective
142
+
81
143
  Reduce the risk that verification changes the `candidate`. Existing instructions already require exact restoration, cleanup, and reporting of unresolved restoration problems. Refine the remaining guidance rather than duplicate those rules.
82
144
 
83
- Prefer checks that leave existing files unchanged and use separate temporary files when possible. Change an existing file only when a criterion requires it, retain its exact contents, and restore it immediately after each `probe`, including failed `probes`. Prefer check-only commands over commands that apply automatic fixes.
145
+ Prefer checks that leave existing files unchanged and use separate temporary files when possible. Change an existing file only when a criterion requires it. Retain its exact contents and restore it immediately after each `probe`, including failed `probes`. Prefer check-only commands over commands that apply automatic fixes.
146
+
147
+ `Maestro` currently has no file-hash restoration check. Adding one requires a separate scope decision.
84
148
 
85
- Complete when `verifier` instructions cover these limits and require restoration and temporary-file cleanup before `handoff`. If restoration fails, the `verifier` must stop and report affected paths and remaining changes. `Maestro` currently has no file-hash restoration check; adding one requires a separate scope decision.
149
+ #### Completed when
150
+
151
+ `Verifier` instructions cover these limits and require restoration and temporary-file cleanup before `handoff`. If restoration fails, the `verifier` must stop and report affected paths and remaining changes.
86
152
 
87
153
  ### R-13: Show when Maestro is working
88
154
 
89
- Show an activity indicator in Pi's status bar while progress does not require an `owner` decision. A spinner is one option, not an agreed implementation. Complete when the status clearly distinguishes work in progress from a request for `owner` action.
155
+ #### Objective
156
+
157
+ Show an activity indicator in Pi's status bar while progress does not require an `owner` decision. A spinner is one option, not an agreed implementation.
158
+
159
+ #### Completed when
160
+
161
+ The status clearly distinguishes work in progress from a request for `owner` action.
162
+
163
+ ### R-14: Introduce Maestro at activation
164
+
165
+ #### Objective
166
+
167
+ When activated, `Maestro` gives a brief introduction and invites the `owner` to ask how it works, if interested. `Maestro` must have access to its own documentation to answer those questions.
168
+
169
+ #### Completed when
170
+
171
+ Activation includes this short introduction. `Maestro` can consult its documentation.
172
+
173
+ ### R-16: Verify code quality against AGENTS.md instructions
174
+
175
+ #### Objective
176
+
177
+ Add code-quality review against applicable `AGENTS.md` instructions as another `verifier` responsibility. Keep all existing responsibilities unchanged, including independent verification of every `acceptance criterion` in the approved `spec`. Code-quality review supplements that verification. It does not replace or reduce it.
178
+
179
+ Existing `verifier` instructions already require reading applicable `AGENTS.md` files and following technical rules. Extend that guidance to require explicit code-quality review and reporting of instruction violations. Do not introduce personal style preferences as requirements.
180
+
181
+ #### Completed when
182
+
183
+ The `verifier` performs both its existing verification duties and the additional code-quality review. Every `acceptance criterion` is still independently verified. Each code-quality `finding` about an instruction violation identifies the `AGENTS.md` file, quotes the violated instruction, and explains how the code violates it.
package/agents/builder.md CHANGED
@@ -45,6 +45,7 @@ Follow applicable repository commands and technical rules. Inspect scripts befor
45
45
  Do not edit `spec.md`, prototypes, `workflow.json`, or handoffs directly through any tool.
46
46
  Use `maestro_record_builder_handoff` for protocol changes. The tool supplies artifact paths and versions.
47
47
 
48
+ If a technical problem prevents completion and you can safely report it, stop implementation and submit an escalation. Use its fields for the reason, evidence, owner question, options, consequences, and next steps. The owner decides how work continues.
48
49
  If a significant discovery requires an owner choice, stop implementation and use the escalation outcome below.
49
50
  Examples include a spec conflict, undefined behavior, a material architectural alternative, scope changes, or verification and reversibility decisions.
50
51
  An escalation does not require a technical failure or blocker.
@@ -75,8 +76,7 @@ Before any terminal tool call, restore temporary verification changes and remove
75
76
  Choose the outcome from the actual result:
76
77
 
77
78
  1. `done`: Implementation and required checks are complete. Every criterion has `probeStatus: passed`. Call `maestro_record_builder_handoff` with `specId`, `status: done`, `summary`, `acceptanceCriteria`, `notes`, and `escalations: []`.
78
- 2. `escalation`: An owner decision is required. Call `maestro_record_builder_handoff` with `specId`, `status: escalation`, `summary`, every criterion result, `notes`, and all `escalations`. Assign sequential IDs in array order: `E1`, `E2`, and so on. Restart at `E1` for each handoff. Each entry contains `id`, `question`, `context`, `options`, `recommendation`, `notes`, and `resolution: null`. Include evidence in the context. Give each option an ID, description, consequences, and next step. Use `recommendation: null` unless evidence supports an option. Refer to questions with both IDs, such as `B1/E1`. Record actual probe results, including incomplete probes. All probes can pass when an owner decision remains necessary. Save one handoff and stop.
79
- 3. `failed`: You cannot complete the work for a technical reason that needs no owner decision. Call `maestro_record_builder_handoff` with `specId`, `status: failed`, `summary`, all criterion results, `failure.reason`, and `notes`. Report actual statuses, including `not-run` where applicable.
79
+ 2. `escalation`: An owner decision is required, including when a reportable technical problem prevents completion. Call `maestro_record_builder_handoff` with `specId`, `status: escalation`, `summary`, every criterion result, `notes`, and all `escalations`. Assign sequential IDs in array order: `E1`, `E2`, and so on. Restart at `E1` for each handoff. Each entry contains `id`, `question`, `context`, `options`, `recommendation`, `notes`, and `resolution: null`. Include evidence in the context. Give each option an ID, description, consequences, and next step. Use `recommendation: null` unless evidence supports an option. Refer to questions with both IDs, such as `B1/E1`. Record actual probe results, including incomplete probes. All probes can pass when an owner decision remains necessary or another required repository check prevents completion. Save one handoff and stop.
80
80
 
81
81
  After a successful terminal call, return the saved outcome and artifact path to Maestro. Stop the pass.
82
82
  Do not delete or replace earlier handoffs. Do not continue implementation after saving the result.
@@ -88,8 +88,6 @@ If a terminal call fails, inspect the error, current phase, and artifacts before
88
88
  If validation rejected the submission without writing it, correct the payload to match the tool schema and actual evidence.
89
89
  If the tool partially wrote an artifact or changed phase before an error, report it and stop. Do not resubmit.
90
90
  Never change honest statuses or omit criteria merely to make a payload pass validation.
91
- The tool rejects `failed` when a nonempty criterion list contains only `passed` probes.
92
- If another technical failure prevents completion in that case, report this protocol limitation to Maestro instead of falsifying criterion results.
93
91
  Do not delete a terminal artifact, edit workflow state, or use a different outcome to bypass an error.
94
92
  If cleanup or the protocol cannot be completed safely, report the exact blocker and remaining changes to Maestro and stop.
95
93
  Do not claim a saved result when the terminal call did not succeed.
package/docs/glossary.md CHANGED
@@ -14,10 +14,11 @@
14
14
  | `Expected result` | The observable result that a `probe` must produce. |
15
15
  | `Artifact` | A saved workflow file, such as a `spec`, or a `handoff` between agents. |
16
16
  | `Handoff` | A saved `builder` or `verifier` report with results, `probe` outcomes, and notes. |
17
+ | `Observability` | The owner's ability to inspect workflow progress and reported results. |
17
18
  | `Run` or `pass` | One execution of the `builder` or `verifier` with a fresh conversation. |
18
19
  | `Candidate` | The project files created by agents after a workflow `run` |
19
20
  | `Finding` | A technical issue that the `verifier` records for an `owner` decision. |
20
- | `Escalation` | An implementation question that the `builder` records in its `handoff` for an `owner` decision. |
21
+ | `Escalation` | An implementation question or reportable technical problem that the `builder` records in its `handoff` for an `owner` decision. |
21
22
  | `GREEN FLAG` | The owner's explicit reply that approves the current `spec` and starts the `builder`. |
22
23
  | `fix-code` | An `owner` decision that requests code fixes without changing the approved `spec`. |
23
24
  | `reject` | An `owner` decision that declines a `finding` and records a reason. It does not mean that verification passed. |
package/docs/workflow.md CHANGED
@@ -17,12 +17,25 @@ A `verifier` `handoff` can contain `findings`, which are technical issues.
17
17
  |---|---|
18
18
  | `Owner` | Decides requirements, scope, technical decisions, `spec` approval, `escalation` answers, and `finding` decisions. Performs the final review. |
19
19
  | `Maestro` | Prepares the `spec` with the `owner`, records workflow progress, runs agents, presents issues, and saves `owner` decisions. |
20
- | `Builder` | Implements the approved `spec` and runs every `probe`. Reports completion, an `escalation`, or a technical failure. |
20
+ | `Builder` | Implements the approved `spec` and runs every `probe`. Reports completion or an `escalation`, including technical problems that prevent completion. |
21
21
  | `Verifier` | Independently runs every `probe` against the live project files. Reports `findings` without repairing product code. |
22
22
 
23
23
  `Builder` and `verifier` `runs` are sequential foreground operations. Each starts with a fresh conversation and reads the `spec` and saved `artifacts`.
24
24
 
25
- Maestro's Pi status shows the current phase. `pi-subagents` FleetView and `/subagents-fleet` show live agent activity and transcripts.
25
+ ## Observability
26
+
27
+ `Observability` is the owner's ability to inspect workflow progress and reported results.
28
+
29
+ Maestro's Pi status shows the current phase.
30
+
31
+ `pi-subagents` FleetView and `/subagents-fleet` show live agent activity and transcripts.
32
+
33
+ Saved `handoffs` provide a structured account of each reported `run`.
34
+ The `builder` reports its outcome, `probe` results, notes, and any `escalation` questions.
35
+ The `verifier` reports its independent checks, results, and `findings`.
36
+ Recorded `owner` decisions explain how questions and issues were resolved. Earlier numbered reports remain available for inspection.
37
+
38
+ For example, the `owner` can read `B1.json` to see what the `builder` reports implementing and which `probes` it ran. `V1.json` shows what the `verifier` reports checking independently and which issues it found.
26
39
 
27
40
  ## Main flow
28
41
 
@@ -53,8 +66,6 @@ flowchart TD
53
66
  ownerEscalation -->|Spec changes| reviseSpec[Owner and Maestro revise the spec]
54
67
  reviseSpec --> approval
55
68
 
56
- buildOutcome -->|Failed| stopped[Workflow stops for manual owner follow-up]
57
-
58
69
  findings -->|One or more| ownerFindings[Owner decides every finding]
59
70
  ownerFindings -->|Reject all with reasons| candidate
60
71
  ownerFindings -->|Fix code| recordFixes[Maestro records the decisions]
@@ -64,7 +75,7 @@ flowchart TD
64
75
  candidate --> summary
65
76
  summary --> review
66
77
 
67
- linkStyle 0,1,2,3,4,5,17,18 stroke:#2e7d32,stroke-width:3px
78
+ linkStyle 0,1,2,3,4,5,16,17 stroke:#2e7d32,stroke-width:3px
68
79
  ```
69
80
 
70
81
  ## Workflow phases
@@ -79,7 +90,6 @@ The default path is `.specs/<spec-id>/workflow.json`. The `spec` directory is [c
79
90
  | `ready-for-builder` | The approved `spec` or recorded `owner` decisions permit a `builder` `run`. |
80
91
  | `builder-running` | A `builder` `run` is active. |
81
92
  | `escalation-decision` | The `owner` must decide how to handle every `escalation` question. |
82
- | `builder-failed` | The `builder` recorded a technical failure. The workflow stops. |
83
93
  | `ready-for-verifier` | The `builder` completed the work and the `verifier` can start. |
84
94
  | `verifier-running` | A `verifier` `run` is active. |
85
95
  | `findings-decision` | The `owner` must decide how to handle every current `finding`. |
@@ -110,7 +120,8 @@ Each criterion contains these parts:
110
120
 
111
121
  ## Escalations
112
122
 
113
- An `escalation` returns an implementation decision to the `owner`. It does not necessarily mean that a technical failure occurred. Examples include undefined behavior, a conflict with the `spec`, or a possible scope change.
123
+ An `escalation` returns an implementation decision or a technical problem to the `owner`.
124
+ For instance a technical failure, an undefined behavior, a conflict with the `spec`, or a possible scope change.
114
125
 
115
126
  The `builder` saves all questions from one `pass` in the `escalations` list of its numbered `handoff`. `Maestro` identifies each question with both report and `escalation` IDs, such as `B1/E1`. See [Escalation references](glossary.md#escalation-references) for their scope.
116
127
 
@@ -184,7 +195,10 @@ For example, a repair cycle with successful `builder` results produces these fil
184
195
 
185
196
  If the first `builder` `run` escalates, it creates `B1.json` with its questions. `Owner` answers update `B1.json`. The next saved `builder` result creates `B2.json`.
186
197
 
187
- A `builder` report with `status: failed` stops the workflow without a `verifier` `run`. If an agent returns without a valid saved result, `Maestro` stops and reports the error. See [Limitations](#limitations).
198
+ A `builder` report has `status: done` or `status: escalation`. A `done` report requires every recorded `probe` to pass and an empty `escalations` list.
199
+ An `escalation` retains actual `probe` results: `passed`, `failed`, or `not-run`.
200
+
201
+ Execution errors or missing or invalid saved results stop the workflow. See [Limitations](#limitations).
188
202
 
189
203
  The default layout after multiple `runs` is:
190
204
 
@@ -213,7 +227,9 @@ One example is `gpt-luna-6` with `thinking: "low"`.
213
227
  Moreover, the workflow works well with a defined harness: tests, lint for code rules, anti-slop checks for unwanted patterns, and `AGENTS.md`. `Maestro` does not supply these project-specific checks.
214
228
 
215
229
  ### No automatic rollback
216
- `Maestro` provides no automatic rollback, repair, or recovery for failed or interrupted workflows. The files that remain are available for `owner` inspection. The `owner` handles the workflow manually.
230
+ Launch errors, delegation failures, timeouts, interruptions, cancellations, and missing or invalid `handoffs` stop the workflow without a recovery transition.
231
+ If a `run` saves no completed transition, its saved running phase remains unchanged. Partial protocol writes require manual `owner` follow-up.
232
+ `Maestro` provides no automatic rollback, repair, or recovery for these errors. The files that remain are available for `owner` inspection.
217
233
 
218
234
  ### No reconciliation
219
235
  Disabling `Maestro`, restarting Pi, or using `/resume` clears live `Maestro` session state and leaves project files unchanged. `Maestro` starts disabled in a new or resumed session. Reactivating it does not reconstruct or resume a saved workflow.