@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.
Files changed (45) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/README.md +25 -12
  3. package/docs/README.md +2 -0
  4. package/docs/agents/wave-design-role.md +47 -0
  5. package/docs/concepts/what-is-a-wave.md +11 -7
  6. package/docs/guides/author-and-run-waves.md +24 -0
  7. package/docs/guides/planner.md +44 -0
  8. package/docs/plans/current-state.md +5 -1
  9. package/docs/plans/end-state-architecture.md +7 -2
  10. package/docs/plans/examples/wave-example-design-handoff.md +262 -0
  11. package/docs/plans/examples/wave-example-live-proof.md +1 -1
  12. package/docs/plans/migration.md +208 -75
  13. package/docs/plans/wave-orchestrator.md +13 -3
  14. package/docs/reference/cli-reference.md +12 -0
  15. package/docs/reference/npmjs-trusted-publishing.md +2 -2
  16. package/docs/reference/sample-waves.md +14 -7
  17. package/docs/reference/skills.md +10 -0
  18. package/package.json +1 -1
  19. package/releases/manifest.json +19 -0
  20. package/scripts/wave-orchestrator/agent-state.mjs +64 -0
  21. package/scripts/wave-orchestrator/config.mjs +5 -0
  22. package/scripts/wave-orchestrator/coordination.mjs +42 -1
  23. package/scripts/wave-orchestrator/gate-engine.mjs +106 -2
  24. package/scripts/wave-orchestrator/install.mjs +3 -0
  25. package/scripts/wave-orchestrator/launcher-runtime.mjs +7 -1
  26. package/scripts/wave-orchestrator/launcher.mjs +55 -1
  27. package/scripts/wave-orchestrator/ledger.mjs +56 -27
  28. package/scripts/wave-orchestrator/local-executor.mjs +37 -0
  29. package/scripts/wave-orchestrator/planner.mjs +24 -4
  30. package/scripts/wave-orchestrator/result-envelope.mjs +32 -1
  31. package/scripts/wave-orchestrator/retry-control.mjs +17 -2
  32. package/scripts/wave-orchestrator/retry-engine.mjs +85 -0
  33. package/scripts/wave-orchestrator/role-helpers.mjs +73 -1
  34. package/scripts/wave-orchestrator/shared.mjs +1 -0
  35. package/scripts/wave-orchestrator/skills.mjs +1 -0
  36. package/scripts/wave-orchestrator/task-entity.mjs +65 -45
  37. package/scripts/wave-orchestrator/wave-files.mjs +85 -1
  38. package/scripts/wave-orchestrator/wave-state-reducer.mjs +24 -7
  39. package/skills/README.md +7 -0
  40. package/skills/role-design/SKILL.md +50 -0
  41. package/skills/role-design/skill.json +36 -0
  42. package/skills/tui-design/SKILL.md +77 -0
  43. package/skills/tui-design/references/tui-design.md +259 -0
  44. package/skills/tui-design/skill.json +36 -0
  45. package/wave.config.json +15 -1
@@ -1,157 +1,287 @@
1
1
  # Migration
2
2
 
3
- This page is the operator-facing upgrade guide for adopting repos. It explains how to move from older Wave package versions onto the current `0.8.4` surface without guessing which files are package-owned, which files are repo-owned, and which validations to trust after the bump.
3
+ This page is the practical repo-upgrade guide for the current `0.8.5` surface.
4
4
 
5
- For the completed internal architecture cutover record, see [architecture-hardening-migration.md](./architecture-hardening-migration.md). That document is historical. This one is the practical repo-upgrade checklist.
5
+ Use it when you are:
6
6
 
7
- ## What `0.8.4` Changes
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
- `0.8.4` is a hardening release, not a new authoring model.
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
- - contradiction replay no longer depends on component-matrix parsing when the trace does not declare promoted components
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
- There are no new CLI flags or wave-file section requirements in `0.8.4`.
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 in `node_modules`.
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 repo-specific reference docs.
23
- - `.tmp/<lane>-wave-launcher/` is runtime state, not migration source of truth. Do not treat old generated artifacts as the thing to preserve.
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
- ## Default Adoption Path
36
+ ## Package-Owned vs Repo-Owned
26
37
 
27
- Use this when the repo is not already running Wave or you are replacing a very old local starter copy.
38
+ Treat these as package-owned starter surface unless your repo intentionally copied and now maintains them:
28
39
 
29
- 1. Install the package from npmjs with `pnpm add -D @chllming/wave-orchestration`.
30
- 2. For a fresh repo, run `pnpm exec wave init`.
31
- 3. For a repo that already owns Wave config, docs, or waves, run `pnpm exec wave init --adopt-existing`.
32
- 4. Review `wave.config.json` for docs roots, roles, validation thresholds, executor defaults, skill attachments, Context7 bundles, and component-cutover matrix paths.
33
- 5. Replace starter sample plans, starter skills, and starter prompts with repo-owned versions where needed.
34
- 6. Run the validation checklist in this doc before the first live launcher run.
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
- GitHub Packages remains an authenticated fallback install path, but npmjs is the default public distribution channel.
49
+ Treat these as repo-owned operational surface:
37
50
 
38
- ## Safe Upgrade Flow For Any Existing Repo
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
- Use this flow before the version-specific sections below.
59
+ ## Safe Upgrade Flow For Any Existing Repo
41
60
 
42
- ### 1. Upgrade When The Lane Is Idle
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 a repo is stranded after a prior crash, inspect `wave control status` first, then decide whether to relaunch or reconcile on the upgraded package.
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 The Package
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 Repo-Owned Starter Surface Only If You Copied It
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
- - runtime and closure-role starter skills under `skills/`
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
- If your repo never copied those starter files, do not invent migration work. The installed package already carries the new runtime behavior.
97
+ - `roles.designRolePromptPath`
98
+ - `skills.byRole.design`
99
+ - `executors.profiles.design-pass`
75
100
 
76
- ### 4. Re-validate Before A Live Run
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 an existing tmux-backed dashboard after the upgrade.
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.4`
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 migration.
200
+ This is the smallest upgrade that still changes authored behavior.
94
201
 
95
202
  ### What changed
96
203
 
97
- - contradiction replay for non-promoted traces is now independent of component-matrix parsing
98
- - component-promotion threshold handling is now consistent between proof validation and matrix-current-level validation
99
- - projection output writes are centralized in `projection-writer.mjs`
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 for wave shape, config keys, or CLI usage.
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
- ### Recommended checks
227
+ ### Validation focus
228
+
229
+ If the repo uses design stewards, dry-run at least one wave that proves:
106
230
 
107
- 1. Re-run `pnpm exec wave doctor`.
108
- 2. Re-run `pnpm exec wave launch --lane main --dry-run --no-dashboard`.
109
- 3. If your repo copied starter architecture docs or starter skills, sync them so local runbooks stop describing the older split projection behavior.
110
- 4. If you keep historical trace fixtures, replay at least one contradiction-blocked trace and one promoted-component trace after the upgrade.
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.2` To `0.8.4`
237
+ ## Upgrading From `0.8.0`-`0.8.4` To `0.8.5`
113
238
 
114
- Treat this as one upgrade to the current surface.
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 `wave control status` projection hardened in `0.8.2`
119
- - human-input reconciliation and ad-hoc `--run <id>` context hardening landed in `0.8.3`
120
- - contradiction replay, component-threshold consistency, and projection-writer centralization landed in `0.8.4`
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 upstream starter docs or skills, sync:
255
+ If your repo copied starter docs or skills, sync:
129
256
 
130
- - the current operator runbook and architecture docs
131
- - the launcher and orchestrator role prompts
132
- - the relevant runtime skills and closure-role starter skills
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 trace-based regression checks
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.4`
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` remain distinct closure roles; older overloaded evaluator language should be removed
148
- - planner corpus files are now treated as required starter surface for repos that use planner workflows
149
- - live closure depends on validated result envelopes plus canonical state, not only older summary-era behavior
150
- - control-plane state, reducer state, and replay are now first-class runtime surfaces, not optional internals
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 any legacy `evaluator` role/config terminology to `cont-QA`.
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 internal runbooks that still describe one overloaded evaluator role, marker-era closure, or pre-control-plane retry/proof workflow.
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 your repo carries proof-first waves, verify that required proof artifacts are still present locally and not only in historical summaries.
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.4`
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. Re-run the full validation checklist before any live executor run.
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 it previously copied
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 wave files now declare closure roles or eval targets inconsistently with the current runtime
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, or human-input state
265
- - do not trust old generated markdown alone
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.4` does not introduce a new authoring model. It hardens replay, makes component-promotion thresholds behave consistently, and finishes the projection-writer ownership boundary. 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, and runbooks so they describe the runtime the package now ships.
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 implementation fan-out.
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` and the `security-review` executor profile.
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.4` release procedure publishes through a repository Actions secret named `NPM_TOKEN`.
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.4`.
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 current 0.8.4 Wave surface."
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 current `0.8.4` authored Wave surface.
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.4` 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.
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 for `0.8.4`:
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 [docs/evals/README.md](../evals/README.md) if you want more background on benchmark target selection.
88
- 4. Read [docs/reference/live-proof-waves.md](./live-proof-waves.md) if you want more detail on proof-first `pilot-live` authoring.
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