@chllming/wave-orchestration 0.8.4 → 0.8.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.
- package/CHANGELOG.md +17 -1
- package/README.md +25 -12
- package/docs/README.md +2 -0
- package/docs/agents/wave-design-role.md +47 -0
- package/docs/concepts/what-is-a-wave.md +11 -7
- package/docs/guides/author-and-run-waves.md +24 -0
- package/docs/guides/planner.md +44 -0
- package/docs/plans/current-state.md +5 -1
- package/docs/plans/end-state-architecture.md +7 -2
- package/docs/plans/examples/wave-example-design-handoff.md +262 -0
- package/docs/plans/examples/wave-example-live-proof.md +1 -1
- package/docs/plans/migration.md +208 -75
- package/docs/plans/wave-orchestrator.md +13 -3
- package/docs/reference/cli-reference.md +12 -0
- package/docs/reference/npmjs-trusted-publishing.md +2 -2
- package/docs/reference/sample-waves.md +14 -7
- package/docs/reference/skills.md +10 -0
- package/package.json +1 -1
- package/releases/manifest.json +19 -0
- package/scripts/wave-orchestrator/agent-state.mjs +64 -0
- package/scripts/wave-orchestrator/config.mjs +5 -0
- package/scripts/wave-orchestrator/coordination.mjs +42 -1
- package/scripts/wave-orchestrator/gate-engine.mjs +106 -2
- package/scripts/wave-orchestrator/install.mjs +3 -0
- package/scripts/wave-orchestrator/launcher-runtime.mjs +7 -1
- package/scripts/wave-orchestrator/launcher.mjs +55 -1
- package/scripts/wave-orchestrator/ledger.mjs +56 -27
- package/scripts/wave-orchestrator/local-executor.mjs +37 -0
- package/scripts/wave-orchestrator/planner.mjs +24 -4
- package/scripts/wave-orchestrator/result-envelope.mjs +32 -1
- package/scripts/wave-orchestrator/retry-control.mjs +17 -2
- package/scripts/wave-orchestrator/retry-engine.mjs +85 -0
- package/scripts/wave-orchestrator/role-helpers.mjs +73 -1
- package/scripts/wave-orchestrator/shared.mjs +1 -0
- package/scripts/wave-orchestrator/skills.mjs +1 -0
- package/scripts/wave-orchestrator/task-entity.mjs +65 -45
- package/scripts/wave-orchestrator/wave-files.mjs +85 -1
- package/scripts/wave-orchestrator/wave-state-reducer.mjs +24 -7
- package/skills/README.md +7 -0
- package/skills/role-design/SKILL.md +50 -0
- package/skills/role-design/skill.json +36 -0
- package/skills/tui-design/SKILL.md +77 -0
- package/skills/tui-design/references/tui-design.md +259 -0
- package/skills/tui-design/skill.json +36 -0
- package/wave.config.json +15 -1
package/docs/plans/migration.md
CHANGED
|
@@ -1,157 +1,287 @@
|
|
|
1
1
|
# Migration
|
|
2
2
|
|
|
3
|
-
This page is the
|
|
3
|
+
This page is the practical repo-upgrade guide for the current `0.8.5` surface.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use it when you are:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- adopting Wave in a repo that already has local prompts, docs, or skills
|
|
8
|
+
- upgrading from an older package release
|
|
9
|
+
- deciding which files to sync from the starter surface and which files to leave repo-owned
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
For the completed internal architecture cutover record, see [architecture-hardening-migration.md](./architecture-hardening-migration.md). That document is historical. This one is the operator-facing upgrade checklist.
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
- `requireComponentPromotionsFromWave` now disables both component-promotion proof blocking and component-matrix current-level blocking before the configured threshold
|
|
13
|
-
- `projection-writer.mjs` is now the single persistence layer for projection outputs, while `derived-state-engine.mjs` computes those payloads without persisting them directly
|
|
14
|
-
- starter docs, release notes, README, and publishing guidance now describe the shipped runtime instead of transitional architecture claims
|
|
13
|
+
## What `0.8.5` Changes
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
`0.8.5` ships a new authored and runtime surface, not just a patch-level hardening change.
|
|
16
|
+
|
|
17
|
+
The biggest additions are:
|
|
18
|
+
|
|
19
|
+
- the optional `design` worker role is now part of the published package surface
|
|
20
|
+
- starter design bundles now ship in `docs/agents/wave-design-role.md`, `skills/role-design/`, and `skills/tui-design/`
|
|
21
|
+
- design stewards are docs-first by default, but a wave may explicitly give one implementation ownership
|
|
22
|
+
- hybrid design stewards now run in two phases:
|
|
23
|
+
- design packet first
|
|
24
|
+
- implementation follow-through second
|
|
25
|
+
- gates, retry or resume planning, reducer state, prompts, local smoke execution, and result envelopes now all agree on that hybrid-design contract
|
|
26
|
+
|
|
27
|
+
There are no new top-level CLI commands for `0.8.5`.
|
|
17
28
|
|
|
18
29
|
## Upgrade Contract
|
|
19
30
|
|
|
20
|
-
- `pnpm up @chllming/wave-orchestration` updates the runtime
|
|
31
|
+
- `pnpm up @chllming/wave-orchestration` updates the installed runtime.
|
|
21
32
|
- `pnpm exec wave upgrade` writes `.wave/install-state.json` and `.wave/upgrade-history/*` only.
|
|
22
|
-
- `wave upgrade` does not rewrite repo-owned `wave.config.json`, `docs/agents/*`, `docs/plans/waves/*`, `skills/*`, `docs/context7/*`, or
|
|
23
|
-
- `.tmp/<lane>-wave-launcher/` is runtime state, not migration source of truth. Do not
|
|
33
|
+
- `wave upgrade` does not rewrite repo-owned `wave.config.json`, `docs/agents/*`, `docs/plans/waves/*`, `skills/*`, `docs/context7/*`, or local runbooks.
|
|
34
|
+
- `.tmp/<lane>-wave-launcher/` is runtime state, not migration source of truth. Do not preserve old generated artifacts as if they were authored configuration.
|
|
24
35
|
|
|
25
|
-
##
|
|
36
|
+
## Package-Owned vs Repo-Owned
|
|
26
37
|
|
|
27
|
-
|
|
38
|
+
Treat these as package-owned starter surface unless your repo intentionally copied and now maintains them:
|
|
28
39
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
- `docs/agents/*.md`
|
|
41
|
+
- `skills/*`
|
|
42
|
+
- `docs/plans/current-state.md`
|
|
43
|
+
- `docs/plans/end-state-architecture.md`
|
|
44
|
+
- `docs/plans/wave-orchestrator.md`
|
|
45
|
+
- `docs/plans/migration.md`
|
|
46
|
+
- `docs/reference/*`
|
|
47
|
+
- `docs/context7/planner-agent/*`
|
|
35
48
|
|
|
36
|
-
|
|
49
|
+
Treat these as repo-owned operational surface:
|
|
37
50
|
|
|
38
|
-
|
|
51
|
+
- `wave.config.json`
|
|
52
|
+
- `docs/plans/waves/*.md`
|
|
53
|
+
- `docs/plans/waves/specs/*.json`
|
|
54
|
+
- repo-specific prompts, internal runbooks, and policy docs
|
|
55
|
+
- repository source code and deployment config
|
|
56
|
+
|
|
57
|
+
If your repo never copied a starter file, do not invent migration work for it. The installed package already ships the runtime behavior.
|
|
39
58
|
|
|
40
|
-
|
|
59
|
+
## Safe Upgrade Flow For Any Existing Repo
|
|
41
60
|
|
|
42
|
-
### 1. Upgrade
|
|
61
|
+
### 1. Upgrade when the lane is idle
|
|
43
62
|
|
|
44
63
|
- Prefer upgrading between waves, not mid-attempt.
|
|
45
64
|
- If a lane still has running sessions, finish or intentionally stop that attempt before changing package versions.
|
|
46
|
-
- If
|
|
65
|
+
- If the repo is stranded after a prior crash, inspect `wave control status` first and decide whether to relaunch or reconcile on the upgraded package.
|
|
47
66
|
|
|
48
|
-
### 2. Bump
|
|
67
|
+
### 2. Bump the package
|
|
49
68
|
|
|
50
69
|
```bash
|
|
51
70
|
pnpm up @chllming/wave-orchestration
|
|
52
71
|
pnpm exec wave upgrade
|
|
53
72
|
```
|
|
54
73
|
|
|
55
|
-
### 3. Sync
|
|
56
|
-
|
|
57
|
-
If your repo copied package-owned starter docs, prompts, or skills instead of treating them as read-only package material, sync the copied files that you still want to match upstream.
|
|
74
|
+
### 3. Sync repo-owned starter surface only if you copied it
|
|
58
75
|
|
|
59
|
-
The common sync set is:
|
|
76
|
+
The most common sync set for `0.8.5` is:
|
|
60
77
|
|
|
61
78
|
- `docs/agents/wave-launcher-role.md`
|
|
62
79
|
- `docs/agents/wave-orchestrator-role.md`
|
|
63
80
|
- `docs/agents/wave-planner-role.md`
|
|
81
|
+
- `docs/agents/wave-design-role.md`
|
|
64
82
|
- `skills/wave-core/`
|
|
65
83
|
- `skills/role-planner/`
|
|
66
|
-
-
|
|
84
|
+
- `skills/role-design/`
|
|
85
|
+
- `skills/tui-design/` when your repo wants the terminal or operator-surface design reference
|
|
67
86
|
- `docs/context7/planner-agent/`
|
|
68
87
|
- `docs/reference/wave-planning-lessons.md`
|
|
69
88
|
- `docs/plans/current-state.md`
|
|
70
89
|
- `docs/plans/end-state-architecture.md`
|
|
71
90
|
- `docs/plans/wave-orchestrator.md`
|
|
72
91
|
- `docs/plans/migration.md`
|
|
92
|
+
- `docs/reference/skills.md`
|
|
93
|
+
- `docs/reference/sample-waves.md`
|
|
94
|
+
|
|
95
|
+
If your repo copied starter `wave.config.json` defaults, also sync the design-role entries:
|
|
73
96
|
|
|
74
|
-
|
|
97
|
+
- `roles.designRolePromptPath`
|
|
98
|
+
- `skills.byRole.design`
|
|
99
|
+
- `executors.profiles.design-pass`
|
|
75
100
|
|
|
76
|
-
### 4. Re-validate
|
|
101
|
+
### 4. Re-validate before a live run
|
|
77
102
|
|
|
78
103
|
Run these from the repo root:
|
|
79
104
|
|
|
80
105
|
```bash
|
|
81
|
-
pnpm exec wave doctor
|
|
106
|
+
pnpm exec wave doctor --json
|
|
82
107
|
pnpm exec wave launch --lane main --dry-run --no-dashboard
|
|
83
108
|
pnpm exec wave control status --lane main --wave 0 --json
|
|
84
109
|
pnpm exec wave coord inbox --lane main --wave 0 --agent A1 --dry-run
|
|
85
110
|
```
|
|
86
111
|
|
|
87
|
-
Use `pnpm exec wave dashboard --lane <lane> --attach current` or `--attach global` when you need to reattach to
|
|
112
|
+
Use `pnpm exec wave dashboard --lane <lane> --attach current` or `--attach global` when you need to reattach to a tmux-backed dashboard after the upgrade.
|
|
113
|
+
|
|
114
|
+
## `0.8.5` Design-Steward Model
|
|
115
|
+
|
|
116
|
+
This is the main new behavior in the current `0.8.5` surface.
|
|
117
|
+
|
|
118
|
+
### Docs-first design stewards
|
|
119
|
+
|
|
120
|
+
Default design stewards:
|
|
121
|
+
|
|
122
|
+
- import `docs/agents/wave-design-role.md`
|
|
123
|
+
- own at least one packet path such as `docs/plans/waves/design/wave-<n>-<agentId>.md`
|
|
124
|
+
- stay docs or spec-first
|
|
125
|
+
- finish with `[wave-design] state=<ready-for-implementation|needs-clarification|blocked> ...`
|
|
126
|
+
|
|
127
|
+
### Hybrid design stewards
|
|
128
|
+
|
|
129
|
+
If the wave explicitly assigns non-packet ownership to a design agent, that agent becomes a hybrid design steward.
|
|
130
|
+
|
|
131
|
+
The runtime now treats that as:
|
|
132
|
+
|
|
133
|
+
1. a design pass first
|
|
134
|
+
2. then the same agent rejoins implementation with normal proof obligations
|
|
135
|
+
|
|
136
|
+
For a hybrid design steward, make sure the wave still includes:
|
|
137
|
+
|
|
138
|
+
- a design packet path
|
|
139
|
+
- any explicit implementation-owned paths
|
|
140
|
+
- `### Exit contract` when your lane validation requires it
|
|
141
|
+
- `### Components` when your lane validation requires them
|
|
142
|
+
- `### Proof artifacts` when the owned slice is proof-centric
|
|
143
|
+
|
|
144
|
+
The second pass must still re-emit `[wave-design]`, and it must also satisfy the normal implementation proof, doc-delta, and component-marker contract.
|
|
145
|
+
|
|
146
|
+
### Planner note
|
|
147
|
+
|
|
148
|
+
The interactive `wave draft` flow now supports `design` as a worker role and scaffolds the docs-first default path.
|
|
149
|
+
|
|
150
|
+
If you want a hybrid design steward today, the safest authoring paths are:
|
|
151
|
+
|
|
152
|
+
- edit the drafted wave manually
|
|
153
|
+
- or use an agentic planner payload that already declares the design agent's explicit implementation ownership
|
|
88
154
|
|
|
89
155
|
## Version-Specific Upgrade Guidance
|
|
90
156
|
|
|
91
|
-
## Upgrading From `0.8.3` To `0.8.
|
|
157
|
+
## Upgrading From `0.8.3` To `0.8.5`
|
|
158
|
+
|
|
159
|
+
This is the most common one-step package upgrade path.
|
|
160
|
+
|
|
161
|
+
### What changed across that range
|
|
162
|
+
|
|
163
|
+
- `0.8.4` tightened contradiction replay, component-promotion threshold handling, and projection persistence boundaries
|
|
164
|
+
- `0.8.5` ships the `design` worker role, the `role-design` and `tui-design` starter bundles, and the hybrid design-steward runtime model as part of the published package
|
|
165
|
+
- current operator and planner docs now describe the shipped surface directly instead of splitting behavior between a published package and newer `main`-only additions
|
|
166
|
+
|
|
167
|
+
### Required repo changes
|
|
168
|
+
|
|
169
|
+
Usually none if the repo does not copy starter prompts, skills, or planning docs.
|
|
170
|
+
|
|
171
|
+
### Strongly recommended sync
|
|
172
|
+
|
|
173
|
+
If the repo copied starter surface, sync:
|
|
174
|
+
|
|
175
|
+
- `docs/agents/wave-design-role.md`
|
|
176
|
+
- `skills/role-design/`
|
|
177
|
+
- `skills/tui-design/`
|
|
178
|
+
- `docs/guides/author-and-run-waves.md`
|
|
179
|
+
- `docs/guides/planner.md`
|
|
180
|
+
- `docs/reference/skills.md`
|
|
181
|
+
- `docs/reference/sample-waves.md`
|
|
182
|
+
- `docs/plans/current-state.md`
|
|
183
|
+
- `docs/plans/wave-orchestrator.md`
|
|
184
|
+
- `docs/plans/end-state-architecture.md`
|
|
185
|
+
|
|
186
|
+
If the repo copied starter `wave.config.json` defaults, also sync:
|
|
187
|
+
|
|
188
|
+
- `roles.designRolePromptPath`
|
|
189
|
+
- `skills.byRole.design`
|
|
190
|
+
- `executors.profiles.design-pass`
|
|
191
|
+
|
|
192
|
+
### Validation focus
|
|
193
|
+
|
|
194
|
+
- confirm contradiction-blocked replay cases still compare cleanly if the repo keeps replay fixtures
|
|
195
|
+
- if the repo uses design stewards, confirm packet-only design waves still block implementation until `ready-for-implementation`
|
|
196
|
+
- if the repo uses hybrid design stewards, confirm the same agent rejoins implementation only when the authored wave explicitly gives it code ownership
|
|
197
|
+
|
|
198
|
+
## Upgrading From `0.8.4` To `0.8.5`
|
|
92
199
|
|
|
93
|
-
This is the smallest
|
|
200
|
+
This is the smallest upgrade that still changes authored behavior.
|
|
94
201
|
|
|
95
202
|
### What changed
|
|
96
203
|
|
|
97
|
-
-
|
|
98
|
-
-
|
|
99
|
-
-
|
|
204
|
+
- the optional `design` worker role is now part of the published package surface
|
|
205
|
+
- `role-design` and `tui-design` starter bundles now ship with the release
|
|
206
|
+
- design stewards can now be docs-first or explicit hybrid design stewards
|
|
207
|
+
- prompts, gates, retry or resume planning, reducer state, and local smoke execution now honor that hybrid-design contract consistently
|
|
100
208
|
|
|
101
209
|
### Required repo changes
|
|
102
210
|
|
|
103
|
-
None
|
|
211
|
+
None if your repo does not use design stewards.
|
|
212
|
+
|
|
213
|
+
### Strongly recommended sync
|
|
214
|
+
|
|
215
|
+
If your repo copied starter prompts, skills, or authoring docs, sync:
|
|
216
|
+
|
|
217
|
+
- `docs/agents/wave-design-role.md`
|
|
218
|
+
- `skills/role-design/`
|
|
219
|
+
- `skills/tui-design/`
|
|
220
|
+
- `docs/guides/author-and-run-waves.md`
|
|
221
|
+
- `docs/guides/planner.md`
|
|
222
|
+
- `docs/reference/skills.md`
|
|
223
|
+
- `docs/reference/sample-waves.md`
|
|
224
|
+
|
|
225
|
+
If your repo copied starter config defaults, also sync the `designRolePromptPath`, `skills.byRole.design`, and `design-pass` profile entries.
|
|
104
226
|
|
|
105
|
-
###
|
|
227
|
+
### Validation focus
|
|
228
|
+
|
|
229
|
+
If the repo uses design stewards, dry-run at least one wave that proves:
|
|
106
230
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
231
|
+
- the design packet path resolves inside the repo
|
|
232
|
+
- design runs before implementation
|
|
233
|
+
- implementation does not start until every design packet is `ready-for-implementation`
|
|
234
|
+
- hybrid design stewards rejoin implementation when they explicitly own code
|
|
235
|
+
- downstream implementation prompts read the same-wave design packet context
|
|
111
236
|
|
|
112
|
-
## Upgrading From `0.8.0`-`0.8.
|
|
237
|
+
## Upgrading From `0.8.0`-`0.8.4` To `0.8.5`
|
|
113
238
|
|
|
114
|
-
Treat this as one
|
|
239
|
+
Treat this as one move to the current `0.8.5` surface.
|
|
115
240
|
|
|
116
241
|
### What changed across that range
|
|
117
242
|
|
|
118
|
-
- completed-wave
|
|
119
|
-
- human-input reconciliation and
|
|
120
|
-
- contradiction replay
|
|
243
|
+
- completed-wave control projections hardened
|
|
244
|
+
- human-input reconciliation and continuation repair landed
|
|
245
|
+
- contradiction replay and component-threshold handling were tightened
|
|
246
|
+
- projection persistence centralized under `projection-writer.mjs`
|
|
247
|
+
- the design-role surface is now shipped instead of living only on source `main`
|
|
121
248
|
|
|
122
249
|
### Required repo changes
|
|
123
250
|
|
|
124
|
-
Usually none for config shape.
|
|
251
|
+
Usually none for core config shape.
|
|
125
252
|
|
|
126
253
|
### Strongly recommended sync
|
|
127
254
|
|
|
128
|
-
If your repo copied
|
|
255
|
+
If your repo copied starter docs or skills, sync:
|
|
129
256
|
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
-
|
|
257
|
+
- current operator runbook and architecture docs
|
|
258
|
+
- planner starter corpus
|
|
259
|
+
- design-role starter prompt and skill bundles
|
|
260
|
+
- any repo-local docs that still describe design as “main only” or “future”
|
|
133
261
|
|
|
134
262
|
### Validation focus
|
|
135
263
|
|
|
136
264
|
- check that completed waves do not show stale blockers through `wave control status`
|
|
137
265
|
- answer at least one human-feedback ticket in a test lane and confirm the linked clarification or escalation chain closes cleanly
|
|
138
|
-
- replay one contradiction-blocked trace if your repo relies on
|
|
266
|
+
- replay one contradiction-blocked trace if your repo relies on replay regression coverage
|
|
267
|
+
- dry-run one design-steward wave if the repo wants the new authored surface
|
|
139
268
|
|
|
140
|
-
## Upgrading From `0.6.x` Or `0.7.x` To `0.8.
|
|
269
|
+
## Upgrading From `0.6.x` Or `0.7.x` To `0.8.5`
|
|
141
270
|
|
|
142
271
|
This is the main migration path for older adopted repos.
|
|
143
272
|
|
|
144
273
|
### Behavioral changes you must account for
|
|
145
274
|
|
|
146
275
|
- `wave control` is the preferred operator surface for status, rerun, proof, and telemetry work
|
|
147
|
-
- `cont-QA` and optional `cont-EVAL`
|
|
148
|
-
- planner
|
|
149
|
-
- live closure depends on validated result envelopes plus canonical state
|
|
150
|
-
- control-plane state, reducer state, and replay are
|
|
276
|
+
- `cont-QA` and optional `cont-EVAL` are distinct closure roles
|
|
277
|
+
- planner starter files are now treated as required repo-owned surface when the repo uses planner workflows
|
|
278
|
+
- live closure depends on validated result envelopes plus canonical state
|
|
279
|
+
- control-plane state, reducer state, and replay are first-class runtime surfaces
|
|
280
|
+
- optional design stewards are now a supported authored shape
|
|
151
281
|
|
|
152
282
|
### Required repo changes
|
|
153
283
|
|
|
154
|
-
1. Remove or rename
|
|
284
|
+
1. Remove or rename legacy `evaluator` terminology to `cont-QA`.
|
|
155
285
|
2. Keep `A0` as the final closure owner and add `E0` only when the wave needs eval-driven tuning.
|
|
156
286
|
3. Add wave-level `## Eval targets` whenever `cont-EVAL` is present.
|
|
157
287
|
4. Sync the planner starter corpus if the repo uses `wave project` or `wave draft`:
|
|
@@ -160,7 +290,8 @@ This is the main migration path for older adopted repos.
|
|
|
160
290
|
- `docs/context7/planner-agent/`
|
|
161
291
|
- `docs/reference/wave-planning-lessons.md`
|
|
162
292
|
- the `planner-agentic` entry in `docs/context7/bundles.json`
|
|
163
|
-
5. Review any repo-owned docs or
|
|
293
|
+
5. Review any repo-owned docs or runbooks that still describe summary-era closure, pre-control-plane retry or proof behavior, or a single overloaded evaluator role.
|
|
294
|
+
6. If the repo wants design stewards, sync the design starter surface listed above and update local authoring docs accordingly.
|
|
164
295
|
|
|
165
296
|
### Additional validation
|
|
166
297
|
|
|
@@ -172,9 +303,9 @@ pnpm exec wave control rerun get --lane main --wave 0 --json
|
|
|
172
303
|
pnpm exec wave control proof get --lane main --wave 0 --json
|
|
173
304
|
```
|
|
174
305
|
|
|
175
|
-
If
|
|
306
|
+
If the repo carries proof-first waves, verify that required proof artifacts still exist locally and not only in historical summaries.
|
|
176
307
|
|
|
177
|
-
## Upgrading From `0.5.x` Or Earlier To `0.8.
|
|
308
|
+
## Upgrading From `0.5.x` Or Earlier To `0.8.5`
|
|
178
309
|
|
|
179
310
|
Do not treat this as a tiny patch bump.
|
|
180
311
|
|
|
@@ -183,7 +314,8 @@ Do not treat this as a tiny patch bump.
|
|
|
183
314
|
1. Read [docs/reference/migration-0.2-to-0.5.md](../reference/migration-0.2-to-0.5.md) first if the repo still looks pre-`0.5`.
|
|
184
315
|
2. Run `pnpm exec wave init --adopt-existing` on a branch so the workspace records install state without overwriting repo-owned material.
|
|
185
316
|
3. Move the repo onto the `0.6.x` and later surface using the section above.
|
|
186
|
-
4.
|
|
317
|
+
4. Sync the planner corpus and, if needed, the design starter surface.
|
|
318
|
+
5. Re-run the full validation checklist before any live executor run.
|
|
187
319
|
|
|
188
320
|
### Why
|
|
189
321
|
|
|
@@ -200,8 +332,6 @@ Trying to jump directly with ad hoc edits usually leaves hidden drift in prompts
|
|
|
200
332
|
|
|
201
333
|
## Repo-Owned Files To Audit During Any Upgrade
|
|
202
334
|
|
|
203
|
-
These are the highest-value files to check when a repo copied starter surface instead of reading from the package.
|
|
204
|
-
|
|
205
335
|
### Prompts and skills
|
|
206
336
|
|
|
207
337
|
- `docs/agents/*.md`
|
|
@@ -218,11 +348,13 @@ These are the highest-value files to check when a repo copied starter surface in
|
|
|
218
348
|
- `docs/reference/cli-reference.md`
|
|
219
349
|
- `docs/reference/wave-control.md`
|
|
220
350
|
- `docs/reference/sample-waves.md`
|
|
351
|
+
- `docs/reference/skills.md`
|
|
221
352
|
|
|
222
353
|
### Config and wave contracts
|
|
223
354
|
|
|
224
355
|
- `wave.config.json`
|
|
225
356
|
- `docs/plans/waves/*.md`
|
|
357
|
+
- `docs/plans/waves/specs/*.json`
|
|
226
358
|
- `docs/evals/benchmark-catalog.json`
|
|
227
359
|
- component-cutover matrix files under `docs/plans/`
|
|
228
360
|
|
|
@@ -254,22 +386,23 @@ For repos that depend on replay parity, replay at least:
|
|
|
254
386
|
|
|
255
387
|
### `wave doctor` fails after the upgrade
|
|
256
388
|
|
|
257
|
-
- check whether the repo is missing planner starter surface
|
|
389
|
+
- check whether the repo is missing copied planner starter surface
|
|
258
390
|
- check whether old `evaluator` naming is still present in config or prompts
|
|
259
|
-
- check whether
|
|
391
|
+
- check whether local docs still describe unpublished main-branch behavior instead of the current package surface
|
|
392
|
+
- if the repo uses hybrid design stewards, check that each one still owns a design packet path and any required implementation-contract fields
|
|
260
393
|
|
|
261
394
|
### A live lane looks blocked after the bump
|
|
262
395
|
|
|
263
396
|
- use `wave control status --lane <lane> --wave <n> --json`
|
|
264
|
-
- confirm whether the blocker is canonical coordination, dependency, proof,
|
|
265
|
-
- do not trust
|
|
397
|
+
- confirm whether the blocker is canonical coordination, dependency, proof, human-input, or design-gate state
|
|
398
|
+
- do not trust generated markdown alone
|
|
266
399
|
|
|
267
400
|
### Replay differs from old expectations
|
|
268
401
|
|
|
269
402
|
- verify whether the trace declares promoted components
|
|
270
|
-
- verify whether the repo relied on pre-`0.8.4` component-threshold behavior
|
|
271
403
|
- compare `storedOutcome.gateSnapshot` against recomputed replay output before changing live policy
|
|
404
|
+
- if the repo copied local replay docs, update them to the current reducer and envelope model
|
|
272
405
|
|
|
273
406
|
## Summary
|
|
274
407
|
|
|
275
|
-
`0.8.
|
|
408
|
+
The current `0.8.5` surface keeps the same authority-set and phase-engine architecture, but it now ships the design-role starter surface and the hybrid design-steward runtime model as part of the published package. For most repos already on `0.8.x`, the upgrade is package bump plus validation. For older adopted repos, the real work is syncing repo-owned prompts, skills, planner corpus, and runbooks so they describe the runtime the package now ships.
|
|
@@ -19,7 +19,7 @@ The live runtime is organized around explicit modules:
|
|
|
19
19
|
- `launcher.mjs`
|
|
20
20
|
Thin orchestrator for CLI parsing, launcher lock handling, wave iteration, and engine sequencing.
|
|
21
21
|
- `implementation-engine.mjs`
|
|
22
|
-
Chooses initial or retry
|
|
22
|
+
Chooses initial or retry fan-out, including optional design-first passes before code-owning implementation.
|
|
23
23
|
- `derived-state-engine.mjs`
|
|
24
24
|
Computes shared summary, inbox, assignment, dependency, ledger, docs queue, and integration or security projection payloads from canonical state.
|
|
25
25
|
- `gate-engine.mjs`
|
|
@@ -41,6 +41,7 @@ The live runtime is organized around explicit modules:
|
|
|
41
41
|
- supports transient ad-hoc runs from `.wave/adhoc/runs/` on the same runtime substrate
|
|
42
42
|
- fans a wave out into one session per `## Agent ...` section
|
|
43
43
|
- supports standing role imports from `docs/agents/*.md`
|
|
44
|
+
- supports optional pre-implementation design stewards that publish design packets before code-owning implementation starts
|
|
44
45
|
- seeds a coordination log, generated board, compiled shared summary, and per-agent inboxes
|
|
45
46
|
- derives a per-wave ledger, security summary, docs queue, integration summary, and versioned per-attempt trace bundle
|
|
46
47
|
- versions the runtime JSON surfaces that operators and replay tooling consume, including manifests, dashboards, relaunch plans, assignment snapshots, dependency snapshots, and run-state
|
|
@@ -52,6 +53,7 @@ The live runtime is organized around explicit modules:
|
|
|
52
53
|
- can retry rate-limited `codex`, `claude`, and `opencode` launches with per-agent exponential backoff via `--agent-rate-limit-*`
|
|
53
54
|
- supports a file-backed human feedback queue
|
|
54
55
|
- performs a closure sweep so optional `cont-EVAL`, optional security review, integration, documentation, and cont-QA gates reflect final landed state through the wave's effective closure-role bindings
|
|
56
|
+
- treats design packets as a first-class pre-implementation gate when a wave declares `design` workers
|
|
55
57
|
- rebuilds contradiction blockers from canonical control-plane events during replay and materializes human-blocked waves as `clarifying` plus blocked `waveState`
|
|
56
58
|
|
|
57
59
|
## Main Commands
|
|
@@ -89,7 +91,7 @@ The live runtime is organized around explicit modules:
|
|
|
89
91
|
|
|
90
92
|
## Configuration
|
|
91
93
|
|
|
92
|
-
- `wave.config.json` controls docs roots, shared plan docs, role prompts, validation thresholds, executor defaults, executor profiles, per-lane runtime policy, skill attachment policy, component-cutover matrix paths, capability-routing preferences, Context7 bundle-index location, and the optional `waveControl` telemetry section. The starter config also wires the optional security reviewer prompt at `docs/agents/wave-security-role.md`
|
|
94
|
+
- `wave.config.json` controls docs roots, shared plan docs, role prompts, validation thresholds, executor defaults, executor profiles, per-lane runtime policy, skill attachment policy, component-cutover matrix paths, capability-routing preferences, Context7 bundle-index location, and the optional `waveControl` telemetry section. The starter config also wires the optional security reviewer prompt at `docs/agents/wave-security-role.md`, the optional design steward prompt at `docs/agents/wave-design-role.md`, plus the `security-review` and `design-pass` executor profiles.
|
|
93
95
|
- `docs/context7/bundles.json` controls allowed external library bundles and lane defaults.
|
|
94
96
|
- `docs/evals/README.md` explains how to author delegated versus pinned `## Eval targets`, including the coordination-oriented benchmark families.
|
|
95
97
|
- `docs/reference/live-proof-waves.md` explains how to author proof-first `pilot-live` and higher-maturity waves with `### Proof artifacts`, sticky executors, and operator command capture.
|
|
@@ -113,7 +115,7 @@ The live runtime is organized around explicit modules:
|
|
|
113
115
|
- Starter bundles in this repo cover:
|
|
114
116
|
- core Wave coordination and repo coding rules
|
|
115
117
|
- runtime packs for Codex, Claude, OpenCode, and local execution
|
|
116
|
-
- role packs for implementation, `cont-EVAL`, security review, integration, documentation, cont-QA, infra, deploy, research, and planner work
|
|
118
|
+
- role packs for design, implementation, `cont-EVAL`, security review, integration, documentation, cont-QA, infra, deploy, research, and planner work
|
|
117
119
|
- deploy and environment packs for Railway, Docker Compose, Kubernetes, SSH/manual rollout, and generic custom deploys
|
|
118
120
|
- explicit provider packs for GitHub release flow and AWS norms when a wave or lane wants to attach them
|
|
119
121
|
|
|
@@ -257,6 +259,8 @@ pnpm exec wave changelog --since-installed
|
|
|
257
259
|
Canonical append-only JSONL log of operator tasks, rerun requests, proof bundles, attempt lifecycle, contradictions, facts, and human-input events. This is the canonical lifecycle state for `wave control`. Telemetry queue lives under `control-plane/telemetry/`.
|
|
258
260
|
- result envelopes: `.tmp/<lane>-wave-launcher/results/`
|
|
259
261
|
Attempt-scoped immutable structured result snapshots used by reducer, gate, retry, and replay flows.
|
|
262
|
+
- design packets: `docs/plans/waves/design/`
|
|
263
|
+
Repo-owned authored outputs from optional design stewards. These are not runtime state, but the validated packet path is referenced by summaries, envelopes, reducer state, and traces.
|
|
260
264
|
- proof registries: `.tmp/<lane>-wave-launcher/proof/`
|
|
261
265
|
Projected from control-plane state for compatibility. Operator-registered authoritative proof bundles that feed integration, cont-QA, and replay.
|
|
262
266
|
- retry overrides: `.tmp/<lane>-wave-launcher/control/`
|
|
@@ -320,6 +324,12 @@ The launcher entrypoint in `scripts/wave-orchestrator/launcher.mjs` now acts as
|
|
|
320
324
|
- `## Deploy environments` lets the wave declare named deployment targets. The default deploy environment kind is also used for deploy-kind skill attachment.
|
|
321
325
|
- Lane runtime policy can assign a default executor by role even when the wave omits `### Executor`.
|
|
322
326
|
- Use `### Role prompts` for standing-role imports from `docs/agents/*.md`.
|
|
327
|
+
- Optional design stewards are declared by importing `docs/agents/wave-design-role.md` on a worker that owns a design packet.
|
|
328
|
+
- A design steward must own at least one design packet path, usually `docs/plans/waves/design/wave-<n>-<agentId>.md`.
|
|
329
|
+
- Design stewards are docs/spec-only by default. Keep source-code ownership on implementation agents unless the wave explicitly chooses otherwise.
|
|
330
|
+
- If the wave explicitly gives a design steward implementation-owned paths, that same agent becomes a hybrid design steward: it runs the packet pass first, then rejoins implementation and must satisfy the normal implementation proof contract.
|
|
331
|
+
- Design stewards that own terminal UX, dashboards, or other operator-surface work should add `tui-design` in `### Skills`.
|
|
332
|
+
- Design readiness requires one final structured marker: `[wave-design] state=<ready-for-implementation|needs-clarification|blocked> decisions=<n> assumptions=<n> open_questions=<n> detail=<short-note>`. Hybrid design stewards re-emit that marker during the later implementation pass so the latest envelope stays self-contained.
|
|
323
333
|
- Optional security review is declared by importing `docs/agents/wave-security-role.md` on a report-owning reviewer agent. The starter planner uses a report path under `.tmp/<lane>-wave-launcher/security/` and the `security-review` executor profile.
|
|
324
334
|
- A security reviewer must own at least one security report path. Any owned `.md` or `.txt` path containing `security` is accepted by the validator.
|
|
325
335
|
- Security reviewers are report-only by default. They should route fixes to the owning implementation agent instead of taking over product-code ownership.
|
|
@@ -534,6 +534,18 @@ wave draft --show-run <run-id>
|
|
|
534
534
|
wave draft --apply-run <run-id>
|
|
535
535
|
```
|
|
536
536
|
|
|
537
|
+
Interactive draft currently offers worker role kinds:
|
|
538
|
+
|
|
539
|
+
- `design`
|
|
540
|
+
- `implementation`
|
|
541
|
+
- `qa`
|
|
542
|
+
- `infra`
|
|
543
|
+
- `deploy`
|
|
544
|
+
- `research`
|
|
545
|
+
- `security`
|
|
546
|
+
|
|
547
|
+
Agentic planner payloads also accept `workerAgents[].roleKind = "design"`. The shipped `0.8.5` surface uses `design-pass` as the default executor profile for that role and typically assigns a packet path like `docs/plans/waves/design/wave-<n>-<agentId>.md`. Interactive draft scaffolds the docs-first default; hybrid design stewards are authored by explicitly adding implementation-owned paths and the normal implementation contract sections.
|
|
548
|
+
|
|
537
549
|
## Ad-Hoc Task Commands
|
|
538
550
|
|
|
539
551
|
**Plan and run ad-hoc tasks:**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This repo now includes a dedicated npmjs publish workflow at [publish-npm.yml](../../.github/workflows/publish-npm.yml).
|
|
4
4
|
|
|
5
|
-
The current `0.8.
|
|
5
|
+
The current `0.8.5` release procedure publishes through a repository Actions secret named `NPM_TOKEN`.
|
|
6
6
|
|
|
7
7
|
## What This Repo Already Does
|
|
8
8
|
|
|
@@ -48,6 +48,6 @@ If this repo later needs private npm dependencies during CI, consider a separate
|
|
|
48
48
|
2. Confirm `NPM_TOKEN` exists in the GitHub repo secrets.
|
|
49
49
|
3. Confirm the package version has been bumped and committed.
|
|
50
50
|
4. Confirm `README.md`, `CHANGELOG.md`, `releases/manifest.json`, and `docs/plans/migration.md` all describe the same release surface.
|
|
51
|
-
5. Push the release commit and release tag, for example `v0.8.
|
|
51
|
+
5. Push the release commit and release tag, for example `v0.8.5`.
|
|
52
52
|
6. Verify both `publish-npm.yml` and `publish-package.yml` start from the tag push.
|
|
53
53
|
7. Verify the npmjs publish completes successfully for the tagged source.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Sample Waves"
|
|
3
|
-
summary: "Showcase-first sample waves that demonstrate the
|
|
3
|
+
summary: "Showcase-first sample waves that demonstrate the shipped 0.8.5 authored surface, including the optional design-role path."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Sample Waves
|
|
7
7
|
|
|
8
|
-
This guide points to showcase-first sample waves that demonstrate the
|
|
8
|
+
This guide points to showcase-first sample waves that demonstrate the shipped `0.8.5` authored Wave surface.
|
|
9
9
|
|
|
10
10
|
The examples are intentionally denser than typical production waves. Their job is to teach the current authoring and runtime surface quickly, not to be the smallest possible launch-ready files.
|
|
11
11
|
|
|
@@ -15,7 +15,10 @@ The examples are intentionally denser than typical production waves. Their job i
|
|
|
15
15
|
Shows what a good `repo-landed` outcome looks like when one promoted component only closes honestly if desired-state records, reconcile-loop substrate, and cluster-view surfaces land together. It emphasizes maturity discipline, explicit deliverables, and shared-plan closure without drifting into `pilot-live` claims.
|
|
16
16
|
|
|
17
17
|
- [Full modern sample wave](../plans/examples/wave-example-live-proof.md)
|
|
18
|
-
Shows the combined `0.8.
|
|
18
|
+
Shows the combined `0.8.5` authored surface in one file: closure roles, `E0`, optional security review, delegated and pinned benchmark targets, richer executor config, `### Skills`, `### Capabilities`, `### Deliverables`, `### Exit contract`, `### Proof artifacts`, sticky retry, deploy environments, and proof-first live-wave structure.
|
|
19
|
+
|
|
20
|
+
- [Optional design-steward handoff wave](../plans/examples/wave-example-design-handoff.md)
|
|
21
|
+
Shows the shipped design-role surface: one pre-implementation design steward publishes a design packet, downstream implementation owners read that packet before coding, and normal closure roles still decide final completion. For terminal or operator-surface work, pair that shape with explicit `tui-design` in the design steward's `### Skills`. For the hybrid variant, explicitly give that same design agent implementation-owned paths and the normal implementation contract sections.
|
|
19
22
|
|
|
20
23
|
## What These Examples Teach
|
|
21
24
|
|
|
@@ -35,10 +38,11 @@ The examples are intentionally denser than typical production waves. Their job i
|
|
|
35
38
|
- sticky retry for proof-bearing owners
|
|
36
39
|
- deploy environments and provider-skill examples
|
|
37
40
|
- infra and deploy-verifier specialist slices
|
|
41
|
+
- optional pre-implementation design packets and design-to-implementation handoff
|
|
38
42
|
|
|
39
43
|
## Feature Coverage Map
|
|
40
44
|
|
|
41
|
-
Together these samples cover the main surfaces added or hardened
|
|
45
|
+
Together these samples cover the main surfaces added or hardened through `0.8.5`:
|
|
42
46
|
|
|
43
47
|
- repo-landed maturity discipline and anti-overclaim framing
|
|
44
48
|
- explicit shared-plan closure for future-wave safety
|
|
@@ -56,6 +60,7 @@ Together these samples cover the main surfaces added or hardened for `0.8.4`:
|
|
|
56
60
|
- proof-first live-wave prompts
|
|
57
61
|
- deploy environments and deploy-kind-aware skills
|
|
58
62
|
- integration, documentation, and cont-QA closure-role structure
|
|
63
|
+
- optional `design` worker role and `design-pass` executor profile
|
|
59
64
|
|
|
60
65
|
## When To Copy Literally Vs Adapt
|
|
61
66
|
|
|
@@ -76,6 +81,7 @@ Adapt more aggressively when:
|
|
|
76
81
|
## How This Example Maps To Other Docs
|
|
77
82
|
|
|
78
83
|
- Use [docs/guides/planner.md](../guides/planner.md) for the planner-generated baseline, then use these samples to see how a human would enrich the generated draft for either repo-landed or proof-first work.
|
|
84
|
+
- Use [Optional design-steward handoff wave](../plans/examples/wave-example-design-handoff.md) when the wave should start with a reusable design packet before implementation begins.
|
|
79
85
|
- Use [docs/evals/README.md](../evals/README.md) with the full modern sample when you need to see delegated and pinned benchmark targets in a real wave.
|
|
80
86
|
- Use [docs/reference/live-proof-waves.md](./live-proof-waves.md) with the full modern sample when you need proof-first authoring for `pilot-live` and above.
|
|
81
87
|
- Use [docs/plans/wave-orchestrator.md](../plans/wave-orchestrator.md) for the operational runbook that explains how the launcher interprets these sections.
|
|
@@ -83,9 +89,10 @@ Adapt more aggressively when:
|
|
|
83
89
|
## Suggested Reading Order
|
|
84
90
|
|
|
85
91
|
1. Start with [High-fidelity repo-landed rollout wave](../plans/examples/wave-example-rollout-fidelity.md) if you want the clearest example of good closure-ready wave fidelity for a repo-only outcome.
|
|
86
|
-
2. Read [Full modern sample wave](../plans/examples/wave-example-live-proof.md) if you want the denser proof-first and eval-heavy surface.
|
|
87
|
-
3. Read [
|
|
88
|
-
4. Read [docs/
|
|
92
|
+
2. Read [Full modern sample wave](../plans/examples/wave-example-live-proof.md) if you want the denser proof-first and eval-heavy `0.8.5` surface.
|
|
93
|
+
3. Read [Optional design-steward handoff wave](../plans/examples/wave-example-design-handoff.md) if the task needs a design packet before implementation fan-out.
|
|
94
|
+
4. Read [docs/evals/README.md](../evals/README.md) if you want more background on benchmark target selection.
|
|
95
|
+
5. Read [docs/reference/live-proof-waves.md](./live-proof-waves.md) if you want more detail on proof-first `pilot-live` authoring.
|
|
89
96
|
|
|
90
97
|
## Why These Examples Live In `docs/plans/examples/`
|
|
91
98
|
|