agentic-orchestrator 0.1.27 → 0.2.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 (837) hide show
  1. package/.claude/settings.local.json +46 -1
  2. package/.cortexrc +28 -0
  3. package/.github/agents/copilot-instructions.md +29 -0
  4. package/.github/copilot-instructions.md +93 -0
  5. package/.vscode/settings.json +13 -0
  6. package/.vscode/tms.code-snippets +223 -0
  7. package/AGENTS.md +72 -1
  8. package/Agentic-Orchestrator.iml +12 -11
  9. package/CLAUDE.md +72 -1
  10. package/CONSTITUTION.md +504 -0
  11. package/FUTURE-ENHANCEMENTS.md +85 -0
  12. package/NEXT-TASKS.md +25 -0
  13. package/PROMPTS.md +161 -0
  14. package/README.md +126 -29
  15. package/agentic/orchestrator/agents.yaml +4 -3
  16. package/agentic/orchestrator/defaults/policy.defaults.yaml +39 -3
  17. package/agentic/orchestrator/gates.yaml +15 -3
  18. package/agentic/orchestrator/policy.yaml +47 -3
  19. package/agentic/orchestrator/prompts/builder.system.md +69 -20
  20. package/agentic/orchestrator/prompts/planner-intake.system.md +149 -0
  21. package/agentic/orchestrator/prompts/planner.system.md +113 -40
  22. package/agentic/orchestrator/prompts/qa.system.md +73 -18
  23. package/agentic/orchestrator/prompts/reconciler.system.md +119 -0
  24. package/agentic/orchestrator/schemas/agents.schema.json +89 -1
  25. package/agentic/orchestrator/schemas/execution-control.schema.json +242 -0
  26. package/agentic/orchestrator/schemas/index.schema.json +234 -0
  27. package/agentic/orchestrator/schemas/intake.review.schema.json +82 -0
  28. package/agentic/orchestrator/schemas/organizer-ordering-artifact.schema.json +75 -0
  29. package/agentic/orchestrator/schemas/plan.schema.json +44 -0
  30. package/agentic/orchestrator/schemas/policy.schema.json +238 -9
  31. package/agentic/orchestrator/schemas/policy.user.schema.json +129 -1
  32. package/agentic/orchestrator/schemas/spec.manifest.bootstrap.schema.json +101 -0
  33. package/agentic/orchestrator/schemas/spec.manifest.verified.schema.json +80 -0
  34. package/agentic/orchestrator/schemas/state.schema.json +298 -3
  35. package/agentic/orchestrator/tools/catalog.json +145 -15
  36. package/agentic/orchestrator/tools/schemas/input/doctor.run.input.schema.json +18 -0
  37. package/agentic/orchestrator/tools/schemas/input/evidence.latest.input.schema.json +4 -0
  38. package/agentic/orchestrator/tools/schemas/input/evidence.verify_chain.input.schema.json +13 -0
  39. package/agentic/orchestrator/tools/schemas/input/feature.intake_submit.input.schema.json +11 -0
  40. package/agentic/orchestrator/tools/schemas/input/feature.question_answer.input.schema.json +15 -0
  41. package/agentic/orchestrator/tools/schemas/input/feature.question_create.input.schema.json +21 -0
  42. package/agentic/orchestrator/tools/schemas/input/feature.question_list.input.schema.json +13 -0
  43. package/agentic/orchestrator/tools/schemas/input/feature.ready_to_merge.input.schema.json +5 -0
  44. package/agentic/orchestrator/tools/schemas/input/feature.send_message.input.schema.json +1 -1
  45. package/agentic/orchestrator/tools/schemas/input/replay.timeline_get.input.schema.json +32 -0
  46. package/agentic/orchestrator/tools/schemas/input/repo.conflict_abort.input.schema.json +16 -0
  47. package/agentic/orchestrator/tools/schemas/input/repo.conflict_files.input.schema.json +16 -0
  48. package/agentic/orchestrator/tools/schemas/input/repo.reconcile_mainline.input.schema.json +37 -0
  49. package/agentic/orchestrator/tools/schemas/input/repo.resolve_conflict.input.schema.json +40 -0
  50. package/agentic/orchestrator/tools/schemas/input/runtime.execution_request_list.input.schema.json +7 -0
  51. package/agentic/orchestrator/tools/schemas/input/runtime.execution_request_submit.input.schema.json +25 -0
  52. package/agentic/orchestrator/tools/schemas/output/doctor.run.output.schema.json +34 -0
  53. package/agentic/orchestrator/tools/schemas/output/evidence.verify_chain.output.schema.json +23 -0
  54. package/agentic/orchestrator/tools/schemas/output/feature.get_context.output.schema.json +62 -2
  55. package/agentic/orchestrator/tools/schemas/output/feature.intake_submit.output.schema.json +24 -0
  56. package/agentic/orchestrator/tools/schemas/output/feature.question_answer.output.schema.json +21 -0
  57. package/agentic/orchestrator/tools/schemas/output/feature.question_create.output.schema.json +12 -0
  58. package/agentic/orchestrator/tools/schemas/output/feature.question_list.output.schema.json +14 -0
  59. package/agentic/orchestrator/tools/schemas/output/feature.ready_to_merge.output.schema.json +31 -0
  60. package/agentic/orchestrator/tools/schemas/output/feature.send_message.output.schema.json +8 -18
  61. package/agentic/orchestrator/tools/schemas/output/replay.timeline_get.output.schema.json +64 -0
  62. package/agentic/orchestrator/tools/schemas/output/repo.conflict_abort.output.schema.json +16 -0
  63. package/agentic/orchestrator/tools/schemas/output/repo.conflict_files.output.schema.json +22 -0
  64. package/agentic/orchestrator/tools/schemas/output/repo.reconcile_mainline.output.schema.json +61 -0
  65. package/agentic/orchestrator/tools/schemas/output/repo.resolve_conflict.output.schema.json +19 -0
  66. package/agentic/orchestrator/tools/schemas/output/report.dashboard.output.schema.json +26 -0
  67. package/agentic/orchestrator/tools/schemas/output/runtime.execution_request_list.output.schema.json +17 -0
  68. package/agentic/orchestrator/tools/schemas/output/runtime.execution_request_submit.output.schema.json +24 -0
  69. package/agentic/orchestrator/tools.md +13 -0
  70. package/apps/control-plane/scripts/validate-mcp-contracts.ts +1 -1
  71. package/apps/control-plane/src/application/kernel-tool-wiring.ts +140 -2
  72. package/apps/control-plane/src/application/services/activity-monitor-service.ts +44 -1
  73. package/apps/control-plane/src/application/services/bootstrap-manifest-generator-service.ts +251 -0
  74. package/apps/control-plane/src/application/services/checkpoint-service.ts +87 -27
  75. package/apps/control-plane/src/application/services/collision-override-service.ts +906 -0
  76. package/apps/control-plane/src/application/services/collision-queue-service.ts +129 -38
  77. package/apps/control-plane/src/application/services/cost-tracking-service.ts +94 -0
  78. package/apps/control-plane/src/application/services/execution-control-service.ts +599 -0
  79. package/apps/control-plane/src/application/services/feature-deletion-service.ts +37 -1
  80. package/apps/control-plane/src/application/services/feature-lifecycle-service.ts +182 -4
  81. package/apps/control-plane/src/application/services/feature-send-message-service.ts +17 -8
  82. package/apps/control-plane/src/application/services/feature-state-service.ts +191 -6
  83. package/apps/control-plane/src/application/services/gate-service.ts +121 -2
  84. package/apps/control-plane/src/application/services/git-reconciliation-service.ts +1591 -0
  85. package/apps/control-plane/src/application/services/intake-service.ts +1468 -0
  86. package/apps/control-plane/src/application/services/merge-service.ts +308 -17
  87. package/apps/control-plane/src/application/services/notifier-service.ts +3 -1
  88. package/apps/control-plane/src/application/services/performance-analytics-service.ts +75 -0
  89. package/apps/control-plane/src/application/services/plan-service.ts +336 -20
  90. package/apps/control-plane/src/application/services/question-service.ts +693 -0
  91. package/apps/control-plane/src/application/services/reactions-service.ts +73 -17
  92. package/apps/control-plane/src/application/services/replay-timeline-service.ts +295 -0
  93. package/apps/control-plane/src/application/services/reporting-service.ts +194 -10
  94. package/apps/control-plane/src/application/services/run-lease-service.ts +121 -5
  95. package/apps/control-plane/src/application/services/worktree-watchdog-service.ts +95 -8
  96. package/apps/control-plane/src/application/tools/tool-metadata.ts +7 -0
  97. package/apps/control-plane/src/application/usage-types.ts +138 -0
  98. package/apps/control-plane/src/cli/add-command-handler.ts +162 -0
  99. package/apps/control-plane/src/cli/answer-command-handler.ts +113 -0
  100. package/apps/control-plane/src/cli/attach-command-handler.ts +12 -3
  101. package/apps/control-plane/src/cli/cli-argument-parser.ts +133 -11
  102. package/apps/control-plane/src/cli/collision-command-handler.ts +113 -0
  103. package/apps/control-plane/src/cli/command-catalog.ts +479 -0
  104. package/apps/control-plane/src/cli/complete-command-handler.ts +23 -0
  105. package/apps/control-plane/src/cli/completion-command-handler.ts +25 -0
  106. package/apps/control-plane/src/cli/completion-resolver.ts +319 -0
  107. package/apps/control-plane/src/cli/completion-shell-renderer.ts +58 -0
  108. package/apps/control-plane/src/cli/dashboard-command-handler.ts +110 -1
  109. package/apps/control-plane/src/cli/dashboard-runtime-runner.ts +1036 -0
  110. package/apps/control-plane/src/cli/dashboard-runtime.ts +31 -0
  111. package/apps/control-plane/src/cli/help-command-handler.ts +17 -185
  112. package/apps/control-plane/src/cli/init-command-handler.ts +51 -6
  113. package/apps/control-plane/src/cli/merge-command-handler.ts +200 -0
  114. package/apps/control-plane/src/cli/questions-command-handler.ts +70 -0
  115. package/apps/control-plane/src/cli/replay-command-handler.ts +98 -0
  116. package/apps/control-plane/src/cli/resume-command-handler.ts +252 -18
  117. package/apps/control-plane/src/cli/retry-command-handler.ts +229 -17
  118. package/apps/control-plane/src/cli/retry-resume-decision.ts +75 -0
  119. package/apps/control-plane/src/cli/rollback-command-handler.ts +4 -2
  120. package/apps/control-plane/src/cli/run-command-handler.ts +35 -1
  121. package/apps/control-plane/src/cli/spec-ingestion-service.ts +45 -55
  122. package/apps/control-plane/src/cli/spec-preparation.ts +114 -0
  123. package/apps/control-plane/src/cli/spec-utils.ts +90 -11
  124. package/apps/control-plane/src/cli/status-command-handler.ts +122 -0
  125. package/apps/control-plane/src/cli/types.ts +41 -3
  126. package/apps/control-plane/src/core/collisions.ts +150 -31
  127. package/apps/control-plane/src/core/constants.ts +18 -1
  128. package/apps/control-plane/src/core/error-codes.ts +39 -0
  129. package/apps/control-plane/src/core/execution-control.ts +56 -0
  130. package/apps/control-plane/src/core/feature-resume-phase.ts +118 -0
  131. package/apps/control-plane/src/core/gate-freshness.ts +359 -0
  132. package/apps/control-plane/src/core/gate-log-extractor.ts +97 -0
  133. package/apps/control-plane/src/core/gates.ts +90 -1
  134. package/apps/control-plane/src/core/intake-artifacts.ts +295 -0
  135. package/apps/control-plane/src/core/kernel-types.ts +11 -0
  136. package/apps/control-plane/src/core/kernel.ts +604 -16
  137. package/apps/control-plane/src/core/mainline-conflict.ts +22 -0
  138. package/apps/control-plane/src/core/merge-repair.ts +149 -0
  139. package/apps/control-plane/src/core/path-layout.ts +46 -2
  140. package/apps/control-plane/src/core/path-rules.ts +11 -3
  141. package/apps/control-plane/src/core/plan-submit-recovery.ts +130 -0
  142. package/apps/control-plane/src/core/questions.ts +49 -0
  143. package/apps/control-plane/src/core/runtime-sessions.ts +4 -0
  144. package/apps/control-plane/src/core/schemas.ts +40 -1
  145. package/apps/control-plane/src/core/tool-caller.ts +25 -1
  146. package/apps/control-plane/src/core/utils/index-normalizer.ts +25 -4
  147. package/apps/control-plane/src/core/worktree-diff.ts +66 -0
  148. package/apps/control-plane/src/index.ts +29 -1
  149. package/apps/control-plane/src/interfaces/cli/bootstrap.ts +300 -6
  150. package/apps/control-plane/src/mcp/kernel-tool-executor.ts +17 -0
  151. package/apps/control-plane/src/mcp/tool-runtime.ts +63 -4
  152. package/apps/control-plane/src/providers/api-worker-provider.ts +62 -15
  153. package/apps/control-plane/src/providers/cli-worker-provider.ts +1037 -61
  154. package/apps/control-plane/src/providers/output-parsers/generic-output-parser.ts +99 -1
  155. package/apps/control-plane/src/providers/output-parsers/types.ts +2 -0
  156. package/apps/control-plane/src/providers/provider-defaults.ts +116 -7
  157. package/apps/control-plane/src/providers/providers.ts +225 -21
  158. package/apps/control-plane/src/providers/worker-provider-factory.ts +26 -2
  159. package/apps/control-plane/src/supervisor/artifact-stager.ts +52 -0
  160. package/apps/control-plane/src/supervisor/build-wave-executor.ts +477 -166
  161. package/apps/control-plane/src/supervisor/execution-enrollment-service.ts +408 -0
  162. package/apps/control-plane/src/supervisor/organizer-enrollment-scheduler.ts +117 -0
  163. package/apps/control-plane/src/supervisor/organizer-sidecar-service.ts +394 -0
  164. package/apps/control-plane/src/supervisor/plan-conformance-scorer.ts +2 -5
  165. package/apps/control-plane/src/supervisor/planner-phase.ts +85 -0
  166. package/apps/control-plane/src/supervisor/planning-wave-executor.ts +993 -64
  167. package/apps/control-plane/src/supervisor/prompt-bundle-loader.ts +20 -1
  168. package/apps/control-plane/src/supervisor/qa-wave-executor.ts +384 -177
  169. package/apps/control-plane/src/supervisor/run-coordinator.ts +801 -43
  170. package/apps/control-plane/src/supervisor/runtime.ts +485 -9
  171. package/apps/control-plane/src/supervisor/session-orchestrator.ts +220 -1
  172. package/apps/control-plane/src/supervisor/types.ts +152 -1
  173. package/apps/control-plane/src/supervisor/worker-decision-loop.ts +1030 -92
  174. package/apps/control-plane/test/activity-monitor.spec.ts +76 -0
  175. package/apps/control-plane/test/add-command-handler.spec.ts +189 -0
  176. package/apps/control-plane/test/application/services/feature-state-service.spec.ts +208 -0
  177. package/apps/control-plane/test/artifact-stager.spec.ts +93 -0
  178. package/apps/control-plane/test/batch-operations.spec.ts +58 -0
  179. package/apps/control-plane/test/bootstrap-edge-cases.spec.ts +50 -2
  180. package/apps/control-plane/test/bootstrap-manifest-generator-service.spec.ts +99 -0
  181. package/apps/control-plane/test/bootstrap.spec.ts +177 -4
  182. package/apps/control-plane/test/checkpoint-service.spec.ts +977 -29
  183. package/apps/control-plane/test/cli-argument-parser.spec.ts +119 -0
  184. package/apps/control-plane/test/cli-helpers.spec.ts +1202 -12
  185. package/apps/control-plane/test/cli.unit.spec.ts +797 -16
  186. package/apps/control-plane/test/collision-command-handler.spec.ts +182 -0
  187. package/apps/control-plane/test/collision-override-service.spec.ts +878 -0
  188. package/apps/control-plane/test/collision-queue.spec.ts +430 -2
  189. package/apps/control-plane/test/collisions.spec.ts +209 -1
  190. package/apps/control-plane/test/core-utils.spec.ts +61 -0
  191. package/apps/control-plane/test/cost-tracking.spec.ts +224 -0
  192. package/apps/control-plane/test/dashboard-api.integration.spec.ts +185 -5
  193. package/apps/control-plane/test/dashboard-client.spec.ts +948 -0
  194. package/apps/control-plane/test/dashboard-command.spec.ts +138 -6
  195. package/apps/control-plane/test/dashboard-runtime-runner.spec.ts +1550 -0
  196. package/apps/control-plane/test/dashboard-runtime.spec.ts +138 -0
  197. package/apps/control-plane/test/dashboard-ui-utils.spec.ts +56 -12
  198. package/apps/control-plane/test/dependency-scheduler.spec.ts +7 -1
  199. package/apps/control-plane/test/env-file.spec.ts +76 -0
  200. package/apps/control-plane/test/execution-control-service.spec.ts +535 -0
  201. package/apps/control-plane/test/execution-enrollment-service.spec.ts +648 -0
  202. package/apps/control-plane/test/feature-lifecycle.spec.ts +126 -0
  203. package/apps/control-plane/test/feature-resume-phase.spec.ts +164 -0
  204. package/apps/control-plane/test/feature-send-message-service.spec.ts +161 -0
  205. package/apps/control-plane/test/feature-state-service.spec.ts +295 -0
  206. package/apps/control-plane/test/fs.spec.ts +80 -0
  207. package/apps/control-plane/test/gate-freshness.spec.ts +590 -0
  208. package/apps/control-plane/test/gate-log-extractor.spec.ts +170 -0
  209. package/apps/control-plane/test/gates.spec.ts +108 -0
  210. package/apps/control-plane/test/git-reconciliation-service.spec.ts +2307 -0
  211. package/apps/control-plane/test/helpers.ts +65 -0
  212. package/apps/control-plane/test/incremental-gates.spec.ts +271 -0
  213. package/apps/control-plane/test/index-normalizer.spec.ts +98 -0
  214. package/apps/control-plane/test/init-wizard.spec.ts +17 -0
  215. package/apps/control-plane/test/intake-artifacts.spec.ts +203 -0
  216. package/apps/control-plane/test/intake-service.spec.ts +3176 -0
  217. package/apps/control-plane/test/kernel-collision-replay.spec.ts +3 -2
  218. package/apps/control-plane/test/kernel-tool-executor.spec.ts +77 -0
  219. package/apps/control-plane/test/kernel-tool-wiring.spec.ts +279 -0
  220. package/apps/control-plane/test/kernel.branches.spec.ts +15 -2
  221. package/apps/control-plane/test/kernel.coverage.spec.ts +7 -3
  222. package/apps/control-plane/test/kernel.coverage2.spec.ts +731 -2
  223. package/apps/control-plane/test/kernel.spec.ts +464 -2
  224. package/apps/control-plane/test/mainline-conflict.spec.ts +66 -0
  225. package/apps/control-plane/test/mcp-helpers.spec.ts +79 -0
  226. package/apps/control-plane/test/mcp.spec.ts +177 -13
  227. package/apps/control-plane/test/merge-command-handler.spec.ts +531 -0
  228. package/apps/control-plane/test/merge-service.spec.ts +570 -4
  229. package/apps/control-plane/test/notifier-service.spec.ts +26 -0
  230. package/apps/control-plane/test/organizer-enrollment-scheduler.spec.ts +340 -0
  231. package/apps/control-plane/test/organizer-ordering-artifact.spec.ts +95 -0
  232. package/apps/control-plane/test/organizer-sidecar-service.spec.ts +468 -0
  233. package/apps/control-plane/test/output-loop-detector.spec.ts +6 -0
  234. package/apps/control-plane/test/path-layout.spec.ts +70 -0
  235. package/apps/control-plane/test/path-normalizers.spec.ts +41 -0
  236. package/apps/control-plane/test/performance-analytics.spec.ts +124 -0
  237. package/apps/control-plane/test/plan-conformance-scorer.spec.ts +53 -0
  238. package/apps/control-plane/test/plan-service.spec.ts +686 -4
  239. package/apps/control-plane/test/planning-wave-executor.spec.ts +3272 -86
  240. package/apps/control-plane/test/policy-loader-service.spec.ts +5 -0
  241. package/apps/control-plane/test/prompt-overlay.spec.ts +65 -0
  242. package/apps/control-plane/test/provider-command-runner-epipe.spec.ts +64 -0
  243. package/apps/control-plane/test/providers/api-worker-provider.spec.ts +129 -0
  244. package/apps/control-plane/test/providers/cli-worker-provider.spec.ts +148 -0
  245. package/apps/control-plane/test/providers/usage-types.spec.ts +98 -0
  246. package/apps/control-plane/test/providers.spec.ts +293 -16
  247. package/apps/control-plane/test/question-command-handlers.spec.ts +156 -0
  248. package/apps/control-plane/test/question-service.spec.ts +1119 -0
  249. package/apps/control-plane/test/reactions.spec.ts +114 -0
  250. package/apps/control-plane/test/replay-command-handler.spec.ts +144 -0
  251. package/apps/control-plane/test/replay-timeline-service.spec.ts +459 -0
  252. package/apps/control-plane/test/response.spec.ts +31 -0
  253. package/apps/control-plane/test/resume-command.spec.ts +786 -9
  254. package/apps/control-plane/test/retry-resume-decision.spec.ts +133 -0
  255. package/apps/control-plane/test/rollback-command-handler.spec.ts +334 -0
  256. package/apps/control-plane/test/rollback-command.spec.ts +120 -0
  257. package/apps/control-plane/test/run-coordinator.spec.ts +3141 -364
  258. package/apps/control-plane/test/schemas/state.schema.spec.ts +71 -0
  259. package/apps/control-plane/test/service-retry-paths.spec.ts +112 -0
  260. package/apps/control-plane/test/services.spec.ts +472 -2
  261. package/apps/control-plane/test/session-management.spec.ts +346 -1
  262. package/apps/control-plane/test/spec-ingestion.spec.ts +102 -28
  263. package/apps/control-plane/test/spec-preparation.spec.ts +182 -0
  264. package/apps/control-plane/test/supervisor-collaborators.spec.ts +191 -3
  265. package/apps/control-plane/test/supervisor.calltool.spec.ts +198 -0
  266. package/apps/control-plane/test/supervisor.spec.ts +95 -16
  267. package/apps/control-plane/test/supervisor.unit.spec.ts +385 -18
  268. package/apps/control-plane/test/tool-runtime.spec.ts +122 -0
  269. package/apps/control-plane/test/worker-decision-loop.spec.ts +3479 -476
  270. package/apps/control-plane/test/worker-execution-policy.spec.ts +1416 -6
  271. package/apps/control-plane/test/worker-provider-adapters.spec.ts +1894 -37
  272. package/apps/control-plane/test/worker-provider-factory.spec.ts +81 -0
  273. package/apps/control-plane/test/worktree-watchdog-service.spec.ts +125 -0
  274. package/apps/control-plane/vitest.config.ts +5 -0
  275. package/config/agentic/orchestrator/agents.yaml +23 -2
  276. package/config/agentic/orchestrator/gates.yaml +24 -7
  277. package/config/agentic/orchestrator/policy.yaml +23 -1
  278. package/config/agentic/orchestrator/prompts/builder.system.md +69 -20
  279. package/config/agentic/orchestrator/prompts/organizer.system.md +85 -0
  280. package/config/agentic/orchestrator/prompts/overrides/builder.claude.md +28 -0
  281. package/config/agentic/orchestrator/prompts/overrides/builder.codex.md +28 -0
  282. package/config/agentic/orchestrator/prompts/overrides/planner.claude.md +20 -0
  283. package/config/agentic/orchestrator/prompts/overrides/planner.codex.md +20 -0
  284. package/config/agentic/orchestrator/prompts/planner-intake.system.md +149 -0
  285. package/config/agentic/orchestrator/prompts/planner.system.md +113 -40
  286. package/config/agentic/orchestrator/prompts/qa.system.md +75 -18
  287. package/config/agentic/orchestrator/prompts/reconciler.system.md +119 -0
  288. package/dist/apps/control-plane/application/kernel-tool-wiring.d.ts +26 -2
  289. package/dist/apps/control-plane/application/kernel-tool-wiring.js +40 -2
  290. package/dist/apps/control-plane/application/kernel-tool-wiring.js.map +1 -1
  291. package/dist/apps/control-plane/application/services/activity-monitor-service.js +37 -1
  292. package/dist/apps/control-plane/application/services/activity-monitor-service.js.map +1 -1
  293. package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.d.ts +4 -0
  294. package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.js +188 -0
  295. package/dist/apps/control-plane/application/services/bootstrap-manifest-generator-service.js.map +1 -0
  296. package/dist/apps/control-plane/application/services/checkpoint-service.d.ts +5 -0
  297. package/dist/apps/control-plane/application/services/checkpoint-service.js +69 -24
  298. package/dist/apps/control-plane/application/services/checkpoint-service.js.map +1 -1
  299. package/dist/apps/control-plane/application/services/collision-override-service.d.ts +139 -0
  300. package/dist/apps/control-plane/application/services/collision-override-service.js +568 -0
  301. package/dist/apps/control-plane/application/services/collision-override-service.js.map +1 -0
  302. package/dist/apps/control-plane/application/services/collision-queue-service.d.ts +15 -0
  303. package/dist/apps/control-plane/application/services/collision-queue-service.js +92 -33
  304. package/dist/apps/control-plane/application/services/collision-queue-service.js.map +1 -1
  305. package/dist/apps/control-plane/application/services/cost-tracking-service.d.ts +11 -0
  306. package/dist/apps/control-plane/application/services/cost-tracking-service.js +75 -0
  307. package/dist/apps/control-plane/application/services/cost-tracking-service.js.map +1 -1
  308. package/dist/apps/control-plane/application/services/execution-control-service.d.ts +75 -0
  309. package/dist/apps/control-plane/application/services/execution-control-service.js +421 -0
  310. package/dist/apps/control-plane/application/services/execution-control-service.js.map +1 -0
  311. package/dist/apps/control-plane/application/services/feature-deletion-service.d.ts +1 -0
  312. package/dist/apps/control-plane/application/services/feature-deletion-service.js +23 -1
  313. package/dist/apps/control-plane/application/services/feature-deletion-service.js.map +1 -1
  314. package/dist/apps/control-plane/application/services/feature-lifecycle-service.d.ts +24 -1
  315. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js +132 -3
  316. package/dist/apps/control-plane/application/services/feature-lifecycle-service.js.map +1 -1
  317. package/dist/apps/control-plane/application/services/feature-send-message-service.js +16 -8
  318. package/dist/apps/control-plane/application/services/feature-send-message-service.js.map +1 -1
  319. package/dist/apps/control-plane/application/services/feature-state-service.d.ts +36 -0
  320. package/dist/apps/control-plane/application/services/feature-state-service.js +163 -6
  321. package/dist/apps/control-plane/application/services/feature-state-service.js.map +1 -1
  322. package/dist/apps/control-plane/application/services/gate-service.d.ts +2 -1
  323. package/dist/apps/control-plane/application/services/gate-service.js +95 -5
  324. package/dist/apps/control-plane/application/services/gate-service.js.map +1 -1
  325. package/dist/apps/control-plane/application/services/git-reconciliation-service.d.ts +92 -0
  326. package/dist/apps/control-plane/application/services/git-reconciliation-service.js +1097 -0
  327. package/dist/apps/control-plane/application/services/git-reconciliation-service.js.map +1 -0
  328. package/dist/apps/control-plane/application/services/intake-service.d.ts +63 -0
  329. package/dist/apps/control-plane/application/services/intake-service.js +1050 -0
  330. package/dist/apps/control-plane/application/services/intake-service.js.map +1 -0
  331. package/dist/apps/control-plane/application/services/merge-service.d.ts +5 -1
  332. package/dist/apps/control-plane/application/services/merge-service.js +233 -18
  333. package/dist/apps/control-plane/application/services/merge-service.js.map +1 -1
  334. package/dist/apps/control-plane/application/services/notifier-service.d.ts +1 -1
  335. package/dist/apps/control-plane/application/services/notifier-service.js +1 -0
  336. package/dist/apps/control-plane/application/services/notifier-service.js.map +1 -1
  337. package/dist/apps/control-plane/application/services/performance-analytics-service.d.ts +11 -0
  338. package/dist/apps/control-plane/application/services/performance-analytics-service.js +59 -0
  339. package/dist/apps/control-plane/application/services/performance-analytics-service.js.map +1 -1
  340. package/dist/apps/control-plane/application/services/plan-service.d.ts +5 -0
  341. package/dist/apps/control-plane/application/services/plan-service.js +254 -15
  342. package/dist/apps/control-plane/application/services/plan-service.js.map +1 -1
  343. package/dist/apps/control-plane/application/services/question-service.d.ts +72 -0
  344. package/dist/apps/control-plane/application/services/question-service.js +507 -0
  345. package/dist/apps/control-plane/application/services/question-service.js.map +1 -0
  346. package/dist/apps/control-plane/application/services/reactions-service.d.ts +2 -0
  347. package/dist/apps/control-plane/application/services/reactions-service.js +60 -17
  348. package/dist/apps/control-plane/application/services/reactions-service.js.map +1 -1
  349. package/dist/apps/control-plane/application/services/replay-timeline-service.d.ts +39 -0
  350. package/dist/apps/control-plane/application/services/replay-timeline-service.js +205 -0
  351. package/dist/apps/control-plane/application/services/replay-timeline-service.js.map +1 -0
  352. package/dist/apps/control-plane/application/services/reporting-service.d.ts +59 -0
  353. package/dist/apps/control-plane/application/services/reporting-service.js +121 -9
  354. package/dist/apps/control-plane/application/services/reporting-service.js.map +1 -1
  355. package/dist/apps/control-plane/application/services/run-lease-service.d.ts +20 -0
  356. package/dist/apps/control-plane/application/services/run-lease-service.js +81 -4
  357. package/dist/apps/control-plane/application/services/run-lease-service.js.map +1 -1
  358. package/dist/apps/control-plane/application/services/worktree-watchdog-service.d.ts +10 -0
  359. package/dist/apps/control-plane/application/services/worktree-watchdog-service.js +65 -8
  360. package/dist/apps/control-plane/application/services/worktree-watchdog-service.js.map +1 -1
  361. package/dist/apps/control-plane/application/tools/tool-metadata.js +7 -0
  362. package/dist/apps/control-plane/application/tools/tool-metadata.js.map +1 -1
  363. package/dist/apps/control-plane/application/usage-types.d.ts +65 -0
  364. package/dist/apps/control-plane/application/usage-types.js +75 -0
  365. package/dist/apps/control-plane/application/usage-types.js.map +1 -0
  366. package/dist/apps/control-plane/cli/add-command-handler.d.ts +18 -0
  367. package/dist/apps/control-plane/cli/add-command-handler.js +110 -0
  368. package/dist/apps/control-plane/cli/add-command-handler.js.map +1 -0
  369. package/dist/apps/control-plane/cli/answer-command-handler.d.ts +8 -0
  370. package/dist/apps/control-plane/cli/answer-command-handler.js +96 -0
  371. package/dist/apps/control-plane/cli/answer-command-handler.js.map +1 -0
  372. package/dist/apps/control-plane/cli/attach-command-handler.js +8 -3
  373. package/dist/apps/control-plane/cli/attach-command-handler.js.map +1 -1
  374. package/dist/apps/control-plane/cli/cli-argument-parser.js +131 -11
  375. package/dist/apps/control-plane/cli/cli-argument-parser.js.map +1 -1
  376. package/dist/apps/control-plane/cli/collision-command-handler.d.ts +8 -0
  377. package/dist/apps/control-plane/cli/collision-command-handler.js +90 -0
  378. package/dist/apps/control-plane/cli/collision-command-handler.js.map +1 -0
  379. package/dist/apps/control-plane/cli/command-catalog.d.ts +21 -0
  380. package/dist/apps/control-plane/cli/command-catalog.js +416 -0
  381. package/dist/apps/control-plane/cli/command-catalog.js.map +1 -0
  382. package/dist/apps/control-plane/cli/complete-command-handler.d.ts +15 -0
  383. package/dist/apps/control-plane/cli/complete-command-handler.js +26 -0
  384. package/dist/apps/control-plane/cli/complete-command-handler.js.map +1 -0
  385. package/dist/apps/control-plane/cli/completion-command-handler.d.ts +8 -0
  386. package/dist/apps/control-plane/cli/completion-command-handler.js +20 -0
  387. package/dist/apps/control-plane/cli/completion-command-handler.js.map +1 -0
  388. package/dist/apps/control-plane/cli/completion-resolver.d.ts +1 -0
  389. package/dist/apps/control-plane/cli/completion-resolver.js +250 -0
  390. package/dist/apps/control-plane/cli/completion-resolver.js.map +1 -0
  391. package/dist/apps/control-plane/cli/completion-shell-renderer.d.ts +3 -0
  392. package/dist/apps/control-plane/cli/completion-shell-renderer.js +53 -0
  393. package/dist/apps/control-plane/cli/completion-shell-renderer.js.map +1 -0
  394. package/dist/apps/control-plane/cli/dashboard-command-handler.d.ts +1 -0
  395. package/dist/apps/control-plane/cli/dashboard-command-handler.js +83 -1
  396. package/dist/apps/control-plane/cli/dashboard-command-handler.js.map +1 -1
  397. package/dist/apps/control-plane/cli/dashboard-runtime-runner.d.ts +81 -0
  398. package/dist/apps/control-plane/cli/dashboard-runtime-runner.js +724 -0
  399. package/dist/apps/control-plane/cli/dashboard-runtime-runner.js.map +1 -0
  400. package/dist/apps/control-plane/cli/dashboard-runtime.d.ts +1 -0
  401. package/dist/apps/control-plane/cli/dashboard-runtime.js +26 -0
  402. package/dist/apps/control-plane/cli/dashboard-runtime.js.map +1 -0
  403. package/dist/apps/control-plane/cli/help-command-handler.js +13 -172
  404. package/dist/apps/control-plane/cli/help-command-handler.js.map +1 -1
  405. package/dist/apps/control-plane/cli/init-command-handler.js +51 -6
  406. package/dist/apps/control-plane/cli/init-command-handler.js.map +1 -1
  407. package/dist/apps/control-plane/cli/merge-command-handler.d.ts +8 -0
  408. package/dist/apps/control-plane/cli/merge-command-handler.js +139 -0
  409. package/dist/apps/control-plane/cli/merge-command-handler.js.map +1 -0
  410. package/dist/apps/control-plane/cli/questions-command-handler.d.ts +8 -0
  411. package/dist/apps/control-plane/cli/questions-command-handler.js +59 -0
  412. package/dist/apps/control-plane/cli/questions-command-handler.js.map +1 -0
  413. package/dist/apps/control-plane/cli/replay-command-handler.d.ts +15 -0
  414. package/dist/apps/control-plane/cli/replay-command-handler.js +55 -0
  415. package/dist/apps/control-plane/cli/replay-command-handler.js.map +1 -0
  416. package/dist/apps/control-plane/cli/resume-command-handler.d.ts +2 -0
  417. package/dist/apps/control-plane/cli/resume-command-handler.js +196 -19
  418. package/dist/apps/control-plane/cli/resume-command-handler.js.map +1 -1
  419. package/dist/apps/control-plane/cli/retry-command-handler.js +202 -16
  420. package/dist/apps/control-plane/cli/retry-command-handler.js.map +1 -1
  421. package/dist/apps/control-plane/cli/retry-resume-decision.d.ts +26 -0
  422. package/dist/apps/control-plane/cli/retry-resume-decision.js +61 -0
  423. package/dist/apps/control-plane/cli/retry-resume-decision.js.map +1 -0
  424. package/dist/apps/control-plane/cli/rollback-command-handler.js +3 -2
  425. package/dist/apps/control-plane/cli/rollback-command-handler.js.map +1 -1
  426. package/dist/apps/control-plane/cli/run-command-handler.js +26 -2
  427. package/dist/apps/control-plane/cli/run-command-handler.js.map +1 -1
  428. package/dist/apps/control-plane/cli/spec-ingestion-service.d.ts +2 -0
  429. package/dist/apps/control-plane/cli/spec-ingestion-service.js +37 -48
  430. package/dist/apps/control-plane/cli/spec-ingestion-service.js.map +1 -1
  431. package/dist/apps/control-plane/cli/spec-preparation.d.ts +14 -0
  432. package/dist/apps/control-plane/cli/spec-preparation.js +81 -0
  433. package/dist/apps/control-plane/cli/spec-preparation.js.map +1 -0
  434. package/dist/apps/control-plane/cli/spec-utils.d.ts +4 -0
  435. package/dist/apps/control-plane/cli/spec-utils.js +70 -11
  436. package/dist/apps/control-plane/cli/spec-utils.js.map +1 -1
  437. package/dist/apps/control-plane/cli/status-command-handler.js +69 -0
  438. package/dist/apps/control-plane/cli/status-command-handler.js.map +1 -1
  439. package/dist/apps/control-plane/cli/types.d.ts +41 -4
  440. package/dist/apps/control-plane/cli/types.js +9 -1
  441. package/dist/apps/control-plane/cli/types.js.map +1 -1
  442. package/dist/apps/control-plane/core/collisions.d.ts +37 -19
  443. package/dist/apps/control-plane/core/collisions.js +87 -12
  444. package/dist/apps/control-plane/core/collisions.js.map +1 -1
  445. package/dist/apps/control-plane/core/constants.d.ts +17 -1
  446. package/dist/apps/control-plane/core/constants.js +18 -1
  447. package/dist/apps/control-plane/core/constants.js.map +1 -1
  448. package/dist/apps/control-plane/core/error-codes.d.ts +39 -0
  449. package/dist/apps/control-plane/core/error-codes.js +39 -0
  450. package/dist/apps/control-plane/core/error-codes.js.map +1 -1
  451. package/dist/apps/control-plane/core/execution-control.d.ts +45 -0
  452. package/dist/apps/control-plane/core/execution-control.js +2 -0
  453. package/dist/apps/control-plane/core/execution-control.js.map +1 -0
  454. package/dist/apps/control-plane/core/feature-resume-phase.d.ts +3 -0
  455. package/dist/apps/control-plane/core/feature-resume-phase.js +88 -0
  456. package/dist/apps/control-plane/core/feature-resume-phase.js.map +1 -0
  457. package/dist/apps/control-plane/core/gate-freshness.d.ts +48 -0
  458. package/dist/apps/control-plane/core/gate-freshness.js +267 -0
  459. package/dist/apps/control-plane/core/gate-freshness.js.map +1 -0
  460. package/dist/apps/control-plane/core/gate-log-extractor.d.ts +22 -0
  461. package/dist/apps/control-plane/core/gate-log-extractor.js +66 -0
  462. package/dist/apps/control-plane/core/gate-log-extractor.js.map +1 -0
  463. package/dist/apps/control-plane/core/gates.d.ts +11 -2
  464. package/dist/apps/control-plane/core/gates.js +67 -3
  465. package/dist/apps/control-plane/core/gates.js.map +1 -1
  466. package/dist/apps/control-plane/core/intake-artifacts.d.ts +109 -0
  467. package/dist/apps/control-plane/core/intake-artifacts.js +143 -0
  468. package/dist/apps/control-plane/core/intake-artifacts.js.map +1 -0
  469. package/dist/apps/control-plane/core/kernel-types.d.ts +8 -0
  470. package/dist/apps/control-plane/core/kernel.d.ts +256 -8
  471. package/dist/apps/control-plane/core/kernel.js +400 -14
  472. package/dist/apps/control-plane/core/kernel.js.map +1 -1
  473. package/dist/apps/control-plane/core/mainline-conflict.d.ts +7 -0
  474. package/dist/apps/control-plane/core/mainline-conflict.js +20 -0
  475. package/dist/apps/control-plane/core/mainline-conflict.js.map +1 -0
  476. package/dist/apps/control-plane/core/merge-repair.d.ts +35 -0
  477. package/dist/apps/control-plane/core/merge-repair.js +99 -0
  478. package/dist/apps/control-plane/core/merge-repair.js.map +1 -0
  479. package/dist/apps/control-plane/core/path-layout.d.ts +10 -0
  480. package/dist/apps/control-plane/core/path-layout.js +32 -2
  481. package/dist/apps/control-plane/core/path-layout.js.map +1 -1
  482. package/dist/apps/control-plane/core/path-rules.js +9 -3
  483. package/dist/apps/control-plane/core/path-rules.js.map +1 -1
  484. package/dist/apps/control-plane/core/plan-submit-recovery.d.ts +22 -0
  485. package/dist/apps/control-plane/core/plan-submit-recovery.js +78 -0
  486. package/dist/apps/control-plane/core/plan-submit-recovery.js.map +1 -0
  487. package/dist/apps/control-plane/core/questions.d.ts +40 -0
  488. package/dist/apps/control-plane/core/questions.js +2 -0
  489. package/dist/apps/control-plane/core/questions.js.map +1 -0
  490. package/dist/apps/control-plane/core/runtime-sessions.d.ts +4 -0
  491. package/dist/apps/control-plane/core/schemas.d.ts +2 -0
  492. package/dist/apps/control-plane/core/schemas.js +31 -1
  493. package/dist/apps/control-plane/core/schemas.js.map +1 -1
  494. package/dist/apps/control-plane/core/tool-caller.d.ts +18 -1
  495. package/dist/apps/control-plane/core/utils/index-normalizer.js +17 -4
  496. package/dist/apps/control-plane/core/utils/index-normalizer.js.map +1 -1
  497. package/dist/apps/control-plane/core/worktree-diff.d.ts +4 -0
  498. package/dist/apps/control-plane/core/worktree-diff.js +52 -0
  499. package/dist/apps/control-plane/core/worktree-diff.js.map +1 -0
  500. package/dist/apps/control-plane/index.d.ts +10 -2
  501. package/dist/apps/control-plane/index.js +9 -2
  502. package/dist/apps/control-plane/index.js.map +1 -1
  503. package/dist/apps/control-plane/interfaces/cli/bootstrap.js +236 -6
  504. package/dist/apps/control-plane/interfaces/cli/bootstrap.js.map +1 -1
  505. package/dist/apps/control-plane/mcp/kernel-tool-executor.js +16 -0
  506. package/dist/apps/control-plane/mcp/kernel-tool-executor.js.map +1 -1
  507. package/dist/apps/control-plane/mcp/tool-runtime.d.ts +5 -0
  508. package/dist/apps/control-plane/mcp/tool-runtime.js +40 -5
  509. package/dist/apps/control-plane/mcp/tool-runtime.js.map +1 -1
  510. package/dist/apps/control-plane/providers/api-worker-provider.d.ts +2 -2
  511. package/dist/apps/control-plane/providers/api-worker-provider.js +40 -9
  512. package/dist/apps/control-plane/providers/api-worker-provider.js.map +1 -1
  513. package/dist/apps/control-plane/providers/cli-worker-provider.d.ts +59 -3
  514. package/dist/apps/control-plane/providers/cli-worker-provider.js +758 -46
  515. package/dist/apps/control-plane/providers/cli-worker-provider.js.map +1 -1
  516. package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js +91 -1
  517. package/dist/apps/control-plane/providers/output-parsers/generic-output-parser.js.map +1 -1
  518. package/dist/apps/control-plane/providers/output-parsers/types.d.ts +2 -0
  519. package/dist/apps/control-plane/providers/provider-defaults.d.ts +12 -0
  520. package/dist/apps/control-plane/providers/provider-defaults.js +103 -7
  521. package/dist/apps/control-plane/providers/provider-defaults.js.map +1 -1
  522. package/dist/apps/control-plane/providers/providers.d.ts +50 -4
  523. package/dist/apps/control-plane/providers/providers.js +145 -14
  524. package/dist/apps/control-plane/providers/providers.js.map +1 -1
  525. package/dist/apps/control-plane/providers/worker-provider-factory.d.ts +2 -0
  526. package/dist/apps/control-plane/providers/worker-provider-factory.js +8 -1
  527. package/dist/apps/control-plane/providers/worker-provider-factory.js.map +1 -1
  528. package/dist/apps/control-plane/supervisor/artifact-stager.d.ts +5 -0
  529. package/dist/apps/control-plane/supervisor/artifact-stager.js +45 -0
  530. package/dist/apps/control-plane/supervisor/artifact-stager.js.map +1 -0
  531. package/dist/apps/control-plane/supervisor/build-wave-executor.d.ts +24 -1
  532. package/dist/apps/control-plane/supervisor/build-wave-executor.js +362 -150
  533. package/dist/apps/control-plane/supervisor/build-wave-executor.js.map +1 -1
  534. package/dist/apps/control-plane/supervisor/execution-enrollment-service.d.ts +41 -0
  535. package/dist/apps/control-plane/supervisor/execution-enrollment-service.js +311 -0
  536. package/dist/apps/control-plane/supervisor/execution-enrollment-service.js.map +1 -0
  537. package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.d.ts +15 -0
  538. package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.js +93 -0
  539. package/dist/apps/control-plane/supervisor/organizer-enrollment-scheduler.js.map +1 -0
  540. package/dist/apps/control-plane/supervisor/organizer-sidecar-service.d.ts +44 -0
  541. package/dist/apps/control-plane/supervisor/organizer-sidecar-service.js +311 -0
  542. package/dist/apps/control-plane/supervisor/organizer-sidecar-service.js.map +1 -0
  543. package/dist/apps/control-plane/supervisor/plan-conformance-scorer.js +2 -5
  544. package/dist/apps/control-plane/supervisor/plan-conformance-scorer.js.map +1 -1
  545. package/dist/apps/control-plane/supervisor/planner-phase.d.ts +3 -0
  546. package/dist/apps/control-plane/supervisor/planner-phase.js +70 -0
  547. package/dist/apps/control-plane/supervisor/planner-phase.js.map +1 -0
  548. package/dist/apps/control-plane/supervisor/planning-wave-executor.d.ts +42 -0
  549. package/dist/apps/control-plane/supervisor/planning-wave-executor.js +753 -55
  550. package/dist/apps/control-plane/supervisor/planning-wave-executor.js.map +1 -1
  551. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js +19 -1
  552. package/dist/apps/control-plane/supervisor/prompt-bundle-loader.js.map +1 -1
  553. package/dist/apps/control-plane/supervisor/qa-wave-executor.d.ts +21 -0
  554. package/dist/apps/control-plane/supervisor/qa-wave-executor.js +287 -156
  555. package/dist/apps/control-plane/supervisor/qa-wave-executor.js.map +1 -1
  556. package/dist/apps/control-plane/supervisor/run-coordinator.d.ts +33 -1
  557. package/dist/apps/control-plane/supervisor/run-coordinator.js +631 -39
  558. package/dist/apps/control-plane/supervisor/run-coordinator.js.map +1 -1
  559. package/dist/apps/control-plane/supervisor/runtime.d.ts +84 -0
  560. package/dist/apps/control-plane/supervisor/runtime.js +393 -3
  561. package/dist/apps/control-plane/supervisor/runtime.js.map +1 -1
  562. package/dist/apps/control-plane/supervisor/session-orchestrator.d.ts +54 -0
  563. package/dist/apps/control-plane/supervisor/session-orchestrator.js +176 -1
  564. package/dist/apps/control-plane/supervisor/session-orchestrator.js.map +1 -1
  565. package/dist/apps/control-plane/supervisor/types.d.ts +142 -1
  566. package/dist/apps/control-plane/supervisor/types.js.map +1 -1
  567. package/dist/apps/control-plane/supervisor/worker-decision-loop.d.ts +68 -2
  568. package/dist/apps/control-plane/supervisor/worker-decision-loop.js +723 -89
  569. package/dist/apps/control-plane/supervisor/worker-decision-loop.js.map +1 -1
  570. package/docs/core/ARCHITECTURE.md +227 -0
  571. package/docs/core/DECISIONS.md +94 -0
  572. package/docs/core/DOMAIN-LOGIC.md +60 -0
  573. package/docs/core/PATTERNS.md +201 -0
  574. package/docs/core/TROUBLESHOOTING.md +347 -0
  575. package/docs/core/intentgraph-dependencies.json +39860 -0
  576. package/docs/core/intentgraph.index.json +46580 -0
  577. package/docs/plans/2026-03-10-gate-failure-targeted-repair-design.md +224 -0
  578. package/docs/plans/2026-03-10-gate-failure-targeted-repair.md +1032 -0
  579. package/docs/superpowers/plans/2026-03-16-provider-cli-config.md +743 -0
  580. package/docs/superpowers/plans/2026-03-23-reconcile-divergence-fix.md +777 -0
  581. package/docs/superpowers/plans/2026-03-28-ordering-agent-implementation.md +1754 -0
  582. package/docs/superpowers/plans/2026-03-29-drop-zone-and-provider-optimization.md +1108 -0
  583. package/docs/superpowers/plans/2026-03-29-merge-target-feature-branch.md +685 -0
  584. package/docs/superpowers/plans/2026-03-29-organizer-sidecar-runtime-loop.md +1289 -0
  585. package/docs/superpowers/specs/2026-03-23-reconcile-divergence-fix-design.md +118 -0
  586. package/docs/superpowers/specs/2026-03-28-ordering-agent-spec-audit-design.md +50 -0
  587. package/docs/superpowers/specs/2026-03-29-drop-zone-and-provider-optimization-design.md +254 -0
  588. package/docs/superpowers/specs/2026-03-29-merge-target-feature-branch-design.md +152 -0
  589. package/docs/superpowers/specs/2026-03-29-organizer-sidecar-runtime-loop-design.md +225 -0
  590. package/package.json +3 -2
  591. package/packages/web-dashboard/package.json +2 -1
  592. package/packages/web-dashboard/src/app/analytics/page.tsx +36 -2
  593. package/packages/web-dashboard/src/app/api/actions/route.ts +274 -63
  594. package/packages/web-dashboard/src/app/api/actions/status/route.ts +35 -0
  595. package/packages/web-dashboard/src/app/api/analytics/provider/route.ts +18 -0
  596. package/packages/web-dashboard/src/app/api/collisions/approve/route.ts +58 -0
  597. package/packages/web-dashboard/src/app/api/features/[id]/checkpoint-diff/route.ts +36 -0
  598. package/packages/web-dashboard/src/app/api/features/[id]/checkpoints/route.ts +29 -0
  599. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/abort/route.ts +29 -0
  600. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/files/route.ts +30 -0
  601. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/resolve/route.ts +51 -0
  602. package/packages/web-dashboard/src/app/api/features/[id]/conflicts/route.ts +75 -0
  603. package/packages/web-dashboard/src/app/api/features/[id]/diff/route.ts +16 -2
  604. package/packages/web-dashboard/src/app/api/features/[id]/files/route.ts +26 -0
  605. package/packages/web-dashboard/src/app/api/features/[id]/gate-history/route.ts +27 -0
  606. package/packages/web-dashboard/src/app/api/features/[id]/genealogy/route.ts +26 -0
  607. package/packages/web-dashboard/src/app/api/features/[id]/history/run/[runId]/route.ts +20 -0
  608. package/packages/web-dashboard/src/app/api/features/[id]/history/runs/route.ts +34 -0
  609. package/packages/web-dashboard/src/app/api/features/[id]/intake-workspace/route.ts +20 -0
  610. package/packages/web-dashboard/src/app/api/features/[id]/live-output/route.ts +74 -0
  611. package/packages/web-dashboard/src/app/api/features/[id]/plan/amend/route.ts +21 -0
  612. package/packages/web-dashboard/src/app/api/features/[id]/plan-progress/route.ts +20 -0
  613. package/packages/web-dashboard/src/app/api/features/[id]/planner-artifacts/[artifact]/route.ts +78 -0
  614. package/packages/web-dashboard/src/app/api/features/[id]/planner-lifecycle/route.ts +20 -0
  615. package/packages/web-dashboard/src/app/api/features/[id]/planning-workspace/route.ts +20 -0
  616. package/packages/web-dashboard/src/app/api/features/[id]/questions/[questionId]/answer/route.ts +27 -0
  617. package/packages/web-dashboard/src/app/api/features/[id]/questions/route.ts +18 -0
  618. package/packages/web-dashboard/src/app/api/features/[id]/review/route.ts +14 -7
  619. package/packages/web-dashboard/src/app/api/features/[id]/route.ts +57 -2
  620. package/packages/web-dashboard/src/app/api/features/[id]/spec/route.ts +30 -0
  621. package/packages/web-dashboard/src/app/api/features/[id]/triage/route.ts +83 -0
  622. package/packages/web-dashboard/src/app/api/features/[id]/worker-events/route.ts +40 -0
  623. package/packages/web-dashboard/src/app/api/launch/preview/route.ts +86 -0
  624. package/packages/web-dashboard/src/app/api/launch/submit/route.ts +180 -0
  625. package/packages/web-dashboard/src/app/api/mainline/status/route.ts +74 -0
  626. package/packages/web-dashboard/src/app/api/merge-queue/route.ts +13 -0
  627. package/packages/web-dashboard/src/app/api/policy/budget/route.ts +14 -0
  628. package/packages/web-dashboard/src/app/api/projects/route.ts +11 -7
  629. package/packages/web-dashboard/src/app/api/reconciler/queue/route.ts +47 -0
  630. package/packages/web-dashboard/src/app/api/run/route.ts +26 -2
  631. package/packages/web-dashboard/src/app/api/runtime/events/route.ts +227 -0
  632. package/packages/web-dashboard/src/app/api/runtime/operations/route.ts +269 -0
  633. package/packages/web-dashboard/src/app/api/runtime/questions/route.ts +11 -0
  634. package/packages/web-dashboard/src/app/api/runtime/runs/route.ts +80 -0
  635. package/packages/web-dashboard/src/app/api/status/route.ts +4 -2
  636. package/packages/web-dashboard/src/app/feature/[id]/page.tsx +32 -42
  637. package/packages/web-dashboard/src/app/globals.css +34 -3
  638. package/packages/web-dashboard/src/app/launch/page.tsx +357 -0
  639. package/packages/web-dashboard/src/app/layout.tsx +23 -1
  640. package/packages/web-dashboard/src/app/page.tsx +263 -272
  641. package/packages/web-dashboard/src/components/dashboard/attention-strip.tsx +52 -0
  642. package/packages/web-dashboard/src/components/dashboard/collision-approval-drawer.tsx +185 -0
  643. package/packages/web-dashboard/src/components/dashboard/command-center-header.tsx +102 -0
  644. package/packages/web-dashboard/src/components/dashboard/mainline-status-banner.tsx +84 -0
  645. package/packages/web-dashboard/src/components/dashboard/merged-archive.tsx +36 -0
  646. package/packages/web-dashboard/src/components/dashboard/prioritized-queues.tsx +98 -0
  647. package/packages/web-dashboard/src/components/dashboard/reconciler-queue-card.tsx +115 -0
  648. package/packages/web-dashboard/src/components/dashboard/secondary-diagnostics-rail.tsx +48 -0
  649. package/packages/web-dashboard/src/components/dashboard/task-filter-bar.tsx +74 -0
  650. package/packages/web-dashboard/src/components/dashboard/triage-drawer.tsx +455 -0
  651. package/packages/web-dashboard/src/components/diff-viewer.tsx +19 -3
  652. package/packages/web-dashboard/src/components/evidence-viewer.tsx +65 -51
  653. package/packages/web-dashboard/src/components/feature-card.tsx +90 -7
  654. package/packages/web-dashboard/src/components/feature-cost-panel.tsx +112 -11
  655. package/packages/web-dashboard/src/components/feature-list-view.tsx +25 -4
  656. package/packages/web-dashboard/src/components/features/runtime-inspector/EventsTimelineView.tsx +260 -0
  657. package/packages/web-dashboard/src/components/features/runtime-inspector/OperationsListView.tsx +172 -0
  658. package/packages/web-dashboard/src/components/features/runtime-inspector/RuntimeInspectorPanel.tsx +896 -0
  659. package/packages/web-dashboard/src/components/filter-bar.tsx +7 -39
  660. package/packages/web-dashboard/src/components/focus/ActionableRiskList.tsx +46 -0
  661. package/packages/web-dashboard/src/components/focus/AgentRolePerformanceCard.tsx +200 -0
  662. package/packages/web-dashboard/src/components/focus/BlockedGuidanceBanner.tsx +149 -0
  663. package/packages/web-dashboard/src/components/focus/CheckpointInspector.tsx +123 -0
  664. package/packages/web-dashboard/src/components/focus/CheckpointRail.tsx +118 -0
  665. package/packages/web-dashboard/src/components/focus/CheckpointScrubber.tsx +249 -0
  666. package/packages/web-dashboard/src/components/focus/CollisionApprovalBanner.tsx +192 -0
  667. package/packages/web-dashboard/src/components/focus/CollisionRadar.tsx +136 -0
  668. package/packages/web-dashboard/src/components/focus/ConflictStatusCard.tsx +52 -0
  669. package/packages/web-dashboard/src/components/focus/ContextSidebar.tsx +108 -0
  670. package/packages/web-dashboard/src/components/focus/DiagnosisPanel.tsx +68 -0
  671. package/packages/web-dashboard/src/components/focus/FeatureDecisionBanner.tsx +68 -0
  672. package/packages/web-dashboard/src/components/focus/FeatureQuestionAnswerPanel.tsx +167 -0
  673. package/packages/web-dashboard/src/components/focus/FocusHeader.tsx +54 -0
  674. package/packages/web-dashboard/src/components/focus/FocusLayout.tsx +283 -0
  675. package/packages/web-dashboard/src/components/focus/GateFlakinessSummary.tsx +144 -0
  676. package/packages/web-dashboard/src/components/focus/GenealogyTree.tsx +34 -0
  677. package/packages/web-dashboard/src/components/focus/HeroBlock.tsx +67 -0
  678. package/packages/web-dashboard/src/components/focus/LiveAgentConsole.tsx +277 -0
  679. package/packages/web-dashboard/src/components/focus/MergeQueueCard.tsx +78 -0
  680. package/packages/web-dashboard/src/components/focus/OperationalSummaryCard.tsx +227 -0
  681. package/packages/web-dashboard/src/components/focus/PinnedActions.tsx +96 -0
  682. package/packages/web-dashboard/src/components/focus/PlanAmendmentPanel.tsx +250 -0
  683. package/packages/web-dashboard/src/components/focus/PlanProgressPanel.tsx +133 -0
  684. package/packages/web-dashboard/src/components/focus/PlannerArtifactViewer.tsx +158 -0
  685. package/packages/web-dashboard/src/components/focus/PlannerLifecycleHeader.tsx +141 -0
  686. package/packages/web-dashboard/src/components/focus/ProgressSnapshotCard.tsx +113 -0
  687. package/packages/web-dashboard/src/components/focus/RecentMaterialChanges.tsx +69 -0
  688. package/packages/web-dashboard/src/components/focus/RoleLogViewer.tsx +436 -0
  689. package/packages/web-dashboard/src/components/focus/RunHistoryBrowser.tsx +62 -0
  690. package/packages/web-dashboard/src/components/focus/SpecViewer.tsx +172 -0
  691. package/packages/web-dashboard/src/components/focus/TabBar.tsx +33 -0
  692. package/packages/web-dashboard/src/components/focus/UsageBurnChart.tsx +212 -0
  693. package/packages/web-dashboard/src/components/focus/VerificationSummaryCard.tsx +122 -0
  694. package/packages/web-dashboard/src/components/focus/tabs/ChangesTab.tsx +325 -0
  695. package/packages/web-dashboard/src/components/focus/tabs/ConflictsTab.tsx +395 -0
  696. package/packages/web-dashboard/src/components/focus/tabs/GatesQaTab.tsx +38 -0
  697. package/packages/web-dashboard/src/components/focus/tabs/HistoryTab.tsx +213 -0
  698. package/packages/web-dashboard/src/components/focus/tabs/IntakeTab.tsx +429 -0
  699. package/packages/web-dashboard/src/components/focus/tabs/OverviewTab.tsx +217 -0
  700. package/packages/web-dashboard/src/components/focus/tabs/PlanningTab.tsx +390 -0
  701. package/packages/web-dashboard/src/components/focus/tabs/ReviewTab.tsx +497 -0
  702. package/packages/web-dashboard/src/components/focus/tabs/RuntimeTab.tsx +213 -0
  703. package/packages/web-dashboard/src/components/focus/tabs/TranscriptTab.tsx +315 -0
  704. package/packages/web-dashboard/src/components/gate-results.tsx +2 -2
  705. package/packages/web-dashboard/src/components/human-input-panel.tsx +33 -57
  706. package/packages/web-dashboard/src/components/kanban-board.tsx +4 -0
  707. package/packages/web-dashboard/src/components/launch/launch-draft-card.tsx +131 -0
  708. package/packages/web-dashboard/src/components/plan-viewer.tsx +147 -69
  709. package/packages/web-dashboard/src/components/quick-launch-panel.tsx +20 -47
  710. package/packages/web-dashboard/src/components/summary-bar.tsx +30 -76
  711. package/packages/web-dashboard/src/lib/aop-client.ts +2484 -36
  712. package/packages/web-dashboard/src/lib/blocked-state-guidance.ts +475 -0
  713. package/packages/web-dashboard/src/lib/collision-radar.ts +136 -0
  714. package/packages/web-dashboard/src/lib/dashboard-action-states.ts +204 -0
  715. package/packages/web-dashboard/src/lib/dashboard-runtime-client.ts +439 -0
  716. package/packages/web-dashboard/src/lib/dashboard-utils.ts +179 -18
  717. package/packages/web-dashboard/src/lib/drop-zone-utils.ts +92 -0
  718. package/packages/web-dashboard/src/lib/focus-detail-derivations.ts +958 -0
  719. package/packages/web-dashboard/src/lib/focus-view.ts +300 -0
  720. package/packages/web-dashboard/src/lib/health-diagnosis.ts +356 -0
  721. package/packages/web-dashboard/src/lib/launch-contracts.ts +77 -0
  722. package/packages/web-dashboard/src/lib/launch-markdown.ts +107 -0
  723. package/packages/web-dashboard/src/lib/launch-page-preview.ts +89 -0
  724. package/packages/web-dashboard/src/lib/live-feed.ts +1 -1
  725. package/packages/web-dashboard/src/lib/multi-project-config.ts +33 -0
  726. package/packages/web-dashboard/src/lib/orchestrator-tools.ts +845 -59
  727. package/packages/web-dashboard/src/lib/planner-workspace.ts +1285 -0
  728. package/packages/web-dashboard/src/lib/review-contracts.ts +5 -3
  729. package/packages/web-dashboard/src/lib/runtime-files.ts +285 -0
  730. package/packages/web-dashboard/src/lib/tool-catalog.ts +51 -0
  731. package/packages/web-dashboard/src/lib/types.ts +731 -3
  732. package/packages/web-dashboard/src/lib/usage-burn.ts +175 -0
  733. package/packages/web-dashboard/src/lib/worktree-diff.ts +128 -0
  734. package/packages/web-dashboard/src/styles/dashboard.module.css +1742 -459
  735. package/packages/web-dashboard/test/api/actions/route.spec.ts +675 -0
  736. package/packages/web-dashboard/test/api/features/diff.route.spec.ts +57 -0
  737. package/packages/web-dashboard/test/api/features/feature.route.spec.ts +99 -0
  738. package/packages/web-dashboard/test/api/features/live-output.route.spec.ts +123 -0
  739. package/packages/web-dashboard/test/api/features/plan-amend.route.spec.ts +95 -0
  740. package/packages/web-dashboard/test/api/features/planner-workspaces.route.spec.ts +162 -0
  741. package/packages/web-dashboard/test/api/features/question-answer.route.spec.ts +99 -0
  742. package/packages/web-dashboard/test/api/features/triage.route.spec.ts +195 -0
  743. package/packages/web-dashboard/test/api/launch/preview.route.spec.ts +149 -0
  744. package/packages/web-dashboard/test/api/launch/submit.route.spec.ts +382 -0
  745. package/packages/web-dashboard/test/api/runtime/events/route.spec.ts +164 -0
  746. package/packages/web-dashboard/test/api/runtime/operations/route.spec.ts +156 -0
  747. package/packages/web-dashboard/test/api/runtime/runs/route.spec.ts +112 -0
  748. package/packages/web-dashboard/test/components/changes-tab.spec.tsx +76 -0
  749. package/packages/web-dashboard/test/components/command-center-root.spec.tsx +87 -0
  750. package/packages/web-dashboard/test/components/diagnosis-panel.spec.tsx +59 -0
  751. package/packages/web-dashboard/test/components/feature-card.spec.tsx +45 -0
  752. package/packages/web-dashboard/test/components/focus-layout.spec.tsx +299 -0
  753. package/packages/web-dashboard/test/components/gate-results.spec.tsx +39 -0
  754. package/packages/web-dashboard/test/components/gates-qa-tab.spec.tsx +118 -0
  755. package/packages/web-dashboard/test/components/human-input-panel.spec.tsx +54 -0
  756. package/packages/web-dashboard/test/components/intake-tab.spec.tsx +210 -0
  757. package/packages/web-dashboard/test/components/kanban-board.spec.tsx +35 -0
  758. package/packages/web-dashboard/test/components/launch-draft-card.spec.tsx +54 -0
  759. package/packages/web-dashboard/test/components/launch-page.spec.tsx +79 -0
  760. package/packages/web-dashboard/test/components/overview-tab.spec.tsx +236 -0
  761. package/packages/web-dashboard/test/components/planning-tab.spec.tsx +202 -0
  762. package/packages/web-dashboard/test/components/review-tab.spec.tsx +169 -0
  763. package/packages/web-dashboard/test/components/role-log-viewer.spec.ts +42 -0
  764. package/packages/web-dashboard/test/components/runtime-inspector.spec.tsx +22 -0
  765. package/packages/web-dashboard/test/components/runtime-tab.spec.tsx +133 -0
  766. package/packages/web-dashboard/test/components/transcript-tab.spec.tsx +46 -0
  767. package/packages/web-dashboard/test/components/triage-drawer.spec.tsx +159 -0
  768. package/packages/web-dashboard/test/lib/aop-client.spec.ts +235 -0
  769. package/packages/web-dashboard/test/lib/dashboard-runtime-client.spec.ts +144 -0
  770. package/packages/web-dashboard/test/lib/focus-detail-derivations.spec.ts +314 -0
  771. package/packages/web-dashboard/test/lib/focus-view.spec.ts +248 -0
  772. package/packages/web-dashboard/test/lib/health-diagnosis.spec.ts +277 -0
  773. package/packages/web-dashboard/test/lib/launch-markdown.spec.ts +36 -0
  774. package/packages/web-dashboard/test/lib/multi-project-config.spec.ts +54 -0
  775. package/packages/web-dashboard/test/lib/orchestrator-tools.spec.ts +352 -0
  776. package/packages/web-dashboard/test/lib/planner-workspace.spec.ts +289 -0
  777. package/packages/web-dashboard/test/lib/worktree-diff.spec.ts +119 -0
  778. package/packages/web-dashboard/vitest.config.ts +2 -0
  779. package/spec-files/completed/agentic_orchestrator_add_feature_to_active_execution_spec.md +557 -0
  780. package/spec-files/completed/agentic_orchestrator_dashboard_command_center_redesign_spec.md +1147 -0
  781. package/spec-files/completed/agentic_orchestrator_execution_mode_spec.md +18 -16
  782. package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_a_spec.md +672 -0
  783. package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_b_spec.md +794 -0
  784. package/spec-files/completed/agentic_orchestrator_feature_focus_view_track_c_decision_centric_remediation_spec.md +1037 -0
  785. package/spec-files/completed/agentic_orchestrator_feature_focus_view_ux_redesign_spec.md +1432 -0
  786. package/spec-files/completed/agentic_orchestrator_focus_plan_tab_intake_planning_workspace_spec.md +921 -0
  787. package/spec-files/completed/agentic_orchestrator_intentional_collision_override_spec.md +584 -0
  788. package/spec-files/completed/agentic_orchestrator_interactive_planning_intake_and_requirements_verification_spec.md +1185 -0
  789. package/spec-files/completed/agentic_orchestrator_reactive_execution_enrollment_spec.md +864 -0
  790. package/spec-files/{outstanding → completed}/agentic_orchestrator_runtime_inspection_spec.md +92 -19
  791. package/spec-files/completed/agentic_orchestrator_scope_aware_run_lease_spec.md +408 -0
  792. package/spec-files/completed/git-reconciliation-engine.md +827 -0
  793. package/spec-files/outstanding/agentic_orchestrator_dashboard_quick_launch_and_control_surface_spec.md +331 -0
  794. package/spec-files/outstanding/agentic_orchestrator_enterprise_governance_dashboard_spec.md +16 -6
  795. package/spec-files/outstanding/agentic_orchestrator_evidence_integrity_doctor_spec.md +60 -9
  796. package/spec-files/outstanding/agentic_orchestrator_focus_plan_tab_execution_contract_workspace_spec.md +616 -0
  797. package/spec-files/outstanding/agentic_orchestrator_headless_standby_dashboard_runtime_spec.md +310 -0
  798. package/spec-files/outstanding/agentic_orchestrator_human_input_interaction_protocol_spec.md +175 -72
  799. package/spec-files/outstanding/agentic_orchestrator_interactive_rename_cleanup_spec.md +197 -0
  800. package/spec-files/outstanding/agentic_orchestrator_interactive_resume_and_reconciliation_disposition_spec.md +412 -0
  801. package/spec-files/outstanding/agentic_orchestrator_knowledge_canary_spec.md +166 -137
  802. package/spec-files/outstanding/agentic_orchestrator_observability_replay_spec.md +3 -3
  803. package/spec-files/outstanding/agentic_orchestrator_phase_specific_agent_profiles_and_token_telemetry_spec.md +303 -0
  804. package/spec-files/outstanding/agentic_orchestrator_planning_review_quality_spec.md +18 -5
  805. package/spec-files/outstanding/agentic_orchestrator_policy_stratification_spec.md +225 -0
  806. package/spec-files/outstanding/agentic_orchestrator_quality_adoption_execution_spec.md +77 -50
  807. package/spec-files/outstanding/agentic_orchestrator_ready_to_merge_branch_handoff_spec.md +724 -0
  808. package/spec-files/outstanding/agentic_orchestrator_remove_deterministic_mode_spec.md +263 -0
  809. package/spec-files/outstanding/agentic_orchestrator_request_more_context_and_dashboard_human_input_spec.md +456 -0
  810. package/spec-files/outstanding/agentic_orchestrator_spec_coverage_and_reconciliation_enforcement_spec.md +1411 -0
  811. package/spec-files/outstanding/agentic_orchestrator_spec_ordering_agent_spec.md +370 -0
  812. package/spec-files/outstanding/shadow_workspace_implementation_spec.md +1 -1
  813. package/spec-files/progress.md +2045 -87
  814. package/specs/001-runtime-inspection/checklists/requirements.md +35 -0
  815. package/specs/001-runtime-inspection/design.md +338 -0
  816. package/specs/001-runtime-inspection/spec.md +95 -0
  817. package/specs/002-scope-aware-lease/checklists/requirements.md +35 -0
  818. package/specs/002-scope-aware-lease/contracts/lease-registry.schema.json +101 -0
  819. package/specs/002-scope-aware-lease/data-model.md +236 -0
  820. package/specs/002-scope-aware-lease/plan.md +766 -0
  821. package/specs/002-scope-aware-lease/quickstart.md +150 -0
  822. package/specs/002-scope-aware-lease/research.md +135 -0
  823. package/specs/002-scope-aware-lease/spec.md +128 -0
  824. package/specs/002-scope-aware-lease/tasks.md +767 -0
  825. package/tsconfig.json +1 -1
  826. package/vitest.config.ts +28 -0
  827. package/ARCHITECTURE_ADHERENCE_ANALYSIS.md +0 -871
  828. package/packages/web-dashboard/next-env.d.ts +0 -6
  829. package/packages/web-dashboard/src/components/detail-panel.tsx +0 -1124
  830. package/packages/web-dashboard/src/components/review-workspace.tsx +0 -1162
  831. /package/spec-files/{outstanding → completed}/agentic_orchestrator_artifact_database_publishing_spec.md +0 -0
  832. /package/spec-files/{outstanding → completed}/agentic_orchestrator_cli_shell_tab_completion_spec.md +0 -0
  833. /package/spec-files/{outstanding → completed}/agentic_orchestrator_dashboard_diff_and_agent_console_spec.md +0 -0
  834. /package/spec-files/{outstanding → completed}/agentic_orchestrator_performance_improvements_spec.md +0 -0
  835. /package/spec-files/{outstanding → completed}/agentic_orchestrator_persistent_worker_runtime_spec.md +0 -0
  836. /package/spec-files/{outstanding → completed}/agentic_orchestrator_provider_auth_bootstrap_spec.md +0 -0
  837. /package/spec-files/{outstanding → completed}/agentic_orchestrator_real_worker_provider_execution_spec.md +0 -0
@@ -0,0 +1,1037 @@
1
+ # Feature Spec: Feature Focus View UX Redesign — Track C: Decision-Centric Remediation
2
+
3
+ > Purpose: Rework `/feature/{feature_id}` so it behaves like an operator decision surface instead of a collection of loosely-related widgets. This track fixes the information architecture, signal quality, inspectability, and data-contract gaps left after Tracks A and B.
4
+
5
+ **Version:** 0.1
6
+ **Date:** 2026-03-16
7
+ **Status:** Complete
8
+ **Roadmap Mapping:** M46-C (Focus View Decision-Centric Remediation)
9
+ **Depends On:** M46-A (Track A), M46-B (Track B)
10
+ **Related Specs:**
11
+
12
+ - `spec-files/outstanding/agentic_orchestrator_feature_focus_view_track_a_spec.md`
13
+ - `spec-files/outstanding/agentic_orchestrator_feature_focus_view_track_b_spec.md`
14
+
15
+ ---
16
+
17
+ ## 0. Executive Summary
18
+
19
+ The current focus page is no longer missing only widgets. Its deeper problem is that it does not help a human make a decision.
20
+
21
+ The page currently exhibits four systemic failures:
22
+
23
+ 1. **Signal without consequence**: panels render data, but they rarely tell the operator what matters now, what changed, what is blocking progress, or what to do next.
24
+ 2. **Capabilities hidden in the wrong place**: meaningful inspection tools exist inside `ReviewTab`, while the `Runtime`, `History`, `Plan`, and `Changes` tabs are reduced to shallow summaries.
25
+ 3. **Derived analytics are low-trust**: several panels are driven by heuristics or stale snapshots rather than evidence-backed, time-scoped, user-comprehensible state.
26
+ 4. **Page composition is widget-first instead of job-first**: the page is organized by implementation components, not by operator/reviewer jobs.
27
+
28
+ Track C reorients the page around three user questions:
29
+
30
+ 1. **Can I trust this feature right now?**
31
+ 2. **What exactly is happening, what is blocked, and what remains?**
32
+ 3. **If I need to investigate, can I get from summary to artifact in one click?**
33
+
34
+ This track is intentionally not “add more cards.” It is a structural remediation of layout, meaning, drill-down, and data contracts.
35
+
36
+ ---
37
+
38
+ ## 1. Primary Criticisms Of The Current Design
39
+
40
+ This section is normative. These are the problems the implementation must solve.
41
+
42
+ ### 1.1 Information hierarchy is weak
43
+
44
+ The top of the page tells the user the feature ID and phase, but it does not answer:
45
+
46
+ - Is the feature healthy enough to merge?
47
+ - What is the highest-priority blocker?
48
+ - What changed most recently?
49
+ - Which agent is active?
50
+ - How much plan remains?
51
+ - What action should the human take next?
52
+
53
+ The result is that users scan multiple cards before understanding basic state.
54
+
55
+ ### 1.2 Overview cards are low-signal summaries
56
+
57
+ Several Overview sections currently exist primarily because data was available, not because the section is decision-useful:
58
+
59
+ - `VerificationSignals` falls back to phase/gate heuristics and often does not reflect fresh artifact evidence.
60
+ - `PlanRevisionTimeline` shows metadata (`plan_version`, `revision_of`, `revision_reason`) but not what materially changed.
61
+ - `PlanRiskAnnotations` lists raw strings without urgency, owner, mitigation, or freshness.
62
+ - `QaCoverageMap` surfaces file rows and test counts but not unmet obligations, failing paths, or merge risk.
63
+ - `GenealogyTree` is a node list with little explanatory value.
64
+
65
+ ### 1.3 The sidebar is overloaded but still incomplete
66
+
67
+ The sidebar stacks many independent sections with equal visual weight. This creates scan fatigue and causes truncation/overflow problems on small and medium widths.
68
+
69
+ Specific problems:
70
+
71
+ - long values and table-like text run through their containers
72
+ - usage and queue cards are detached from the main “what should I care about?” narrative
73
+ - pinned actions are present, but the page does not clearly explain why that action is needed now
74
+
75
+ ### 1.4 The tab model is semantically wrong
76
+
77
+ Important capabilities are mounted in the wrong tabs:
78
+
79
+ - live runtime/event inspection and raw logs live in `ReviewTab`
80
+ - `RuntimeTab` is mostly a summary shell
81
+ - `HistoryTab` is a static list rather than an archive browser
82
+ - `PlanTab` shows the accepted plan but not actual plan progress or remaining work
83
+ - `ChangesTab` shows a static diff and a dead checkpoint list instead of an investigative diff workflow
84
+
85
+ The result is that the tabs do not match user expectations.
86
+
87
+ ### 1.5 The page does not expose core source artifacts
88
+
89
+ The user cannot inspect the source spec from the page, and cannot reliably tell:
90
+
91
+ - where the current work sits in the plan
92
+ - how much plan is complete
93
+ - which tasks are blocked or pending
94
+ - what the agent most recently completed
95
+ - how the accepted plan maps to the current implementation state
96
+
97
+ This is a major product gap because the focus page is supposed to be the operational truth surface for a feature.
98
+
99
+ ### 1.6 Time-based and history-based views are shallow
100
+
101
+ The current checkpoint and history surfaces do not support investigation well:
102
+
103
+ - checkpoint timeline is not paginated
104
+ - checkpoints are not first-class navigable entities
105
+ - there is no checkpoint compare workflow
106
+ - runtime logs are not inspectable in the Runtime tab
107
+ - raw logs are not inspectable in the History tab
108
+ - evidence is listed but not organized by run, gate, or relevance
109
+
110
+ ### 1.7 Current tests validate presence, not usefulness
111
+
112
+ The focus-view tests are currently dominated by static-markup smoke assertions. They do not protect:
113
+
114
+ - decision-state derivation
115
+ - freshness/last-updated semantics
116
+ - overflow/truncation regressions
117
+ - tab ownership of capabilities
118
+ - artifact-backed signal computation
119
+ - drill-down navigation
120
+ - pagination/selection state
121
+
122
+ This has allowed low-signal panels to “pass” by existing at all.
123
+
124
+ ---
125
+
126
+ ## 2. Product Goals
127
+
128
+ ### 2.1 Operator goals
129
+
130
+ The operator must be able to answer within 5 seconds:
131
+
132
+ 1. What state is this feature in?
133
+ 2. Is it progressing, stalled, blocked, or waiting?
134
+ 3. What is the highest-priority issue?
135
+ 4. What should I do next, if anything?
136
+
137
+ ### 2.2 Reviewer goals
138
+
139
+ The reviewer must be able to answer within 30 seconds:
140
+
141
+ 1. Is this safe to approve or merge?
142
+ 2. Which signals are green, yellow, or red?
143
+ 3. What changed materially since the previous revision?
144
+ 4. Which failing tests or review concerns still matter?
145
+
146
+ ### 2.3 Investigator goals
147
+
148
+ The investigator must be able to:
149
+
150
+ 1. inspect a file diff in context
151
+ 2. inspect runtime events and raw logs by role
152
+ 3. inspect checkpoint evolution over time
153
+ 4. inspect evidence artifacts by run and gate
154
+ 5. inspect the accepted plan and the source spec side-by-side
155
+
156
+ ### 2.4 Design principles
157
+
158
+ 1. **Decision-first:** every major section must answer “why should I care?”
159
+ 2. **Summary-to-artifact:** every summary panel must link to a deeper artifact or detailed view.
160
+ 3. **Evidence-backed:** status panels may not infer success from phase alone when evidence exists.
161
+ 4. **Progress-aware:** plan and execution progress must be explicit, not implied.
162
+ 5. **Inspectability over ornament:** collapsibility, pagination, filters, and timestamps matter more than decorative cards.
163
+ 6. **Low-noise defaults:** show the most consequential information first; collapse secondary detail.
164
+
165
+ ---
166
+
167
+ ## 3. New Page Model
168
+
169
+ Track C keeps the two-pane layout from Track A but changes the semantic roles of each zone.
170
+
171
+ ### 3.1 Layout contract
172
+
173
+ #### Left rail: `Operational Sidebar`
174
+
175
+ The left rail becomes a compact decision rail with exactly four responsibilities:
176
+
177
+ 1. **Identity + live state**
178
+ 2. **Primary blocker / next action**
179
+ 3. **Progress snapshot**
180
+ 4. **Pinned actions**
181
+
182
+ The sidebar must not become a dumping ground for secondary analytics.
183
+
184
+ #### Right content area: `Decision Workspace`
185
+
186
+ The right side hosts tabs whose responsibilities become strict:
187
+
188
+ | Tab | Responsibility |
189
+ | ------------ | ---------------------------------------------------- |
190
+ | `Overview` | Decision summary and top risks |
191
+ | `Plan` | Spec, accepted plan, actual progress, remaining work |
192
+ | `Changes` | Diff investigation and checkpoint navigation |
193
+ | `Gates & QA` | Merge readiness, failing obligations, evidence |
194
+ | `Review` | Review decision workflow only |
195
+ | `Runtime` | Live execution inspection |
196
+ | `History` | Archived runs, evidence, and logs |
197
+ | `Transcript` | Human-readable agent conversation |
198
+
199
+ ### 3.2 Required design rule
200
+
201
+ If a capability is not aligned with the responsibility of its tab, it must be moved.
202
+
203
+ Examples:
204
+
205
+ - raw logs do not belong only in `Review`
206
+ - checkpoint history does not belong only in `Review`
207
+ - plan progress does not belong only in Overview metadata
208
+ - source spec must be available from `Plan`
209
+
210
+ ---
211
+
212
+ ## 4. Data Contract Additions
213
+
214
+ The current `FeatureDetail` shape is insufficient for a decision-driven page. The following additions are required.
215
+
216
+ ### 4.1 `FeatureDetail` additions
217
+
218
+ ```ts
219
+ interface FeatureDetail {
220
+ spec?: {
221
+ title?: string | null;
222
+ path?: string | null;
223
+ markdown?: string | null;
224
+ last_updated?: string | null;
225
+ } | null;
226
+ plan_progress?: {
227
+ total_tasks: number;
228
+ completed_tasks: number;
229
+ in_progress_tasks: number;
230
+ pending_tasks: number;
231
+ blocked_tasks: number;
232
+ percent_complete: number;
233
+ current_task?: {
234
+ id?: string | null;
235
+ title: string;
236
+ status: 'pending' | 'in_progress' | 'blocked' | 'completed';
237
+ owner_role?: 'planner' | 'builder' | 'qa' | 'orchestrator' | null;
238
+ started_at?: string | null;
239
+ last_updated?: string | null;
240
+ } | null;
241
+ next_tasks: Array<{
242
+ id?: string | null;
243
+ title: string;
244
+ status: 'pending' | 'blocked';
245
+ blocked_by?: string[];
246
+ }>;
247
+ completed_recently: Array<{
248
+ id?: string | null;
249
+ title: string;
250
+ completed_at?: string | null;
251
+ }>;
252
+ } | null;
253
+ verification_summary?: {
254
+ last_evaluated_at: string | null;
255
+ readiness: 'ready' | 'at_risk' | 'blocked' | 'unknown';
256
+ blockers: Array<{
257
+ id: string;
258
+ label: string;
259
+ severity: 'high' | 'medium' | 'low';
260
+ source: 'gate' | 'qa' | 'review' | 'dependency' | 'runtime' | 'plan' | 'budget' | 'collision';
261
+ detail: string;
262
+ artifact_ref?: string | null;
263
+ }>;
264
+ verified_requirements: number;
265
+ at_risk_requirements: number;
266
+ unverified_requirements: number;
267
+ } | null;
268
+ revision_summary?: Array<{
269
+ id: string;
270
+ timestamp: string | null;
271
+ type: 'plan_update' | 'checkpoint' | 'review_event' | 'gate_run' | 'merge_event';
272
+ headline: string;
273
+ detail: string;
274
+ file_count?: number | null;
275
+ artifacts?: string[];
276
+ }>;
277
+ }
278
+ ```
279
+
280
+ ### 4.2 Existing fields that must become trustworthy
281
+
282
+ The following existing fields may remain, but their derivation must be improved:
283
+
284
+ - `usage_burn`
285
+ - `collision_radar`
286
+ - `gate_history`
287
+ - `genealogy`
288
+ - `qa_test_index`
289
+ - `log_entries`
290
+ - `checkpoints`
291
+
292
+ ### 4.3 Required new lazy endpoints
293
+
294
+ Heavy artifacts must be lazily loaded rather than stuffed into the initial page payload.
295
+
296
+ #### `GET /api/features/[id]/spec`
297
+
298
+ Returns:
299
+
300
+ ```ts
301
+ {
302
+ ok: true;
303
+ data: {
304
+ title?: string | null;
305
+ path?: string | null;
306
+ markdown: string;
307
+ updated_at?: string | null;
308
+ };
309
+ }
310
+ ```
311
+
312
+ #### `GET /api/features/[id]/plan-progress`
313
+
314
+ Returns the `plan_progress` structure above, derived from accepted plan + worker/runtime evidence.
315
+
316
+ #### `GET /api/features/[id]/checkpoints`
317
+
318
+ Query params:
319
+
320
+ - `cursor`
321
+ - `limit`
322
+ - `direction=older|newer`
323
+
324
+ This endpoint returns paginated checkpoint metadata plus `diff_snapshot` only for the selected page.
325
+
326
+ #### `GET /api/features/[id]/checkpoint-diff`
327
+
328
+ Query params:
329
+
330
+ - `checkpoint_id`
331
+ - `file`
332
+
333
+ Returns filtered or full diff content for the selected checkpoint.
334
+
335
+ #### `GET /api/features/[id]/history/runs`
336
+
337
+ Returns archived run groups with timestamps, statuses, evidence counts, and log availability.
338
+
339
+ #### `GET /api/features/[id]/history/run/[runId]`
340
+
341
+ Returns evidence, timeline, and log metadata scoped to a single historical run.
342
+
343
+ ### 4.4 Freshness contract
344
+
345
+ Any derived section that claims “current” or “latest” state must expose:
346
+
347
+ - `last_updated_at`
348
+ - source of derivation
349
+ - empty/loading/error states
350
+
351
+ This is required for:
352
+
353
+ - Verification signals
354
+ - Usage burn
355
+ - Plan progress
356
+ - Runtime summaries
357
+ - QA coverage
358
+
359
+ ---
360
+
361
+ ## 5. Sidebar Redesign
362
+
363
+ ## 5.1 Replace stacked generic cards with a single `OperationalSummaryCard`
364
+
365
+ `HeroBlock`, `DiagnosisPanel`, pipeline summary, and fragmented usage/action context must be consolidated into a tighter summary block.
366
+
367
+ The top rail must show:
368
+
369
+ - feature id
370
+ - phase
371
+ - activity state
372
+ - active role
373
+ - time in phase
374
+ - last meaningful change time
375
+ - one-line primary diagnosis
376
+ - one-line next recommended action
377
+
378
+ ### 5.2 Add `Progress Snapshot`
379
+
380
+ The sidebar must show a small progress module:
381
+
382
+ - `N / total tasks complete`
383
+ - current task
384
+ - next task
385
+ - budget state
386
+ - merge readiness state
387
+
388
+ This is the only progress summary that should remain always visible.
389
+
390
+ ### 5.3 Keep usage and merge queue compact
391
+
392
+ `UsageBurnChart` and `MergeQueueCard` remain in the sidebar, but as compact summaries by default.
393
+
394
+ Rules:
395
+
396
+ - they must show `last updated` timestamp
397
+ - they must not render large explanatory text by default
398
+ - a click should open the corresponding deep view in the main content area
399
+
400
+ ### 5.4 Overflow and wrapping requirements
401
+
402
+ All sidebar labels and values must satisfy:
403
+
404
+ - long feature IDs wrap or clamp instead of overflowing
405
+ - code-like strings use `overflow-wrap: anywhere`
406
+ - grid children use `min-width: 0`
407
+ - tables/lists do not exceed the card width
408
+
409
+ This specifically addresses the current “text runs through the box” failure mode.
410
+
411
+ ---
412
+
413
+ ## 6. Overview Tab Redesign
414
+
415
+ The Overview tab must become a merge/readiness briefing, not a card cemetery.
416
+
417
+ ### 6.1 New section order
418
+
419
+ 1. `Decision Banner`
420
+ 2. `Top Blockers`
421
+ 3. `Verification Summary`
422
+ 4. `Recent Material Changes`
423
+ 5. `Risk & Collision`
424
+ 6. `Coverage & Confidence`
425
+ 7. `Secondary diagnostics`
426
+
427
+ ### 6.2 `Decision Banner`
428
+
429
+ New component: `FeatureDecisionBanner`
430
+
431
+ It must answer in one row:
432
+
433
+ - `Ready to merge` / `Not ready` / `Blocked`
434
+ - primary reason
435
+ - recommended action
436
+ - last evaluated time
437
+
438
+ Example:
439
+
440
+ `NOT READY · 2 open review threads and 1 failed gate step · resolve review, rerun merge gate · evaluated 14:22`
441
+
442
+ ### 6.3 `Verification Summary` replaces naive `VerificationSignals`
443
+
444
+ Current weakness:
445
+
446
+ - items are driven by `plan.acceptance_criteria` parsing plus phase fallback
447
+
448
+ Required replacement behavior:
449
+
450
+ - verification items must be sourced from explicit evidence when available
451
+ - each item must show:
452
+ - status
453
+ - why
454
+ - last evidence timestamp
455
+ - artifact link
456
+
457
+ If evidence is absent, the UI must say `No evidence recorded` rather than implying a pass/fail from phase alone.
458
+
459
+ ### 6.4 `Recent Material Changes` replaces current `PlanRevisionTimeline`
460
+
461
+ Current weakness:
462
+
463
+ - version metadata exists, but users cannot tell what changed
464
+
465
+ Required behavior:
466
+
467
+ - display last 5 meaningful revision events
468
+ - each row must include:
469
+ - timestamp
470
+ - event type
471
+ - human summary
472
+ - files changed or tasks affected
473
+ - jump target (`Plan`, `Changes`, `Gates`, or `History`)
474
+
475
+ Examples of valid event summaries:
476
+
477
+ - `Plan v4 added 2 QA remediation tasks after failed merge gate`
478
+ - `Checkpoint cp-012 introduced edits to 3 auth files`
479
+ - `Review request changes reopened feature with 4 unresolved threads`
480
+
481
+ `FeatureGenealogy` may remain as a deeper provenance model, but Overview must show a human summary layer, not raw nodes.
482
+
483
+ ### 6.5 `Plan Risks` becomes `Actionable Risks`
484
+
485
+ Current weakness:
486
+
487
+ - severity strings are shown, but no owner, freshness, mitigation, or impact
488
+
489
+ Required behavior:
490
+
491
+ Each risk row must show:
492
+
493
+ - severity
494
+ - risk statement
495
+ - why it matters for merge/release
496
+ - suggested mitigation
497
+ - owner role if known
498
+ - freshness indicator
499
+
500
+ If the risk data source only provides strings, Track C must derive a simpler but explicit structure and label it as derived.
501
+
502
+ ### 6.6 `CollisionRadar` must be collapsible and consequence-oriented
503
+
504
+ Current weakness:
505
+
506
+ - always open when present
507
+ - no explanation of practical consequence
508
+
509
+ Required behavior:
510
+
511
+ - render as collapsed `<details>` by default
512
+ - summary row must show counts by risk level and highest-impact path
513
+ - expanded view shows files plus competing feature links
514
+ - each row must include a consequence label:
515
+ - `merge conflict likely`
516
+ - `same area, low direct conflict`
517
+ - `watch list`
518
+
519
+ ### 6.7 `QA Coverage Map` becomes `Coverage & Confidence`
520
+
521
+ Current weakness:
522
+
523
+ - file rows + required test counts do not help a reviewer decide anything
524
+
525
+ Required behavior:
526
+
527
+ The primary surface must summarize:
528
+
529
+ - obligations with passing evidence
530
+ - obligations with missing evidence
531
+ - files with failing tests
532
+ - files with no mapped tests
533
+ - flaky overlap count
534
+
535
+ The detailed table may still exist, but it must be subordinate to the summary.
536
+
537
+ Required row columns:
538
+
539
+ - file or obligation
540
+ - status
541
+ - failing/passing tests
542
+ - last run
543
+ - evidence link
544
+
545
+ ### 6.8 Secondary analytics stay collapsed
546
+
547
+ `AgentRolePerformanceCard` and deep lineage views may remain in Overview, but must be collapsed under a `Diagnostics` or `Agent Performance` section so they do not compete with readiness signals.
548
+
549
+ ---
550
+
551
+ ## 7. Plan Tab Redesign
552
+
553
+ The Plan tab currently shows accepted plan metadata only. This is insufficient.
554
+
555
+ ### 7.1 Required layout
556
+
557
+ Two-column layout on desktop:
558
+
559
+ - left: `Source Spec`
560
+ - right: `Accepted Plan + Progress`
561
+
562
+ Single-column stack on mobile/tablet.
563
+
564
+ ### 7.2 `Source Spec` panel
565
+
566
+ New component: `SpecViewer`
567
+
568
+ Features:
569
+
570
+ - render `spec.md` markdown
571
+ - sticky mini table of contents
572
+ - anchor navigation
573
+ - copy path / open raw
574
+ - if unavailable, show explicit empty state
575
+
576
+ ### 7.3 `Plan Progress` panel
577
+
578
+ New component: `PlanProgressPanel`
579
+
580
+ Must show:
581
+
582
+ - percent complete
583
+ - completed / total tasks
584
+ - current task
585
+ - pending tasks
586
+ - blocked tasks
587
+ - recently completed tasks
588
+
589
+ ### 7.4 `Accepted Plan` panel
590
+
591
+ `PlanViewer` must be upgraded to:
592
+
593
+ - show task status badges
594
+ - group tasks by role or phase if possible
595
+ - show file scope
596
+ - show gate profile
597
+ - support expansion/collapse per task
598
+
599
+ ### 7.5 Required progress derivation rules
600
+
601
+ Progress cannot depend only on plan task status fields if they are not actively maintained.
602
+
603
+ Track C must derive a `display progress` model using:
604
+
605
+ - explicit task status when present
606
+ - worker events indicating plan submission / patching / QA completion
607
+ - checkpoint timestamps
608
+ - gate outcomes
609
+ - review state
610
+
611
+ If the derivation is partial, it must be labeled `estimated`.
612
+
613
+ ### 7.6 Decision-support requirement
614
+
615
+ The top of the Plan tab must explicitly answer:
616
+
617
+ - what is being worked on now
618
+ - what remains
619
+ - whether remaining work is blocked
620
+
621
+ ---
622
+
623
+ ## 8. Changes Tab Redesign
624
+
625
+ The Changes tab must become an investigative diff workspace.
626
+
627
+ ### 8.1 Required sections
628
+
629
+ 1. `Current Diff Overview`
630
+ 2. `File Explorer`
631
+ 3. `Checkpoint Rail`
632
+ 4. `Checkpoint Inspector`
633
+ 5. `Compare Mode`
634
+
635
+ ### 8.2 `Current Diff Overview`
636
+
637
+ Keep the existing diff, but add:
638
+
639
+ - file count
640
+ - additions/deletions
641
+ - filter by file
642
+ - “open in inspector” action
643
+
644
+ ### 8.3 `Checkpoint Rail`
645
+
646
+ The checkpoint timeline must be paginated and selectable.
647
+
648
+ Rules:
649
+
650
+ - default page size: 20 checkpoints
651
+ - newest first
652
+ - controls: `Newest`, `Older`, `Newer`
653
+ - selected checkpoint is visually active
654
+ - selection updates the checkpoint inspector instantly
655
+
656
+ ### 8.4 `Checkpoint Inspector`
657
+
658
+ When a checkpoint is selected, the user must be able to:
659
+
660
+ - see metadata
661
+ - inspect the full diff
662
+ - filter to a file
663
+ - inspect validation violations
664
+ - open side-by-side inspector
665
+
666
+ ### 8.5 `Compare Mode`
667
+
668
+ New workflow:
669
+
670
+ - select baseline checkpoint
671
+ - select comparison checkpoint
672
+ - render checkpoint-to-checkpoint diff summary
673
+
674
+ If full pairwise diff is too expensive for initial rollout, Track C may start with:
675
+
676
+ - compare metadata
677
+ - compare touched file lists
678
+ - compare violation sets
679
+
680
+ But the spec target is pairwise diff investigation.
681
+
682
+ ### 8.6 Reuse existing review inspector
683
+
684
+ The existing file inspector and diff-investigation code from `ReviewTab` must be moved into reusable components and owned by `ChangesTab`, not trapped inside review-specific layout.
685
+
686
+ ---
687
+
688
+ ## 9. Gates & QA Tab Redesign
689
+
690
+ ### 9.1 Required top summary
691
+
692
+ The top of the tab must answer:
693
+
694
+ - has the merge gate passed
695
+ - which gate step failed last
696
+ - how many retries have occurred
697
+ - which files/requirements still lack evidence
698
+
699
+ ### 9.2 `GateFlakinessSummary`
700
+
701
+ It may remain, but it must:
702
+
703
+ - be collapsed by default unless retries exist
704
+ - show last failure timestamp
705
+ - distinguish flaky from consistently failing
706
+ - link to the corresponding evidence or run
707
+
708
+ ### 9.3 Replace weak QA coverage framing
709
+
710
+ The QA surface must prioritize:
711
+
712
+ - failing files
713
+ - uncovered obligations
714
+ - flaky tests affecting required scope
715
+ - explicit evidence viewer links
716
+
717
+ ### 9.4 Add `EvidenceViewer`
718
+
719
+ `EvidenceViewer` must be mounted here and organized by:
720
+
721
+ - gate run
722
+ - artifact type
723
+ - timestamp
724
+
725
+ The user must not need to leave the QA tab to inspect relevant artifacts.
726
+
727
+ ---
728
+
729
+ ## 10. Runtime Tab Redesign
730
+
731
+ The Runtime tab must own runtime inspection.
732
+
733
+ ### 10.1 Required sections
734
+
735
+ 1. `Runtime Summary`
736
+ 2. `Agent Sessions`
737
+ 3. `Runtime Inspector`
738
+ 4. `Live Event Timeline`
739
+ 5. `Directed Agent Console`
740
+ 6. `Live / Raw Role Logs`
741
+ 7. `Checkpoint Scrubber`
742
+
743
+ ### 10.2 Mount the existing `RuntimeInspectorPanel`
744
+
745
+ The existing `packages/web-dashboard/src/components/features/runtime-inspector/RuntimeInspectorPanel.tsx`
746
+ contains richer runtime inspection than the current focus tab exposes. Track C must reuse or adapt this instead of maintaining two different runtime-inspector systems.
747
+
748
+ ### 10.3 Move raw log access here
749
+
750
+ Role-scoped raw logs must be inspectable directly in Runtime.
751
+
752
+ Features:
753
+
754
+ - filter by role
755
+ - file selector
756
+ - content viewer
757
+ - download action
758
+
759
+ ### 10.4 Improve runtime summary
760
+
761
+ Current session rows are insufficient. Add:
762
+
763
+ - active role
764
+ - last event time
765
+ - event rate / heartbeat freshness
766
+ - provider + model per active role
767
+ - blocked/waiting reason if any
768
+
769
+ ### 10.5 Keep `CheckpointScrubber`, but deepen it
770
+
771
+ Track B introduced a scrubber, but it is not enough on its own.
772
+
773
+ Add:
774
+
775
+ - click from checkpoint scrubber into selected checkpoint inspector
776
+ - file filter persistence
777
+ - page position memory
778
+ - timestamp labels with human format
779
+
780
+ ---
781
+
782
+ ## 11. History Tab Redesign
783
+
784
+ The History tab must be an archive browser, not two static lists.
785
+
786
+ ### 11.1 Required sections
787
+
788
+ 1. `Run History`
789
+ 2. `Evidence Archive`
790
+ 3. `Historical Raw Logs`
791
+ 4. `Checkpoint Archive`
792
+ 5. `Past Review / Merge Events`
793
+
794
+ ### 11.2 `Run History`
795
+
796
+ New component: `RunHistoryBrowser`
797
+
798
+ Each run row must show:
799
+
800
+ - run id
801
+ - start/end time
802
+ - final status
803
+ - evidence count
804
+ - log availability
805
+
806
+ Selecting a run scopes the rest of the tab.
807
+
808
+ ### 11.3 `Evidence Archive`
809
+
810
+ Use `EvidenceViewer`, but grouped by run and gate.
811
+
812
+ ### 11.4 `Historical Raw Logs`
813
+
814
+ The current History tab must provide the log-inspection capability the user expects from a historical surface.
815
+
816
+ ### 11.5 `Past Review / Merge Events`
817
+
818
+ Add a compact event feed for:
819
+
820
+ - approve / deny / request changes
821
+ - merge-ready transitions
822
+ - merge execution
823
+ - reopened reviews
824
+
825
+ ---
826
+
827
+ ## 12. Transcript Tab Redesign
828
+
829
+ Track B improved transcript presentation. Track C makes it investigation-grade.
830
+
831
+ ### 12.1 Required additions
832
+
833
+ - jump from transcript turn to related checkpoint if timestamps overlap
834
+ - jump from transcript turn to raw log file
835
+ - show role, actor, and exact timestamp more clearly
836
+ - search within transcript
837
+ - filter by role and by time window
838
+
839
+ ### 12.2 Preserve live follow behavior
840
+
841
+ Transcript must maintain explicit `Follow live` state with visible status when a stream is disconnected or paused.
842
+
843
+ ---
844
+
845
+ ## 13. Review Tab Redesign
846
+
847
+ The Review tab must shrink in scope.
848
+
849
+ ### 13.1 Review owns only review
850
+
851
+ The Review tab must contain:
852
+
853
+ - review brief
854
+ - review decision form
855
+ - approval token
856
+ - merge strategy
857
+ - review decision history
858
+
859
+ ### 13.2 Remove non-review inspection from Review tab
860
+
861
+ The following must move out:
862
+
863
+ - runtime inspector
864
+ - raw agent output browser
865
+ - checkpoint archive
866
+ - general diff investigation tools
867
+
868
+ The Review tab should be the smallest tab after Track C, not the largest.
869
+
870
+ ---
871
+
872
+ ## 14. Component Architecture Refactor
873
+
874
+ ### 14.1 Required decomposition
875
+
876
+ The current focus view relies on a mix of shallow tabs and a very large `ReviewTab`.
877
+
878
+ Track C must create reusable components:
879
+
880
+ - `FeatureDecisionBanner`
881
+ - `OperationalSummaryCard`
882
+ - `ProgressSnapshotCard`
883
+ - `VerificationSummaryCard`
884
+ - `RecentMaterialChanges`
885
+ - `ActionableRiskList`
886
+ - `SpecViewer`
887
+ - `PlanProgressPanel`
888
+ - `CheckpointRail`
889
+ - `CheckpointInspector`
890
+ - `RunHistoryBrowser`
891
+ - `RoleLogViewer`
892
+
893
+ ### 14.2 Ownership rule
894
+
895
+ No component may own a capability that belongs to a different tab’s domain.
896
+
897
+ Example:
898
+
899
+ - file diff inspector may be shared, but `ChangesTab` owns its primary workflow
900
+ - role log viewer may be shared, but `RuntimeTab` and `HistoryTab` own where it is used
901
+
902
+ ---
903
+
904
+ ## 15. Testing Strategy
905
+
906
+ Track C requires a stronger testing bar than “renders heading text.”
907
+
908
+ ### 15.1 Unit tests
909
+
910
+ Required for:
911
+
912
+ - verification summary derivation
913
+ - plan progress derivation
914
+ - revision summary derivation
915
+ - checkpoint pagination
916
+ - risk prioritization
917
+ - usage freshness labeling
918
+
919
+ ### 15.2 Component tests
920
+
921
+ Required for:
922
+
923
+ - collapsible panels
924
+ - overflow wrapping behavior
925
+ - tab-to-capability ownership
926
+ - inspector selection
927
+ - checkpoint rail pagination
928
+ - spec viewer empty / loaded states
929
+ - runtime log viewer
930
+
931
+ ### 15.3 Integration tests
932
+
933
+ Required for:
934
+
935
+ - `/feature/[id]` tab navigation with realistic payloads
936
+ - runtime logs visible in Runtime tab
937
+ - raw logs visible in History tab
938
+ - plan + spec visible in Plan tab
939
+ - clicking a checkpoint opens diff inspector
940
+
941
+ ### 15.4 Regression tests for current failures
942
+
943
+ Explicitly add tests for:
944
+
945
+ - text overflow in cards and tables
946
+ - Verification Signals updating from evidence rather than phase fallback
947
+ - `CollisionRadar` collapsed-by-default behavior
948
+ - `UsageBurnChart` showing freshness and live update semantics
949
+ - `PlanTab` showing current task and remaining tasks
950
+ - `ChangesTab` supporting checkpoint pagination and inspection
951
+
952
+ ---
953
+
954
+ ## 16. Implementation Plan
955
+
956
+ ### Slice 1: Data and derivation
957
+
958
+ - extend `FeatureDetail`
959
+ - add spec and plan-progress endpoints
960
+ - add checkpoint pagination endpoints
961
+ - add revision summary derivation
962
+ - strengthen verification summary derivation
963
+
964
+ ### Slice 2: Sidebar + Overview
965
+
966
+ - replace stacked sidebar cards with operational summary
967
+ - add decision banner
968
+ - redesign overview summaries
969
+ - collapse secondary diagnostics
970
+
971
+ ### Slice 3: Plan + Changes
972
+
973
+ - add spec viewer
974
+ - add plan progress panel
975
+ - move diff inspector into reusable component
976
+ - implement checkpoint rail and inspector
977
+
978
+ ### Slice 4: Runtime + History
979
+
980
+ - mount runtime inspector
981
+ - move raw logs to Runtime and History
982
+ - add run history browser
983
+ - group evidence by run
984
+
985
+ ### Slice 5: QA + Review cleanup
986
+
987
+ - mount evidence viewer in Gates & QA
988
+ - reduce Review tab to review-only scope
989
+ - finalize transcript deep links
990
+
991
+ ### Slice 6: Quality hardening
992
+
993
+ - accessibility pass
994
+ - responsive pass
995
+ - visual overflow pass
996
+ - integration/regression tests
997
+
998
+ ---
999
+
1000
+ ## 17. Acceptance Criteria
1001
+
1002
+ Track C is complete only when all of the following are true:
1003
+
1004
+ 1. An operator can open `/feature/{id}` and identify readiness, primary blocker, active role, and next action in under 5 seconds.
1005
+ 2. `Verification Summary` reflects evidence-backed state and exposes freshness timestamps.
1006
+ 3. `CollisionRadar` is collapsed by default and expands into an inspectable list.
1007
+ 4. `PlanTab` exposes both the source spec and actual plan progress.
1008
+ 5. `ChangesTab` supports checkpoint pagination and selectable checkpoint investigation.
1009
+ 6. `RuntimeTab` exposes live runtime inspection and raw log viewing.
1010
+ 7. `HistoryTab` exposes archived runs, evidence, and raw logs.
1011
+ 8. `ReviewTab` is reduced to review-only responsibilities.
1012
+ 9. Long text values no longer overflow card boundaries.
1013
+ 10. Tests cover decision derivation and investigative interactions, not only heading presence.
1014
+
1015
+ ---
1016
+
1017
+ ## 18. Non-Goals
1018
+
1019
+ Track C does not require:
1020
+
1021
+ - redesigning the board page
1022
+ - introducing a database
1023
+ - adding drag-resizable panes
1024
+ - building a generic analytics platform
1025
+ - changing kernel semantics or execution policy
1026
+
1027
+ ---
1028
+
1029
+ ## 19. Architecture Notes
1030
+
1031
+ This track should prefer reusing existing infrastructure where it already exists:
1032
+
1033
+ - reuse `RuntimeInspectorPanel` rather than building a third runtime view
1034
+ - reuse artifact-reading endpoints where possible
1035
+ - reuse diff inspector logic from `ReviewTab`, but relocate ownership
1036
+
1037
+ At the same time, Track C should not preserve weak architecture merely because it exists. If a current component is the wrong abstraction, replace it.