codex-workflow-v2 2.0.0-beta.12.8 → 2.0.0-beta.13

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 (124) hide show
  1. package/README.md +60 -16
  2. package/dist/reviewer-runtime-build.json +1092 -0
  3. package/dist/src/alpha6/check-support-anchor.d.ts +24 -0
  4. package/dist/src/alpha6/check-support-anchor.js +102 -0
  5. package/dist/src/alpha6/check-support-anchor.js.map +1 -0
  6. package/dist/src/alpha6/component-owner.d.ts +28 -0
  7. package/dist/src/alpha6/component-owner.js +95 -0
  8. package/dist/src/alpha6/component-owner.js.map +1 -0
  9. package/dist/src/alpha6/downstream-proof.js +4 -2
  10. package/dist/src/alpha6/downstream-proof.js.map +1 -1
  11. package/dist/src/alpha6/mechanical-feasibility.js +42 -12
  12. package/dist/src/alpha6/mechanical-feasibility.js.map +1 -1
  13. package/dist/src/alpha6/milestone.d.ts +6 -2
  14. package/dist/src/alpha6/milestone.js +164 -10
  15. package/dist/src/alpha6/milestone.js.map +1 -1
  16. package/dist/src/alpha6/npm-check-contract.d.ts +11 -0
  17. package/dist/src/alpha6/npm-check-contract.js +36 -0
  18. package/dist/src/alpha6/npm-check-contract.js.map +1 -0
  19. package/dist/src/alpha6/plan-integrity.js +157 -27
  20. package/dist/src/alpha6/plan-integrity.js.map +1 -1
  21. package/dist/src/alpha6/plan-risk.js +3 -1
  22. package/dist/src/alpha6/plan-risk.js.map +1 -1
  23. package/dist/src/alpha6/remediation-cause.d.ts +13 -0
  24. package/dist/src/alpha6/remediation-cause.js +77 -0
  25. package/dist/src/alpha6/remediation-cause.js.map +1 -0
  26. package/dist/src/alpha6/remediation.d.ts +15 -4
  27. package/dist/src/alpha6/remediation.js +430 -67
  28. package/dist/src/alpha6/remediation.js.map +1 -1
  29. package/dist/src/alpha6/review.d.ts +6 -0
  30. package/dist/src/alpha6/review.js +46 -4
  31. package/dist/src/alpha6/review.js.map +1 -1
  32. package/dist/src/artifacts.js +6 -0
  33. package/dist/src/artifacts.js.map +1 -1
  34. package/dist/src/cli-actions.d.ts +25 -0
  35. package/dist/src/cli-actions.js +109 -0
  36. package/dist/src/cli-actions.js.map +1 -0
  37. package/dist/src/cli.js +244 -253
  38. package/dist/src/cli.js.map +1 -1
  39. package/dist/src/contracts.d.ts +202 -5
  40. package/dist/src/credential-transport.d.ts +38 -0
  41. package/dist/src/credential-transport.js +156 -0
  42. package/dist/src/credential-transport.js.map +1 -0
  43. package/dist/src/dependency-provenance.d.ts +23 -2
  44. package/dist/src/dependency-provenance.js +239 -36
  45. package/dist/src/dependency-provenance.js.map +1 -1
  46. package/dist/src/domain/completed-step-carryover.d.ts +13 -0
  47. package/dist/src/domain/completed-step-carryover.js +71 -0
  48. package/dist/src/domain/completed-step-carryover.js.map +1 -0
  49. package/dist/src/domain/validation.d.ts +9 -1
  50. package/dist/src/domain/validation.js +86 -0
  51. package/dist/src/domain/validation.js.map +1 -1
  52. package/dist/src/gateway-handshake.d.ts +11 -0
  53. package/dist/src/gateway-handshake.js +92 -0
  54. package/dist/src/gateway-handshake.js.map +1 -0
  55. package/dist/src/git.js +1 -0
  56. package/dist/src/git.js.map +1 -1
  57. package/dist/src/historical-step-provenance.d.ts +20 -0
  58. package/dist/src/historical-step-provenance.js +111 -0
  59. package/dist/src/historical-step-provenance.js.map +1 -0
  60. package/dist/src/index.d.ts +2 -0
  61. package/dist/src/index.js +2 -0
  62. package/dist/src/index.js.map +1 -1
  63. package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +5 -0
  64. package/dist/src/lifecycle/corrective-replan-binding-manifest.js +9 -0
  65. package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -1
  66. package/dist/src/lifecycle/corrective-replan.js +1 -1
  67. package/dist/src/lifecycle/corrective-replan.js.map +1 -1
  68. package/dist/src/lifecycle/semantic-registry.js +1 -1
  69. package/dist/src/observation.js +1 -2
  70. package/dist/src/observation.js.map +1 -1
  71. package/dist/src/observed-routes.d.ts +114 -0
  72. package/dist/src/observed-routes.js +545 -0
  73. package/dist/src/observed-routes.js.map +1 -0
  74. package/dist/src/operational-contract.d.ts +26 -0
  75. package/dist/src/operational-contract.js +94 -0
  76. package/dist/src/operational-contract.js.map +1 -0
  77. package/dist/src/reviewer.d.ts +218 -8
  78. package/dist/src/reviewer.js +927 -25
  79. package/dist/src/reviewer.js.map +1 -1
  80. package/dist/src/state/corrective-replan-executor.js +23 -15
  81. package/dist/src/state/corrective-replan-executor.js.map +1 -1
  82. package/dist/src/state/corrective-replan-public.js +35 -10
  83. package/dist/src/state/corrective-replan-public.js.map +1 -1
  84. package/dist/src/state/corrective-replan-transaction.js +12 -4
  85. package/dist/src/state/corrective-replan-transaction.js.map +1 -1
  86. package/dist/src/state/corrective-yield-transaction.js +11 -2
  87. package/dist/src/state/corrective-yield-transaction.js.map +1 -1
  88. package/dist/src/state/lock.d.ts +1 -0
  89. package/dist/src/state/lock.js +24 -0
  90. package/dist/src/state/lock.js.map +1 -1
  91. package/dist/src/version.d.ts +1 -1
  92. package/dist/src/version.js +1 -1
  93. package/dist/src/version.js.map +1 -1
  94. package/dist/src/workflow.d.ts +70 -4
  95. package/dist/src/workflow.js +1888 -152
  96. package/dist/src/workflow.js.map +1 -1
  97. package/docs/autonomy-guardrails.md +41 -14
  98. package/docs/delegated-approval.md +6 -1
  99. package/docs/development-flow.md +42 -12
  100. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  101. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  102. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  103. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +191 -22
  104. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +163 -45
  105. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +346 -52
  106. package/docs/problem-briefs/01-pre-implementation-integrity.md +11 -7
  107. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +13 -6
  108. package/docs/problem-briefs/README.md +11 -11
  109. package/docs/release.md +89 -9
  110. package/docs/updating-existing-project.md +235 -0
  111. package/docs/validation-report.md +156 -98
  112. package/package.json +12 -3
  113. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  114. package/plugins/codex-workflow-gateway/references/protocol.md +9 -0
  115. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +67 -1
  116. package/schemas/authorization-event.schema.json +10 -3
  117. package/schemas/corrective-decision-event.schema.json +164 -9
  118. package/schemas/corrective-replan-credentials.private.schema.json +4 -2
  119. package/schemas/milestone-scope-change-event.schema.json +25 -1
  120. package/schemas/remediation-event.schema.json +17 -1
  121. package/schemas/review-result.schema.json +1 -0
  122. package/schemas/step-review-event.schema.json +15 -0
  123. package/schemas/task.schema.json +104 -1
  124. package/schemas/transition-definition.schema.json +8 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.8
2
+ title: Codex Workflow V2: технический справочник beta.13
3
3
  subtitle: Protocol 2, state schema 2, transactions, credentials, dependency authority, review и recovery
4
4
  part: Часть 3 из 3 | Technical reference
5
5
  document_version: 2.0
6
- date: 29 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.8
6
+ date: 2 сентября 2026
7
+ subject: Технический контракт Codex Workflow V2 beta.13
8
8
  ---
9
9
 
10
10
  # 1. Runtime contract
@@ -13,9 +13,9 @@ Workflow V2 предоставляет локальные revisioned transitions
13
13
  и `value` либо структурированную ошибку с `code`, `message` и `details`. Chat, PDF и gateway не создают
14
14
  authority сами: mutating permission определяется runtime state и свежим `next`.
15
15
 
16
- | Параметр beta.12.8 | Значение |
16
+ | Параметр beta.13 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.8` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.13` |
19
19
  | protocolVersion | 2 |
20
20
  | stateSchemaVersion | 2 |
21
21
  | lifecycle epoch | 2 |
@@ -37,16 +37,18 @@ Gateway выполняет:
37
37
  5. вызов только package-local `dist/src/cli.js --repo <root>`;
38
38
  6. `gateway handshake` до lifecycle действий.
39
39
 
40
- Ключевые beta.12.8 capabilities:
40
+ Ключевые beta.13 capabilities:
41
41
 
42
42
  | Группа | Capabilities |
43
43
  |---|---|
44
44
  | Knowledge и graph | `project-memory-v1`, `graph-binding-v1`, `task-context-refresh-v1` |
45
- | Milestone | lifecycle, initial assembly navigation, autonomy, progress, dependency DAG, initial Plan transaction |
45
+ | Milestone | lifecycle, initial assembly navigation, autonomy, audited remediation topology, progress, dependency DAG, initial Plan transaction |
46
46
  | Task planning | Plan Risk Audit, proof obligations, mechanical feasibility |
47
- | C1 | handoff sidecar/bundle, derived Worker actor, credential replacement, Human-gate lease release |
48
- | Reviews | strict reviewer, Step strict review, continuable remediation, evidence-bound fix/replan routing |
49
- | Recovery | Task-local dependency provenance, plan integrity, downstream-proof predecessor invalidation, remediation mode, legacy stop override, append-only stop-rebind chain, corrective yield/replan journals |
47
+ | C1 | handoff sidecar/bundle, derived Worker actor, `host-safe-credential-reference-v1`, credential replacement, Human-gate lease release |
48
+ | Reviews | strict reviewer, Step strict review, `reviewer-runtime-preflight-v1`, `explicit-review-mode-v1`, evidence-bound fix/replan routing |
49
+ | Recovery | `cause-bound-rolling-refinement-v1`, `failed-step-continuation-transaction-v1`, Task-local dependency provenance, historical Step provenance, plan integrity, `historical-check-support-scope-adoption-v1`, `historical-check-support-dirty-carryover-v1`, downstream-proof predecessor invalidation, remediation mode, legacy stop override, append-only stop-rebind chain, corrective yield/replan journals |
50
+ | Planning/integration | `structural-production-edge-contract-v1`, transitive component-owner same-Task refinement |
51
+ | Operations/navigation | `compact-status-v1`, `observed-route-matrix-v2`, `app-owned-operational-preflight-v1` |
50
52
  | Replacement | `structural-task-replacement-disabled-v1` |
51
53
 
52
54
  Handshake incompatibility прекращает работу. Запуск global package, `latest`, mutable range или соседней
@@ -71,6 +73,7 @@ $CODEX_HOME/workflow-state/v2/projects/<project-id>/
71
73
  .versions/ и scope/autonomy sidecars
72
74
  delegations/<DGR-ID>/state.json
73
75
  locks/<TASK-ID>.json
76
+ credentials/<project-id>/CREF-<uuid>.json # private regular file, mode 0600
74
77
  graph-bindings/
75
78
  composite transaction journals
76
79
  ```
@@ -79,6 +82,8 @@ Artifacts публикуются через staged version, CAS state write, act
79
82
  Composite mutations добавляют journal с exact targets, before/after hashes и recovery posture.
80
83
 
81
84
  Local state никогда не копируется в product repository и не редактируется вручную.
85
+ Credential vault является host-local transport: underlying bearer secret не сериализуется в CLI argv,
86
+ output, error, packet или evidence и не передаётся между projects по reference.
82
87
 
83
88
  # 4. Project Knowledge Map
84
89
 
@@ -211,6 +216,18 @@ branch, analyzer inputs и evidence hash должны оставаться curre
211
216
  Legacy approved AuthorizationEvent без mechanical payload остаётся readable для compatibility, но не
212
217
  создаёт новую P01 evidence claim.
213
218
 
219
+ Beta.13 добавляет два узких structural contracts. После failed check bounded static import traversal
220
+ repository-local runner может доказать transitive component-owner path вне `allowedWrites`; same-Task
221
+ scope refinement допустим только внутри той же component boundary и при неизменных hashes objective,
222
+ requirements, acceptance и security boundary. Отдельно независимая PRA-классификация consumer как
223
+ `runtime-composition` в multi-Step Task требует `requiresProductionEdges=true` и непустой
224
+ `productionEdges[]`, где каждая запись содержит transitive `ownerStepId`, `consumerStepId` и exact
225
+ `checkRef` из checks consumer Step. Planner omission, missing owner/consumer, self-edge, duplicate или
226
+ неисполняемый check блокируют admission. Простой one-Step runtime исключён.
227
+
228
+ Эти механизмы проверяют структурную форму и не утверждают product truth. Они не заменяют Plan Risk Audit,
229
+ Milestone authorization, фактический check result или не реализованную Step-validity authority P02.
230
+
214
231
  # 9. C1 handoff и writer lease
215
232
 
216
233
  ## 9.1. Dependency binding
@@ -230,16 +247,23 @@ Claim сверяет stored binding с current Milestone authority до lock acq
230
247
 
231
248
  ## 9.2. Credential sequence
232
249
 
233
- 1. `task handoff-prepare` возвращает first-field `credentialHandoff` и safe bundle.
234
- 2. Plaintext claim token существует только в response и working memory; state хранит hash.
235
- 3. Exact target actor вызывает `task claim` с one-time token.
236
- 4. Claim выдаёт first-field `writerLeaseReceipt`.
237
- 5. `task run` принимает token по `next.writerTokenContract`, heartbeats lease и возвращает refreshed receipt.
238
- 6. `task result-set` consumes active token и освобождает lease до Human final-acceptance gate.
239
- 7. После acceptance `writer-credential-replace` создаёт merge lease; terminal transitions освобождают его.
240
-
241
- Credential нельзя логировать, сохранять в chat packet или включать в evidence. `handoff-show` возвращает
242
- только safe persisted binding. Recovery использует отдельные advertised replacement actions.
250
+ 1. `task handoff-prepare` сохраняет hash в handoff state, кладёт secret в project-local vault и возвращает
251
+ публичную `claimCredentialReference` с `transport=local-vault-v1`.
252
+ 2. Exact target actor вызывает `task claim --claim-credential-ref <CREF-...>`; reference одноразовый и
253
+ после успешного claim удаляется.
254
+ 3. Claim проверяет project/entity/action/actor/expiry, создаёт lease и возвращает
255
+ `writerCredentialReference`; сам token отсутствует в output.
256
+ 4. `task run` и остальные lease-bound actions принимают только `--writer-credential-ref`; `next` явно
257
+ сообщает `secretInArgv=false`, `secretInOutput=false` и renewal policy.
258
+ 5. `task result-set` consumes текущую authority и освобождает lease до Human final-acceptance gate.
259
+ 6. После acceptance fresh `writer-credential-replace` создаёт merge authority; terminal transitions
260
+ освобождают её.
261
+
262
+ Vault record — regular file mode `0600`, содержит integrity hash и binding к project, entity, actor,
263
+ allowed actions и expiry. Legacy `--claim-token`/`--writer-token` отклоняются до lifecycle transition.
264
+ Ни secret, ни его plaintext receipt нельзя логировать, сохранять в chat packet или включать в evidence;
265
+ argv, stdout, stderr и structured errors несут только reference/metadata. `handoff-show` возвращает safe
266
+ persisted binding. Потеря reference разрешается только fresh advertised replacement action.
243
267
 
244
268
  # 10. Git и Step evidence
245
269
 
@@ -248,7 +272,7 @@ Credential нельзя логировать, сохранять в chat packet
248
272
  | Task start | Clean checkout, fresh base/auth/dependency binding, correct workspace policy |
249
273
  | Step run | Planned/failed eligible Step, dependencies, branch, C1 actor, lease |
250
274
  | Worker return | Изменения uncommitted и только в allowedWrites |
251
- | Step complete | History, scope, checks, review gate, exact writer token |
275
+ | Step complete | History, scope, checks, review gate, exact writer credential reference |
252
276
  | Commit | Один Core-owned commit с Task/Step metadata |
253
277
  | Submit/Result | Exact evidence/review; Result освобождает lease до Human gate |
254
278
  | Merge | Fresh review/acceptance, base conditions, accepted HEAD |
@@ -276,31 +300,110 @@ authorization; sync-base invalidates review/Result/acceptance bindings.
276
300
  - packetHash и repositorySealHash обязаны совпасть до записи;
277
301
  - Reviewer thread ID и lifecycle actor фиксируются, bearer token не передаётся Reviewer;
278
302
  - seal drift уничтожает result и требует fresh packet.
303
+ - packet command требует explicit `--review-mode ordinary|security`; ordinary запрещает подменять
304
+ проверку неявным security scan, а security применяется только по явному запросу;
305
+ - read-only `codex-workflow-reviewer-runtime-preflight-v1` связывает Node executable/version, exact
306
+ Workflow runtime module hash, manifest/lock hashes, dependency readiness и writable OS-temporary cache
307
+ за пределами sealed checkout; при каждом вызове он заново разрешает с диска recursive runtime dependency
308
+ graph по parent-aware, nested-first Node lookup и сверяет exact package manifests и SHA-256 всех
309
+ attested `.js`/`.cjs`/`.mjs`/`.json`/`.node` файлов. Лишь затем Node `createRequire` загружает exact
310
+ repository-local gateway/reviewer/workflow graph и сверяет общий с CLI descriptor
311
+ package/protocol/schema. Subprocess, timeout/retry, cached trust decision и install не используются;
312
+ checkout не меняется, а missing/tampered/conflicting/symlinked dependency, load или contract failure
313
+ закрывает выдачу packet.
279
314
 
280
315
  `review-launch` сохраняется в public CLI для совместимых environments, но не применяется как nested
281
316
  local reviewer внутри Codex App sandbox.
282
317
 
283
318
  # 12. Remediation и corrective decisions
284
319
 
285
- Guarded Step имеет проверяемый, но не ограниченный счётчиком remediation circuit:
320
+ Для новых beta.13 events Guarded Step имеет cause-bound rolling refinement без числового лимита:
286
321
 
287
322
  | Boundary | Разрешение |
288
323
  |---|---|
289
- | Failed cycles 1-2 | `ordinary`; та же Task и новый strict review |
290
- | Failed cycles 3+ | `corrective`; остаются исполнимыми и требуют нового strict review |
291
- | Finding `route=fix` или route отсутствует | Продолжить ту же Task/Step |
324
+ | Новый distinct mechanical/reviewer cause | Продолжить ту же Task/Step и выполнить новый strict review |
325
+ | Повтор mechanically normalized cause после fix | Root-cause replan той же Task обязателен |
326
+ | Повтор stable reviewer `causeId` с `planConflict=true` | Root-cause replan той же Task обязателен |
327
+ | Похожий prose, номер попытки или reviewer cause без Plan conflict | Не создаёт replan authority |
328
+ | Finding `route=fix` или route отсутствует | Продолжить ту же Task/Step независимо от attempt count |
292
329
  | Finding `route=replan` с exact Plan conflict | `task plan-set`; меняются только implementation Steps |
293
330
  | `route=replan` без exact conflict | Невалидный review result, state не меняется |
294
331
  | Explicit `split-required` | Structural replacement stop |
295
332
  | Exact beta.11 attempt-four `stop-escalate` | Append-only Human-confirmed compatibility override |
333
+ | Pre-execution `stop-escalate` + exact `auditedRemediation` route | Один additive upstream Task без нового Human gate |
296
334
  | Любой другой explicit `stop-escalate` | Terminal user attention |
297
335
 
298
- Attempt count является диагностикой, а не lifecycle authority. Explicit corrective-decision journal
299
- сохраняется для намеренного stop/split и совместимого historical recovery, но не требуется после второй
300
- ошибки. Replan из review обязан назвать `planClause`, `whyFixCannotFit` и `minimalPlanChange`; objective,
301
- requirements и acceptance Task при remediation неизменяемы. Новый Plan проходит обычные audit и authorization.
302
-
303
- # 13. beta.11 Plan-integrity recovery
336
+ Attempt count является диагностикой, а не lifecycle authority. Authoritative mechanical cause выводится
337
+ из normalized failure fingerprint; external review cause требует schema-valid stable `causeId`, а replan
338
+ authority дополнительно требует `planConflict=true`. Explicit corrective-decision journal сохраняется для
339
+ намеренного stop/split и совместимого legacy recovery. Legacy events без `causeBindings` читаются по старому
340
+ compatibility circuit и не получают новую authority задним числом. Replan из review обязан назвать
341
+ `planClause`, `whyFixCannotFit` и `minimalPlanChange`; objective, requirements и acceptance Task при
342
+ remediation неизменяемы. Новый Plan проходит обычные audit и authorization.
343
+
344
+ Failed strict review финализируется project transaction: remediation event, Task `needs_fix` и удаление
345
+ exact proven writer lease образуют один readback-bound target set. Повтор authoritative reviewer cause в
346
+ той же transaction добавляет C1 yield. `next` и `task plan-set` одинаково требуют отсутствия writer lease
347
+ и C1 claim и запрещают ослаблять `forbiddenScope`, guarded PRA classification или production-edge boundary.
348
+ Если review sidecars уже записаны, а transaction была прервана, повторная запись review завершает один
349
+ pause без duplicate remediation.
350
+
351
+ Failed check записывается project transaction `failed-step-continuation`: remediation sidecar, Task
352
+ `needs_fix` с `failurePause` и удаление lease входят в один journaled target set. Validation повторно
353
+ сверяет Task revision/status, remediation hash, отсутствие lease, Git HEAD, dirty paths и
354
+ `dirtyWorktreeHash`. Product bytes не коммитятся и не сбрасываются. Fresh `next` при отсутствующем либо
355
+ stale lease сначала рекламирует `task writer-credential-replace`, затем возвращает ту же Task к fix или
356
+ root-cause replan. Это общий continuation contract, а не новый numbered compatibility patch.
357
+
358
+ # 13. beta.13 coherent continuation и operational contracts
359
+
360
+ ## 13.1. Compact status
361
+
362
+ `status` по умолчанию возвращает bounded projection `codex-workflow-compact-status-v1`: entity counts,
363
+ active Task/Step, exact advertised action/blockedAction, observation reason codes, route metadata и
364
+ stable `routeFingerprint`. Массивы всех Discoveries, Tasks, Milestones и delegations в неё не входят.
365
+ Полная historical projection доступна только через explicit `status --full`. Обе формы строятся из одного
366
+ observation snapshot; compact form не вызывает public full-status path.
367
+
368
+ ## 13.2. Observed Signal route matrix
369
+
370
+ `observed-route-matrix-v2` покрывает 13 route classes, фактически наблюдавшихся в Signal. Каждый класс
371
+ имеет unique descending priority и ровно один representative witness: fresh production `next`, real
372
+ Workflow executor и fresh reachable successor либо real non-executable terminal observation. Это
373
+ class-level claim, а не доказательство каждой action. `next` добавляет matrix version/fingerprint,
374
+ route/action fingerprint, action support `executable-witnessed`/`unwitnessed`/`unsupported` и
375
+ `coverageBoundary=signal-observed-route-class-witnesses`.
376
+
377
+ Manual instruction и terminal marker не маскируются под CLI: они перечислены в explicit unsupported
378
+ inventory, не имеют CLI/executor binding и останавливают automation либо требуют чтения structured
379
+ options. Known executable action без собственного exact E2E остаётся `unwitnessed`, даже если её route
380
+ class доказан другим representative transition. Матрица не доказывает полноту всех CLI actions или
381
+ future transition families; отсутствие route в наблюдённой boundary — unsupported gap, а не разрешение
382
+ импровизировать command.
383
+
384
+ ## 13.3. Reviewer runtime и review mode
385
+
386
+ Перед external-sealed packet Core выполняет non-mutating runtime preflight. Node major должен быть не
387
+ ниже 22; exact declared, locked и repository-local installed Workflow versions должны совпасть.
388
+ Runtime build manifest и SHA-256 каждого перечисленного Workflow runtime-файла проверяются, включая CLI
389
+ и reviewer entrypoints. Manifest также фиксирует exact package manifest и recursive dependency closure.
390
+ Каждый preflight заново с диска выполняет parent-aware, nested-first разрешение фактических dependencies,
391
+ сверяет их версии, пути и hashes всех attested `.js`/`.cjs`/`.mjs`/`.json`/`.node` файлов и отклоняет
392
+ path/symlink drift. Затем in-process gateway descriptor подтверждает package/protocol/schema. В packet не
393
+ попадают raw output или argv. Missing install, missing/stale build либо dependency closure и failed
394
+ load/contract дают actionable blocker. Writable cache создаётся с mode `0700` в OS temporary directory
395
+ вне sealed checkout, а dependency install не запускается. Blockers делают preflight `prepared=false`.
396
+
397
+ Packet/record contract связан с explicit `--review-mode ordinary|security`. `ordinary` означает проверку
398
+ корректности/acceptance без implicit security scan; `security` означает явно запрошенный security focus.
399
+ Mode входит в packet hash, поэтому записать результат другого mode невозможно.
400
+
401
+ Native launch передаёт API-compatible strict Structured Output schema. Во всех object schemas `required`
402
+ точно совпадает с `properties`, а optional semantic values кодируются nullable. Parser повторно проверяет
403
+ closed shape, допустимые `route`/`causeId`, обязательный `planConflict` для replan и finding cardinality;
404
+ malformed ответ становится unverified review без remediation authority.
405
+
406
+ # 14. beta.11 Plan-integrity recovery
304
407
 
305
408
  `task plan-integrity-recover` применим только после одного first ordinary `checks-failed` remediation:
306
409
 
@@ -317,7 +420,7 @@ fresh `next` через corrective yield и обычный Human-confirmed repla
317
420
  P01-A предотвращает поддерживаемые contradictions до fresh authorization. beta.11 path остаётся для
318
421
  pre-P01 authorizations и late/unsupported exact recovery cases.
319
422
 
320
- # 13.1. beta.12.7 compatibility transitions
423
+ # 14.1. beta.12.7 compatibility transitions
321
424
 
322
425
  `update dependency-provenance-recover` больше не требует полного равенства Task manifest/lock с base.
323
426
  Base остаётся version authority, а parent/HEAD candidate сравниваются без единственных Workflow
@@ -367,7 +470,7 @@ diff. Semantic drift, иной commit или разрыв chain fail closed. Pro
367
470
  из уже проверенной override-to-authorization Git chain. Формула должна точно равняться current Task
368
471
  revision; unrelated write, duplicate, неверный parent или product commit блокируют continuation.
369
472
 
370
- # 13.2. Downstream-proof predecessor recovery
473
+ # 14.2. Downstream-proof predecessor recovery
371
474
 
372
475
  Если active Step изменяет только собственный proof artifact, обычный `task step-complete` сохраняется.
373
476
  Если dirty set дополнительно содержит файлы completed transitive predecessor, Core проверяет branch,
@@ -381,7 +484,185 @@ fresh `next` рекламирует lease-bound `task downstream-proof-recover`
381
484
  remainder и пройти fresh Plan Risk Audit и execution authorization. Unrelated/non-predecessor file,
382
485
  strict-review evidence, unregistered commit, branch mismatch или damaged sidecar возвращают `doctor`.
383
486
 
384
- # 14. P04-A structural replacement boundary
487
+ # 14.3. beta.12.9 historical Step provenance
488
+
489
+ Corrective replan теперь сохраняет evidence commits Steps, исключённых replacement Plan, в
490
+ `invalidatedStepCommits`. Это предотвращает новый unregistered-history blocker без переноса завершённого
491
+ Step в новый Plan.
492
+
493
+ Для уже существующего stranded state fresh `next` допускает только один из двух bounded routes:
494
+
495
+ - `task historical-step-provenance-preflight/recover`, если beta.12.9 dependency HEAD уже зарегистрирован;
496
+ - `update historical-step-dependency-preflight/recover`, если dependency-only beta.12.9 commit ещё
497
+ является единственным unregistered HEAD.
498
+
499
+ Core требует один active Step, dirty paths только в его `allowedWrites`, отсутствие leases/transactions,
500
+ ровно один omitted product commit, полный hash-valid strict Step Review с `passed`, verified reviewer
501
+ attestation и прежний hash-bound `final_acceptance` того же Plan. Update-route дополнительно связывает
502
+ exact `HEAD^`/`HEAD`, package/version surfaces и SHA-256 dirty worktree. Recovery не переписывает Git,
503
+ не меняет product bytes и не возвращает старый Step в Plan; он записывает historical authority и, для
504
+ update-route, dependency provenance в одной Task revision. Fresh `status -> next` после transition
505
+ должен вернуть обычный credential/`task step-complete` flow текущего Step.
506
+
507
+ # 14.4. beta.12.11 audited remediation topology
508
+
509
+ `milestone remediation-materialize` применим только к required Task в
510
+ `awaiting_execution_authorization`, если ни один Step не начат и последний audit текущей
511
+ Task revision/Brief/Plan имеет decision `stop-escalate`. Нужны active Milestone на clean base,
512
+ coherent idle observation boundary, current Milestone execution authorization и ready Discovery.
513
+
514
+ Input не содержит Milestone Plan или actor:
515
+
516
+ ```json
517
+ {
518
+ "discoveryId": "DISC-...",
519
+ "expectedDiscoveryRevision": 1,
520
+ "title": "Restore upstream capability",
521
+ "predecessorTaskIds": ["TASK-..."]
522
+ }
523
+ ```
524
+
525
+ `predecessorTaskIds` обязан точно совпасть с direct predecessor frontier blocked Task; каждый такой
526
+ Task required и merged. Одна Project transaction пишет consumed Discovery, Brief/state нового Task,
527
+ новый `plan.json`, `scope-change-events.jsonl` и Milestone state. Event mode
528
+ `audited-remediation` связывает blocked Task/revision, Brief/Plan hashes, audit ID/hash, remediation
529
+ Task и predecessor IDs. Milestone semantic fields и прежние memberships неизменны; добавляются
530
+ только один required Task и одна dependency edge blocked -> remediation. Повтор audit запрещён.
531
+
532
+ Current Milestone execution authorization superseded и заменён `corrective-derived`, evidenceHash
533
+ связывает source Plan/authorization mode, audit hash и remediation evidence. Repository `next`
534
+ приоритизирует remediation Task. Для current required Tasks оно выдаёт
535
+ `correctiveDerivedApproval` для `task authorize`/`task accept`; actor фиксирован как
536
+ `agent:milestone-remediation:<MS-ID>`, human approval и delegation grant не нужны. Plan Risk Audit,
537
+ mechanical feasibility, C1, Step checks/commits/reviews и final Milestone acceptance не меняются.
538
+ После merge remediation Task исходная Task получает `task plan-set` и проходит fresh audit/authority.
539
+
540
+ Если перед этим exact package update сделал Knowledge Map stale, navigation может вернуть
541
+ `auditedRemediation.dependencyKnowledgeRefresh`. Eligibility требует: ранее active approved map;
542
+ inspected status `stale`; единственный изменённый Knowledge path `package.json`; clean checkout;
543
+ runtime/declared/locked/installed/HEAD/Milestone-base version равны; approved package content найден в
544
+ Git ancestry; каждый последующий commit, трогавший manifest, меняет ровно `package.json` и
545
+ `package-lock.json`, причём после удаления `codex-workflow-v2` обе JSON-структуры совпадают с parent.
546
+ Materialization тогда дополнительно пишет active Knowledge Map с revision +2 и approval mode
547
+ `corrective-derived` в той же Project transaction. Это не разрешает автоматически принимать README,
548
+ docs, commands, classification, authority, gaps или conflicts.
549
+
550
+ # 14.5. beta.12.12 selector-contract Plan-integrity recovery
551
+
552
+ Analyzer `wf2.root-npm-script-arguments@1` читает root `package.json` и только repository-local runner
553
+ из evaluated Git HEAD. Узкий доказуемый contract — script `node <safe-relative-path> affected`, исходник
554
+ которого использует `process.argv.slice(3)`, содержит selector literals `--base`, `--head`, `--files` и
555
+ явный `Affected mode requires` guard. Для такого script check без forwarded selector получает
556
+ `ROOT_NPM_SCRIPT_REQUIRED_SELECTOR_MISSING` и блокирует execution authorization. Произвольный shell или
557
+ нераспознанный runner остаётся `unverified`, а не объявляется ошибочным по догадке.
558
+
559
+ Legacy recovery принимает последовательную append-only history из одного или нескольких
560
+ `checks-failed` events при отсутствии corrective decision. Evidence v2 связывает каждый event ID/hash/
561
+ ordinal, Task revision, Plan/Step definition, manifest и runner hashes, Git HEAD, conflicts и SHA-256
562
+ dirty worktree. `task plan-integrity-recover` записывает один `replan-required` decision с
563
+ `triggeringAttemptCount = failures + 1` и полным `coveredEventIds`.
564
+
565
+ Если exact beta.12.12 package ещё не установлен, `update plan-integrity-update-preflight` проверяет
566
+ source beta.12.11, отсутствие leases/transactions и exact dirty allowlist. После dependency-only
567
+ transport `update plan-integrity-dependency-preflight/recover` регистрирует единственный HEAD как system
568
+ commit. Когда Knowledge drift объясняется только Workflow pin, та же Project transaction выполняет
569
+ corrective-derived reconcile/approval; прочий drift fail-closed. Product bytes не коммитятся и не
570
+ переносятся. Fresh route продолжается через credential replacement, `plan-integrity-recover`, yield и
571
+ corrective replan с selector-bearing check.
572
+
573
+ # 14.6. beta.12.15 source/target Knowledge binding
574
+
575
+ Corrective-replan receipt теперь включает две разные пары. `knowledgeRevision/knowledgeHash` связывает
576
+ исходное состояние Task; `targetKnowledgeRevision/targetKnowledgeHash` связывает active Project
577
+ Knowledge Map и replacement Plan. Executor проверяет source под Task lock, candidate Plan — по target,
578
+ а Risk Audit и materialized Task получают target binding.
579
+
580
+ Source и target могут различаться только при exact `dependencyProvenanceRecoveries.planIntegrity` для
581
+ текущего HEAD и package version. Record обязан совпасть по Plan, failed Step, всей remediation event ID
582
+ последовательности, dirty paths и повторно вычисленному dirty SHA-256. После corrective yield Core может
583
+ восстановить один или несколько ещё не зарегистрированных package updates: он просматривает trailing
584
+ Git suffix от HEAD до последнего зарегистрированного system commit, проверяет каждый элемент как
585
+ непрерывный manifest/lock-only exact Workflow pin update и одной Core mutation добавляет каждый commit
586
+ и его фактическую package version в provenance history. Любое изменение product bytes, разрыв ancestry,
587
+ Step status, Plan, decision или C1 posture отключает route.
588
+
589
+ Completed corrective-yield transaction проверяет неизменный canonical yield event как prefix текущей
590
+ append-only handoff history. Это сохраняет tamper detection, но разрешает новый handoff после успешного
591
+ corrective replan. E2E release gate проходит prepare/confirm/execute, authorization, handoff/claim,
592
+ selector-bearing Step completion commit и strict Step review.
593
+
594
+ Completed corrective-replan transaction сохраняет authority identity своего release. Текущий manifest
595
+ обязателен для любой pending/in-flight transaction; completed journal может использовать только exact
596
+ tuple из append-only registry: manifest SHA-256, runtime fingerprint и catalog hash. Неизвестный tuple,
597
+ legacy tuple у незавершённой transaction, повреждённый intent/phase chain или owned target остаётся
598
+ `journal-invalid`. Это позволяет читать terminal beta.12.12 history после расширения binding manifest,
599
+ не превращая legacy identity в новую execution authority.
600
+
601
+ # 14.7. beta.12.16 check-support scope authority
602
+
603
+ Analyzer `wf2.check-support-anchor@1` рассматривает только root `npm run` check, repository-local
604
+ `node`/`tsx` runner и его direct relative static import. Блокировка допустима, когда Step создаёт
605
+ отсутствующий exact migration output, импортированный support-модуль содержит SHA-256 и approved/
606
+ expected/manifest/catalog anchors той же `.sql` family, но Step не владеет support path. Это machine
607
+ evidence, а не вывод из текста ошибки.
608
+
609
+ Для pre-execution Plan finding `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` блокирует authorization.
610
+ Для уже выполняемой guarded Step первый `checks-failed` может рекламировать тот же
611
+ `task plan-integrity-recover`, но evidence v3 записывает `continue-fix`, а не `replan-required`.
612
+ `scopeExtensions` равно отсортированному exact набору support paths из conflict evidence; dirty files
613
+ до recovery обязаны оставаться в original allowedWrites, support path не может пересекать
614
+ forbiddenScope. Plan hash не меняется. Effective scope используется retry precondition, Worker envelope,
615
+ Core commit, downstream-proof assessment, corrective-replan worktree guard и strict review packet.
616
+ Любое более широкое изменение остаётся в обычном corrective replan с Human gate.
617
+
618
+ # 14.8. beta.12.17 coherent Plan-integrity update source
619
+
620
+ Read-only `update plan-integrity-update-preflight` выводит `sourceVersion` из declared dependency, а
621
+ не из release-specific constant. Он принимает только exact `2.0.0-beta.12.N`, где `N >= 11` и
622
+ `N` меньше patch ordinal внешнего runner. Locked, installed, current Task branch и active Milestone
623
+ base обязаны совпадать с declared source. Любая missing/divergent surface блокирует transport.
624
+
625
+ Version consensus не заменяет остальные guards: должна существовать ровно одна eligible failed-Step
626
+ Plan-integrity assessment, observation обязана быть coherent, lease/transaction/Core operation
627
+ отсутствуют, а dirty bytes совпадают с доказанным Step scope. После dependency-only Git transport
628
+ repository-local runner регистрирует commit только через advertised
629
+ `update plan-integrity-dependency-recover`. Source consensus не усыновляет product history, не меняет
630
+ Plan/remediation evidence и не даёт generic update authority другим beta lines.
631
+
632
+ # 14.9. beta.12.18 historical check-support scope adoption
633
+
634
+ Validation v3 связывает check-support event с `event.planHash`. Если поздний Knowledge rebind и новый
635
+ Plan явно добавили derived support path, исторический event проверяется по собственным immutable
636
+ fields, hashes и conflict evidence, а не против scope нового Plan. Только event текущего Plan может
637
+ расширять effective Step scope; поэтому старое evidence не переносит authority неявно.
638
+
639
+ Read-only `update plan-integrity-update-preflight` может вернуть
640
+ `compatibilityMode=post-rebind-scope-adoption`, только если Task ожидает execution authorization, ни
641
+ одна Step не выполняется, существует ровно один исторический v3 `continue-fix`, его dirty paths и
642
+ content hash не изменились, а current planned Step напрямую владеет всеми `scopeExtensions` и
643
+ объявляет их outputs. Обычные coherent-version, lease, transaction, Core-operation и dependency-only
644
+ Git guards сохраняются. После регистрации update Knowledge rebind, PRA и authorization выполняются
645
+ только по fresh routes; Human approval для exact machine-proved scope не нужен.
646
+
647
+ # 14.10. beta.12.19 historical check-support dirty carryover
648
+
649
+ После регистрации dependency recovery current Plan может быть ещё раз mechanically rebound и
650
+ авторизован, тогда как product bytes остаются uncommitted. Запуск разрешён только при едином
651
+ assessment для `next` и `runStep`: latest compatible dependency record должен быть зарегистрирован на
652
+ точной history boundary; его Plan должен совпадать с current Plan или вести к нему через непрерывную
653
+ Knowledge-rebind chain; planned Step должна владеть каждым dirty path и каждым `scopeExtension`; full
654
+ path set и `hashDirtyWorktree` должны совпадать; один validated historical check-support decision
655
+ должен связывать те же conflict/remediation/scope fields.
656
+
657
+ При полном совпадении `next` публикует
658
+ `planIntegrityDirtyCarryover.state=validated`, а `task run` принимает только эти байты под current
659
+ Step envelope. При любом расхождении `next` возвращает `doctor` с `blockedAction=task run`; lease,
660
+ Step mutation и commit не создаются. Для обновления уже авторизованной beta.12.18 Task внешний
661
+ beta.12.19 runner выдаёт `compatibilityMode=post-rebind-dirty-carryover`, после чего сохраняются
662
+ обычный dependency-only transport, repository-local registration, Knowledge rebind, PRA,
663
+ authorization, checks, Core commit и sealed review. Human approval не добавляется.
664
+
665
+ # 15. P04-A structural replacement boundary
385
666
 
386
667
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
387
668
  возвращает `TRANSITION_BLOCKED`, diagnostic `STRUCTURAL_REPLACEMENT_REQUIRED` и incident dependency edges
@@ -400,7 +681,7 @@ replacementGate.transaction: disabled
400
681
  или manually rewire graph. P04-B/P05 должен определить arbitrary cardinality, scope redistribution,
401
682
  dependency rewiring, completed-work adoption и crash-safe transaction.
402
683
 
403
- # 15. Milestone progress и Codex task supervision
684
+ # 16. Milestone progress и Codex task supervision
404
685
 
405
686
  `milestone progress` является read-only projection: ordinals, membership disposition/reason, dependency
406
687
  state, predecessors/statuses, runnable/block reason, replacement links и Step statuses.
@@ -412,7 +693,7 @@ Coordinator ждёт one routed Task, читает closed CoordinatorReport, з
412
693
  `status -> next` и новый progress projection. Recoverable non-human continuation возвращается в тот же
413
694
  Task chat. Следующий Task dispatch разрешён только после terminal merged confirmation.
414
695
 
415
- # 16. codebase-memory graph
696
+ # 17. codebase-memory graph
416
697
 
417
698
  `codebase-memory-mcp` используется только после `graph refresh-request`. Gateway сверяет project/root,
418
699
  index status и request fingerprint, получает derived evidence и вызывает `graph bind` с current revision.
@@ -421,7 +702,7 @@ Graph является навигационным индексом, не Project
421
702
  записывает explicit `graph fallback`; агент продолжает Git search, прямое чтение файлов и tests, если
422
703
  другой independent gate не блокирует работу.
423
704
 
424
- # 17. Error codes и recovery discipline
705
+ # 18. Error codes и recovery discipline
425
706
 
426
707
  | Code | Значение | Реакция |
427
708
  |---|---|---|
@@ -443,35 +724,48 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
443
724
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
444
725
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
445
726
 
446
- # 18. Public command surface beta.12.8
727
+ # 19. Public command surface beta.13
447
728
 
448
729
  | Область | Actions |
449
730
  |---|---|
450
- | System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
451
- | Update | `preflight`, `rescue-preflight`, dependency provenance, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
731
+ | System | `doctor`, compact `status`, explicit `status --full`, `next`, `gateway handshake`, `locks` |
732
+ | Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof bridges, Plan-integrity update/dependency bridge |
452
733
  | Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
453
734
  | Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
454
735
  | Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
455
736
  | Discovery | `start`, `update`, `show`, `materialize` |
456
- | Milestone | `recover`, `show`, `progress`, `plan-set`, scope-change, autonomy, `authorize`, `validate`, `accept`, `cancel` |
737
+ | Milestone | `recover`, `show`, `progress`, `plan-set`, `remediation-materialize`, scope-change, autonomy, `authorize`, `validate`, `accept`, `cancel` |
457
738
  | Task planning | `show`, `plan-set`, `knowledge-rebind`, `context-refresh`, `authorize`, `plan-risk-audit` |
458
739
  | Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
459
- | C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
460
- | Review | review/step-review packet, launch, sealed record и record actions |
461
- | Corrective | decision/recovery, plan-integrity, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
740
+ | C1 | `handoff[-prepare/-replace/-show]`, `claim --claim-credential-ref`, `writer-credential-replace`, lease-bound actions с `--writer-credential-ref`, `handback[-create]` |
741
+ | Review | review/step-review packet с `--review-mode ordinary|security`, launch, sealed record и record actions |
742
+ | Corrective | decision/recovery, plan-integrity, historical-step-provenance preflight/recover, downstream-proof-recover/replan-recover, remediation-mode, stop-override prepare/apply, yield и corrective-replan actions |
462
743
  | Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
463
744
 
464
745
  Exact options берутся из fresh `next`; command help используется только когда
465
746
  `exactOptionContractAvailable=false` или syntax действительно неизвестен.
466
747
 
467
- # 19. Release и package update gates
748
+ <!-- pagebreak -->
749
+
750
+ # 20. Release и package update gates
468
751
 
469
752
  Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
470
753
  running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
471
- active-downstream-proof bridge и beta.12.7 exact stranded-replan bridge; все они fail-closed и не дают
472
- общего разрешения dirty update.
473
-
474
- Перед beta.12.8 tag обязательны `npm ci`, `npm run validate`, `npm run pack:check`,
475
- `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
476
- `npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
477
- append-only real-agent lifecycle log.
754
+ active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.9 historical-Step
755
+ dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
756
+ dirty update.
757
+
758
+ Перед beta.13 tag обязательны `npm ci`, полный `npm run validate`, Signal-shaped recovery E2E до
759
+ последующей ordinary Step/Task dispatch, credential confinement, rolling-cause и production-edge suites,
760
+ observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
761
+ `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
762
+ `npm run pack:check`, `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
763
+ `npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13` tag binding и append-only
764
+ real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
765
+ превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
766
+
767
+ Real-agent gate повторяет production boundary Codex App: Task agent удерживает live writer authority,
768
+ отдельный App reviewer читает external-sealed packet, после чего Task agent записывает sealed result.
769
+ Nested native `codex exec` внутри другого Codex agent не является release evidence. Packet generation
770
+ логируется как read-only observation, record — как exact `next`-authorized mutation с последующими
771
+ `status` и `next`.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  brief_id: WF2-P01
3
3
  problem: "Mechanically infeasible Task Plans can reach execution authorization"
4
- status: approved
4
+ status: implemented
5
5
  owner: null
6
6
  created_at: 2026-08-23
7
7
  approved_at: 2026-08-24
8
- implemented_at: null
9
- revision: 5
8
+ implemented_at: 2026-08-24
9
+ revision: 6
10
10
  ---
11
11
 
12
12
  # Brief — P01-A Bounded Mechanical Plan Feasibility
@@ -30,10 +30,10 @@ Confirmed baseline behavior at the pinned pre-candidate revision:
30
30
  `split-required`, and `stop-escalate`. It has no `implementation-defect`, `plan-defect`,
31
31
  `brief-decomposition-defect`, or `reslice-plan` decision.
32
32
 
33
- The P01-A candidate on `codex/p04-task-dependencies` now adds the bounded evaluator and event
34
- binding described below. These baseline gaps are retained here as problem evidence, not as claims
35
- about the candidate implementation. The brief remains `approved` until the combined P04-A/P01-A
36
- candidate is merged/installed and implementation acceptance is recorded.
33
+ P01-A was implemented with P04-A, released in exact `v2.0.0-beta.11` at commit `44e6734`, and
34
+ retained through the beta.12 line. These baseline gaps are retained here as historical problem
35
+ evidence, not as claims about the current implementation. P01-B remains deferred and is not made
36
+ implemented by this status change.
37
37
 
38
38
  The Signal pre-M3 replay additionally showed that a narrow check can pass while a project-reference
39
39
  build or architecture check fails. That supports earlier verification, but does not make semantic
@@ -476,3 +476,7 @@ P01-B remains `NO-GO` until those questions have concrete contracts and fresh re
476
476
  base commit again inside local branch creation before Git mutation. The new negative witness and
477
477
  the complete affected P01/P04/Task lifecycle selection passed 13/13 and 84/84 respectively;
478
478
  the exact final candidate then passed the full 319/319 suite.
479
+ - 2026-08-24 — Revision 6 records implementation acceptance. The combined P04-A/P01-A candidate
480
+ shipped as exact `v2.0.0-beta.11` at commit `44e6734` after the declared focused and full-suite
481
+ gates passed, and was retained in the beta.12 line. Status moved from `approved` to `implemented`.
482
+ This closes P01-A only; P01-B remains deferred.