codex-workflow-v2 2.0.0-beta.13.9 → 2.0.0-beta.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/README.md +27 -388
  2. package/dist/reviewer-runtime-build.json +98 -34
  3. package/dist/src/alpha6/adoption.d.ts +3 -1
  4. package/dist/src/alpha6/adoption.js +48 -8
  5. package/dist/src/alpha6/adoption.js.map +1 -1
  6. package/dist/src/alpha6/captured-check-evidence.d.ts +51 -0
  7. package/dist/src/alpha6/captured-check-evidence.js +152 -0
  8. package/dist/src/alpha6/captured-check-evidence.js.map +1 -0
  9. package/dist/src/alpha6/component-owner.d.ts +15 -1
  10. package/dist/src/alpha6/component-owner.js +44 -2
  11. package/dist/src/alpha6/component-owner.js.map +1 -1
  12. package/dist/src/alpha6/corrective-decision-boundary.d.ts +4 -0
  13. package/dist/src/alpha6/corrective-decision-boundary.js +53 -0
  14. package/dist/src/alpha6/corrective-decision-boundary.js.map +1 -0
  15. package/dist/src/alpha6/downstream-proof.d.ts +1 -25
  16. package/dist/src/alpha6/downstream-proof.js +0 -171
  17. package/dist/src/alpha6/downstream-proof.js.map +1 -1
  18. package/dist/src/alpha6/literal-test-invocation.d.ts +2 -0
  19. package/dist/src/alpha6/literal-test-invocation.js +106 -0
  20. package/dist/src/alpha6/literal-test-invocation.js.map +1 -0
  21. package/dist/src/alpha6/milestone.d.ts +2 -0
  22. package/dist/src/alpha6/milestone.js +10 -1
  23. package/dist/src/alpha6/milestone.js.map +1 -1
  24. package/dist/src/alpha6/navigation-dirty-carryover.d.ts +11 -0
  25. package/dist/src/alpha6/navigation-dirty-carryover.js +130 -0
  26. package/dist/src/alpha6/navigation-dirty-carryover.js.map +1 -0
  27. package/dist/src/alpha6/plan-integrity.js +7 -5
  28. package/dist/src/alpha6/plan-integrity.js.map +1 -1
  29. package/dist/src/alpha6/remediation.d.ts +8 -21
  30. package/dist/src/alpha6/remediation.js +225 -474
  31. package/dist/src/alpha6/remediation.js.map +1 -1
  32. package/dist/src/alpha6/root-cause-replan-carryover.d.ts +4 -1
  33. package/dist/src/alpha6/root-cause-replan-carryover.js +29 -5
  34. package/dist/src/alpha6/root-cause-replan-carryover.js.map +1 -1
  35. package/dist/src/alpha7/autonomy.d.ts +9 -0
  36. package/dist/src/alpha7/autonomy.js +40 -1
  37. package/dist/src/alpha7/autonomy.js.map +1 -1
  38. package/dist/src/beta1/project-transaction.d.ts +3 -1
  39. package/dist/src/beta1/project-transaction.js +20 -6
  40. package/dist/src/beta1/project-transaction.js.map +1 -1
  41. package/dist/src/checks/runner.d.ts +26 -0
  42. package/dist/src/checks/runner.js +223 -0
  43. package/dist/src/checks/runner.js.map +1 -0
  44. package/dist/src/checks/task-sync.d.ts +10 -0
  45. package/dist/src/checks/task-sync.js +41 -0
  46. package/dist/src/checks/task-sync.js.map +1 -0
  47. package/dist/src/checks/worker.d.ts +1 -0
  48. package/dist/src/checks/worker.js +154 -0
  49. package/dist/src/checks/worker.js.map +1 -0
  50. package/dist/src/cli-actions.d.ts +3 -3
  51. package/dist/src/cli-actions.js +8 -15
  52. package/dist/src/cli-actions.js.map +1 -1
  53. package/dist/src/cli.js +43 -97
  54. package/dist/src/cli.js.map +1 -1
  55. package/dist/src/contracts.d.ts +54 -34
  56. package/dist/src/delegation.d.ts +5 -1
  57. package/dist/src/delegation.js +4 -0
  58. package/dist/src/delegation.js.map +1 -1
  59. package/dist/src/dependency-provenance.d.ts +2 -2
  60. package/dist/src/dependency-provenance.js +12 -69
  61. package/dist/src/dependency-provenance.js.map +1 -1
  62. package/dist/src/domain/base-sync-conflict.d.ts +13 -0
  63. package/dist/src/domain/base-sync-conflict.js +32 -0
  64. package/dist/src/domain/base-sync-conflict.js.map +1 -0
  65. package/dist/src/domain/step-start-admission.d.ts +4 -0
  66. package/dist/src/domain/step-start-admission.js +9 -0
  67. package/dist/src/domain/step-start-admission.js.map +1 -0
  68. package/dist/src/domain/virgin-registration.d.ts +3 -0
  69. package/dist/src/domain/virgin-registration.js +65 -0
  70. package/dist/src/domain/virgin-registration.js.map +1 -0
  71. package/dist/src/errors.d.ts +1 -1
  72. package/dist/src/errors.js.map +1 -1
  73. package/dist/src/failed-checkpoint-update.d.ts +69 -0
  74. package/dist/src/failed-checkpoint-update.js +171 -0
  75. package/dist/src/failed-checkpoint-update.js.map +1 -0
  76. package/dist/src/gateway-handshake.js +0 -8
  77. package/dist/src/gateway-handshake.js.map +1 -1
  78. package/dist/src/git.d.ts +3 -1
  79. package/dist/src/git.js +41 -14
  80. package/dist/src/git.js.map +1 -1
  81. package/dist/src/graph.js +25 -3
  82. package/dist/src/graph.js.map +1 -1
  83. package/dist/src/index.d.ts +1 -0
  84. package/dist/src/lifecycle/corrective-replan-credential-core.d.ts +2 -0
  85. package/dist/src/lifecycle/corrective-replan-credential-core.js +45 -9
  86. package/dist/src/lifecycle/corrective-replan-credential-core.js.map +1 -1
  87. package/dist/src/lifecycle/corrective-replan.js +12 -8
  88. package/dist/src/lifecycle/corrective-replan.js.map +1 -1
  89. package/dist/src/lifecycle/semantic-registry.js +4 -2
  90. package/dist/src/lifecycle/semantic-registry.js.map +1 -1
  91. package/dist/src/navigation-actions.d.ts +9 -0
  92. package/dist/src/navigation-actions.js +72 -0
  93. package/dist/src/navigation-actions.js.map +1 -0
  94. package/dist/src/navigation-update-artifact.d.ts +5 -0
  95. package/dist/src/navigation-update-artifact.js +227 -0
  96. package/dist/src/navigation-update-artifact.js.map +1 -0
  97. package/dist/src/navigation-update.d.ts +39 -0
  98. package/dist/src/navigation-update.js +82 -0
  99. package/dist/src/navigation-update.js.map +1 -0
  100. package/dist/src/observation.js +52 -29
  101. package/dist/src/observation.js.map +1 -1
  102. package/dist/src/observed-routes.js +10 -6
  103. package/dist/src/observed-routes.js.map +1 -1
  104. package/dist/src/pending-review-update.d.ts +0 -13
  105. package/dist/src/pending-review-update.js +1 -6
  106. package/dist/src/pending-review-update.js.map +1 -1
  107. package/dist/src/reviewer.d.ts +1 -1
  108. package/dist/src/reviewer.js +20 -17
  109. package/dist/src/reviewer.js.map +1 -1
  110. package/dist/src/runtime.d.ts +3 -0
  111. package/dist/src/runtime.js +6 -0
  112. package/dist/src/runtime.js.map +1 -0
  113. package/dist/src/state/corrective-replan-executor.d.ts +10 -0
  114. package/dist/src/state/corrective-replan-executor.js +38 -1
  115. package/dist/src/state/corrective-replan-executor.js.map +1 -1
  116. package/dist/src/state/corrective-replan-public-schema.js +15 -2
  117. package/dist/src/state/corrective-replan-public-schema.js.map +1 -1
  118. package/dist/src/state/corrective-replan-public.d.ts +9 -1
  119. package/dist/src/state/corrective-replan-public.js +50 -8
  120. package/dist/src/state/corrective-replan-public.js.map +1 -1
  121. package/dist/src/state/corrective-replan-transaction.d.ts +1 -0
  122. package/dist/src/state/corrective-replan-transaction.js +12 -11
  123. package/dist/src/state/corrective-replan-transaction.js.map +1 -1
  124. package/dist/src/state/corrective-yield-transaction.d.ts +1 -0
  125. package/dist/src/state/corrective-yield-transaction.js +11 -10
  126. package/dist/src/state/corrective-yield-transaction.js.map +1 -1
  127. package/dist/src/state/lock.d.ts +4 -0
  128. package/dist/src/state/lock.js +21 -0
  129. package/dist/src/state/lock.js.map +1 -1
  130. package/dist/src/version.d.ts +1 -1
  131. package/dist/src/version.js +1 -1
  132. package/dist/src/workflow-blocker-route.d.ts +8 -0
  133. package/dist/src/workflow-blocker-route.js +106 -0
  134. package/dist/src/workflow-blocker-route.js.map +1 -0
  135. package/dist/src/workflow.d.ts +88 -64
  136. package/dist/src/workflow.js +832 -1456
  137. package/dist/src/workflow.js.map +1 -1
  138. package/docs/autonomy-guardrails.md +26 -304
  139. package/docs/decisions.md +14 -112
  140. package/docs/development-flow.md +36 -237
  141. package/docs/project-memory.md +31 -50
  142. package/docs/release-app-evidence.md +190 -0
  143. package/docs/release.md +101 -388
  144. package/docs/updating-existing-project.md +65 -726
  145. package/package.json +11 -13
  146. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +2 -2
  147. package/plugins/codex-workflow-gateway/references/chat-dispatch.md +88 -200
  148. package/plugins/codex-workflow-gateway/references/codebase-memory-routing.md +57 -0
  149. package/plugins/codex-workflow-gateway/references/protocol.md +51 -458
  150. package/plugins/codex-workflow-gateway/scripts/chat-dispatch.mjs +20 -4
  151. package/plugins/codex-workflow-gateway/scripts/chat-model-policy.mjs +21 -34
  152. package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +23 -5
  153. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +92 -778
  154. package/references/state-machine.md +7 -5
  155. package/roles/delivery-coordinator.md +31 -11
  156. package/roles/scope-lead.md +1 -1
  157. package/roles/technical-planner.md +5 -2
  158. package/schemas/adoption-posture-event.schema.json +11 -0
  159. package/schemas/authorization-event.schema.json +1 -1
  160. package/schemas/corrective-decision-event.schema.json +26 -4
  161. package/schemas/corrective-replan-credentials.private.schema.json +8 -5
  162. package/schemas/corrective-replan-execution-event.private.schema.json +9 -0
  163. package/schemas/corrective-replan-public.schema.json +2 -1
  164. package/schemas/delegation-grant.schema.json +1 -1
  165. package/schemas/project-knowledge-map.schema.json +3 -1
  166. package/schemas/remediation-event.schema.json +10 -1
  167. package/schemas/task.schema.json +64 -2
  168. package/schemas/transition-definition.schema.json +4 -0
  169. package/schemas/transition-payloads.schema.json +16 -1
  170. package/src/alpha6/adoption.ts +1146 -0
  171. package/src/alpha6/captured-check-evidence.ts +132 -0
  172. package/src/alpha6/check-support-anchor.ts +128 -0
  173. package/src/alpha6/component-owner.ts +168 -0
  174. package/src/alpha6/corrective-decision-boundary.ts +45 -0
  175. package/src/alpha6/downstream-proof.ts +520 -0
  176. package/src/alpha6/failed-step-planning-recovery.ts +88 -0
  177. package/src/alpha6/handoff.ts +1443 -0
  178. package/src/alpha6/journal.ts +473 -0
  179. package/src/alpha6/literal-test-invocation.ts +84 -0
  180. package/src/alpha6/mechanical-feasibility.ts +488 -0
  181. package/src/alpha6/milestone.ts +2192 -0
  182. package/src/alpha6/navigation-dirty-carryover.ts +154 -0
  183. package/src/alpha6/npm-check-contract.ts +47 -0
  184. package/src/alpha6/plan-integrity.ts +298 -0
  185. package/src/alpha6/plan-risk.ts +1480 -0
  186. package/src/alpha6/preexecution-replan.ts +187 -0
  187. package/src/alpha6/remediation-cause.ts +98 -0
  188. package/src/alpha6/remediation.ts +2505 -0
  189. package/src/alpha6/review.ts +1198 -0
  190. package/src/alpha6/root-cause-replan-carryover.ts +491 -0
  191. package/src/alpha6/store-sidecars.ts +335 -0
  192. package/src/alpha7/autonomy.ts +449 -0
  193. package/src/alpha7/corrective-recovery.ts +1332 -0
  194. package/src/artifacts.ts +130 -0
  195. package/src/beta1/project-transaction.ts +364 -0
  196. package/src/change-explanation.ts +153 -0
  197. package/src/checks/runner.ts +245 -0
  198. package/src/checks/task-sync.ts +41 -0
  199. package/src/checks/worker.ts +149 -0
  200. package/src/cli-actions.ts +112 -0
  201. package/src/cli.ts +1490 -0
  202. package/src/contracts.ts +1512 -0
  203. package/src/credential-output.ts +89 -0
  204. package/src/credential-transport.ts +215 -0
  205. package/src/delegation.ts +194 -0
  206. package/src/dependency-provenance.ts +472 -0
  207. package/src/diagnostics.ts +93 -0
  208. package/src/domain/base-sync-conflict.ts +35 -0
  209. package/src/domain/completed-step-carryover.ts +76 -0
  210. package/src/domain/discovery.ts +27 -0
  211. package/src/domain/plan-semantics.ts +58 -0
  212. package/src/domain/step-start-admission.ts +10 -0
  213. package/src/domain/validation.ts +177 -0
  214. package/src/domain/virgin-registration.ts +46 -0
  215. package/src/errors.ts +24 -0
  216. package/src/failed-checkpoint-update.ts +203 -0
  217. package/src/fs-utils.ts +61 -0
  218. package/src/gateway-handshake.ts +95 -0
  219. package/src/git.ts +183 -0
  220. package/src/graph.ts +342 -0
  221. package/src/historical-step-provenance.ts +136 -0
  222. package/src/index.ts +23 -0
  223. package/src/lifecycle/canonical-hash.ts +28 -0
  224. package/src/lifecycle/catalog.ts +202 -0
  225. package/src/lifecycle/compiler-inspection.ts +29 -0
  226. package/src/lifecycle/core-static-readiness.ts +132 -0
  227. package/src/lifecycle/corrective-replan-authority.ts +136 -0
  228. package/src/lifecycle/corrective-replan-binding-manifest.ts +51 -0
  229. package/src/lifecycle/corrective-replan-credential-core.ts +437 -0
  230. package/src/lifecycle/corrective-replan-credential-schema.ts +54 -0
  231. package/src/lifecycle/corrective-replan-credentials.ts +48 -0
  232. package/src/lifecycle/corrective-replan.ts +847 -0
  233. package/src/lifecycle/evaluator.ts +48 -0
  234. package/src/lifecycle/fingerprint.ts +488 -0
  235. package/src/lifecycle/immutable.ts +8 -0
  236. package/src/lifecycle/implementation-table.ts +118 -0
  237. package/src/lifecycle/index.ts +8 -0
  238. package/src/lifecycle/schema-artifact.ts +263 -0
  239. package/src/lifecycle/semantic-registry.ts +574 -0
  240. package/src/lifecycle/types.ts +838 -0
  241. package/src/memory.ts +273 -0
  242. package/src/migration.ts +161 -0
  243. package/src/navigation-actions.ts +70 -0
  244. package/src/navigation-update-artifact.ts +198 -0
  245. package/src/navigation-update.ts +121 -0
  246. package/src/observation.ts +225 -0
  247. package/src/observed-routes.ts +665 -0
  248. package/src/operational-contract.ts +125 -0
  249. package/src/pending-review-update.ts +175 -0
  250. package/src/repository.ts +99 -0
  251. package/src/reviewer.ts +1879 -0
  252. package/src/runtime.ts +6 -0
  253. package/src/state/corrective-replan-executor.ts +819 -0
  254. package/src/state/corrective-replan-public-schema.ts +83 -0
  255. package/src/state/corrective-replan-public.ts +952 -0
  256. package/src/state/corrective-replan-transaction.ts +949 -0
  257. package/src/state/corrective-yield-executor.ts +327 -0
  258. package/src/state/corrective-yield-transaction.ts +730 -0
  259. package/src/state/lock.ts +902 -0
  260. package/src/state/store.ts +567 -0
  261. package/src/transition-core.ts +330 -0
  262. package/src/ulid.ts +24 -0
  263. package/src/version.ts +2 -0
  264. package/src/workflow-blocker-route.ts +109 -0
  265. package/src/workflow.ts +10342 -0
  266. package/docs/alpha7.1-implementation-brief.md +0 -268
  267. package/docs/alpha7.2-corrective-context-refresh-brief.md +0 -484
  268. package/docs/alpha7.2.1-remediation-recovery-brief.md +0 -86
  269. package/docs/beta1-stabilization-brief.md +0 -165
  270. package/docs/beta11-plan-integrity-recovery-brief.md +0 -38
  271. package/docs/beta13.2-signal-review-recovery.md +0 -38
  272. package/docs/beta2-initial-assembly-navigation-brief.md +0 -616
  273. package/docs/change-model.md +0 -118
  274. package/docs/delegated-approval.md +0 -254
  275. package/docs/lifecycle/state-machine-stabilization.md +0 -641
  276. package/docs/pdf/README.md +0 -24
  277. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  278. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  279. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  280. package/docs/pdf/requirements.txt +0 -1
  281. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +0 -478
  282. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +0 -506
  283. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +0 -778
  284. package/docs/pending-review-update.md +0 -15
  285. package/docs/problem-briefs/01-pre-implementation-integrity.md +0 -482
  286. package/docs/problem-briefs/02-minimal-step-integrity.md +0 -411
  287. package/docs/problem-briefs/03-minimal-agent-context-integrity.md +0 -358
  288. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +0 -573
  289. package/docs/problem-briefs/BRIEF-TEMPLATE.md +0 -56
  290. package/docs/problem-briefs/README.md +0 -120
  291. package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +0 -90
  292. package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +0 -246
  293. package/docs/split-required-recovery.md +0 -47
  294. package/docs/stable-release-defect-register.md +0 -730
  295. package/docs/validation-report.md +0 -182
  296. package/scripts/generate-pdf-docs.py +0 -524
  297. package/scripts/run-pdf-docs.mjs +0 -62
package/README.md CHANGED
@@ -1,408 +1,47 @@
1
1
  # Codex Workflow V2
2
2
 
3
- Self-contained, requirements-first workflow for Codex. This directory can be moved into a
4
- separate repository: runtime code, tests, templates, schemas, plugin source, and release
5
- automation do not import anything from the parent V1 project.
3
+ A requirements-first workflow for one user, one machine and one consumer project that always updates to the latest release. Core binds plans, permissions, checks, reviews and Git history; the gateway coordinates agents through the current local CLI.
6
4
 
7
- ## What V2 guarantees
5
+ The project is a controlled beta. Integrity guards do not by themselves prove that every valid task can finish. Accepted A1 route fixes establish only their tested continuation paths; broad autonomy and the documented runtime limitations remain bounded claims, not universal completion guarantees.
8
6
 
9
- - exact npm dependency with no `postinstall` mutation;
10
- - no downstream `.codex`, `.tasks`, `.increments`, manifest, or overlay;
11
- - repository files are the only durable project knowledge;
12
- - derived workflow state lives under `$CODEX_HOME/workflow-state/v2`;
13
- - Discovery precedes Task or Milestone identifiers and branches;
14
- - Project Knowledge Map approval binds Plans to current canonical files;
15
- - safe Task Plan knowledge rebind preserves Step evidence and requires fresh authorization;
16
- - delegated content-only context refresh composes map refresh, rebind, and reauthorization
17
- without hiding classification changes;
18
- - optional `codebase-memory-mcp` product and workflow graph bindings with explicit fallback;
19
- - one writer lease and one atomic Git commit per completed Step;
20
- - execution authorization with a bounded, versioned mechanical Plan-feasibility payload, independent
21
- review, and a state-bound human final-acceptance gate;
22
- - automatic release of the active Task writer lease when `result-set` enters human final acceptance,
23
- followed by fresh credential acquisition for merge;
24
- - high-risk Plan guidance plus evidence-bound `fix`/`replan` review routing without an attempt-count stop;
25
- - executable proof obligations with hostile counterexamples for every guarded failure mode;
26
- - read-only update preflight for clean checkout, running-Step, and writer-lease blockers;
27
- - beta.10 bounded recovery for one exact dependency-only HEAD, including retained product commits
28
- proven by intact passed strict-review and reviewer-attestation chains;
29
- - beta.12.6 active-downstream-proof update bridge: one exact dependency-only Task HEAD can be
30
- registered while the already-classified proof work remains dirty and its Step remains active;
31
- - beta.12.7 stranded-replan recovery: an accidental post-recovery Knowledge rebind cannot resurrect
32
- the rejected Plan, and exact dirty bytes can be adopted by one newly authorized owning Step;
33
- - bounded first-failure Plan-integrity recovery for legacy/in-flight contradictions that could not
34
- be rejected by the current pre-authorization feasibility gate;
35
- - beta.12.17 Plan-integrity update transport accepts any coherent exact beta.12 source from .11 up
36
- to the current runner, provided declared, locked, installed, Task-branch, and Milestone-base
37
- versions agree; this removes the release-specific source-version literal without weakening the
38
- dirty-worktree, lease, transaction, or dependency-only commit boundary;
39
- - beta.12.18 preserves historical check-support decisions against the Plan that produced them and
40
- recognizes one exact post-rebind Plan that explicitly adopts every previously derived support
41
- path; the same dependency-only transport can therefore resume the stranded Task without a Human
42
- approval, retroactive evidence mutation, or implicit scope carry-over;
43
- - beta.13 replaces secret-bearing CLI credentials with host-safe local references, atomically
44
- records failed-Step continuation while preserving dirty bytes, and routes continuation by stable
45
- mechanical/reviewer causes instead of attempt count. It also validates transitive component
46
- owners and derives explicit production-edge obligations from multi-Step `runtime-composition`
47
- PRA classifications before authorization, publishes a Signal-observed route-class
48
- catalog with explicit action-level witness status, defaults `status` to a bounded projection, prepares isolated reviewer runtime evidence,
49
- and requires an explicit ordinary/security review mode;
50
- - beta.12.19 closes the previous execution-boundary gap: after dependency registration, Knowledge
51
- rebind, PRA and authorization, `next` and `task run` share one fail-closed authority for adopting
52
- the exact registered dirty set. HEAD, Plan/rebind chain, file list, content hash, historical event
53
- and current Step scope must all match; any byte or scope drift routes to `doctor`;
54
- - beta.12.16 check-support authority: migration checksum/catalog modules imported directly by an
55
- approved check must be owned by the producing Step; an already-running Step receives only the
56
- exact machine-proved support path without a Human replan or a synthetic second failure;
57
- - beta.13.7 retains a completed Step's carryover as verified history so later Steps can
58
- replan normally, and binds corrective continuation to the original Worker.
59
- - beta.13.6 binds dirty work retained by a mechanical root-cause replan to its source failure,
60
- exact replacement Plan and audit, current authorization, unchanged HEAD and content hash;
61
- navigation and execution share that assessment instead of demanding a clean checkout after replan;
62
- - read-only Milestone progress projection with stable membership ordinals and replacement links;
63
- - one project-monotonic `#NNN` chat registry with compact titles, exact readback, and deterministic fallback;
64
- - narrow, read-only alpha.6 strict-review rescue preflight for the lifecycle deadlock fixed in alpha.7;
65
- - optional time-bound delegated approval with project/Milestone/Task scope and an explicit audit trail;
66
- - one bounded Milestone Autonomy Contract for approvals, guarded content-only context refresh,
67
- and membership-only Task-graph evolution;
68
- - audited remediation topology for an unstarted Task whose current Plan Risk Audit records
69
- `stop-escalate`: Core may append exactly one upstream Task, inherit the blocked Task's exact
70
- merged dependency frontier, and derive replacement Milestone/Task authority without a new
71
- human approval while preserving outcome, success signal, acceptance, and checks;
72
- - bounded recovery of one previously passed and accepted Step commit omitted by a corrective Plan,
73
- without rewriting Git history or adopting the old Step into the replacement Plan;
74
- - Milestones aggregate already merged Tasks on the base branch, without an integration branch;
75
- - V1 transition is snapshot-only and never performs semantic import.
7
+ ## Use
76
8
 
77
- V2 is intentionally designed for one user on one machine. Remote coordination and
78
- cross-machine synchronization are not part of its contract.
9
+ The supported runtime is exactly Node **24.17.0** for development, CI and the installed Workflow reviewer. Other patch versions and majors are unsupported. The package engines, `.node-version` and `.nvmrc` share this exact pin; validation rejects runtime or configuration drift before acquiring its lock or writing build outputs.
79
10
 
80
- ## Install and verify
11
+ Install the chosen **exact published version** as a development dependency with `--save-exact`. The declared version, lockfile and installed package must agree. Invoke its local CLI, not a global or external rescue runner:
81
12
 
82
- Node.js 22 or newer is required. Consumers pin the exact package version:
83
-
84
- ```bash
85
- npm install --save-dev --save-exact codex-workflow-v2@2.0.0-beta.13.9
86
- npx codex-workflow gateway handshake --repo .
87
- npx codex-workflow doctor --repo .
88
- ```
89
-
90
- Maintainers run:
91
-
92
- ```bash
93
- npm install
94
- npm run validate
95
- npm run pack:check
96
- npm run smoke:downstream
97
- npm run plugin:check
98
- npm run release:check
99
- ```
100
-
101
- ## Protocol 2 Task flow
102
-
103
- The CLI emits JSON. Every update after creation requires the current state revision.
104
-
105
- For a fresh alpha.7 project, registration writes the adoption posture automatically. For an
106
- existing schema 2 project, apply adoption before execution:
107
-
108
- ```bash
109
- codex-workflow update preflight --repo .
110
- codex-workflow state adoption-prepare --repo .
111
- codex-workflow state adoption-apply --repo . --actor user:owner --confirmation-code ADA-...
112
- ```
113
-
114
- Do not use `state migrate` for schema-2 adoption.
115
-
116
- ```bash
117
- codex-workflow project-memory scan --repo .
118
- codex-workflow project-memory approve --repo . --expected-revision 1 --file selections.json
119
- codex-workflow discovery start --repo . --goal "..." --outcome "..." \
120
- --scope "..." --acceptance "..."
121
- codex-workflow discovery materialize --repo . --id DISC-... \
122
- --expected-revision 1 --kind task --title "..."
123
- codex-workflow task plan-set --repo . --id TASK-... \
124
- --expected-revision 1 --file plan.json --risk-audit-file plan-risk-audit.json
125
- codex-workflow task authorize --repo . --id TASK-... \
126
- --expected-revision 2 --actor user
127
- codex-workflow task start --repo . --id TASK-... \
128
- --expected-revision 3 --workspace-owner local
129
- codex-workflow task run --repo . --id TASK-... --step STEP-001 \
130
- --expected-revision 4 --owner worker
131
- # Worker changes only allowed files and leaves them uncommitted.
132
- codex-workflow task step-complete --repo . --id TASK-... --step STEP-001 \
133
- --expected-revision 5 --writer-token <TOKEN-FROM-TASK-RUN>
134
- ```
135
-
136
- `task run` returns the writer token and Worker context. The Worker must not stage or commit.
137
- `task step-complete` runs configured checks, creates the workflow-owned atomic commit, and
138
- either records completion immediately or leaves the Step non-terminal for `task step-review`
139
- when the current Plan Risk Audit marks it for strict review.
140
- After a passing final Task review, fresh `next` makes `task result-set` lease-bound. Pass the active
141
- writer token (and the exact claimant as `--actor` for C1). Success releases that lease before the
142
- unbounded human final-acceptance pause. After acceptance, do not reuse the consumed token; follow
143
- fresh `next` through `task writer-credential-replace` before merge or merge confirmation.
144
- When `next` includes `gitMutationPolicy`, obtain bounded permission to write Git metadata
145
- before the first call of that exact transition. For `task start`, the policy applies only when
146
- you invoke `--workspace-owner local`; for `task step-complete`, `task merge`, and
147
- `task sync-base`, the advertised transition itself is Git-writing.
148
- For `task step-review`, keep `--actor` equal to the exact C1 claimant or required actor from
149
- `next`; the independent reviewer runs inside Core and is not passed as `--actor`.
150
-
151
- The Plan Risk Audit is mandatory for every new alpha.7 Task before execution authorization,
152
- including a positive `approved` decision for a Plan with no guarded Steps. The audit sidecar
153
- must identify a Plan author and an independent auditor, classify every current Step exactly
154
- once, describe guarded failure modes, and bind required evidence to exact executable Step
155
- checks. Every guarded failure mode additionally needs one `proofObligations` entry containing
156
- the hostile `counterexample`, expected safe result, and an exact executable evidence command.
157
- `split-required` and `stop-escalate` block authorization. Historical alpha.6 audit sidecars
158
- remain readable for strict-review recovery, but newly recorded audits must use proof obligations.
159
-
160
- Before every new Task execution authorization, Core also runs a read-only P01-A mechanical
161
- feasibility check. Version 1 recognizes only an exact root `npm run <literal-script>` check and
162
- an exact `path:<repository-relative POSIX path>` output, including exact transitive Step-provider
163
- proof. A proved missing script/path outside responsible write bounds blocks authorization and
164
- routes back to `task plan-set`. Unsupported shell, prose, flags, arguments, and semantic coverage
165
- remain `unverified`; they are neither accepted as proof nor rejected. A clear payload, its
166
- canonical hash, and evaluated Git HEAD are stored atomically in the execution authorization event.
167
- `claim`, `start`, and execution entry points reject stale base HEAD, Plan/input binding, base
168
- commit, or Task ancestry before acquiring new execution authority.
169
-
170
- `task review-launch` starts the strict read-only reviewer after submission and atomically records
171
- the returned review. If C1 handoff is active, keep `--actor` equal to the current claimant or
172
- required actor from `next`; the reviewer identity remains internal to the compound route. If a completed Step changes approved project
173
- knowledge, reconcile and approve the map, then run `task knowledge-rebind --repo . --id
174
- TASK-... --expected-revision ...`. The rebind changes no Step definition, preserves runtime
175
- status and evidence, supersedes execution authorization, and requires `task authorize`
176
- before another Step or submission. Use `next` after transitions.
177
-
178
- ### Protocol-v2 corrective replan
179
-
180
- When strict review records an exact `replan-required` decision, legacy `task plan-set` is no
181
- longer an executor for that posture. Follow the command returned by `next`:
182
-
183
- ```bash
184
- # Required first when the Task still has a C1 claimant/writer lease.
185
- codex-workflow task corrective-yield --repo . --id TASK-... \
186
- --expected-revision ... --actor agent:claimant --writer-token <TOKEN> --reason "..."
187
-
188
- codex-workflow task corrective-replan-prepare --repo . --id TASK-... \
189
- --file corrective-candidate.json
190
- # Show the returned candidate-bound code to the Human principal. Then persist only the returned
191
- # gate object and submit the same candidate again.
192
- codex-workflow task corrective-replan-confirm --repo . --id TASK-... \
193
- --file corrective-candidate.json --gate-file human-gate.json --confirmation-code <CODE>
194
- codex-workflow task corrective-replan-execute --repo . --id TASK-... \
195
- --file corrective-candidate.json --credential-file corrective-credential.json
13
+ ```sh
14
+ node node_modules/codex-workflow-v2/dist/src/cli.js gateway handshake --repo .
15
+ node node_modules/codex-workflow-v2/dist/src/cli.js status --repo .
16
+ node node_modules/codex-workflow-v2/dist/src/cli.js next --repo .
196
17
  ```
197
18
 
198
- Prepare and failed confirmation are non-mutating. Execution uses a Task-exclusive journal,
199
- apply-or-confirm roll-forward and two readbacks. A nonterminal journal makes `status`/`next`
200
- return the exact `task corrective-replan-recover` or `task corrective-yield-recover` command;
201
- read-only routes never recover implicitly. Protocol and lifecycle epoch are `2`, transition
202
- definition/catalog format is `4`, and state schema remains `2`. Intact protocol-v1 adoption
203
- evidence remains readable without rewriting it; new adoption events are always protocol v2.
19
+ Follow the returned current action and its `--help`; refresh state after each successful mutation. Do not copy revisions, confirmation codes or credentials from examples. New project setup begins through the current Discovery flow. The gateway resolves the installed package and never copies Workflow assets into the project.
204
20
 
205
- An active writer lease without a C1 claim does not make corrective replan executable: `next`
206
- returns a blocked diagnostic instead of advertising prepare. Let the lease expire, run the
207
- explicit lock repair reported by `doctor`, then request `next` again. Corrective yield is reserved
208
- for the exact claimed-C1 posture and is not a general lease-release command.
21
+ Repository files remain durable product knowledge. Workflow state lives outside the repository under the local Codex state root. The codebase-memory graph is derived code orientation, with an explicit fallback when unavailable. Workers leave changes uncommitted; Core completes Steps and records their commits. Independent review, bound authority and scoped credentials remain separate checks. In delegate mode the human participates in Discovery creation/edits and grant issuance/expansion; the Coordinator performs eligible operational decisions and supervises the assigned work through terminal closure. Acceptance must never be weakened to manufacture completion. Human mode retains its explicit approval gates. See [the current delegate contract](docs/autonomy-guardrails.md).
209
22
 
210
- When repository `next` returns top-level `action: task context-refresh` with an exact delegated
211
- option, the coordinator must use that atomic action instead of standalone reconcile:
23
+ Only current package execution is supported. Historical evidence needed to verify a current Task remains readable; old version-specific update and rescue procedures are retired.
212
24
 
213
- ```bash
214
- codex-workflow task context-refresh --repo . --id TASK-... \
215
- --expected-task-revision ... --expected-map-revision ... \
216
- --actor agent:deputy --delegation-grant DGR-...
217
- ```
218
-
219
- The only permitted source-set expansion is an exact Plan-declared supporting source under the
220
- active Milestone Autonomy Grant. Removed, undeclared, canonical, category/authority-changing,
221
- gap-changing, or conflicting sources are never auto-approved.
222
-
223
- ## Alpha.7 sidecars
224
-
225
- Alpha.7 keeps canonical entity JSON unchanged and stores guardrail evidence in append-only
226
- sidecars:
227
-
228
- - project: `adoption-posture.jsonl`
229
- - task: `plan-risk-audits.jsonl`, `plan-validations.jsonl`,
230
- `corrective-replan-executions.jsonl`, `step-review-events.jsonl`,
231
- `reviewer-attestations.jsonl`, `remediation-events.jsonl`,
232
- `corrective-decisions.jsonl`, `corrective-decision-recoveries.jsonl`,
233
- `remediation-mode-recoveries.jsonl`, `downstream-proof-invalidations.jsonl`, `handoffs.jsonl`
234
- - milestone: `scope-change-events.jsonl`, `autonomy-contract-events.jsonl`
235
-
236
- Milestone scope-change recovery also uses Milestone-local `.transactions/` journal files.
237
- Broken JSONL, duplicate event ids, broken hash chains, stale revision/hash/commit bindings,
238
- or mismatched authority fail closed with structured diagnostics.
239
-
240
- Alpha.7.2.1 can recover the one exact alpha.7.2 defect where a validated third
241
- corrective attempt was persisted as `mode=ordinary`. `next` exposes
242
- `task remediation-mode-recover` only for that fully verified legacy shape. Run the
243
- returned command with its exact Task revision, actor, and writer token. Recovery
244
- appends a bound event to `remediation-mode-recoveries.jsonl`; it never edits the
245
- historical remediation event. An identical retry is idempotent. After recovery,
246
- the historical attempt is interpreted as `corrective`, but no attempt-count hard stop is
247
- created: after any required Knowledge refresh, `next` may continue the same failed Step.
248
-
249
- For a legacy authorization without current mechanical evidence, or a contradiction that genuinely
250
- becomes observable only after execution starts, the first guarded `checks-failed` event may cause
251
- `next` to advertise `task plan-integrity-recover` instead of an identical retry. Missing scripts and
252
- missing required selectors retain the existing evidence-bound `replan-required` route. beta.12.16
253
- adds one narrower outcome for a direct imported checksum/catalog authority: when an absent declared
254
- migration output is writable by the Step, the check runner directly imports a tracked immutable
255
- support module, that module contains approved SHA/catalog anchors for the same output family, every
256
- dirty file remains inside the original Step scope, and the support module is outside both the
257
- original `allowedWrites` and `forbiddenScope`, Core records an append-only `continue-fix` authority
258
- for that exact support path. The Task keeps the same Plan hash and implementation bytes; subsequent
259
- run, commit and sealed-review packets use the effective scope and disclose the derived authority.
260
- Any semantic Plan change, indirect/dynamic check, unrelated dirty path, forbidden path, missing
261
- hash anchor or ambiguous import remains fail-closed and uses the ordinary corrective path.
262
-
263
- When an active downstream proof exposes a required change in files owned by a completed transitive
264
- predecessor Step, fresh `next` advertises `task downstream-proof-recover` instead of the impossible
265
- `task step-complete`. The lease-bound transaction preserves worktree and HEAD, invalidates only the
266
- affected predecessor completion evidence, retains its commits as historical `invalidatedStepCommits`, yields
267
- C1, and returns the same Task to ordinary planning. A fresh replacement Plan, Plan Risk Audit, and
268
- execution authorization are required. Unrelated dirty files, non-predecessor ownership, unregistered
269
- history, or damaged invalidation evidence fail closed.
270
-
271
- If that exact condition is already present on an older package and therefore blocks the ordinary
272
- clean-checkout update, beta.12.6 provides a bounded compatibility bridge. Update the active
273
- Milestone base and Task branch with separate commits that each change only `package.json` and
274
- `package-lock.json`, install the exact package, and continue only when fresh `next` advertises
275
- `update downstream-proof-dependency-recover`. Its read-only preflight validates the candidate at
276
- `HEAD`, the previously recorded Task history at `HEAD^`, aligned runtime/declared/locked/installed/
277
- base versions, absence of leases and transactions, the exact active Step, predecessor ownership,
278
- and a SHA-256 binding of every dirty product file. Recovery registers only that dependency commit,
279
- does not touch product bytes or end the Step, and makes the existing `task downstream-proof-recover`
280
- route reachable. Unknown history, an unrelated dirty path, a non-dependency candidate, stale base,
281
- or changed authority remains a hard stop.
282
-
283
- If beta.12.6 already invalidated the predecessor but a later Project Knowledge approval rebound the
284
- rejected Plan, beta.12.7 exposes a separate exact compatibility route. Run the new package's read-only
285
- `update downstream-proof-replan-update-preflight` before changing dependencies. After the two
286
- dependency-only commits, follow fresh `next` through replan dependency registration and
287
- `task downstream-proof-replan-recover`. Knowledge refresh may follow, but it cannot replace the
288
- required `task plan-set`. Preserved dirty bytes are executable only when one replacement Step owns the
289
- entire path set and `next` reports `downstreamProofCarryover.state=validated`; normal checks, Core commit,
290
- and strict review remain mandatory.
25
+ ## Current guides
291
26
 
292
- Docker socket `EPERM`/permission errors observed inside a sandbox are access-boundary evidence, not
293
- daemon-failure evidence. The gateway repeats the exact read-only probe or Plan check once with
294
- sandbox escalation without consuming a remediation/infra retry. Docker Desktop restart or image
295
- mutation requires separate authority and an escalated probe that actually proves daemon failure.
27
+ - [Development and supervision](docs/development-flow.md)
28
+ - [Autonomy, review and recovery](docs/autonomy-guardrails.md)
29
+ - [Project Knowledge and graph orientation](docs/project-memory.md)
30
+ - [Current product decisions](docs/decisions.md)
31
+ - [Updating the consumer](docs/updating-existing-project.md)
32
+ - [Release criteria and evidence](docs/release.md)
296
33
 
297
- For a terminal split, follow the [canonical replacement stop procedure](docs/split-required-recovery.md).
298
- P04-A intentionally disables structural replacement; P04-B/P05 must define the topology-preserving
299
- transaction before the route can be used.
34
+ ## Maintain
300
35
 
301
- ## Delegated approval
36
+ On the pinned runtime, run:
302
37
 
303
- Delegation never makes an agent a human actor. A user first approves an exact grant policy;
304
- later authorization events record the agent as `delegate`, the user as `principal`, the grant
305
- ID, policy hash, transition, scope, and expiry. Existing schema 2 projects need no migration.
306
-
307
- ```bash
308
- codex-workflow delegation prepare --repo . --file delegation-policy.json
309
- # After the user confirms the returned DGA code in a later message:
310
- codex-workflow delegation grant --repo . --file delegation-policy.json \
311
- --confirmation-code DGA-...
312
- codex-workflow task authorize --repo . --id TASK-... --expected-revision 2 \
313
- --actor agent:deputy --delegation-grant DGR-...
38
+ ```sh
39
+ npm ci
40
+ npm run release:check
314
41
  ```
315
42
 
316
- Policies may allow only `project_memory.approve`, `task.execution_authorize`, `task.final_accept`,
317
- `milestone.execution_authorize`, and/or `milestone.final_accept`. Scope is one project,
318
- Milestone, or Task; ordinary Project Knowledge Map approval requires project scope. Alpha.7 does
319
- not extend this allow-list. A separate Milestone Autonomy Contract may authorize membership-only
320
- evolution and the `project_memory.approve` half of an atomic, content-only Task context refresh
321
- for the same Milestone. It cannot approve Project Memory as a standalone operation. Outcome,
322
- success signal, acceptance, checks, discovery, and base branch remain cryptographically fixed.
323
- Pass `--delegation-grant` only when the same `next` response exposes an exact eligible
324
- `delegatedApprovalOptions` entry for that transition. Ordinary C1 handoff, claim, run,
325
- step-complete, step-review, merge, and sync-base do not inherit a Milestone approval grant.
326
- Adoption apply and arbitrary semantic scope changes stay human-only. The bounded
327
- `milestone remediation-materialize` route is not a generic delegated scope change: it is admitted
328
- only by a current `stop-escalate` audit, keeps Milestone semantics byte-for-byte unchanged, appends
329
- one required remediation Task, and adds only the blocked Task dependency edge. Its
330
- `corrective-derived` authority covers execution authorization and final acceptance of current
331
- required Tasks; final Milestone acceptance remains unchanged. Revocation is immediate for future
332
- uses. The original human path remains available and unchanged.
333
-
334
- ## Milestone autonomy and alpha.6 rescue
335
-
336
- Materialize all linked Task discoveries while the new Milestone remains in its initial planning
337
- posture, then call `milestone plan-set` once with the complete classified membership. Execution
338
- is unavailable until that full Plan exists. Every membership must explicitly declare its
339
- canonical `dependsOnTaskIds` array, including `[]`; missing arrays are legacy unknown state, not
340
- an empty graph. Required Tasks become runnable only after every required predecessor is merged.
341
- The initial state and `plan.json` are committed by the same recoverable Milestone transaction.
342
- To approve a bounded autonomous run for up to 72
343
- hours, use `milestone autonomy-prepare` and, after confirming its `MAC-*` binding,
344
- `milestone autonomy-grant`. The resulting milestone-scoped grant covers Task/Milestone execution
345
- and final-acceptance approvals plus Project Memory approval only inside an atomic content-only
346
- Task context refresh for the same Milestone. `milestone autonomy-evolve` may change only
347
- memberships and always supersedes the current execution authorization; semantic changes require
348
- the ordinary human scope-change path.
349
-
350
- `update rescue-preflight` is a read-only compatibility route for one exact deadlock shape:
351
- the project is pinned to `2.0.0-alpha.6`, exactly one strict review is pending, the checkout and
352
- completion HEAD are exact, and no active lease exists. It returns only stale-lock repair and
353
- strict-review actions. It neither installs alpha.7 nor rewrites state.
354
-
355
- ## C1 handoff and legacy adoption
356
-
357
- `C1` coordination uses `task handoff-prepare` (with `task handoff` retained as an alias),
358
- `task claim --claim-token ...`, and `task handback-create` (with `task handback` retained as
359
- an alias). `task handoff-show` returns the persisted safe bindings but never the plaintext
360
- claim token. If `--target-actor` is omitted, alpha.7 deterministically derives a distinct
361
- `agent:worker:<task-id>` actor. Preparation returns a one-time claim token and a prompt bound to `handoffId`, Task
362
- revision, Brief/Plan/Knowledge hashes, Milestone display positions, dependency membership revision,
363
- Milestone revision and Plan hash, delegate/grant, expiry,
364
- and exact expected next action. Only the token hash is persisted. Milestone-linked Tasks must
365
- be claimed before start; terminal handback records result, evidence, review, knowledge,
366
- limitations, and recommended-next bindings. This does not prove a physically separate Codex
367
- thread.
368
-
369
- For legacy schema 2 projects:
370
-
371
- - accepted/cancelled Milestones stay terminal;
372
- - merged/cancelled Tasks stay terminal;
373
- - completed and skipped Steps in active Tasks keep their recorded status and evidence;
374
- - remaining non-completed, non-skipped legacy Steps need a bootstrap Plan Risk Audit at a
375
- safe boundary;
376
- - newly created Milestones, Tasks, and Steps use the full alpha.7 contract.
377
-
378
- See [development flow](docs/development-flow.md), [autonomy guardrails](docs/autonomy-guardrails.md), [delegated approval](docs/delegated-approval.md), [updating an existing project](docs/updating-existing-project.md), [project memory](docs/project-memory.md),
379
- [accepted decisions](docs/decisions.md), [validation report](docs/validation-report.md), and
380
- [release policy](docs/release.md). Open stable-release defects, downstream E2E fixtures, and
381
- alpha regressions that must not recur are tracked in the
382
- [stable release defect register](docs/stable-release-defect-register.md).
383
-
384
- ## Russian PDF documentation
43
+ That command performs a fresh build, the full test suite, current PDF freshness, one retained package, installed downstream smoke, plugin and release assertions. It writes an automated-only release passport; original App lifecycle evidence and independent review are separately required before publication. Publication also needs explicit user authorization; no owner signature is required. `npm run validate` stops after the suite; focused test commands are for targeted development. Do not run them all in sequence for a release.
385
44
 
386
- - [Architecture and concepts](docs/pdf/codex-workflow-v2-architecture-ru.pdf)
387
- - [Chat-only development guide](docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf)
388
- - [Deep technical reference](docs/pdf/codex-workflow-v2-technical-reference-ru.pdf)
45
+ Test files run in two isolated processes by default, with startup/execution deadlines and process-tree cleanup. Timing and failed attempts are evidence, not a reason to inflate waits or silently retry. Native host startup problems can precede JavaScript and require separate diagnosis. See [validation boundaries](scripts/validation-pipeline.md) in the source repository.
389
46
 
390
- These beta.13 documents cover delegated Discovery, Milestone Autonomy Contract issuance,
391
- dependency-aware Task routing, C1 credential handling, external-sealed reviews, bounded
392
- Plan-integrity recovery (including repeated selector-contract failures), pre-authorization
393
- selector feasibility, Task-local dependency provenance recovery, the human-confirmed legacy
394
- attempt-four stop override (including append-only multi-rebind, dependency-only HEAD continuation,
395
- evidence-accounted post-audit recovery revisions), both downstream-proof update bridges, exact
396
- dirty-worktree carryover into a replacement Step, audited additive remediation topology with
397
- corrective-derived Task authority, its atomic dependency-only Knowledge refresh without a Human
398
- approval gap, the atomic beta.12.11-to-beta.12.12 dirty-worktree update bridge, separate source/target
399
- Knowledge bindings for corrective replan, exact consecutive dependency-update carryover, historical
400
- corrective-yield journal continuity, atomic recovery of multiple consecutive unregistered
401
- dependency-only updates after a failed package transition, and the P04-A
402
- structural-replacement stop boundary. They also cover beta.13 host-safe credentials, atomic
403
- failed-Step continuation, cause-bound rolling refinement, structural production-edge admission,
404
- bounded status and prepared ordinary/security review. Their reviewable
405
- sources live in [`docs/pdf/sources`](docs/pdf/sources), and `npm run docs:pdf:check` proves the
406
- tracked binaries were generated from the current source and package version. The PDFs remain
407
- human-facing artifacts; the Markdown documents above, bundled gateway, schemas, and runtime code
408
- are the technical authority.
47
+ The automated release command does not publish. The publication entry point re-verifies the complete passport and publishes its exact tarball. Historical briefs and optional PDF exports are outside the package's current instruction surface.