codex-workflow-v2 2.0.0-beta.12.9 → 2.0.0-beta.13.1

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 (117) hide show
  1. package/README.md +58 -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.d.ts +1 -0
  22. package/dist/src/alpha6/plan-risk.js +36 -7
  23. package/dist/src/alpha6/plan-risk.js.map +1 -1
  24. package/dist/src/alpha6/remediation-cause.d.ts +13 -0
  25. package/dist/src/alpha6/remediation-cause.js +77 -0
  26. package/dist/src/alpha6/remediation-cause.js.map +1 -0
  27. package/dist/src/alpha6/remediation.d.ts +15 -4
  28. package/dist/src/alpha6/remediation.js +430 -67
  29. package/dist/src/alpha6/remediation.js.map +1 -1
  30. package/dist/src/alpha6/review.js +34 -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 +216 -258
  38. package/dist/src/cli.js.map +1 -1
  39. package/dist/src/contracts.d.ts +168 -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 +221 -34
  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/index.d.ts +2 -0
  56. package/dist/src/index.js +2 -0
  57. package/dist/src/index.js.map +1 -1
  58. package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +5 -0
  59. package/dist/src/lifecycle/corrective-replan-binding-manifest.js +9 -0
  60. package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -1
  61. package/dist/src/lifecycle/corrective-replan.js +1 -1
  62. package/dist/src/lifecycle/corrective-replan.js.map +1 -1
  63. package/dist/src/lifecycle/semantic-registry.js +1 -1
  64. package/dist/src/observation.js +1 -2
  65. package/dist/src/observation.js.map +1 -1
  66. package/dist/src/observed-routes.d.ts +114 -0
  67. package/dist/src/observed-routes.js +545 -0
  68. package/dist/src/observed-routes.js.map +1 -0
  69. package/dist/src/operational-contract.d.ts +26 -0
  70. package/dist/src/operational-contract.js +94 -0
  71. package/dist/src/operational-contract.js.map +1 -0
  72. package/dist/src/reviewer.d.ts +218 -8
  73. package/dist/src/reviewer.js +927 -25
  74. package/dist/src/reviewer.js.map +1 -1
  75. package/dist/src/state/corrective-replan-executor.js +21 -16
  76. package/dist/src/state/corrective-replan-executor.js.map +1 -1
  77. package/dist/src/state/corrective-replan-public.js +35 -10
  78. package/dist/src/state/corrective-replan-public.js.map +1 -1
  79. package/dist/src/state/corrective-replan-transaction.js +12 -4
  80. package/dist/src/state/corrective-replan-transaction.js.map +1 -1
  81. package/dist/src/state/corrective-yield-transaction.js +11 -2
  82. package/dist/src/state/corrective-yield-transaction.js.map +1 -1
  83. package/dist/src/state/lock.d.ts +1 -0
  84. package/dist/src/state/lock.js +24 -0
  85. package/dist/src/state/lock.js.map +1 -1
  86. package/dist/src/version.d.ts +1 -1
  87. package/dist/src/version.js +1 -1
  88. package/dist/src/workflow.d.ts +65 -4
  89. package/dist/src/workflow.js +1710 -155
  90. package/dist/src/workflow.js.map +1 -1
  91. package/docs/autonomy-guardrails.md +41 -14
  92. package/docs/delegated-approval.md +6 -1
  93. package/docs/development-flow.md +42 -12
  94. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  95. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  96. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  97. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +189 -22
  98. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +154 -26
  99. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +333 -52
  100. package/docs/problem-briefs/01-pre-implementation-integrity.md +11 -7
  101. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +13 -6
  102. package/docs/problem-briefs/README.md +11 -11
  103. package/docs/release.md +92 -9
  104. package/docs/updating-existing-project.md +227 -0
  105. package/docs/validation-report.md +177 -99
  106. package/package.json +12 -3
  107. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +42 -1
  108. package/schemas/authorization-event.schema.json +10 -3
  109. package/schemas/corrective-decision-event.schema.json +164 -9
  110. package/schemas/corrective-replan-credentials.private.schema.json +4 -2
  111. package/schemas/milestone-scope-change-event.schema.json +25 -1
  112. package/schemas/plan-risk-audit-event.schema.json +1 -0
  113. package/schemas/remediation-event.schema.json +17 -1
  114. package/schemas/review-result.schema.json +1 -0
  115. package/schemas/step-review-event.schema.json +15 -0
  116. package/schemas/task.schema.json +61 -1
  117. package/schemas/transition-definition.schema.json +8 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.9
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: 30 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.9
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.9 | Значение |
16
+ | Параметр beta.13 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.9` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.13.1` |
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.9 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, historical Step 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,25 @@ 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
+
231
+ Beta.13.1 вводит prospective, Plan-bound compatibility boundary. Новые ordinary PRA и atomic corrective
232
+ replan связывают `structuralProductionEdgeAuthority=required-v1` с hash chain. Историческая markerless PRA
233
+ не получает новую семантику задним числом, если текущая Task также не содержит production-edge fields.
234
+ Content-only knowledge rebind сохраняет exact native fields и rendered edge, а для такой legacy Task
235
+ сохраняет markerless posture. Это устраняет необходимость state migration; repository-local state остаётся
236
+ доверенной границей и не защищает от полного привилегированного переписывания всей chain.
237
+
214
238
  # 9. C1 handoff и writer lease
215
239
 
216
240
  ## 9.1. Dependency binding
@@ -230,16 +254,23 @@ Claim сверяет stored binding с current Milestone authority до lock acq
230
254
 
231
255
  ## 9.2. Credential sequence
232
256
 
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.
257
+ 1. `task handoff-prepare` сохраняет hash в handoff state, кладёт secret в project-local vault и возвращает
258
+ публичную `claimCredentialReference` с `transport=local-vault-v1`.
259
+ 2. Exact target actor вызывает `task claim --claim-credential-ref <CREF-...>`; reference одноразовый и
260
+ после успешного claim удаляется.
261
+ 3. Claim проверяет project/entity/action/actor/expiry, создаёт lease и возвращает
262
+ `writerCredentialReference`; сам token отсутствует в output.
263
+ 4. `task run` и остальные lease-bound actions принимают только `--writer-credential-ref`; `next` явно
264
+ сообщает `secretInArgv=false`, `secretInOutput=false` и renewal policy.
265
+ 5. `task result-set` consumes текущую authority и освобождает lease до Human final-acceptance gate.
266
+ 6. После acceptance fresh `writer-credential-replace` создаёт merge authority; terminal transitions
267
+ освобождают её.
268
+
269
+ Vault record — regular file mode `0600`, содержит integrity hash и binding к project, entity, actor,
270
+ allowed actions и expiry. Legacy `--claim-token`/`--writer-token` отклоняются до lifecycle transition.
271
+ Ни secret, ни его plaintext receipt нельзя логировать, сохранять в chat packet или включать в evidence;
272
+ argv, stdout, stderr и structured errors несут только reference/metadata. `handoff-show` возвращает safe
273
+ persisted binding. Потеря reference разрешается только fresh advertised replacement action.
243
274
 
244
275
  # 10. Git и Step evidence
245
276
 
@@ -248,7 +279,7 @@ Credential нельзя логировать, сохранять в chat packet
248
279
  | Task start | Clean checkout, fresh base/auth/dependency binding, correct workspace policy |
249
280
  | Step run | Planned/failed eligible Step, dependencies, branch, C1 actor, lease |
250
281
  | Worker return | Изменения uncommitted и только в allowedWrites |
251
- | Step complete | History, scope, checks, review gate, exact writer token |
282
+ | Step complete | History, scope, checks, review gate, exact writer credential reference |
252
283
  | Commit | Один Core-owned commit с Task/Step metadata |
253
284
  | Submit/Result | Exact evidence/review; Result освобождает lease до Human gate |
254
285
  | Merge | Fresh review/acceptance, base conditions, accepted HEAD |
@@ -276,31 +307,110 @@ authorization; sync-base invalidates review/Result/acceptance bindings.
276
307
  - packetHash и repositorySealHash обязаны совпасть до записи;
277
308
  - Reviewer thread ID и lifecycle actor фиксируются, bearer token не передаётся Reviewer;
278
309
  - seal drift уничтожает result и требует fresh packet.
310
+ - packet command требует explicit `--review-mode ordinary|security`; ordinary запрещает подменять
311
+ проверку неявным security scan, а security применяется только по явному запросу;
312
+ - read-only `codex-workflow-reviewer-runtime-preflight-v1` связывает Node executable/version, exact
313
+ Workflow runtime module hash, manifest/lock hashes, dependency readiness и writable OS-temporary cache
314
+ за пределами sealed checkout; при каждом вызове он заново разрешает с диска recursive runtime dependency
315
+ graph по parent-aware, nested-first Node lookup и сверяет exact package manifests и SHA-256 всех
316
+ attested `.js`/`.cjs`/`.mjs`/`.json`/`.node` файлов. Лишь затем Node `createRequire` загружает exact
317
+ repository-local gateway/reviewer/workflow graph и сверяет общий с CLI descriptor
318
+ package/protocol/schema. Subprocess, timeout/retry, cached trust decision и install не используются;
319
+ checkout не меняется, а missing/tampered/conflicting/symlinked dependency, load или contract failure
320
+ закрывает выдачу packet.
279
321
 
280
322
  `review-launch` сохраняется в public CLI для совместимых environments, но не применяется как nested
281
323
  local reviewer внутри Codex App sandbox.
282
324
 
283
325
  # 12. Remediation и corrective decisions
284
326
 
285
- Guarded Step имеет проверяемый, но не ограниченный счётчиком remediation circuit:
327
+ Для новых beta.13 events Guarded Step имеет cause-bound rolling refinement без числового лимита:
286
328
 
287
329
  | Boundary | Разрешение |
288
330
  |---|---|
289
- | Failed cycles 1-2 | `ordinary`; та же Task и новый strict review |
290
- | Failed cycles 3+ | `corrective`; остаются исполнимыми и требуют нового strict review |
291
- | Finding `route=fix` или route отсутствует | Продолжить ту же Task/Step |
331
+ | Новый distinct mechanical/reviewer cause | Продолжить ту же Task/Step и выполнить новый strict review |
332
+ | Повтор mechanically normalized cause после fix | Root-cause replan той же Task обязателен |
333
+ | Повтор stable reviewer `causeId` с `planConflict=true` | Root-cause replan той же Task обязателен |
334
+ | Похожий prose, номер попытки или reviewer cause без Plan conflict | Не создаёт replan authority |
335
+ | Finding `route=fix` или route отсутствует | Продолжить ту же Task/Step независимо от attempt count |
292
336
  | Finding `route=replan` с exact Plan conflict | `task plan-set`; меняются только implementation Steps |
293
337
  | `route=replan` без exact conflict | Невалидный review result, state не меняется |
294
338
  | Explicit `split-required` | Structural replacement stop |
295
339
  | Exact beta.11 attempt-four `stop-escalate` | Append-only Human-confirmed compatibility override |
340
+ | Pre-execution `stop-escalate` + exact `auditedRemediation` route | Один additive upstream Task без нового Human gate |
296
341
  | Любой другой explicit `stop-escalate` | Terminal user attention |
297
342
 
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
343
+ Attempt count является диагностикой, а не lifecycle authority. Authoritative mechanical cause выводится
344
+ из normalized failure fingerprint; external review cause требует schema-valid stable `causeId`, а replan
345
+ authority дополнительно требует `planConflict=true`. Explicit corrective-decision journal сохраняется для
346
+ намеренного stop/split и совместимого legacy recovery. Legacy events без `causeBindings` читаются по старому
347
+ compatibility circuit и не получают новую authority задним числом. Replan из review обязан назвать
348
+ `planClause`, `whyFixCannotFit` и `minimalPlanChange`; objective, requirements и acceptance Task при
349
+ remediation неизменяемы. Новый Plan проходит обычные audit и authorization.
350
+
351
+ Failed strict review финализируется project transaction: remediation event, Task `needs_fix` и удаление
352
+ exact proven writer lease образуют один readback-bound target set. Повтор authoritative reviewer cause в
353
+ той же transaction добавляет C1 yield. `next` и `task plan-set` одинаково требуют отсутствия writer lease
354
+ и C1 claim и запрещают ослаблять `forbiddenScope`, guarded PRA classification или production-edge boundary.
355
+ Если review sidecars уже записаны, а transaction была прервана, повторная запись review завершает один
356
+ pause без duplicate remediation.
357
+
358
+ Failed check записывается project transaction `failed-step-continuation`: remediation sidecar, Task
359
+ `needs_fix` с `failurePause` и удаление lease входят в один journaled target set. Validation повторно
360
+ сверяет Task revision/status, remediation hash, отсутствие lease, Git HEAD, dirty paths и
361
+ `dirtyWorktreeHash`. Product bytes не коммитятся и не сбрасываются. Fresh `next` при отсутствующем либо
362
+ stale lease сначала рекламирует `task writer-credential-replace`, затем возвращает ту же Task к fix или
363
+ root-cause replan. Это общий continuation contract, а не новый numbered compatibility patch.
364
+
365
+ # 13. beta.13 coherent continuation и operational contracts
366
+
367
+ ## 13.1. Compact status
368
+
369
+ `status` по умолчанию возвращает bounded projection `codex-workflow-compact-status-v1`: entity counts,
370
+ active Task/Step, exact advertised action/blockedAction, observation reason codes, route metadata и
371
+ stable `routeFingerprint`. Массивы всех Discoveries, Tasks, Milestones и delegations в неё не входят.
372
+ Полная historical projection доступна только через explicit `status --full`. Обе формы строятся из одного
373
+ observation snapshot; compact form не вызывает public full-status path.
374
+
375
+ ## 13.2. Observed Signal route matrix
376
+
377
+ `observed-route-matrix-v2` покрывает 13 route classes, фактически наблюдавшихся в Signal. Каждый класс
378
+ имеет unique descending priority и ровно один representative witness: fresh production `next`, real
379
+ Workflow executor и fresh reachable successor либо real non-executable terminal observation. Это
380
+ class-level claim, а не доказательство каждой action. `next` добавляет matrix version/fingerprint,
381
+ route/action fingerprint, action support `executable-witnessed`/`unwitnessed`/`unsupported` и
382
+ `coverageBoundary=signal-observed-route-class-witnesses`.
383
+
384
+ Manual instruction и terminal marker не маскируются под CLI: они перечислены в explicit unsupported
385
+ inventory, не имеют CLI/executor binding и останавливают automation либо требуют чтения structured
386
+ options. Known executable action без собственного exact E2E остаётся `unwitnessed`, даже если её route
387
+ class доказан другим representative transition. Матрица не доказывает полноту всех CLI actions или
388
+ future transition families; отсутствие route в наблюдённой boundary — unsupported gap, а не разрешение
389
+ импровизировать command.
390
+
391
+ ## 13.3. Reviewer runtime и review mode
392
+
393
+ Перед external-sealed packet Core выполняет non-mutating runtime preflight. Node major должен быть не
394
+ ниже 22; exact declared, locked и repository-local installed Workflow versions должны совпасть.
395
+ Runtime build manifest и SHA-256 каждого перечисленного Workflow runtime-файла проверяются, включая CLI
396
+ и reviewer entrypoints. Manifest также фиксирует exact package manifest и recursive dependency closure.
397
+ Каждый preflight заново с диска выполняет parent-aware, nested-first разрешение фактических dependencies,
398
+ сверяет их версии, пути и hashes всех attested `.js`/`.cjs`/`.mjs`/`.json`/`.node` файлов и отклоняет
399
+ path/symlink drift. Затем in-process gateway descriptor подтверждает package/protocol/schema. В packet не
400
+ попадают raw output или argv. Missing install, missing/stale build либо dependency closure и failed
401
+ load/contract дают actionable blocker. Writable cache создаётся с mode `0700` в OS temporary directory
402
+ вне sealed checkout, а dependency install не запускается. Blockers делают preflight `prepared=false`.
403
+
404
+ Packet/record contract связан с explicit `--review-mode ordinary|security`. `ordinary` означает проверку
405
+ корректности/acceptance без implicit security scan; `security` означает явно запрошенный security focus.
406
+ Mode входит в packet hash, поэтому записать результат другого mode невозможно.
407
+
408
+ Native launch передаёт API-compatible strict Structured Output schema. Во всех object schemas `required`
409
+ точно совпадает с `properties`, а optional semantic values кодируются nullable. Parser повторно проверяет
410
+ closed shape, допустимые `route`/`causeId`, обязательный `planConflict` для replan и finding cardinality;
411
+ malformed ответ становится unverified review без remediation authority.
412
+
413
+ # 14. beta.11 Plan-integrity recovery
304
414
 
305
415
  `task plan-integrity-recover` применим только после одного first ordinary `checks-failed` remediation:
306
416
 
@@ -317,7 +427,7 @@ fresh `next` через corrective yield и обычный Human-confirmed repla
317
427
  P01-A предотвращает поддерживаемые contradictions до fresh authorization. beta.11 path остаётся для
318
428
  pre-P01 authorizations и late/unsupported exact recovery cases.
319
429
 
320
- # 13.1. beta.12.7 compatibility transitions
430
+ # 14.1. beta.12.7 compatibility transitions
321
431
 
322
432
  `update dependency-provenance-recover` больше не требует полного равенства Task manifest/lock с base.
323
433
  Base остаётся version authority, а parent/HEAD candidate сравниваются без единственных Workflow
@@ -367,7 +477,7 @@ diff. Semantic drift, иной commit или разрыв chain fail closed. Pro
367
477
  из уже проверенной override-to-authorization Git chain. Формула должна точно равняться current Task
368
478
  revision; unrelated write, duplicate, неверный parent или product commit блокируют continuation.
369
479
 
370
- # 13.2. Downstream-proof predecessor recovery
480
+ # 14.2. Downstream-proof predecessor recovery
371
481
 
372
482
  Если active Step изменяет только собственный proof artifact, обычный `task step-complete` сохраняется.
373
483
  Если dirty set дополнительно содержит файлы completed transitive predecessor, Core проверяет branch,
@@ -381,7 +491,7 @@ fresh `next` рекламирует lease-bound `task downstream-proof-recover`
381
491
  remainder и пройти fresh Plan Risk Audit и execution authorization. Unrelated/non-predecessor file,
382
492
  strict-review evidence, unregistered commit, branch mismatch или damaged sidecar возвращают `doctor`.
383
493
 
384
- # 13.3. beta.12.9 historical Step provenance
494
+ # 14.3. beta.12.9 historical Step provenance
385
495
 
386
496
  Corrective replan теперь сохраняет evidence commits Steps, исключённых replacement Plan, в
387
497
  `invalidatedStepCommits`. Это предотвращает новый unregistered-history blocker без переноса завершённого
@@ -401,7 +511,165 @@ exact `HEAD^`/`HEAD`, package/version surfaces и SHA-256 dirty worktree. Recove
401
511
  update-route, dependency provenance в одной Task revision. Fresh `status -> next` после transition
402
512
  должен вернуть обычный credential/`task step-complete` flow текущего Step.
403
513
 
404
- # 14. P04-A structural replacement boundary
514
+ # 14.4. beta.12.11 audited remediation topology
515
+
516
+ `milestone remediation-materialize` применим только к required Task в
517
+ `awaiting_execution_authorization`, если ни один Step не начат и последний audit текущей
518
+ Task revision/Brief/Plan имеет decision `stop-escalate`. Нужны active Milestone на clean base,
519
+ coherent idle observation boundary, current Milestone execution authorization и ready Discovery.
520
+
521
+ Input не содержит Milestone Plan или actor:
522
+
523
+ ```json
524
+ {
525
+ "discoveryId": "DISC-...",
526
+ "expectedDiscoveryRevision": 1,
527
+ "title": "Restore upstream capability",
528
+ "predecessorTaskIds": ["TASK-..."]
529
+ }
530
+ ```
531
+
532
+ `predecessorTaskIds` обязан точно совпасть с direct predecessor frontier blocked Task; каждый такой
533
+ Task required и merged. Одна Project transaction пишет consumed Discovery, Brief/state нового Task,
534
+ новый `plan.json`, `scope-change-events.jsonl` и Milestone state. Event mode
535
+ `audited-remediation` связывает blocked Task/revision, Brief/Plan hashes, audit ID/hash, remediation
536
+ Task и predecessor IDs. Milestone semantic fields и прежние memberships неизменны; добавляются
537
+ только один required Task и одна dependency edge blocked -> remediation. Повтор audit запрещён.
538
+
539
+ Current Milestone execution authorization superseded и заменён `corrective-derived`, evidenceHash
540
+ связывает source Plan/authorization mode, audit hash и remediation evidence. Repository `next`
541
+ приоритизирует remediation Task. Для current required Tasks оно выдаёт
542
+ `correctiveDerivedApproval` для `task authorize`/`task accept`; actor фиксирован как
543
+ `agent:milestone-remediation:<MS-ID>`, human approval и delegation grant не нужны. Plan Risk Audit,
544
+ mechanical feasibility, C1, Step checks/commits/reviews и final Milestone acceptance не меняются.
545
+ После merge remediation Task исходная Task получает `task plan-set` и проходит fresh audit/authority.
546
+
547
+ Если перед этим exact package update сделал Knowledge Map stale, navigation может вернуть
548
+ `auditedRemediation.dependencyKnowledgeRefresh`. Eligibility требует: ранее active approved map;
549
+ inspected status `stale`; единственный изменённый Knowledge path `package.json`; clean checkout;
550
+ runtime/declared/locked/installed/HEAD/Milestone-base version равны; approved package content найден в
551
+ Git ancestry; каждый последующий commit, трогавший manifest, меняет ровно `package.json` и
552
+ `package-lock.json`, причём после удаления `codex-workflow-v2` обе JSON-структуры совпадают с parent.
553
+ Materialization тогда дополнительно пишет active Knowledge Map с revision +2 и approval mode
554
+ `corrective-derived` в той же Project transaction. Это не разрешает автоматически принимать README,
555
+ docs, commands, classification, authority, gaps или conflicts.
556
+
557
+ # 14.5. beta.12.12 selector-contract Plan-integrity recovery
558
+
559
+ Analyzer `wf2.root-npm-script-arguments@1` читает root `package.json` и только repository-local runner
560
+ из evaluated Git HEAD. Узкий доказуемый contract — script `node <safe-relative-path> affected`, исходник
561
+ которого использует `process.argv.slice(3)`, содержит selector literals `--base`, `--head`, `--files` и
562
+ явный `Affected mode requires` guard. Для такого script check без forwarded selector получает
563
+ `ROOT_NPM_SCRIPT_REQUIRED_SELECTOR_MISSING` и блокирует execution authorization. Произвольный shell или
564
+ нераспознанный runner остаётся `unverified`, а не объявляется ошибочным по догадке.
565
+
566
+ Legacy recovery принимает последовательную append-only history из одного или нескольких
567
+ `checks-failed` events при отсутствии corrective decision. Evidence v2 связывает каждый event ID/hash/
568
+ ordinal, Task revision, Plan/Step definition, manifest и runner hashes, Git HEAD, conflicts и SHA-256
569
+ dirty worktree. `task plan-integrity-recover` записывает один `replan-required` decision с
570
+ `triggeringAttemptCount = failures + 1` и полным `coveredEventIds`.
571
+
572
+ Если exact beta.12.12 package ещё не установлен, `update plan-integrity-update-preflight` проверяет
573
+ source beta.12.11, отсутствие leases/transactions и exact dirty allowlist. После dependency-only
574
+ transport `update plan-integrity-dependency-preflight/recover` регистрирует единственный HEAD как system
575
+ commit. Когда Knowledge drift объясняется только Workflow pin, та же Project transaction выполняет
576
+ corrective-derived reconcile/approval; прочий drift fail-closed. Product bytes не коммитятся и не
577
+ переносятся. Fresh route продолжается через credential replacement, `plan-integrity-recover`, yield и
578
+ corrective replan с selector-bearing check.
579
+
580
+ # 14.6. beta.12.15 source/target Knowledge binding
581
+
582
+ Corrective-replan receipt теперь включает две разные пары. `knowledgeRevision/knowledgeHash` связывает
583
+ исходное состояние Task; `targetKnowledgeRevision/targetKnowledgeHash` связывает active Project
584
+ Knowledge Map и replacement Plan. Executor проверяет source под Task lock, candidate Plan — по target,
585
+ а Risk Audit и materialized Task получают target binding.
586
+
587
+ Source и target могут различаться только при exact `dependencyProvenanceRecoveries.planIntegrity` для
588
+ текущего HEAD и package version. Record обязан совпасть по Plan, failed Step, всей remediation event ID
589
+ последовательности, dirty paths и повторно вычисленному dirty SHA-256. После corrective yield Core может
590
+ восстановить один или несколько ещё не зарегистрированных package updates: он просматривает trailing
591
+ Git suffix от HEAD до последнего зарегистрированного system commit, проверяет каждый элемент как
592
+ непрерывный manifest/lock-only exact Workflow pin update и одной Core mutation добавляет каждый commit
593
+ и его фактическую package version в provenance history. Любое изменение product bytes, разрыв ancestry,
594
+ Step status, Plan, decision или C1 posture отключает route.
595
+
596
+ Completed corrective-yield transaction проверяет неизменный canonical yield event как prefix текущей
597
+ append-only handoff history. Это сохраняет tamper detection, но разрешает новый handoff после успешного
598
+ corrective replan. E2E release gate проходит prepare/confirm/execute, authorization, handoff/claim,
599
+ selector-bearing Step completion commit и strict Step review.
600
+
601
+ Completed corrective-replan transaction сохраняет authority identity своего release. Текущий manifest
602
+ обязателен для любой pending/in-flight transaction; completed journal может использовать только exact
603
+ tuple из append-only registry: manifest SHA-256, runtime fingerprint и catalog hash. Неизвестный tuple,
604
+ legacy tuple у незавершённой transaction, повреждённый intent/phase chain или owned target остаётся
605
+ `journal-invalid`. Это позволяет читать terminal beta.12.12 history после расширения binding manifest,
606
+ не превращая legacy identity в новую execution authority.
607
+
608
+ # 14.7. beta.12.16 check-support scope authority
609
+
610
+ Analyzer `wf2.check-support-anchor@1` рассматривает только root `npm run` check, repository-local
611
+ `node`/`tsx` runner и его direct relative static import. Блокировка допустима, когда Step создаёт
612
+ отсутствующий exact migration output, импортированный support-модуль содержит SHA-256 и approved/
613
+ expected/manifest/catalog anchors той же `.sql` family, но Step не владеет support path. Это machine
614
+ evidence, а не вывод из текста ошибки.
615
+
616
+ Для pre-execution Plan finding `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` блокирует authorization.
617
+ Для уже выполняемой guarded Step первый `checks-failed` может рекламировать тот же
618
+ `task plan-integrity-recover`, но evidence v3 записывает `continue-fix`, а не `replan-required`.
619
+ `scopeExtensions` равно отсортированному exact набору support paths из conflict evidence; dirty files
620
+ до recovery обязаны оставаться в original allowedWrites, support path не может пересекать
621
+ forbiddenScope. Plan hash не меняется. Effective scope используется retry precondition, Worker envelope,
622
+ Core commit, downstream-proof assessment, corrective-replan worktree guard и strict review packet.
623
+ Любое более широкое изменение остаётся в обычном corrective replan с Human gate.
624
+
625
+ # 14.8. beta.12.17 coherent Plan-integrity update source
626
+
627
+ Read-only `update plan-integrity-update-preflight` выводит `sourceVersion` из declared dependency, а
628
+ не из release-specific constant. Он принимает только exact `2.0.0-beta.12.N`, где `N >= 11` и
629
+ `N` меньше patch ordinal внешнего runner. Locked, installed, current Task branch и active Milestone
630
+ base обязаны совпадать с declared source. Любая missing/divergent surface блокирует transport.
631
+
632
+ Version consensus не заменяет остальные guards: должна существовать ровно одна eligible failed-Step
633
+ Plan-integrity assessment, observation обязана быть coherent, lease/transaction/Core operation
634
+ отсутствуют, а dirty bytes совпадают с доказанным Step scope. После dependency-only Git transport
635
+ repository-local runner регистрирует commit только через advertised
636
+ `update plan-integrity-dependency-recover`. Source consensus не усыновляет product history, не меняет
637
+ Plan/remediation evidence и не даёт generic update authority другим beta lines.
638
+
639
+ # 14.9. beta.12.18 historical check-support scope adoption
640
+
641
+ Validation v3 связывает check-support event с `event.planHash`. Если поздний Knowledge rebind и новый
642
+ Plan явно добавили derived support path, исторический event проверяется по собственным immutable
643
+ fields, hashes и conflict evidence, а не против scope нового Plan. Только event текущего Plan может
644
+ расширять effective Step scope; поэтому старое evidence не переносит authority неявно.
645
+
646
+ Read-only `update plan-integrity-update-preflight` может вернуть
647
+ `compatibilityMode=post-rebind-scope-adoption`, только если Task ожидает execution authorization, ни
648
+ одна Step не выполняется, существует ровно один исторический v3 `continue-fix`, его dirty paths и
649
+ content hash не изменились, а current planned Step напрямую владеет всеми `scopeExtensions` и
650
+ объявляет их outputs. Обычные coherent-version, lease, transaction, Core-operation и dependency-only
651
+ Git guards сохраняются. После регистрации update Knowledge rebind, PRA и authorization выполняются
652
+ только по fresh routes; Human approval для exact machine-proved scope не нужен.
653
+
654
+ # 14.10. beta.12.19 historical check-support dirty carryover
655
+
656
+ После регистрации dependency recovery current Plan может быть ещё раз mechanically rebound и
657
+ авторизован, тогда как product bytes остаются uncommitted. Запуск разрешён только при едином
658
+ assessment для `next` и `runStep`: latest compatible dependency record должен быть зарегистрирован на
659
+ точной history boundary; его Plan должен совпадать с current Plan или вести к нему через непрерывную
660
+ Knowledge-rebind chain; planned Step должна владеть каждым dirty path и каждым `scopeExtension`; full
661
+ path set и `hashDirtyWorktree` должны совпадать; один validated historical check-support decision
662
+ должен связывать те же conflict/remediation/scope fields.
663
+
664
+ При полном совпадении `next` публикует
665
+ `planIntegrityDirtyCarryover.state=validated`, а `task run` принимает только эти байты под current
666
+ Step envelope. При любом расхождении `next` возвращает `doctor` с `blockedAction=task run`; lease,
667
+ Step mutation и commit не создаются. Для обновления уже авторизованной beta.12.18 Task внешний
668
+ beta.12.19 runner выдаёт `compatibilityMode=post-rebind-dirty-carryover`, после чего сохраняются
669
+ обычный dependency-only transport, repository-local registration, Knowledge rebind, PRA,
670
+ authorization, checks, Core commit и sealed review. Human approval не добавляется.
671
+
672
+ # 15. P04-A structural replacement boundary
405
673
 
406
674
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
407
675
  возвращает `TRANSITION_BLOCKED`, diagnostic `STRUCTURAL_REPLACEMENT_REQUIRED` и incident dependency edges
@@ -420,7 +688,7 @@ replacementGate.transaction: disabled
420
688
  или manually rewire graph. P04-B/P05 должен определить arbitrary cardinality, scope redistribution,
421
689
  dependency rewiring, completed-work adoption и crash-safe transaction.
422
690
 
423
- # 15. Milestone progress и Codex task supervision
691
+ # 16. Milestone progress и Codex task supervision
424
692
 
425
693
  `milestone progress` является read-only projection: ordinals, membership disposition/reason, dependency
426
694
  state, predecessors/statuses, runnable/block reason, replacement links и Step statuses.
@@ -432,7 +700,7 @@ Coordinator ждёт one routed Task, читает closed CoordinatorReport, з
432
700
  `status -> next` и новый progress projection. Recoverable non-human continuation возвращается в тот же
433
701
  Task chat. Следующий Task dispatch разрешён только после terminal merged confirmation.
434
702
 
435
- # 16. codebase-memory graph
703
+ # 17. codebase-memory graph
436
704
 
437
705
  `codebase-memory-mcp` используется только после `graph refresh-request`. Gateway сверяет project/root,
438
706
  index status и request fingerprint, получает derived evidence и вызывает `graph bind` с current revision.
@@ -441,7 +709,7 @@ Graph является навигационным индексом, не Project
441
709
  записывает explicit `graph fallback`; агент продолжает Git search, прямое чтение файлов и tests, если
442
710
  другой independent gate не блокирует работу.
443
711
 
444
- # 17. Error codes и recovery discipline
712
+ # 18. Error codes и recovery discipline
445
713
 
446
714
  | Code | Значение | Реакция |
447
715
  |---|---|---|
@@ -463,35 +731,48 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
463
731
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
464
732
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
465
733
 
466
- # 18. Public command surface beta.12.9
734
+ # 19. Public command surface beta.13
467
735
 
468
736
  | Область | Actions |
469
737
  |---|---|
470
- | System | `doctor`, `status`, `next`, `gateway handshake`, `locks` |
471
- | Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof dependency bridge, downstream-proof replan update/dependency bridge |
738
+ | System | `doctor`, compact `status`, explicit `status --full`, `next`, `gateway handshake`, `locks` |
739
+ | Update | `preflight`, `rescue-preflight`, dependency provenance, historical-Step dependency bridge, downstream-proof bridges, Plan-integrity update/dependency bridge |
472
740
  | Project memory | `scan`, `show`, `status`, `approve`, `reconcile` |
473
741
  | Delegation | `prepare`, `grant`, `list`, `show`, `revoke` |
474
742
  | Graph | `prepare`, `status`, `refresh-request`, `bind`, `fallback` |
475
743
  | Discovery | `start`, `update`, `show`, `materialize` |
476
- | Milestone | `recover`, `show`, `progress`, `plan-set`, scope-change, autonomy, `authorize`, `validate`, `accept`, `cancel` |
744
+ | Milestone | `recover`, `show`, `progress`, `plan-set`, `remediation-materialize`, scope-change, autonomy, `authorize`, `validate`, `accept`, `cancel` |
477
745
  | Task planning | `show`, `plan-set`, `knowledge-rebind`, `context-refresh`, `authorize`, `plan-risk-audit` |
478
746
  | Task execution | `start`, `run`, `step-complete`, `submit`, `result-set`, `accept`, `sync-base`, `merge`, `merge-confirm` |
479
- | C1 | `handoff[-prepare/-replace/-show]`, `claim`, `writer-credential-replace`, `handback[-create]` |
480
- | Review | review/step-review packet, launch, sealed record и record actions |
747
+ | C1 | `handoff[-prepare/-replace/-show]`, `claim --claim-credential-ref`, `writer-credential-replace`, lease-bound actions с `--writer-credential-ref`, `handback[-create]` |
748
+ | Review | review/step-review packet с `--review-mode ordinary|security`, launch, sealed record и record actions |
481
749
  | 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 |
482
750
  | Replacement | `replacement-materialize` retained, но всегда disabled в P04-A |
483
751
 
484
752
  Exact options берутся из fresh `next`; command help используется только когда
485
753
  `exactOptionContractAvailable=false` или syntax действительно неизвестен.
486
754
 
487
- # 19. Release и package update gates
755
+ <!-- pagebreak -->
756
+
757
+ # 20. Release и package update gates
488
758
 
489
759
  Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
490
760
  running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
491
- active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge и beta.12.9 historical-Step
492
- dependency bridge; все они fail-closed и не дают общего разрешения dirty update.
493
-
494
- Перед beta.12.9 tag обязательны `npm ci`, `npm run validate`, `npm run pack:check`,
495
- `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
496
- `npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
497
- append-only real-agent lifecycle log.
761
+ active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.9 historical-Step
762
+ dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
763
+ dirty update.
764
+
765
+ Перед beta.13 tag обязательны `npm ci`, полный `npm run validate`, Signal-shaped recovery E2E до
766
+ последующей ordinary Step/Task dispatch, credential confinement, rolling-cause и production-edge suites,
767
+ observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
768
+ `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
769
+ `npm run pack:check`, `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
770
+ `npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.1` tag binding и append-only
771
+ real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
772
+ превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
773
+
774
+ Real-agent gate повторяет production boundary Codex App: Task agent удерживает live writer authority,
775
+ отдельный App reviewer читает external-sealed packet, после чего Task agent записывает sealed result.
776
+ Nested native `codex exec` внутри другого Codex agent не является release evidence. Packet generation
777
+ логируется как read-only observation, record — как exact `next`-authorized mutation с последующими
778
+ `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.