@moretea-labs/forge 1.5.1 → 1.7.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 (434) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +46 -0
  3. package/CLAUDE.md +2 -0
  4. package/DESIGN.md +7 -2
  5. package/README.md +4 -4
  6. package/README.zh-CN.md +2 -2
  7. package/SKILL.md +2 -2
  8. package/THIRD_PARTY_NOTICES.md +1 -1
  9. package/agents/openai.yaml +1 -1
  10. package/assets/hooks/hook-input.sh +11 -8
  11. package/assets/hooks/lib/session-state.sh +10 -7
  12. package/assets/hooks/lib/workflow-state.sh +13 -177
  13. package/assets/hooks/post-tool-observer.sh +8 -2
  14. package/assets/hooks/pre-edit-guard.sh +8 -39
  15. package/assets/hooks/prompt-guard.sh +7 -83
  16. package/assets/hooks/session-start-context.sh +56 -1
  17. package/assets/partials/05-workflow.partial.md +1 -1
  18. package/assets/partials-agents/03-orchestration.partial.md +1 -1
  19. package/assets/plugin-registry.v1.json +54 -3
  20. package/assets/reference-configs/document-generation.md +1 -1
  21. package/assets/reference-configs/harness-overview.md +1 -1
  22. package/assets/reference-configs/hook-operations.md +1 -1
  23. package/assets/reference-configs/sprint-contracts.md +3 -3
  24. package/assets/skill-version.json +2 -2
  25. package/assets/templates/contract.template.md +2 -7
  26. package/assets/templates/helpers/capture-plan.sh +2 -2
  27. package/assets/templates/helpers/check-task-workflow.sh +4 -4
  28. package/assets/templates/helpers/contract-worktree.sh +1 -21
  29. package/assets/templates/helpers/ensure-task-workflow.sh +13 -38
  30. package/assets/templates/helpers/migrate-project-template.sh +22 -45
  31. package/assets/templates/helpers/new-plan.sh +1 -1
  32. package/assets/templates/helpers/plan-to-todo.sh +12 -37
  33. package/assets/templates/helpers/ship-worktrees.sh +2 -29
  34. package/assets/templates/helpers/sprint-backlog.sh +6 -6
  35. package/assets/templates/helpers/verify-contract.sh +1 -111
  36. package/assets/templates/helpers/verify-sprint.sh +3 -180
  37. package/assets/templates/plan.template.md +1 -1
  38. package/assets/templates/review.template.md +9 -34
  39. package/assets/workflow-contract.v1.json +10 -19
  40. package/docs/README.md +10 -10
  41. package/docs/architecture/CURRENT.md +170 -0
  42. package/docs/architecture/EVOLUTION.md +42 -0
  43. package/docs/architecture/current/README.md +4 -156
  44. package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +2 -2
  45. package/docs/architecture/decisions/20260823-immediate-controller-relay.md +53 -0
  46. package/docs/architecture/decisions/20260826-browser-runtime-v2.md +73 -0
  47. package/docs/architecture/history/README.md +7 -0
  48. package/docs/architecture/{chatgpt-handoff-facade.md → history/chatgpt-handoff-facade.md} +4 -0
  49. package/docs/architecture/{global-hook-runtime.md → history/global-hook-runtime.md} +7 -3
  50. package/docs/architecture/{ios-semantic-automation-provider-v2.md → history/ios-semantic-automation-provider-v2.md} +6 -2
  51. package/docs/architecture/history.md +3 -34
  52. package/docs/architecture/index.md +15 -98
  53. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +1 -1
  54. package/docs/architecture/reviews/2026-08-22-semantic-harness-convergence-acceptance.md +39 -0
  55. package/docs/architecture/versions/1.6.md +38 -0
  56. package/docs/architecture/versions/1.7.md +41 -0
  57. package/docs/forge-chatgpt-browser-engine.md +2 -2
  58. package/docs/forge-chatgpt-mcp-setup.md +4 -28
  59. package/docs/forge-chatgpt-supervised-automation.md +3 -3
  60. package/docs/forge-github-issue-launcher.md +1 -1
  61. package/docs/forge-runtime-self-healing-loop.md +1 -1
  62. package/docs/operations/controller-browser-plugin.md +38 -22
  63. package/docs/operations/controller-performance-and-502.md +124 -0
  64. package/docs/operations/controller-reliability-runbook.md +1 -1
  65. package/docs/operations/features.md +3 -3
  66. package/docs/operations/github-repository.md +1 -1
  67. package/docs/operations/homebrew.md +2 -2
  68. package/docs/operations/mcp-tool-exposure.md +5 -3
  69. package/docs/tutorials/01-install-and-start.md +1 -1
  70. package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
  71. package/docs/wiki/Architecture.md +6 -6
  72. package/docs/wiki/Implementation.md +2 -2
  73. package/docs/wiki/Installation.md +1 -1
  74. package/docs/wiki/Integrations.md +2 -2
  75. package/docs/wiki/Quick-Start.md +1 -1
  76. package/docs/wiki/Work-Lifecycle.md +1 -1
  77. package/package.json +29 -10
  78. package/scripts/activate-source-baseline.ts +17 -13
  79. package/scripts/benchmark-background-check-overlap.ts +228 -0
  80. package/scripts/benchmark-mcp-host.sh +117 -0
  81. package/scripts/benchmark-mcp-transport.ts +170 -0
  82. package/scripts/benchmark-quality-harness.ts +146 -0
  83. package/scripts/benchmark-route-session-concurrency.ts +207 -6
  84. package/scripts/benchmark-thin-harness-mcp-e2e.ts +7 -1
  85. package/scripts/benchmark-typescript-navigation.ts +186 -0
  86. package/scripts/benchmark-work-efficiency.ts +334 -0
  87. package/scripts/capture-plan.sh +3 -3
  88. package/scripts/check-agent-tooling.sh +8 -35
  89. package/scripts/check-architecture-sync.sh +17 -86
  90. package/scripts/check-mcp-compatibility.ts +14 -0
  91. package/scripts/check-public-docs.sh +14 -1
  92. package/scripts/check-runtime-architecture.mjs +107 -64
  93. package/scripts/check-stable-baseline.ts +92 -0
  94. package/scripts/check-task-workflow.sh +4 -4
  95. package/scripts/contract-worktree.sh +1 -21
  96. package/scripts/ensure-task-workflow.sh +22 -55
  97. package/scripts/host-temporary-cloud-mcp-e2e.sh +265 -0
  98. package/scripts/install-standalone-recovery.ts +24 -0
  99. package/scripts/lib/project-init-lib.sh +15 -44
  100. package/scripts/migrate-chatgpt-automation-schedules.ts +64 -0
  101. package/scripts/migrate-project-template.sh +23 -1179
  102. package/scripts/new-plan.sh +1 -1
  103. package/scripts/plan-to-todo.sh +11 -36
  104. package/scripts/run-governed-gate.ts +2 -1
  105. package/scripts/ship-worktrees.sh +2 -29
  106. package/scripts/smoke-ios-physical-device.ts +4 -2
  107. package/scripts/smoke-runtime-recovery.ts +1 -35
  108. package/scripts/smoke-schedule-engine.ts +1 -20
  109. package/scripts/sprint-backlog.sh +1 -1
  110. package/scripts/verify-contract.sh +1 -111
  111. package/scripts/verify-forge-runtime.sh +0 -1
  112. package/scripts/verify-sprint.sh +3 -180
  113. package/scripts/workflow-contract.ts +1 -5
  114. package/src/cli/commands/chatgpt.ts +31 -2
  115. package/src/cli/commands/init-hook.ts +3 -3
  116. package/src/cli/commands/mcp.ts +9 -5
  117. package/src/cli/commands/plugin.ts +37 -10
  118. package/src/cli/commands/recovery.ts +25 -3
  119. package/src/cli/commands/runtime.ts +55 -3
  120. package/src/cli/commands/security.ts +12 -1
  121. package/src/cli/commands/setup-profile.ts +31 -21
  122. package/src/cli/controller/check-runner.ts +106 -3
  123. package/src/cli/controller/composite-result.ts +1 -1
  124. package/src/cli/controller/context/focus.ts +51 -0
  125. package/src/cli/controller/context/instruction-context.ts +114 -0
  126. package/src/cli/controller/context/known-paths.ts +76 -0
  127. package/src/cli/controller/context/query-planning.ts +110 -0
  128. package/src/cli/controller/context/rule-resolution.ts +532 -0
  129. package/src/cli/controller/context/source-materializer.ts +278 -0
  130. package/src/cli/controller/context/structural.ts +16 -0
  131. package/src/cli/controller/context/types.ts +286 -0
  132. package/src/cli/controller/context-pack.ts +898 -430
  133. package/src/cli/controller/launch-agents.ts +77 -2
  134. package/src/cli/controller/operational-plan.ts +2 -2
  135. package/src/cli/controller/work-mode.ts +6 -4
  136. package/src/cli/editing/edit-session.ts +60 -7
  137. package/src/cli/github/github.ts +133 -0
  138. package/src/cli/hook/prompt-guard-decision.ts +17 -18
  139. package/src/cli/hook/prompt-intents.ts +1 -1
  140. package/src/cli/installer/managed-entries.ts +15 -1
  141. package/src/cli/local-bridge/console-automations.ts +225 -67
  142. package/src/cli/local-bridge/console-view-models.ts +3 -35
  143. package/src/cli/local-bridge/facade-api.ts +2 -217
  144. package/src/cli/local-bridge/frontend/src/App.tsx +3 -3
  145. package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +153 -3
  146. package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +37 -4
  147. package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +183 -3
  148. package/src/cli/local-bridge/frontend/src/features/repositories/RepositoriesView.tsx +1 -1
  149. package/src/cli/local-bridge/frontend/src/features/work/WorkView.tsx +4 -3
  150. package/src/cli/local-bridge/frontend/src/lib/api.ts +18 -11
  151. package/src/cli/local-bridge/frontend/src/lib/routes.ts +1 -1
  152. package/src/cli/local-bridge/frontend/src/shell/CommandBar.tsx +1 -1
  153. package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +4 -3
  154. package/src/cli/local-bridge/frontend/src/styles.css +27 -11
  155. package/src/cli/local-bridge/frontend/src/types.ts +8 -7
  156. package/src/cli/local-bridge/job-store.ts +1 -490
  157. package/src/cli/local-bridge/server.ts +29 -532
  158. package/src/cli/local-bridge/ui-dist/app.css +1 -1
  159. package/src/cli/local-bridge/ui-dist/app.js +5101 -4967
  160. package/src/cli/mcp/auth.ts +5 -5
  161. package/src/cli/mcp/instructions.ts +3 -2
  162. package/src/cli/mcp/legacy-tool-service.ts +0 -189
  163. package/src/cli/mcp/multi-repository.ts +16 -5
  164. package/src/cli/mcp/oauth.ts +175 -26
  165. package/src/cli/mcp/paths.ts +8 -2
  166. package/src/cli/mcp/repository-tools.ts +356 -101
  167. package/src/cli/mcp/server.ts +625 -54
  168. package/src/cli/mcp/tool-capability-cache.ts +1 -1
  169. package/src/cli/mcp/toolset-selection.ts +1 -1
  170. package/src/cli/mcp/toolset.ts +42 -5
  171. package/src/cli/mcp/transports/http.ts +125 -15
  172. package/src/cli/mcp/transports/session-registry.ts +67 -5
  173. package/src/cli/mcp/types.ts +3 -3
  174. package/src/cli/repositories/command-classifier.ts +209 -14
  175. package/src/cli/repositories/command-executor.ts +55 -521
  176. package/src/cli/repositories/command-process.ts +108 -0
  177. package/src/cli/repositories/command-scope.ts +99 -41
  178. package/src/cli/repositories/controller-home.ts +7 -8
  179. package/src/cli/repositories/git-command-executor.ts +2 -0
  180. package/src/cli/repositories/locks.ts +53 -16
  181. package/src/cli/repositories/repository-snapshot.ts +121 -0
  182. package/src/cli/repositories/safe-patch.ts +6 -4
  183. package/src/cli/repositories/selected-path-actions.ts +17 -9
  184. package/src/cli/repositories/structured-git.ts +110 -10
  185. package/src/cli/repository/inspector.ts +565 -62
  186. package/src/cli/repository/session-cache.ts +58 -17
  187. package/src/cli/v81-entry.ts +1 -4
  188. package/src/effects/fs-transaction.ts +85 -17
  189. package/src/runtime/context/codegraph-read-provider.ts +233 -2
  190. package/src/runtime/context/codegraph-sidecar.cjs +74 -40
  191. package/src/runtime/context/generic-lsp-provider.ts +355 -0
  192. package/src/runtime/context/lsp-client.ts +283 -0
  193. package/src/runtime/context/semantic-navigation.ts +275 -0
  194. package/src/runtime/context/swift-navigation.ts +565 -0
  195. package/src/runtime/context/typescript-navigation.ts +226 -0
  196. package/src/runtime/control-plane/dispatch-priority.ts +28 -0
  197. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +196 -2
  198. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +86 -24
  199. package/src/runtime/control-plane/execution/execution-identity.ts +65 -14
  200. package/src/runtime/control-plane/execution/session-store.ts +18 -0
  201. package/src/runtime/control-plane/execution/validation.ts +15 -2
  202. package/src/runtime/control-plane/execution/verification-evidence.ts +58 -3
  203. package/src/runtime/control-plane/execution/work-handle-store.ts +27 -2
  204. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +258 -0
  205. package/src/runtime/control-plane/execution/work-remote-delivery.ts +215 -0
  206. package/src/runtime/control-plane/execution/work-task-receipt.ts +54 -11
  207. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +175 -8
  208. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +28 -21
  209. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +87 -9
  210. package/src/runtime/control-plane/facade/capability-registry.ts +129 -25
  211. package/src/runtime/control-plane/facade/controller-round-relay.ts +991 -0
  212. package/src/runtime/control-plane/facade/controller-session-store.ts +144 -14
  213. package/src/runtime/control-plane/facade/goal-workloop-access.ts +9 -2
  214. package/src/runtime/control-plane/facade/goal-workloop.ts +885 -105
  215. package/src/runtime/control-plane/facade/index.ts +1 -0
  216. package/src/runtime/control-plane/facade/plan-contract-store.ts +211 -26
  217. package/src/runtime/control-plane/facade/requirement-board.ts +24 -8
  218. package/src/runtime/control-plane/facade/semantic-admission.ts +205 -0
  219. package/src/runtime/control-plane/facade/suggested-actions.ts +5 -1
  220. package/src/runtime/control-plane/facade/types.ts +55 -11
  221. package/src/runtime/control-plane/facade/work-contract-store.ts +204 -73
  222. package/src/runtime/control-plane/generated-cache-retention.ts +271 -0
  223. package/src/runtime/control-plane/global-scheduler/config.ts +44 -0
  224. package/src/runtime/control-plane/global-scheduler/dispatch-capacity.ts +80 -0
  225. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +46 -0
  226. package/src/runtime/control-plane/global-scheduler/maintenance.ts +145 -0
  227. package/src/runtime/control-plane/global-scheduler/projection-refresh.ts +84 -0
  228. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -3
  229. package/src/runtime/control-plane/global-scheduler/scheduler.ts +273 -542
  230. package/src/runtime/control-plane/global-scheduler/source-scan.ts +59 -0
  231. package/src/runtime/control-plane/global-scheduler/state.ts +88 -0
  232. package/src/runtime/control-plane/global-scheduler/worker-attachment.ts +57 -0
  233. package/src/runtime/control-plane/global-scheduler/worker-exit-decision.ts +38 -0
  234. package/src/runtime/control-plane/global-scheduler/worker-exit-reconciler.ts +175 -0
  235. package/src/runtime/control-plane/global-scheduler/worker-launch.ts +111 -0
  236. package/src/runtime/control-plane/global-scheduler/worker-lifecycle-store.ts +64 -0
  237. package/src/runtime/control-plane/global-scheduler/worker-lifecycle.ts +150 -0
  238. package/src/runtime/control-plane/global-scheduler/worker-process.ts +119 -0
  239. package/src/runtime/control-plane/global-scheduler/worker-stderr.ts +60 -0
  240. package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +50 -0
  241. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +642 -51
  242. package/src/runtime/control-plane/launcher/launch-reservation-store.ts +40 -0
  243. package/src/runtime/control-plane/launcher/thin-launcher.ts +194 -10
  244. package/src/runtime/control-plane/persistence/controller-home-migration.ts +487 -0
  245. package/src/runtime/control-plane/persistence/requirement-store.ts +15 -11
  246. package/src/runtime/control-plane/persistence/sqlite-store.ts +33 -2
  247. package/src/runtime/control-plane/release-retention.ts +62 -2
  248. package/src/runtime/control-plane/routing/route-policy.ts +7 -16
  249. package/src/runtime/control-plane/runtime-status-client.ts +0 -2
  250. package/src/runtime/diagnostics/mcp-timing.ts +19 -0
  251. package/src/runtime/diagnostics/mcp-transport-benchmark.ts +129 -0
  252. package/src/runtime/diagnostics/performance.ts +24 -1
  253. package/src/runtime/evidence/event-ledger.ts +1 -1
  254. package/src/runtime/execution/jobs/store.ts +58 -4
  255. package/src/runtime/execution/jobs/types.ts +1 -1
  256. package/src/runtime/execution/managed-workspace.ts +203 -1
  257. package/src/runtime/execution/process-runtime/check-facade.ts +52 -14
  258. package/src/runtime/execution/process-runtime/check-result.ts +63 -2
  259. package/src/runtime/execution/process-runtime/check-scheduling.ts +114 -0
  260. package/src/runtime/execution/process-runtime/command-facade.ts +346 -40
  261. package/src/runtime/execution/process-runtime/gc.ts +98 -12
  262. package/src/runtime/execution/process-runtime/lightweight-managed.ts +1184 -0
  263. package/src/runtime/execution/process-runtime/persisted-check.ts +57 -6
  264. package/src/runtime/execution/process-runtime/resource-claims.ts +97 -8
  265. package/src/runtime/execution/process-runtime/runtime.ts +59 -4
  266. package/src/runtime/execution/process-runtime/store.ts +7 -0
  267. package/src/runtime/execution/process-runtime/types.ts +2 -0
  268. package/src/runtime/execution/thin-harness/async-process.ts +12 -2
  269. package/src/runtime/execution/thin-harness/search-worker.ts +54 -5
  270. package/src/runtime/execution/workers/executor.ts +0 -48
  271. package/src/runtime/gateway/mcp/execution-tools.ts +1219 -126
  272. package/src/runtime/gateway/mcp/process-tools.ts +83 -37
  273. package/src/runtime/gateway/mcp/router.ts +185 -83
  274. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +546 -0
  275. package/src/runtime/gateway/mcp/runtime-tools.ts +2555 -1616
  276. package/src/runtime/model-clients/deepseek-adapter.ts +0 -32
  277. package/src/runtime/plugins/app-store-connect-adapter.ts +123 -19
  278. package/src/runtime/plugins/browser-adapter.ts +2925 -318
  279. package/src/runtime/plugins/browser-automation-service.ts +10 -0
  280. package/src/runtime/plugins/browser-handoff-host.ts +6 -31
  281. package/src/runtime/plugins/browser-handoff.ts +92 -5
  282. package/src/runtime/plugins/browser-macos-bridge.ts +586 -45
  283. package/src/runtime/plugins/browser-node-bridge.ts +6 -34
  284. package/src/runtime/plugins/browser-provider-registry.ts +109 -0
  285. package/src/runtime/plugins/browser-runtime-contract.ts +152 -0
  286. package/src/runtime/plugins/browser-runtime.ts +183 -0
  287. package/src/runtime/plugins/browser-session-authority.ts +332 -0
  288. package/src/runtime/plugins/capability-authorization-grants.ts +354 -0
  289. package/src/runtime/plugins/desktop-operator-registration.ts +15 -12
  290. package/src/runtime/plugins/external-adapter.ts +324 -3
  291. package/src/runtime/plugins/external-registration.ts +84 -5
  292. package/src/runtime/plugins/external-unix-socket.ts +7 -1
  293. package/src/runtime/plugins/first-party-registry.ts +4 -2
  294. package/src/runtime/plugins/github-adapter.ts +125 -0
  295. package/src/runtime/plugins/gmail-adapter.ts +28 -2
  296. package/src/runtime/plugins/ios/agent-device-provider.ts +1 -1
  297. package/src/runtime/plugins/ios/agent-device-typed-provider.ts +52 -9
  298. package/src/runtime/plugins/ios/remote-xpc-hid.ts +1171 -0
  299. package/src/runtime/plugins/ios-adapter.ts +106 -16
  300. package/src/runtime/plugins/ios-agent-device.ts +234 -64
  301. package/src/runtime/plugins/ios-physical-device.ts +1143 -392
  302. package/src/runtime/plugins/lightweight-action.ts +153 -0
  303. package/src/runtime/plugins/local-system-adapter.ts +125 -8
  304. package/src/runtime/plugins/macos-capability-broker.ts +55 -9
  305. package/src/runtime/plugins/plugin-action-sidecar.ts +59 -0
  306. package/src/runtime/plugins/plugin-management-adapter.ts +181 -0
  307. package/src/runtime/plugins/resend-adapter.ts +1 -1
  308. package/src/runtime/plugins/store.ts +366 -24
  309. package/src/runtime/plugins/types.ts +39 -2
  310. package/src/runtime/plugins/xiaohongshu-publish.ts +515 -0
  311. package/src/runtime/projections/git-status-sampler.ts +16 -16
  312. package/src/runtime/projections/materialized-view.ts +28 -10
  313. package/src/runtime/recovery/actions.ts +0 -10
  314. package/src/runtime/recovery/classifier.ts +0 -9
  315. package/src/runtime/recovery/maintenance-executor.ts +415 -18
  316. package/src/runtime/recovery/probe.ts +0 -1
  317. package/src/runtime/recovery/types.ts +0 -1
  318. package/src/runtime/root/mcp-transport.ts +180 -10
  319. package/src/runtime/root/package-connector-service.ts +186 -8
  320. package/src/runtime/root/package-runtime-release.ts +143 -17
  321. package/src/runtime/root/package-runtime-service.ts +430 -22
  322. package/src/runtime/root/release-manifest.ts +7 -2
  323. package/src/runtime/root/release-materialize.ts +162 -19
  324. package/src/runtime/root/release-store.ts +48 -11
  325. package/src/runtime/root/runtime.ts +23 -5
  326. package/src/runtime/root/service.ts +100 -27
  327. package/src/runtime/root/types.ts +2 -0
  328. package/src/runtime/safe-tooling/index.ts +0 -1
  329. package/src/runtime/safe-tooling/ios-development.ts +321 -63
  330. package/src/runtime/safe-tooling/types.ts +0 -30
  331. package/src/runtime/shared/trusted-executable.ts +62 -0
  332. package/src/runtime/shared/trusted-node-executable.ts +48 -0
  333. package/src/runtime/standalone-recovery/core.ts +702 -94
  334. package/src/runtime/standalone-recovery/entry.ts +99 -23
  335. package/src/runtime/standalone-recovery/installer.ts +19 -3
  336. package/src/runtime/standalone-recovery/service-labels.ts +2 -0
  337. package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +160 -0
  338. package/src/runtime/workflow/schedules/browser-probe.ts +258 -0
  339. package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +40 -0
  340. package/src/runtime/workflow/schedules/engine.ts +509 -80
  341. package/src/runtime/workflow/schedules/github-issue-watch.ts +158 -0
  342. package/src/runtime/workflow/schedules/settlement.ts +48 -4
  343. package/src/runtime/workflow/schedules/store.ts +131 -10
  344. package/src/runtime/workflow/schedules/types.ts +6 -3
  345. package/src/runtime/workflow/schedules/work-continuation.ts +120 -34
  346. package/src/testing/test-governance.ts +8 -40
  347. package/assets/reference-configs/heartbeat-triage.md +0 -57
  348. package/assets/templates/helpers/harness-trace-grade.sh +0 -150
  349. package/assets/templates/helpers/heartbeat-triage.sh +0 -361
  350. package/assets/templates/helpers/maintenance-triage.sh +0 -167
  351. package/bin/forge-desktop-helper.mjs +0 -204
  352. package/docs/architecture/current/approved-target-architecture.zh-CN.md +0 -1501
  353. package/docs/architecture/current/architecture-invariants.md +0 -331
  354. package/docs/architecture/current/automation-and-schedule-engine.md +0 -453
  355. package/docs/architecture/current/codegraph-context-provider.md +0 -226
  356. package/docs/architecture/current/control-plane-authority-inventory.md +0 -94
  357. package/docs/architecture/current/controller-repository-decoupling.md +0 -148
  358. package/docs/architecture/current/dispatch-and-agent-strategy.md +0 -354
  359. package/docs/architecture/current/entity-model.md +0 -592
  360. package/docs/architecture/current/external-plugin-governance.md +0 -396
  361. package/docs/architecture/current/failure-recovery.md +0 -447
  362. package/docs/architecture/current/governance.md +0 -213
  363. package/docs/architecture/current/human-interaction-plane.md +0 -87
  364. package/docs/architecture/current/implementation-status.md +0 -128
  365. package/docs/architecture/current/job-and-run-lifecycle.md +0 -413
  366. package/docs/architecture/current/legacy-governance.md +0 -58
  367. package/docs/architecture/current/local-workspace-target-grants.md +0 -70
  368. package/docs/architecture/current/migration-roadmap.md +0 -105
  369. package/docs/architecture/current/multi-repository-execution.md +0 -371
  370. package/docs/architecture/current/operations-runbook.md +0 -45
  371. package/docs/architecture/current/peer-supercontroller-runtime.md +0 -32
  372. package/docs/architecture/current/personal-assistant-plugin-baseline.md +0 -206
  373. package/docs/architecture/current/repository-access-modes.md +0 -102
  374. package/docs/architecture/current/route-policy.md +0 -15
  375. package/docs/architecture/current/route-session-concurrency.md +0 -85
  376. package/docs/architecture/current/runtime-architecture-simplification.md +0 -214
  377. package/docs/architecture/current/runtime-directory-map.md +0 -49
  378. package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +0 -85
  379. package/docs/architecture/current/scheduler-and-resource-claims.md +0 -422
  380. package/docs/architecture/current/session-aware-execution-and-authorization.md +0 -77
  381. package/docs/architecture/current/system-overview.md +0 -144
  382. package/docs/architecture/current/target-requirements-traceability.md +0 -202
  383. package/docs/architecture/current/thin-harness-governance-policy.md +0 -32
  384. package/docs/architecture/current/thin-harness-v1.md +0 -311
  385. package/docs/architecture/current/verification-and-release-gates.md +0 -391
  386. package/docs/forge-autonomous-goal-loop.md +0 -9
  387. package/docs/forge-provider-configuration.md +0 -7
  388. package/docs/operations/chatgpt-personal-assistant-runtime.md +0 -83
  389. package/docs/operations/controller-desktop-plugin.md +0 -112
  390. package/docs/operations/gmail-assistant-routines.md +0 -186
  391. package/docs/operations/personal-assistant-operator-guide.md +0 -61
  392. package/docs/operations/provider-configuration.md +0 -31
  393. package/scripts/harness-trace-grade.sh +0 -150
  394. package/scripts/heartbeat-triage.sh +0 -361
  395. package/scripts/maintenance-triage.sh +0 -167
  396. package/src/cli/local-bridge/frontend/src/features/settings/SettingsView.tsx +0 -2
  397. package/src/cli/repositories/goal-registry.ts +0 -239
  398. package/src/runtime/assistant/action-proposals.ts +0 -279
  399. package/src/runtime/assistant/intent.ts +0 -395
  400. package/src/runtime/assistant/model-provider.ts +0 -460
  401. package/src/runtime/assistant/openapi.ts +0 -223
  402. package/src/runtime/assistant/policy.ts +0 -89
  403. package/src/runtime/assistant/readiness.ts +0 -258
  404. package/src/runtime/assistant/routine-runtime.ts +0 -477
  405. package/src/runtime/assistant/schedule-binding.ts +0 -171
  406. package/src/runtime/assistant/standing-grants.ts +0 -375
  407. package/src/runtime/assistant/store.ts +0 -243
  408. package/src/runtime/assistant/types.ts +0 -135
  409. package/src/runtime/control-plane/goal-loop/config-facade.ts +0 -700
  410. package/src/runtime/control-plane/goal-loop/config-store.ts +0 -570
  411. package/src/runtime/control-plane/goal-loop/config-types.ts +0 -213
  412. package/src/runtime/control-plane/goal-loop/executor-router.ts +0 -109
  413. package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +0 -149
  414. package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +0 -304
  415. package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +0 -1001
  416. package/src/runtime/control-plane/goal-loop/handoff-packet.ts +0 -160
  417. package/src/runtime/control-plane/goal-loop/index.ts +0 -13
  418. package/src/runtime/control-plane/goal-loop/local-tools.ts +0 -290
  419. package/src/runtime/control-plane/goal-loop/policy-gates.ts +0 -203
  420. package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +0 -93
  421. package/src/runtime/control-plane/goal-loop/provider-registry.ts +0 -545
  422. package/src/runtime/control-plane/goal-loop/types.ts +0 -378
  423. package/src/runtime/control-plane/startup-recovery.ts +0 -198
  424. package/src/runtime/gateway/mcp/resource-policy.ts +0 -186
  425. package/src/runtime/personal-assistant/gmail-triage-manager.ts +0 -231
  426. package/src/runtime/personal-assistant/reporting-runtime.ts +0 -344
  427. package/src/runtime/personal-assistant/triage-runtime.ts +0 -748
  428. package/src/runtime/plugins/desktop-adapter.ts +0 -374
  429. package/src/runtime/safe-tooling/browser-safe.ts +0 -133
  430. package/src/runtime/workflow/findings/store.ts +0 -204
  431. package/src/runtime/workflow/findings/types.ts +0 -58
  432. package/src/runtime/workflow/portfolio/engine.ts +0 -20
  433. package/src/runtime/workflow/portfolio/store.ts +0 -185
  434. package/src/runtime/workflow/portfolio/types.ts +0 -29
@@ -1,54 +1,31 @@
1
1
  #!/bin/bash
2
- # Delegate workflow migrations to the canonical upstream forge.
3
- #
4
- # Generated projects keep installed workflow runtime state under .ai/. The
5
- # template source lives in AGENTIC_DEV_ROOT, AGENTIC_DEV_SKILL_ROOT, or
6
- # ~/Projects/forge. Retired legacy install paths are not
7
- # searched.
2
+ # Run the canonical Forge adoption path without guessing a developer checkout.
8
3
 
9
4
  set -euo pipefail
10
5
 
11
- resolve_agentic_dev_root() {
12
- if [[ -n "${AGENTIC_DEV_ROOT:-}" ]]; then
13
- printf '%s\n' "$AGENTIC_DEV_ROOT"
14
- return 0
15
- fi
16
-
17
- if [[ -n "${AGENTIC_DEV_SKILL_ROOT:-}" ]]; then
18
- printf '%s\n' "$AGENTIC_DEV_SKILL_ROOT"
19
- return 0
20
- fi
21
-
22
- if [[ -n "${HOME:-}" ]]; then
23
- local roots=(
24
- "$HOME/Projects/forge"
25
- "$HOME/.codex/skills/forge"
26
- "$HOME/.claude/skills/forge"
27
- "$HOME/.agents/skills/forge"
28
- )
29
-
30
- local root
31
- for root in "${roots[@]}"; do
32
- if [[ -d "$root" ]]; then
33
- printf '%s\n' "$root"
34
- return 0
35
- fi
36
- done
37
-
38
- printf '%s\n' "${roots[0]}"
39
- return 0
40
- fi
41
-
42
- printf '%s\n' ".forge/skills/forge"
6
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
7
+ SELF_SOURCE_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
8
+ SOURCE_ROOT="${FORGE_SOURCE_ROOT:-${AGENTIC_DEV_ROOT:-${AGENTIC_DEV_SKILL_ROOT:-}}}"
9
+
10
+ run_source_root() {
11
+ local root="$1"
12
+ shift
13
+ [[ -f "$root/src/cli/index.ts" ]] || return 1
14
+ command -v bun >/dev/null 2>&1 || {
15
+ echo "[migrate] bun is required to run Forge from source: $root" >&2
16
+ exit 1
17
+ }
18
+ exec bun "$root/src/cli/index.ts" adopt "$@" --no-codegraph --no-verify
43
19
  }
44
20
 
45
- UPSTREAM_ROOT="$(resolve_agentic_dev_root)"
46
- UPSTREAM_SCRIPT="$UPSTREAM_ROOT/scripts/migrate-project-template.sh"
21
+ run_source_root "$SELF_SOURCE_ROOT" "$@"
22
+ if [[ -n "$SOURCE_ROOT" ]]; then
23
+ run_source_root "$SOURCE_ROOT" "$@"
24
+ fi
47
25
 
48
- if [[ ! -f "$UPSTREAM_SCRIPT" ]]; then
49
- echo "[migrate] Upstream forge migration script not found: $UPSTREAM_SCRIPT" >&2
50
- echo "[migrate] Set AGENTIC_DEV_ROOT or AGENTIC_DEV_SKILL_ROOT to the skill root." >&2
51
- exit 1
26
+ if command -v forge >/dev/null 2>&1; then
27
+ exec forge adopt "$@" --no-codegraph --no-verify
52
28
  fi
53
29
 
54
- exec bash "$UPSTREAM_SCRIPT" "$@"
30
+ echo "[migrate] Missing Forge CLI; set FORGE_SOURCE_ROOT to a Forge source checkout." >&2
31
+ exit 1
@@ -141,7 +141,7 @@ Complete this inventory before implementation. If any line is unknown, keep the
141
141
 
142
142
  - **State/progress path**:
143
143
  - **Verification evidence**:
144
- - **Evaluator rubric**:
144
+ - **Impact review**:
145
145
  - **Stop condition**:
146
146
  - **Rollback surface**:
147
147
 
@@ -63,7 +63,7 @@ plan_evidence_contract_error() {
63
63
  fi
64
64
 
65
65
  local label line value
66
- for label in "State/progress path" "Verification evidence" "Evaluator rubric" "Stop condition" "Rollback surface"; do
66
+ for label in "State/progress path" "Verification evidence" "Impact review|Evaluator rubric" "Stop condition" "Rollback surface"; do
67
67
  line="$(printf '%s\n' "$section" | grep -Ei "^[[:space:]]*-[[:space:]]*(\\*\\*)?${label}(\\*\\*)?[[:space:]]*:" | head -1 || true)"
68
68
  if [[ -z "$line" ]]; then
69
69
  echo "missing field: ${label}"
@@ -323,7 +323,7 @@ Describe the exact outcome this task must deliver.
323
323
  - Checks file: `.ai/harness/checks/latest.json`
324
324
  - Run snapshots: `.ai/harness/runs/`
325
325
  - Scope gate: edit only paths listed under `allowed_paths`; update this contract before widening scope.
326
- - Completion gate: `scripts/verify-sprint.sh` must see this contract pass, the review recommend pass, and `## External Acceptance Advice` pass or record a manual override.
326
+ - Completion evidence: `scripts/verify-sprint.sh` reports this contract's direct checks and declared scope. Then perform a fresh semantic impact review.
327
327
 
328
328
  ## Allowed Paths
329
329
 
@@ -377,7 +377,7 @@ exit_criteria:
377
377
  tests_pass:
378
378
  - path: tests/unit/{{TASK_SLUG}}.test.ts
379
379
  commands_succeed:
380
- - bun run typecheck
380
+ - bun run check:type
381
381
  files_contain:
382
382
  - path: src/modules/{{TASK_SLUG}}/index.ts
383
383
  pattern: "export"
@@ -691,19 +691,15 @@ else
691
691
  > **Notes File**: {{NOTES_FILE}}
692
692
  > **Checks File**: {{CHECKS_FILE}}
693
693
  > **Last Updated**: {{TIMESTAMP}}
694
- > **Recommendation**: fail
694
+ > **Summary**:
695
695
 
696
- ## Human Review Card
696
+ ## Semantic Impact Review
697
697
 
698
- - Verdict: pending
699
- - Change type: code-change | docs-only | ledger-closeout | migration | eval-only | delegated-run
700
- - Intended files changed:
701
- - Actual files changed:
702
- - Commands passed:
703
- - External acceptance: unavailable
704
- - Residual risks:
705
- - Reviewer action required: inspect diff and card
706
- - Rollback:
698
+ - User intent:
699
+ - Affected domains and downstream consumers:
700
+ - State transitions and persistence/restart impact:
701
+ - Missing impact areas or uncertainty:
702
+ - Residual risks and recovery:
707
703
 
708
704
  ## Mode Evidence
709
705
 
@@ -713,26 +709,14 @@ else
713
709
 
714
710
  ## Verification Evidence
715
711
 
716
- - Forge /review run:
712
+ - Focused/full checks:
717
713
  - Commands run:
718
714
  - Manual checks:
719
715
  - Supporting artifacts:
720
716
  - Implementation notes reviewed:
721
717
  - Run snapshot:
722
718
 
723
- ## External Acceptance Advice
724
-
725
- > **External Acceptance**: unavailable
726
- > **External Reviewer**:
727
- > **External Source**:
728
- > **External Started**:
729
- > **External Completed**:
730
-
731
- - P1 blockers:
732
- - P2 advisories:
733
- - Acceptance checklist:
734
-
735
- ## Behavior Diff Notes
719
+ ## Scenario Evidence
736
720
 
737
721
  - ...
738
722
 
@@ -740,15 +724,6 @@ else
740
724
 
741
725
  - ...
742
726
 
743
- ## Scorecard
744
-
745
- | Dimension | Score | Notes |
746
- |-----------|-------|-------|
747
- | Functionality | 0/10 | |
748
- | Product depth | 0/10 | |
749
- | Design quality | 0/10 | |
750
- | Code quality | 0/10 | |
751
-
752
727
  ## Failing Items
753
728
 
754
729
  - ...
@@ -224,19 +224,8 @@ active_slug_or_empty() {
224
224
  plan_slug_from_path "$active_plan"
225
225
  }
226
226
 
227
- review_recommends_pass_fallback() {
228
- local review_file="$1"
229
- grep -Eq '^> \*\*Recommendation\*\*:[[:space:]]*pass([[:space:]]*)$' "$review_file"
230
- }
231
-
232
- external_acceptance_pass_fallback() {
233
- local review_file="$1"
234
- grep -Eq '^> \*\*External Acceptance\*\*:[[:space:]]*(pass|manual_override)([[:space:]]*)$' "$review_file" \
235
- && grep -Eq '^-?[[:space:]]*P1 blockers:[[:space:]]*none([[:space:]]*)$' "$review_file"
236
- }
237
-
238
227
  require_finish_ready() {
239
- local contract_file="" review_file="" checks_file=".ai/harness/checks/latest.json" checks_error=""
228
+ local contract_file="" checks_file=".ai/harness/checks/latest.json" checks_error=""
240
229
 
241
230
  [[ -x "scripts/contract-worktree.sh" ]] || fail "scripts/contract-worktree.sh is missing or not executable"
242
231
  [[ -x "scripts/verify-sprint.sh" ]] || fail "scripts/verify-sprint.sh is missing or not executable"
@@ -245,27 +234,11 @@ require_finish_ready() {
245
234
  if declare -F workflow_active_contract >/dev/null 2>&1; then
246
235
  contract_file="$(workflow_active_contract 2>/dev/null || true)"
247
236
  fi
248
- if declare -F workflow_active_review >/dev/null 2>&1; then
249
- review_file="$(workflow_active_review 2>/dev/null || true)"
250
- fi
251
237
  if declare -F workflow_checks_file >/dev/null 2>&1; then
252
238
  checks_file="$(workflow_checks_file)"
253
239
  fi
254
240
 
255
241
  [[ -n "$contract_file" && -f "$contract_file" ]] || fail "active sprint contract is missing"
256
- [[ -n "$review_file" && -f "$review_file" ]] || fail "active sprint review is missing"
257
-
258
- if declare -F workflow_review_recommends_pass >/dev/null 2>&1; then
259
- workflow_review_recommends_pass "$review_file" || fail "$review_file does not recommend pass"
260
- else
261
- review_recommends_pass_fallback "$review_file" || fail "$review_file does not recommend pass"
262
- fi
263
-
264
- if declare -F workflow_external_acceptance_pass >/dev/null 2>&1; then
265
- workflow_external_acceptance_pass "$review_file" || fail "$review_file has no passing external acceptance"
266
- else
267
- external_acceptance_pass_fallback "$review_file" || fail "$review_file has no passing external acceptance"
268
- fi
269
242
 
270
243
  run_cmd bash "scripts/verify-sprint.sh"
271
244
  if [[ "$DRY_RUN" -eq 1 ]]; then
@@ -273,7 +246,7 @@ require_finish_ready() {
273
246
  fi
274
247
 
275
248
  if declare -F workflow_checks_pass >/dev/null 2>&1; then
276
- if ! checks_error="$(workflow_checks_pass "$checks_file" "$contract_file" "$review_file")"; then
249
+ if ! checks_error="$(workflow_checks_pass "$checks_file" "$contract_file")"; then
277
250
  fail "$checks_error"
278
251
  fi
279
252
  elif ! grep -Eq '"status"[[:space:]]*:[[:space:]]*"pass"' "$checks_file"; then
@@ -21,11 +21,11 @@ Usage:
21
21
 
22
22
  Program-level sprint backlog helper. PRDs live in plans/prds/ as the upper
23
23
  planning layer; sprints live in plans/sprints/ as ordered execution backlogs.
24
- Each backlog row is expanded with $think before the existing plan -> contract
24
+ Each backlog row is expanded with /plan before the existing plan -> contract
25
25
  -> worktree flow. tasks/todos.md stays the deferred-goal ledger.
26
26
 
27
27
  start-task reserves the next (or named) pending backlog row and can capture a
28
- thin plan seed. The coding agent must still use `$think` to expand the row into
28
+ thin plan seed. The coding agent must still use `/plan` to expand the row into
29
29
  a decision-complete plan before code edits.
30
30
  --sprint overrides the active-sprint marker (still confined to the sprints
31
31
  dir), which finish back-fill uses inside worktrees where the runtime marker
@@ -218,7 +218,7 @@ render_sprint_file() {
218
218
 
219
219
  Program-level sprint container. The Source PRD summary and ordered backlog
220
220
  decompose product intent into task-contract slices; each backlog row is a
221
- long-task waypoint that must be expanded with `$think` before code edits.
221
+ long-task waypoint that must be expanded with `/plan` before code edits.
222
222
  `tasks/todos.md` stays the deferred-goal ledger and never carries this backlog.
223
223
 
224
224
  ## PRD
@@ -740,12 +740,12 @@ Deliver backlog task \`${target_task}\` so that the acceptance line holds: ${tar
740
740
 
741
741
  ## Planning Expansion
742
742
 
743
- Before editing code, use \`\$think\` to expand this sprint row into a decision-complete implementation plan. The \`\$think\` pass should read the sprint file, preserve the acceptance line, name concrete files or commands, and produce the detailed \`plans/plan-*.md\` body that drives contract execution.
743
+ Before editing code, use \`/plan\` to expand this sprint row into a decision-complete implementation plan. The \`/plan\` pass should read the sprint file, preserve the acceptance line, name concrete files or commands, and produce the detailed \`plans/plan-*.md\` body that drives contract execution.
744
744
 
745
745
  ## Task Breakdown
746
746
 
747
- - [ ] Run \`\$think\` for backlog task \`${target_task}\` using sprint \`${sprint_file}\` and acceptance: ${target_acceptance}
748
- - [ ] Capture the approved Forge \`/plan\` output with \`scripts/capture-plan.sh --source forge-plan --source-ref sprint:${sprint_file}#${target_task}\`
747
+ - [ ] Run \`/plan\` for backlog task \`${target_task}\` using sprint \`${sprint_file}\` and acceptance: ${target_acceptance}
748
+ - [ ] Capture the approved \`/plan\` output with \`scripts/capture-plan.sh --source forge-plan --source-ref sprint:${sprint_file}#${target_task}\`
749
749
  - [ ] Verify acceptance: ${target_acceptance}
750
750
  BODY_EOF
751
751
 
@@ -69,24 +69,6 @@ read_contract_status() {
69
69
  awk '/^> \*\*Status\*\*:/ {sub(/^.*> \*\*Status\*\*: */, ""); gsub(/\r/, ""); print; exit}' "$file" | xargs
70
70
  }
71
71
 
72
- read_contract_review_file() {
73
- local file="$1"
74
- local line=""
75
- local value=""
76
-
77
- line="$(grep -m 1 -E '^> \*\*Review File\*\*:' "$file" || true)"
78
- [[ -n "$line" ]] || return 0
79
-
80
- if [[ "$line" == *\`* ]]; then
81
- value="${line#*\`}"
82
- value="${value%%\`*}"
83
- else
84
- value="${line#*> **Review File**:}"
85
- fi
86
-
87
- printf '%s' "$value" | tr -d '\r' | sed -E 's/^[[:space:]]+//; s/[[:space:]]+$//'
88
- }
89
-
90
72
  read_contract_task_profile() {
91
73
  local file="$1"
92
74
  awk '/^> \*\*Task Profile\*\*:/ {sub(/^.*> \*\*Task Profile\*\*:[[:space:]]*/, ""); gsub(/\r/, ""); print; exit}' "$file" | xargs
@@ -130,36 +112,6 @@ contract_allowed_paths() {
130
112
  '
131
113
  }
132
114
 
133
- review_recommends_pass() {
134
- local review_file="$1"
135
- [[ -n "$review_file" && -f "$review_file" ]] || return 1
136
- grep -Eq '^> \*\*Recommendation\*\*:[[:space:]]*pass[[:space:]]*$' "$review_file"
137
- }
138
-
139
- review_score() {
140
- local review_file="$1"
141
- local dimension="$2"
142
-
143
- [[ -n "$review_file" && -f "$review_file" ]] || return 1
144
-
145
- awk -F'|' -v wanted="$dimension" '
146
- function trim(s) {
147
- gsub(/^[[:space:]]+/, "", s)
148
- gsub(/[[:space:]]+$/, "", s)
149
- return s
150
- }
151
- BEGIN { wanted = tolower(wanted) }
152
- /^\|/ {
153
- dim = tolower(trim($2))
154
- score = trim($3)
155
- if (dim == wanted && match(score, /[0-9]+/)) {
156
- print substr(score, RSTART, RLENGTH)
157
- exit
158
- }
159
- }
160
- ' "$review_file"
161
- }
162
-
163
115
  update_contract_status() {
164
116
  local file="$1"
165
117
  local status="$2"
@@ -385,14 +337,9 @@ declare -a contain_patterns=()
385
337
  declare -a files_not_exist=()
386
338
  declare -a not_contain_paths=()
387
339
  declare -a not_contain_patterns=()
388
- declare -a qa_dimensions=()
389
- declare -a qa_mins=()
390
- declare -a manual_checks=()
391
340
 
392
341
  section=""
393
342
  pending_path=""
394
- pending_dimension=""
395
- review_file="$(read_contract_review_file "$contract_file" || true)"
396
343
  task_profile="$(read_contract_task_profile "$contract_file" || true)"
397
344
  declare -a allowed_paths=()
398
345
  while IFS= read -r allowed_path; do
@@ -443,21 +390,10 @@ while IFS= read -r raw_line; do
443
390
  pending_path=""
444
391
  continue
445
392
  ;;
446
- qa_scores:)
447
- section="qa_scores"
448
- pending_path=""
449
- pending_dimension=""
450
- continue
451
- ;;
452
- manual_checks:)
453
- section="manual_checks"
454
- pending_path=""
455
- continue
456
- ;;
457
393
  esac
458
394
 
459
395
  case "$section" in
460
- files_exist|commands_succeed|files_not_exist|artifacts_exist|manual_checks)
396
+ files_exist|commands_succeed|files_not_exist|artifacts_exist)
461
397
  if [[ "$trimmed" =~ ^-[[:space:]]*(.+)$ ]]; then
462
398
  item="$(strip_quotes "${BASH_REMATCH[1]}")"
463
399
  [[ -n "$item" ]] || continue
@@ -467,8 +403,6 @@ while IFS= read -r raw_line; do
467
403
  commands_succeed+=("$item")
468
404
  elif [[ "$section" == "artifacts_exist" ]]; then
469
405
  artifacts_exist+=("$item")
470
- elif [[ "$section" == "manual_checks" ]]; then
471
- manual_checks+=("$item")
472
406
  else
473
407
  files_not_exist+=("$item")
474
408
  fi
@@ -497,19 +431,6 @@ while IFS= read -r raw_line; do
497
431
  fi
498
432
  fi
499
433
  ;;
500
- qa_scores)
501
- if [[ "$trimmed" =~ ^-[[:space:]]*dimension:[[:space:]]*(.+)$ ]]; then
502
- pending_dimension="$(strip_quotes "${BASH_REMATCH[1]}")"
503
- elif [[ "$trimmed" =~ ^dimension:[[:space:]]*(.+)$ ]]; then
504
- pending_dimension="$(strip_quotes "${BASH_REMATCH[1]}")"
505
- elif [[ "$trimmed" =~ ^min:[[:space:]]*([0-9]+)$ ]]; then
506
- if [[ -n "$pending_dimension" ]]; then
507
- qa_dimensions+=("$pending_dimension")
508
- qa_mins+=("${BASH_REMATCH[1]}")
509
- pending_dimension=""
510
- fi
511
- fi
512
- ;;
513
434
  esac
514
435
  done <<< "$yaml_block"
515
436
  if ((${#tests_pass[@]} || ${#commands_succeed[@]})); then
@@ -602,37 +523,6 @@ if ((${#commands_succeed[@]})); then
602
523
  done
603
524
  fi
604
525
 
605
- if ((${#qa_dimensions[@]})); then
606
- for idx in "${!qa_dimensions[@]}"; do
607
- dimension="${qa_dimensions[$idx]}"
608
- min_score="${qa_mins[$idx]}"
609
- score="$(review_score "$review_file" "$dimension" || true)"
610
-
611
- if [[ "$score" =~ ^[0-9]+$ && "$score" -ge "$min_score" ]]; then
612
- pass "qa_scores" "$dimension" "qa_scores: $dimension ${score}/${min_score}"
613
- else
614
- fail "qa_scores" "$dimension" "qa_scores: $dimension score ${score:-missing} < $min_score"
615
- fi
616
- done
617
- fi
618
-
619
- if ((${#manual_checks[@]})); then
620
- for check in "${manual_checks[@]}"; do
621
- case "$check" in
622
- "Evaluator review file recommends pass")
623
- if review_recommends_pass "$review_file"; then
624
- pass "manual_checks" "$check" "manual_checks: $check"
625
- else
626
- fail "manual_checks" "$check" "manual_checks: $check"
627
- fi
628
- ;;
629
- *)
630
- fail "manual_checks" "$check" "manual_checks unsupported: $check"
631
- ;;
632
- esac
633
- done
634
- fi
635
-
636
526
  if ((${#contain_paths[@]})); then
637
527
  for idx in "${!contain_paths[@]}"; do
638
528
  path="${contain_paths[$idx]}"