@moretea-labs/forge 1.6.0 → 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 (396) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +26 -0
  3. package/CLAUDE.md +2 -0
  4. package/README.md +2 -2
  5. package/README.zh-CN.md +1 -1
  6. package/SKILL.md +2 -2
  7. package/THIRD_PARTY_NOTICES.md +1 -1
  8. package/agents/openai.yaml +1 -1
  9. package/assets/hooks/hook-input.sh +11 -8
  10. package/assets/hooks/lib/session-state.sh +10 -7
  11. package/assets/hooks/lib/workflow-state.sh +13 -177
  12. package/assets/hooks/post-tool-observer.sh +8 -2
  13. package/assets/hooks/prompt-guard.sh +5 -81
  14. package/assets/hooks/session-start-context.sh +56 -1
  15. package/assets/partials/05-workflow.partial.md +1 -1
  16. package/assets/partials-agents/03-orchestration.partial.md +1 -1
  17. package/assets/plugin-registry.v1.json +1 -1
  18. package/assets/reference-configs/document-generation.md +1 -1
  19. package/assets/reference-configs/harness-overview.md +1 -1
  20. package/assets/reference-configs/sprint-contracts.md +3 -3
  21. package/assets/skill-version.json +2 -2
  22. package/assets/templates/contract.template.md +2 -7
  23. package/assets/templates/helpers/capture-plan.sh +2 -2
  24. package/assets/templates/helpers/check-task-workflow.sh +4 -4
  25. package/assets/templates/helpers/contract-worktree.sh +1 -21
  26. package/assets/templates/helpers/ensure-task-workflow.sh +11 -36
  27. package/assets/templates/helpers/migrate-project-template.sh +22 -45
  28. package/assets/templates/helpers/new-plan.sh +1 -1
  29. package/assets/templates/helpers/plan-to-todo.sh +12 -37
  30. package/assets/templates/helpers/ship-worktrees.sh +2 -29
  31. package/assets/templates/helpers/verify-contract.sh +1 -111
  32. package/assets/templates/helpers/verify-sprint.sh +3 -180
  33. package/assets/templates/plan.template.md +1 -1
  34. package/assets/templates/review.template.md +9 -34
  35. package/assets/workflow-contract.v1.json +10 -19
  36. package/docs/README.md +10 -10
  37. package/docs/architecture/CURRENT.md +170 -0
  38. package/docs/architecture/EVOLUTION.md +42 -0
  39. package/docs/architecture/current/README.md +4 -156
  40. package/docs/architecture/decisions/20260803-release-identity-binding-and-exit-policy.md +2 -2
  41. package/docs/architecture/decisions/20260823-immediate-controller-relay.md +53 -0
  42. package/docs/architecture/decisions/20260826-browser-runtime-v2.md +73 -0
  43. package/docs/architecture/history/README.md +7 -0
  44. package/docs/architecture/{chatgpt-handoff-facade.md → history/chatgpt-handoff-facade.md} +4 -0
  45. package/docs/architecture/{global-hook-runtime.md → history/global-hook-runtime.md} +7 -3
  46. package/docs/architecture/{ios-semantic-automation-provider-v2.md → history/ios-semantic-automation-provider-v2.md} +6 -2
  47. package/docs/architecture/history.md +3 -34
  48. package/docs/architecture/index.md +15 -98
  49. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +1 -1
  50. package/docs/architecture/reviews/2026-08-22-semantic-harness-convergence-acceptance.md +39 -0
  51. package/docs/architecture/versions/1.6.md +38 -0
  52. package/docs/architecture/versions/1.7.md +41 -0
  53. package/docs/forge-chatgpt-browser-engine.md +2 -2
  54. package/docs/forge-chatgpt-mcp-setup.md +4 -28
  55. package/docs/forge-chatgpt-supervised-automation.md +3 -3
  56. package/docs/forge-github-issue-launcher.md +1 -1
  57. package/docs/forge-runtime-self-healing-loop.md +1 -1
  58. package/docs/operations/controller-browser-plugin.md +26 -6
  59. package/docs/operations/controller-performance-and-502.md +124 -0
  60. package/docs/operations/controller-reliability-runbook.md +1 -1
  61. package/docs/operations/features.md +2 -2
  62. package/docs/operations/github-repository.md +1 -1
  63. package/docs/operations/homebrew.md +2 -2
  64. package/docs/operations/mcp-tool-exposure.md +5 -3
  65. package/docs/wiki/Architecture.md +6 -6
  66. package/docs/wiki/Implementation.md +2 -2
  67. package/docs/wiki/Integrations.md +2 -2
  68. package/docs/wiki/Work-Lifecycle.md +1 -1
  69. package/package.json +29 -10
  70. package/scripts/activate-source-baseline.ts +17 -13
  71. package/scripts/benchmark-background-check-overlap.ts +228 -0
  72. package/scripts/benchmark-mcp-host.sh +117 -0
  73. package/scripts/benchmark-mcp-transport.ts +170 -0
  74. package/scripts/benchmark-quality-harness.ts +146 -0
  75. package/scripts/benchmark-route-session-concurrency.ts +207 -6
  76. package/scripts/benchmark-thin-harness-mcp-e2e.ts +7 -1
  77. package/scripts/benchmark-typescript-navigation.ts +186 -0
  78. package/scripts/benchmark-work-efficiency.ts +334 -0
  79. package/scripts/capture-plan.sh +3 -3
  80. package/scripts/check-agent-tooling.sh +8 -35
  81. package/scripts/check-architecture-sync.sh +17 -86
  82. package/scripts/check-mcp-compatibility.ts +14 -0
  83. package/scripts/check-runtime-architecture.mjs +107 -64
  84. package/scripts/check-stable-baseline.ts +92 -0
  85. package/scripts/check-task-workflow.sh +4 -4
  86. package/scripts/contract-worktree.sh +1 -21
  87. package/scripts/ensure-task-workflow.sh +22 -55
  88. package/scripts/host-temporary-cloud-mcp-e2e.sh +265 -0
  89. package/scripts/install-standalone-recovery.ts +24 -0
  90. package/scripts/lib/project-init-lib.sh +15 -44
  91. package/scripts/migrate-project-template.sh +23 -1179
  92. package/scripts/new-plan.sh +1 -1
  93. package/scripts/plan-to-todo.sh +11 -36
  94. package/scripts/run-governed-gate.ts +2 -1
  95. package/scripts/ship-worktrees.sh +2 -29
  96. package/scripts/smoke-ios-physical-device.ts +4 -2
  97. package/scripts/smoke-runtime-recovery.ts +1 -35
  98. package/scripts/smoke-schedule-engine.ts +1 -20
  99. package/scripts/verify-contract.sh +1 -111
  100. package/scripts/verify-forge-runtime.sh +0 -1
  101. package/scripts/verify-sprint.sh +3 -180
  102. package/scripts/workflow-contract.ts +1 -5
  103. package/src/cli/commands/init-hook.ts +3 -3
  104. package/src/cli/commands/mcp.ts +9 -5
  105. package/src/cli/commands/plugin.ts +1 -1
  106. package/src/cli/commands/recovery.ts +25 -3
  107. package/src/cli/commands/runtime.ts +55 -3
  108. package/src/cli/commands/security.ts +12 -1
  109. package/src/cli/commands/setup-profile.ts +31 -21
  110. package/src/cli/controller/check-runner.ts +106 -3
  111. package/src/cli/controller/composite-result.ts +1 -1
  112. package/src/cli/controller/context/focus.ts +51 -0
  113. package/src/cli/controller/context/instruction-context.ts +114 -0
  114. package/src/cli/controller/context/known-paths.ts +76 -0
  115. package/src/cli/controller/context/query-planning.ts +110 -0
  116. package/src/cli/controller/context/rule-resolution.ts +532 -0
  117. package/src/cli/controller/context/source-materializer.ts +278 -0
  118. package/src/cli/controller/context/structural.ts +16 -0
  119. package/src/cli/controller/context/types.ts +286 -0
  120. package/src/cli/controller/context-pack.ts +785 -469
  121. package/src/cli/controller/launch-agents.ts +77 -2
  122. package/src/cli/controller/operational-plan.ts +2 -2
  123. package/src/cli/controller/work-mode.ts +6 -4
  124. package/src/cli/editing/edit-session.ts +60 -7
  125. package/src/cli/github/github.ts +133 -0
  126. package/src/cli/installer/managed-entries.ts +15 -1
  127. package/src/cli/local-bridge/console-automations.ts +54 -78
  128. package/src/cli/local-bridge/console-view-models.ts +1 -35
  129. package/src/cli/local-bridge/facade-api.ts +0 -217
  130. package/src/cli/local-bridge/frontend/src/App.tsx +3 -3
  131. package/src/cli/local-bridge/frontend/src/features/automations/AutomationsView.tsx +23 -13
  132. package/src/cli/local-bridge/frontend/src/features/capabilities/CapabilitiesView.tsx +37 -4
  133. package/src/cli/local-bridge/frontend/src/features/overview/OverviewView.tsx +6 -4
  134. package/src/cli/local-bridge/frontend/src/lib/api.ts +1 -6
  135. package/src/cli/local-bridge/frontend/src/lib/routes.ts +1 -1
  136. package/src/cli/local-bridge/frontend/src/shell/Sidebar.tsx +2 -2
  137. package/src/cli/local-bridge/frontend/src/styles.css +1 -1
  138. package/src/cli/local-bridge/frontend/src/types.ts +5 -8
  139. package/src/cli/local-bridge/job-store.ts +1 -490
  140. package/src/cli/local-bridge/server.ts +0 -513
  141. package/src/cli/local-bridge/ui-dist/app.css +1 -1
  142. package/src/cli/local-bridge/ui-dist/app.js +3703 -3757
  143. package/src/cli/mcp/auth.ts +5 -5
  144. package/src/cli/mcp/instructions.ts +3 -2
  145. package/src/cli/mcp/legacy-tool-service.ts +0 -189
  146. package/src/cli/mcp/multi-repository.ts +16 -5
  147. package/src/cli/mcp/oauth.ts +175 -26
  148. package/src/cli/mcp/repository-tools.ts +247 -107
  149. package/src/cli/mcp/server.ts +537 -111
  150. package/src/cli/mcp/tool-capability-cache.ts +1 -1
  151. package/src/cli/mcp/toolset-selection.ts +1 -1
  152. package/src/cli/mcp/toolset.ts +42 -5
  153. package/src/cli/mcp/transports/http.ts +101 -14
  154. package/src/cli/mcp/transports/session-registry.ts +43 -5
  155. package/src/cli/mcp/types.ts +3 -3
  156. package/src/cli/repositories/command-classifier.ts +101 -19
  157. package/src/cli/repositories/command-executor.ts +55 -521
  158. package/src/cli/repositories/command-process.ts +108 -0
  159. package/src/cli/repositories/command-scope.ts +99 -41
  160. package/src/cli/repositories/controller-home.ts +7 -8
  161. package/src/cli/repositories/git-command-executor.ts +2 -0
  162. package/src/cli/repositories/locks.ts +53 -16
  163. package/src/cli/repositories/repository-snapshot.ts +121 -0
  164. package/src/cli/repositories/selected-path-actions.ts +17 -9
  165. package/src/cli/repositories/structured-git.ts +61 -3
  166. package/src/cli/repository/inspector.ts +553 -63
  167. package/src/cli/repository/session-cache.ts +58 -17
  168. package/src/cli/v81-entry.ts +1 -4
  169. package/src/effects/fs-transaction.ts +85 -17
  170. package/src/runtime/context/codegraph-read-provider.ts +233 -2
  171. package/src/runtime/context/codegraph-sidecar.cjs +74 -40
  172. package/src/runtime/context/generic-lsp-provider.ts +355 -0
  173. package/src/runtime/context/lsp-client.ts +283 -0
  174. package/src/runtime/context/semantic-navigation.ts +275 -0
  175. package/src/runtime/context/swift-navigation.ts +565 -0
  176. package/src/runtime/context/typescript-navigation.ts +226 -0
  177. package/src/runtime/control-plane/dispatch-priority.ts +28 -0
  178. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +47 -8
  179. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +86 -24
  180. package/src/runtime/control-plane/execution/session-store.ts +18 -0
  181. package/src/runtime/control-plane/execution/verification-evidence.ts +58 -3
  182. package/src/runtime/control-plane/execution/work-handle-store.ts +27 -2
  183. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +258 -0
  184. package/src/runtime/control-plane/execution/work-remote-delivery.ts +215 -0
  185. package/src/runtime/control-plane/execution/work-task-receipt.ts +54 -11
  186. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +143 -8
  187. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +22 -14
  188. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +85 -8
  189. package/src/runtime/control-plane/facade/capability-registry.ts +129 -25
  190. package/src/runtime/control-plane/facade/controller-round-relay.ts +991 -0
  191. package/src/runtime/control-plane/facade/controller-session-store.ts +132 -1
  192. package/src/runtime/control-plane/facade/goal-workloop-access.ts +2 -0
  193. package/src/runtime/control-plane/facade/goal-workloop.ts +686 -129
  194. package/src/runtime/control-plane/facade/index.ts +1 -0
  195. package/src/runtime/control-plane/facade/plan-contract-store.ts +185 -20
  196. package/src/runtime/control-plane/facade/semantic-admission.ts +205 -0
  197. package/src/runtime/control-plane/facade/suggested-actions.ts +5 -1
  198. package/src/runtime/control-plane/facade/types.ts +22 -5
  199. package/src/runtime/control-plane/facade/work-contract-store.ts +175 -73
  200. package/src/runtime/control-plane/generated-cache-retention.ts +271 -0
  201. package/src/runtime/control-plane/global-scheduler/config.ts +44 -0
  202. package/src/runtime/control-plane/global-scheduler/dispatch-capacity.ts +80 -0
  203. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +46 -0
  204. package/src/runtime/control-plane/global-scheduler/maintenance.ts +145 -0
  205. package/src/runtime/control-plane/global-scheduler/projection-refresh.ts +84 -0
  206. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +3 -3
  207. package/src/runtime/control-plane/global-scheduler/scheduler.ts +273 -542
  208. package/src/runtime/control-plane/global-scheduler/source-scan.ts +59 -0
  209. package/src/runtime/control-plane/global-scheduler/state.ts +88 -0
  210. package/src/runtime/control-plane/global-scheduler/worker-attachment.ts +57 -0
  211. package/src/runtime/control-plane/global-scheduler/worker-exit-decision.ts +38 -0
  212. package/src/runtime/control-plane/global-scheduler/worker-exit-reconciler.ts +175 -0
  213. package/src/runtime/control-plane/global-scheduler/worker-launch.ts +111 -0
  214. package/src/runtime/control-plane/global-scheduler/worker-lifecycle-store.ts +64 -0
  215. package/src/runtime/control-plane/global-scheduler/worker-lifecycle.ts +150 -0
  216. package/src/runtime/control-plane/global-scheduler/worker-process.ts +119 -0
  217. package/src/runtime/control-plane/global-scheduler/worker-stderr.ts +60 -0
  218. package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +50 -0
  219. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +355 -116
  220. package/src/runtime/control-plane/launcher/launch-reservation-store.ts +40 -0
  221. package/src/runtime/control-plane/launcher/thin-launcher.ts +194 -10
  222. package/src/runtime/control-plane/persistence/controller-home-migration.ts +487 -0
  223. package/src/runtime/control-plane/persistence/sqlite-store.ts +33 -2
  224. package/src/runtime/control-plane/release-retention.ts +62 -2
  225. package/src/runtime/control-plane/routing/route-policy.ts +7 -16
  226. package/src/runtime/control-plane/runtime-status-client.ts +0 -2
  227. package/src/runtime/diagnostics/mcp-timing.ts +13 -0
  228. package/src/runtime/diagnostics/mcp-transport-benchmark.ts +129 -0
  229. package/src/runtime/diagnostics/performance.ts +24 -1
  230. package/src/runtime/evidence/event-ledger.ts +1 -1
  231. package/src/runtime/execution/jobs/store.ts +58 -4
  232. package/src/runtime/execution/jobs/types.ts +1 -1
  233. package/src/runtime/execution/managed-workspace.ts +203 -1
  234. package/src/runtime/execution/process-runtime/check-facade.ts +51 -4
  235. package/src/runtime/execution/process-runtime/check-result.ts +53 -0
  236. package/src/runtime/execution/process-runtime/check-scheduling.ts +114 -0
  237. package/src/runtime/execution/process-runtime/command-facade.ts +345 -40
  238. package/src/runtime/execution/process-runtime/gc.ts +38 -6
  239. package/src/runtime/execution/process-runtime/lightweight-managed.ts +1184 -0
  240. package/src/runtime/execution/process-runtime/persisted-check.ts +47 -4
  241. package/src/runtime/execution/process-runtime/resource-claims.ts +10 -6
  242. package/src/runtime/execution/process-runtime/runtime.ts +43 -3
  243. package/src/runtime/execution/process-runtime/store.ts +1 -0
  244. package/src/runtime/execution/process-runtime/types.ts +2 -0
  245. package/src/runtime/execution/thin-harness/async-process.ts +12 -2
  246. package/src/runtime/execution/thin-harness/search-worker.ts +54 -5
  247. package/src/runtime/execution/workers/executor.ts +0 -48
  248. package/src/runtime/gateway/mcp/execution-tools.ts +1192 -114
  249. package/src/runtime/gateway/mcp/process-tools.ts +83 -37
  250. package/src/runtime/gateway/mcp/router.ts +184 -82
  251. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +546 -0
  252. package/src/runtime/gateway/mcp/runtime-tools.ts +2224 -1589
  253. package/src/runtime/plugins/app-store-connect-adapter.ts +123 -19
  254. package/src/runtime/plugins/browser-adapter.ts +2901 -241
  255. package/src/runtime/plugins/browser-automation-service.ts +10 -0
  256. package/src/runtime/plugins/browser-handoff.ts +92 -2
  257. package/src/runtime/plugins/browser-macos-bridge.ts +582 -49
  258. package/src/runtime/plugins/browser-node-bridge.ts +6 -34
  259. package/src/runtime/plugins/browser-provider-registry.ts +109 -0
  260. package/src/runtime/plugins/browser-runtime-contract.ts +152 -0
  261. package/src/runtime/plugins/browser-runtime.ts +183 -0
  262. package/src/runtime/plugins/browser-session-authority.ts +332 -0
  263. package/src/runtime/plugins/capability-authorization-grants.ts +354 -0
  264. package/src/runtime/plugins/desktop-operator-registration.ts +8 -2
  265. package/src/runtime/plugins/external-adapter.ts +324 -3
  266. package/src/runtime/plugins/external-unix-socket.ts +7 -1
  267. package/src/runtime/plugins/first-party-registry.ts +2 -0
  268. package/src/runtime/plugins/github-adapter.ts +125 -0
  269. package/src/runtime/plugins/ios/agent-device-provider.ts +1 -1
  270. package/src/runtime/plugins/ios/agent-device-typed-provider.ts +52 -9
  271. package/src/runtime/plugins/ios/remote-xpc-hid.ts +1171 -0
  272. package/src/runtime/plugins/ios-adapter.ts +106 -16
  273. package/src/runtime/plugins/ios-agent-device.ts +234 -64
  274. package/src/runtime/plugins/ios-physical-device.ts +1143 -392
  275. package/src/runtime/plugins/lightweight-action.ts +153 -0
  276. package/src/runtime/plugins/local-system-adapter.ts +123 -6
  277. package/src/runtime/plugins/macos-capability-broker.ts +55 -9
  278. package/src/runtime/plugins/plugin-action-sidecar.ts +59 -0
  279. package/src/runtime/plugins/plugin-management-adapter.ts +49 -8
  280. package/src/runtime/plugins/resend-adapter.ts +1 -1
  281. package/src/runtime/plugins/store.ts +269 -29
  282. package/src/runtime/plugins/types.ts +35 -2
  283. package/src/runtime/plugins/xiaohongshu-publish.ts +515 -0
  284. package/src/runtime/projections/git-status-sampler.ts +16 -16
  285. package/src/runtime/projections/materialized-view.ts +28 -10
  286. package/src/runtime/recovery/maintenance-executor.ts +393 -28
  287. package/src/runtime/root/mcp-transport.ts +180 -10
  288. package/src/runtime/root/package-connector-service.ts +186 -8
  289. package/src/runtime/root/package-runtime-release.ts +143 -17
  290. package/src/runtime/root/package-runtime-service.ts +430 -22
  291. package/src/runtime/root/release-manifest.ts +7 -2
  292. package/src/runtime/root/release-materialize.ts +19 -0
  293. package/src/runtime/root/release-store.ts +48 -11
  294. package/src/runtime/root/runtime.ts +23 -5
  295. package/src/runtime/root/service.ts +100 -29
  296. package/src/runtime/root/types.ts +2 -0
  297. package/src/runtime/safe-tooling/ios-development.ts +321 -63
  298. package/src/runtime/shared/trusted-executable.ts +62 -0
  299. package/src/runtime/shared/trusted-node-executable.ts +48 -0
  300. package/src/runtime/standalone-recovery/core.ts +700 -92
  301. package/src/runtime/standalone-recovery/entry.ts +99 -23
  302. package/src/runtime/standalone-recovery/installer.ts +19 -3
  303. package/src/runtime/standalone-recovery/service-labels.ts +2 -0
  304. package/src/runtime/standalone-recovery/watchdog-heartbeat.ts +160 -0
  305. package/src/runtime/workflow/schedules/browser-probe.ts +81 -3
  306. package/src/runtime/workflow/schedules/engine.ts +287 -151
  307. package/src/runtime/workflow/schedules/github-issue-watch.ts +158 -0
  308. package/src/runtime/workflow/schedules/settlement.ts +48 -4
  309. package/src/runtime/workflow/schedules/store.ts +131 -10
  310. package/src/runtime/workflow/schedules/types.ts +2 -4
  311. package/src/runtime/workflow/schedules/work-continuation.ts +26 -13
  312. package/src/testing/test-governance.ts +8 -40
  313. package/assets/reference-configs/heartbeat-triage.md +0 -57
  314. package/assets/templates/helpers/harness-trace-grade.sh +0 -150
  315. package/assets/templates/helpers/heartbeat-triage.sh +0 -361
  316. package/assets/templates/helpers/maintenance-triage.sh +0 -167
  317. package/docs/architecture/current/approved-target-architecture.zh-CN.md +0 -1501
  318. package/docs/architecture/current/architecture-invariants.md +0 -331
  319. package/docs/architecture/current/automation-and-schedule-engine.md +0 -459
  320. package/docs/architecture/current/codegraph-context-provider.md +0 -238
  321. package/docs/architecture/current/control-plane-authority-inventory.md +0 -94
  322. package/docs/architecture/current/controller-repository-decoupling.md +0 -148
  323. package/docs/architecture/current/dispatch-and-agent-strategy.md +0 -373
  324. package/docs/architecture/current/entity-model.md +0 -612
  325. package/docs/architecture/current/external-plugin-governance.md +0 -396
  326. package/docs/architecture/current/failure-recovery.md +0 -447
  327. package/docs/architecture/current/governance.md +0 -213
  328. package/docs/architecture/current/human-interaction-plane.md +0 -87
  329. package/docs/architecture/current/implementation-status.md +0 -128
  330. package/docs/architecture/current/job-and-run-lifecycle.md +0 -413
  331. package/docs/architecture/current/legacy-governance.md +0 -58
  332. package/docs/architecture/current/local-workspace-target-grants.md +0 -70
  333. package/docs/architecture/current/migration-roadmap.md +0 -105
  334. package/docs/architecture/current/multi-repository-execution.md +0 -371
  335. package/docs/architecture/current/operations-runbook.md +0 -45
  336. package/docs/architecture/current/peer-supercontroller-runtime.md +0 -32
  337. package/docs/architecture/current/personal-assistant-plugin-baseline.md +0 -206
  338. package/docs/architecture/current/repository-access-modes.md +0 -102
  339. package/docs/architecture/current/route-policy.md +0 -15
  340. package/docs/architecture/current/route-session-concurrency.md +0 -85
  341. package/docs/architecture/current/runtime-architecture-simplification.md +0 -214
  342. package/docs/architecture/current/runtime-directory-map.md +0 -49
  343. package/docs/architecture/current/runtime-health-and-resource-lifecycle.md +0 -85
  344. package/docs/architecture/current/scheduler-and-resource-claims.md +0 -422
  345. package/docs/architecture/current/session-aware-execution-and-authorization.md +0 -77
  346. package/docs/architecture/current/system-overview.md +0 -169
  347. package/docs/architecture/current/target-requirements-traceability.md +0 -202
  348. package/docs/architecture/current/thin-harness-governance-policy.md +0 -32
  349. package/docs/architecture/current/thin-harness-v1.md +0 -321
  350. package/docs/architecture/current/verification-and-release-gates.md +0 -391
  351. package/docs/forge-autonomous-goal-loop.md +0 -9
  352. package/docs/forge-provider-configuration.md +0 -7
  353. package/docs/operations/chatgpt-personal-assistant-runtime.md +0 -93
  354. package/docs/operations/gmail-assistant-routines.md +0 -186
  355. package/docs/operations/personal-assistant-operator-guide.md +0 -61
  356. package/docs/operations/provider-configuration.md +0 -31
  357. package/scripts/harness-trace-grade.sh +0 -150
  358. package/scripts/heartbeat-triage.sh +0 -361
  359. package/scripts/maintenance-triage.sh +0 -167
  360. package/src/cli/local-bridge/frontend/src/features/settings/SettingsView.tsx +0 -2
  361. package/src/cli/repositories/goal-registry.ts +0 -239
  362. package/src/runtime/assistant/action-proposals.ts +0 -279
  363. package/src/runtime/assistant/intent.ts +0 -395
  364. package/src/runtime/assistant/model-provider.ts +0 -460
  365. package/src/runtime/assistant/openapi.ts +0 -223
  366. package/src/runtime/assistant/policy.ts +0 -89
  367. package/src/runtime/assistant/readiness.ts +0 -258
  368. package/src/runtime/assistant/routine-runtime.ts +0 -477
  369. package/src/runtime/assistant/schedule-binding.ts +0 -171
  370. package/src/runtime/assistant/standing-grants.ts +0 -375
  371. package/src/runtime/assistant/store.ts +0 -243
  372. package/src/runtime/assistant/types.ts +0 -135
  373. package/src/runtime/control-plane/goal-loop/config-facade.ts +0 -700
  374. package/src/runtime/control-plane/goal-loop/config-store.ts +0 -570
  375. package/src/runtime/control-plane/goal-loop/config-types.ts +0 -213
  376. package/src/runtime/control-plane/goal-loop/executor-router.ts +0 -109
  377. package/src/runtime/control-plane/goal-loop/failure-taxonomy.ts +0 -149
  378. package/src/runtime/control-plane/goal-loop/goal-contract-store.ts +0 -304
  379. package/src/runtime/control-plane/goal-loop/goal-loop-engine.ts +0 -1001
  380. package/src/runtime/control-plane/goal-loop/handoff-packet.ts +0 -160
  381. package/src/runtime/control-plane/goal-loop/index.ts +0 -13
  382. package/src/runtime/control-plane/goal-loop/local-tools.ts +0 -290
  383. package/src/runtime/control-plane/goal-loop/policy-gates.ts +0 -203
  384. package/src/runtime/control-plane/goal-loop/provider-dispatch.ts +0 -93
  385. package/src/runtime/control-plane/goal-loop/provider-registry.ts +0 -545
  386. package/src/runtime/control-plane/goal-loop/types.ts +0 -378
  387. package/src/runtime/control-plane/startup-recovery.ts +0 -198
  388. package/src/runtime/gateway/mcp/resource-policy.ts +0 -186
  389. package/src/runtime/personal-assistant/gmail-triage-manager.ts +0 -231
  390. package/src/runtime/personal-assistant/reporting-runtime.ts +0 -344
  391. package/src/runtime/personal-assistant/triage-runtime.ts +0 -748
  392. package/src/runtime/workflow/findings/store.ts +0 -204
  393. package/src/runtime/workflow/findings/types.ts +0 -58
  394. package/src/runtime/workflow/portfolio/engine.ts +0 -20
  395. package/src/runtime/workflow/portfolio/store.ts +0 -185
  396. package/src/runtime/workflow/portfolio/types.ts +0 -29
@@ -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
 
@@ -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
  - ...
@@ -17,11 +17,12 @@ export function stepsFor(gate: Gate): Step[] {
17
17
  if (gate === 'task') return [
18
18
  { label: 'typecheck', command: 'bun', args: ['run', 'check:type'], timeoutMs: 10 * 60_000 },
19
19
  { label: 'static architecture', command: 'bun', args: ['run', 'check:runtime-architecture'], timeoutMs: 5 * 60_000 },
20
- { label: 'test budget', command: 'bun', args: ['run', 'check:test-governance'], timeoutMs: 5 * 60_000 },
20
+ { label: 'test manifest', command: 'bun', args: ['run', 'check:test-governance'], timeoutMs: 5 * 60_000 },
21
21
  { label: 'affected tests', command: 'bun', args: ['run', 'test'], timeoutMs: 30 * 60_000 },
22
22
  ];
23
23
  if (gate === 'main') return [
24
24
  { label: 'focused task receipt', gate: 'task' },
25
+ { label: 'core regression', command: 'bun', args: ['run', 'test:core'], timeoutMs: 20 * 60_000 },
25
26
  { label: 'runtime smoke', command: 'bun', args: ['run', 'check:smoke'], timeoutMs: 10 * 60_000 },
26
27
  ];
27
28
  return [
@@ -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
@@ -24,7 +24,6 @@ if (!/^[A-Za-z0-9][A-Za-z0-9.-]+$/.test(bundleId) || !bundleId.includes('.') ||
24
24
  throw new Error('FORGE_IOS_DEVICE_SMOKE_BUNDLE_ID must be an exact bundle identifier, not a URL or deep link.');
25
25
  }
26
26
 
27
- delete process.env.FORGE_IOS_DEVICE_RUNNER_URL;
28
27
 
29
28
  const common = {
30
29
  controllerHome,
@@ -51,6 +50,7 @@ try {
51
50
  entry.identifier === deviceSelector || entry.udid === deviceSelector || entry.name === deviceSelector);
52
51
  if (matches.length !== 1) throw new Error(`Expected exactly one physical iPhone for selector ${deviceSelector}; found ${matches.length}.`);
53
52
  const device = matches[0]!;
53
+ const info = await invoke('physical_device_info', { device: device.identifier });
54
54
  const apps = await invoke('physical_device_apps', { device: device.identifier, bundle_id: bundleId });
55
55
  const installed = Array.isArray(apps.apps) ? apps.apps as Array<Record<string, unknown>> : [];
56
56
  if (installed.length !== 1) throw new Error(`The exact bundle identifier ${bundleId} is not installed on the selected iPhone.`);
@@ -97,7 +97,9 @@ try {
97
97
  version: app.version,
98
98
  },
99
99
  launchStatus: interaction?.status,
100
- uiAutomation: opened.uiAutomation,
100
+ controlPlane: opened.controlPlane,
101
+ coreDeviceCapabilities: info.capabilities,
102
+ screenViewingURLAvailable: typeof info.screenViewingURL === 'string',
101
103
  screenshot: {
102
104
  created: true,
103
105
  width: width ? Number(width) : undefined,
@@ -25,8 +25,6 @@ import {
25
25
  } from '../src/runtime/execution/process-runtime';
26
26
  import { executionIdentityForRepository } from '../src/runtime/control-plane/execution/execution-identity';
27
27
  import { createSchedule } from '../src/runtime/workflow/schedules/store';
28
- import { createPortfolioWorkflow } from '../src/runtime/workflow/portfolio/store';
29
- import { recordCandidateFinding } from '../src/runtime/workflow/findings/store';
30
28
  import { assertAutomatedOperationAllowed } from '../src/runtime/control-plane/governance/external-effects';
31
29
 
32
30
  const root = mkdtempSync(join(tmpdir(), 'forge-recovery-smoke-'));
@@ -169,38 +167,9 @@ try {
169
167
  const scheduleB = createSchedule(controllerHome, scheduleInput);
170
168
  assert(scheduleA.scheduleId === scheduleB.scheduleId, 'Schedule requestId was not idempotent');
171
169
 
172
- const portfolioInput = {
173
- name: 'portfolio-idempotency', requestId: 'portfolio-idempotency', failurePolicy: 'stop' as const,
174
- steps: [{ stepId: 'one', repoId: repository.repoId, operation: 'controller_context', dependsOn: [], priority: 'P2' as const, resourceClaims: [], status: 'pending' as const }],
175
- };
176
- const portfolioA = createPortfolioWorkflow(controllerHome, portfolioInput);
177
- const portfolioB = createPortfolioWorkflow(controllerHome, portfolioInput);
178
- assert(portfolioA.workflowId === portfolioB.workflowId, 'Portfolio requestId was not idempotent');
179
-
180
- const candidateA = recordCandidateFinding(controllerHome, {
181
- repoId: repository.repoId, requestId: 'candidate-observation-1', semanticKey: 'frequent-502:mcp-timeout',
182
- title: 'Frequent MCP 502', summary: 'Observed during bounded triage.', evidence: { source: 'schedule', reference: 'OCC-1' },
183
- });
184
- const candidateB = recordCandidateFinding(controllerHome, {
185
- repoId: repository.repoId, requestId: 'candidate-observation-2', semanticKey: 'frequent-502:mcp-timeout',
186
- title: 'Frequent MCP 502', summary: 'Observed again.', evidence: { source: 'schedule', reference: 'OCC-2' },
187
- });
188
- assert(candidateA.findingId === candidateB.findingId && candidateB.observationCount === 2, 'candidate finding was not deduplicated');
189
170
  let automaticIssueBlocked = false;
190
171
  try { assertAutomatedOperationAllowed('create_issue'); } catch { automaticIssueBlocked = true; }
191
- assert(automaticIssueBlocked, 'Schedule/Portfolio could create an Issue without candidate promotion');
192
-
193
- let cycleRejected = false;
194
- try {
195
- createPortfolioWorkflow(controllerHome, {
196
- name: 'cycle', requestId: 'portfolio-cycle', failurePolicy: 'stop',
197
- steps: [
198
- { stepId: 'a', repoId: repository.repoId, operation: 'controller_context', dependsOn: ['b'], priority: 'P2', resourceClaims: [], status: 'pending' },
199
- { stepId: 'b', repoId: repository.repoId, operation: 'controller_context', dependsOn: ['a'], priority: 'P2', resourceClaims: [], status: 'pending' },
200
- ],
201
- });
202
- } catch { cycleRejected = true; }
203
- assert(cycleRejected, 'Portfolio dependency cycle was accepted');
172
+ assert(automaticIssueBlocked, 'Kernel automation could create an Issue without an explicit external-effect path');
204
173
 
205
174
  console.log(JSON.stringify({
206
175
  status: 'ok',
@@ -208,10 +177,7 @@ try {
208
177
  processRecovered,
209
178
  replacementController: replacement.controllerId,
210
179
  scheduleId: scheduleA.scheduleId,
211
- portfolioWorkflowId: portfolioA.workflowId,
212
- candidateFindingDeduplicated: candidateB.observationCount,
213
180
  automaticIssueBlocked,
214
- portfolioCycleRejected: cycleRejected,
215
181
  executionJobCount: listExecutionJobs(controllerHome, repository.repoId, 20).length,
216
182
  }, null, 2));
217
183
  } finally {
@@ -6,7 +6,6 @@ import { registerRepository } from '../src/cli/repositories/registry';
6
6
  import { listHandoffItems } from '../src/runtime/control-plane/facade/handoff-inbox-store';
7
7
  import { listExecutionJobs } from '../src/runtime/execution/jobs/store';
8
8
  import { evaluateSchedule } from '../src/runtime/workflow/schedules/engine';
9
- import { recordCandidateFinding } from '../src/runtime/workflow/findings/store';
10
9
  import { createSchedule, getSchedule, getScheduleDecision } from '../src/runtime/workflow/schedules/store';
11
10
 
12
11
  const root = mkdtempSync(join(tmpdir(), 'forge-schedule-smoke-'));
@@ -119,20 +118,6 @@ try {
119
118
  'missing historical dependency checkpoint fired',
120
119
  );
121
120
 
122
- recordCandidateFinding(controllerHome, {
123
- repoId: repository.repoId,
124
- requestId: 'schedule-candidate-1',
125
- semanticKey: 'schedule:condition',
126
- title: 'Condition finding',
127
- evidence: { source: 'smoke' },
128
- });
129
- recordCandidateFinding(controllerHome, {
130
- repoId: repository.repoId,
131
- requestId: 'schedule-candidate-2',
132
- semanticKey: 'schedule:condition',
133
- title: 'Condition finding',
134
- evidence: { source: 'smoke' },
135
- });
136
121
  const conditionSchedule = createSchedule(controllerHome, {
137
122
  ...semanticBase,
138
123
  requestId: 'schedule-condition',
@@ -140,11 +125,7 @@ try {
140
125
  trigger: {
141
126
  type: 'condition',
142
127
  everyMinutes: 1,
143
- condition: {
144
- kind: 'candidate_observation_threshold',
145
- semanticKey: 'schedule:condition',
146
- observationThreshold: 2,
147
- },
128
+ condition: { kind: 'repository_clean' },
148
129
  },
149
130
  });
150
131
  const conditionOccurrence = await evaluateSchedule(controllerHome, conditionSchedule);
@@ -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]}"
@@ -13,7 +13,6 @@ TEST_FILES=(
13
13
  "tests/runtime/facade-contracts.test.ts"
14
14
  "tests/runtime/route-policy.test.ts"
15
15
  "tests/runtime/forge-runtime-service.test.ts"
16
- "tests/cli/mcp-controller.test.ts"
17
16
  "tests/cli/local-bridge.test.ts"
18
17
  "tests/runtime/thin-harness-gateway-routing.test.ts"
19
18
  "tests/runtime/runtime-observability.test.ts"