codex-workflow-v2 2.0.0-beta.12.14 → 2.0.0-beta.12.16

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 (42) hide show
  1. package/README.md +20 -13
  2. package/dist/src/alpha6/check-support-anchor.d.ts +24 -0
  3. package/dist/src/alpha6/check-support-anchor.js +102 -0
  4. package/dist/src/alpha6/check-support-anchor.js.map +1 -0
  5. package/dist/src/alpha6/downstream-proof.js +4 -2
  6. package/dist/src/alpha6/downstream-proof.js.map +1 -1
  7. package/dist/src/alpha6/mechanical-feasibility.js +14 -0
  8. package/dist/src/alpha6/mechanical-feasibility.js.map +1 -1
  9. package/dist/src/alpha6/plan-integrity.js +55 -8
  10. package/dist/src/alpha6/plan-integrity.js.map +1 -1
  11. package/dist/src/alpha6/remediation.d.ts +1 -0
  12. package/dist/src/alpha6/remediation.js +86 -5
  13. package/dist/src/alpha6/remediation.js.map +1 -1
  14. package/dist/src/cli.js +1 -0
  15. package/dist/src/cli.js.map +1 -1
  16. package/dist/src/contracts.d.ts +37 -2
  17. package/dist/src/dependency-provenance.d.ts +5 -0
  18. package/dist/src/dependency-provenance.js +51 -26
  19. package/dist/src/dependency-provenance.js.map +1 -1
  20. package/dist/src/reviewer.d.ts +9 -4
  21. package/dist/src/reviewer.js +10 -8
  22. package/dist/src/reviewer.js.map +1 -1
  23. package/dist/src/state/corrective-replan-public.js +5 -4
  24. package/dist/src/state/corrective-replan-public.js.map +1 -1
  25. package/dist/src/version.d.ts +1 -1
  26. package/dist/src/version.js +1 -1
  27. package/dist/src/workflow.js +75 -40
  28. package/dist/src/workflow.js.map +1 -1
  29. package/docs/autonomy-guardrails.md +17 -14
  30. package/docs/development-flow.md +7 -7
  31. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  32. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  33. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  34. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +22 -8
  35. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +19 -12
  36. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +32 -12
  37. package/docs/release.md +13 -8
  38. package/docs/updating-existing-project.md +18 -0
  39. package/docs/validation-report.md +113 -98
  40. package/package.json +2 -1
  41. package/schemas/authorization-event.schema.json +2 -2
  42. package/schemas/corrective-decision-event.schema.json +67 -4
@@ -145,25 +145,28 @@ commit, or unverified recovery remains blocked.
145
145
 
146
146
  ### First-failure Plan-integrity recovery
147
147
 
148
- A mechanically impossible Plan check must not consume the second ordinary remediation attempt
149
- only to unlock corrective replan. After the first guarded `checks-failed` event, Core performs a
150
- read-only bounded assessment. `next` advertises `task plan-integrity-recover` only when all of the
151
- following are true:
152
-
153
- - the failed Step contains an exact root `npm run <script>` or `npm run-script <script>` check;
154
- - the named script is absent from the current root `package.json`;
155
- - `package.json` is outside the failed Step's `allowedWrites`;
148
+ A mechanically impossible Plan check must not consume another attempt merely to unlock its known
149
+ correction. After the first guarded `checks-failed` event, Core performs a read-only bounded
150
+ assessment. Existing missing-script and required-selector conflicts route to corrective replan.
151
+ beta.12.16 additionally recognizes one exact check-support conflict when all of the following hold:
152
+
153
+ - the failed Step contains an exact root `npm run <script>` check and declares an absent migration
154
+ output path that is inside its original `allowedWrites`;
155
+ - the root script resolves to a repository-local runner whose direct static import resolves to a
156
+ tracked checksum/catalog support module;
157
+ - that support module has SHA-256 anchors and names an existing migration in the same file family,
158
+ but is outside the Step's `allowedWrites` and `forbiddenScope`;
156
159
  - exactly one ordinary `checks-failed` remediation event exists for the Step;
157
160
  - no corrective decision exists for its second-attempt binding;
158
161
  - every dirty file remains inside the Step's current `allowedWrites` and outside its
159
162
  `forbiddenScope`.
160
163
 
161
- The recovery appends one hash-bound `replan-required` decision for attempt ordinal 2. It preserves
162
- the worktree and does not edit the Plan. A claimed C1 Task must present its current writer token and
163
- then follow `task corrective-yield`; the replacement Plan still requires the existing independent
164
- validation, Risk Audit, Human confirmation, journaled execution, readback, and renewed execution
165
- authorization. Other check failures use the normal continuable remediation route; they do not
166
- receive the narrow Plan-integrity shortcut, but attempt count alone never stops them.
164
+ The recovery appends one hash-bound `continue-fix` decision for attempt ordinal 2 and the exact
165
+ support path. It preserves the worktree and Plan hash; it does not alter source or Git. The current
166
+ C1 actor presents the existing writer token and fresh `task run` exposes the effective scope.
167
+ `task step-complete` remains the only commit owner, all checks rerun, and strict review packets name
168
+ the derived scope. Missing-script/selector conflicts still use `replan-required` plus the normal
169
+ Human-confirmed corrective replan. Unproved or broader scope changes never receive this authority.
167
170
 
168
171
  ### Downstream-proof predecessor recovery
169
172
 
@@ -93,13 +93,13 @@ executable. A reviewer routes to `replan` only with an exact Plan obstruction an
93
93
  change; ordinary findings default to `fix`. Remediation cannot change the Task objective,
94
94
  requirements, or acceptance.
95
95
 
96
- One bounded exception avoids a deliberately repeated failure for an older authorization without
97
- P01-A evidence or a contradiction that becomes observable only after execution starts. If the first guarded check failure
98
- is caused by an absent root npm script that the Step cannot add because `package.json` is outside
99
- its `allowedWrites`, fresh `next` advertises `task plan-integrity-recover`. The command records only
100
- the exact evidence-bound early `replan-required` posture; it never edits source, Plan, or Git.
101
- Continue through the advertised corrective yield and corrective replan rather than calling
102
- `task run` again.
96
+ One bounded exception avoids deliberately repeating an already-proved Plan-integrity failure.
97
+ Missing root scripts and missing mandatory selectors use the advertised evidence-bound
98
+ `replan-required` path. For beta.12.16's exact direct check-support case, fresh `next` instead binds
99
+ the imported SHA/catalog support module and records a machine-derived `continue-fix` scope. Continue
100
+ with fresh `task run`; its envelope contains the original Step paths plus that one support path.
101
+ Core still owns the commit and review packet. Do not add adjacent files or treat this as generic
102
+ permission to change the Plan.
103
103
 
104
104
  If a later proof Step leaves changes both in its own scope and in files owned by a completed
105
105
  transitive predecessor, fresh `next` advertises `task downstream-proof-recover` instead of
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: архитектура beta.12.14
2
+ title: Codex Workflow V2: архитектура beta.12.16
3
3
  subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
4
  part: Часть 1 из 3 | Архитектура
5
5
  document_version: 2.0
6
6
  date: 31 августа 2026
7
- subject: Архитектура и границы Codex Workflow V2 beta.12.14
7
+ subject: Архитектура и границы Codex Workflow V2 beta.12.16
8
8
  ---
9
9
 
10
10
  # 1. Назначение и граница системы
@@ -18,7 +18,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
18
18
  Система рассчитана на одного пользователя и одну машину. Она не предоставляет distributed locking,
19
19
  криптографическую идентификацию actor string или безопасную синхронизацию state между компьютерами.
20
20
 
21
- ## 1.1. Что beta.12.14 гарантирует
21
+ ## 1.1. Что beta.12.16 гарантирует
22
22
 
23
23
  - exact project-local npm package и совместимый handshake до lifecycle действий;
24
24
  - Discovery до materialization Task или Milestone;
@@ -41,7 +41,7 @@ Codex Workflow V2 - локальный state machine поверх Codex App, Git
41
41
  один additive remediation Task без нового Human gate; Core сохраняет Milestone semantics и выводит
42
42
  authority из текущей Milestone authorization и exact audit evidence.
43
43
 
44
- ## 1.2. Что beta.12.14 не гарантирует
44
+ ## 1.2. Что beta.12.16 не гарантирует
45
45
 
46
46
  - правильность продуктовой идеи или автоматически выбранного provider Task;
47
47
  - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
@@ -323,17 +323,31 @@ manifest/runner hashes, HEAD и dirty allowlist. Exact beta.12.11 update bridge
323
323
  Результат — один `replan-required` decision и обычный corrective replan с исполняемой check command;
324
324
  повтор старой команды, ручной commit product files и state editing не допускаются.
325
325
 
326
- beta.12.14 устраняет следующий доказанный разрыв этого пути. Corrective-replan credential раздельно
326
+ beta.12.15 устраняет следующий доказанный разрыв этого пути. Corrective-replan credential раздельно
327
327
  связывает исходную Knowledge revision/hash Task и целевую active Knowledge revision/hash replacement
328
328
  Plan. Различие разрешено только при exact Plan-integrity dependency recovery: текущий system commit,
329
329
  package version, failed Step, Plan, полная remediation history, dirty file set и их bytes должны
330
- совпасть. Следующее dependency-only обновление после corrective yield может перенести ту же compatibility
331
- на новый HEAD только при точном parent commit и неизменном worktree. Completed corrective-yield journal
330
+ совпасть. Один или несколько последовательных dependency-only updates после corrective yield могут
331
+ перенести ту же compatibility на новый HEAD: Core идёт назад до последнего зарегистрированного system
332
+ commit, проверяет каждый промежуточный commit как exact manifest/lock-only Workflow pin update и
333
+ атомарно регистрирует всю цепочку. Любой product diff, разрыв parent chain или изменённый worktree
334
+ fail-closed. Completed corrective-yield journal
332
335
  остаётся историческим prefix-доказательством и не блокирует последующие append-only handoff events.
333
336
  Completed corrective-replan journal также остаётся читаемым после эволюции binding manifest, но только
334
337
  если его завершённый manifest/runtime/catalog tuple есть в append-only historical registry. Pending и
335
338
  неизвестные identity по-прежнему fail-closed, поэтому compatibility не выдаёт новую authority.
336
339
 
340
+ beta.12.16 закрывает следующий доказанный разрыв: migration Step мог владеть новой SQL migration,
341
+ manifest и bootstrap, но не владеть TypeScript-модулем, который direct import из обязательного check
342
+ использовал как независимую SHA/catalog authority. Новый `wf2.check-support-anchor@1` блокирует такой
343
+ Plan до execution authorization. Для уже выполняемой Task после первого `checks-failed` Core связывает
344
+ Plan/Step/HEAD, полный dirty set, runner/support hashes, direct import, отсутствующий declared output и
345
+ существующие anchors. Если доказательство однозначно, append-only decision `continue-fix` выдаёт только
346
+ один exact support path как effective Step scope. Human replan не нужен, Plan hash и product bytes не
347
+ меняются, а Worker envelope, Core commit и sealed review packet явно используют и раскрывают derived
348
+ scope. Indirect import, dynamic shell, forbidden path, unrelated dirty file или отсутствие SHA anchors
349
+ fail-closed и не расширяют authority.
350
+
337
351
  Docker socket `EPERM` в sandbox не является доказательством сломанного daemon. Gateway один раз
338
352
  повторяет exact health probe или Plan check с sandbox escalation без расходования remediation attempt.
339
353
  Restart Docker Desktop требует отдельного разрешения и допустим только после escalated daemon failure.
@@ -343,7 +357,7 @@ Restart Docker Desktop требует отдельного разрешения
343
357
  # 10. Operational checklist
344
358
 
345
359
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
346
- - handshake подтверждает protocol 2, state schema 2 и beta.12.14 capabilities;
360
+ - handshake подтверждает protocol 2, state schema 2 и beta.12.16 capabilities;
347
361
  - каждый mutation следует свежему `status -> next` и exact option contract;
348
362
  - Docker permission failure сначала классифицируется как sandbox boundary, а не как infra retry;
349
363
  - semantic unknowns и human gates не маскируются delegation;
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  title: Codex Workflow V2: delegated chat-only guide
3
- subtitle: Актуальный beta.12.14 путь от нового Discovery до принятого Milestone без ручного CLI
3
+ subtitle: Актуальный beta.12.16 путь от нового Discovery до принятого Milestone без ручного CLI
4
4
  part: Часть 2 из 3 | Практика
5
5
  document_version: 2.0
6
6
  date: 31 августа 2026
7
- subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.14
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12.16
8
8
  ---
9
9
 
10
- # 1. Рабочая модель beta.12.14
10
+ # 1. Рабочая модель beta.12.16
11
11
 
12
12
  Пользователь работает в одном Codex Project и формулирует продуктовый outcome. Coordinator выполняет
13
13
  CLI, создаёт отдельные Task/Reviewer chats и ведёт supervision loop. Workflow Core остаётся authority
@@ -40,7 +40,7 @@ Blocking unknown, scope change, grant issuance или unrecoverable integrity co
40
40
  # 2. Подготовка проекта перед новым Discovery
41
41
 
42
42
  1. Убедитесь, что checkout чистый и выбран правильный repository root.
43
- 2. Установите beta.12.14 как точную devDependency после публикации release.
43
+ 2. Установите beta.12.16 как точную devDependency после публикации release.
44
44
  3. Обновите и переустановите bundled `codex-workflow-gateway` этого release.
45
45
  4. Проверьте, что declared и installed package versions равны.
46
46
  5. Запустите новый Coordinator chat, не fork старого Milestone conversation.
@@ -56,7 +56,7 @@ AGENTS.md
56
56
  -> doctor только как дополнительная диагностика
57
57
  ```
58
58
 
59
- Handshake beta.12.14 должен сообщать `packageVersion=2.0.0-beta.12.14`, `protocolVersion=2`,
59
+ Handshake beta.12.16 должен сообщать `packageVersion=2.0.0-beta.12.16`, `protocolVersion=2`,
60
60
  `stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
61
61
  Milestone autonomy и structural replacement disabled capabilities.
62
62
 
@@ -117,7 +117,7 @@ delegate, scope, transitions и expiry. DGR передаётся только е
117
117
  ```text
118
118
  НОВЫЙ COORDINATOR CHAT
119
119
 
120
- Проведи новый Milestone через Codex Workflow V2 beta.12.14 в delegated режиме.
120
+ Проведи новый Milestone через Codex Workflow V2 beta.12.16 в delegated режиме.
121
121
  Repository: <ABSOLUTE-REPOSITORY-ROOT>.
122
122
  Milestone ID: AUTO.
123
123
  Delegate actor: agent:milestone-coordinator.
@@ -298,6 +298,7 @@ Task chat записывает его только при совпадении p
298
298
  | Состояние | Действие |
299
299
  |---|---|
300
300
  | First proven impossible npm check после legacy/late authorization | Только рекламируемый `task plan-integrity-recover` |
301
+ | Direct imported migration checksum/catalog authority вне Step scope | beta.12.16: advertised `task plan-integrity-recover`, затем тот же Step с exact derived support path; Human replan не нужен |
301
302
  | Downstream proof требует изменить completed predecessor | Только `task downstream-proof-recover`, затем новый Plan/risk audit/authorization в той же Task |
302
303
  | Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
303
304
  | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
@@ -313,6 +314,9 @@ Task chat записывает его только при совпадении p
313
314
  | Review seal drift | Discard review и создать fresh packet |
314
315
 
315
316
  Plan-integrity recovery не редактирует Plan, package.json или worktree и не синтезирует второй failure.
317
+ Для beta.12.16 check-support evidence fresh `task run` обязан показать `boundedEffect=record-machine-derived-check-support-scope`
318
+ и добавить ровно рекламируемый support path в Worker `allowedWrites`. Для иных Plan-integrity видов
319
+ сохраняется `replan-required` route.
316
320
  P04-A не переносит completed Steps и не rewires dependencies при split.
317
321
 
318
322
  Audited remediation beta.12.11 не является generic scope-change. Coordinator использует только exact
@@ -360,12 +364,15 @@ Knowledge refresh. Затем выполните advertised credential recovery,
360
364
  `task corrective-yield`. Replacement Plan меняет только неисполняемую check на
361
365
  `npm run validate:affected -- --files=<Step allowedWrites>` и проходит fresh Plan Risk Audit до нового run.
362
366
 
363
- Если update произошёл уже после `task corrective-yield`, beta.12.14 допускает только advertised
364
- `update plan-integrity-dependency-recover`: parent должен быть предыдущим зарегистрированным recovery
365
- commit, а failed Step, Plan, remediation IDs, dirty paths и dirty SHA-256 — полностью совпадать. После
366
- recovery снова запросите `status -> next`; ожидаемый route остаётся `task corrective-replan-prepare`.
367
+ Если update произошёл уже после `task corrective-yield`, beta.12.15 допускает только advertised
368
+ `update plan-integrity-dependency-recover`. Между последним зарегистрированным recovery commit и HEAD
369
+ может быть один или несколько пропущенных package updates, но каждый обязан менять ровно
370
+ `package.json`/`package-lock.json`, только exact Workflow pin и образовывать непрерывную parent chain.
371
+ Core атомарно регистрирует всю доказанную цепочку; failed Step, Plan, remediation IDs, dirty paths и
372
+ dirty SHA-256 должны полностью совпадать. После recovery снова запросите `status -> next`; ожидаемый
373
+ route остаётся `task corrective-replan-prepare`.
367
374
  Если новый package сначала сообщает `TASK_TRANSACTION_INTEGRITY_FAILED` только для terminal
368
- corrective-replan journals предыдущего release, не repair/delete/edit state. beta.12.14 читает лишь
375
+ corrective-replan journals предыдущего release, не repair/delete/edit state. beta.12.15 читает лишь
369
376
  точно зарегистрированные completed manifest/runtime/catalog tuples; pending либо неизвестный tuple
370
377
  остаётся блокером. После установки обязательно повторите handshake и последовательные `status -> next`.
371
378
 
@@ -401,7 +408,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
401
408
 
402
409
  # 14. Итоговый checklist пользователя
403
410
 
404
- - beta.12.14 exact package и новый bundled gateway установлены;
411
+ - beta.12.16 exact package и новый bundled gateway установлены;
405
412
  - новый Coordinator chat не является fork старого Milestone;
406
413
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
407
414
  - Discovery не materialized при blocking unknowns;
@@ -1,10 +1,10 @@
1
1
  ---
2
- title: Codex Workflow V2: технический справочник beta.12.14
2
+ title: Codex Workflow V2: технический справочник beta.12.16
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
6
  date: 31 августа 2026
7
- subject: Технический контракт Codex Workflow V2 beta.12.14
7
+ subject: Технический контракт Codex Workflow V2 beta.12.16
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.14 | Значение |
16
+ | Параметр beta.12.16 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.12.14` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.12.16` |
19
19
  | protocolVersion | 2 |
20
20
  | stateSchemaVersion | 2 |
21
21
  | lifecycle epoch | 2 |
@@ -37,7 +37,7 @@ Gateway выполняет:
37
37
  5. вызов только package-local `dist/src/cli.js --repo <root>`;
38
38
  6. `gateway handshake` до lifecycle действий.
39
39
 
40
- Ключевые beta.12.14 capabilities:
40
+ Ключевые beta.12.16 capabilities:
41
41
 
42
42
  | Группа | Capabilities |
43
43
  |---|---|
@@ -468,7 +468,7 @@ corrective-derived reconcile/approval; прочий drift fail-closed. Product b
468
468
  переносятся. Fresh route продолжается через credential replacement, `plan-integrity-recover`, yield и
469
469
  corrective replan с selector-bearing check.
470
470
 
471
- # 13.6. beta.12.14 source/target Knowledge binding
471
+ # 13.6. beta.12.15 source/target Knowledge binding
472
472
 
473
473
  Corrective-replan receipt теперь включает две разные пары. `knowledgeRevision/knowledgeHash` связывает
474
474
  исходное состояние Task; `targetKnowledgeRevision/targetKnowledgeHash` связывает active Project
@@ -477,9 +477,12 @@ Knowledge Map и replacement Plan. Executor проверяет source под Tas
477
477
 
478
478
  Source и target могут различаться только при exact `dependencyProvenanceRecoveries.planIntegrity` для
479
479
  текущего HEAD и package version. Record обязан совпасть по Plan, failed Step, всей remediation event ID
480
- последовательности, dirty paths и повторно вычисленному dirty SHA-256. Для последовательного package
481
- update после corrective yield Core переносит compatibility лишь с зарегистрированного `HEAD^`; любое
482
- изменение product bytes, Step status, Plan, decision или C1 posture отключает route.
480
+ последовательности, dirty paths и повторно вычисленному dirty SHA-256. После corrective yield Core может
481
+ восстановить один или несколько ещё не зарегистрированных package updates: он просматривает trailing
482
+ Git suffix от HEAD до последнего зарегистрированного system commit, проверяет каждый элемент как
483
+ непрерывный manifest/lock-only exact Workflow pin update и одной Core mutation добавляет каждый commit
484
+ и его фактическую package version в provenance history. Любое изменение product bytes, разрыв ancestry,
485
+ Step status, Plan, decision или C1 posture отключает route.
483
486
 
484
487
  Completed corrective-yield transaction проверяет неизменный canonical yield event как prefix текущей
485
488
  append-only handoff history. Это сохраняет tamper detection, но разрешает новый handoff после успешного
@@ -493,6 +496,23 @@ legacy tuple у незавершённой transaction, повреждённый
493
496
  `journal-invalid`. Это позволяет читать terminal beta.12.12 history после расширения binding manifest,
494
497
  не превращая legacy identity в новую execution authority.
495
498
 
499
+ # 13.7. beta.12.16 check-support scope authority
500
+
501
+ Analyzer `wf2.check-support-anchor@1` рассматривает только root `npm run` check, repository-local
502
+ `node`/`tsx` runner и его direct relative static import. Блокировка допустима, когда Step создаёт
503
+ отсутствующий exact migration output, импортированный support-модуль содержит SHA-256 и approved/
504
+ expected/manifest/catalog anchors той же `.sql` family, но Step не владеет support path. Это machine
505
+ evidence, а не вывод из текста ошибки.
506
+
507
+ Для pre-execution Plan finding `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` блокирует authorization.
508
+ Для уже выполняемой guarded Step первый `checks-failed` может рекламировать тот же
509
+ `task plan-integrity-recover`, но evidence v3 записывает `continue-fix`, а не `replan-required`.
510
+ `scopeExtensions` равно отсортированному exact набору support paths из conflict evidence; dirty files
511
+ до recovery обязаны оставаться в original allowedWrites, support path не может пересекать
512
+ forbiddenScope. Plan hash не меняется. Effective scope используется retry precondition, Worker envelope,
513
+ Core commit, downstream-proof assessment, corrective-replan worktree guard и strict review packet.
514
+ Любое более широкое изменение остаётся в обычном corrective replan с Human gate.
515
+
496
516
  # 14. P04-A structural replacement boundary
497
517
 
498
518
  Command shape `task replacement-materialize` retained только для compatibility diagnostics. Любая попытка
@@ -555,7 +575,7 @@ Docker socket/CLI `EPERM`, `operation not permitted` или `permission denied`
555
575
  После каждой successful mutation обязателен sequential `status`, затем fresh `next`. Failed status/next
556
576
  не разрешает direct mutation. Syntax help read-only и не заменяет navigation authority.
557
577
 
558
- # 18. Public command surface beta.12.14
578
+ # 18. Public command surface beta.12.16
559
579
 
560
580
  | Область | Actions |
561
581
  |---|---|
@@ -583,10 +603,10 @@ Exact options берутся из fresh `next`; command help используе
583
603
  Перед package update project-local `update preflight` должен вернуть `safe=true`: clean checkout, нет
584
604
  running Step и active/stale writer lease. Исключения — документированный alpha.7 rescue, beta.12.6
585
605
  active-downstream-proof bridge, beta.12.7 exact stranded-replan bridge, beta.12.9 historical-Step
586
- dependency bridge и beta.12.14 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
606
+ dependency bridge и beta.12.15 Plan-integrity bridge; все они fail-closed и не дают общего разрешения
587
607
  dirty update.
588
608
 
589
- Перед beta.12.14 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
609
+ Перед beta.12.16 tag обязательны `npm ci`, `npm run validate`, `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`, `npm run pack:check`,
590
610
  `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
591
611
  `npm run docs:pdf:check`, `npm run release:check` с exact tag binding и validation
592
612
  append-only real-agent lifecycle log.
package/docs/release.md CHANGED
@@ -10,14 +10,15 @@ Before tagging a release:
10
10
 
11
11
  1. `npm ci`
12
12
  2. `npm run validate`
13
- 3. `npm run test:signal-remediation-e2e`
14
- 4. `npm run pack:check`
15
- 5. `npm run smoke:downstream`
16
- 6. `npm run plugin:check`
17
- 7. `npm run docs:pdf:check`
18
- 8. `npm run release:check`
19
- 9. validate `plugins/codex-workflow-gateway` with the Codex plugin validator
20
- 10. validate the append-only real-agent log with
13
+ 3. `npm run test:signal-t10-check-support-e2e`
14
+ 4. `npm run test:signal-remediation-e2e`
15
+ 5. `npm run pack:check`
16
+ 6. `npm run smoke:downstream`
17
+ 7. `npm run plugin:check`
18
+ 8. `npm run docs:pdf:check`
19
+ 9. `npm run release:check`
20
+ 10. validate `plugins/codex-workflow-gateway` with the Codex plugin validator
21
+ 11. validate the append-only real-agent log with
21
22
  `node scripts/validate-lifecycle-transcript.mjs --file <lifecycle-log.jsonl>`
22
23
 
23
24
  The downstream smoke packs the actual tarball, installs it into an empty temporary project,
@@ -60,6 +61,10 @@ For beta.12.12, the release gate also relies on `npm run release:check` to fail
60
61
  - bounded first- or repeated-failure Plan-integrity recovery, selector-required npm-check
61
62
  feasibility, exact failed-remediation/manifest/worktree
62
63
  bindings, or the no-synthetic-second-failure regression is absent.
64
+ - a direct migration check can import an external checksum/catalog authority without the producing
65
+ Step owning it; or in-flight recovery can widen beyond the exact imported support path, bypass
66
+ `forbiddenScope`, change the Plan hash, skip checks/Core commit/review disclosure, or require a
67
+ Human approval for the machine-proved scope-only correction.
63
68
  - downstream proof cannot invalidate only completed transitive-predecessor authority while
64
69
  preserving worktree/HEAD, yielding C1, and returning the same Task to fresh planning; or unrelated
65
70
  dirty files and damaged invalidation evidence do not fail closed.
@@ -22,6 +22,24 @@ state schema. Совпадение `stateSchemaVersion` до и после об
22
22
  нужна. Для alpha.6 при `stateSchemaVersion: 2` применяется не migration, а sidecar-only
23
23
  adoption posture.
24
24
 
25
+ ### beta.12.16: direct migration check-support authority
26
+
27
+ Новый mechanical analyzer до execution authorization проверяет root `npm run` migration checks,
28
+ repository-local `node`/`tsx` runner и его direct static relative imports. Если Step создаёт новую
29
+ SQL migration, а импортированный TypeScript/JavaScript support-модуль закрепляет approved SHA-256,
30
+ manifest или expected catalog той же migration family, этот support path должен входить в
31
+ `allowedWrites` той же Step. Иначе Plan возвращается к `task plan-set` до запуска Worker.
32
+
33
+ Для уже выполняемой Task с первым `checks-failed` fresh beta.12.16 `next` может рекламировать
34
+ `task plan-integrity-recover` с reason `CHECK_SUPPORT_ANCHOR_OUTSIDE_ALLOWED_WRITES` и
35
+ `boundedEffect=record-machine-derived-check-support-scope`. Выполните только этот route под текущим
36
+ C1 actor/writer credential, затем снова прочитайте `next` и вызовите `task run`. Worker envelope
37
+ должен добавить ровно `evidence.scopeExtensions`; Plan hash и существующие product bytes остаются
38
+ неизменными. Core повторяет все checks, сам создаёт commit и включает derived scope в sealed review
39
+ packet. Human corrective-replan для этого точного scope-only случая не требуется. Если route не
40
+ рекламируется, есть indirect/dynamic import, лишний dirty path, forbiddenScope intersection или нет
41
+ SHA/catalog anchors — не расширяйте scope вручную.
42
+
25
43
  ### beta.12.12: неисполняемая Step check и сохранение текущей реализации
26
44
 
27
45
  Новые Plans больше не могут получить execution authorization, если root npm script запускает