codex-workflow-v2 2.0.0-beta.8 → 2.0.0-beta.9
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 -2
- package/dist/src/cli.js +25 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +56 -0
- package/dist/src/dependency-provenance.d.ts +18 -0
- package/dist/src/dependency-provenance.js +179 -0
- package/dist/src/dependency-provenance.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.d.ts +5 -1
- package/dist/src/workflow.js +139 -1
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +6 -6
- package/docs/delegated-approval.md +5 -3
- package/docs/development-flow.md +4 -4
- package/docs/release.md +4 -1
- package/docs/stable-release-defect-register.md +37 -1
- package/docs/updating-existing-project.md +7 -5
- package/docs/validation-report.md +70 -56
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +10 -3
- package/plugins/codex-workflow-gateway/references/protocol.md +14 -2
- package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +376 -0
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +51 -14
- package/roles/delivery-coordinator.md +10 -5
- package/schemas/task.schema.json +19 -1
|
@@ -139,16 +139,16 @@ A host-generated `codex_delegation` envelope containing routing provenance such
|
|
|
139
139
|
not carry completed parent turns. The coordinator reads the title back after creation and explicitly
|
|
140
140
|
renames it when the supplied title was omitted or normalized.
|
|
141
141
|
|
|
142
|
-
Chat titles are
|
|
142
|
+
Chat titles are allocated atomically by the project registry; sidebar counts and `count + 1` are
|
|
143
|
+
not valid numbering sources. Primary forms are:
|
|
143
144
|
|
|
144
145
|
```text
|
|
145
|
-
M<NN> ·
|
|
146
|
-
M<NN>/T<NN> · <Task title> · <TASK-ID>
|
|
146
|
+
#NNN · M<NN> · Coord · <Milestone title> · <MS-ID>
|
|
147
|
+
#NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>
|
|
147
148
|
```
|
|
148
149
|
|
|
149
|
-
The
|
|
150
|
-
|
|
151
|
-
and re-verified before the Task receives work.
|
|
150
|
+
The sequence and membership ordinal come first; the full ID prevents ambiguous identity. Exact
|
|
151
|
+
readback is mandatory and only registry-supplied deterministic fallbacks may be used.
|
|
152
152
|
|
|
153
153
|
Autonomy also requires active supervision. After just-in-time dispatch, the Milestone coordinator
|
|
154
154
|
keeps a bounded `wait_threads` loop for the routed Task, inspects completion/attention, and verifies
|
|
@@ -124,12 +124,14 @@ membership ordinal, Task revision/title, Brief/Plan bindings, requirements/accep
|
|
|
124
124
|
scope/checks/stop conditions, маршрут status -> next --task <exact Task ID> и тот же actor/DGR-ID
|
|
125
125
|
только когда они требуются. Не передавай transcript этого чата, sibling Tasks, recovery narrative,
|
|
126
126
|
reasoning, confirmation codes, handoff credentials или writer tokens.
|
|
127
|
-
Title
|
|
128
|
-
Task
|
|
127
|
+
Title обязателен и выделяется проектным registry:
|
|
128
|
+
#NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>. До dispatch проверь уникальность
|
|
129
|
+
Task-ID-to-thread mapping, выполни exact registry readback и проверь Task-only input. Служебный
|
|
129
130
|
codex_delegation envelope с source_thread_id допустим, parent turns/transcript запрещены. Если
|
|
130
131
|
title отсутствует или изменён, явно переименуй и перепроверь. Ошибка create_thread не разрешает
|
|
131
132
|
fallback на fork_thread.
|
|
132
|
-
Если
|
|
133
|
+
Если readback изменён, применяй только deterministic fallback registry; полный `#NNN`, ordinal и
|
|
134
|
+
entity ID сохраняются. В
|
|
133
135
|
TaskContextPacket потребуй закрытый secret-free CoordinatorReport на terminal/attention boundary:
|
|
134
136
|
Task ID, observed revision/status, outcome, next action, requiresUser, blocker class,
|
|
135
137
|
commits/checks/review evidence; никаких confirmation/handoff/writer bearer values.
|
package/docs/development-flow.md
CHANGED
|
@@ -150,10 +150,10 @@ delegated transitions, merge observation, cross-Task validation, and final accep
|
|
|
150
150
|
|
|
151
151
|
The coordinator creates that chat as a new standalone Codex task, never as a fork/handoff of its
|
|
152
152
|
own thread, and sends only a fresh TaskContextPacket for the exact Task. It creates or reuses the
|
|
153
|
-
chat just before dispatch, not as an empty membership placeholder.
|
|
154
|
-
|
|
155
|
-
title> · <TASK-ID
|
|
156
|
-
|
|
153
|
+
chat just before dispatch, not as an empty membership placeholder. The project registry allocates
|
|
154
|
+
one monotonic `#NNN` and builds `#NNN · M<NN> · Coord · <Milestone title> · <MS-ID>` or
|
|
155
|
+
`#NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>`; the Task ordinal still comes from approved
|
|
156
|
+
membership order. Exact readback and registry-owned fallback are mandatory.
|
|
157
157
|
|
|
158
158
|
Dispatch is followed by an explicit coordinator supervision loop. The Milestone chat waits on the
|
|
159
159
|
one currently routed Task chat with bounded `wait_threads` calls, reads it when it completes or
|
package/docs/release.md
CHANGED
|
@@ -22,7 +22,7 @@ The downstream smoke packs the actual tarball, installs it into an empty tempora
|
|
|
22
22
|
runs the packaged CLI handshake, and proves installation created none of `.codex`, `.tasks`,
|
|
23
23
|
`.increments`, or `.memory-bank` in that project.
|
|
24
24
|
|
|
25
|
-
For beta.
|
|
25
|
+
For beta.9, the release gate also relies on `npm run release:check` to fail if:
|
|
26
26
|
|
|
27
27
|
- canonical entity schema 2 shapes drift;
|
|
28
28
|
- protocol 2 is not the active public contract, or intact protocol-1 adoption evidence stops being readable through the bounded compatibility window;
|
|
@@ -37,6 +37,9 @@ For beta.8, the release gate also relies on `npm run release:check` to fail if:
|
|
|
37
37
|
explicit recovery, or dual-readback capabilities are absent from the packaged surface.
|
|
38
38
|
- scoped Task navigation, credential replacement recovery, or sealed external Task/Step review
|
|
39
39
|
commands are absent from the packaged surface.
|
|
40
|
+
- bounded dependency-provenance recovery or its rejection regressions are absent.
|
|
41
|
+
- the read-only Milestone progress projection, replacement regression, project-monotonic chat
|
|
42
|
+
registry, title fallback/readback, or long-Cyrillic multi-attempt E2E evidence is absent.
|
|
40
43
|
|
|
41
44
|
The separate lifecycle transcript validator fails if the real-agent log contains a mutation that
|
|
42
45
|
bypasses failed `status`/`next`, an unadvertised or failed mutation, an unresolved syntax-only
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Stable Release Defect Register
|
|
2
2
|
|
|
3
3
|
This register captures defects and operational gaps found while running the
|
|
4
|
-
alpha.7 through beta.
|
|
4
|
+
alpha.7 through beta.9 lines against the `signal_v4` Milestone 3 lifecycle. It is intentionally
|
|
5
5
|
separate from implementation briefs: an item stays here until it is either
|
|
6
6
|
verified fixed by a regression test or explicitly classified as downstream-only.
|
|
7
7
|
|
|
@@ -16,6 +16,36 @@ Last reviewed: 2026-08-22.
|
|
|
16
16
|
|
|
17
17
|
## Post-beta.5 open findings
|
|
18
18
|
|
|
19
|
+
### WF-STABLE-030 — chat order and replacement progress are not observable
|
|
20
|
+
|
|
21
|
+
- Status: Closed-regression in beta.9
|
|
22
|
+
- Severity: High
|
|
23
|
+
- Area: Codex App routing, title identity, Milestone supervision
|
|
24
|
+
- Evidence: automatically created Task/reviewer titles had no project sequence, long semantic
|
|
25
|
+
segments were unpredictably shortened, and the Coordinator summary did not expose that cancelled
|
|
26
|
+
T03 had been replaced by a distinct T08.
|
|
27
|
+
- Fix: the gateway owns one atomic project registry with non-reusable monotonic `#NNN`, six compact
|
|
28
|
+
title families, exact readback and deterministic fallback. Core exposes a read-only Milestone
|
|
29
|
+
progress projection; Task and Coordinator chats emit progress tables at defined boundaries.
|
|
30
|
+
- Regression: concurrent allocations remain unique and monotonic; long Cyrillic titles and multiple
|
|
31
|
+
review attempts traverse fallback/readback; projection keeps `T03 cancelled → T08 replacement`
|
|
32
|
+
as two rows with exact Step status.
|
|
33
|
+
|
|
34
|
+
### WF-STABLE-029 — dependency-only Workflow update strands an active Task
|
|
35
|
+
|
|
36
|
+
- Status: Closed-regression in beta.9
|
|
37
|
+
- Severity: Critical
|
|
38
|
+
- Area: Git provenance integrity, package update, active Task recovery
|
|
39
|
+
- Evidence: Signal T04 contained the beta.8 dependency update commit at HEAD after all recorded Task
|
|
40
|
+
commits. `task submit` correctly rejected the unregistered commit, but no bounded route could
|
|
41
|
+
classify it as Workflow-owned provenance.
|
|
42
|
+
- Fix: fresh navigation advertises recovery only for one clean, local, dependency-only HEAD after
|
|
43
|
+
exact recorded history, with no Step/lease/transaction activity and complete beta.9 alignment
|
|
44
|
+
across runtime, manifest, lock, install, Task branch, and Milestone base. Recovery only appends
|
|
45
|
+
that SHA to `systemCommits` with an audit record; it never mutates Git.
|
|
46
|
+
- Regression: exact candidate succeeds and is idempotent; product-file contamination and stale-base
|
|
47
|
+
divergence fail closed.
|
|
48
|
+
|
|
19
49
|
### WF-STABLE-028 — passed guarded Step strands later final Task-review remediation
|
|
20
50
|
|
|
21
51
|
- Status: Closed-regression in beta.8
|
|
@@ -79,6 +109,12 @@ Last reviewed: 2026-08-22.
|
|
|
79
109
|
- Risk: routine Workflow starts produce a noisy, repeated failure. More importantly, if both cache
|
|
80
110
|
generations remain present, a task may silently load stale gateway rules instead of failing,
|
|
81
111
|
weakening exact-version routing and human-gate guarantees.
|
|
112
|
+
- beta.9 live readback (2026-08-22): after the source was validated, copied through the packaged
|
|
113
|
+
installer, and `codex plugin add` reported installed root `0.1.0+codex.20260822110519`, three new
|
|
114
|
+
worktree Tasks were still injected with missing path `0.1.0+codex.20260822065726`. All three
|
|
115
|
+
found the actual cache only by read-only search and then verified beta.9 content. This rules out a
|
|
116
|
+
missed source copy or failed install and localizes the remaining defect to App catalog/runtime
|
|
117
|
+
invalidation.
|
|
82
118
|
- Required closure:
|
|
83
119
|
- determine whether the stale reference is emitted by the packaged installer/registration flow
|
|
84
120
|
or retained by Codex App's skill catalog;
|
|
@@ -235,11 +235,12 @@ Grant сам не запускает агента и не прикрепляет
|
|
|
235
235
|
`next.delegatedApprovalOptions`. Внутренние Worker и Independent Reviewer grant не используют:
|
|
236
236
|
его применяет координатор после получения их evidence.
|
|
237
237
|
|
|
238
|
-
|
|
238
|
+
Все автоматически создаваемые чаты получают проектный монотонный номер из
|
|
239
|
+
`plugins/codex-workflow-gateway/scripts/chat-registry.mjs`; `count + 1` запрещён. Основные формы:
|
|
239
240
|
|
|
240
241
|
```text
|
|
241
|
-
M<NN> ·
|
|
242
|
-
M<NN>/T<NN> · <Task title> · <TASK-ID>
|
|
242
|
+
#NNN · M<NN> · Coord · <Milestone title> · <MS-ID>
|
|
243
|
+
#NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>
|
|
243
244
|
```
|
|
244
245
|
|
|
245
246
|
Task-чат создавайте только как новую standalone Codex task (`create_thread`) в том же Project, а
|
|
@@ -250,8 +251,9 @@ ID>`, Task-local scope/checks/stop conditions и exact actor/grant ID при н
|
|
|
250
251
|
переносите transcript Milestone-чата, историю recovery/approval, соседние Tasks, reasoning или
|
|
251
252
|
confirmation/handoff/writer credentials.
|
|
252
253
|
|
|
253
|
-
До создания проверьте, нет ли уже чата для exact Task ID. После создания
|
|
254
|
-
title
|
|
254
|
+
До создания проверьте, нет ли уже чата для exact Task ID. После создания передайте прочитанный
|
|
255
|
+
title в registry readback и применяйте только возвращённый deterministic fallback. Title должен
|
|
256
|
+
быть уникален и содержать exact `#NNN`, membership ordinal и ID. Input должен состоять из
|
|
255
257
|
TaskContextPacket; допустима только добавленная Codex App служебная `codex_delegation`-обёртка с
|
|
256
258
|
`source_thread_id`, но не parent turns или transcript. Если title отсутствует или нормализован
|
|
257
259
|
неверно, переименуйте и перепроверьте. Ошибка `create_thread` допускает один
|
|
@@ -1,56 +1,70 @@
|
|
|
1
|
-
# V2
|
|
2
|
-
|
|
3
|
-
Release candidate `2.0.0-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
historical
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
1
|
+
# V2 beta.9 Validation Report
|
|
2
|
+
|
|
3
|
+
Release candidate `2.0.0-beta.9` was validated on 2026-08-22 with Node.js 24.17.0.
|
|
4
|
+
|
|
5
|
+
## Automated release evidence
|
|
6
|
+
|
|
7
|
+
- `npm run validate` passed `294/294` sequential tests with no failures, skips, cancellations, or
|
|
8
|
+
todos. This includes every historical lifecycle, authority, credential, adoption, Milestone,
|
|
9
|
+
strict-review, corrective-replan, Git ownership, and observation-purity regression.
|
|
10
|
+
- `npm run pack:check` passed with an isolated temporary npm cache. The tarball contains 247 files,
|
|
11
|
+
including `dist/src/dependency-provenance.js` and the packaged plugin
|
|
12
|
+
`scripts/chat-registry.mjs`; package size is 1.0 MB and unpacked size is 3.6 MB.
|
|
13
|
+
- `npm run smoke:downstream` packed and installed the actual beta.9 tarball in an empty project,
|
|
14
|
+
then passed the packaged CLI handshake. The first sandboxed attempt was network-blocked while
|
|
15
|
+
fetching `ajv`; the authorized network retry passed.
|
|
16
|
+
- `npm run plugin:check`, the plugin-creator structural validator, and `npm run release:check`
|
|
17
|
+
passed. After final registry-integrity hardening, the source cachebuster is
|
|
18
|
+
`0.1.0+codex.20260822111400` and the personal marketplace installation is
|
|
19
|
+
`0.1.0+codex.20260822111422`.
|
|
20
|
+
|
|
21
|
+
## beta.9 recovery evidence
|
|
22
|
+
|
|
23
|
+
- One clean local Task branch with exactly one unregistered dependency-only HEAD is eligible only
|
|
24
|
+
after runtime, manifest, lock, installed package, current branch, and Milestone base all equal
|
|
25
|
+
beta.9 and no Step, lease, transaction, or Core operation is active.
|
|
26
|
+
- Recovery records the exact HEAD in `systemCommits` with an audit record and does not create,
|
|
27
|
+
amend, reset, merge, or otherwise mutate Git history. An uncertain-response retry is idempotent.
|
|
28
|
+
- A commit containing a product file, a candidate whose Milestone base remains stale, and a
|
|
29
|
+
same-version candidate whose dependency payload differs from the updated base all fail closed.
|
|
30
|
+
|
|
31
|
+
## Progress and replacement evidence
|
|
32
|
+
|
|
33
|
+
- `milestone progress --id <MS-ID>` is byte-pure and returns stable Task/Step ordinals, exact state,
|
|
34
|
+
required/completed counts, membership disposition, and replacement links.
|
|
35
|
+
- The regression fixture retains eight rows and proves `T03 cancelled → T08 replacement` without
|
|
36
|
+
reusing the historical ordinal. T04 exposes exact S01/S02 status and completed counts.
|
|
37
|
+
|
|
38
|
+
## Chat registry and live Codex App E2E
|
|
39
|
+
|
|
40
|
+
- Automated tests cover all six title families, atomic concurrent allocation, non-reuse of
|
|
41
|
+
abandoned numbers, long Cyrillic semantic titles, multiple review attempts, exact readback,
|
|
42
|
+
deterministic fallback, and verified thread binding.
|
|
43
|
+
- Live App Tasks `01a02928-0436-7af2-a1b9-a969226d50d9`,
|
|
44
|
+
`01a02928-3d39-7673-8e08-6d4ed0f8d554`, and
|
|
45
|
+
`01a02928-58a0-7e03-b487-f8877b7f76d8` exercised Task, Step Review A1, and Step Review A2.
|
|
46
|
+
Codex truncated every long primary title. Registry fallback converged to one exact Task title and
|
|
47
|
+
the compact exact reviewer titles `#004·M03/T04/S02·SR1·<TASK-ID>` and
|
|
48
|
+
`#005·M03/T04/S02·SR2·<TASK-ID>`, retaining full authoritative IDs. All three registry entries
|
|
49
|
+
were verified, bound to their thread/host IDs, completed read-only, and archived.
|
|
50
|
+
- Every live Task found and validated the then-installed `…20260822110519` SKILL content, including
|
|
51
|
+
project-monotonic `#NNN`, compact review attempts, readback/fallback, and Task/Milestone progress
|
|
52
|
+
instructions.
|
|
53
|
+
|
|
54
|
+
## External blocker retained
|
|
55
|
+
|
|
56
|
+
The Codex App skill catalog still injected the stale pre-install path
|
|
57
|
+
`0.1.0+codex.20260822065726` into all three newly created Tasks even though `codex plugin list` and
|
|
58
|
+
the installed cache root reported `0.1.0+codex.20260822110519` at E2E time. The stale path no longer existed;
|
|
59
|
+
the Tasks located the actual installation through a read-only cache search. This reproduces
|
|
60
|
+
WF-STABLE-025 and is an App runtime/catalog invalidation defect, not a beta.9 package or registry
|
|
61
|
+
failure. Therefore the live title/registry/content E2E passed, but automatic fresh skill-path
|
|
62
|
+
injection remains blocked until the App runtime is restarted or its catalog invalidation is fixed.
|
|
63
|
+
|
|
64
|
+
## Not claimed
|
|
65
|
+
|
|
66
|
+
- No npm publication, Git tag, push, or Signal Workflow-state mutation was performed.
|
|
67
|
+
- No manual rewrite of external Workflow state is part of dependency-provenance recovery.
|
|
68
|
+
- A successful personal plugin reinstall does not by itself prove that the currently running Codex
|
|
69
|
+
App process invalidated its cached skill catalog; live readback is required and currently fails as
|
|
70
|
+
documented above.
|
package/package.json
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codex-workflow-gateway",
|
|
3
|
-
"version": "0.1.0",
|
|
3
|
+
"version": "0.1.0+codex.20260822111400",
|
|
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"
|
|
7
7
|
},
|
|
8
8
|
"license": "MIT",
|
|
9
|
-
"keywords": [
|
|
9
|
+
"keywords": [
|
|
10
|
+
"codex",
|
|
11
|
+
"workflow",
|
|
12
|
+
"codebase-memory",
|
|
13
|
+
"gateway"
|
|
14
|
+
],
|
|
10
15
|
"skills": "./skills/",
|
|
11
16
|
"interface": {
|
|
12
17
|
"displayName": "Codex Workflow Gateway",
|
|
@@ -14,7 +19,9 @@
|
|
|
14
19
|
"longDescription": "Resolves the exact project-local Codex Workflow V2 package, delegates workflow semantics to its CLI, and maintains derived codebase-memory graph bindings with explicit fallback evidence.",
|
|
15
20
|
"developerName": "Codex Workflow Maintainers",
|
|
16
21
|
"category": "Productivity",
|
|
17
|
-
"capabilities": [
|
|
22
|
+
"capabilities": [
|
|
23
|
+
"Interactive"
|
|
24
|
+
],
|
|
18
25
|
"defaultPrompt": [
|
|
19
26
|
"Show the next valid Codex Workflow V2 action.",
|
|
20
27
|
"Refresh the project code graph for planning.",
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
# Gateway Protocol
|
|
1
|
+
# Gateway Protocol V2
|
|
2
|
+
|
|
3
|
+
## beta.9 coordinator projections and chat registry
|
|
4
|
+
|
|
5
|
+
- `update dependency-provenance-preflight --id <TASK-ID>` is read-only. The matching
|
|
6
|
+
`update dependency-provenance-recover --id <TASK-ID> --expected-revision <N> --actor <ACTOR>
|
|
7
|
+
--reason <TEXT>` is valid only when preflight and fresh `next` both advertise it.
|
|
8
|
+
- `milestone progress --id <MS-ID>` is a read-only projection and the sole source for Coordinator
|
|
9
|
+
progress tables. It preserves cancelled/replacement Tasks as distinct membership rows.
|
|
10
|
+
- `scripts/chat-registry.mjs` atomically allocates project-monotonic `#NNN`, builds all six title
|
|
11
|
+
families, verifies exact readback, supplies deterministic fallbacks, and binds the verified chat.
|
|
2
12
|
|
|
3
13
|
## Handshake
|
|
4
14
|
|
|
@@ -11,7 +21,7 @@ codex-workflow gateway handshake --repo <git-root>
|
|
|
11
21
|
Require:
|
|
12
22
|
|
|
13
23
|
- package name `codex-workflow-v2`
|
|
14
|
-
- protocol version `
|
|
24
|
+
- protocol version `2`
|
|
15
25
|
- state schema version `2`
|
|
16
26
|
- the capabilities needed for the requested operation
|
|
17
27
|
|
|
@@ -29,6 +39,8 @@ Current capability set:
|
|
|
29
39
|
- `project-composite-transaction-journal-v1`
|
|
30
40
|
- `corrective-plan-audit-v1`
|
|
31
41
|
- `safe-update-preflight-v1`
|
|
42
|
+
- `bounded-dependency-provenance-recovery-v1`
|
|
43
|
+
- `milestone-progress-projection-v1`
|
|
32
44
|
- `strict-reviewer-v1`
|
|
33
45
|
- `legacy-snapshot-v1`
|
|
34
46
|
- `plan-risk-audit-sidecar-v1`
|