codex-workflow-v2 2.0.0-beta.1 → 2.0.0-beta.11

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 (187) hide show
  1. package/README.md +94 -12
  2. package/dist/src/alpha6/adoption.js +13 -3
  3. package/dist/src/alpha6/adoption.js.map +1 -1
  4. package/dist/src/alpha6/handoff.d.ts +26 -2
  5. package/dist/src/alpha6/handoff.js +277 -29
  6. package/dist/src/alpha6/handoff.js.map +1 -1
  7. package/dist/src/alpha6/mechanical-feasibility.d.ts +7 -0
  8. package/dist/src/alpha6/mechanical-feasibility.js +303 -0
  9. package/dist/src/alpha6/mechanical-feasibility.js.map +1 -0
  10. package/dist/src/alpha6/milestone.d.ts +37 -2
  11. package/dist/src/alpha6/milestone.js +472 -33
  12. package/dist/src/alpha6/milestone.js.map +1 -1
  13. package/dist/src/alpha6/plan-integrity.d.ts +14 -0
  14. package/dist/src/alpha6/plan-integrity.js +127 -0
  15. package/dist/src/alpha6/plan-integrity.js.map +1 -0
  16. package/dist/src/alpha6/plan-risk.d.ts +1 -0
  17. package/dist/src/alpha6/plan-risk.js +15 -7
  18. package/dist/src/alpha6/plan-risk.js.map +1 -1
  19. package/dist/src/alpha6/remediation.d.ts +2 -1
  20. package/dist/src/alpha6/remediation.js +186 -9
  21. package/dist/src/alpha6/remediation.js.map +1 -1
  22. package/dist/src/alpha6/review.d.ts +3 -0
  23. package/dist/src/alpha6/review.js +24 -0
  24. package/dist/src/alpha6/review.js.map +1 -1
  25. package/dist/src/cli.js +486 -46
  26. package/dist/src/cli.js.map +1 -1
  27. package/dist/src/contracts.d.ts +238 -6
  28. package/dist/src/contracts.js +1 -1
  29. package/dist/src/credential-output.d.ts +10 -0
  30. package/dist/src/credential-output.js +73 -0
  31. package/dist/src/credential-output.js.map +1 -0
  32. package/dist/src/dependency-provenance.d.ts +19 -0
  33. package/dist/src/dependency-provenance.js +185 -0
  34. package/dist/src/dependency-provenance.js.map +1 -0
  35. package/dist/src/errors.d.ts +1 -1
  36. package/dist/src/errors.js.map +1 -1
  37. package/dist/src/git.d.ts +1 -1
  38. package/dist/src/git.js +13 -5
  39. package/dist/src/git.js.map +1 -1
  40. package/dist/src/index.d.ts +2 -1
  41. package/dist/src/index.js +2 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/lifecycle/canonical-hash.d.ts +6 -0
  44. package/dist/src/lifecycle/canonical-hash.js +24 -0
  45. package/dist/src/lifecycle/canonical-hash.js.map +1 -0
  46. package/dist/src/lifecycle/catalog.d.ts +26 -0
  47. package/dist/src/lifecycle/catalog.js +208 -0
  48. package/dist/src/lifecycle/catalog.js.map +1 -0
  49. package/dist/src/lifecycle/compiler-inspection.d.ts +48 -0
  50. package/dist/src/lifecycle/compiler-inspection.js +29 -0
  51. package/dist/src/lifecycle/compiler-inspection.js.map +1 -0
  52. package/dist/src/lifecycle/core-static-readiness.d.ts +6 -0
  53. package/dist/src/lifecycle/core-static-readiness.js +130 -0
  54. package/dist/src/lifecycle/core-static-readiness.js.map +1 -0
  55. package/dist/src/lifecycle/corrective-replan-authority.d.ts +53 -0
  56. package/dist/src/lifecycle/corrective-replan-authority.js +139 -0
  57. package/dist/src/lifecycle/corrective-replan-authority.js.map +1 -0
  58. package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +21 -0
  59. package/dist/src/lifecycle/corrective-replan-binding-manifest.js +35 -0
  60. package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -0
  61. package/dist/src/lifecycle/corrective-replan-credential-core.d.ts +86 -0
  62. package/dist/src/lifecycle/corrective-replan-credential-core.js +563 -0
  63. package/dist/src/lifecycle/corrective-replan-credential-core.js.map +1 -0
  64. package/dist/src/lifecycle/corrective-replan-credential-schema.d.ts +17 -0
  65. package/dist/src/lifecycle/corrective-replan-credential-schema.js +44 -0
  66. package/dist/src/lifecycle/corrective-replan-credential-schema.js.map +1 -0
  67. package/dist/src/lifecycle/corrective-replan-credentials.d.ts +47 -0
  68. package/dist/src/lifecycle/corrective-replan-credentials.js +103 -0
  69. package/dist/src/lifecycle/corrective-replan-credentials.js.map +1 -0
  70. package/dist/src/lifecycle/corrective-replan.d.ts +64 -0
  71. package/dist/src/lifecycle/corrective-replan.js +553 -0
  72. package/dist/src/lifecycle/corrective-replan.js.map +1 -0
  73. package/dist/src/lifecycle/evaluator.d.ts +2 -0
  74. package/dist/src/lifecycle/evaluator.js +35 -0
  75. package/dist/src/lifecycle/evaluator.js.map +1 -0
  76. package/dist/src/lifecycle/fingerprint.d.ts +31 -0
  77. package/dist/src/lifecycle/fingerprint.js +388 -0
  78. package/dist/src/lifecycle/fingerprint.js.map +1 -0
  79. package/dist/src/lifecycle/immutable.d.ts +1 -0
  80. package/dist/src/lifecycle/immutable.js +10 -0
  81. package/dist/src/lifecycle/immutable.js.map +1 -0
  82. package/dist/src/lifecycle/implementation-table.d.ts +29 -0
  83. package/dist/src/lifecycle/implementation-table.js +87 -0
  84. package/dist/src/lifecycle/implementation-table.js.map +1 -0
  85. package/dist/src/lifecycle/index.d.ts +4 -0
  86. package/dist/src/lifecycle/index.js +5 -0
  87. package/dist/src/lifecycle/index.js.map +1 -0
  88. package/dist/src/lifecycle/schema-artifact.d.ts +12 -0
  89. package/dist/src/lifecycle/schema-artifact.js +214 -0
  90. package/dist/src/lifecycle/schema-artifact.js.map +1 -0
  91. package/dist/src/lifecycle/semantic-registry.d.ts +6 -0
  92. package/dist/src/lifecycle/semantic-registry.js +489 -0
  93. package/dist/src/lifecycle/semantic-registry.js.map +1 -0
  94. package/dist/src/lifecycle/types.d.ts +718 -0
  95. package/dist/src/lifecycle/types.js +4 -0
  96. package/dist/src/lifecycle/types.js.map +1 -0
  97. package/dist/src/observation.d.ts +20 -0
  98. package/dist/src/observation.js +171 -0
  99. package/dist/src/observation.js.map +1 -0
  100. package/dist/src/reviewer.d.ts +43 -1
  101. package/dist/src/reviewer.js +203 -50
  102. package/dist/src/reviewer.js.map +1 -1
  103. package/dist/src/state/corrective-replan-executor.d.ts +64 -0
  104. package/dist/src/state/corrective-replan-executor.js +608 -0
  105. package/dist/src/state/corrective-replan-executor.js.map +1 -0
  106. package/dist/src/state/corrective-replan-public-schema.d.ts +3 -0
  107. package/dist/src/state/corrective-replan-public-schema.js +43 -0
  108. package/dist/src/state/corrective-replan-public-schema.js.map +1 -0
  109. package/dist/src/state/corrective-replan-public.d.ts +95 -0
  110. package/dist/src/state/corrective-replan-public.js +665 -0
  111. package/dist/src/state/corrective-replan-public.js.map +1 -0
  112. package/dist/src/state/corrective-replan-transaction.d.ts +160 -0
  113. package/dist/src/state/corrective-replan-transaction.js +730 -0
  114. package/dist/src/state/corrective-replan-transaction.js.map +1 -0
  115. package/dist/src/state/corrective-yield-executor.d.ts +31 -0
  116. package/dist/src/state/corrective-yield-executor.js +236 -0
  117. package/dist/src/state/corrective-yield-executor.js.map +1 -0
  118. package/dist/src/state/corrective-yield-transaction.d.ts +97 -0
  119. package/dist/src/state/corrective-yield-transaction.js +591 -0
  120. package/dist/src/state/corrective-yield-transaction.js.map +1 -0
  121. package/dist/src/state/lock.d.ts +76 -3
  122. package/dist/src/state/lock.js +611 -30
  123. package/dist/src/state/lock.js.map +1 -1
  124. package/dist/src/state/store.d.ts +3 -0
  125. package/dist/src/state/store.js +65 -12
  126. package/dist/src/state/store.js.map +1 -1
  127. package/dist/src/transition-core.d.ts +67 -0
  128. package/dist/src/transition-core.js +318 -0
  129. package/dist/src/transition-core.js.map +1 -0
  130. package/dist/src/version.d.ts +1 -1
  131. package/dist/src/version.js +1 -1
  132. package/dist/src/version.js.map +1 -1
  133. package/dist/src/workflow.d.ts +88 -24
  134. package/dist/src/workflow.js +1647 -270
  135. package/dist/src/workflow.js.map +1 -1
  136. package/docs/autonomy-guardrails.md +61 -1
  137. package/docs/beta11-plan-integrity-recovery-brief.md +38 -0
  138. package/docs/beta2-initial-assembly-navigation-brief.md +616 -0
  139. package/docs/delegated-approval.md +26 -1
  140. package/docs/development-flow.md +63 -8
  141. package/docs/lifecycle/state-machine-stabilization.md +641 -0
  142. package/docs/pdf/README.md +24 -0
  143. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  144. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  145. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  146. package/docs/pdf/requirements.txt +1 -0
  147. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +234 -0
  148. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +334 -0
  149. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +413 -0
  150. package/docs/problem-briefs/01-pre-implementation-integrity.md +478 -0
  151. package/docs/problem-briefs/02-minimal-step-integrity.md +411 -0
  152. package/docs/problem-briefs/03-minimal-agent-context-integrity.md +358 -0
  153. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +566 -0
  154. package/docs/problem-briefs/BRIEF-TEMPLATE.md +56 -0
  155. package/docs/problem-briefs/README.md +120 -0
  156. package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +90 -0
  157. package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +246 -0
  158. package/docs/release.md +30 -6
  159. package/docs/split-required-recovery.md +19 -25
  160. package/docs/stable-release-defect-register.md +465 -3
  161. package/docs/updating-existing-project.md +59 -4
  162. package/docs/validation-report.md +124 -56
  163. package/package.json +9 -1
  164. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +10 -3
  165. package/plugins/codex-workflow-gateway/references/protocol.md +92 -4
  166. package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +376 -0
  167. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +263 -4
  168. package/references/state-machine.md +13 -6
  169. package/roles/delivery-coordinator.md +39 -0
  170. package/schemas/adoption-posture-event.schema.json +1 -1
  171. package/schemas/authorization-event.schema.json +64 -1
  172. package/schemas/context-envelope.schema.json +1 -1
  173. package/schemas/corrective-decision-event.schema.json +48 -3
  174. package/schemas/corrective-replan-credentials.private.schema.json +98 -0
  175. package/schemas/corrective-replan-execution-event.private.schema.json +53 -0
  176. package/schemas/corrective-replan-public.schema.json +142 -0
  177. package/schemas/corrective-replan-task-transaction.private.schema.json +151 -0
  178. package/schemas/corrective-yield-task-transaction.private.schema.json +98 -0
  179. package/schemas/milestone-scope-change-event.schema.json +6 -1
  180. package/schemas/milestone.schema.json +6 -1
  181. package/schemas/remediation-event.schema.json +11 -1
  182. package/schemas/task-handoff-event.schema.json +19 -3
  183. package/schemas/task.schema.json +24 -1
  184. package/schemas/transition-definition.schema.json +2609 -0
  185. package/schemas/transition-payloads.schema.json +140 -0
  186. package/scripts/generate-pdf-docs.py +512 -0
  187. package/scripts/run-pdf-docs.mjs +62 -0
@@ -0,0 +1,24 @@
1
+ # Russian PDF documentation
2
+
3
+ The three tracked PDFs in this directory are deterministic release artifacts generated from the
4
+ reviewable Markdown files in [`sources`](sources/).
5
+
6
+ Generate them with:
7
+
8
+ ```bash
9
+ npm run docs:pdf
10
+ ```
11
+
12
+ Verify that the tracked binaries match the current sources and package version with:
13
+
14
+ ```bash
15
+ npm run docs:pdf:check
16
+ ```
17
+
18
+ The generator reads the exact version from the root `package.json`, uses embedded TrueType font
19
+ subsets, and writes deterministic PDF bytes. A release must update source and PDF together. The
20
+ PDFs are human-facing artifacts; runtime code, schemas, the bundled gateway and ordinary Markdown
21
+ documents remain the technical authority.
22
+
23
+ The runner uses `CODEX_WORKFLOW_PDF_PYTHON` when supplied, then the bundled Codex App Python, then
24
+ `python3`. Non-Codex environments can install the pinned dependency from `requirements.txt`.
@@ -0,0 +1 @@
1
+ reportlab==4.4.9
@@ -0,0 +1,234 @@
1
+ ---
2
+ title: Codex Workflow V2: архитектура beta.11
3
+ subtitle: Источники истины, lifecycle, роли, delegation, зависимости Tasks и границы доверия
4
+ part: Часть 1 из 3 | Архитектура
5
+ document_version: 2.0
6
+ date: 24 августа 2026
7
+ subject: Архитектура и границы Codex Workflow V2 beta.11
8
+ ---
9
+
10
+ # 1. Назначение и граница системы
11
+
12
+ Codex Workflow V2 - локальный state machine поверх Codex App, Git и файлов проекта. Codex выполняет
13
+ исследование и реализацию. Workflow Core решает, разрешена ли конкретная мутация, связывает её с
14
+ актуальными revisions и hashes, управляет writer credentials и создаёт проверяемые Git evidence.
15
+
16
+ > **Главная граница:** файлы проекта и Git history являются долговременной продуктовой памятью. Локальный Workflow state хранит производный lifecycle и не может заменять repository knowledge.
17
+
18
+ Система рассчитана на одного пользователя и одну машину. Она не предоставляет distributed locking,
19
+ криптографическую идентификацию actor string или безопасную синхронизацию state между компьютерами.
20
+
21
+ ## 1.1. Что beta.11 гарантирует
22
+
23
+ - exact project-local npm package и совместимый handshake до lifecycle действий;
24
+ - Discovery до materialization Task или Milestone;
25
+ - утверждённую Project Knowledge Map и Plan, связанный с её точной revision/hash;
26
+ - mechanical-feasibility проверку поддерживаемых форм Plan до новой Task authorization;
27
+ - явный Milestone dependency DAG и один общий runnable predicate для routing, handoff, claim и start;
28
+ - один C1 writer lease, секретные one-time credentials и Core-owned Step commits;
29
+ - external-sealed Step/Task review в отдельных Codex tasks;
30
+ - state-bound human gates либо ранее выданные bounded delegation contracts;
31
+ - journaled recovery для составных переходов и fail-closed поведение при drift/corruption.
32
+
33
+ ## 1.2. Что beta.11 не гарантирует
34
+
35
+ - правильность продуктовой идеи или автоматически выбранного provider Task;
36
+ - semantic sufficiency Plan, если точные факты нельзя доказать поддерживаемым analyzer;
37
+ - параллельную работу нескольких writers в одном checkout;
38
+ - автоматический structural replacement после `split-required`;
39
+ - восстановление вручную повреждённого state без штатной recovery transition.
40
+
41
+ # 2. Шесть уровней и источники истины
42
+
43
+ | Уровень | Источник истины | Ответственность |
44
+ |---|---|---|
45
+ | Пользователь / principal | Явные ответы и подтверждённые policies | Scope, semantic unknowns, grant issuance, human gates |
46
+ | Codex App | Project folders, tasks, permissions | User-visible execution contexts и bounded tool access |
47
+ | Роли агентов | Fresh ContextPacket и Workflow projection | Discovery, planning, execution, review, coordination |
48
+ | Project-local gateway | Exact installed package и protocol | Handshake, routing discipline, app chat boundary |
49
+ | Workflow Core | Runtime transitions и schemas | Revisions, hashes, locks, Git ownership, evidence |
50
+ | Repository и local state | Git/files и revisioned state | Durable product facts и производный lifecycle |
51
+
52
+ При расхождении приоритет имеют runtime Core и обычные файлы текущего repository. PDF объясняет
53
+ контракт человеку, но не заменяет `status`, свежий `next`, schemas или package-local help.
54
+
55
+ ## 2.1. Exact package boundary
56
+
57
+ Продуктовый repository обязан объявить `codex-workflow-v2` точной версией в `devDependencies`.
58
+ Gateway разрешает только `node_modules/codex-workflow-v2/dist/src/cli.js` этого repository,
59
+ сравнивает installed и declared versions, затем выполняет `gateway handshake`.
60
+
61
+ ```text
62
+ AGENTS.md
63
+ -> project-local gateway
64
+ -> gateway handshake
65
+ -> status
66
+ -> next [--task <exact TASK-ID>]
67
+ -> только рекламируемая transition
68
+ ```
69
+
70
+ `doctor` является диагностикой, но не заменяет успешные `status` и `next`. Help разрешён только для
71
+ уточнения syntax после свежего routing response.
72
+
73
+ # 3. Долговременные и производные артефакты
74
+
75
+ | Артефакт | Где находится | Кто владеет записью |
76
+ |---|---|---|
77
+ | Product code, tests, Markdown docs | Git repository | Worker в Plan scope; Git commit создаёт Core |
78
+ | AGENTS.md и Project Knowledge | Git repository | Пользователь и обычный reviewable change |
79
+ | Knowledge Map | Local Workflow state | Project-memory transitions |
80
+ | Discovery state | Local Workflow state | Discovery transitions |
81
+ | Brief, Plan, Result, evidence | Local Workflow state с versioned artifacts | Core transitions |
82
+ | Task/Milestone state и sidecars | Local Workflow state | Core, CAS и schema validation |
83
+ | Writer locks и private credentials | Local Workflow state | Lock manager и C1 transitions |
84
+ | Transaction journals | Local Workflow state | Composite transition recovery |
85
+ | codebase graph binding | Local Workflow state | Derived evidence, не product authority |
86
+
87
+ Ручное редактирование state, locks, sidecars или `.versions` запрещено. Оно ломает hash chain,
88
+ expected revision и восстановимость составных операций.
89
+
90
+ # 4. Discovery, Task и Milestone
91
+
92
+ | Сущность | Назначение | Terminal success |
93
+ |---|---|---|
94
+ | Discovery | Уточнить outcome, scope, acceptance, constraints и unknowns | Готова к materialization |
95
+ | Task | Один самостоятельный проверяемый результат | Reviewed, accepted и merged |
96
+ | Step | Атомарный инкремент внутри Task | Checks, один Core commit и evidence |
97
+ | Milestone | Сквозной outcome из связанных Tasks | Required Tasks merged, validation и acceptance |
98
+
99
+ ## 4.1. Task lifecycle
100
+
101
+ ```text
102
+ Discovery -> materialize -> Plan -> Plan Risk Audit
103
+ -> mechanical feasibility -> execution authorization
104
+ -> C1 handoff -> claim -> start -> Steps
105
+ -> submit -> external-sealed review -> Result
106
+ -> final acceptance -> merge
107
+ ```
108
+
109
+ Fresh Task authorization записывает versioned mechanical-feasibility evidence. Analyzer может
110
+ выдать `blocked`, `pass` или `unverified`. `unverified` не означает semantic approval; он означает,
111
+ что поддерживаемая точная грамматика не доказала противоречие.
112
+
113
+ ## 4.2. Milestone initial assembly
114
+
115
+ После materialization Milestone Core возвращает `milestone initial-assembly`. Coordinator создаёт
116
+ linked Task Discoveries и materializes Tasks только через команды, рекламируемые `next`. После
117
+ появления полного intended membership один `milestone plan-set` атомарно публикует state и plan.json.
118
+ До этого execution недоступно.
119
+
120
+ Каждая membership содержит:
121
+
122
+ ```text
123
+ taskId
124
+ disposition: required | waived | cancelled
125
+ reason
126
+ dependsOnTaskIds: [exact predecessor Task IDs]
127
+ ```
128
+
129
+ Даже независимая Task обязана объявить `dependsOnTaskIds: []`. Отсутствующее поле в legacy state
130
+ означает unknown dependency authority, а не пустой граф.
131
+
132
+ ## 4.3. Runnable predicate P04-A
133
+
134
+ Task runnable только когда Milestone active, membership required и все canonical predecessors имеют
135
+ status `merged`. Ordinal, название, время создания и порядок в чате не создают dependency.
136
+
137
+ Один predicate применяется к repository routing, Task-specific routing, handoff preparation,
138
+ claim до lease acquisition и direct start. Authorization не обходит dependency block.
139
+
140
+ # 5. Delegated approval и Milestone autonomy
141
+
142
+ Delegation не превращает agent в human actor. Event отдельно хранит principal, delegate, grant,
143
+ policy hash, transition, scope и expiry.
144
+
145
+ | Механизм | Когда применять | Что не разрешает |
146
+ |---|---|---|
147
+ | Direct human gate | Default path | Никакой последующей автономии |
148
+ | DGA/DGR delegated approval | Exact allow-listed approval transition | Scope expansion, grant issuance, обычные execution transitions |
149
+ | Milestone Autonomy Contract | После полного initial Milestone Plan | Outcome/check/base/discovery changes и standalone map approval |
150
+
151
+ Для нового `AUTO` Discovery допустим короткий project-scoped DGR, если нужен exact
152
+ `project_memory.approve` или будущий approval transition. Blocking semantic unknown всегда возвращается
153
+ пользователю. После полного initial Milestone Plan предпочтителен один bounded
154
+ `milestone autonomy-prepare` gate и отдельное подтверждение `MAC-*`, затем `autonomy-grant`.
155
+
156
+ Milestone Autonomy Contract покрывает разрешённые Task/Milestone approvals, membership-only evolve и
157
+ Project Memory approval только внутри atomic Task context refresh этого Milestone. Grant не применяется
158
+ к handoff, claim, run, step-complete, reviews, sync-base или merge.
159
+
160
+ # 6. Codex App chat topology
161
+
162
+ Milestone coordinator и Task chats являются отдельными user-visible Codex tasks, не fork одного
163
+ conversation. Coordinator создаёт Task chat just-in-time, передаёт закрытый TaskContextPacket и
164
+ остаётся активным supervisor до terminal Milestone либо настоящего user gate.
165
+
166
+ ```text
167
+ Coordinator
168
+ -> Task T01 chat
169
+ -> Step Review chat при external-sealed gate
170
+ -> Final Review chat
171
+ -> Corrective/Plan Audit chat при необходимости
172
+ -> status -> next -> milestone progress
173
+ -> следующий runnable Task chat
174
+ ```
175
+
176
+ Project chat registry атомарно выдаёт monotonic `#NNN`. Название всегда содержит membership ordinal и
177
+ полный entity ID. Sidebar count, creation order и ручное `01/02` не являются authority.
178
+
179
+ Coordinator ждёт routed Task через bounded waits, читает закрытый CoordinatorReport, затем проверяет
180
+ repository `status -> next`. Завершение дочернего чата само по себе не доказывает terminal Task.
181
+
182
+ # 7. C1 handoff, lease и Git ownership
183
+
184
+ `task handoff-prepare` возвращает одноразовый `credentialHandoff`. Он используется ровно один раз
185
+ целевым actor в `task claim`. Claim проверяет Task/Milestone dependency binding и только затем выдаёт
186
+ `writerLeaseReceipt`. `task run` обновляет активный lease и возвращает Step context.
187
+
188
+ Bearer credentials нельзя печатать, сохранять в файлы, передавать Reviewer или включать в evidence.
189
+ Если token утерян, используется только рекламируемая credential recovery transition.
190
+
191
+ Worker меняет только `allowedWrites` и оставляет изменения uncommitted. Coordinator вызывает точный
192
+ `task step-complete`; Core запускает checks, проверяет scope/history, создаёт один commit и evidence.
193
+
194
+ # 8. Knowledge Map и context refresh
195
+
196
+ Project Knowledge Map хранит paths, categories, scope, authority, hashes, gaps и conflicts, но не
197
+ копирует содержимое файлов. Scan является read-only. Reconcile и approve выполняются только через Core.
198
+
199
+ Если top-level `next` возвращает `task context-refresh`, Coordinator вызывает только эту atomic
200
+ transition с указанными revisions, actor и grant. Standalone reconcile перед ней создаёт human-approval
201
+ gap и блокируется.
202
+
203
+ Кроме content-only drift, Core может допустить exact supporting-source addition, заранее объявленное
204
+ execution-authorized Plan и покрытое тем же Milestone Autonomy Contract. Unsafe differences возвращают
205
+ обычный видимый reconcile/approve/rebind/reauthorize flow.
206
+
207
+ # 9. Review и corrective recovery
208
+
209
+ В Codex App strict review выполняется external-sealed:
210
+
211
+ 1. Core формирует read-only review packet и repository seal.
212
+ 2. Task chat создаёт отдельный Reviewer chat.
213
+ 3. Reviewer возвращает закрытый schema-valid result без mutations.
214
+ 4. Core записывает его только если packet и seals не изменились.
215
+
216
+ После двух failed review отдельный Corrective Auditor выбирает `continue-fix`, `replan-required`,
217
+ `split-required` или `stop-escalate`. Continue разрешает один bounded corrective attempt; последующий
218
+ failure создаёт hard stop.
219
+
220
+ beta.11 `task plan-integrity-recover` существует для одного первого checks-failed legacy/late case:
221
+ отсутствует exact root npm script и текущий Step не может изменить package.json. Recovery не меняет
222
+ worktree или Plan и не создаёт synthetic second failure; он записывает bound `replan-required`.
223
+
224
+ > **Стоп P04-A:** `split-required` возвращает `STRUCTURAL_REPLACEMENT_REQUIRED` и `structuralReplacementAvailable=false`. Нельзя вызывать retained replacement command, потреблять replacement Discovery или вручную менять topology. Продолжение возможно только после P04-B/P05.
225
+
226
+ # 10. Operational checklist
227
+
228
+ - exact package version установлен, bundled gateway соответствует release и переустановлен;
229
+ - handshake подтверждает protocol 2, state schema 2 и beta.11 capabilities;
230
+ - каждый mutation следует свежему `status -> next` и exact option contract;
231
+ - semantic unknowns и human gates не маскируются delegation;
232
+ - Task chats создаёт coordinator, credentials остаются только в памяти;
233
+ - dependencies, progress и review posture берутся из Core projections;
234
+ - local state не редактируется вручную; release и package update выполняются только после safe preflight и обязательных checks.
@@ -0,0 +1,334 @@
1
+ ---
2
+ title: Codex Workflow V2: delegated chat-only guide
3
+ subtitle: Актуальный beta.11 путь от нового Discovery до принятого Milestone без ручного CLI
4
+ part: Часть 2 из 3 | Практика
5
+ document_version: 2.0
6
+ date: 24 августа 2026
7
+ subject: Практическое руководство по delegated Discovery и Milestone в Workflow V2 beta.11
8
+ ---
9
+
10
+ # 1. Рабочая модель beta.11
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.11 как точную 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.11 должен сообщать `packageVersion=2.0.0-beta.11`, `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.11 в 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
+ | Corrective audit | Отдельный read-only Corrective/Plan Audit chat |
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 reviews | Separate Corrective Auditor и exact decision route |
297
+ | `continue-fix` | Один bounded corrective attempt |
298
+ | `replan-required` | Corrective yield, human-confirmed journaled replan |
299
+ | `split-required` | Stop: `STRUCTURAL_REPLACEMENT_REQUIRED`, никаких replacement writes |
300
+ | `stop-escalate` или third corrective failure | Terminal hard stop и 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.11 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.