@moretea-labs/forge 1.7.1 → 1.8.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 (685) hide show
  1. package/AGENTS.md +58 -62
  2. package/CHANGELOG.md +39 -0
  3. package/CLAUDE.md +42 -62
  4. package/README.md +2 -2
  5. package/SKILL.md +0 -1
  6. package/THIRD_PARTY_NOTICES.md +5 -2
  7. package/adapters/browser/index.ts +2 -0
  8. package/adapters/chatgpt/browser-delivery-host.ts +71 -0
  9. package/adapters/chatgpt/browser-delivery-runtime.ts +783 -0
  10. package/adapters/chatgpt/controller-binding-store.ts +55 -0
  11. package/adapters/chatgpt/controller-host.ts +119 -0
  12. package/adapters/chatgpt/controller-round-host.ts +78 -0
  13. package/adapters/chatgpt/controller-round-settlement-store.ts +45 -0
  14. package/adapters/chatgpt/provider-delivery.ts +113 -0
  15. package/adapters/chatgpt/work-conversation-binding-store.ts +192 -0
  16. package/adapters/chatgpt/wsl-bridge-delivery-host.ts +63 -0
  17. package/adapters/computer/desktop-operator-contract.ts +7 -0
  18. package/adapters/computer/desktop-operator-discovery.ts +201 -0
  19. package/adapters/computer/desktop-operator-negotiation.ts +174 -0
  20. package/adapters/computer/desktop-operator-provider.ts +312 -0
  21. package/adapters/computer/index.ts +1 -0
  22. package/adapters/computer/interaction-target-authority.ts +944 -0
  23. package/adapters/controller-process/binding-store.ts +34 -0
  24. package/adapters/controller-process/controller-host.ts +26 -0
  25. package/adapters/mcp/access-mode.ts +132 -0
  26. package/adapters/mcp/audit.ts +32 -0
  27. package/adapters/mcp/auth.ts +407 -0
  28. package/adapters/mcp/controller-round-compatibility.ts +184 -0
  29. package/adapters/mcp/frozen-client-semantic-compatibility.ts +292 -0
  30. package/adapters/mcp/instructions.ts +36 -0
  31. package/adapters/mcp/legacy-context.ts +18 -0
  32. package/adapters/mcp/multi-repository.ts +437 -0
  33. package/adapters/mcp/oauth.ts +391 -0
  34. package/adapters/mcp/paths.ts +140 -0
  35. package/adapters/mcp/policy.ts +232 -0
  36. package/adapters/mcp/proxy-env.ts +62 -0
  37. package/adapters/mcp/readiness-projection.ts +24 -0
  38. package/adapters/mcp/redaction.ts +21 -0
  39. package/adapters/mcp/repo.ts +24 -0
  40. package/adapters/mcp/runtime-gateway/artifact-adapter.ts +52 -0
  41. package/adapters/mcp/runtime-gateway/context-adapter.ts +829 -0
  42. package/adapters/mcp/runtime-gateway/controller-authority-adapter.ts +191 -0
  43. package/adapters/mcp/runtime-gateway/engineering-preconditions.ts +147 -0
  44. package/adapters/mcp/runtime-gateway/execution-control-adapter.ts +28 -0
  45. package/adapters/mcp/runtime-gateway/execution-tools.ts +207 -0
  46. package/adapters/mcp/runtime-gateway/filesystem-adapter.ts +38 -0
  47. package/adapters/mcp/runtime-gateway/gateway-execution-adapter.ts +411 -0
  48. package/adapters/mcp/runtime-gateway/legacy-ios-tool-adapter.ts +105 -0
  49. package/adapters/mcp/runtime-gateway/maintenance-adapter.ts +44 -0
  50. package/adapters/mcp/runtime-gateway/model-adapter.ts +63 -0
  51. package/adapters/mcp/runtime-gateway/persisted-check-process.ts +3 -0
  52. package/adapters/mcp/runtime-gateway/plugin-adapter.ts +308 -0
  53. package/adapters/mcp/runtime-gateway/process-tools.ts +289 -0
  54. package/adapters/mcp/runtime-gateway/protected-computer-adapter.ts +76 -0
  55. package/adapters/mcp/runtime-gateway/recovery-adapter.ts +268 -0
  56. package/adapters/mcp/runtime-gateway/recovery-client-adapter.ts +70 -0
  57. package/adapters/mcp/runtime-gateway/recovery-tool-contract.ts +99 -0
  58. package/adapters/mcp/runtime-gateway/repository-compat-adapter.ts +110 -0
  59. package/adapters/mcp/runtime-gateway/result-adapter.ts +108 -0
  60. package/adapters/mcp/runtime-gateway/router.ts +728 -0
  61. package/adapters/mcp/runtime-gateway/runtime-observation-adapter.ts +1251 -0
  62. package/adapters/mcp/runtime-gateway/runtime-tool-definitions.ts +634 -0
  63. package/adapters/mcp/runtime-gateway/runtime-tool-shared.ts +27 -0
  64. package/adapters/mcp/runtime-gateway/runtime-tools.ts +68 -0
  65. package/adapters/mcp/runtime-gateway/scheduler-adapter.ts +186 -0
  66. package/adapters/mcp/runtime-gateway/shared-adapter.ts +25 -0
  67. package/adapters/mcp/runtime-gateway/status-inbox-adapter.ts +870 -0
  68. package/adapters/mcp/runtime-gateway/work-adapter.ts +3186 -0
  69. package/adapters/mcp/runtime-gateway/work-compat-adapter.ts +502 -0
  70. package/adapters/mcp/runtime-gateway/work-validation-reconciler.ts +1 -0
  71. package/adapters/mcp/server.ts +1048 -0
  72. package/adapters/mcp/setup.ts +791 -0
  73. package/adapters/mcp/tool-capability-cache.ts +87 -0
  74. package/adapters/mcp/tool-mapping/access-tools.ts +387 -0
  75. package/adapters/mcp/tool-mapping/legacy-tool-service.ts +5265 -0
  76. package/adapters/mcp/tool-mapping/post-finalize-work-attribution.ts +150 -0
  77. package/adapters/mcp/tool-mapping/repository-tools.ts +1691 -0
  78. package/adapters/mcp/tool-mapping/tools.ts +9 -0
  79. package/adapters/mcp/tool-mapping/umbrella-tools.ts +117 -0
  80. package/adapters/mcp/toolset-names.ts +74 -0
  81. package/adapters/mcp/toolset-selection.ts +41 -0
  82. package/adapters/mcp/toolset.ts +336 -0
  83. package/adapters/mcp/transports/http.ts +1456 -0
  84. package/adapters/mcp/transports/session-registry.ts +513 -0
  85. package/adapters/mcp/transports/stdio.ts +8 -0
  86. package/adapters/mcp/tunnels/openai-secure-tunnel.ts +139 -0
  87. package/adapters/mcp/types.ts +41 -0
  88. package/assets/AGENTS.md +2 -16
  89. package/assets/CLAUDE.md +2 -16
  90. package/assets/hooks/AGENTS.md +3 -14
  91. package/assets/hooks/CLAUDE.md +3 -14
  92. package/assets/hooks/hook-input.sh +9 -2
  93. package/assets/hooks/lib/workflow-state.sh +28 -10
  94. package/assets/hooks/prompt-guard.sh +63 -37
  95. package/assets/hooks/security-sentinel.sh +2 -1
  96. package/assets/hooks/session-start-context.sh +7 -5
  97. package/assets/hooks/stop-orchestrator.sh +13 -3
  98. package/assets/initializer-question-pack.v4.json +11 -7
  99. package/assets/partials/05-workflow.partial.md +18 -73
  100. package/assets/partials/07-footer.partial.md +1 -1
  101. package/assets/partials-agents/02-operating-mode.partial.md +1 -2
  102. package/assets/partials-agents/04-task-protocol.partial.md +14 -59
  103. package/assets/partials-agents/06-quality-safety.partial.md +11 -16
  104. package/assets/partials-agents/08-deep-docs.partial.md +1 -2
  105. package/assets/plan-map.json +11 -11
  106. package/assets/plugin-registry.v1.json +9 -3
  107. package/assets/plugin-trust-policy.v1.json +6 -0
  108. package/assets/recovery/ForgeRecovery.ps1 +100 -0
  109. package/assets/recovery/forge-wsl-rescue +271 -0
  110. package/assets/reference-configs/development-protocol.md +11 -15
  111. package/assets/reference-configs/document-generation.md +1 -1
  112. package/assets/reference-configs/global-working-rules.md +9 -1
  113. package/assets/reference-configs/harness-overview.md +22 -112
  114. package/assets/reference-configs/hook-operations.md +1 -1
  115. package/assets/reference-configs/sprint-contracts.md +2 -2
  116. package/assets/skill-version.json +2 -2
  117. package/assets/templates/helpers/architecture-event.ts +3 -34
  118. package/assets/templates/helpers/architecture-queue.sh +61 -10
  119. package/assets/templates/helpers/archive-workflow.sh +90 -180
  120. package/assets/templates/helpers/capability-config.ts +8 -11
  121. package/assets/templates/helpers/capability-resolver.ts +37 -19
  122. package/assets/templates/helpers/capture-plan.sh +2 -2
  123. package/assets/templates/helpers/check-architecture-sync.sh +1 -9
  124. package/assets/templates/helpers/check-task-sync.sh +82 -11
  125. package/assets/templates/helpers/check-task-workflow.sh +1 -3
  126. package/assets/templates/helpers/context-contract-sync.sh +1 -12
  127. package/assets/templates/helpers/contract-worktree.sh +26 -24
  128. package/assets/templates/helpers/ensure-task-workflow.sh +6 -8
  129. package/assets/templates/helpers/inspect-project-state.ts +1 -1
  130. package/assets/templates/helpers/migrate-project-template.sh +1 -1
  131. package/assets/templates/helpers/migrate-workflow-docs.ts +53 -239
  132. package/assets/templates/helpers/new-plan.sh +2 -2
  133. package/assets/templates/helpers/plan-to-todo.sh +3 -31
  134. package/assets/templates/helpers/sprint-backlog.sh +1 -1
  135. package/assets/templates/helpers/switch-plan.sh +1 -1
  136. package/assets/templates/helpers/workflow-contract.ts +1 -0
  137. package/assets/workflow-contract.v1.json +63 -171
  138. package/assets/workflows/xiaohongshu/xiaohongshu.collect-metrics.v1.draft.json +118 -0
  139. package/assets/workflows/xiaohongshu/xiaohongshu.publish-image-note.v1.draft.json +316 -0
  140. package/assets/workflows/xiaohongshu/xiaohongshu.publish-long-text.v1.draft.json +324 -0
  141. package/docs/architecture/CURRENT.md +148 -13
  142. package/docs/architecture/EVOLUTION.md +13 -0
  143. package/docs/architecture/decisions/20260801-controller-home-sqlite-state.md +2 -1
  144. package/docs/architecture/decisions/20260831-independent-windows-wsl-host-rescue.md +59 -0
  145. package/docs/architecture/decisions/20260904-ios-device-migration-baseline.md +120 -0
  146. package/docs/architecture/decisions/20260904-repository-runtime-data-boundary.md +42 -0
  147. package/docs/architecture/decisions/20260907-assistant-learning-loop.md +35 -0
  148. package/docs/architecture/decisions/20260907-controller-round-transition-policy.md +296 -0
  149. package/docs/architecture/decisions/20260907-maintenance-diagnosis-bounded-read.md +39 -0
  150. package/docs/architecture/domains/verification.md +7 -0
  151. package/docs/architecture/domains/workflow-engine.md +1 -1
  152. package/docs/architecture/index.md +3 -3
  153. package/docs/architecture/modules/controller-runtime/transport-lifecycle.md +19 -8
  154. package/docs/architecture/requests/2026-09-04-computer-plugin-workflow-taxonomy.md +124 -0
  155. package/docs/forge-chatgpt-mcp-setup.md +5 -3
  156. package/docs/forge-plugin-management.md +20 -4
  157. package/docs/forge-runtime-self-healing-loop.md +2 -0
  158. package/docs/operations/benchmark-cross-version-freeze.md +38 -0
  159. package/docs/operations/controller-browser-plugin.md +3 -1
  160. package/docs/operations/homebrew.md +2 -2
  161. package/docs/operations/platform-support.md +16 -8
  162. package/docs/operations/platform-support.zh-CN.md +2 -2
  163. package/docs/operations/standalone-disaster-recovery.md +26 -1
  164. package/docs/operations/uu-remote-rescue.md +41 -0
  165. package/docs/operations/windows-wsl-host-rescue.md +133 -0
  166. package/docs/public-usage-guide.md +1 -1
  167. package/docs/public-usage-guide.zh-CN.md +1 -1
  168. package/docs/tutorials/01-install-and-start.md +1 -1
  169. package/docs/tutorials/01-install-and-start.zh-CN.md +1 -1
  170. package/docs/tutorials/02-connect-chatgpt.md +4 -4
  171. package/docs/tutorials/02-connect-chatgpt.zh-CN.md +4 -4
  172. package/docs/wiki/Implementation.md +1 -1
  173. package/package.json +23 -14
  174. package/packages/kernel/controller/api/index.ts +2 -0
  175. package/packages/kernel/controller/application/controller-round-service.ts +29 -0
  176. package/packages/kernel/controller/application/controller-service.ts +30 -0
  177. package/packages/kernel/controller/domain/controller-round-transition-policy.ts +308 -0
  178. package/packages/kernel/controller/domain/controller-round.ts +107 -0
  179. package/packages/kernel/controller/domain/execution-quality.ts +133 -0
  180. package/packages/kernel/controller/domain/types.ts +56 -0
  181. package/packages/kernel/controller/index.ts +1 -0
  182. package/packages/kernel/controller/infrastructure/controller-binding-store.ts +84 -0
  183. package/packages/kernel/controller/infrastructure/controller-round-store.ts +1384 -0
  184. package/packages/kernel/controller/infrastructure/controller-session-store.ts +578 -0
  185. package/packages/kernel/controller/ports/controller-host.ts +16 -0
  186. package/packages/kernel/goal/api/index.ts +1 -0
  187. package/packages/kernel/goal/domain/types.ts +40 -0
  188. package/packages/kernel/goal/index.ts +1 -0
  189. package/packages/kernel/identity/api/index.ts +5 -0
  190. package/packages/kernel/identity/application/identity-service.ts +67 -0
  191. package/packages/kernel/identity/domain/scope.ts +63 -0
  192. package/packages/kernel/identity/domain/semantic-sync.ts +81 -0
  193. package/packages/kernel/identity/domain/types.ts +44 -0
  194. package/packages/kernel/identity/domain/workspace.ts +56 -0
  195. package/packages/kernel/identity/index.ts +1 -0
  196. package/packages/kernel/identity/infrastructure/identity-store.ts +75 -0
  197. package/packages/kernel/memory/api/index.ts +5 -0
  198. package/packages/kernel/memory/application/experience-service.ts +118 -0
  199. package/packages/kernel/memory/application/outcome-service.ts +77 -0
  200. package/packages/kernel/memory/domain/experience.ts +103 -0
  201. package/packages/kernel/memory/domain/operational-prior.ts +92 -0
  202. package/packages/kernel/memory/index.ts +1 -0
  203. package/packages/kernel/progression/api/index.ts +2 -0
  204. package/packages/kernel/progression/application/projector.ts +211 -0
  205. package/packages/kernel/progression/domain/types.ts +116 -0
  206. package/packages/kernel/progression/index.ts +1 -0
  207. package/packages/kernel/scheduler/api/index.ts +6 -0
  208. package/packages/kernel/scheduler/application/continuation-service.ts +212 -0
  209. package/packages/kernel/scheduler/application/eligibility.ts +252 -0
  210. package/packages/kernel/scheduler/application/schedule-service.ts +24 -0
  211. package/packages/kernel/scheduler/application/settlement.ts +197 -0
  212. package/packages/kernel/scheduler/domain/continuation.ts +38 -0
  213. package/packages/kernel/scheduler/domain/schedule.ts +149 -0
  214. package/packages/kernel/scheduler/index.ts +1 -0
  215. package/packages/kernel/scheduler/infrastructure/continuation-dispatch-store.ts +38 -0
  216. package/packages/kernel/scheduler/infrastructure/schedule-store.ts +785 -0
  217. package/packages/kernel/work/api/index.ts +15 -0
  218. package/packages/kernel/work/application/work-service.ts +148 -0
  219. package/packages/kernel/work/domain/admission-policy.ts +34 -0
  220. package/packages/kernel/work/domain/check-receipt.ts +43 -0
  221. package/packages/kernel/work/domain/context-closure-receipt.ts +32 -0
  222. package/packages/kernel/work/domain/engineering-contracts.ts +157 -0
  223. package/packages/kernel/work/domain/engineering-design.ts +281 -0
  224. package/packages/kernel/work/domain/engineering-profile.ts +242 -0
  225. package/packages/kernel/work/domain/execution-concurrency.ts +254 -0
  226. package/packages/kernel/work/domain/execution-snapshot.ts +33 -0
  227. package/packages/kernel/work/domain/implementation-review.ts +510 -0
  228. package/packages/kernel/work/domain/project-engineering-contract.ts +202 -0
  229. package/packages/kernel/work/domain/repository-completion-receipt.ts +73 -0
  230. package/packages/kernel/work/domain/state-machine.ts +259 -0
  231. package/packages/kernel/work/domain/types.ts +528 -0
  232. package/packages/kernel/work/index.ts +1 -0
  233. package/packages/kernel/work/infrastructure/work-contract-store.ts +1876 -0
  234. package/packages/kernel/work/ports/work-contract-store.ts +18 -0
  235. package/packages/plugin-runtime/browser/index.ts +3 -0
  236. package/packages/plugin-runtime/browser/provider-registry.ts +110 -0
  237. package/packages/plugin-runtime/browser/runtime-contract.ts +150 -0
  238. package/packages/plugin-runtime/browser/session-authority.ts +61 -0
  239. package/packages/plugin-runtime/computer/index.ts +6 -0
  240. package/packages/plugin-runtime/computer/provider-error.ts +26 -0
  241. package/packages/plugin-runtime/computer/provider-registration.ts +52 -0
  242. package/packages/plugin-runtime/computer/provider-registry.ts +63 -0
  243. package/packages/plugin-runtime/computer/provider.ts +19 -0
  244. package/packages/plugin-runtime/computer/target-authority.ts +190 -0
  245. package/packages/plugin-runtime/computer/target-persistence.ts +54 -0
  246. package/packages/plugin-runtime/external/index.ts +1 -0
  247. package/packages/plugin-runtime/external/unix-jsonl-transport.ts +457 -0
  248. package/packages/plugin-runtime/index.ts +3 -0
  249. package/packages/protocols/browser/index.ts +1 -0
  250. package/packages/protocols/browser/session.ts +98 -0
  251. package/packages/protocols/computer/contract.ts +199 -0
  252. package/packages/protocols/computer/index.ts +1 -0
  253. package/packages/protocols/failure/contract.ts +158 -0
  254. package/packages/protocols/failure/index.ts +1 -0
  255. package/packages/protocols/handoff/index.ts +1 -0
  256. package/packages/protocols/handoff/status.ts +22 -0
  257. package/packages/protocols/mcp/execution-context.ts +11 -0
  258. package/packages/protocols/mcp/index.ts +2 -0
  259. package/packages/protocols/mcp/tool-contract.ts +42 -0
  260. package/packages/workflow-runtime/api/index.ts +2 -0
  261. package/packages/workflow-runtime/application/interpreter.ts +342 -0
  262. package/packages/workflow-runtime/domain/workflow-asset.ts +223 -0
  263. package/packages/workflow-runtime/index.ts +1 -0
  264. package/scripts/assemble-template.ts +1 -1
  265. package/scripts/benchmark-computer-hotpath.ts +255 -0
  266. package/scripts/benchmark-controller-round2.ts +54 -2
  267. package/scripts/benchmark-ios-agent-device.ts +3 -6
  268. package/scripts/benchmark-mcp-transport.ts +3 -4
  269. package/scripts/benchmark-operational-memory-activation.ts +235 -0
  270. package/scripts/benchmark-operational-shadow.ts +28 -0
  271. package/scripts/bootstrap-runtime-maintenance-recovery.sh +4 -1
  272. package/scripts/canary-chatgpt-provider-delivery.ts +97 -0
  273. package/scripts/canary-controller-semantic-wait.ts +195 -0
  274. package/scripts/canary-global-hook.sh +2 -2
  275. package/scripts/check-mcp-compatibility.ts +173 -7
  276. package/scripts/check-platform-support.mjs +28 -2
  277. package/scripts/check-public-docs.sh +1 -1
  278. package/scripts/check-release-readiness.sh +1 -1
  279. package/scripts/check-repository-hygiene.mjs +92 -0
  280. package/scripts/check-runtime-architecture.mjs +1206 -95
  281. package/scripts/check-source-duplication.mjs +9 -1
  282. package/scripts/check-tarball-install-smoke.sh +98 -15
  283. package/scripts/controller-ngrok-rotation.sh +5 -4
  284. package/scripts/create-project-dirs.sh +10 -74
  285. package/scripts/forge-local-recovery-helper.mjs +204 -0
  286. package/scripts/forge-uu-remote-rescue-helper.d.mts +31 -0
  287. package/scripts/forge-uu-remote-rescue-helper.mjs +409 -0
  288. package/scripts/forge-windows-host-recovery-helper.mjs +136 -0
  289. package/scripts/hook-shim.sh +2 -2
  290. package/scripts/init-project.sh +12 -70
  291. package/scripts/install-desktop-operator-registration.ts +4 -2
  292. package/scripts/install-independent-windows-wsl-recovery.ts +125 -0
  293. package/scripts/install-standalone-recovery.ts +122 -10
  294. package/scripts/install-uu-remote-rescue-registration.ts +74 -0
  295. package/scripts/install-windows-host-recovery-registration.ts +22 -0
  296. package/scripts/lib/controller-home-env.sh +6 -3
  297. package/scripts/lib/project-init-lib.sh +39 -582
  298. package/scripts/migrate-chatgpt-automation-schedules.ts +2 -2
  299. package/scripts/migrate-windows-wsl-controller-home.ts +306 -0
  300. package/scripts/open-source-audit-allowlist.txt +12 -1
  301. package/scripts/portability-bindings.mjs +70 -0
  302. package/scripts/run-bounded-command.mjs +55 -0
  303. package/scripts/run-bun-test-file.ts +22 -6
  304. package/scripts/run-governed-gate.ts +4 -1
  305. package/scripts/smoke-mcp-http-runtime.ts +1 -1
  306. package/scripts/smoke-runtime-recovery.ts +34 -1
  307. package/scripts/smoke-schedule-engine.ts +1 -1
  308. package/scripts/stage-runtime-release.ts +6 -1
  309. package/scripts/test-governance.ts +51 -2
  310. package/src/cli/agent-jobs/job-manager.ts +10 -1
  311. package/src/cli/chatgpt-browser/bind-server.ts +2 -1
  312. package/src/cli/chatgpt-browser/binding.ts +20 -10
  313. package/src/cli/chatgpt-browser/bridge-extension.ts +75 -0
  314. package/src/cli/chatgpt-browser/bridge-provider.ts +376 -11
  315. package/src/cli/chatgpt-browser/engine.ts +10 -11
  316. package/src/cli/chatgpt-browser/native-provider.ts +24 -83
  317. package/src/cli/chatgpt-browser/oracle-provider.ts +5 -3
  318. package/src/cli/chatgpt-browser/types.ts +1 -0
  319. package/src/cli/commands/bootstrap-control.ts +334 -0
  320. package/src/cli/commands/brain-assistant.ts +38 -0
  321. package/src/cli/commands/brain.ts +193 -40
  322. package/src/cli/commands/chatgpt.ts +127 -0
  323. package/src/cli/commands/computer.ts +437 -0
  324. package/src/cli/commands/doctor.ts +18 -1
  325. package/src/cli/commands/init-hook.ts +71 -61
  326. package/src/cli/commands/init.ts +3 -1
  327. package/src/cli/commands/mcp.ts +16 -10
  328. package/src/cli/commands/plugin.ts +38 -12
  329. package/src/cli/commands/recovery.ts +493 -80
  330. package/src/cli/commands/runtime.ts +9 -4
  331. package/src/cli/commands/setup-profile.ts +89 -39
  332. package/src/cli/commands/status.ts +2 -1
  333. package/src/cli/controller/check-runner.ts +487 -98
  334. package/src/cli/controller/context/types.ts +7 -1
  335. package/src/cli/controller/context-pack.ts +23 -3
  336. package/src/cli/controller/issue-store.ts +1 -1
  337. package/src/cli/controller/systemd-user.ts +110 -0
  338. package/src/cli/controller/types.ts +10 -70
  339. package/src/cli/controller/worklog.ts +67 -13
  340. package/src/cli/editing/edit-operation-contract.ts +92 -0
  341. package/src/cli/editing/edit-session.ts +289 -13
  342. package/src/cli/github/plugin.ts +17 -12
  343. package/src/cli/hook/route-registry.ts +3 -5
  344. package/src/cli/hook/runtime.ts +49 -3
  345. package/src/cli/index.ts +3 -0
  346. package/src/cli/local-bridge/connector-freshness.ts +2 -2
  347. package/src/cli/local-bridge/console-automations.ts +2 -2
  348. package/src/cli/local-bridge/facade-api.ts +41 -14
  349. package/src/cli/local-bridge/job-store.ts +1 -1
  350. package/src/cli/local-bridge/server.ts +24 -27
  351. package/src/cli/mcp/access-mode.ts +2 -132
  352. package/src/cli/mcp/access-tools.ts +2 -387
  353. package/src/cli/mcp/audit.ts +2 -32
  354. package/src/cli/mcp/auth.ts +2 -404
  355. package/src/cli/mcp/instructions.ts +2 -34
  356. package/src/cli/mcp/legacy-context.ts +2 -16
  357. package/src/cli/mcp/legacy-tool-service.ts +2 -5308
  358. package/src/cli/mcp/multi-repository.ts +2 -436
  359. package/src/cli/mcp/oauth.ts +2 -375
  360. package/src/cli/mcp/openai-secure-tunnel.ts +2 -0
  361. package/src/cli/mcp/paths.ts +2 -140
  362. package/src/cli/mcp/policy.ts +2 -232
  363. package/src/cli/mcp/post-finalize-work-attribution.ts +2 -150
  364. package/src/cli/mcp/proxy-env.ts +2 -62
  365. package/src/cli/mcp/readiness-projection.ts +2 -24
  366. package/src/cli/mcp/redaction.ts +2 -21
  367. package/src/cli/mcp/repo.ts +2 -24
  368. package/src/cli/mcp/repository-tools.ts +2 -1585
  369. package/src/cli/mcp/server.ts +2 -951
  370. package/src/cli/mcp/setup.ts +2 -737
  371. package/src/cli/mcp/tool-capability-cache.ts +2 -87
  372. package/src/cli/mcp/tool-contract.ts +2 -14
  373. package/src/cli/mcp/tools.ts +2 -9
  374. package/src/cli/mcp/toolset-names.ts +2 -70
  375. package/src/cli/mcp/toolset-selection.ts +2 -41
  376. package/src/cli/mcp/toolset.ts +2 -336
  377. package/src/cli/mcp/transports/AGENTS.md +1 -10
  378. package/src/cli/mcp/transports/CLAUDE.md +1 -10
  379. package/src/cli/mcp/transports/http.ts +2 -1414
  380. package/src/cli/mcp/transports/session-registry.ts +2 -490
  381. package/src/cli/mcp/transports/stdio.ts +2 -8
  382. package/src/cli/mcp/types.ts +2 -41
  383. package/src/cli/mcp/umbrella-tools.ts +2 -117
  384. package/src/cli/repositories/command-executor.ts +64 -18
  385. package/src/cli/repositories/command-scope.ts +117 -1
  386. package/src/cli/repositories/controller-home.ts +119 -1
  387. package/src/cli/repositories/identity.ts +13 -0
  388. package/src/cli/repositories/registry.ts +68 -49
  389. package/src/cli/repositories/repository-snapshot.ts +53 -7
  390. package/src/cli/repositories/runtime-storage.ts +27 -2
  391. package/src/cli/repositories/safe-patch.ts +34 -38
  392. package/src/cli/repositories/selected-path-actions.ts +22 -2
  393. package/src/cli/repositories/structured-git.ts +105 -25
  394. package/src/cli/runtime/helper-runner.ts +7 -0
  395. package/src/cli/runtime-invocation.ts +8 -1
  396. package/src/cli/tools/codegraph.ts +44 -25
  397. package/src/core/adoption/manifest-templates.ts +1 -1
  398. package/src/core/adoption/plan.ts +3 -26
  399. package/src/core/adoption/workflow-contract-plan.ts +17 -9
  400. package/src/effects/process-runner.ts +8 -14
  401. package/src/runtime/context/assistant-context.ts +154 -0
  402. package/src/runtime/context/assistant-work-context.ts +147 -0
  403. package/src/runtime/context/codegraph-cache-boundary.ts +255 -0
  404. package/src/runtime/context/codegraph-read-provider.ts +55 -22
  405. package/src/runtime/context/codegraph-sidecar.cjs +8 -1
  406. package/src/runtime/context/context-closure.ts +268 -0
  407. package/src/runtime/context/context-plane.ts +211 -0
  408. package/src/runtime/context/project-engineering-contract.ts +60 -0
  409. package/src/runtime/control-plane/bootstrap/capability-provider.ts +74 -0
  410. package/src/runtime/control-plane/bootstrap/control-api.ts +57 -0
  411. package/src/runtime/control-plane/bootstrap/index.ts +5 -0
  412. package/src/runtime/control-plane/bootstrap/state-machine.ts +141 -0
  413. package/src/runtime/control-plane/bootstrap/store.ts +21 -0
  414. package/src/runtime/control-plane/bootstrap/types.ts +87 -0
  415. package/src/runtime/control-plane/cleanup-artifact-retention.ts +328 -0
  416. package/src/runtime/control-plane/codegraph-cache-retention.ts +164 -0
  417. package/src/runtime/control-plane/concurrency/work-execution-concurrency.ts +320 -0
  418. package/src/runtime/control-plane/execution/content-equivalent-commit-authority.ts +169 -0
  419. package/src/runtime/control-plane/execution/controller-authority-recovery.ts +350 -0
  420. package/src/runtime/control-plane/execution/direct-canonical-work-reconciliation.ts +85 -0
  421. package/src/runtime/control-plane/execution/direct-edit-work-completion.ts +417 -100
  422. package/src/runtime/control-plane/execution/edit-validation-coordinator.ts +103 -15
  423. package/src/runtime/control-plane/execution/implementation-review-content.ts +95 -0
  424. package/src/runtime/control-plane/execution/repository-work-attribution.ts +2 -2
  425. package/src/runtime/control-plane/execution/retained-work-resume.ts +336 -6
  426. package/src/runtime/control-plane/execution/validation.ts +28 -3
  427. package/src/runtime/control-plane/execution/work-authority-reconciler.ts +116 -0
  428. package/src/runtime/control-plane/execution/work-completion-authority.ts +44 -2
  429. package/src/runtime/control-plane/execution/work-evidence-policy.ts +34 -3
  430. package/src/runtime/control-plane/execution/work-execution-support.ts +42 -22
  431. package/src/runtime/control-plane/execution/work-finalization-service.ts +1103 -166
  432. package/src/runtime/control-plane/execution/work-handle-authority.ts +267 -16
  433. package/src/runtime/control-plane/execution/work-handle-store.ts +77 -0
  434. package/src/runtime/control-plane/execution/work-head-settlement.ts +75 -0
  435. package/src/runtime/control-plane/execution/work-lifecycle-audit.ts +145 -23
  436. package/src/runtime/control-plane/execution/work-operation-service.ts +49 -13
  437. package/src/runtime/control-plane/execution/work-preparation-service.ts +31 -15
  438. package/src/runtime/control-plane/execution/work-remote-delivery.ts +1 -1
  439. package/src/runtime/control-plane/execution/work-task-receipt.ts +20 -1
  440. package/src/runtime/control-plane/execution/work-terminal-cleanup.ts +407 -76
  441. package/src/runtime/control-plane/execution/work-validation-reconciler.ts +88 -18
  442. package/src/runtime/control-plane/execution/work-verification-context.ts +1 -1
  443. package/src/runtime/control-plane/execution/work-verification-service.ts +258 -4
  444. package/src/runtime/control-plane/execution/work-verification-snapshot.ts +200 -15
  445. package/src/runtime/control-plane/facade/capability-registry.ts +21 -10
  446. package/src/runtime/control-plane/facade/controller-round-relay.ts +3 -1118
  447. package/src/runtime/control-plane/facade/controller-session-store.ts +2 -488
  448. package/src/runtime/control-plane/facade/goal-workloop-access.ts +6 -3
  449. package/src/runtime/control-plane/facade/goal-workloop.ts +972 -137
  450. package/src/runtime/control-plane/facade/handoff-inbox-application.ts +158 -0
  451. package/src/runtime/control-plane/facade/handoff-inbox-store.ts +10 -0
  452. package/src/runtime/control-plane/facade/index.ts +4 -2
  453. package/src/runtime/control-plane/facade/operation-digest.ts +22 -58
  454. package/src/runtime/control-plane/facade/plan-contract-store.ts +1004 -38
  455. package/src/runtime/control-plane/facade/repository-work-admission.ts +19 -1
  456. package/src/runtime/control-plane/facade/requirement-authority.ts +218 -0
  457. package/src/runtime/control-plane/facade/requirement-board.ts +6 -1
  458. package/src/runtime/control-plane/facade/rh-work-operation-contract.ts +48 -0
  459. package/src/runtime/control-plane/facade/semantic-admission.ts +8 -16
  460. package/src/runtime/control-plane/facade/suggested-actions.ts +4 -1
  461. package/src/runtime/control-plane/facade/types.ts +189 -532
  462. package/src/runtime/control-plane/facade/work-admission-policy.ts +84 -35
  463. package/src/runtime/control-plane/facade/work-contract-store.ts +2 -1043
  464. package/src/runtime/control-plane/facade/work-implementation-review.ts +2 -0
  465. package/src/runtime/control-plane/facade/work-state-machine.ts +2 -250
  466. package/src/runtime/control-plane/generated-cache-retention.ts +239 -18
  467. package/src/runtime/control-plane/global-scheduler/durable-admission.ts +12 -1
  468. package/src/runtime/control-plane/global-scheduler/maintenance.ts +76 -13
  469. package/src/runtime/control-plane/global-scheduler/periodic-cleanup-entry.ts +55 -0
  470. package/src/runtime/control-plane/global-scheduler/periodic-cleanup-process.ts +98 -0
  471. package/src/runtime/control-plane/global-scheduler/reconciliation.ts +1 -1
  472. package/src/runtime/control-plane/global-scheduler/scheduler-worker-entry.ts +10 -0
  473. package/src/runtime/control-plane/global-scheduler/scheduler.ts +173 -81
  474. package/src/runtime/control-plane/global-scheduler/worker-launch.ts +18 -6
  475. package/src/runtime/control-plane/launcher/chatgpt-round-continuation.ts +397 -0
  476. package/src/runtime/control-plane/launcher/chatgpt-work-binding-store.ts +2 -177
  477. package/src/runtime/control-plane/launcher/chatgpt-work-continuation.ts +301 -560
  478. package/src/runtime/control-plane/launcher/provider-mcp-bootstrap.ts +20 -4
  479. package/src/runtime/control-plane/launcher/thin-launcher.ts +50 -4
  480. package/src/runtime/control-plane/lifecycle-retention-metrics.ts +60 -0
  481. package/src/runtime/control-plane/persistence/experience-store.ts +169 -0
  482. package/src/runtime/control-plane/persistence/operational-prior-store.ts +348 -0
  483. package/src/runtime/control-plane/persistence/requirement-store.ts +30 -22
  484. package/src/runtime/control-plane/persistence/sqlite-store.ts +545 -76
  485. package/src/runtime/control-plane/persistence/workflow-content-store.ts +98 -0
  486. package/src/runtime/control-plane/persistence/workflow-registry-store.ts +186 -0
  487. package/src/runtime/control-plane/persistence/workflow-run-store.ts +123 -0
  488. package/src/runtime/control-plane/release-retention.ts +56 -16
  489. package/src/runtime/control-plane/repository-namespace-retention.ts +208 -0
  490. package/src/runtime/control-plane/routing/route-policy.ts +19 -0
  491. package/src/runtime/control-plane/runtime-cleanup.ts +574 -37
  492. package/src/runtime/control-plane/runtime-generation.ts +6 -0
  493. package/src/runtime/control-plane/workspace/semantic-sync-service.ts +465 -0
  494. package/src/runtime/control-plane/workspace/workspace-store.ts +80 -0
  495. package/src/runtime/diagnostics/incident-repair.ts +406 -0
  496. package/src/runtime/diagnostics/mcp-timing.ts +125 -6
  497. package/src/runtime/diagnostics/performance.ts +6 -14
  498. package/src/runtime/diagnostics/read-only-tool.ts +1 -1
  499. package/src/runtime/evidence/artifact-store.ts +65 -2
  500. package/src/runtime/evidence/operational-shadow.ts +38 -0
  501. package/src/runtime/evidence/process-check-receipt.ts +5 -43
  502. package/src/runtime/evidence/sensitive-output.ts +4 -4
  503. package/src/runtime/execution/jobs/receipt-recovery.ts +1 -1
  504. package/src/runtime/execution/jobs/store.ts +121 -2
  505. package/src/runtime/execution/managed-workspace.ts +55 -5
  506. package/src/runtime/execution/process-runtime/canary.ts +19 -5
  507. package/src/runtime/execution/process-runtime/check-classification.ts +48 -0
  508. package/src/runtime/execution/process-runtime/check-facade.ts +23 -9
  509. package/src/runtime/execution/process-runtime/check-receipt.ts +1 -1
  510. package/src/runtime/execution/process-runtime/check-result-retention.ts +132 -0
  511. package/src/runtime/execution/process-runtime/check-result.ts +73 -2
  512. package/src/runtime/execution/process-runtime/check-runner-sidecar.ts +42 -3
  513. package/src/runtime/execution/process-runtime/check-storage.ts +187 -0
  514. package/src/runtime/execution/process-runtime/command-facade.ts +38 -87
  515. package/src/runtime/execution/process-runtime/index.ts +1 -0
  516. package/src/runtime/execution/process-runtime/interactive-admission.ts +2 -1
  517. package/src/runtime/execution/process-runtime/lightweight-managed.ts +32 -1
  518. package/src/runtime/execution/process-runtime/persisted-check.ts +128 -21
  519. package/src/runtime/execution/process-runtime/resource-claims.ts +60 -3
  520. package/src/runtime/execution/process-runtime/runtime.ts +132 -15
  521. package/src/runtime/execution/process-runtime/types.ts +22 -0
  522. package/src/runtime/execution/workers/executor.ts +16 -13
  523. package/src/runtime/execution/workers/worker-entry.ts +1 -1
  524. package/src/runtime/gateway/mcp/execution-tools.ts +2 -207
  525. package/src/runtime/gateway/mcp/legacy-ios-tool-adapter.ts +2 -61
  526. package/src/runtime/gateway/mcp/persisted-check-process.ts +2 -3
  527. package/src/runtime/gateway/mcp/process-tools.ts +2 -289
  528. package/src/runtime/gateway/mcp/router.ts +2 -1125
  529. package/src/runtime/gateway/mcp/runtime-tool-definitions.ts +2 -565
  530. package/src/runtime/gateway/mcp/runtime-tools.ts +2 -6651
  531. package/src/runtime/gateway/mcp/work-validation-reconciler.ts +2 -1
  532. package/src/runtime/maintenance/cleanup.ts +38 -24
  533. package/src/runtime/platform/browser-product-discovery.ts +174 -0
  534. package/src/runtime/platform/computer-platform.ts +14 -0
  535. package/src/runtime/platform/executable-discovery.ts +54 -0
  536. package/src/runtime/platform/fetch-http-server.ts +90 -0
  537. package/src/runtime/platform/service-manager.ts +138 -0
  538. package/src/runtime/platform/windows-host-discovery.ts +118 -0
  539. package/src/runtime/platform/windows-recovery-deployment.ts +67 -0
  540. package/src/runtime/plugins/action-application.ts +135 -0
  541. package/src/runtime/plugins/app-store-connect-adapter.ts +9 -21
  542. package/src/runtime/plugins/browser-adapter.ts +140 -100
  543. package/src/runtime/plugins/browser-automation-service.ts +15 -36
  544. package/src/runtime/plugins/browser-macos-bridge.ts +69 -21
  545. package/src/runtime/plugins/browser-manifest-surface.ts +30 -6
  546. package/src/runtime/plugins/browser-native-session-service.ts +1 -1
  547. package/src/runtime/plugins/browser-provider-registry.ts +2 -109
  548. package/src/runtime/plugins/browser-registration.ts +16 -0
  549. package/src/runtime/plugins/browser-runtime-contract.ts +2 -154
  550. package/src/runtime/plugins/browser-runtime.ts +41 -9
  551. package/src/runtime/plugins/browser-session-authority.ts +101 -291
  552. package/src/runtime/plugins/browser-session-legacy-migration.ts +203 -0
  553. package/src/runtime/plugins/browser-session-store.ts +229 -36
  554. package/src/runtime/plugins/browser-session-types.ts +2 -98
  555. package/src/runtime/plugins/capability-authorization-grants.ts +17 -0
  556. package/src/runtime/plugins/catalog-trust.ts +82 -0
  557. package/src/runtime/plugins/computer-registration.ts +839 -0
  558. package/src/runtime/plugins/config-store.ts +119 -0
  559. package/src/runtime/plugins/desktop-operator-external-policy.ts +932 -0
  560. package/src/runtime/plugins/desktop-operator-registration.ts +111 -8
  561. package/src/runtime/plugins/errors.ts +8 -1
  562. package/src/runtime/plugins/external-adapter.ts +45 -322
  563. package/src/runtime/plugins/external-provider-policy.ts +48 -0
  564. package/src/runtime/plugins/external-registration.ts +9 -1
  565. package/src/runtime/plugins/external-unix-socket-probe.cjs +9 -3
  566. package/src/runtime/plugins/external-unix-socket.ts +64 -193
  567. package/src/runtime/plugins/first-party-external-registration.ts +163 -0
  568. package/src/runtime/plugins/first-party-registry.ts +3 -1
  569. package/src/runtime/plugins/github-adapter.ts +1 -2
  570. package/src/runtime/plugins/gmail-adapter.ts +6 -6
  571. package/src/runtime/plugins/google-calendar-adapter.ts +6 -6
  572. package/src/runtime/plugins/google-shared.ts +31 -46
  573. package/src/runtime/plugins/google-tasks-adapter.ts +6 -6
  574. package/src/runtime/plugins/ios-adapter.ts +1 -2
  575. package/src/runtime/plugins/local-system-adapter.ts +180 -0
  576. package/src/runtime/plugins/macos-capability-broker.ts +15 -105
  577. package/src/runtime/plugins/resend-adapter.ts +15 -24
  578. package/src/runtime/plugins/store.ts +493 -51
  579. package/src/runtime/plugins/types.ts +8 -1
  580. package/src/runtime/plugins/uu-remote-rescue-registration.ts +155 -0
  581. package/src/runtime/plugins/windows-host-recovery-install.ts +68 -0
  582. package/src/runtime/plugins/windows-host-recovery-registration.ts +85 -0
  583. package/src/runtime/plugins/xiaohongshu-publish.ts +86 -430
  584. package/src/runtime/projections/controller-context.ts +12 -6
  585. package/src/runtime/projections/git-status-sampler.ts +73 -22
  586. package/src/runtime/projections/materialized-view.ts +14 -8
  587. package/src/runtime/recovery/capability-action-application.ts +228 -0
  588. package/src/runtime/recovery/index.ts +3 -0
  589. package/src/runtime/recovery/lifecycle-inventory.ts +338 -0
  590. package/src/runtime/recovery/local-jobs-repair.ts +14 -14
  591. package/src/runtime/recovery/maintenance-executor.ts +358 -76
  592. package/src/runtime/recovery/quarantine-retention.ts +256 -0
  593. package/src/runtime/release/identity.ts +6 -0
  594. package/src/runtime/resources/leases/store.ts +1 -1
  595. package/src/runtime/root/active-execution-power-assertion.ts +139 -0
  596. package/src/runtime/root/assistant-learning-loop.ts +45 -0
  597. package/src/runtime/root/browser-session-composition.ts +59 -0
  598. package/src/runtime/root/computer-composition.ts +191 -0
  599. package/src/runtime/root/computer-target-composition.ts +16 -0
  600. package/src/runtime/root/computer-target-persistence.ts +39 -0
  601. package/src/runtime/root/controller-round-composition.ts +107 -0
  602. package/src/runtime/root/controller-services.ts +2 -0
  603. package/src/runtime/root/entry.ts +4 -3
  604. package/src/runtime/root/gateway-adapter.ts +3 -3
  605. package/src/runtime/root/local-bridge.ts +5 -2
  606. package/src/runtime/root/mcp-transport.ts +5 -5
  607. package/src/runtime/root/package-connector-service.ts +108 -56
  608. package/src/runtime/root/package-runtime-release.ts +86 -18
  609. package/src/runtime/root/package-runtime-service.ts +63 -86
  610. package/src/runtime/root/release-execution-canary.ts +71 -0
  611. package/src/runtime/root/release-loader.ts +68 -0
  612. package/src/runtime/root/release-manifest.ts +106 -2
  613. package/src/runtime/root/release-materialize.ts +103 -4
  614. package/src/runtime/root/release-store.ts +31 -2
  615. package/src/runtime/root/runtime.ts +240 -25
  616. package/src/runtime/root/scheduled-controller-composition.ts +51 -0
  617. package/src/runtime/root/scheduler.ts +12 -4
  618. package/src/runtime/root/service-runner.ts +1 -1
  619. package/src/runtime/root/service.ts +41 -16
  620. package/src/runtime/root/status.ts +1 -0
  621. package/src/runtime/root/types.ts +24 -1
  622. package/src/runtime/shared/local-bridge-surface.ts +1 -1
  623. package/src/runtime/shared/process-environment.ts +19 -4
  624. package/src/runtime/shared/storage-capacity.ts +68 -0
  625. package/src/runtime/standalone-recovery/controller-home-migration.ts +1116 -0
  626. package/src/runtime/standalone-recovery/core.ts +984 -230
  627. package/src/runtime/standalone-recovery/entry.ts +182 -51
  628. package/src/runtime/standalone-recovery/independent-host-rescue.ts +172 -0
  629. package/src/runtime/standalone-recovery/installer.ts +212 -104
  630. package/src/runtime/standalone-recovery/mcp-server.ts +243 -0
  631. package/src/runtime/standalone-recovery/mutation-identity-contract.ts +21 -0
  632. package/src/runtime/standalone-recovery/operation-lock.ts +160 -0
  633. package/src/runtime/standalone-recovery/performance.ts +135 -0
  634. package/src/runtime/standalone-recovery/release.ts +5 -0
  635. package/src/runtime/watchdog/workflow-watchdog.ts +1 -1
  636. package/src/runtime/workflow/schedules/chatgpt-automation-migration.ts +1 -1
  637. package/src/runtime/workflow/schedules/engine.ts +191 -343
  638. package/src/runtime/workflow/schedules/pending-activation.ts +1 -1
  639. package/src/runtime/workflow/schedules/settlement.ts +2 -191
  640. package/src/runtime/workflow/schedules/store.ts +2 -607
  641. package/src/runtime/workflow/schedules/types.ts +2 -127
  642. package/src/runtime/workflow/schedules/work-continuation.ts +180 -15
  643. package/src/runtime/workflows/first-party/xiaohongshu.ts +122 -0
  644. package/src/runtime/workflows/runtime.ts +486 -0
  645. package/src/testing/test-governance.ts +90 -29
  646. package/assets/templates/helpers/archive-architecture-request.sh +0 -244
  647. package/docs/architecture/history/README.md +0 -7
  648. package/docs/architecture/history/chatgpt-handoff-facade.md +0 -397
  649. package/docs/architecture/history/global-hook-runtime.md +0 -166
  650. package/docs/architecture/history/ios-semantic-automation-provider-v2.md +0 -170
  651. package/docs/architecture/requests/archive/2026/20260528-154740-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
  652. package/docs/architecture/requests/archive/2026/20260528-154816-assets-hooks-assets-hooks-hook-input-sh.md +0 -59
  653. package/docs/architecture/requests/archive/2026/20260528-161851-ai-harness-workflow-contract-json-ai-harness-workflow-contract-json.md +0 -59
  654. package/docs/architecture/requests/archive/2026/20260528-161853-scripts-check-task-workflow-sh-scripts-check-task-workflow-sh.md +0 -59
  655. package/docs/architecture/requests/archive/2026/20260528-161911-assets-workflow-contract-v1-json-assets-workflow-contract-v1-json.md +0 -59
  656. package/docs/architecture/requests/archive/2026/20260528-222416-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
  657. package/docs/architecture/requests/archive/2026/20260528-222444-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
  658. package/docs/architecture/requests/archive/2026/20260528-222457-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
  659. package/docs/architecture/requests/archive/2026/20260528-222648-ai-hooks-ai-hooks-pre-edit-guard-sh.md +0 -59
  660. package/docs/architecture/requests/archive/2026/20260528-222705-ai-hooks-ai-hooks-worktree-guard-sh.md +0 -59
  661. package/docs/architecture/requests/archive/2026/20260528-222726-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  662. package/docs/architecture/requests/archive/2026/20260528-222727-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  663. package/docs/architecture/requests/archive/2026/20260528-224736-ai-hooks-ai-hooks-hook-input-sh.md +0 -59
  664. package/docs/architecture/requests/archive/2026/20260528-233259-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  665. package/docs/architecture/requests/archive/2026/20260528-233335-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
  666. package/docs/architecture/requests/archive/2026/20260528-233456-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  667. package/docs/architecture/requests/archive/2026/20260528-233457-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
  668. package/docs/architecture/requests/archive/2026/20260528-233637-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -59
  669. package/docs/architecture/requests/archive/2026/20260528-233638-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -59
  670. package/docs/architecture/requests/archive/2026/20260529-000322-root-package-json.md +0 -59
  671. package/docs/architecture/requests/archive/2026/20260529-004238-ai-hooks-ai-hooks-lib-workflow-state-sh.md +0 -59
  672. package/docs/architecture/requests/archive/2026/20260529-020654-ai-harness-policy-json-ai-harness-policy-json.md +0 -63
  673. package/docs/architecture/requests/archive/2026/20260529-094236-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
  674. package/docs/architecture/requests/archive/2026/20260529-094323-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
  675. package/docs/architecture/requests/archive/2026/20260529-094331-ai-hooks-ai-hooks-prompt-guard-sh.md +0 -60
  676. package/docs/architecture/requests/archive/2026/20260529-094339-assets-hooks-assets-hooks-prompt-guard-sh.md +0 -60
  677. package/docs/architecture/requests/archive/2026/20260529-094430-assets-hooks-assets-hooks-session-start-context-sh.md +0 -60
  678. package/docs/architecture/requests/archive/2026/20260529-094446-ai-hooks-ai-hooks-session-start-context-sh.md +0 -60
  679. package/docs/architecture/requests/archive/2026/20260613-002040-runtime-harness-hook-adapters.md +0 -68
  680. package/docs/architecture/requests/archive/2026/root.md +0 -68
  681. package/docs/architecture/requests/archive/2026/runtime-harness-hook-adapters.md +0 -76
  682. package/docs/architecture/requests/archive/2026/verification-evals-checks.md +0 -68
  683. package/docs/architecture/requests/archive/2026/workflow-engine-contract-assets.md +0 -69
  684. package/scripts/archive-architecture-request.sh +0 -4
  685. package/scripts/run-skill-evals.ts +0 -1022
@@ -15,10 +15,15 @@ coverage/
15
15
 
16
16
  # External references
17
17
  _ref/
18
+ .codegraph
18
19
  .codegraph/
19
20
 
20
21
  # Local operations state
21
22
  _ops/
23
+ .repo-harness/
24
+ .forge/browser
25
+ .forge/interactions
26
+ .forge/plugins
22
27
 
23
28
  # Environment
24
29
  .env
@@ -195,7 +200,7 @@ Complete this inventory before implementation. If any line is unknown, keep the
195
200
  - Implementation notes file: `tasks/notes/{{ARTIFACT_STEM}}.notes.md`
196
201
  - Template: `.claude/templates/contract.template.md`
197
202
  - Verification command: `bash .ai/harness/scripts/verify-contract.sh --contract tasks/contracts/{{ARTIFACT_STEM}}.contract.md --strict`
198
- - Active plan rule: `.ai/harness/active-plan` is authoritative for this worktree when present; `.ai/harness/active-worktree` records the owning worktree; `.claude/.active-plan` is a legacy fallback during transition. Do not infer active execution from the latest non-archived plan.
203
+ - Active plan rule: `.ai/harness/active-plan` is authoritative for this worktree when present; `.ai/harness/active-worktree` records the owning worktree; `.claude/.active-plan` is a legacy fallback during transition. Do not infer active execution from plan filename order, recency, or mere presence.
199
204
 
200
205
  ## Handoff
201
206
 
@@ -408,7 +413,7 @@ EOF_TEMPLATE_IMPLEMENTATION_NOTES
408
413
  )
409
414
  PI_CONTEXT_PROFILE_DEFAULT="stable-root-progressive-subdir"
410
415
  PI_RECOVERY_PROFILE_DEFAULT="hybrid"
411
- PI_STATE_PROFILE_DEFAULT="file-backed"
416
+ PI_STATE_PROFILE_DEFAULT="controller-home"
412
417
  PI_ORCHESTRATION_PROFILE_DEFAULT="shared-long-running-harness"
413
418
  PI_EVALUATION_PROFILE_DEFAULT="browser-qa"
414
419
  PI_HANDOFF_PROFILE_DEFAULT="artifact-aware"
@@ -565,9 +570,8 @@ user-level and central-first:
565
570
  `~/.codex/hooks.json` / `~/.claude/settings.json` -> `forge-hook` ->
566
571
  packaged hooks from the installed forge runtime.
567
572
 
568
- The files under `.ai/hooks/lib/` are kept only for repo workflow helper scripts
569
- that source shared shell utilities. Full hook runtime scripts are not vendored
570
- here by default because stale copies can be mistaken for the active hook path.
573
+ No hook runtime or shared hook libraries are vendored here by default because
574
+ stale copies can be mistaken for the active hook path. Only this README remains.
571
575
 
572
576
  Set `"hook_source": "repo"` in `.ai/harness/policy.json` only for self-hosted
573
577
  hook development or an explicitly reviewed repo-local hook override.
@@ -595,6 +599,7 @@ pi_prune_repo_local_hook_runtime() {
595
599
  -o -name 'codex.hooks.template.json' \
596
600
  -o -name '.version' \) \
597
601
  -delete
602
+ rm -rf "$hooks_dir/lib"
598
603
  }
599
604
 
600
605
  pi_install_hook_assets() {
@@ -639,26 +644,6 @@ pi_install_hook_assets() {
639
644
  fi
640
645
 
641
646
  pi_prune_repo_local_hook_runtime "$hooks_dir" "$mode"
642
-
643
- if [[ "$mode" != "apply" ]]; then
644
- echo "[dry-run] mkdir -p \"$hooks_dir/lib\""
645
- else
646
- mkdir -p "$hooks_dir/lib"
647
- fi
648
-
649
- if [[ -d "$hooks_assets_dir/lib" ]]; then
650
- while IFS= read -r hook_lib; do
651
- local lib_name
652
- lib_name="$(basename "$hook_lib")"
653
- if [[ "$mode" != "apply" ]]; then
654
- echo "[dry-run] cp \"$hook_lib\" \"$hooks_dir/lib/$lib_name\""
655
- continue
656
- fi
657
- cp "$hook_lib" "$hooks_dir/lib/$lib_name"
658
- chmod +x "$hooks_dir/lib/$lib_name" 2>/dev/null || true
659
- done < <(find "$hooks_assets_dir/lib" -maxdepth 1 -type f -name '*.sh' | sort)
660
- fi
661
-
662
647
  pi_write_hook_runtime_readme "$hooks_dir" "$mode"
663
648
  }
664
649
 
@@ -964,15 +949,20 @@ pi_install_workflow_contract() {
964
949
  local target_dir="$1"
965
950
  local contract_asset="$2"
966
951
  local mode="${3:-apply}"
967
- local output_path="$target_dir/.ai/harness/workflow-contract.json"
952
+ local output_path="$target_dir/forge.config.json"
968
953
 
969
954
  if [[ "$mode" != "apply" ]]; then
970
- echo "[dry-run] install workflow contract into $output_path"
955
+ echo "[dry-run] install declarative Forge project marker into $output_path"
971
956
  return 0
972
957
  fi
973
958
 
974
- mkdir -p "$(dirname "$output_path")"
975
- cp "$contract_asset" "$output_path"
959
+ cat > "$output_path" <<'EOF_FORGE_PROJECT_CONFIG'
960
+ {
961
+ "schemaVersion": 1,
962
+ "forge": { "enabled": true },
963
+ "runtimeState": "controller-home"
964
+ }
965
+ EOF_FORGE_PROJECT_CONFIG
976
966
  }
977
967
 
978
968
  pi_install_templates() {
@@ -1039,7 +1029,7 @@ pi_install_helpers() {
1039
1029
  local target_dir="$1"
1040
1030
  local helpers_dir="$2"
1041
1031
  local mode="${3:-apply}"
1042
- local helper_names="${4:-new-spec.sh new-sprint.sh new-plan.sh capture-plan.sh plan-to-todo.sh contract-run.ts contract-worktree.sh ship-worktrees.sh archive-workflow.sh refresh-current-status.sh prepare-handoff.sh verify-contract.sh summarize-failures.sh verify-sprint.sh sprint-backlog.sh check-task-sync.sh check-deploy-sql-order.sh check-architecture-sync.sh check-agent-tooling.sh check-context-files.sh check-brain-manifest.sh sync-brain-docs.sh check-skill-version.ts select-agent-context-blocks.sh ensure-task-workflow.sh check-task-workflow.sh switch-plan.sh workflow-contract.ts inspect-project-state.ts migrate-workflow-docs.ts migrate-project-template.sh capability-resolver.ts architecture-event.ts capability-config.ts architecture-queue.sh archive-architecture-request.sh context-contract-sync.sh workstream-sync.sh prepare-codex-handoff.sh codex-handoff-resume.sh}"
1032
+ local helper_names="${4:-new-spec.sh new-sprint.sh new-plan.sh capture-plan.sh plan-to-todo.sh contract-run.ts contract-worktree.sh ship-worktrees.sh archive-workflow.sh refresh-current-status.sh prepare-handoff.sh verify-contract.sh summarize-failures.sh verify-sprint.sh sprint-backlog.sh check-task-sync.sh check-deploy-sql-order.sh check-architecture-sync.sh check-agent-tooling.sh check-context-files.sh check-brain-manifest.sh sync-brain-docs.sh check-skill-version.ts select-agent-context-blocks.sh ensure-task-workflow.sh check-task-workflow.sh switch-plan.sh workflow-contract.ts inspect-project-state.ts migrate-workflow-docs.ts migrate-project-template.sh capability-resolver.ts architecture-event.ts capability-config.ts architecture-queue.sh context-contract-sync.sh workstream-sync.sh prepare-codex-handoff.sh codex-handoff-resume.sh}"
1043
1033
  local scripts_dir="$target_dir/scripts"
1044
1034
  local runtime_dir="$target_dir/.ai/harness/scripts"
1045
1035
  local helper_name
@@ -1066,7 +1056,7 @@ pi_install_helpers() {
1066
1056
  fi
1067
1057
 
1068
1058
  mkdir -p "$scripts_dir"
1069
- mkdir -p "$runtime_dir"
1059
+ if pi_repo_pins_helper_source "$target_dir"; then mkdir -p "$runtime_dir"; fi
1070
1060
 
1071
1061
  if [[ -d "$helpers_dir" ]]; then
1072
1062
  for helper_name in $helper_names; do
@@ -1490,10 +1480,11 @@ $PI_REFERENCE_CONFIG_STUB_MARKER
1490
1480
  > **Version**: $version
1491
1481
  > **Source Command**: \`forge docs path $doc_id\`
1492
1482
 
1493
- This repo keeps workflow facts and runtime artifacts locally under \`.ai/\`.
1494
- The full generic runtime guide is supplied by the installed forge
1495
- package/user-level runtime so each repository does not need to refresh a full
1496
- copy of shared documentation.
1483
+ This repo keeps authored project documentation and declarative configuration in Git.
1484
+ Mutable Requirement/Plan/Work, verification/evidence, session, plugin, and cache state
1485
+ belongs to Forge Controller Home. The full generic runtime guide is supplied by the
1486
+ installed forge package/user-level runtime so each repository does not need to refresh
1487
+ a full copy of shared documentation.
1497
1488
 
1498
1489
  Use:
1499
1490
 
@@ -1710,7 +1701,6 @@ pi_write_capability_registry() {
1710
1701
  "claude": "$rel_dir/CLAUDE.md"
1711
1702
  },
1712
1703
  "architecture_module": "docs/architecture/modules/$domain/$name.md",
1713
- "workstream_dir": "tasks/workstreams/$domain/$name",
1714
1704
  "lsp_profile": "$(pi_lsp_profile)",
1715
1705
  "verification_hints": ["record local commands here before implementation"]
1716
1706
  }
@@ -1774,12 +1764,6 @@ JS_EOF
1774
1764
  "priority": "low",
1775
1765
  "char_budget": 900,
1776
1766
  "purpose": "deep-doc"
1777
- },
1778
- {
1779
- "path": "tasks/workstreams/**/*.md",
1780
- "priority": "high",
1781
- "char_budget": 1200,
1782
- "purpose": "capability-workstream"
1783
1767
  }
1784
1768
  EOF_CONTEXT_ENTRY
1785
1769
  return 0
@@ -1820,435 +1804,10 @@ EOF_CONTEXT_ENTRY
1820
1804
  "priority": "low",
1821
1805
  "char_budget": 900,
1822
1806
  "purpose": "deep-doc"
1823
- },
1824
- {
1825
- "path": "tasks/workstreams/**/*.md",
1826
- "priority": "high",
1827
- "char_budget": 1200,
1828
- "purpose": "capability-workstream"
1829
1807
  }
1830
1808
  EOF_CONTEXT_ENTRY
1831
1809
  }
1832
1810
 
1833
- pi_write_harness_policy() {
1834
- local target_dir="$1"
1835
- local mode="${2:-apply}"
1836
- local output_file="$target_dir/.ai/harness/policy.json"
1837
- local default_file
1838
- local merged_file
1839
-
1840
- if [[ "$mode" != "apply" ]]; then
1841
- echo "[dry-run] write $output_file"
1842
- return 0
1843
- fi
1844
-
1845
- mkdir -p "$(dirname "$output_file")"
1846
- default_file="$(mktemp)"
1847
- merged_file="$(mktemp)"
1848
- cat > "$default_file" <<EOF_POLICY
1849
- {
1850
- "version": 1,
1851
- "active_plan": {
1852
- "marker_file": ".ai/harness/active-plan",
1853
- "legacy_marker_file": ".claude/.active-plan",
1854
- "directory": "plans",
1855
- "archive_directory": "plans/archive",
1856
- "glob": "plan-*.md",
1857
- "active_worktree_marker_file": ".ai/harness/active-worktree",
1858
- "source_of_truth": "per-worktree explicit marker with active-worktree owner; legacy Claude marker fallback only"
1859
- },
1860
- "tasks": {
1861
- "todo_file": "tasks/todos.md",
1862
- "current_status_file": "tasks/current.md",
1863
- "lessons_file": "tasks/lessons.md",
1864
- "research_dir": "docs/researches",
1865
- "workstreams_dir": "tasks/workstreams",
1866
- "contracts_dir": "tasks/contracts",
1867
- "reviews_dir": "tasks/reviews",
1868
- "notes_dir": "tasks/notes"
1869
- },
1870
- "prds": {
1871
- "dir": "plans/prds",
1872
- "template_file": ".claude/templates/prd.template.md",
1873
- "statuses": ["Draft", "Approved", "Superseded"],
1874
- "rule": "PRDs live in plans/prds as the upper planning layer. They decompose docs/spec.md intent into product direction, acceptance scenarios, module behavior, data model, performance targets, and developer handoff. Sprints reference PRDs through Source PRD and decompose them into ordered execution backlogs."
1875
- },
1876
- "sprints": {
1877
- "dir": "plans/sprints",
1878
- "active_marker_file": ".ai/harness/sprint/active-sprint",
1879
- "template_file": ".claude/templates/sprint.template.md",
1880
- "helper_script": "scripts/sprint-backlog.sh",
1881
- "statuses": ["Draft", "Approved", "Executing", "Done", "Archived"],
1882
- "rule": "PRDs live in plans/prds as the upper planning layer. Sprints live in plans/sprints as long-task execution backlogs; each sprint row is expanded with Waza \$think into a detailed plans/plan-*.md before the plan -> contract -> worktree flow; tasks/todos.md stays the deferred-goal ledger"
1883
- },
1884
- "reference_material": {
1885
- "dir": "_ref",
1886
- "mode": "external-ignored",
1887
- "commit_policy": "never commit _ref contents",
1888
- "rule": "use _ref as an occasional ignored external reference checkout cache for upstream/source comparison only; refresh from external sources instead of editing as product code; when it influences a decision, cite the source repo plus commit/tag and path in tasks/notes/ or docs/researches/"
1889
- },
1890
- "operations": {
1891
- "dir": "deploy",
1892
- "private_dir": "_ops",
1893
- "tracked": ["deploy/README.md", "deploy/scripts/", "deploy/submissions/", "deploy/runbooks/", "deploy/release-checklists/", "deploy/sql/", "deploy/*.md", "deploy/env/.env.example"],
1894
- "ignored": ["_ops/"],
1895
- "rule": "commit deployment runbooks, submission materials, release checklists, helper scripts, ordered SQL files, and env examples under deploy/; keep deploy SQL in deploy/sql/ with 4-digit ascending prefixes; keep keys, tokens, real env values, provider state, artifacts, logs, and scratch files in ignored _ops/ only"
1896
- },
1897
- "context": {
1898
- "profile": "$(pi_context_profile)",
1899
- "map_file": ".ai/context/context-map.json",
1900
- "capability_registry_file": ".ai/context/capabilities.json",
1901
- "capability_resolver": "scripts/capability-resolver.ts",
1902
- "capability_config": "scripts/capability-config.ts",
1903
- "capability_match_rule": "longest-prefix; same-length ambiguity fails",
1904
- "functional_block_selector": {
1905
- "script": "scripts/select-agent-context-blocks.sh",
1906
- "config_file": ".ai/context/agent-context-blocks.txt",
1907
- "env": "FORGE_CONTEXT_BLOCKS",
1908
- "rule": "compatibility selector; capability registry is the source of truth"
1909
- }
1910
- },
1911
- "harness": {
1912
- "policy_file": ".ai/harness/policy.json",
1913
- "checks_file": ".ai/harness/checks/latest.json",
1914
- "failure_log_file": ".ai/harness/failures/latest.jsonl",
1915
- "events_file": ".ai/harness/events.jsonl",
1916
- "architecture_events_file": ".ai/harness/architecture/events.jsonl",
1917
- "runs_dir": ".ai/harness/runs",
1918
- "helper_runtime_dir": ".ai/harness/scripts",
1919
- "helper_compat_dir": "scripts",
1920
- "helper_source": "package",
1921
- "helper_package_dir": "assets/templates/helpers"
1922
- },
1923
- "architecture": {
1924
- "index_file": "docs/architecture/index.md",
1925
- "requests_dir": "docs/architecture/requests",
1926
- "snapshots_dir": "docs/architecture/snapshots",
1927
- "diagrams_dir": "docs/architecture/diagrams",
1928
- "domains_dir": "docs/architecture/domains",
1929
- "modules_dir": "docs/architecture/modules",
1930
- "diagram_skill": "mermaid",
1931
- "diagram_skill_source": "~/.codex/skills/mermaid",
1932
- "vendoring_policy": "do-not-vendor-diagram-skill-assets",
1933
- "freshness_gate": "advisory",
1934
- "gate_min_severity": "medium",
1935
- "pending_card_scope": "capability",
1936
- "pending_block_begin": "<!-- BEGIN ARCHITECTURE PENDING REQUESTS -->",
1937
- "pending_block_end": "<!-- END ARCHITECTURE PENDING REQUESTS -->",
1938
- "queue_script": ".ai/harness/scripts/architecture-queue.sh",
1939
- "contract_block_begin": "<!-- BEGIN ARCHITECTURE CONTRACT -->",
1940
- "contract_block_end": "<!-- END ARCHITECTURE CONTRACT -->",
1941
- "rule": "hooks record architecture queue cards and sync controlled local context blocks; agents author semantic snapshots and diagrams"
1942
- },
1943
- "workstreams": {
1944
- "dir": "tasks/workstreams",
1945
- "scope": "capability",
1946
- "projection": "local-contract-active-pointer-and-current-slice",
1947
- "todo_projection": "tasks/todos.md",
1948
- "rule": "durable multi-session progress lives under tasks/workstreams/<domain>/<capability>; current plan execution lives in the plan Task Breakdown; tasks/todos.md records deferred goals only"
1949
- },
1950
- "information_lifecycle": {
1951
- "notes": {
1952
- "dir": "tasks/notes",
1953
- "purpose": "task-local implementation decisions, deviations, tradeoffs, and open questions",
1954
- "promotion": "archive on workflow close; promote only repeated or durable findings"
1955
- },
1956
- "evidence": {
1957
- "latest": ".ai/harness/checks/latest.json",
1958
- "snapshots_dir": ".ai/harness/runs",
1959
- "purpose": "raw verification records used to audit notes, reviews, and future promotion"
1960
- },
1961
- "assets": {
1962
- "sources": [".ai/harness/policy.json", ".ai/harness/workflow-contract.json", ".ai/hooks/", "scripts/", "docs/reference-configs/"],
1963
- "promotion_rule": "only promote patterns after verified reuse across tasks or fixtures"
1964
- },
1965
- "memory": {
1966
- "sources": ["docs/researches/", "tasks/lessons.md", "gbrain"],
1967
- "rule": "memory is advisory; current repo state and evidence override summaries"
1968
- },
1969
- "external_knowledge": {
1970
- "default_brain_path": "brain/<project>/*",
1971
- "project_path": "brain/<project>/*",
1972
- "manifest_file": ".ai/harness/brain-manifest.json",
1973
- "drift_check": "scripts/check-brain-manifest.sh",
1974
- "sync_script": "scripts/sync-brain-docs.sh",
1975
- "hook_trigger": "PostToolUse Edit|Write for manifest entries with sync.direction=repo-to-brain",
1976
- "rule": "external knowledge stores long-lived explanations, runbooks, and patterns only; repo-local contracts, hooks, scripts, checks, and evidence remain authoritative",
1977
- "sync_rule": "only explicitly opted-in repo-to-brain manifest entries may be written to the default brain vault; pointer-only externalized stubs remain check-only"
1978
- }
1979
- },
1980
- "session": {
1981
- "continuation_file": ".ai/harness/session/continuation.md",
1982
- "resume_file": ".ai/harness/session/resume.md",
1983
- "global_resume_dir": "~/.codex/handoffs",
1984
- "auto_start_new_session": false,
1985
- "authority": "rebuildable-host-session-cache-only"
1986
- },
1987
- "plan_capture": {
1988
- "script": "scripts/capture-plan.sh",
1989
- "sources": ["host-plan-mode", "forge-plan", "forge-sprint"],
1990
- "rule": "Forge /plan or host planning mode may capture decision-complete source plans into plans/plan-*.md; migrated lifecycle execution remains owned by Runtime Plan/Work state"
1991
- },
1992
- "planning": {
1993
- "pending_orchestration_file": ".ai/harness/planning/pending.json",
1994
- "source_of_truth": "transient host planning bridge only; captured plans are source artifacts, while migrated Runtime Plan/Work lifecycle state is authoritative in the Canonical Runtime"
1995
- },
1996
- "guards": {
1997
- "edit_plan_gate": "advice",
1998
- "edit_plan_gate_modes": ["enforce", "advice", "off"],
1999
- "rule": "pre-edit-guard advises when implementation lacks an active plan; execution remains available unless a real safety boundary blocks it"
2000
- },
2001
- "sidecar_research": {
2002
- "default": true,
2003
- "output_dir": "docs/researches",
2004
- "preferred_runners": ["subagent", "codex exec --json", "main-thread trace"],
2005
- "spawn_decision": "main agent decides from task breadth, context impact, raw-log volume, and callable runner availability; do not ask the user for spawn confirmation",
2006
- "fallback_runner": "main-thread trace",
2007
- "main_thread_policy": "if spawning is not worthwhile or no sidecar runner is callable, perform bounded research in the main thread; consume conclusions and evidence paths, not raw logs"
2008
- },
2009
- "documentation": {
2010
- "profile": "$(pi_documentation_profile)",
2011
- "reference_source": "user-level-runtime-docs",
2012
- "reference_stub_marker": "$PI_REFERENCE_CONFIG_STUB_MARKER",
2013
- "reference_resolver": "forge docs path <doc-id>",
2014
- "required": ["docs/spec.md", "docs/architecture/index.md"],
2015
- "on_demand": ["docs/brief.md", "docs/tech-stack.md", "docs/decisions.md", "docs/architecture.md", "docs/packages.md"],
2016
- "reference_configs": [$(pi_policy_reference_config_names | pi_json_string_array_from_lines)],
2017
- "rule": "create optional docs only when the agent has concrete repo evidence or the user asks; docs/reference-configs contains repo-local pointer stubs while full generic runtime docs live in the user-level/package forge install"
2018
- },
2019
- "lsp_profiles": {
2020
- "default": "$(pi_lsp_profile)",
2021
- "selection": "functional-block-first",
2022
- "rule": "use block-level LSP/tooling hints before broad repo assumptions"
2023
- },
2024
- "worktree_strategy": {
2025
- "auto_on_conflict": true,
2026
- "auto_for_contract_tasks": true,
2027
- "branch_prefix": "codex/",
2028
- "base_branch": "main",
2029
- "worktree_dir_template": "../{{repo}}-wt-{{slug}}",
2030
- "start_script": "scripts/contract-worktree.sh start --plan <plan-file>",
2031
- "finish_script": "scripts/contract-worktree.sh finish",
2032
- "cleanup_script": "scripts/contract-worktree.sh cleanup --slug <slug>",
2033
- "conflict_signals": [
2034
- "dirty_worktree_overlaps_task_files",
2035
- "current_branch_not_suitable_for_task",
2036
- "existing_changes_unrelated_but_would_block_review",
2037
- "task_requires_clean_validation_surface"
2038
- ],
2039
- "validation_route": "forge:/review",
2040
- "merge_back": {
2041
- "target": "main",
2042
- "requires_clean_check": true,
2043
- "preserve_unrelated_changes": true
2044
- }
2045
- },
2046
- "upgrade": {
2047
- "strategy_version": 1,
2048
- "supported_legacy_versions": ["pre-tasks-first", "tasks-first-without-contract-manifest", "current-v1"],
2049
- "action_classes": {
2050
- "preserve": "keep user-authored hooks, ignored reference material, private operations state, secrets, and local env files unchanged",
2051
- "archive": "move user-authored legacy workflow documents or checklists into archive/research surfaces before refresh",
2052
- "reconfigure": "merge managed config defaults without overwriting explicit repo overrides",
2053
- "remove": "delete only workflow-contract actions marked ownership=known_generated"
2054
- },
2055
- "cleanup": {
2056
- "source": ".ai/harness/workflow-contract.json#migrations.upgrade.actions",
2057
- "remove_only_ownership": "known_generated",
2058
- "unknown_files": "preserve-or-archive",
2059
- "custom_hooks": "preserve",
2060
- "ignored_reference_material": "preserve",
2061
- "local_operations_state": "preserve",
2062
- "local_secrets": "preserve"
2063
- },
2064
- "reporting": {
2065
- "inspector_field": "upgrade_plan",
2066
- "dry_run_required": true
2067
- }
2068
- },
2069
- "profiles": {
2070
- "orchestration": "$(pi_orchestration_profile)",
2071
- "evaluation": "$(pi_evaluation_profile)",
2072
- "handoff": "$(pi_handoff_profile)",
2073
- "recovery": "$(pi_recovery_profile)",
2074
- "state": "$(pi_state_profile)"
2075
- },
2076
- "external_tooling": {
2077
- "routing": {
2078
- "primary": "forge",
2079
- "optional_complex_helper": "gstack",
2080
- "optional_daily_helper": "waza",
2081
- "optional_knowledge_helper": "gbrain"
2082
- },
2083
- "hosts": $(pi_external_tooling_hosts_json),
2084
- "mode": "optional-enhancements",
2085
- "detection": "init-migrate",
2086
- "readiness_report": "forge run check-agent-tooling --host codex",
2087
- "waza": {
2088
- "source_repo": "tw93/Waza",
2089
- "source_url": "https://github.com/tw93/Waza.git",
2090
- "managed_skills": ["think", "hunt", "check", "health"],
2091
- "primary_host": "codex",
2092
- "codex_primary_path": "~/.codex/skills",
2093
- "staging_cache_path": "~/.agents/skills",
2094
- "sync_mode": "stage-upstream-then-copy-to-codex",
2095
- "host_drift_policy": "report-per-host-version-staging-and-upstream-drift"
2096
- },
2097
- "codex_automation_profile": {
2098
- "required_skills": [],
2099
- "optional_skills": ["health", "check", "mermaid"],
2100
- "mode": "optional-codex-runtime-reference",
2101
- "source": "~/.codex/skills",
2102
- "routes": {
2103
- "workflow_health_optional": "waza:health",
2104
- "review_helper_optional": "waza:check",
2105
- "architecture_diagram_optional": "mermaid"
2106
- },
2107
- "vendoring_policy": "do-not-vendor-skill-body"
2108
- },
2109
- "diagram_design": {
2110
- "skill_name": "mermaid",
2111
- "primary_host": "codex",
2112
- "codex_primary_path": "~/.codex/skills/mermaid",
2113
- "sync_mode": "external-installed-skill",
2114
- "vendoring_policy": "do-not-vendor"
2115
- },
2116
- "gbrain": {
2117
- "mcp": "$(pi_external_tooling_gbrain_mcp)"
2118
- },
2119
- "codegraph": {
2120
- "package": "@colbymchenry/codegraph",
2121
- "primary_host": "both",
2122
- "install_mode": "target-aware-mcp",
2123
- "codex_config_path": "~/.codex/config.toml",
2124
- "claude_config_path": "~/.claude.json",
2125
- "index_dir": ".codegraph",
2126
- "readiness": "forge-bundled-backend; host-mcp-optional",
2127
- "hook_policy": "do-not-block-hooks",
2128
- "install_command": "bun add -g @colbymchenry/codegraph && forge tools configure codegraph --target codex --location global",
2129
- "project_init_command": "codegraph init -i .",
2130
- "sync_command": "codegraph sync .",
2131
- "vendoring_policy": "do-not-add-package-dependency"
2132
- }
2133
- },
2134
- "agentic_development": {
2135
- "routing": {
2136
- "direct": "forge:/direct",
2137
- "plan": "forge:/plan",
2138
- "debug": "forge:/debug",
2139
- "review": "forge:/review",
2140
- "release": "forge:/release",
2141
- "scale": "forge:/scale"
2142
- },
2143
- "due_diligence": {
2144
- "levels": ["P1_GLOBAL_ARCHITECTURE", "P2_DATA_FLOW_TRACE", "P3_DESIGN_DECISION"],
2145
- "explicit_report_required_for": ["architecture", "debug", "risky_refactor", "deployment", "auth_payment_data", "shared_contract"]
2146
- }
2147
- },
2148
- "enforcement": {
2149
- "worktree_guard": "warn-by-default",
2150
- "verification_gate": "contract-and-review",
2151
- "completion_requires_checks": true
2152
- }
2153
- }
2154
- EOF_POLICY
2155
-
2156
- if [[ -f "$output_file" ]]; then
2157
- if ! pi_merge_json_defaults "$default_file" "$output_file" "$merged_file"; then
2158
- cp "$default_file" "$merged_file"
2159
- fi
2160
- elif ! pi_merge_json_defaults "$default_file" "$default_file" "$merged_file"; then
2161
- cp "$default_file" "$merged_file"
2162
- else
2163
- :
2164
- fi
2165
-
2166
- mv "$merged_file" "$output_file"
2167
- rm -f "$default_file"
2168
- }
2169
-
2170
- pi_write_brain_manifest() {
2171
- local target_dir="$1"
2172
- local mode="${2:-apply}"
2173
- local output_file="$target_dir/.ai/harness/brain-manifest.json"
2174
- local project_name
2175
-
2176
- if [[ "$mode" != "apply" ]]; then
2177
- echo "[dry-run] write $output_file if missing"
2178
- return 0
2179
- fi
2180
-
2181
- if [[ -f "$output_file" ]]; then
2182
- return 0
2183
- fi
2184
-
2185
- project_name="$(basename "$target_dir")"
2186
- mkdir -p "$(dirname "$output_file")"
2187
- cat > "$output_file" <<EOF_BRAIN_MANIFEST
2188
- {
2189
- "version": 1,
2190
- "project": "${project_name}",
2191
- "mode": "repo-contract-external-knowledge",
2192
- "default_brain_path": "brain/<project>/*",
2193
- "rules": [
2194
- "repo-local contracts, hooks, scripts, checks, and evidence remain authoritative",
2195
- "default brain stores long-lived explanations, runbooks, decisions, references, and patterns",
2196
- "hook runtime may sync explicitly opted-in repo-to-brain entries only; it must not query gbrain, MCP, or unregistered default brain paths"
2197
- ],
2198
- "entries": []
2199
- }
2200
- EOF_BRAIN_MANIFEST
2201
- }
2202
-
2203
- pi_write_context_map() {
2204
- local target_dir="$1"
2205
- local mode="${2:-apply}"
2206
- local output_file="$target_dir/.ai/context/context-map.json"
2207
- local discoverable_entries
2208
-
2209
- discoverable_entries="$(pi_context_map_discoverable_entries "$target_dir")"
2210
-
2211
- if [[ "$mode" != "apply" ]]; then
2212
- echo "[dry-run] write $output_file"
2213
- return 0
2214
- fi
2215
-
2216
- mkdir -p "$(dirname "$output_file")"
2217
- cat > "$output_file" <<EOF_CONTEXT
2218
- {
2219
- "version": 1,
2220
- "profile": "$(pi_context_profile)",
2221
- "functional_block_selector": {
2222
- "script": "scripts/select-agent-context-blocks.sh",
2223
- "config_file": ".ai/context/agent-context-blocks.txt",
2224
- "env": "FORGE_CONTEXT_BLOCKS",
2225
- "rule": "compatibility selector; capability registry is the source of truth"
2226
- },
2227
- "lsp_profiles": {
2228
- "default": "$(pi_lsp_profile)",
2229
- "selection": "functional-block-first"
2230
- },
2231
- "root_context_files": [
2232
- "CLAUDE.md",
2233
- "AGENTS.md",
2234
- "docs/spec.md",
2235
- "tasks/current.md",
2236
- "tasks/todos.md",
2237
- "tasks/lessons.md",
2238
- ".ai/context/capabilities.json",
2239
- ".ai/harness/policy.json"
2240
- ],
2241
- "discoverable_contexts": [
2242
- ${discoverable_entries}
2243
- ],
2244
- "budgets": {
2245
- "root_total_chars": 12000,
2246
- "per_discoverable_file_chars": 1200
2247
- }
2248
- }
2249
- EOF_CONTEXT
2250
- }
2251
-
2252
1811
  pi_root_context_content() {
2253
1812
  cat <<'EOF_ROOT_CONTEXT'
2254
1813
  # Repo Agent Context
@@ -2258,14 +1817,14 @@ This is the root routing contract for Claude Code and Codex.
2258
1817
  ## Root Workflow Contract
2259
1818
 
2260
1819
  - Keep sibling `CLAUDE.md` and `AGENTS.md` files aligned. Claude Code consumes `CLAUDE.md`; Codex consumes `AGENTS.md`.
2261
- - Treat `docs/spec.md` as stable product truth, `tasks/current.md` as a derived status snapshot, and `tasks/todos.md` as the deferred-goal ledger; current execution stays in the active plan's `## Task Breakdown`.
2262
- - Treat `docs/researches/`, `tasks/lessons.md`, and `.ai/harness/policy.json` as durable workflow context.
2263
- - Use `.ai/context/context-map.json` and `.ai/context/capabilities.json` to discover functional-block contracts.
1820
+ - Treat `docs/spec.md`, `docs/researches/`, `tasks/todos.md`, `tasks/lessons.md`, and intentional architecture/project documents as repository-authored truth.
1821
+ - Mutable Requirement/Plan/Work/Controller, verification/evidence, session/lease, plugin state, and generated Runtime projections live in Forge Controller Home, not repo-local lifecycle files.
1822
+ - `.ai/context/context-map.json` and `.ai/context/capabilities.json`, when present, are declarative context metadata only; they are not execution authority.
2264
1823
  - Do not infer local `CLAUDE.md` or `AGENTS.md` files from broad physical layouts such as `apps/*`, `packages/*`, or `services/*`.
2265
1824
  - Put capability-specific ownership, entrypoints, and verification commands in explicitly selected functional-block contracts.
2266
- - Keep root context concise; route deep implementation detail into plans, task notes, research, workstreams, or architecture docs.
2267
- - Treat `_ref/` as ignored external reference material and `_ops/` as ignored local operations state.
2268
- - Prefer repo-local workflow artifacts over tool-specific chat memory.
1825
+ - Keep root context concise; route durable human-authored detail into product, architecture, research, or intentional project documents.
1826
+ - Treat `_ref/` as ignored external reference material and `_ops/` as ignored local operations residue.
1827
+ - Use Controller Home for mutable workflow state instead of recreating repo-local task/workstream/session projections.
2269
1828
  EOF_ROOT_CONTEXT
2270
1829
  }
2271
1830
 
@@ -2328,7 +1887,7 @@ Keep this file focused on the local contract for this primary functional block.
2328
1887
  - Route deep implementation detail into nearby docs instead of inflating root agent context files.
2329
1888
  - Treat `.ai/context/context-map.json` as the index of discoverable context files.
2330
1889
  - Do not keep pushing context files deeper by default; add lower-level files only for a separately owned functional block with its own commands and invariants.
2331
- - Prefer repo-local workflow artifacts over tool-specific chat memory.
1890
+ - Keep mutable workflow state in Controller Home; repository context files describe authored code and capability boundaries only.
2332
1891
  EOF_DIRECTORY_AGENTS
2333
1892
  )
2334
1893
 
@@ -2368,121 +1927,19 @@ pi_ensure_harness_state_surface() {
2368
1927
  local mode="${2:-apply}"
2369
1928
 
2370
1929
  if [[ "$mode" != "apply" ]]; then
2371
- echo "[dry-run] ensure harness policy/context/events/runs/worktrees/local-jobs/controller/triage/planning in $target_dir"
1930
+ echo "[dry-run] ensure authored Forge knowledge surface in $target_dir; Runtime state remains in Controller Home"
2372
1931
  return 0
2373
1932
  fi
2374
1933
 
2375
- mkdir -p \
2376
- "$target_dir/tasks/notes" \
2377
- "$target_dir/tasks/workstreams" \
2378
- "$target_dir/.ai/context" \
2379
- "$target_dir/.ai/harness/checks" \
2380
- "$target_dir/.ai/harness/session" \
2381
- "$target_dir/.ai/harness/controller/packets" \
2382
- "$target_dir/.ai/harness/projections" \
2383
- "$target_dir/.ai/harness/transfers" \
2384
- "$target_dir/.ai/harness/scripts" \
2385
- "$target_dir/.ai/harness/failures" \
2386
- "$target_dir/.ai/harness/security" \
2387
- "$target_dir/.ai/harness/planning" \
2388
- "$target_dir/.ai/harness/architecture" \
2389
- "$target_dir/.ai/harness/worktrees" \
2390
- "$target_dir/.ai/harness/controller" \
2391
- "$target_dir/.ai/harness/local-jobs" \
2392
- "$target_dir/docs/researches" \
2393
- "$target_dir/docs/architecture/domains" \
2394
- "$target_dir/docs/architecture/modules" \
2395
- "$target_dir/docs/architecture/requests" \
2396
- "$target_dir/docs/architecture/snapshots" \
2397
- "$target_dir/docs/architecture/diagrams" \
2398
- "$target_dir/.ai/harness/runs"
2399
-
2400
- [[ -f "$target_dir/.ai/harness/checks/latest.json" ]] || printf "{}\n" > "$target_dir/.ai/harness/checks/latest.json"
2401
- [[ -f "$target_dir/.ai/harness/session/continuation.md" ]] || printf "# Forge Session Continuation Snapshot\n\n> **Reason**: bootstrap\n" > "$target_dir/.ai/harness/session/continuation.md"
2402
- [[ -f "$target_dir/.ai/harness/session/resume.md" ]] || printf "# Codex Resume Packet\n\n> **Reason**: bootstrap\n" > "$target_dir/.ai/harness/session/resume.md"
2403
- [[ -f "$target_dir/.ai/context/capability-source-map.json" ]] || printf '{\n "version": 1,\n "capabilities": {}\n}\n' > "$target_dir/.ai/context/capability-source-map.json"
2404
- [[ -f "$target_dir/.ai/harness/events.jsonl" ]] || : > "$target_dir/.ai/harness/events.jsonl"
2405
- [[ -f "$target_dir/.ai/harness/architecture/events.jsonl" ]] || : > "$target_dir/.ai/harness/architecture/events.jsonl"
2406
- [[ -f "$target_dir/.ai/harness/architecture/.gitkeep" ]] || : > "$target_dir/.ai/harness/architecture/.gitkeep"
2407
- [[ -f "$target_dir/.ai/harness/failures/latest.jsonl" ]] || : > "$target_dir/.ai/harness/failures/latest.jsonl"
2408
- [[ -f "$target_dir/.ai/harness/security/.gitkeep" ]] || : > "$target_dir/.ai/harness/security/.gitkeep"
2409
- [[ -f "$target_dir/.ai/harness/scripts/.gitkeep" ]] || : > "$target_dir/.ai/harness/scripts/.gitkeep"
2410
- [[ -f "$target_dir/.ai/harness/planning/.gitkeep" ]] || : > "$target_dir/.ai/harness/planning/.gitkeep"
2411
- [[ -f "$target_dir/.ai/harness/worktrees/.gitkeep" ]] || : > "$target_dir/.ai/harness/worktrees/.gitkeep"
2412
- [[ -f "$target_dir/.ai/harness/runs/.gitkeep" ]] || : > "$target_dir/.ai/harness/runs/.gitkeep"
2413
- [[ -f "$target_dir/tasks/workstreams/.gitkeep" ]] || : > "$target_dir/tasks/workstreams/.gitkeep"
1934
+ mkdir -p "$target_dir/tasks" "$target_dir/docs/researches"
2414
1935
  if [[ ! -f "$target_dir/docs/researches/README.md" ]]; then
2415
1936
  cat > "$target_dir/docs/researches/README.md" <<'RESEARCH_README_EOF'
2416
1937
  # Research Reports
2417
1938
 
2418
- Durable research reports live in this directory as topic-scoped Markdown files.
2419
-
2420
- Use `YYYYMMDD-topic.md` names when chronology matters, or `<topic>.md` for
2421
- stable subject reports. Keep task-local implementation decisions in
2422
- `tasks/notes/`, and keep repeated correction-derived rules in `tasks/lessons.md`.
1939
+ Durable, human-reviewable research conclusions live here. Machine execution state,
1940
+ receipts, sessions, caches, and generated reports belong to Forge Controller Home.
2423
1941
  RESEARCH_README_EOF
2424
1942
  fi
2425
- if [[ ! -f "$target_dir/tasks/current.md" ]]; then
2426
- cat > "$target_dir/tasks/current.md" <<'CURRENT_STATUS_EOF'
2427
- # Current Status Snapshot
2428
-
2429
- <!-- generated-by: forge refresh-current-status v1 -->
2430
- <!-- updated_at: bootstrap -->
2431
- <!-- stale_after: 24h -->
2432
-
2433
- > **Status**: Idle
2434
- > **Updated At**: bootstrap
2435
- > **Source Branch**: main
2436
- > **Source Commit**: bootstrap
2437
- > **Target Branch**: main
2438
- > **Stale After**: 24h
2439
- > **Reason**: bootstrap
2440
- > **Derived From**: active-plan, active-sprint, workstreams, handoff, checks, git status
2441
-
2442
- This file is a tracked mainline snapshot derived from repo artifacts. It is not a live lock, not a kanban board, and not an implementation gate. If it is stale, read the source artifacts below.
2443
- CURRENT_STATUS_EOF
2444
- fi
2445
- [[ -f "$target_dir/docs/architecture/domains/.gitkeep" ]] || : > "$target_dir/docs/architecture/domains/.gitkeep"
2446
- [[ -f "$target_dir/docs/architecture/modules/.gitkeep" ]] || : > "$target_dir/docs/architecture/modules/.gitkeep"
2447
- [[ -f "$target_dir/docs/architecture/requests/.gitkeep" ]] || : > "$target_dir/docs/architecture/requests/.gitkeep"
2448
- [[ -f "$target_dir/docs/architecture/snapshots/.gitkeep" ]] || : > "$target_dir/docs/architecture/snapshots/.gitkeep"
2449
- [[ -f "$target_dir/docs/architecture/diagrams/.gitkeep" ]] || : > "$target_dir/docs/architecture/diagrams/.gitkeep"
2450
- if [[ ! -f "$target_dir/docs/architecture/index.md" ]]; then
2451
- cat > "$target_dir/docs/architecture/index.md" <<'ARCHITECTURE_INDEX_EOF'
2452
- # Architecture Index
2453
-
2454
- > Umbrella architecture ledger for current boundaries, drift requests, snapshots, and diagrams.
2455
-
2456
- ## Current Snapshot
2457
-
2458
- - Latest snapshot: (none yet)
2459
- - Semantic diagram source: (none yet)
2460
- - Latest human diagram: (none yet)
2461
-
2462
- ## Architecture Drift Flow
2463
-
2464
- - `.ai/harness/scripts/architecture-queue.sh` records architecture-sensitive edits as requests.
2465
- - `.ai/harness/scripts/archive-architecture-request.sh` archives handled requests after an agent records the resolution status and linked artifacts.
2466
- - `.ai/harness/scripts/context-contract-sync.sh` keeps only the controlled architecture block in functional-block `AGENTS.md` and `CLAUDE.md` files aligned.
2467
- - `.ai/harness/scripts/workstream-sync.sh` keeps durable multi-session progress under `tasks/workstreams/<domain>/<capability>/` and projects only pointers into local contracts.
2468
- - Semantic architecture diagrams live as Mermaid fenced blocks in the relevant module or snapshot Markdown.
2469
- - Human-readable architecture diagrams are optional `mermaid` HTML files in `docs/architecture/diagrams/` and should link back to the Markdown semantic source.
2470
-
2471
- ## Pending Requests
2472
-
2473
- <!-- BEGIN ARCHITECTURE PENDING REQUESTS -->
2474
- - (none)
2475
- <!-- END ARCHITECTURE PENDING REQUESTS -->
2476
-
2477
- ARCHITECTURE_INDEX_EOF
2478
- fi
2479
-
2480
- pi_write_capability_registry "$target_dir" "$mode"
2481
- pi_write_harness_policy "$target_dir" "$mode"
2482
- pi_write_brain_manifest "$target_dir" "$mode"
2483
- pi_write_context_map "$target_dir" "$mode"
2484
- pi_install_root_context_files "$target_dir" "$mode"
2485
- pi_install_directory_context_files "$target_dir" "$mode"
2486
1943
  }
2487
1944
 
2488
1945
  pi_resolve_js_runtime() {
@@ -2642,7 +2099,7 @@ pi_ensure_task_sync() {
2642
2099
  "check:context-files": "forge run check-context-files",
2643
2100
  "check:deploy-sql": "forge run check-deploy-sql-order",
2644
2101
  "check:architecture-sync": "forge run check-architecture-sync",
2645
- "check:task": "bash scripts/check-task-workflow.sh --strict",
2102
+ "check:task": "forge run check-task-workflow --strict",
2646
2103
  "check:task-sync": "forge run check-task-sync",
2647
2104
  "check:task-workflow": "forge run check-task-workflow --strict",
2648
2105
  "sync:brain-docs": "forge run sync-brain-docs --all"
@@ -2668,7 +2125,7 @@ pkg.scripts["check:brain-manifest"] = "forge run check-brain-manifest";
2668
2125
  pkg.scripts["check:context-files"] = "forge run check-context-files";
2669
2126
  pkg.scripts["check:deploy-sql"] = "forge run check-deploy-sql-order";
2670
2127
  pkg.scripts["check:architecture-sync"] = "forge run check-architecture-sync";
2671
- pkg.scripts["check:task"] = "bash scripts/check-task-workflow.sh --strict";
2128
+ pkg.scripts["check:task"] = "forge run check-task-workflow --strict";
2672
2129
  pkg.scripts["check:task-sync"] = "forge run check-task-sync";
2673
2130
  pkg.scripts["check:task-workflow"] = "forge run check-task-workflow --strict";
2674
2131
  pkg.scripts["sync:brain-docs"] = "forge run sync-brain-docs --all";