codex-workflow-v2 2.0.0-beta.11 → 2.0.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/src/alpha6/remediation.d.ts +1 -1
- package/dist/src/alpha6/remediation.js +5 -57
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/alpha6/review.d.ts +5 -0
- package/dist/src/alpha6/review.js +110 -2
- package/dist/src/alpha6/review.js.map +1 -1
- package/dist/src/cli.js +1 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +13 -0
- package/dist/src/reviewer.d.ts +26 -0
- package/dist/src/reviewer.js +54 -1
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.js +50 -58
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +22 -34
- package/docs/decisions.md +5 -4
- package/docs/delegated-approval.md +5 -4
- package/docs/development-flow.md +7 -6
- package/docs/lifecycle/state-machine-stabilization.md +1 -1
- package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
- package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +10 -9
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +13 -13
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +22 -21
- package/docs/release.md +3 -1
- package/docs/validation-report.md +88 -114
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +1 -1
- package/plugins/codex-workflow-gateway/references/protocol.md +13 -8
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +6 -3
- package/references/state-machine.md +9 -8
- package/references/validation-and-review.md +11 -4
- package/schemas/review-result.schema.json +17 -1
- package/schemas/step-review-event.schema.json +15 -0
- package/scripts/generate-pdf-docs.py +2 -1
|
@@ -1,124 +1,98 @@
|
|
|
1
|
-
# V2 beta.
|
|
1
|
+
# V2 beta.12 Validation Report
|
|
2
2
|
|
|
3
|
-
Release candidate `2.0.0-beta.
|
|
3
|
+
Release candidate `2.0.0-beta.12` was validated on 2026-08-27 with Node.js 24.17.0.
|
|
4
4
|
|
|
5
5
|
## Automated release evidence
|
|
6
6
|
|
|
7
7
|
- `npm ci` completed from the committed lockfile with 0 reported vulnerabilities.
|
|
8
|
-
- The final `npm run validate` passed `
|
|
9
|
-
cancellations, or todos. The focused Signal recovery suite passed independently (`5/5`).
|
|
10
|
-
- `npm run pack:check` passed. The beta.
|
|
11
|
-
|
|
12
|
-
- `npm run smoke:downstream` packed and installed the actual beta.
|
|
8
|
+
- The final `npm run validate` passed `321/321` sequential tests with no failures, skips,
|
|
9
|
+
cancellations, or todos. The focused Signal T04 recovery suite passed independently (`5/5`).
|
|
10
|
+
- `npm run pack:check` passed outside the filesystem-restricted sandbox. The beta.12 tarball
|
|
11
|
+
contains 269 files; package size is 955.6 kB and unpacked size is 3.7 MB.
|
|
12
|
+
- `npm run smoke:downstream` packed and installed the actual beta.12 tarball in an empty temporary
|
|
13
13
|
project, then passed the packaged CLI handshake. The first sandboxed attempt was network-blocked
|
|
14
|
-
while fetching `ajv`; the authorized network retry
|
|
15
|
-
- `npm run plugin:check`, the plugin
|
|
16
|
-
`
|
|
17
|
-
gateway cachebuster is `0.1.0+codex.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- The
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- The
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
14
|
+
while fetching pinned `ajv`; the authorized network retry passed.
|
|
15
|
+
- `npm run plugin:check`, the official Codex plugin validator, `npm run docs:pdf:check`, exact
|
|
16
|
+
`RELEASE_TAG=v2.0.0-beta.12 npm run release:check`, and `git diff --check` passed. The bundled
|
|
17
|
+
gateway cachebuster is `0.1.0+codex.20260827003726`.
|
|
18
|
+
|
|
19
|
+
The first full post-version-bump validation exposed three failures before the Signal T04 runtime
|
|
20
|
+
scenario began: a historical read-only snapshot truthfully targeted beta.11, while its replay
|
|
21
|
+
assertion incorrectly required the current package version. The fix keeps the snapshot immutable at
|
|
22
|
+
`2.0.0-beta.11`, binds the synthetic replay dependency to current `PACKAGE_VERSION`, and makes the
|
|
23
|
+
release check verify both identities separately. The focused suite then passed `5/5`, and the final
|
|
24
|
+
complete suite passed `321/321`.
|
|
25
|
+
|
|
26
|
+
## Continuable remediation and review-routing evidence
|
|
27
|
+
|
|
28
|
+
- A guarded Task remains in the same Task/Step and reaches a passing strict review after five
|
|
29
|
+
consecutive failed review cycles. Attempts 1–2 are ordinary; attempts 3+ are corrective
|
|
30
|
+
diagnostics but remain executable and review-gated.
|
|
31
|
+
- Attempt count no longer selects a terminal lifecycle transition. It is retained as diagnostic
|
|
32
|
+
history only; explicit `split-required` and `stop-escalate` remain the stop authorities.
|
|
33
|
+
- A failed review defaults to `route=fix` (or an omitted route) and continues the same Task/Step.
|
|
34
|
+
`route=replan` is valid only with exact `planClause`, `whyFixCannotFit`, and `minimalPlanChange`
|
|
35
|
+
evidence.
|
|
36
|
+
- Replan returns to ordinary `task plan-set`; objective, requirements, and acceptance remain
|
|
37
|
+
immutable, while only implementation Steps may change. The replacement Plan still passes the
|
|
38
|
+
normal Plan Risk Audit and execution-authorization gates.
|
|
39
|
+
- Failed-review routing evidence is hash-chained in the public Step Review event schema. Drift,
|
|
40
|
+
malformed evidence, unrelated Knowledge changes, forged actors, and corrupt chains remain
|
|
41
|
+
fail-closed.
|
|
42
|
+
|
|
43
|
+
## Retained dependency, feasibility, and recovery evidence
|
|
44
|
+
|
|
45
|
+
- P04-A retains the canonical Milestone dependency DAG, atomic initial Plan transaction/recovery,
|
|
46
|
+
dependency-bound handoff/claim/start, legacy fail-closed policy, and unconditional structural
|
|
47
|
+
replacement shutdown.
|
|
48
|
+
- P01-A retains three versioned read-only analyzers, canonical in-event evidence/hash binding,
|
|
49
|
+
exact pre-start and corrective source selection, and phase-aware freshness before claim/start/run.
|
|
50
|
+
- The exact Signal T04 revision-26 fixture still proves that only a verified historical Step Review
|
|
51
|
+
can retain its completion commit across corrective replan. Pending review is never trusted, and a
|
|
52
|
+
corrupt strict-review hash chain is rejected.
|
|
53
|
+
- Bounded beta.11 `task plan-integrity-recover` compatibility remains green for its exact first
|
|
54
|
+
ordinary checks-failed case. It does not edit the Plan, package manifest, or worktree and still
|
|
55
|
+
fails closed for writable-manifest scope, unrelated dirty files, binding drift, or tampering.
|
|
56
|
+
- Read-only Milestone progress still preserves `T03 cancelled → T08 replacement`; project-monotonic
|
|
57
|
+
chat allocation and deterministic long-title fallback/readback remain green.
|
|
58
|
+
|
|
59
|
+
## Packaged real-agent lifecycle replay
|
|
60
|
+
|
|
61
|
+
- A fresh disposable Git project installed the locally packed beta.12 tarball, declared the exact
|
|
62
|
+
`2.0.0-beta.12` dependency, and passed packaged `gateway handshake` plus `doctor` with protocol 2,
|
|
63
|
+
state schema 2, current dependency identity, and a clean checkout.
|
|
64
|
+
- The trusted harness invoked the real packaged CLI sequentially for handshake, doctor, direct first
|
|
65
|
+
Discovery bootstrap, `status`, and fresh `next`. The resulting navigation advertised
|
|
66
|
+
`project-memory scan`.
|
|
67
|
+
- `node scripts/validate-lifecycle-transcript.mjs` accepted all `10/10` post-provenance events with
|
|
68
|
+
no failed invocation, unadvertised mutation, or missing checkpoint. The semantic log SHA-256 is
|
|
69
|
+
`ab4ef10ad00e2fd9f54810ec5d0bbfb4106e1b211b3a185869d8a46787a5062d`; the raw packaged-result
|
|
70
|
+
log SHA-256 is `e693a839604c7ba2055f99e43c49c5ab63ac0cf6e790adc901db5dd8eb0ffae9`.
|
|
71
|
+
- Credential-marker inspection found no writer, claim, delegation, bearer, or secret material, and
|
|
72
|
+
the disposable product checkout remained clean. Logs and external workflow state stayed outside
|
|
73
|
+
this repository.
|
|
74
|
+
|
|
75
|
+
This replay validates package resolution, clean bootstrap, one real mutation, and mandatory
|
|
76
|
+
post-mutation navigation discipline. It does not claim a second full product Milestone replay;
|
|
77
|
+
deeper remediation, P01-A, and P04-A behavior is covered by deterministic and integration tests.
|
|
78
|
+
|
|
79
|
+
## beta.12 PDF release documentation evidence
|
|
80
|
+
|
|
81
|
+
- Three tracked Russian PDFs were deterministically regenerated from reviewable Markdown sources
|
|
82
|
+
under `docs/pdf/sources/`; `npm run docs:pdf:check` reported an empty stale set.
|
|
83
|
+
- All 24 pages were rendered and visually inspected: architecture is 6 pages, the delegated
|
|
84
|
+
chat-only guide is 8 pages, and the technical reference is 10 pages. No blank, clipped, or orphaned
|
|
85
|
+
page was found.
|
|
86
|
+
- Visible titles, headers, package commands, and release gates identify beta.12. The content covers
|
|
87
|
+
continuable remediation, evidence-bound fix/replan routing, Milestone dependency authority,
|
|
88
|
+
P01-A mechanical feasibility, C1 credentials, external-sealed review, Plan-integrity compatibility,
|
|
89
|
+
structural-replacement shutdown, and the limited derived-graph role of `codebase-memory-mcp`.
|
|
71
90
|
|
|
72
91
|
## Not claimed
|
|
73
92
|
|
|
74
93
|
- Validation itself performs no npm publication, Git tag, push, Signal Workflow mutation, or local
|
|
75
|
-
plugin reinstall.
|
|
76
|
-
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
## Post-beta.11 combined P04-A/P01-A candidate evidence
|
|
81
|
-
|
|
82
|
-
This later evidence was recorded on 2026-08-24 on branch `codex/p04-task-dependencies` and was
|
|
83
|
-
incorporated into the final beta.11 candidate.
|
|
84
|
-
|
|
85
|
-
- P04-A adds the canonical Milestone dependency DAG, atomic initial Plan transaction/recovery,
|
|
86
|
-
dependency-bound handoff/claim/start, legacy fail-closed policy, and unconditional pre-write
|
|
87
|
-
structural replacement shutdown.
|
|
88
|
-
- P01-A adds three versioned read-only analyzers, canonical in-event evidence/hash binding,
|
|
89
|
-
exact pre-start and corrective source selection, and phase-aware freshness before claim/start/run.
|
|
90
|
-
- After final source review added a pre-Git-mutation start race guard, `npm test` passed the exact
|
|
91
|
-
final sequential `319/319` suite with zero failures, skips, cancellations, or todos. The 13/13
|
|
92
|
-
focused P01-A suite, 84/84 affected P01/P04/Task lifecycle selection, and 4/4 beta.11
|
|
93
|
-
late-recovery compatibility tests also passed.
|
|
94
|
-
- `npm run typecheck`, `npm run plugin:check`, `npm run release:check`, schema validation inside
|
|
95
|
-
the full suite, the focused packaged-handshake capability test, and `git diff --check` passed.
|
|
96
|
-
- The changed bundled gateway uses cachebuster `0.1.0+codex.20260824113210`; it was validated but
|
|
97
|
-
not reinstalled.
|
|
98
|
-
- No merge, package install, tag, publication, plugin reinstall, Signal mutation, or brief status
|
|
99
|
-
transition to `implemented` is claimed by this candidate evidence.
|
|
100
|
-
|
|
101
|
-
## beta.11 PDF release documentation evidence
|
|
102
|
-
|
|
103
|
-
The Russian PDF set was regenerated and revalidated on 2026-08-24 against the combined beta.11
|
|
104
|
-
candidate described above.
|
|
105
|
-
|
|
106
|
-
- The three tracked PDF binaries now have reviewable Markdown authorities under
|
|
107
|
-
`docs/pdf/sources/` and one deterministic ReportLab generator. `npm run docs:pdf:check`
|
|
108
|
-
regenerated all outputs and reported an empty stale set.
|
|
109
|
-
- All 24 pages were rendered and visually inspected: architecture is 6 pages, the delegated
|
|
110
|
-
chat-only guide is 8 pages, and the technical reference is 10 pages. Text extraction found no
|
|
111
|
-
empty pages. The architecture orphan-page defect found during inspection was removed, and the
|
|
112
|
-
complete delegated Discovery prompt no longer splits its readiness checklist across pages.
|
|
113
|
-
- The content documents beta.11 delegated Discovery, the Milestone Autonomy Contract, explicit
|
|
114
|
-
`dependsOnTaskIds`, P04-A runnable routing and structural-replacement stop, P01-A mechanical
|
|
115
|
-
feasibility, C1 credential boundaries, external-sealed review, Plan-integrity recovery, and the
|
|
116
|
-
limited derived-graph role of `codebase-memory-mcp`.
|
|
117
|
-
- `npm run pack:check` passed with an isolated writable npm cache. The 269-file dry-run tarball
|
|
118
|
-
contains all three PDFs, all three Markdown sources, the PDF README and pinned requirement, and
|
|
119
|
-
both generator/check scripts.
|
|
120
|
-
- On the same beta.11 code tree, `npm run validate` passed `319/319`; `npm run typecheck`,
|
|
121
|
-
`npm run plugin:check`, `npm run release:check`, and `git diff --check` also passed.
|
|
122
|
-
|
|
123
|
-
This evidence makes the documentation package-ready for beta.11. The release action remains a
|
|
124
|
-
separate Git/tag operation after all final gates pass on the exact candidate tree.
|
|
94
|
+
plugin reinstall. Tagging and remote push are separate actions after the exact candidate gates.
|
|
95
|
+
- Structural replacement remains intentionally disabled; beta.12 does not claim P04-B replacement
|
|
96
|
+
materialization or completed-Step adoption.
|
|
97
|
+
- A real project must install the published exact beta.12 package, update/reinstall the bundled
|
|
98
|
+
gateway, and follow fresh project-local `handshake → doctor → status → next` navigation.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-workflow-gateway",
|
|
3
|
-
"version": "0.1.0+codex.
|
|
3
|
+
"version": "0.1.0+codex.20260827003726",
|
|
4
4
|
"description": "Thin personal Codex gateway for exact project-local Codex Workflow V2 packages and codebase-memory-mcp.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Codex Workflow Maintainers"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Gateway Protocol V2
|
|
2
2
|
|
|
3
|
-
## beta.
|
|
3
|
+
## beta.12 continuable remediation, coordinator projections, and retained recovery compatibility
|
|
4
4
|
|
|
5
5
|
- When fresh `next` advertises `task plan-integrity-recover`, consume its exact Task revision,
|
|
6
6
|
Step, actor, and writer-token contract. This route is valid only for the Core-derived
|
|
@@ -63,7 +63,7 @@ Current capability set:
|
|
|
63
63
|
- `task-c1-handoff-sidecar-v1`
|
|
64
64
|
- `task-mechanical-feasibility-v1`
|
|
65
65
|
- `semantic-plan-risk-audit-v2`
|
|
66
|
-
- `guarded-remediation-
|
|
66
|
+
- `guarded-remediation-continuation-v1`
|
|
67
67
|
- `milestone-reverse-membership-integrity-v1`
|
|
68
68
|
- `task-c1-handoff-bundle-v2`
|
|
69
69
|
- `alpha6-adoption-posture-v1`
|
|
@@ -169,18 +169,23 @@ one hostile counterexample, expected safe result, and exact executable evidence
|
|
|
169
169
|
unguarded Plan. Missing, stale, `split-required`, or `stop-escalate` evidence blocks
|
|
170
170
|
authorization.
|
|
171
171
|
|
|
172
|
-
For guarded remediation,
|
|
173
|
-
|
|
174
|
-
with
|
|
172
|
+
For guarded remediation, the first two failed cycles are recorded as `ordinary` and later cycles as
|
|
173
|
+
`corrective`. This mode is diagnostic: a third or later retry remains executable and still requires
|
|
174
|
+
a fresh strict review. A finding defaults to `route=fix`; `route=replan` is accepted only with exact
|
|
175
|
+
Plan-conflict evidence and routes to ordinary `task plan-set` for implementation-Step changes.
|
|
176
|
+
|
|
177
|
+
An explicit corrective disposition can still be recorded when the actor deliberately chooses a
|
|
178
|
+
stop, split, or compatible historical recovery route:
|
|
175
179
|
|
|
176
180
|
```text
|
|
177
181
|
codex-workflow task corrective-decision --repo <git-root> \
|
|
178
182
|
--id <TASK-ID> --step <STEP-ID> --expected-revision <REVISION> --file <decision.json>
|
|
179
183
|
```
|
|
180
184
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
185
|
+
`continue-fix` permits continuation; `replan-required`, `split-required`, and `stop-escalate` are
|
|
186
|
+
explicit stop or redirection decisions. They are never inferred from attempt count. Without such an
|
|
187
|
+
explicit decision, another failed strict review continues the same Task through its evidence-bound
|
|
188
|
+
`fix`/`replan` route.
|
|
184
189
|
|
|
185
190
|
## Context refresh
|
|
186
191
|
|
|
@@ -376,9 +376,12 @@ only for membership changes; any change to outcome, success signal, acceptance,
|
|
|
376
376
|
discovery, or base branch requires the ordinary human scope-change gate. Never self-renew or
|
|
377
377
|
replace the contract.
|
|
378
378
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
replan,
|
|
379
|
+
Repeated failed Task reviews remain on the same Task and do not require a separate corrective
|
|
380
|
+
Plan audit based only on count. Follow fresh `next`: ordinary findings default to `route=fix`;
|
|
381
|
+
`route=replan` is valid only with the exact Plan clause, obstruction, and minimal Plan change
|
|
382
|
+
retained by Core. A remediation Plan may change implementation Steps but must preserve the Task
|
|
383
|
+
objective, requirements, and acceptance. Explicit split or stop decisions still stop ordinary
|
|
384
|
+
continuation.
|
|
382
385
|
|
|
383
386
|
When `next.strictStepReview.recommendedMode` is `external-sealed`, do not launch the nested local
|
|
384
387
|
reviewer from inside a Codex App sandbox. Run the advertised read-only `task step-review-packet`,
|
|
@@ -37,16 +37,17 @@ bindings, supersedes execution authorization, and returns the Task to
|
|
|
37
37
|
`awaiting_execution_authorization`. It cannot run while a Step is `in_progress` or while the
|
|
38
38
|
Task is `blocked`; unrelated blocks must be resolved through their owning transition.
|
|
39
39
|
|
|
40
|
-
For guarded remediation,
|
|
40
|
+
For guarded remediation, the first two attempts use mode `ordinary`; later attempts use mode
|
|
41
|
+
`corrective`. Corrective posture is
|
|
41
42
|
derived from the guarded Step, current Plan Risk Audit, remediation history, and
|
|
42
43
|
corrective-decision history rather than from `Task.status` alone, so the same gate survives
|
|
43
|
-
content-only Knowledge refresh, Task Knowledge rebind, and later reauthorization.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
requires
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
content-only Knowledge refresh, Task Knowledge rebind, and later reauthorization. Attempt count
|
|
45
|
+
does not block execution: every new completion still requires exact strict-review evidence, while
|
|
46
|
+
the same Task may continue until review passes. A failed finding defaults to `route=fix`.
|
|
47
|
+
`route=replan` requires exact Plan-conflict evidence and routes to `task plan-set`; it may change
|
|
48
|
+
implementation Steps but not the Task objective, requirements, or acceptance. Explicit
|
|
49
|
+
`replan-required`, `split-required`, and `stop-escalate` decisions retain their redirect/stop
|
|
50
|
+
semantics and outrank ordinary continuation.
|
|
50
51
|
|
|
51
52
|
Milestone authorization is bound to its Plan and membership revision. Plan amendments
|
|
52
53
|
supersede authorization. Milestone validation and acceptance are bound to the current base
|
|
@@ -13,10 +13,17 @@ upgrade, concurrent state includes deterministic races, restart/replay claims in
|
|
|
13
13
|
windows, and provider integrations include failure injection plus hidden-default checks.
|
|
14
14
|
Happy-path green tests do not replace this evidence.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
Failed review does not impose a Task-lifecycle attempt limit. The first two guarded remediation
|
|
17
|
+
events are recorded as `ordinary`; later events are `corrective`, remain executable, and each
|
|
18
|
+
requires another fresh strict review. A failed-review finding defaults to `route=fix`. It may use
|
|
19
|
+
`route=replan` only with exact `planClause`, `whyFixCannotFit`, and `minimalPlanChange` evidence;
|
|
20
|
+
Core then routes to ordinary `task plan-set`, where only implementation Steps may change. Task
|
|
21
|
+
objective, requirements, and acceptance remain immutable during remediation.
|
|
22
|
+
|
|
23
|
+
The explicit corrective-decision journal remains available for intentional `continue-fix`,
|
|
24
|
+
`replan-required`, `split-required`, and `stop-escalate` dispositions and for compatible historical
|
|
25
|
+
recovery. It is not an attempt-count gate. Explicit split and stop decisions still stop or redirect
|
|
26
|
+
execution; repeated review failure alone does not create either decision.
|
|
20
27
|
|
|
21
28
|
The strict path is `task review-launch`. It starts an ephemeral Codex process with user
|
|
22
29
|
configuration and rules ignored, a read-only sandbox, structured output, and an attempted
|
|
@@ -22,7 +22,23 @@
|
|
|
22
22
|
"requirement": { "type": ["string", "null"] },
|
|
23
23
|
"summary": { "type": "string", "minLength": 1 },
|
|
24
24
|
"evidence": { "type": "string", "minLength": 1 },
|
|
25
|
-
"requiredAction": { "type": "string", "minLength": 1 }
|
|
25
|
+
"requiredAction": { "type": "string", "minLength": 1 },
|
|
26
|
+
"route": { "enum": ["fix", "replan"] },
|
|
27
|
+
"planConflict": {
|
|
28
|
+
"anyOf": [
|
|
29
|
+
{ "type": "null" },
|
|
30
|
+
{
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"required": ["planClause", "whyFixCannotFit", "minimalPlanChange"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"planClause": { "type": "string", "minLength": 1 },
|
|
36
|
+
"whyFixCannotFit": { "type": "string", "minLength": 1 },
|
|
37
|
+
"minimalPlanChange": { "type": "string", "minLength": 1 }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
26
42
|
}
|
|
27
43
|
}
|
|
28
44
|
}
|
|
@@ -34,6 +34,21 @@
|
|
|
34
34
|
"eventType": { "enum": ["pending", "review-recorded", "attestation-verified"] },
|
|
35
35
|
"decision": { "enum": ["pending", "passed", "failed", "unverified"] },
|
|
36
36
|
"reviewerAttestationHash": { "$ref": "#/$defs/nullableHash64" },
|
|
37
|
+
"remediationRoute": { "enum": ["fix", "replan", null] },
|
|
38
|
+
"planConflicts": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": false,
|
|
43
|
+
"required": ["findingId", "planClause", "whyFixCannotFit", "minimalPlanChange"],
|
|
44
|
+
"properties": {
|
|
45
|
+
"findingId": { "type": "string", "minLength": 1 },
|
|
46
|
+
"planClause": { "type": "string", "minLength": 1 },
|
|
47
|
+
"whyFixCannotFit": { "type": "string", "minLength": 1 },
|
|
48
|
+
"minimalPlanChange": { "type": "string", "minLength": 1 }
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
37
52
|
"previousEventHash": { "$ref": "#/$defs/nullableHash64" },
|
|
38
53
|
"recordedAt": { "type": "string", "format": "date-time" },
|
|
39
54
|
"eventHash": { "$ref": "#/$defs/hash64" }
|
|
@@ -44,6 +44,7 @@ SOURCE_DIR = ROOT / "docs" / "pdf" / "sources"
|
|
|
44
44
|
OUTPUT_DIR = ROOT / "docs" / "pdf"
|
|
45
45
|
PACKAGE = json.loads((ROOT / "package.json").read_text(encoding="utf-8"))
|
|
46
46
|
PACKAGE_VERSION = PACKAGE["version"]
|
|
47
|
+
RELEASE_LABEL = PACKAGE_VERSION.rsplit("-", 1)[-1]
|
|
47
48
|
|
|
48
49
|
DOCUMENTS = (
|
|
49
50
|
("codex-workflow-v2-architecture-ru.md", "codex-workflow-v2-architecture-ru.pdf"),
|
|
@@ -396,7 +397,7 @@ def draw_page(canvas_obj: canvas.Canvas, doc: SimpleDocTemplate, title: str) ->
|
|
|
396
397
|
canvas_obj.setFont("WorkflowBody", 7)
|
|
397
398
|
canvas_obj.setFillColor(MUTED)
|
|
398
399
|
canvas_obj.drawString(LEFT, PAGE_HEIGHT - 10 * mm, title[:74])
|
|
399
|
-
canvas_obj.drawRightString(PAGE_WIDTH - RIGHT, PAGE_HEIGHT - 10 * mm, f"
|
|
400
|
+
canvas_obj.drawRightString(PAGE_WIDTH - RIGHT, PAGE_HEIGHT - 10 * mm, f"{RELEASE_LABEL} | {PACKAGE_VERSION}")
|
|
400
401
|
canvas_obj.line(LEFT, 11 * mm, PAGE_WIDTH - RIGHT, 11 * mm)
|
|
401
402
|
canvas_obj.drawString(LEFT, 7 * mm, "Codex Workflow V2")
|
|
402
403
|
canvas_obj.drawRightString(PAGE_WIDTH - RIGHT, 7 * mm, f"Страница {doc.page}")
|