codex-workflow-v2 2.0.0-beta.10 → 2.0.0-beta.12

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 (78) hide show
  1. package/README.md +47 -13
  2. package/dist/src/alpha6/handoff.d.ts +4 -3
  3. package/dist/src/alpha6/handoff.js +58 -3
  4. package/dist/src/alpha6/handoff.js.map +1 -1
  5. package/dist/src/alpha6/mechanical-feasibility.d.ts +7 -0
  6. package/dist/src/alpha6/mechanical-feasibility.js +303 -0
  7. package/dist/src/alpha6/mechanical-feasibility.js.map +1 -0
  8. package/dist/src/alpha6/milestone.d.ts +25 -2
  9. package/dist/src/alpha6/milestone.js +359 -32
  10. package/dist/src/alpha6/milestone.js.map +1 -1
  11. package/dist/src/alpha6/plan-integrity.d.ts +14 -0
  12. package/dist/src/alpha6/plan-integrity.js +127 -0
  13. package/dist/src/alpha6/plan-integrity.js.map +1 -0
  14. package/dist/src/alpha6/remediation.d.ts +3 -2
  15. package/dist/src/alpha6/remediation.js +168 -55
  16. package/dist/src/alpha6/remediation.js.map +1 -1
  17. package/dist/src/alpha6/review.d.ts +5 -0
  18. package/dist/src/alpha6/review.js +110 -2
  19. package/dist/src/alpha6/review.js.map +1 -1
  20. package/dist/src/cli.js +14 -2
  21. package/dist/src/cli.js.map +1 -1
  22. package/dist/src/contracts.d.ts +82 -1
  23. package/dist/src/git.d.ts +1 -1
  24. package/dist/src/git.js +8 -1
  25. package/dist/src/git.js.map +1 -1
  26. package/dist/src/index.d.ts +1 -0
  27. package/dist/src/index.js +1 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/lifecycle/corrective-replan.js +8 -3
  30. package/dist/src/lifecycle/corrective-replan.js.map +1 -1
  31. package/dist/src/reviewer.d.ts +26 -0
  32. package/dist/src/reviewer.js +54 -1
  33. package/dist/src/reviewer.js.map +1 -1
  34. package/dist/src/version.d.ts +1 -1
  35. package/dist/src/version.js +1 -1
  36. package/dist/src/workflow.d.ts +5 -0
  37. package/dist/src/workflow.js +449 -148
  38. package/dist/src/workflow.js.map +1 -1
  39. package/docs/autonomy-guardrails.md +42 -33
  40. package/docs/beta11-plan-integrity-recovery-brief.md +38 -0
  41. package/docs/decisions.md +5 -4
  42. package/docs/delegated-approval.md +5 -4
  43. package/docs/development-flow.md +38 -12
  44. package/docs/lifecycle/state-machine-stabilization.md +2 -2
  45. package/docs/pdf/README.md +24 -0
  46. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  47. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  48. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  49. package/docs/pdf/requirements.txt +1 -0
  50. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +235 -0
  51. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +334 -0
  52. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +414 -0
  53. package/docs/problem-briefs/01-pre-implementation-integrity.md +478 -0
  54. package/docs/problem-briefs/02-minimal-step-integrity.md +411 -0
  55. package/docs/problem-briefs/03-minimal-agent-context-integrity.md +358 -0
  56. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +566 -0
  57. package/docs/problem-briefs/BRIEF-TEMPLATE.md +56 -0
  58. package/docs/problem-briefs/README.md +120 -0
  59. package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +90 -0
  60. package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +246 -0
  61. package/docs/release.md +17 -6
  62. package/docs/split-required-recovery.md +19 -26
  63. package/docs/validation-report.md +83 -70
  64. package/package.json +5 -1
  65. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
  66. package/plugins/codex-workflow-gateway/references/protocol.md +31 -9
  67. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +23 -6
  68. package/references/state-machine.md +18 -13
  69. package/references/validation-and-review.md +11 -4
  70. package/schemas/authorization-event.schema.json +64 -1
  71. package/schemas/corrective-decision-event.schema.json +48 -3
  72. package/schemas/milestone-scope-change-event.schema.json +6 -1
  73. package/schemas/milestone.schema.json +6 -1
  74. package/schemas/review-result.schema.json +17 -1
  75. package/schemas/step-review-event.schema.json +15 -0
  76. package/schemas/task-handoff-event.schema.json +18 -2
  77. package/scripts/generate-pdf-docs.py +513 -0
  78. package/scripts/run-pdf-docs.mjs +62 -0
@@ -0,0 +1,334 @@
1
+ ---
2
+ title: Codex Workflow V2: delegated chat-only guide
3
+ subtitle: Актуальный beta.12 путь от нового Discovery до принятого Milestone без ручного CLI
4
+ part: Часть 2 из 3 | Практика
5
+ document_version: 2.0
6
+ date: 27 августа 2026
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.12
8
+ ---
9
+
10
+ # 1. Рабочая модель beta.12
11
+
12
+ Пользователь работает в одном Codex Project и формулирует продуктовый outcome. Coordinator выполняет
13
+ CLI, создаёт отдельные Task/Reviewer chats и ведёт supervision loop. Workflow Core остаётся authority
14
+ для lifecycle, revisions, credentials, dependencies и Git commits.
15
+
16
+ > **Золотое правило:** текст промпта задаёт intent и ограничения, но не разрешает transition. Перед каждой мутацией агент использует exact project-local package, успешные `status` и свежий `next`.
17
+
18
+ Delegated mode уменьшает количество approval pauses, но не делегирует смысловые продуктовые решения.
19
+ Blocking unknown, scope change, grant issuance или unrecoverable integrity conflict возвращаются
20
+ пользователю.
21
+
22
+ ## 1.1. Что делает пользователь
23
+
24
+ - подключает правильную папку как primary project folder;
25
+ - задаёт outcome, scope, acceptance и ограничения;
26
+ - отдельным сообщением подтверждает DGA/MAC issuance codes;
27
+ - отвечает на semantic unknowns и human-only scope changes;
28
+ - проверяет terminal Result и при необходимости отзывает grant.
29
+
30
+ ## 1.2. Что делает Coordinator
31
+
32
+ - проверяет AGENTS.md, exact package, handshake, status и next;
33
+ - проводит Discovery без materialization при blocking unknowns;
34
+ - собирает complete Milestone Plan с explicit dependencies;
35
+ - создаёт Task chats just-in-time через project registry;
36
+ - хранит bearer credentials только в памяти;
37
+ - supervises routed Task до terminal Workflow state;
38
+ - выполняет Milestone validation и exact final gate.
39
+
40
+ # 2. Подготовка проекта перед новым Discovery
41
+
42
+ 1. Убедитесь, что checkout чистый и выбран правильный repository root.
43
+ 2. Установите beta.12 как точную devDependency после публикации release.
44
+ 3. Обновите и переустановите bundled `codex-workflow-gateway` этого release.
45
+ 4. Проверьте, что declared и installed package versions равны.
46
+ 5. Запустите новый Coordinator chat, не fork старого Milestone conversation.
47
+
48
+ ```text
49
+ Минимальная session sequence агента:
50
+
51
+ AGENTS.md
52
+ -> project-local gateway resolution
53
+ -> gateway handshake
54
+ -> status
55
+ -> next
56
+ -> doctor только как дополнительная диагностика
57
+ ```
58
+
59
+ Handshake beta.12 должен сообщать `packageVersion=2.0.0-beta.12`, `protocolVersion=2`,
60
+ `stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
61
+ Milestone autonomy и structural replacement disabled capabilities.
62
+
63
+ # 3. Два уровня delegation
64
+
65
+ Для нового `AUTO` Milestone до появления MS-ID может понадобиться короткий project-scoped DGR.
66
+ Он используется только для allow-listed approval transitions, которые fresh `next` признал eligible.
67
+ После полного initial Milestone Plan предпочтителен bounded Milestone Autonomy Contract.
68
+
69
+ | Фаза | Authority | Назначение |
70
+ |---|---|---|
71
+ | До entity ID / во время Discovery | Human intent, опциональный project DGR | Knowledge Map и exact allow-listed approvals |
72
+ | Complete initial Milestone Plan | Human `MAC-*` confirmation | Выдать bounded Milestone autonomy grant |
73
+ | Task execution | C1 handoff/claim и Core routing | Не использует approval grant как writer credential |
74
+ | Semantic change | Human scope-change gate | Outcome, success signal, checks, acceptance, discovery, base |
75
+
76
+ ## 3.1. Опциональный bootstrap DGR для AUTO
77
+
78
+ Grant issuance всегда занимает два пользовательских сообщения. Agent не может сам выдать, расширить
79
+ или продлить grant.
80
+
81
+ ```text
82
+ ПОДГОТОВКА POLICY В ОТДЕЛЬНОМ ЧАТЕ
83
+
84
+ Подготовь краткоживущую delegated approval policy для нового AUTO Milestone.
85
+ Principal: user:owner.
86
+ Delegate: agent:milestone-coordinator.
87
+ Scope: текущий project.
88
+ Разрешённые transitions перечисли явно и минимально из:
89
+ project_memory.approve,
90
+ milestone.execution_authorize,
91
+ milestone.final_accept,
92
+ task.execution_authorize,
93
+ task.final_accept.
94
+
95
+ Выполни только delegation prepare. Покажи полный scope, transitions,
96
+ expiresAt, policyHash и DGA-code. Остановись. Grant в этом turn не выпускай.
97
+ ```
98
+
99
+ ```text
100
+ ОТВЕТ ПОЛЬЗОВАТЕЛЯ СЛЕДУЮЩИМ СООБЩЕНИЕМ
101
+
102
+ Одобряю exact policyHash <POLICY-HASH> и DGA-code <DGA-CODE>.
103
+ Выпусти grant, затем покажи DGR-ID, delegate, scope, transitions,
104
+ expiresAt и revision.
105
+ ```
106
+
107
+ Перед использованием DGR Coordinator выполняет `delegation show` и сверяет project, active status,
108
+ delegate, scope, transitions и expiry. DGR передаётся только если тот же `next` вернул exact
109
+ `delegatedApprovalOptions` для этого grant и transition.
110
+
111
+ # 4. Копируемый prompt: новый delegated Discovery
112
+
113
+ Этот prompt запускает Coordinator. Пользователь не должен заранее открывать Task chats или назначать
114
+ их номера.
115
+
116
+ ```text
117
+ НОВЫЙ COORDINATOR CHAT
118
+
119
+ Проведи новый Milestone через Codex Workflow V2 beta.12 в delegated режиме.
120
+ Repository: <ABSOLUTE-REPOSITORY-ROOT>.
121
+ Milestone ID: AUTO.
122
+ Delegate actor: agent:milestone-coordinator.
123
+ Bootstrap delegation grant: <DGR-ID или NONE>.
124
+
125
+ Пользовательский outcome: <OUTCOME>.
126
+ Начальные ограничения: <CONSTRAINTS>.
127
+
128
+ Начни с AGENTS.md, exact project-local gateway, handshake, status и next.
129
+ Проверь declared/installed package version и protocol/state schema. Если
130
+ указан DGR-ID, выполни delegation show и проверь его точные bindings.
131
+ Не создавай, не расширяй и не продлевай grant.
132
+
133
+ Проведи Discovery: outcome, success signal, scope, out-of-scope,
134
+ acceptance, constraints и blocking unknowns. Не materialize сущности,
135
+ пока остаётся semantic ambiguity. Не принимай продуктовые решения за
136
+ пользователя.
137
+
138
+ После готового Discovery следуй только fresh next. Во время milestone
139
+ initial-assembly materialize все intended linked Tasks, затем один раз
140
+ опубликуй complete Milestone Plan. Для каждой membership явно укажи
141
+ required/waived/cancelled, reason и dependsOnTaskIds, включая [] для
142
+ независимой Task. Не выводи dependencies из ordinal или названия.
143
+
144
+ Когда fresh next предложит milestone autonomy-prepare, подготовь один
145
+ bounded Milestone Autonomy Contract, покажи полный semantic binding,
146
+ expiry, policyHash и MAC-code и остановись. Не выполняй autonomy-grant
147
+ в том же turn.
148
+
149
+ После отдельного exact human confirmation продолжай как active
150
+ Coordinator. Создавай Task chats just-in-time как новые standalone Codex
151
+ tasks через project chat registry, никогда fork/handoff текущего чата.
152
+ Передавай только закрытый TaskContextPacket без transcript и bearer
153
+ credentials. Supervise routed Task до terminal Workflow result, затем
154
+ проверяй status, next и milestone progress перед следующей Task.
155
+
156
+ Используй C1 handoff/claim, external-sealed reviewers и exact recovery
157
+ routes. Не печатай claim/writer tokens. При split-required остановись на
158
+ STRUCTURAL_REPLACEMENT_REQUIRED: P04-A replacement не реализует.
159
+
160
+ После merge всех required Tasks выполни Milestone validation на чистом
161
+ base HEAD. Final acceptance выполняй только по exact eligible grant и
162
+ текущему MSA-code; иначе покажи полный requiredHumanGate и остановись.
163
+ ```
164
+
165
+ <!-- pagebreak -->
166
+
167
+ ## 4.1. Что должно получиться до autonomy gate
168
+
169
+ - Discovery без blocking unknowns;
170
+ - materialized Milestone и все intended linked Tasks;
171
+ - complete membership Plan без reverse-membership gaps;
172
+ - explicit `dependsOnTaskIds[]` для каждой membership;
173
+ - checks и acceptance, связанные с outcome и success signal;
174
+ - один свежий `next`, рекламирующий `milestone autonomy-prepare`;
175
+ - MAC policy с principal, delegate, expiry, semantic scope hash и code;
176
+ - отсутствие product Step execution в Coordinator chat.
177
+
178
+ ## 4.2. Подтверждение Milestone Autonomy Contract
179
+
180
+ ```text
181
+ ОТВЕТ ПОЛЬЗОВАТЕЛЯ В СЛЕДУЮЩЕМ СООБЩЕНИИ
182
+
183
+ Одобряю показанный Milestone Autonomy Contract для <MS-ID>,
184
+ policyHash <POLICY-HASH>, semanticScopeHash <SCOPE-HASH>
185
+ и MAC-code <MAC-CODE>. Выполни только рекламируемый autonomy-grant
186
+ с этими exact bindings и продолжи Milestone supervision.
187
+ ```
188
+
189
+ Если fresh `next` изменил revision, Plan hash, policy hash или MAC-code, старое подтверждение нельзя
190
+ использовать. Coordinator показывает новый gate.
191
+
192
+ # 5. Initial assembly и dependency routing
193
+
194
+ Во время initial assembly Coordinator выполняет последовательные checkpoint pairs. После каждой
195
+ mutation он ждёт успешный `status`, затем fresh `next`. Параллельный status/next и direct closing
196
+ `milestone plan-set` после failed checkpoint запрещены.
197
+
198
+ ```text
199
+ Discovery materialize Milestone
200
+ -> next: milestone initial-assembly
201
+ -> linked Task Discovery start/update/materialize
202
+ -> status -> next
203
+ -> повторить для intended membership
204
+ -> один complete milestone plan-set
205
+ -> autonomy prepare / direct authorization
206
+ ```
207
+
208
+ P04-A вычисляет полный runnable set. Task может стать actionable только когда каждый declared required
209
+ predecessor merged. Sequential scheduler выбирает из runnable set, но не добавляет искусственные edges.
210
+
211
+ Coordinator печатает `milestone progress` после старта/resume, каждой terminal/attention Task boundary и
212
+ membership change. Таблица берётся из Core, а не из памяти чата.
213
+
214
+ # 6. Автоматическое создание Task chats
215
+
216
+ Coordinator создаёт Task chat только когда repository-level `next` назвал exact actionable Task.
217
+ Нельзя заранее создавать пустые chats для всех memberships.
218
+
219
+ Registry title имеет одну из форм:
220
+
221
+ ```text
222
+ #NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>
223
+ #NNN · M<NN>/T<NN>/S<NN> · Step Review A<N> · <Step title> · <TASK-ID>
224
+ #NNN · M<NN>/T<NN> · Final Review A<N> · <Task title> · <TASK-ID>
225
+ ```
226
+
227
+ TaskContextPacket содержит только repository root, exact package requirement, Milestone/Task IDs и
228
+ ordinals, Task revision/title/objective, requirement/acceptance IDs, Brief/Plan hashes, нужный actor/grant,
229
+ Task-local scope/checks/stop conditions и обязательную session sequence. В packet никогда не включаются
230
+ Coordinator transcript, sibling Plans, reasoning, confirmation codes или credentials.
231
+
232
+ Task chat продолжает через planning, execution, reviews, recovery, acceptance и merge, пока fresh
233
+ navigation разрешает действия. На blocker/terminal boundary он возвращает non-secret CoordinatorReport.
234
+
235
+ # 7. C1 writer credentials
236
+
237
+ Credential и approval grant решают разные задачи.
238
+
239
+ 1. `task handoff-prepare` возвращает first-field `credentialHandoff`.
240
+ 2. Coordinator сохраняет one-time token только в working memory.
241
+ 3. Target Task actor выполняет exact `task claim` с этим token.
242
+ 4. Claim проверяет dependency binding и возвращает `writerLeaseReceipt`.
243
+ 5. `task run` принимает active writer credential согласно `next.writerTokenContract` и обновляет lease.
244
+ 6. `task step-complete`, review record и другие guarded mutations используют только рекламируемый option.
245
+
246
+ Нельзя искать token в later payload fields, писать его в prompt/report/evidence или заменять redacted
247
+ fingerprint. Потеря token не разрешает новый handoff либо lease acquisition вне fresh recovery route.
248
+
249
+ # 8. Plan, Knowledge Map и mechanical feasibility
250
+
251
+ Перед `task plan-set` Planner копирует exact requirement/acceptance IDs из `next.taskPlanContract`.
252
+ Каждый Step объявляет dependencies, exact outputs, allowedWrites, forbiddenScope и executable checks.
253
+ Knowledge files, которые будут созданы, указываются как exact `knowledgeTargets`.
254
+
255
+ Plan Risk Audit определяет guarded Steps до execution. Fresh authorization запускает bounded mechanical
256
+ analyzers. Подтверждённое противоречие, например отсутствующий exact root npm script без ответственного
257
+ manifest writer, возвращает Plan на `task plan-set` без authorization write.
258
+
259
+ `unverified` analyzer result не доказывает Plan и не блокирует unsupported semantics. Planner и human/delegate
260
+ approval остаются ответственными за смысловую достаточность.
261
+
262
+ # 9. Atomic context refresh
263
+
264
+ Когда top-level `next.action` равен `task context-refresh`, нельзя сначала выполнять standalone
265
+ `project-memory reconcile`. Coordinator вызывает только указанный atomic action с exact Task/map revisions,
266
+ actor и Milestone Autonomy Grant.
267
+
268
+ Core может разрешить:
269
+
270
+ - content-only drift без semantic map changes;
271
+ - exact Plan-bounded supporting-source addition, если её заранее объявил current Plan;
272
+ - одновременные reconcile, approve, rebind и reauthorize как одну transaction.
273
+
274
+ Category, scope, authority, conflicts, gaps или unsafe source changes переходят в обычный visible
275
+ Knowledge Map approval path. Milestone grant не разрешает standalone map approval.
276
+
277
+ # 10. External-sealed review
278
+
279
+ В Codex App нельзя запускать nested local reviewer как substitute для независимого процесса.
280
+
281
+ | Gate | Правильный путь |
282
+ |---|---|
283
+ | Guarded Step review | `step-review-packet` -> новый Reviewer chat -> `step-review-record` |
284
+ | Submitted Task review | `review-packet` -> новый Final Reviewer chat -> `review-sealed-record` |
285
+ | Explicit corrective disposition (если выбран) | Отдельный read-only Corrective/Plan Auditor chat; не attempt-count gate |
286
+
287
+ Reviewer получает неизменённый packet, проверяет exact commit/diff/evidence и возвращает closed JSON.
288
+ Task chat записывает его только при совпадении packet и repository seal hashes. Reviewer не исправляет код,
289
+ не применяет grant и не принимает Result.
290
+
291
+ # 11. Recovery без micro-patching
292
+
293
+ | Состояние | Действие |
294
+ |---|---|
295
+ | First proven impossible npm check после legacy/late authorization | Только рекламируемый `task plan-integrity-recover` |
296
+ | Failed guarded review | Та же Task: исправление и новый strict review без attempt hard stop |
297
+ | Finding `route=fix` | Продолжить тот же Step; count остаётся диагностикой |
298
+ | Finding `route=replan` с exact Plan conflict | `task plan-set`, меняются только implementation Steps |
299
+ | `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
300
+ | Explicit `stop-escalate` | Terminal user attention |
301
+ | Stale dependency binding | Новый handoff/claim только по fresh `next` |
302
+ | Review seal drift | Discard review и создать fresh packet |
303
+
304
+ Plan-integrity recovery не редактирует Plan, package.json или worktree и не синтезирует второй failure.
305
+ P04-A не переносит completed Steps и не rewires dependencies при split.
306
+
307
+ # 12. Milestone final acceptance
308
+
309
+ После merge всех required Tasks Coordinator проверяет clean base HEAD и выполняет рекламируемую
310
+ Milestone validation. `next` возвращает revision, Plan/Result/evidence hashes, validated HEAD и MSA-code.
311
+
312
+ При active eligible `milestone.final_accept` grant delegate может применить current code в том же turn:
313
+ контролирующим human decision является прежний grant issuance. Если exact option отсутствует, Coordinator
314
+ показывает полный `requiredHumanGate` и останавливается до следующего сообщения пользователя.
315
+
316
+ # 13. Standalone Task
317
+
318
+ Standalone Task не использует Milestone dependency DAG или Milestone Autonomy Contract. Она начинает с
319
+ Discovery, следует Task Plan/authorization/C1/review lifecycle и использует direct human gates либо exact
320
+ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
321
+
322
+ # 14. Итоговый checklist пользователя
323
+
324
+ - beta.12 exact package и новый bundled gateway установлены;
325
+ - новый Coordinator chat не является fork старого Milestone;
326
+ - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
327
+ - Discovery не materialized при blocking unknowns;
328
+ - complete initial Plan содержит dependencies для каждой membership;
329
+ - Milestone Autonomy Contract подтверждён отдельным MAC turn;
330
+ - Coordinator сам создаёт и supervises Task/Reviewer chats;
331
+ - credentials не появились в prompts, reports или files;
332
+ - каждый transition пришёл из fresh `next`;
333
+ - split-required остановился без replacement mutations;
334
+ - Milestone validation и final acceptance связаны с текущим clean base HEAD.