codex-workflow-v2 2.0.0-beta.13.3 → 2.0.0-beta.13.5

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 (34) hide show
  1. package/README.md +1 -1
  2. package/dist/reviewer-runtime-build.json +17 -9
  3. package/dist/src/alpha6/plan-risk.d.ts +1 -0
  4. package/dist/src/alpha6/plan-risk.js +9 -6
  5. package/dist/src/alpha6/plan-risk.js.map +1 -1
  6. package/dist/src/alpha6/preexecution-replan.d.ts +38 -0
  7. package/dist/src/alpha6/preexecution-replan.js +130 -0
  8. package/dist/src/alpha6/preexecution-replan.js.map +1 -0
  9. package/dist/src/alpha6/remediation.d.ts +4 -3
  10. package/dist/src/alpha6/remediation.js +147 -21
  11. package/dist/src/alpha6/remediation.js.map +1 -1
  12. package/dist/src/cli-actions.d.ts +1 -1
  13. package/dist/src/cli-actions.js +1 -0
  14. package/dist/src/cli-actions.js.map +1 -1
  15. package/dist/src/cli.js +44 -0
  16. package/dist/src/cli.js.map +1 -1
  17. package/dist/src/domain/plan-semantics.d.ts +11 -0
  18. package/dist/src/domain/plan-semantics.js +49 -0
  19. package/dist/src/domain/plan-semantics.js.map +1 -0
  20. package/dist/src/version.d.ts +1 -1
  21. package/dist/src/version.js +1 -1
  22. package/dist/src/workflow.d.ts +19 -1
  23. package/dist/src/workflow.js +514 -80
  24. package/dist/src/workflow.js.map +1 -1
  25. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  26. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  27. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  28. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +1 -1
  29. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +2 -2
  30. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +2 -2
  31. package/docs/release.md +43 -0
  32. package/package.json +1 -1
  33. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +35 -2
  34. package/schemas/preexecution-replan-event.schema.json +45 -0
@@ -463,7 +463,7 @@ Restart Docker Desktop требует отдельного разрешения
463
463
  # 10. Operational checklist
464
464
 
465
465
  - exact package version установлен, bundled gateway соответствует release и переустановлен;
466
- - handshake подтверждает `packageVersion=2.0.0-beta.13.3`, protocol 2, state schema 2 и beta.13
466
+ - handshake подтверждает `packageVersion=2.0.0-beta.13.5`, protocol 2, state schema 2 и beta.13
467
467
  capabilities;
468
468
  - routine observation начинается с компактного `status`; `status --full` запрашивается только для
469
469
  расследования, которому действительно нужна полная historical projection;
@@ -57,7 +57,7 @@ AGENTS.md
57
57
  -> doctor только как дополнительная диагностика
58
58
  ```
59
59
 
60
- Handshake beta.13.1 должен сообщать `packageVersion=2.0.0-beta.13.3`, `protocolVersion=2`,
60
+ Handshake beta.13.5 должен сообщать `packageVersion=2.0.0-beta.13.5`, `protocolVersion=2`,
61
61
  `stateSchemaVersion=2`, dependency DAG, initial Plan transaction, mechanical feasibility,
62
62
  Milestone autonomy, host-safe credential reference, failed-Step continuation transaction,
63
63
  cause-bound rolling refinement, structural production edge, compact status, reviewer runtime preflight,
@@ -482,7 +482,7 @@ Task/project DGR. `dependencyBinding` для standalone handoff равен null.
482
482
  # 14. Итоговый checklist пользователя
483
483
 
484
484
  - beta.13.1 exact package и новый bundled gateway установлены; handshake показывает
485
- `packageVersion=2.0.0-beta.13.3`, protocol/state schema `2/2` и beta.13 capabilities;
485
+ `packageVersion=2.0.0-beta.13.5`, protocol/state schema `2/2` и beta.13 capabilities;
486
486
  - новый Coordinator chat не является fork старого Milestone;
487
487
  - bootstrap DGR, если нужен, выдан отдельным exact human confirmation;
488
488
  - Discovery не materialized при blocking unknowns;
@@ -15,7 +15,7 @@ authority сами: mutating permission определяется runtime state
15
15
 
16
16
  | Параметр beta.13 | Значение |
17
17
  |---|---|
18
- | npm package | `codex-workflow-v2@2.0.0-beta.13.3` |
18
+ | npm package | `codex-workflow-v2@2.0.0-beta.13.5` |
19
19
  | protocolVersion | 2 |
20
20
  | stateSchemaVersion | 2 |
21
21
  | lifecycle epoch | 2 |
@@ -767,7 +767,7 @@ dirty update.
767
767
  observed-route matrix/compact-status/reviewer-runtime tests, legacy compatibility regressions,
768
768
  `npm run test:signal-t10-check-support-e2e`, `npm run test:signal-remediation-e2e`,
769
769
  `npm run pack:check`, `npm run smoke:downstream`, `npm run plugin:check`, official plugin/skill validators,
770
- `npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.3` tag binding и append-only
770
+ `npm run docs:pdf:check` и `npm run release:check` с exact `v2.0.0-beta.13.5` tag binding и append-only
771
771
  real-agent lifecycle log. Candidate проверяется из clean source checkout; missing built module не должен
772
772
  превращаться в stack trace, а обязан быть детерминированно собран или диагностирован release gate.
773
773
 
package/docs/release.md CHANGED
@@ -4,6 +4,49 @@ The npm package is `codex-workflow-v2` with public visibility. Consumers must pi
4
4
  an exact version. Stable compatibility covers the latest minor release of the current
5
5
  major only; older minors are unsupported unless a release note explicitly says otherwise.
6
6
 
7
+ ## beta.13.5 preventive Plan correction before execution
8
+
9
+ A newly discovered implementation Plan defect can require changing unfinished scope
10
+ before its next Step runs. The preventive route withdraws the current execution
11
+ authorization under an independent blocking Plan Risk Audit, then requires a corrected
12
+ Plan, fresh independent audit and ordinary execution authorization. It must preserve
13
+ the same Task, completed Step definitions and evidence, requirements, acceptance,
14
+ review history and grants. It must not manufacture a failed run to unlock planning.
15
+
16
+ Initial eligibility is deliberately limited to a coherent, clean, idle `ready` Task
17
+ with no C1 ownership or writer lease. Stale bindings, existing ownership, incomplete
18
+ review, unexpected Git history and damaged state must fail closed. Regression gates
19
+ must prove authority withdrawal and actual same-Task continuation, plus rejection of
20
+ attempts to change the objective, discard completed evidence or weaken guarded scope.
21
+
22
+ Replacement Plan publication commits Task state, the current and immutable Plan artifacts,
23
+ and its independent audit atomically. Pending correction blocks C1 handoff and dependency
24
+ transport until the corrected Plan can be authorized. Proof bindings retain each Step,
25
+ failure mode and evidence association; revised proof prose requires an independent audit
26
+ with an explicit rationale. Core does not determine whether natural-language proof claims
27
+ are semantically stronger.
28
+
29
+ External sealed-review CLI help specifies the complete envelope, including its nested
30
+ review. Lifecycle validation admits one bounded expired-credential recovery between a
31
+ review-input syntax refusal and retry, with unchanged sealed evidence and fresh sequential
32
+ status/next bindings; unrelated or unbound mutations remain invalid.
33
+
34
+ ## beta.13.4 candidate: continuation after accepted corrective Plan
35
+
36
+ This correction is included in beta.13.5; beta.13.4 was not published separately.
37
+
38
+ The beta.13.3 first-conflict recovery stopped too early: after a replacement Plan
39
+ was accepted and authorized, navigation still applied the old Plan's conflict to
40
+ the now-planned Step. Release acceptance for this correction must exercise the
41
+ complete same-Task sequence through fresh Plan Risk Audit, execution authorization,
42
+ the existing Worker claim, actual Step execution, and another failed review.
43
+ Reaching `task plan-set` alone is not sufficient evidence.
44
+
45
+ An accepted semantic replacement must be distinguished from a Knowledge-only
46
+ rebind using verified Plan artifacts and audit/review bindings. Historical failures
47
+ and their global ordinals remain append-only. A missing or damaged artifact must
48
+ not silently acknowledge a conflict, and a context refresh must not reopen execution.
49
+
7
50
  ## beta.13.3 explicit Plan conflict recovery
8
51
 
9
52
  A first independently recorded reviewer `route=replan` with a validated Plan conflict
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-workflow-v2",
3
- "version": "2.0.0-beta.13.3",
3
+ "version": "2.0.0-beta.13.5",
4
4
  "description": "Requirements-first Codex development workflow with local state and explicit Git ownership.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -92,6 +92,29 @@ active writer token when the C1 contract requires it. The recovery records only
92
92
  `task run` merely to manufacture the second failure, and never invoke this recovery for a generic
93
93
  test failure, a writable manifest, or unconfined changes.
94
94
 
95
+ When fresh `next` includes `preExecutionReplanOption.state=eligible`, an independent Plan auditor
96
+ may stop a `ready` Task before its next Step because the current implementation Plan is obstructed.
97
+ Use only `task preexecution-replan` with the exact advertised Task revision, Brief hash, Plan hash,
98
+ current Plan Risk Audit event hash, and HEAD. The audit file must be a genuine independent
99
+ `stop-escalate` replacement audit: its planner remains the original planner, its auditor is the
100
+ transition actor, and it retains current guarded categories, review requirements, failure modes,
101
+ evidence commands, and proof bindings while recording the obstruction. This transition requires a
102
+ clean checkout with no Step in progress, C1 posture, or writer lease. It appends immutable audit and
103
+ provenance records, supersedes only current execution authorization, preserves completed Step
104
+ authority and existing delegation scope, and does not require a new approval. After success, run
105
+ sequential `status` then `next`; Core must advertise ordinary `task plan-set`, not audited-remediation
106
+ topology. Submit a semantically changed Plan with the exact Task objective, requirements, and
107
+ acceptance, preserve completed Steps and prior safety boundaries, attach a fresh Plan Risk Audit,
108
+ then obtain fresh execution authorization. Never append an approved audit to the unchanged Plan,
109
+ rebind context around the marker, invent a failure/corrective cause, or invoke the command when the
110
+ option is absent or blocked.
111
+
112
+ For this route, Core treats each `(Step ID, failureMode, evidence)` tuple as the immutable proof
113
+ binding. It does not claim to understand whether revised `counterexample` or `expectedResult` prose
114
+ is semantically stronger. Changing that prose therefore requires an independent
115
+ `approved-with-rationale` audit, a changed substantive summary, and an explicit rationale; the
116
+ earlier audit remains immutable history for human review.
117
+
95
118
  When fresh `next` advertises `task downstream-proof-recover`, the active proof Step has produced
96
119
  uncommitted files inside its own `allowedWrites` and has also exposed required changes owned by one
97
120
  or more completed transitive predecessor Steps. Do not invoke `task step-complete`: its scope is
@@ -586,7 +609,13 @@ When `next.strictStepReview.recommendedMode` is `external-sealed`, do not launch
586
609
  reviewer from inside a Codex App sandbox. Run the advertised read-only `task step-review-packet`,
587
610
  create a separate user-visible reviewer chat for that exact packet, and require one closed
588
611
  `ReviewInput` JSON result bound to its reviewed commit. The reviewer must not modify repository or
589
- Workflow state. Then run only the advertised `task step-review-record` with the unchanged packet
612
+ Workflow state. The `--file` passed to `task step-review-record` must be the full
613
+ `ExternalStrictStepReviewInput` envelope: top-level `protocol`, `packetHash`,
614
+ `repositorySealHash`, `reviewerThreadId`, and `reviewMode` (`ordinary` or `security`), plus the
615
+ nested `review` object containing `status`, `reviewer`, `summary`, and `findings`. Copy both hashes
616
+ and the mode from the packet; do not flatten `review`, and do not pass `--review-mode` to the record
617
+ command because it reads the mode from the JSON file. Run `task step-review-record --help` for a
618
+ complete minimal example. Then run only the advertised `task step-review-record` with the unchanged packet
590
619
  and repository-seal hashes, the separate reviewer thread ID, the lifecycle actor from `next`, and
591
620
  the active writer token when required. Never author the independent review in the Worker or
592
621
  Delivery Coordinator chat, never alter the packet, and never treat an unverified local reviewer
@@ -597,7 +626,11 @@ When `next.strictTaskReview.recommendedMode` is `external-sealed`, apply the sam
597
626
  the final submitted-Task review. Run the advertised read-only `task review-packet`, send the exact
598
627
  packet to a separate user-visible Independent Reviewer chat, and accept only a closed `ReviewInput`
599
628
  bound to the unchanged packet and repository-seal hashes. Record it only through the advertised
600
- `task review-sealed-record`, using the lifecycle actor from `next` and the active writer token when
629
+ `task review-sealed-record`. Its `--file` must be the analogous full
630
+ `ExternalStrictTaskReviewInput` envelope using protocol
631
+ `codex-workflow-external-strict-task-review-v1`, the packet and repository-seal hashes,
632
+ `reviewerThreadId`, top-level `reviewMode`, and nested `review`; its `--help` contains a minimal
633
+ example. Use the lifecycle actor from `next` and the active writer token when
601
634
  required. Do not call `task review-launch` from inside a Codex App sandbox, do not use the Worker or
602
635
  Delivery Coordinator as reviewer, and discard the result if a fresh packet changes either hash.
603
636
 
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://codex-workflow.local/schemas/preexecution-replan-event.schema.json",
4
+ "title": "Codex Workflow V2 Pre-execution Replan Event",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "eventId", "taskId", "sourceTaskRevision", "resultTaskRevision", "briefHash",
9
+ "sourcePlanHash", "knowledgeMapRevision", "knowledgeMapHash",
10
+ "sourcePlanRiskAuditEventId", "sourcePlanRiskAuditEventHash",
11
+ "obstructionPlanRiskAuditEventId", "obstructionPlanRiskAuditEventHash",
12
+ "sourceExecutionAuthorizationHash", "sourceHeadCommit", "completedStepIds",
13
+ "completedStepsHash", "actor", "reason", "recordedAt", "previousEventHash", "eventHash"
14
+ ],
15
+ "properties": {
16
+ "eventId": { "type": "string", "pattern": "^PER-[0-9A-HJKMNP-TV-Z]{26}$" },
17
+ "taskId": { "type": "string", "pattern": "^TASK-[0-9A-HJKMNP-TV-Z]{26}$" },
18
+ "sourceTaskRevision": { "type": "integer", "minimum": 1 },
19
+ "resultTaskRevision": { "type": "integer", "minimum": 2 },
20
+ "briefHash": { "$ref": "#/$defs/hash64" },
21
+ "sourcePlanHash": { "$ref": "#/$defs/hash64" },
22
+ "knowledgeMapRevision": { "type": "integer", "minimum": 1 },
23
+ "knowledgeMapHash": { "$ref": "#/$defs/hash64" },
24
+ "sourcePlanRiskAuditEventId": { "type": "string", "pattern": "^PRA-[0-9A-HJKMNP-TV-Z]{26}$" },
25
+ "sourcePlanRiskAuditEventHash": { "$ref": "#/$defs/hash64" },
26
+ "obstructionPlanRiskAuditEventId": { "type": "string", "pattern": "^PRA-[0-9A-HJKMNP-TV-Z]{26}$" },
27
+ "obstructionPlanRiskAuditEventHash": { "$ref": "#/$defs/hash64" },
28
+ "sourceExecutionAuthorizationHash": { "$ref": "#/$defs/hash64" },
29
+ "sourceHeadCommit": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
30
+ "completedStepIds": {
31
+ "type": "array",
32
+ "uniqueItems": true,
33
+ "items": { "type": "string", "pattern": "^STEP-[0-9]{3}(?:-[A-Z0-9-]+)?$" }
34
+ },
35
+ "completedStepsHash": { "$ref": "#/$defs/hash64" },
36
+ "actor": { "type": "string", "minLength": 1 },
37
+ "reason": { "type": "string", "minLength": 1, "maxLength": 2048 },
38
+ "recordedAt": { "type": "string", "format": "date-time" },
39
+ "previousEventHash": { "anyOf": [{ "$ref": "#/$defs/hash64" }, { "type": "null" }] },
40
+ "eventHash": { "$ref": "#/$defs/hash64" }
41
+ },
42
+ "$defs": {
43
+ "hash64": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
44
+ }
45
+ }