codex-workflow-v2 2.0.0-beta.13.9 → 2.0.0-beta.14

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 (271) hide show
  1. package/README.md +27 -388
  2. package/dist/reviewer-runtime-build.json +89 -29
  3. package/dist/src/alpha6/adoption.d.ts +2 -0
  4. package/dist/src/alpha6/adoption.js +22 -0
  5. package/dist/src/alpha6/adoption.js.map +1 -1
  6. package/dist/src/alpha6/captured-check-evidence.d.ts +51 -0
  7. package/dist/src/alpha6/captured-check-evidence.js +152 -0
  8. package/dist/src/alpha6/captured-check-evidence.js.map +1 -0
  9. package/dist/src/alpha6/component-owner.d.ts +15 -1
  10. package/dist/src/alpha6/component-owner.js +44 -2
  11. package/dist/src/alpha6/component-owner.js.map +1 -1
  12. package/dist/src/alpha6/corrective-decision-boundary.d.ts +4 -0
  13. package/dist/src/alpha6/corrective-decision-boundary.js +47 -0
  14. package/dist/src/alpha6/corrective-decision-boundary.js.map +1 -0
  15. package/dist/src/alpha6/downstream-proof.d.ts +1 -25
  16. package/dist/src/alpha6/downstream-proof.js +0 -171
  17. package/dist/src/alpha6/downstream-proof.js.map +1 -1
  18. package/dist/src/alpha6/literal-test-invocation.d.ts +2 -0
  19. package/dist/src/alpha6/literal-test-invocation.js +106 -0
  20. package/dist/src/alpha6/literal-test-invocation.js.map +1 -0
  21. package/dist/src/alpha6/milestone.d.ts +2 -0
  22. package/dist/src/alpha6/milestone.js +10 -1
  23. package/dist/src/alpha6/milestone.js.map +1 -1
  24. package/dist/src/alpha6/navigation-dirty-carryover.d.ts +11 -0
  25. package/dist/src/alpha6/navigation-dirty-carryover.js +130 -0
  26. package/dist/src/alpha6/navigation-dirty-carryover.js.map +1 -0
  27. package/dist/src/alpha6/plan-integrity.js +7 -5
  28. package/dist/src/alpha6/plan-integrity.js.map +1 -1
  29. package/dist/src/alpha6/remediation.d.ts +6 -21
  30. package/dist/src/alpha6/remediation.js +161 -476
  31. package/dist/src/alpha6/remediation.js.map +1 -1
  32. package/dist/src/alpha6/root-cause-replan-carryover.d.ts +4 -1
  33. package/dist/src/alpha6/root-cause-replan-carryover.js +29 -5
  34. package/dist/src/alpha6/root-cause-replan-carryover.js.map +1 -1
  35. package/dist/src/beta1/project-transaction.d.ts +3 -1
  36. package/dist/src/beta1/project-transaction.js +6 -2
  37. package/dist/src/beta1/project-transaction.js.map +1 -1
  38. package/dist/src/checks/runner.d.ts +26 -0
  39. package/dist/src/checks/runner.js +223 -0
  40. package/dist/src/checks/runner.js.map +1 -0
  41. package/dist/src/checks/task-sync.d.ts +10 -0
  42. package/dist/src/checks/task-sync.js +41 -0
  43. package/dist/src/checks/task-sync.js.map +1 -0
  44. package/dist/src/checks/worker.d.ts +1 -0
  45. package/dist/src/checks/worker.js +154 -0
  46. package/dist/src/checks/worker.js.map +1 -0
  47. package/dist/src/cli-actions.d.ts +2 -2
  48. package/dist/src/cli-actions.js +3 -15
  49. package/dist/src/cli-actions.js.map +1 -1
  50. package/dist/src/cli.js +14 -98
  51. package/dist/src/cli.js.map +1 -1
  52. package/dist/src/contracts.d.ts +35 -32
  53. package/dist/src/dependency-provenance.d.ts +2 -2
  54. package/dist/src/dependency-provenance.js +12 -69
  55. package/dist/src/dependency-provenance.js.map +1 -1
  56. package/dist/src/domain/base-sync-conflict.d.ts +13 -0
  57. package/dist/src/domain/base-sync-conflict.js +32 -0
  58. package/dist/src/domain/base-sync-conflict.js.map +1 -0
  59. package/dist/src/domain/step-start-admission.d.ts +4 -0
  60. package/dist/src/domain/step-start-admission.js +9 -0
  61. package/dist/src/domain/step-start-admission.js.map +1 -0
  62. package/dist/src/domain/virgin-registration.d.ts +3 -0
  63. package/dist/src/domain/virgin-registration.js +65 -0
  64. package/dist/src/domain/virgin-registration.js.map +1 -0
  65. package/dist/src/errors.d.ts +1 -1
  66. package/dist/src/errors.js.map +1 -1
  67. package/dist/src/gateway-handshake.js +0 -8
  68. package/dist/src/gateway-handshake.js.map +1 -1
  69. package/dist/src/git.d.ts +3 -1
  70. package/dist/src/git.js +41 -14
  71. package/dist/src/git.js.map +1 -1
  72. package/dist/src/graph.js +25 -3
  73. package/dist/src/graph.js.map +1 -1
  74. package/dist/src/index.d.ts +1 -0
  75. package/dist/src/navigation-actions.d.ts +9 -0
  76. package/dist/src/navigation-actions.js +72 -0
  77. package/dist/src/navigation-actions.js.map +1 -0
  78. package/dist/src/navigation-update-artifact.d.ts +5 -0
  79. package/dist/src/navigation-update-artifact.js +227 -0
  80. package/dist/src/navigation-update-artifact.js.map +1 -0
  81. package/dist/src/navigation-update.d.ts +39 -0
  82. package/dist/src/navigation-update.js +82 -0
  83. package/dist/src/navigation-update.js.map +1 -0
  84. package/dist/src/observation.js +52 -29
  85. package/dist/src/observation.js.map +1 -1
  86. package/dist/src/observed-routes.js +5 -6
  87. package/dist/src/observed-routes.js.map +1 -1
  88. package/dist/src/pending-review-update.d.ts +0 -13
  89. package/dist/src/pending-review-update.js +1 -6
  90. package/dist/src/pending-review-update.js.map +1 -1
  91. package/dist/src/reviewer.d.ts +1 -1
  92. package/dist/src/reviewer.js +20 -17
  93. package/dist/src/reviewer.js.map +1 -1
  94. package/dist/src/runtime.d.ts +3 -0
  95. package/dist/src/runtime.js +6 -0
  96. package/dist/src/runtime.js.map +1 -0
  97. package/dist/src/state/corrective-replan-executor.d.ts +10 -0
  98. package/dist/src/state/corrective-replan-executor.js +37 -1
  99. package/dist/src/state/corrective-replan-executor.js.map +1 -1
  100. package/dist/src/state/corrective-replan-public-schema.js +15 -2
  101. package/dist/src/state/corrective-replan-public-schema.js.map +1 -1
  102. package/dist/src/state/corrective-replan-public.js +1 -1
  103. package/dist/src/state/corrective-replan-public.js.map +1 -1
  104. package/dist/src/state/corrective-replan-transaction.d.ts +1 -0
  105. package/dist/src/state/corrective-replan-transaction.js +12 -11
  106. package/dist/src/state/corrective-replan-transaction.js.map +1 -1
  107. package/dist/src/state/corrective-yield-transaction.d.ts +1 -0
  108. package/dist/src/state/corrective-yield-transaction.js +11 -10
  109. package/dist/src/state/corrective-yield-transaction.js.map +1 -1
  110. package/dist/src/state/lock.d.ts +4 -0
  111. package/dist/src/state/lock.js +21 -0
  112. package/dist/src/state/lock.js.map +1 -1
  113. package/dist/src/version.d.ts +1 -1
  114. package/dist/src/version.js +1 -1
  115. package/dist/src/version.js.map +1 -1
  116. package/dist/src/workflow-blocker-route.d.ts +8 -0
  117. package/dist/src/workflow-blocker-route.js +106 -0
  118. package/dist/src/workflow-blocker-route.js.map +1 -0
  119. package/dist/src/workflow.d.ts +48 -63
  120. package/dist/src/workflow.js +666 -1460
  121. package/dist/src/workflow.js.map +1 -1
  122. package/docs/autonomy-guardrails.md +26 -304
  123. package/docs/decisions.md +14 -112
  124. package/docs/development-flow.md +35 -238
  125. package/docs/project-memory.md +31 -50
  126. package/docs/release-app-evidence.md +190 -0
  127. package/docs/release.md +95 -388
  128. package/docs/updating-existing-project.md +19 -717
  129. package/package.json +11 -13
  130. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +2 -2
  131. package/plugins/codex-workflow-gateway/references/chat-dispatch.md +73 -197
  132. package/plugins/codex-workflow-gateway/references/codebase-memory-routing.md +57 -0
  133. package/plugins/codex-workflow-gateway/references/protocol.md +42 -445
  134. package/plugins/codex-workflow-gateway/scripts/chat-dispatch.mjs +7 -1
  135. package/plugins/codex-workflow-gateway/scripts/chat-model-policy.mjs +10 -8
  136. package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +23 -5
  137. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +66 -757
  138. package/references/state-machine.md +4 -4
  139. package/roles/technical-planner.md +1 -1
  140. package/schemas/corrective-decision-event.schema.json +3 -1
  141. package/schemas/project-knowledge-map.schema.json +3 -1
  142. package/schemas/remediation-event.schema.json +10 -1
  143. package/schemas/task.schema.json +46 -2
  144. package/schemas/transition-payloads.schema.json +16 -1
  145. package/src/alpha6/adoption.ts +1123 -0
  146. package/src/alpha6/captured-check-evidence.ts +132 -0
  147. package/src/alpha6/check-support-anchor.ts +128 -0
  148. package/src/alpha6/component-owner.ts +168 -0
  149. package/src/alpha6/corrective-decision-boundary.ts +39 -0
  150. package/src/alpha6/downstream-proof.ts +520 -0
  151. package/src/alpha6/failed-step-planning-recovery.ts +88 -0
  152. package/src/alpha6/handoff.ts +1443 -0
  153. package/src/alpha6/journal.ts +473 -0
  154. package/src/alpha6/literal-test-invocation.ts +84 -0
  155. package/src/alpha6/mechanical-feasibility.ts +488 -0
  156. package/src/alpha6/milestone.ts +2192 -0
  157. package/src/alpha6/navigation-dirty-carryover.ts +154 -0
  158. package/src/alpha6/npm-check-contract.ts +47 -0
  159. package/src/alpha6/plan-integrity.ts +298 -0
  160. package/src/alpha6/plan-risk.ts +1480 -0
  161. package/src/alpha6/preexecution-replan.ts +187 -0
  162. package/src/alpha6/remediation-cause.ts +98 -0
  163. package/src/alpha6/remediation.ts +2438 -0
  164. package/src/alpha6/review.ts +1198 -0
  165. package/src/alpha6/root-cause-replan-carryover.ts +491 -0
  166. package/src/alpha6/store-sidecars.ts +335 -0
  167. package/src/alpha7/autonomy.ts +411 -0
  168. package/src/alpha7/corrective-recovery.ts +1332 -0
  169. package/src/artifacts.ts +130 -0
  170. package/src/beta1/project-transaction.ts +355 -0
  171. package/src/change-explanation.ts +153 -0
  172. package/src/checks/runner.ts +245 -0
  173. package/src/checks/task-sync.ts +41 -0
  174. package/src/checks/worker.ts +149 -0
  175. package/src/cli-actions.ts +107 -0
  176. package/src/cli.ts +1457 -0
  177. package/src/contracts.ts +1494 -0
  178. package/src/credential-output.ts +89 -0
  179. package/src/credential-transport.ts +215 -0
  180. package/src/delegation.ts +190 -0
  181. package/src/dependency-provenance.ts +472 -0
  182. package/src/diagnostics.ts +93 -0
  183. package/src/domain/base-sync-conflict.ts +35 -0
  184. package/src/domain/completed-step-carryover.ts +76 -0
  185. package/src/domain/discovery.ts +27 -0
  186. package/src/domain/plan-semantics.ts +58 -0
  187. package/src/domain/step-start-admission.ts +10 -0
  188. package/src/domain/validation.ts +177 -0
  189. package/src/domain/virgin-registration.ts +46 -0
  190. package/src/errors.ts +24 -0
  191. package/src/fs-utils.ts +61 -0
  192. package/src/gateway-handshake.ts +95 -0
  193. package/src/git.ts +183 -0
  194. package/src/graph.ts +342 -0
  195. package/src/historical-step-provenance.ts +136 -0
  196. package/src/index.ts +23 -0
  197. package/src/lifecycle/canonical-hash.ts +28 -0
  198. package/src/lifecycle/catalog.ts +202 -0
  199. package/src/lifecycle/compiler-inspection.ts +29 -0
  200. package/src/lifecycle/core-static-readiness.ts +132 -0
  201. package/src/lifecycle/corrective-replan-authority.ts +136 -0
  202. package/src/lifecycle/corrective-replan-binding-manifest.ts +51 -0
  203. package/src/lifecycle/corrective-replan-credential-core.ts +408 -0
  204. package/src/lifecycle/corrective-replan-credential-schema.ts +54 -0
  205. package/src/lifecycle/corrective-replan-credentials.ts +48 -0
  206. package/src/lifecycle/corrective-replan.ts +843 -0
  207. package/src/lifecycle/evaluator.ts +48 -0
  208. package/src/lifecycle/fingerprint.ts +488 -0
  209. package/src/lifecycle/immutable.ts +8 -0
  210. package/src/lifecycle/implementation-table.ts +118 -0
  211. package/src/lifecycle/index.ts +8 -0
  212. package/src/lifecycle/schema-artifact.ts +263 -0
  213. package/src/lifecycle/semantic-registry.ts +572 -0
  214. package/src/lifecycle/types.ts +838 -0
  215. package/src/memory.ts +273 -0
  216. package/src/migration.ts +161 -0
  217. package/src/navigation-actions.ts +70 -0
  218. package/src/navigation-update-artifact.ts +198 -0
  219. package/src/navigation-update.ts +121 -0
  220. package/src/observation.ts +225 -0
  221. package/src/observed-routes.ts +660 -0
  222. package/src/operational-contract.ts +125 -0
  223. package/src/pending-review-update.ts +175 -0
  224. package/src/repository.ts +99 -0
  225. package/src/reviewer.ts +1879 -0
  226. package/src/runtime.ts +6 -0
  227. package/src/state/corrective-replan-executor.ts +818 -0
  228. package/src/state/corrective-replan-public-schema.ts +83 -0
  229. package/src/state/corrective-replan-public.ts +908 -0
  230. package/src/state/corrective-replan-transaction.ts +949 -0
  231. package/src/state/corrective-yield-executor.ts +327 -0
  232. package/src/state/corrective-yield-transaction.ts +730 -0
  233. package/src/state/lock.ts +902 -0
  234. package/src/state/store.ts +567 -0
  235. package/src/transition-core.ts +330 -0
  236. package/src/ulid.ts +24 -0
  237. package/src/version.ts +2 -0
  238. package/src/workflow-blocker-route.ts +109 -0
  239. package/src/workflow.ts +10172 -0
  240. package/docs/alpha7.1-implementation-brief.md +0 -268
  241. package/docs/alpha7.2-corrective-context-refresh-brief.md +0 -484
  242. package/docs/alpha7.2.1-remediation-recovery-brief.md +0 -86
  243. package/docs/beta1-stabilization-brief.md +0 -165
  244. package/docs/beta11-plan-integrity-recovery-brief.md +0 -38
  245. package/docs/beta13.2-signal-review-recovery.md +0 -38
  246. package/docs/beta2-initial-assembly-navigation-brief.md +0 -616
  247. package/docs/change-model.md +0 -118
  248. package/docs/delegated-approval.md +0 -254
  249. package/docs/lifecycle/state-machine-stabilization.md +0 -641
  250. package/docs/pdf/README.md +0 -24
  251. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  252. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  253. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  254. package/docs/pdf/requirements.txt +0 -1
  255. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +0 -478
  256. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +0 -506
  257. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +0 -778
  258. package/docs/pending-review-update.md +0 -15
  259. package/docs/problem-briefs/01-pre-implementation-integrity.md +0 -482
  260. package/docs/problem-briefs/02-minimal-step-integrity.md +0 -411
  261. package/docs/problem-briefs/03-minimal-agent-context-integrity.md +0 -358
  262. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +0 -573
  263. package/docs/problem-briefs/BRIEF-TEMPLATE.md +0 -56
  264. package/docs/problem-briefs/README.md +0 -120
  265. package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +0 -90
  266. package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +0 -246
  267. package/docs/split-required-recovery.md +0 -47
  268. package/docs/stable-release-defect-register.md +0 -730
  269. package/docs/validation-report.md +0 -182
  270. package/scripts/generate-pdf-docs.py +0 -524
  271. package/scripts/run-pdf-docs.mjs +0 -62
@@ -1,726 +1,28 @@
1
- # Обновление Workflow V2 в начатом проекте через Codex
1
+ # Updating the one supported consumer
2
2
 
3
- Эта инструкция предназначена для проекта, где Workflow V2 уже создал Discovery, Tasks или
4
- Milestones. Пользователь не выполняет команды самостоятельно: все проверки, установка и
5
- Git-операции поручаются Codex.
3
+ Only the latest package is maintained. The installed dependency remains an exact version, and declared, locked, installed and relevant Git bindings must agree. This is reproducibility, not support for running old releases.
6
4
 
7
- ## Что обновляется, а что сохраняется
5
+ 1. Finish or reach a supported clean boundary using the currently installed local package. Run its `update preflight`; inspect all blockers. An active Step, writer lease, pending/corrupt transaction or unclassified dirty work is not an update boundary.
6
+ 2. Select the published exact target version and install it with `--save-dev --save-exact`. Keep dependency changes separate from product changes and preserve the Task/base history required by the current preflight. Do not amend, reset or hand-edit Workflow evidence.
7
+ 3. Run the newly installed local CLI's handshake, `status`, then `next`. If Core advertises ordinary dependency provenance recovery, run its matching preflight and exact recovery. A dependency-only record never approves product work or Knowledge.
8
+ 4. Follow current Knowledge reconciliation/rebind/authorization and credential routes. Read the actual returned action and local command help; do not replay a historical version recipe or use an external old/new runner over mismatched state.
8
9
 
9
- Версия `codex-workflow-v2` закреплена точным значением в `package.json` и lock-файле каждого
10
- проекта. Поэтому разные проекты могут использовать разные версии. Обновление одного проекта
11
- не переключает остальные.
10
+ If the existing state cannot reach a supported boundary, report the concrete state/HEAD and blocker. There is no general dirty-update bypass. Recovery from already recorded evidence remains bounded by its current reader; no blanket migration or consumer-state rewrite is implied.
12
11
 
13
- Состояние Workflow хранится отдельно от репозитория в
14
- `$CODEX_HOME/workflow-state/v2/projects/<project-id>`. Оно определяется идентичностью Git
15
- репозитория, а не версией npm-пакета. Обычное совместимое обновление заменяет зависимость и
16
- gateway, но не удаляет и не пересоздаёт это состояние. Уже принятые Milestones, ревизии,
17
- авторизации, evidence и Results сохраняются.
12
+ ## Retained navigation checkpoint update
18
13
 
19
- Никогда не разрешайте агенту вручную редактировать, переносить или удалять внешний state.
20
- Команда миграции нужна только тогда, когда документация новой версии прямо сообщает о новой
21
- state schema. Совпадение `stateSchemaVersion` до и после обновления означает, что миграция не
22
- нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
23
- adoption posture.
14
+ The bounded exception supports a ready/planned native `navigation-fix-dirty-carryover` checkpoint,
15
+ one unregistered source dependency commit ending at `2.0.0-beta.13.16`, and exactly one subsequent
16
+ target dependency commit. It requires no leases or pending operations. It does not authorize product work.
24
17
 
25
- ### beta.13.1: legacy PRA compatibility after beta.13
18
+ 1. Obtain the exact target tarball and unpacked target runtime outside the consumer. Before transport, run that target's read-only `update navigation-source-preflight --id <Task> --tarball <artifact> --repo <consumer>`. Require `eligible=true`; retain its `receipt` object outside the checkout. The artifact must match the executing package bytes. Repair stale leases with the installed source, then repeat. An active lease must reach its supported release boundary; absence of a lease requires no repair.
19
+ 2. Only with this receipt and explicit update authorization, create one dependency-only target commit on the bound base branch in a separate checkout, and one on the Task branch directly after source HEAD. Change only the Workflow entries in package.json/package-lock.json; install the same exact tarball locally. Preserve all dirty product bytes. Do not reset, amend, stash, rewrite state or expand scope. For a live update the target must already be published and verified through the release gate; an unpublished package is permitted only in an isolated qualification scenario.
20
+ 3. Run the installed target handshake, status, next; then `update navigation-transport-preflight --id <Task> --tarball <same artifact> --file <receipt>`. Require `eligible=true` and follow its returned `update navigation-recover` with the exact revision, original claimant actor, same receipt/artifact and an explicit reason. The receipt is not authority: Core reconstructs its source proof from Git, state, sidecars, dirty bytes and target artifact. Changed or foreign evidence blocks recovery. The timestamp binds stored Task state, not an editable claim of wall-clock freshness; all evidence is revalidated against the current boundary.
21
+ 4. Recovery registers the two dependency commits in one Task-state write and sets `awaiting_execution_authorization`. It preserves original authorizations, completed Steps and C1. Follow fresh status/next through Knowledge refresh, independent audit and ordinary authorization; only fresh execution authority for the target HEAD can resume the Step. Replaying recovery after the revision changes is rejected. Preserve the source receipt with the update evidence.
26
22
 
27
- `2.0.0-beta.13.1` preserves the beta.13 protocol/schema `2/2` and adds no state migration. The
28
- structural production-edge rule is prospective: every newly written ordinary or atomic
29
- corrective-replan PRA receives the hash-chained `structuralProductionEdgeAuthority=required-v1`
30
- marker, and its current Plan must satisfy the edge contract. A markerless PRA and Task written
31
- before that authority existed remain readable; Workflow must not reinterpret their historical
32
- `runtime-composition` classification as proof that their old Plan contained beta.13 fields.
33
- Historical PRA events from an earlier Plan are hash/shape validated but are not compared with the
34
- current Plan's edges. This compatibility rule never edits, migrates or silently approves external
35
- state. A later Plan/PRA recorded by beta.13.1 must satisfy the full structural boundary.
23
+ The source and target dependency transports are separate Git operations; interrupted transport is
24
+ not a successful update. Diagnose incomplete version/base bindings rather than proceeding to execution.
36
25
 
37
- This does not add signed provenance to local Workflow state. A full privileged rewrite of Task
38
- state and its complete self-hashed sidecar chain remains outside the trust model; repository rules
39
- continue to prohibit manual state edits. The regression proves compatibility and fail-closed
40
- partial mismatch, not authenticity against the machine owner.
26
+ The gateway plugin resolves the installed package; it does not copy Workflow assets into the consumer. Refresh its installed source through the supported plugin installation flow when the package changes, then verify a new Task loads the intended skill. Package text validation alone does not prove the App installation boundary.
41
27
 
42
- The normal safe-update sequence below targets exact `2.0.0-beta.13.1`. It is also the supported
43
- patch path from beta.13 when `status` or `next` reports `STATE_CORRUPT` solely because a markerless
44
- pre-beta.13 PRA lacks production-edge fields: run the old-version read-only preflight first, install
45
- the patch dependency-only, and resume from a fresh handshake. Never edit the PRA sidecar manually.
46
-
47
- ### beta.13: coherent continuation and host-safe credentials
48
-
49
- `2.0.0-beta.13.1` сохраняет `protocolVersion: 2` и `stateSchemaVersion: 2`; отдельная state migration
50
- для перехода с beta.12.19 не нужна. Обновление выполняется только на безопасной границе обычного
51
- `update preflight`: нет running Step, active/stale writer lease, незавершённой transaction/Core
52
- operation и неучтённых dirty product bytes. Если хотя бы одно условие не выполнено, сначала
53
- завершите advertised recovery текущей repository-local версией; установка beta.13.1 сама по себе не
54
- является recovery-route и не разрешает переносить или редактировать внешний state.
55
-
56
- Точный путь обновления:
57
-
58
- 1. Старой repository-local версией зафиксируйте `handshake`, `status`, `next` и read-only
59
- `update preflight`; продолжайте только при `safe=true`.
60
- 2. Установите exact `codex-workflow-v2@2.0.0-beta.13.1` без диапазона и измените только
61
- `package.json` и lock-файл.
62
- 3. Новой repository-local версией подтвердите совпадение declared, locked и installed
63
- `2.0.0-beta.13.1`, прежний `projectId`, protocol/schema `2/2`, затем выполните `handshake`,
64
- `doctor`, компактный `status` и `next`.
65
- 4. Обновите персональный `codex-workflow-gateway` только штатным installer из установленного
66
- exact пакета и продолжайте работу в новом чате, который загрузит новую skill-инструкцию.
67
- 5. Если dependency commit сделал Knowledge Map stale, используйте только свежий advertised
68
- reconcile/rebind route. Не объявляйте обновление пакета доказательством продуктового изменения.
69
-
70
- После beta.13 credential contract меняется на host-safe references. Claim и writer transitions
71
- принимают `--claim-credential-ref` или `--writer-credential-ref`; секретное значение нельзя
72
- передавать в argv, prompt, transcript, stdout/stderr или JSON evidence. Ссылка указывает на локальную
73
- project/entity/action/actor-bound запись с режимом `0600`; one-time claim reference потребляется
74
- после успешного перехода. Старые secret-bearing CLI options fail closed. Если `next` требует свежую
75
- credential после failed Step, lease expiry или claim recovery, следуйте сначала рекламируемому
76
- credential replacement route и используйте только возвращённую reference, не старый secret/token.
77
-
78
- Failed Step beta.13 больше не должен требовать ручного сохранения worktree или глобального lock
79
- repair: Core одной `failed-step-continuation` transaction связывает failure evidence и точный hash
80
- dirty bytes, переводит Task в продолжимое состояние и освобождает lease. Fresh `status -> next`
81
- затем определяет ordinary same-Task fix либо root-cause replan. Количество review/fix циклов не
82
- ограничено числом: replan обязателен только при повторе механически нормализованной причины либо
83
- того же stable external reviewer `causeId` с `planConflict=true`; новая или неклассифицированная
84
- находка остаётся same-Task fix.
85
-
86
- Failed strict review также освобождает exact proven lease в одной transaction с remediation и Task
87
- pause. При повторной authoritative reviewer cause эта transaction одновременно завершает C1 claim,
88
- поэтому fresh `next` может рекламировать root-cause `task plan-set` без Human gate и без живой
89
- write-authority. Прерванная граница после уже записанных review sidecars повторно завершается без
90
- duplicate remediation.
91
-
92
- Для новых Plans beta.13 дополнительно проверяет transitive component owner. Для multi-Step Task
93
- независимая PRA-классификация consumer как `runtime-composition` требует явный structural production
94
- edge: transitive owner Step, consumer Step и named check, который реально выполняет consumer. Planner
95
- не может отключить эту проверку, пропустив flag или edge; простой one-Step runtime остаётся вне неё.
96
- Это проверка структурной полноты, а не доказательство продуктовой
97
- семантики и не реализация P02/P01-B. Generic shadow-history import, P04-B structural replacement и
98
- completed-Step adoption остаются неподдержанными.
99
-
100
- Операционные read-only контракты beta.13:
101
-
102
- - `status` по умолчанию возвращает bounded compact projection; полная история доступна только через
103
- явный `status --full`;
104
- - sealed review packet проходит reviewer runtime preflight без изменения checkout: declared, locked и
105
- repository-local installed Workflow versions совпадают, а runtime build manifest и каждый его JS hash
106
- проверены; каждый вызов заново разрешает recursive runtime dependencies от их фактического parent package
107
- (nested раньше hoisted) и сверяет package manifest и исполняемые файлы по хешам, поэтому warm module cache
108
- не скрывает удалённую, изменённую, конфликтующую или symlink-перенаправленную зависимость;
109
- текущий Node синхронно загружает exact installed gateway/reviewer/workflow graph и подтверждает
110
- package/protocol/schema без child-process scheduler deadline и без кэширования trust decision;
111
- missing install, missing/stale build либо failed module handshake дают
112
- `prepared=false`, и packet не считается готовым; packet всегда несёт `--review-mode ordinary` или
113
- `--review-mode security`; ordinary review не должен неявно запускать security scan;
114
- - observed-route matrix v2 покрывает 13 route classes, фактически наблюдавшихся в Signal: для каждого
115
- класса есть один exact production-transition witness либо real terminal observation. Это не значит,
116
- что проверена каждая action: metadata отдельно помечает `executable-witnessed`, `unwitnessed` и
117
- `unsupported`, а coverage boundary равна `signal-observed-route-class-witnesses`;
118
- - chat replacement, consent inheritance, polling и scheduling остаются эффектами Codex App;
119
- package сообщает только preflight/diagnostics и не утверждает, что выполнил эти действия.
120
-
121
- ### beta.12.19: hash-bound check-support dirty carryover at Task run
122
-
123
- beta.12.18 could validate and transport a historical check-support recovery through a new Plan, but
124
- the final execution boundary still applied the ordinary clean-checkout rule. Consequently fresh
125
- `next` advertised `task run` after dependency registration, Knowledge rebind, Risk Audit and
126
- authorization, while the same `task run` rejected the preserved product bytes.
127
-
128
- beta.12.19 gives navigation and execution one shared fail-closed assessment. Carryover is valid only
129
- when the latest registered Plan-integrity dependency record binds the current history boundary, the
130
- current Plan is that record's Plan or its exact Knowledge-rebind descendant, the planned Step owns
131
- every dirty path, every derived support path is explicit in both `allowedWrites` and
132
- `expectedOutputs`, and the full dirty file list and content hash still match the validated historical
133
- decision. `next` then reports `planIntegrityDirtyCarryover.state=validated`; `task run` may adopt
134
- exactly those bytes. Any mismatch changes `next` to `doctor` and leaves execution blocked.
135
-
136
- An in-flight beta.12.18 Task already in the authorized dirty-carryover posture may use external exact
137
- beta.12.19 `update plan-integrity-update-preflight`. It returns
138
- `compatibilityMode=post-rebind-dirty-carryover` only when the existing registration and all ordinary
139
- version, Git, lease, transaction and Core-operation guards pass. Continue only through the reported
140
- dependency-only transport and fresh repository-local routes. No Human approval is introduced for
141
- this exact machine-proved continuation; checks, Core commit and external sealed review remain
142
- mandatory.
143
-
144
- ### beta.12.18: historical check-support scope adoption after Knowledge rebind
145
-
146
- beta.12.18 closes a bounded post-rebind deadlock. A Task may already contain a valid beta.12.16
147
- `continue-fix` decision that derived one exact check-support path, then refresh Knowledge and adopt
148
- that path explicitly in a new Plan. The historical event must still be validated against its own
149
- Plan hash; comparing it with the new Plan incorrectly reports `STATE_CORRUPT` precisely because the
150
- new Plan now owns the path.
151
-
152
- An external exact beta.12.18 runner recognizes only this exact shape: the Task awaits execution
153
- authorization, no Step is running, one historical check-support decision binds the unchanged dirty
154
- worktree, and one planned Step directly lists every derived support path in both `allowedWrites` and
155
- `expectedOutputs`. Read-only `update plan-integrity-update-preflight` reports
156
- `compatibilityMode=post-rebind-scope-adoption` only when all ordinary version, lease, transaction,
157
- Core-operation, Git-head and dirty-byte guards also pass.
158
-
159
- After `eligible=true`, use the same dependency-only base/Task transport described below. Fresh
160
- repository-local Core registers it only through advertised
161
- `update plan-integrity-dependency-recover`; Knowledge rebind and Risk Audit then follow fresh
162
- `status -> next`. The adopted support path comes from the current Plan, not from implicit reuse of
163
- the historical event. No Human approval is required for this exact machine-proved recovery. Any
164
- additional path, dirty-byte drift, missing explicit Plan ownership, multiple matching events, active
165
- lease or incoherent version surface remains blocked.
166
-
167
- ### beta.12.17: coherent beta.12 Plan-integrity update transport
168
-
169
- `update plan-integrity-update-preflight` больше не связывает совместимый transport с одним
170
- историческим source release. Внешний exact beta.12.17 runner выводит source version из declared
171
- dependency и требует, чтобы locked, installed, current Task branch и active Milestone base
172
- совпадали с ним. Source должен быть exact `2.0.0-beta.12.N`, где `N >= 11` и `N` меньше patch
173
- ordinal текущего runner. Расхождение хотя бы одной поверхности блокирует transport.
174
-
175
- Остальные границы не изменены: ровно одна eligible Plan-integrity conflict, coherent observation,
176
- нет lease/transaction/Core operation, а dirty set полностью совпадает с уже доказанным failed Step
177
- scope. После `eligible=true` один dependency-only commit обновляет только `package.json` и
178
- `package-lock.json` на Milestone base и в Task history; fresh repository-local package затем
179
- регистрирует commit через advertised `update plan-integrity-dependency-recover`. Product bytes,
180
- Plan hash и remediation evidence не переписываются. Этот контракт разрешает текущий `.15 -> .17`
181
- transport и не требует нового literal для следующего совместимого beta.12 patch.
182
-
183
- ### beta.12.16: direct migration check-support authority
184
-
185
- Новый mechanical analyzer до execution authorization проверяет root `npm run` migration checks,
186
- repository-local `node`/`tsx` runner и его direct static relative imports. Если Step создаёт новую
187
- SQL migration, а импортированный TypeScript/JavaScript support-модуль закрепляет approved SHA-256,
188
- manifest или expected catalog той же migration family, этот support path должен входить в
189
- `allowedWrites` той же Step. Иначе Plan возвращается к `task plan-set` до запуска Worker.
190
-
191
- Для уже выполняемой Task с первым `checks-failed` fresh beta.12.16 `next` может рекламировать
192
- `task plan-integrity-recover` с reason `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` и
193
- `boundedEffect=record-machine-derived-check-support-scope`. Выполните только этот route под текущим
194
- C1 actor/writer credential, затем снова прочитайте `next` и вызовите `task run`. Worker envelope
195
- должен добавить ровно `evidence.scopeExtensions`; Plan hash и существующие product bytes остаются
196
- неизменными. Core повторяет все checks, сам создаёт commit и включает derived scope в sealed review
197
- packet. Human corrective-replan для этого точного scope-only случая не требуется. Если route не
198
- рекламируется, есть indirect/dynamic import, лишний dirty path, forbiddenScope intersection или нет
199
- SHA/catalog anchors — не расширяйте scope вручную.
200
-
201
- ### beta.12.12: неисполняемая Step check и сохранение текущей реализации
202
-
203
- Новые Plans больше не могут получить execution authorization, если root npm script запускает
204
- repository-local `affected` validator, сам validator явно требует `--base`, `--head` или `--files`,
205
- а Step check не передаёт ни одного selector. Исправьте check в Plan, например
206
- `npm run validate:affected -- --files=<allowedWrites>`; Worker и remediation attempt до этого не
207
- запускаются.
208
-
209
- Для Task, уже застрявшей на beta.12.11 после одного или нескольких одинаковых `checks-failed`,
210
- используется только bounded bridge. Внешний exact beta.12.12 runner выполняет read-only
211
- `update plan-integrity-update-preflight`; продолжение допустимо лишь при `eligible=true`, отсутствии
212
- lease/transaction и точном dirty set внутри failed Step `allowedWrites`. Затем один dependency-only
213
- commit (`package.json` и `package-lock.json`) должен оказаться и на Milestone base, и в Task history
214
- без изменения product bytes. Fresh repository-local `next` рекламирует
215
- `update plan-integrity-dependency-recover`; этот переход регистрирует dependency commit и, если
216
- Knowledge drift вызван только Workflow pin в `package.json`, атомарно выполняет corrective-derived
217
- Knowledge refresh без Human approval.
218
-
219
- После регистрации Core связывает всю append-only цепочку failed attempts, текущий Plan, HEAD,
220
- manifest, validator и SHA-256 dirty worktree. `task plan-integrity-recover` записывает один
221
- `replan-required` decision для следующего ordinal. Затем следуйте fresh
222
- `task corrective-yield -> task corrective-replan-*`; replacement Plan обязан сохранить Step и dirty
223
- allowlist, но заменить check на исполняемую selector-bearing команду. Не коммитьте product files,
224
- не редактируйте state и не повторяйте старую неисполняемую проверку.
225
-
226
- ### beta.12.11: audited remediation и dependency-only Knowledge refresh
227
-
228
- После безопасного обновления существующий active Milestone может продолжить работу без пересоздания,
229
- если current `next` показывает pre-execution `stop-escalate` и объект `auditedRemediation`. Это не
230
- update compatibility bridge и не разрешение вручную менять state. Сначала выполните обычный
231
- `update preflight`; установите exact beta.12.11 только при `safe=true`, clean checkout, отсутствии
232
- running Step и leases, затем снова выполните repository-local handshake, `status` и `next`.
233
-
234
- Далее следуйте только свежему route: remediation Discovery -> ready ->
235
- `milestone remediation-materialize`. Передайте exact Milestone/Task revisions и JSON с Discovery,
236
- title и `predecessorTaskIds`, которые полностью совпадают с
237
- `next.auditedRemediation.requiredPredecessorTaskIds`. Переход не принимает confirmation code,
238
- actor, grant или новый Milestone Plan. После atomic materialization новый required Task должен стать
239
- repository priority и пройти обычную реализацию/review/merge. Его Task approval transitions используют
240
- только exact `correctiveDerivedApproval.actor` из fresh `next`. После merge исходная Task обязана
241
- вернуться к `task plan-set`, fresh Risk Audit и следующему Step. Если fresh `next` не рекламирует этот
242
- контракт, не вызывайте команды напрямую и не редактируйте Milestone state.
243
-
244
- Если exact dependency-only update сделал approved Knowledge Map stale только по `package.json`,
245
- `auditedRemediation.dependencyKnowledgeRefresh` должен подтвердить clean checkout, aligned
246
- declared/locked/installed/HEAD/base versions и полную Git-цепочку commits, меняющих только Workflow pin
247
- в `package.json`/lock. Такой content refresh не требует Human approval: он применяется в той же Project
248
- transaction, что и `milestone remediation-materialize`, с `corrective-derived` evidence. Любой другой
249
- Knowledge diff (включая README, документацию, classification, gap или conflict) не допускается в этот
250
- маршрут и остаётся в обычном reconcile/approval flow.
251
-
252
- ### Исключение для lifecycle-дедлока alpha.6
253
-
254
- Обычный `update preflight` намеренно блокирует обновление при `in_progress` Step. Если alpha.6
255
- завис между completion commit, обязательным strict review и запрещённым Knowledge rebind,
256
- используйте внешний точный runner alpha.7 только для `update rescue-preflight`. Продолжать
257
- можно лишь при `eligible=true`; допустимы только перечисленные им `locks repair` и
258
- `task step-review`. Этот путь не меняет dependency и не разрешает другие команды alpha.7.
259
- Для `task step-review` используйте lifecycle-actor из `next` или rescue-preflight; это claimant
260
- или required actor, а не identity независимого reviewer-процесса.
261
- После terminal review выполните обычный Knowledge reconcile/rebind, доведите Task до безопасной
262
- границы и только затем обновляйте package/lock обычным способом.
263
-
264
- ### Исключение beta.10 для retained reviewed commit
265
-
266
- Если corrective replan уже убрал evidence завершённой попытки из текущего Step, но её product
267
- commit остался в Git между `baseCommit` и новым dependency-only HEAD, beta.10 может штатно принять
268
- такую историю. Это допустимо только при полной криптографически целостной strict-review цепочке с
269
- решением `passed` и verified reviewer attestation. Pending/failed review, отдельный `evidence.json`,
270
- повреждённый sidecar или неизвестный product commit не подходят.
271
-
272
- Не регистрируйте сохранённый product commit вручную в `systemCommits`. После установки beta.10
273
- выполните свежий `next`; продолжайте только если он рекламирует
274
- `update dependency-provenance-recover`. Затем последовательно выполните read-only
275
- `update dependency-provenance-preflight`, проверьте `eligible=true`, точные Task revision/HEAD,
276
- пустой `blockers` и ожидаемый список `retainedHistoricalCommits`, и только после этого вызывайте
277
- рекламируемый recover с той же revision. Успешный recover записывает dependency HEAD в
278
- `systemCommits`, а исторические reviewed product commits — отдельно в recovery evidence. После
279
- него обязательны последовательные `status` и `next`; выполняйте возвращённый Knowledge reconcile
280
- или `task context-refresh`, если manifest/lock сделали Knowledge Map stale.
281
-
282
- В beta.12.1 preflight сравнивает parent и candidate после удаления только записей зависимости
283
- `codex-workflow-v2`. Поэтому ранее закоммиченные Task-local scripts и другие product-owned поля
284
- `package.json`/lockfile могут отличаться от Milestone base и сохраняются. Это не ослабляет сам
285
- candidate: его HEAD обязан менять ровно `package.json` и `package-lock.json`, только точную Workflow
286
- dependency; любое другое поле, добавленное тем же candidate commit, неизвестный commit, stale base,
287
- dirty checkout, lease или transaction по-прежнему блокируют recovery.
288
-
289
- ### Исключение beta.12.9 для Step commit, потерянного corrective Plan
290
-
291
- Если активный corrective Step сохраняет допустимый dirty worktree, а `task step-complete` обнаруживает
292
- ровно один старый product commit, beta.12.9 не требует переписывать Git. Пакет поддерживает два
293
- строго ограниченных входа в один и тот же recovery:
294
-
295
- - если beta.12.9 уже зарегистрирована, свежий `next` рекламирует
296
- `task historical-step-provenance-recover`;
297
- - если для установки beta.12.9 на Milestone base и Task branch уже созданы ровно dependency-only
298
- commits, свежий `next` рекламирует `update historical-step-dependency-recover`. Этот переход
299
- атомарно регистрирует новый dependency HEAD и сохраняет authority старого Step commit.
300
-
301
- В обоих случаях Core сам доказывает для старого SHA полную hash-valid strict Step Review цепочку с
302
- решением `passed`, verified reviewer isolation и совпадающий прежний `final_acceptance`. Update-route
303
- дополнительно требует exact target version на declared/locked/installed/current-branch/base surfaces,
304
- dependency commit только из `package.json` и `package-lock.json`, а также неизменный hash активного
305
- dirty worktree относительно read-only assessment.
306
-
307
- Сначала выполните read-only `task historical-step-provenance-preflight --id <TASK-ID>`. Продолжайте
308
- только при `eligible=true`, точных Task revision, Plan/Brief/HEAD и commit SHA, отсутствии leases,
309
- transactions и Core operations, а также dirty paths строго внутри `allowedWrites` единственного
310
- активного Step. Recover принимает exact SHA, actor и содержательную reason, добавляет SHA в
311
- `invalidatedStepCommits` и записывает источник прежнего acceptance. Product bytes, HEAD и текущий
312
- Plan не меняются; старый Step не возвращается в Plan. После recovery обязательны последовательные
313
- `status` и `next`, затем обычный credential route и `task step-complete` текущего Step.
314
-
315
- Несколько unknown commits, pending/failed review, несовпадающий Plan прежнего acceptance,
316
- повреждённый sidecar, посторонний dirty path или lease являются hard stop. Запрещено заменять этот
317
- переход rebase/reset/amend, ручным `systemCommits` или переносом старого Step в текущий Plan.
318
-
319
- ### Исключение beta.12.6 для активного downstream proof
320
-
321
- Обычный `update preflight` по-прежнему правильно запрещает обновление при running Step и dirty
322
- checkout. Но если dirty set уже является подтверждаемым конфликтом между активным proof Step и
323
- completed transitive predecessor, ожидание чистой границы создаёт цикл: штатный recovery существует
324
- только в новой версии, а установить её до recovery нельзя. beta.12.6 разрешает только этот exact
325
- bootstrap и не ослабляет общий preflight.
326
-
327
- Сначала убедитесь, что нет active/stale writer lease, pending/corrupt transaction и Core operation.
328
- Не stash/reset/commit product files и не завершайте Step вручную. В отдельном временном worktree
329
- обновите active Milestone base до точной beta.12.6 и создайте commit только с `package.json` и
330
- `package-lock.json`. Затем в текущей Task branch установите ту же точную версию и создайте второй
331
- commit только из этих двух файлов, оставив существующий product dirty set неизменным. Не merge и
332
- не переносите product commits между ветками.
333
-
334
- Fresh project-local beta.12.6 `next` обязан вернуть
335
- `update downstream-proof-dependency-recover`. Выполните read-only
336
- `update downstream-proof-dependency-preflight --id <TASK-ID>` и продолжайте только при
337
- `eligible=true`, пустом `blockers`, ожидаемых `HEAD`/`HEAD^`, exact Task revision и непустом
338
- `activeDownstreamProof`. Binding включает current Plan, единственный active Step, все dirty paths,
339
- SHA-256 их содержимого и completed predecessor Steps, чья authority будет инвалидирована позже.
340
- После advertised recover повторите `status -> next`: ожидается `task downstream-proof-recover`,
341
- который имеет приоритет над Knowledge refresh, вызванным manifest/lock commit. Только после него
342
- выполняются новый Plan, Risk Audit, authorization и возвращённые `next` Knowledge actions.
343
-
344
- Read-only preflight является наблюдением, а не confirmation token: recover заново вычисляет и
345
- записывает binding текущего dirty content. Поэтому изменение допустимого product content до
346
- recover создаёт другой hash, который нужно сверить в ответе. После recover этот hash остаётся
347
- аудит-доказательством сохранённых bridge bytes; downstream-proof заново проверяет текущие paths,
348
- ownership и history, а новый Plan и review оценивают текущий content. Путь fail-closed при unrelated dirty path,
349
- неизвестном commit до candidate, candidate шире двух dependency-файлов, stale Milestone base,
350
- version divergence, branch/Plan/Step mismatch, lease или transaction. В этом случае не правьте
351
- `systemCommits` или внешний state вручную.
352
-
353
- ### Исключение beta.12.7 для stranded downstream replan
354
-
355
- Это исключение применимо только если beta.12.6 уже записала downstream-proof invalidation, а затем
356
- Project Knowledge approval ошибочно rebound-нул отвергнутый Plan и вернул Task в
357
- `awaiting_execution_authorization`. До изменения dependency запустите beta.12.7 source/runtime
358
- read-only `update downstream-proof-replan-update-preflight --id <TASK-ID>`. Требуются
359
- `eligible=true`, source version `2.0.0-beta.12.6`, exact Task revision/branch/base/HEAD, неизменные
360
- dirty paths/content hash и пустые blockers.
361
-
362
- Затем тем же двухкоммитным способом обновите active base и Task branch только в `package.json` и
363
- `package-lock.json`, установите exact beta.12.7 и следуйте fresh `next`. Допустимая цепочка:
364
- `update downstream-proof-replan-dependency-preflight` ->
365
- `update downstream-proof-replan-dependency-recover` ->
366
- `task downstream-proof-replan-recover`. После repair manifest change обычно делает Project Knowledge
367
- stale: выполните рекламируемые reconcile/approve, но не `task knowledge-rebind` старого Plan. Fresh
368
- `next` обязан вернуть `task plan-set`.
369
-
370
- Новый Plan должен заново классифицировать весь unfinished remainder. Сохранённые dirty bytes не
371
- становятся completed evidence и не коммитятся административным recovery. Они могут быть приняты
372
- только одним planned Step, `allowedWrites` которого точно покрывает весь dirty set. Перед `task run`
373
- fresh `next` обязан показать `downstreamProofCarryover.state=validated`; после run обязательны checks,
374
- Core-owned Step commit и strict review, если Step guarded. Изменение content/path/HEAD, дополнительная
375
- Task revision, audit/authorization старого Plan, lease или transaction блокируют исключение.
376
-
377
- ### Исключение beta.12.1 для beta.11 attempt-four stop
378
-
379
- Если beta.11 записал `stop-escalate` перед четвёртой попыткой только после последовательности
380
- `ordinary`, `ordinary`, `corrective`, и перед третьей попыткой уже существовал exact
381
- `continue-fix`, fresh `next` может вернуть `task stop-override-prepare`. Не создавайте новый
382
- Milestone и не редактируйте sidecar вручную. Сначала выполните только read-only prepare с exact
383
- Task revision, Step, human actor и содержательной причиной. Проверьте, что ответ связывает тот же
384
- stop decision, Plan hash, Git HEAD, все три remediation events и policy
385
- `beta11-attempt4-stop-compatibility-v1`, затем остановитесь перед Human gate.
386
-
387
- В отдельном пользовательском сообщении разрешите apply с теми же параметрами и возвращённым
388
- `SOO-*` кодом. `task stop-override-apply` добавляет одну запись в
389
- `stop-escalate-overrides.jsonl`, сохраняя исходный `stop-escalate`; после него выполните
390
- последовательные `status` и `next`. Обычно ожидаемый route — `task run` того же Step с последующим
391
- новым strict review. Beta.12.4 покрывает и последовательность package self-update/context-refresh
392
- циклов после override. Перед `task run` выполняйте только свежие advertised
393
- `update dependency-provenance-recover` и delegated `task context-refresh`; циклов может быть
394
- несколько. Workflow продолжит attempt 4 лишь когда докажет contiguous source-to-current chain:
395
- каждый Plan отличается только canonical Knowledge Map binding, каждый rebind совпадает с Plan
396
- artifacts, каждый Plan Risk Audit является mechanical rebound, а current approval/authorization
397
- сохраняют одну delegated authority. HEAD может продвинуться только через зарегистрированные
398
- single-parent dependency-provenance commits, каждый с exact `package.json`/`package-lock.json` diff.
399
- Новая stop-override recovery-запись не создаётся — используется существующая append-only evidence.
400
- Если advertised navigation сначала завершила последний `task context-refresh`, а затем разрешила
401
- `update dependency-provenance-recover`, административный recovery может объяснить ровно один
402
- post-audit Task revision. Core принимает его только как часть уже проверенной dependency-only Git
403
- chain; арифметика audit revision + refresh boundary + exact post-audit recoveries должна точно
404
- равняться current Task revision. Любой необъяснённый revision остаётся blocker.
405
- Если C1 остаётся claimed, но writer lease после Human boundary отсутствует, `next` вместе с
406
- `task run` рекламирует `task writer-credential-replace`; сначала восстановите credential exact
407
- claimant-актора, затем запускайте Step.
408
-
409
- Этот путь не работает для `split-required`, другого attempt ordinal, семантически изменённого
410
- Plan, отсутствующего attempt-3 continue, разорванной rebind/audit chain, незарегистрированного или
411
- product HEAD commit, повреждённой chronology, active/stale lease на Human prepare/apply boundary
412
- или незавершённой Task transaction.
413
- Delegated approval для самого stop override отсутствует; delegation относится только к обычному
414
- context refresh после уже подтверждённого Human override.
415
-
416
- ## 1. Подготовьте отдельный чат обновления
417
-
418
- Не обновляйте пакет во время выполняющегося Worker Step, кроме exact beta.12.6 downstream-proof
419
- исключения выше. В обычном случае дождитесь завершения текущего ответа Codex и откройте в нужном
420
- проекте отдельный чат `Workflow update`.
421
-
422
- Передайте агенту этот промпт, заменив `<НОВАЯ_ВЕРСИЯ>` точной опубликованной версией:
423
-
424
- ```text
425
- Обнови Codex Workflow V2 в этом проекте до точной версии <НОВАЯ_ВЕРСИЯ>
426
- из npm: https://www.npmjs.com/package/codex-workflow-v2.
427
-
428
- Все команды выполняешь ты. Сначала прочитай AGENTS.md и определи Git root.
429
- До изменений запусти project-local gateway handshake, doctor, status, next и
430
- read-only `update preflight`;
431
- зафиксируй текущую версию, protocolVersion, stateSchemaVersion, projectId,
432
- активные сущности и наличие writer lease. Продолжай только если preflight
433
- вернул safe=true: checkout чистый, running Step и active writer lease отсутствуют.
434
- Иначе остановись без обновления и покажи blockers.
435
-
436
- Обнови только точную npm-зависимость и lock-файл, без диапазона версий.
437
- Не удаляй и не редактируй вручную $CODEX_HOME/workflow-state/v2.
438
- Не запускай state migration, если stateSchemaVersion не изменилась.
439
- После установки проверь совпадение declared и installed версии, выполни
440
- handshake, doctor, status и next новой версией. Затем установи или обнови
441
- персональный codex-workflow-gateway из установленного npm-пакета штатным
442
- installer скриптом. Покажи diff файлов репозитория и результаты проверок.
443
- Не начинай продуктовую реализацию в этом чате.
444
- ```
445
-
446
- Агенту может потребоваться ваше разрешение на установку npm-зависимости и запись персонального
447
- plugin за пределами workspace. Это ожидаемая граница безопасности Codex, а не миграция state.
448
-
449
- ## 2. Проверьте отчёт чата обновления
450
-
451
- До завершения чат должен подтвердить:
452
-
453
- 1. В `package.json` указана точная версия без `^`, `~`, `latest` или `next`.
454
- 2. Lock-файл и фактически установленный пакет содержат ту же версию.
455
- 3. Handshake возвращает ожидаемые package/protocol/state-schema версии.
456
- 4. `doctor` не сообщает о несовместимой зависимости или повреждённом state.
457
- 5. `projectId` совпадает со значением до обновления.
458
- 6. Существующие Task/Milestone ID, revisions и terminal statuses сохранились.
459
- 7. Персональный gateway обновлён из установленного пакета.
460
- 8. `update preflight` до изменения подтвердил чистую lifecycle-границу.
461
- 9. Для alpha.6 существующий schema 2 проект либо уже имеет `adoption-posture.jsonl`,
462
- либо `next`/`status` требуют `state adoption-prepare` и затем `state adoption-apply`.
463
- 10. При переходе с protocol v1 на v2 неизменённый и криптографически целостный adoption sidecar
464
- остаётся читаемым как legacy evidence. Runtime не переписывает его автоматически; неизвестная
465
- версия или смешанная protocol-цепочка считаются повреждением state.
466
-
467
- Protocol v2 меняет navigation/CLI corrective-replan и lifecycle epoch, но не Task state schema.
468
- До обновления не должно быть `in_progress` Step, writer lease, Core Task operation mutex или
469
- незавершённого corrective Task journal. Такие состояния требуют штатного completion/repair старой
470
- версией; переносить или удалять journal вручную нельзя. Старые grants/receipts не получают authority
471
- в epoch 2 — новый corrective replan всегда проходит новый prepare/human-gate/execute цикл.
472
-
473
- Изменение `projectId`, исчезновение сущностей или ошибка unsupported state schema — причина
474
- остановиться. Не соглашайтесь на «починку» удалением state. Агент должен вернуть dependency к
475
- предыдущей точной версии либо ждать официального мигратора.
476
-
477
- ## 3. Откройте новый чат после установки gateway
478
-
479
- Codex загружает набор skills/plugin при старте чата. Уже открытый чат может продолжать видеть
480
- старую gateway-инструкцию, даже если файлы plugin обновлены. Поэтому дальнейшую работу всегда
481
- начинайте в новом чате проекта.
482
-
483
- Промпт для контрольного чата:
484
-
485
- ```text
486
- Возобнови проект через установленный Codex Workflow V2.
487
- Все команды выполняешь ты. Начни с AGENTS.md, project-local gateway
488
- handshake, doctor, status и next. Подтверди точную declared/installed
489
- версию, protocolVersion, stateSchemaVersion и прежний projectId.
490
-
491
- Проверь Knowledge Map штатно. Если изменение package.json или lock-файла
492
- сделало карту stale, выполни scan/reconcile и покажи мне классификацию и
493
- изменения до approve. Не редактируй внешний workflow-state вручную.
494
- Следуй только текущему ответу next и остановись перед любой human gate.
495
- ```
496
-
497
- Обновление dependency меняет `package.json` и обычно lock-файл. Если один из этих файлов входит
498
- в Knowledge Map, изменение его content hash штатно делает карту `stale`. Это не потеря state:
499
- нужно выполнить `scan/reconcile`, показать пользователю изменения классификации и получить
500
- approval, если он требуется.
501
-
502
- ## 3.0. Alpha.6 adoption для существующего schema 2 проекта
503
-
504
- Если проект уже вёлся на alpha.5 или другой schema 2 версии без alpha.6 posture, новый runtime
505
- не разрешит execution-переходы, пока не будет записан adoption sidecar. Это нормальное
506
- fail-closed поведение, а не повреждение state.
507
-
508
- Порядок:
509
-
510
- 1. `update preflight --repo .`
511
- 2. `state adoption-prepare --repo .`
512
- 3. Проверить returned baseline и `ADA-*` confirmation code
513
- 4. `state adoption-apply --repo . --actor <human-actor> --confirmation-code <ADA-CODE>`
514
-
515
- Граница должна быть безопасной:
516
-
517
- - checkout чистый;
518
- - нет `in_progress` Step;
519
- - нет active writer lease;
520
- - stale writer lease сначала чинится обычным repair-путём.
521
-
522
- Alpha.6 adoption сохраняет:
523
-
524
- - terminal Milestones со статусом `accepted` или `cancelled`;
525
- - terminal Tasks со статусом `merged` или `cancelled`;
526
- - completed и skipped Steps в активных Tasks вместе с их evidence.
527
-
528
- Alpha.6 adoption не делает:
529
-
530
- - не переписывает canonical entity JSON;
531
- - не переоткрывает terminal-сущности;
532
- - не прогоняет заново уже completed legacy Steps;
533
- - не использует `state migrate`.
534
-
535
- После adoption remaining legacy scope должен получить bootstrap Plan Risk Audit только для
536
- оставшихся non-`completed` и non-`skipped` Step.
537
-
538
- ## 3.1. При необходимости включите delegated approval
539
-
540
- Delegated approval не включается автоматически после обновления. Существующие авторизации и
541
- terminal-сущности не меняются, а `stateSchemaVersion` остаётся `2`. Пользователь один раз
542
- подтверждает точную policy; после этого named delegate может выполнять только перечисленные
543
- переходы до истечения срока или revocation.
544
-
545
- Для заместителя, который должен планировать ещё не созданные Milestones и Tasks, нужен
546
- ограниченный по времени project scope. Более узкий Milestone/Task scope безопаснее, когда ID
547
- уже известен. Пример policy:
548
-
549
- ```json
550
- {
551
- "principal": "user:owner",
552
- "delegate": "agent:deputy",
553
- "scope": { "kind": "project" },
554
- "transitions": [
555
- "project_memory.approve",
556
- "milestone.execution_authorize",
557
- "milestone.final_accept",
558
- "task.execution_authorize",
559
- "task.final_accept"
560
- ],
561
- "expiresAt": "<ISO-8601 UTC>"
562
- }
563
- ```
564
-
565
- Промпт для выпуска grant:
566
-
567
- ```text
568
- Подготовь delegated approval policy для этого проекта: principal user:owner,
569
- delegate agent:deputy, project scope, переходы project_memory.approve,
570
- milestone.execution_authorize,
571
- milestone.final_accept, task.execution_authorize и task.final_accept, срок до
572
- <ДАТА_И_ВРЕМЯ_UTC>. Создай временный JSON вне репозитория и выполни только
573
- delegation prepare. Покажи всю policy, projectId, policyHash и DGA-код, затем
574
- остановись. Grant в этом же ответе не выпускай.
575
- ```
576
-
577
- После проверки ответьте отдельным сообщением:
578
-
579
- ```text
580
- Одобряю выпуск delegated approval grant для policy hash <POLICY_HASH>
581
- с кодом <DGA-CODE>. Выпусти grant и покажи DGR-ID, scope, transitions,
582
- expiresAt и revision.
583
- ```
584
-
585
- `delegation list` и `status` показывают grants. Для досрочной остановки автономности агент
586
- выполняет `delegation revoke` от имени точного principal с текущей revision и причиной.
587
- Revocation запрещает будущие использования, но не переписывает уже записанные события.
588
-
589
- Важно: это локальная проверка policy и audit trail, а не криптографическая аутентификация
590
- Codex-процесса. Любой процесс с доступом к локальному state и CLI может заявить строку
591
- delegate. Поэтому project-wide grant должен быть короткоживущим, а секреты, платежи, реальные
592
- торговые операции и иные необратимые действия требуют отдельных технических ограничений и не
593
- должны полагаться только на delegated approval. Alpha.6 не расширяет allow-list transitions:
594
- grant не даёт authority на adoption apply, Milestone scope change или другие новые
595
- human-only guardrails.
596
-
597
- ## 3.2. Запустите delegate в новом чате
598
-
599
- Grant сам не запускает агента и не прикрепляется к существующему чату. После получения
600
- `DGR-ID` откройте новый Local-чат в том же Codex Project. Новый чат нужен ещё и потому, что он
601
- загрузит актуальную gateway-инструкцию. Передайте точные `delegate` и `DGR-ID`; `DGA-код`
602
- больше не нужен.
603
-
604
- Перед запуском проверьте выбор scope:
605
-
606
- - новый Milestone или новая standalone Task с `AUTO` требуют project scope;
607
- - существующий Milestone и его linked Tasks могут использовать Milestone scope;
608
- - одна существующая Task может использовать Task scope;
609
- - Knowledge Map approval доступен только project-scoped grant с
610
- `project_memory.approve`.
611
-
612
- Полные копируемые промпты для Milestone delegate и Task delegate находятся в
613
- `docs/delegated-approval.md` и chat-only PDF. В обоих промптах delegate обязан сначала
614
- выполнить `delegation show`, а каждый approval применять только при exact записи в текущем
615
- `next.delegatedApprovalOptions`. Внутренние Worker и Independent Reviewer grant не используют:
616
- его применяет координатор после получения их evidence.
617
-
618
- Все автоматически создаваемые чаты получают проектный монотонный номер из
619
- `plugins/codex-workflow-gateway/scripts/chat-registry.mjs`; `count + 1` запрещён. Основные формы:
620
-
621
- ```text
622
- #NNN · M<NN> · Coord · <Milestone title> · <MS-ID>
623
- #NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>
624
- ```
625
-
626
- Task-чат создавайте только как новую standalone Codex task (`create_thread`) в том же Project, а
627
- не как fork/handoff/продолжение Milestone-чата. В начальный prompt передавайте только exact
628
- TaskContextPacket: repository, точные Milestone/Task ID и ordinal, текущие Task revision/title,
629
- Brief/Plan bindings, Task requirements/acceptance, свежий маршрут `status -> next --task <Task
630
- ID>`, Task-local scope/checks/stop conditions и exact actor/grant ID при необходимости. Не
631
- переносите transcript Milestone-чата, историю recovery/approval, соседние Tasks, reasoning или
632
- confirmation/handoff/writer credentials.
633
-
634
- До создания проверьте, нет ли уже чата для exact Task ID. После создания передайте прочитанный
635
- title в registry readback и применяйте только возвращённый deterministic fallback. Title должен
636
- быть уникален и содержать exact `#NNN`, membership ordinal и ID. Input должен состоять из
637
- TaskContextPacket; допустима только добавленная Codex App служебная `codex_delegation`-обёртка с
638
- `source_thread_id`, но не parent turns или transcript. Если title отсутствует или нормализован
639
- неверно, переименуйте и перепроверьте. Pending `clientThreadId`, тайм-аут или отсутствие в
640
- `list_threads` не доказывают, что создание не состоялось, и не разрешают повторный `create_thread`.
641
- До первого вызова сохраните `dispatch-begin`; после него используйте `dispatch-result/status`,
642
- поиск коррелированного сеанса и `dispatch-observe` с фактическим `read_thread`. На одну
643
- резервацию выдаётся только одно разрешение создания. Не обходите его новой резервацией или fork.
644
- Полный контракт восстановления, сохранения supervisor/cursor и явного выбора `model`/`thinking`
645
- по роли, фазе и сложности находится в
646
- `plugins/codex-workflow-gateway/references/chat-dispatch.md`. Выбор модели требует соответствующего
647
- поручения пользователя и актуального списка поддерживаемых пар на целевом host; нельзя молча
648
- наследовать дорогую конфигурацию координатора или снижать уровень независимого аудита.
649
- Создавайте или переиспользуйте Task-чат непосредственно перед dispatch этой Task, а не как пустой
650
- placeholder для всего membership; `T<NN>` берите только из утверждённого membership order.
651
-
652
- После dispatch Milestone-координатор не заканчивает turn: он ждёт exact Task-чат bounded-вызовами
653
- `wait_threads`, сохраняет cursor, читает completed/attention результат и обязательно сверяет его
654
- через `status -> next`. Recoverable non-human продолжение отправляется в тот же чат через
655
- `send_message_to_thread`; пользователь нужен только для mandatory human/semantic gate, внешнего
656
- разрешения, unrecoverable integrity conflict или исчерпанного infrastructure retry. Следующий
657
- Task-чат создаётся только после Core-подтверждения `terminal + merged`. Завершённый Task-чат сам по
658
- себе не доказывает terminal state и не пробуждает уже завершившийся coordinator turn.
659
-
660
- После завершения автономного окна попросите отдельный контрольный чат показать
661
- `delegation list`, использованные authorization events и отозвать ненужный широкий grant.
662
-
663
- Для Milestone delegate отдельный Task-чат обязателен для каждой required Task. Это сохраняет
664
- пользовательский audit trail и не позволяет одному длинному Milestone-чату накапливать
665
- реализацию, compaction и review всех Tasks.
666
-
667
- ## 4. Продолжите начатый Milestone или создайте следующий
668
-
669
- Terminal Milestone со статусом `accepted` остаётся закрытым. Для следующего результата нужно
670
- начать новый Discovery и материализовать новый Milestone; переписывать историю предыдущего не
671
- следует.
672
-
673
- Промпт для планирования следующего Milestone:
674
-
675
- ```text
676
- Создай следующий Milestone проекта через Workflow V2.
677
- Все команды выполняешь ты. Начни с AGENTS.md, gateway handshake, doctor,
678
- status и next. Проверь Knowledge Map штатно и показывай мне её смысловые
679
- изменения до approve.
680
-
681
- Проведи Discovery: outcome, scope, out-of-scope, acceptance, constraints,
682
- unknowns и success signal. Не materialize сущность при blocking unknowns.
683
- После согласования создай Milestone и тонкие связанные Tasks, подготовь
684
- membership Plan и покажи его мне для execution authorization. После моей
685
- явной авторизации доведи Milestone до active, выдай порядок required Tasks
686
- и остановись. Реализацию в этом чате не начинай.
687
- ```
688
-
689
- ## 5. Как теперь закрывается Milestone
690
-
691
- После merge всех `required` Tasks откройте отдельный чат финальной проверки:
692
-
693
- ```text
694
- Возобнови Milestone <MS-ID> и подготовь его к финальному принятию.
695
- Все команды и проверки выполняешь ты. Начни с AGENTS.md, handshake,
696
- doctor, status и next. Проверь, что все current required memberships merged,
697
- выполни штатную Milestone validation и покажи Result, evidence, checks и
698
- validated HEAD.
699
-
700
- Когда next вернёт requiredHumanGate, покажи мне все связанные поля и код
701
- подтверждения, запроси моё явное final acceptance и заверши ответ. Не
702
- вызывай milestone accept в этом же ответе и не считай этот промпт заранее
703
- выданным согласием.
704
- ```
705
-
706
- После этого Codex должен остановиться. Если результат устраивает, ответьте отдельным сообщением:
707
-
708
- ```text
709
- Принимаю Milestone <MS-ID> для revision <REVISION> с кодом <MSA-CODE>.
710
- Выполни штатный final acceptance и подтверди status accepted.
711
- ```
712
-
713
- Код связан с Milestone ID, revision, Plan hash, Result hash, evidence hash и validated HEAD.
714
- Если любой из них изменился, старый код недействителен и агент должен повторно показать новую
715
- границу принятия.
716
-
717
- ## 6. Проверка исправленного `next`
718
-
719
- `next` не должен возвращать незапущенную историческую Task, если её текущее membership имеет
720
- disposition `waived`/`cancelled` либо её Milestone уже `accepted`/`cancelled`. Для активного
721
- Milestone он выбирает только `required` Tasks. Уже начатая Task может завершить допустимый
722
- переход, поэтому её наличие анализируется отдельно от незапущенной истории.
723
-
724
- Если после совместимого обновления `next` всё ещё показывает неподходящую Task, агент должен
725
- собрать `status`, целевые Task/Milestone state и memberships и остановиться с диагностикой. Не
726
- следует вручную менять JSON state или обходить transition checks.
28
+ This guide does not authorize updating a live consumer while auditing the workflow package. Such a change is a separate explicitly scoped operation.