@chllming/wave-orchestration 0.8.4 → 0.8.6

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 (60) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/README.md +31 -13
  3. package/docs/README.md +4 -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/context7/bundles.json +19 -20
  7. package/docs/context7/planner-agent/README.md +4 -1
  8. package/docs/guides/author-and-run-waves.md +27 -0
  9. package/docs/guides/planner.md +46 -0
  10. package/docs/guides/signal-wrappers.md +165 -0
  11. package/docs/guides/terminal-surfaces.md +13 -0
  12. package/docs/plans/context7-wave-orchestrator.md +24 -7
  13. package/docs/plans/current-state.md +10 -2
  14. package/docs/plans/end-state-architecture.md +22 -5
  15. package/docs/plans/examples/wave-example-design-handoff.md +262 -0
  16. package/docs/plans/examples/wave-example-live-proof.md +1 -1
  17. package/docs/plans/migration.md +301 -75
  18. package/docs/plans/wave-orchestrator.md +16 -3
  19. package/docs/reference/cli-reference.md +22 -1
  20. package/docs/reference/npmjs-trusted-publishing.md +2 -2
  21. package/docs/reference/sample-waves.md +14 -7
  22. package/docs/reference/skills.md +18 -0
  23. package/docs/reference/wave-control.md +2 -0
  24. package/package.json +1 -1
  25. package/releases/manifest.json +38 -0
  26. package/scripts/context7-api-check.sh +57 -13
  27. package/scripts/wave-orchestrator/agent-state.mjs +64 -0
  28. package/scripts/wave-orchestrator/config.mjs +5 -0
  29. package/scripts/wave-orchestrator/control-cli.mjs +19 -0
  30. package/scripts/wave-orchestrator/coordination.mjs +77 -1
  31. package/scripts/wave-orchestrator/gate-engine.mjs +106 -2
  32. package/scripts/wave-orchestrator/install.mjs +5 -0
  33. package/scripts/wave-orchestrator/launcher-runtime.mjs +18 -1
  34. package/scripts/wave-orchestrator/launcher.mjs +75 -1
  35. package/scripts/wave-orchestrator/ledger.mjs +56 -27
  36. package/scripts/wave-orchestrator/local-executor.mjs +37 -0
  37. package/scripts/wave-orchestrator/planner.mjs +24 -4
  38. package/scripts/wave-orchestrator/result-envelope.mjs +32 -1
  39. package/scripts/wave-orchestrator/retry-control.mjs +17 -2
  40. package/scripts/wave-orchestrator/retry-engine.mjs +85 -0
  41. package/scripts/wave-orchestrator/role-helpers.mjs +73 -1
  42. package/scripts/wave-orchestrator/session-supervisor.mjs +113 -0
  43. package/scripts/wave-orchestrator/shared.mjs +2 -0
  44. package/scripts/wave-orchestrator/signals.mjs +681 -0
  45. package/scripts/wave-orchestrator/skills.mjs +1 -0
  46. package/scripts/wave-orchestrator/task-entity.mjs +65 -45
  47. package/scripts/wave-orchestrator/wave-control-schema.mjs +2 -0
  48. package/scripts/wave-orchestrator/wave-files.mjs +85 -1
  49. package/scripts/wave-orchestrator/wave-state-reducer.mjs +24 -7
  50. package/scripts/wave-status.sh +200 -0
  51. package/scripts/wave-watch.sh +200 -0
  52. package/skills/README.md +10 -0
  53. package/skills/role-design/SKILL.md +50 -0
  54. package/skills/role-design/skill.json +36 -0
  55. package/skills/signal-hygiene/SKILL.md +51 -0
  56. package/skills/signal-hygiene/skill.json +20 -0
  57. package/skills/tui-design/SKILL.md +77 -0
  58. package/skills/tui-design/references/tui-design.md +259 -0
  59. package/skills/tui-design/skill.json +36 -0
  60. package/wave.config.json +15 -1
package/CHANGELOG.md CHANGED
@@ -1,6 +1,46 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.8.6 - 2026-03-25
4
+
5
+ ### Added
6
+
7
+ - Added canonical wave and per-agent signal projections under `.tmp/<lane>-wave-launcher/signals/`, plus the `signal-hygiene` starter skill for long-running agents that should wait on versioned wake signals instead of exiting after a one-shot pass.
8
+ - Added seeded operator wrappers `scripts/wave-status.sh` and `scripts/wave-watch.sh` as thin readers over `wave control status --json`, including `--agent <id>` targeting and `--until-change` polling for external automation.
9
+ - Added [docs/guides/signal-wrappers.md](./docs/guides/signal-wrappers.md), a dedicated operator guide for signal snapshots, wrapper exit codes, and the ack-loop contract used by long-running agents and the resident orchestrator.
10
+
11
+ ### Changed
12
+
13
+ - Updated the shipped package metadata, README, current-state notes, migration guide, terminal and CLI docs, architecture docs, sample-wave docs, and npm publishing instructions to advertise `0.8.6` as the current release surface.
14
+ - Documented the long-running signal model explicitly: prompt-level signal-state plus ack-path injection, versioned signal snapshots for both waves and agents, and wrapper-driven monitoring for external operator scripts.
15
+
16
+ ### Fixed And Hardened
17
+
18
+ - Agent signal materialization now treats wave-level `completed` and `failed` as terminal, so stale answered feedback or pending coordination tasks cannot keep long-running agents in a non-terminal wait state after the wave has already closed.
19
+ - Resident orchestrator signal versions now bump when only `targetAgentIds` change, so reroutes that keep the same signal kind still wake long-running residents and watchers correctly.
20
+ - Wrapper exit semantics now treat `failed` as terminal with exit code `40`, so external monitors and `signal-hygiene` loops stop waiting when the wave fails instead of hanging on the generic active path.
21
+
22
+ ### Testing And Validation
23
+
24
+ - Added regression coverage for terminal signal precedence, resident reroute versioning, and terminal-failure wrapper exits.
25
+ - Re-ran the full Vitest suite, `wave doctor --json`, and `wave launch --lane main --dry-run --no-dashboard`.
26
+
27
+ ## 0.8.5 - 2026-03-25
28
+
29
+ ### Added
30
+
31
+ - Shipped the optional `design` worker role as a first-class release surface instead of a main-branch-only addition, including the standing prompt in `docs/agents/wave-design-role.md`, the `role-design` skill bundle, and the `tui-design` reference bundle for terminal or operator-surface work.
32
+ - Added support for hybrid design stewards: design agents stay docs-first by default, but waves can now explicitly give them implementation ownership so the same agent runs a design pass first and then rejoins the implementation fan-out with normal proof obligations.
33
+ - Added regression coverage for hybrid design validation, prompt shaping, local-executor marker emission, reducer task splitting, and post-design implementation fan-out.
34
+
35
+ ### Changed
36
+
37
+ - Updated README, current-state notes, planner and authoring guides, sample-wave docs, skills reference, and architecture docs so they all describe the shipped `0.8.5` surface instead of distinguishing `0.8.4` from unpublished main-branch behavior.
38
+ - Rewrote the migration guide as a practical upgrade guide for fresh adoption plus upgrades from `0.8.4`, `0.8.0`-`0.8.4`, `0.6.x`-`0.7.x`, and `0.5.x` or earlier, with explicit repo-owned starter-surface sync guidance and concrete validation steps.
39
+
40
+ ### Fixed And Hardened
41
+
42
+ - Design-aware validation, gates, retry or resume planning, reducer state, task materialization, and result-envelope projection now agree on the same hybrid-design contract instead of treating all design agents as permanently report-only.
43
+ - Hybrid design prompts now switch cleanly between packet-first design work and implementation follow-through, and local-executor smoke behavior now emits both `[wave-design]` and implementation proof markers when that second pass is active.
4
44
 
5
45
  ## 0.8.4 - 2026-03-25
6
46
 
package/README.md CHANGED
@@ -28,16 +28,18 @@ The framework does three things:
28
28
  1. Define shared docs plus `docs/plans/waves/wave-<n>.md` files, or generate them with `wave draft`.
29
29
  2. Run `wave launch --dry-run` to validate the wave and materialize prompts, shared summaries, inboxes, dashboards, and executor previews before any live execution.
30
30
  3. During live execution, implementation agents write claims, evidence, requests, and decisions into the canonical coordination log instead of relying on ad hoc terminal narration.
31
- 4. The reducer and derived-state engines materialize blackboard projections from the canonical authority set: rolling board, shared summary, per-agent inboxes, ledger, docs queue, dependency views, and integration summaries. Helper-assignment blocking, retry target selection, and resume planning read from reducer state during live runs.
32
- 5. The derived-state engine computes projection payloads and the projection writer persists them, so dashboards, traces, board projections, summaries, inboxes, ledgers, docs queues, and integration or security summaries all flow through one projection boundary.
33
- 6. Live closure is result-envelope-first. Optional `cont-EVAL`, optional security review, integration, documentation, and `cont-QA` evaluate validated envelopes plus canonical state through the wave's effective closure-role bindings, with starter defaults (`E0`, security reviewer, `A8`, `A9`, `A0`) filling gaps only when a wave does not override them.
31
+ 4. Optional design workers can run before code-owning implementation workers. When present, they publish design packets under `docs/plans/waves/design/` and implementation does not start until those packets are `ready-for-implementation`.
32
+ 5. Design stewards are docs-first by default, but a wave may explicitly give one source-code ownership. That hybrid design steward runs a design pass first, then rejoins the implementation fan-out with normal proof obligations.
33
+ 6. The reducer and derived-state engines materialize blackboard projections from the canonical authority set: rolling board, shared summary, per-agent inboxes, ledger, docs queue, dependency views, and integration summaries. Helper-assignment blocking, retry target selection, and resume planning read from reducer state during live runs.
34
+ 7. The derived-state engine computes projection payloads and the projection writer persists them, so dashboards, traces, board projections, summaries, inboxes, ledgers, docs queues, and integration or security summaries all flow through one projection boundary.
35
+ 8. Live closure is result-envelope-first. Optional `cont-EVAL`, optional security review, integration, documentation, and `cont-QA` evaluate validated envelopes plus canonical state through the wave's effective closure-role bindings, with starter defaults (`E0`, security reviewer, `A8`, `A9`, `A0`) filling gaps only when a wave does not override them.
34
36
 
35
37
  ## Runtime Modules
36
38
 
37
39
  - `launcher.mjs`
38
40
  Thin orchestrator: parses args, acquires the launcher lock, and sequences the engines.
39
41
  - `implementation-engine.mjs`
40
- Selects the implementation fan-out for a wave or retry attempt.
42
+ Selects the design-first or implementation fan-out for a wave or retry attempt.
41
43
  - `derived-state-engine.mjs`
42
44
  Computes shared summary, inboxes, assignments, dependency views, ledger, docs queue, and integration/security projection payloads from canonical state.
43
45
  - `gate-engine.mjs`
@@ -101,18 +103,18 @@ Wave is built to mitigate those failures with a canonical authority set, generat
101
103
 
102
104
  Current release:
103
105
 
104
- - `@chllming/wave-orchestration@0.8.4`
105
- - Release tag: [`v0.8.4`](https://github.com/chllming/agent-wave-orchestrator/releases/tag/v0.8.4)
106
+ - `@chllming/wave-orchestration@0.8.6`
107
+ - Release tag: [`v0.8.6`](https://github.com/chllming/agent-wave-orchestrator/releases/tag/v0.8.6)
106
108
  - Public install path: npmjs
107
109
  - Authenticated fallback: GitHub Packages
108
110
 
109
- Highlights in `0.8.4`:
111
+ Highlights in `0.8.6`:
110
112
 
111
- - Hermetic contradiction replay no longer depends on component-matrix parsing when the trace does not declare promoted components.
112
- - `requireComponentPromotionsFromWave` now gates both component-promotion proof validation and component-matrix current-level validation consistently in live and replay paths.
113
- - Projection persistence is now centralized under `projection-writer.mjs`, while `derived-state-engine.mjs` stays compute-only.
114
- - The migration guide now includes explicit upgrade guidance for `0.8.3`, `0.8.0`-`0.8.2`, `0.6.x`-`0.7.x`, and older starter repos instead of only a narrow point upgrade.
115
- - Release docs, sample waves, current-state notes, and npm publishing instructions now point at the `0.8.4` surface.
113
+ - The shipped starter surface now includes `skills/signal-hygiene/` plus seeded `scripts/wave-status.sh` and `scripts/wave-watch.sh` wrappers for long-running-agent and operator wait loops.
114
+ - Long-running agents and resident orchestrators now get prompt-level signal-state and signal-ack paths, so wakeups are edge-triggered by versioned signal changes instead of relying on terminal injection.
115
+ - Versioned wave or agent signal snapshots are now a first-class operator surface under `.tmp/<lane>-wave-launcher/signals/`, with failure treated as terminal in both the runtime and the wrapper exit contract.
116
+ - `0.8.5` design-role and hybrid design-steward behavior remains part of the shipped release surface, and the current migration guide now covers the new signal-wrapper model on top of that design-first runtime.
117
+ - Release docs, current-state notes, and publishing instructions now point at the `0.8.6` surface.
116
118
 
117
119
  Requirements:
118
120
 
@@ -141,6 +143,19 @@ pnpm exec wave init --adopt-existing
141
143
 
142
144
  Fresh init also seeds a starter `skills/` library plus `docs/evals/benchmark-catalog.json`. The launcher projects those skill bundles into Codex, Claude, OpenCode, and local executor overlays after the final runtime for each agent is resolved, and waves that include `cont-EVAL` can declare `## Eval targets` against that catalog.
143
145
 
146
+ The starter surface includes:
147
+
148
+ - `docs/agents/wave-design-role.md`
149
+ - `skills/role-design/`
150
+ - `skills/tui-design/` for terminal and operator-surface design work
151
+ - `skills/signal-hygiene/` for intentionally long-running watcher agents
152
+ - `scripts/wave-status.sh` and `scripts/wave-watch.sh` for external wait loops
153
+ - `wave.config.json` defaults for `roles.designRolePromptPath`, `skills.byRole.design`, and the `design-pass` executor profile
154
+
155
+ Interactive `wave draft` scaffolds the docs-first design-steward path. If you want a hybrid design steward, author that wave explicitly or use an agentic planner payload that gives the same design agent implementation-owned paths plus the normal implementation contract sections.
156
+
157
+ If a non-resident agent should stay alive and react only to orchestrator-written signal changes, add `signal-hygiene` explicitly in `### Skills`. That bundle uses the prompt-injected signal-state and ack paths instead of inventing a second wakeup surface. For shell automation and the wrapper contract, see [docs/guides/signal-wrappers.md](./docs/guides/signal-wrappers.md).
158
+
144
159
  When runtime launch commands detect a newer npmjs release, Wave prints a non-blocking update notice on stderr. The fast path is `pnpm exec wave self-update`, which updates the dependency, prints the changelog delta, and then records the workspace upgrade report.
145
160
 
146
161
  ## Common Commands
@@ -172,7 +187,7 @@ pnpm exec wave self-update
172
187
  - `wave launch` and `wave autonomous`
173
188
  Live execution, dry-run validation, retry cadence, terminal surfaces, and orchestrator options.
174
189
  - `wave control`
175
- Read-only live status plus operator task, rerun, proof, and telemetry control surfaces.
190
+ Read-only live status plus operator task, rerun, proof, telemetry, and versioned signal surfaces. Seeded helper scripts `scripts/wave-status.sh` and `scripts/wave-watch.sh` are thin readers over `wave control status --json`.
176
191
  - `wave coord` and `wave dep`
177
192
  Coordination-log and cross-lane dependency utilities. `wave control` is the preferred operator surface; `wave coord` remains useful for direct log inspection and rendering.
178
193
  - `wave project`, `wave draft`, and `wave adhoc`
@@ -213,8 +228,11 @@ codex mcp list
213
228
  - [docs/concepts/runtime-agnostic-orchestration.md](./docs/concepts/runtime-agnostic-orchestration.md): how one orchestration substrate spans Claude, Codex, OpenCode, and local execution
214
229
  - [docs/concepts/context7-vs-skills.md](./docs/concepts/context7-vs-skills.md): compiled context, external truth, and repo-owned operating knowledge
215
230
  - [docs/guides/planner.md](./docs/guides/planner.md): `wave project` and `wave draft` workflow
231
+ - [docs/agents/wave-design-role.md](./docs/agents/wave-design-role.md): standing prompt for the optional pre-implementation design steward
216
232
  - [docs/guides/terminal-surfaces.md](./docs/guides/terminal-surfaces.md): tmux, VS Code terminal registry, and dry-run surfaces
233
+ - [docs/guides/signal-wrappers.md](./docs/guides/signal-wrappers.md): versioned signal snapshots, wrapper scripts, and long-running-agent ack loops
217
234
  - [docs/reference/sample-waves.md](./docs/reference/sample-waves.md): showcase-first authored waves, including a high-fidelity repo-landed rollout example
235
+ - [docs/plans/examples/wave-example-design-handoff.md](./docs/plans/examples/wave-example-design-handoff.md): optional design-steward example that hands a validated design packet to downstream implementation owners
218
236
  - [docs/plans/examples/wave-example-rollout-fidelity.md](./docs/plans/examples/wave-example-rollout-fidelity.md): concrete example of what good wave fidelity looks like for a narrow, closure-ready outcome
219
237
  - [docs/reference/cli-reference.md](./docs/reference/cli-reference.md): complete CLI syntax for all commands and flags
220
238
  - [docs/plans/end-state-architecture.md](./docs/plans/end-state-architecture.md): canonical runtime architecture, engine boundaries, and artifact ownership
package/docs/README.md CHANGED
@@ -35,6 +35,10 @@ The useful path is journey-first:
35
35
  Read [concepts/context7-vs-skills.md](./concepts/context7-vs-skills.md) for the compiled-context model: shared summary, inboxes, project defaults, skills, Context7, and runtime overlays.
36
36
  - Drafting or revising waves:
37
37
  Read [guides/author-and-run-waves.md](./guides/author-and-run-waves.md), then use [plans/wave-orchestrator.md](./plans/wave-orchestrator.md) as the operator runbook.
38
+ - Adding an optional pre-implementation design steward:
39
+ Read [guides/author-and-run-waves.md](./guides/author-and-run-waves.md), then the standing prompt in [agents/wave-design-role.md](./agents/wave-design-role.md). The shipped `0.8.6` surface includes `role-design` plus `tui-design`, with docs-first design stewards by default and explicit hybrid design stewards when a wave also gives that same agent code ownership.
40
+ - Want signal-driven automation or long-running watcher loops:
41
+ Read [guides/signal-wrappers.md](./guides/signal-wrappers.md). It covers the seeded `wave-status.sh` and `wave-watch.sh` wrappers, the versioned signal snapshot files, and the ack-loop contract behind `signal-hygiene`.
38
42
  - Adding a security review pass:
39
43
  Read [plans/wave-orchestrator.md](./plans/wave-orchestrator.md) and the standing reviewer prompt in [agents/wave-security-role.md](./agents/wave-security-role.md).
40
44
  - Upgrading an existing repo:
@@ -0,0 +1,47 @@
1
+ ---
2
+ title: "Wave Design Role"
3
+ summary: "Standing prompt for an optional pre-implementation design steward that produces a design packet and explicit implementation handoff."
4
+ ---
5
+
6
+ # Wave Design Role
7
+
8
+ Use this prompt when an agent should act as the design steward for a wave.
9
+
10
+ ## Standing prompt
11
+
12
+ ```text
13
+ You are the wave design steward for the current wave.
14
+
15
+ Your job is to produce an implementation-ready design packet before code-owning implementation work begins. You are report-first and docs/spec-owned by default. Do not silently expand into broad coding work unless the wave explicitly assigns it.
16
+ If the wave explicitly gives you source-code ownership, expect a hybrid two-pass contract: design packet first, then a later implementation pass for those owned files.
17
+
18
+ Operating rules:
19
+ - Re-read the compiled shared summary, your inbox, the generated wave board projection, and any earlier packets before major decisions.
20
+ - Turn ambiguity into explicit decisions, assumptions, and exact open questions.
21
+ - Keep interface impacts concrete: name exact files, APIs, schema fields, CLI flags, contracts, and ownership changes.
22
+ - If the wave touches terminal UX, dashboards, or other operator surfaces, use `skills/tui-design/references/tui-design.md` as the deep heuristic reference.
23
+ - Keep operator surfaces thin by design: ask for reducer or projection truth instead of inventing UI-local state or hiding system uncertainty behind polish.
24
+ - Prefer exact observations tied to concrete surfaces, state transitions, interaction paths, and missing projection-backed affordances over generic design commentary.
25
+ - Prefer a narrow, actionable handoff over a long architecture essay.
26
+ - If the wave needs a human choice or unresolved upstream answer before coding, fail closed and say so directly.
27
+ - Route code changes back to implementation owners unless the wave explicitly gives you source-code ownership.
28
+
29
+ What you must do:
30
+ - leave one design packet with these sections in order:
31
+ `Problem`
32
+ `Constraints`
33
+ `Decisions`
34
+ `Assumptions`
35
+ `Open Questions`
36
+ `Interface Impacts`
37
+ `Validation Plan`
38
+ `Implementation Handoff`
39
+ - make the `Implementation Handoff` section concrete enough that implementation owners can start without re-deriving the same design
40
+ - emit one final structured marker:
41
+ `[wave-design] state=<ready-for-implementation|needs-clarification|blocked> decisions=<n> assumptions=<n> open_questions=<n> detail=<short-note>`
42
+ - when you later rejoin implementation as a hybrid design steward, keep the design packet current and re-emit `[wave-design]` alongside the normal implementation proof markers
43
+
44
+ Use `ready-for-implementation` only when the design packet is sufficient for downstream implementation owners to proceed.
45
+ Use `needs-clarification` when a specific unresolved question should stop implementation until it is answered.
46
+ Use `blocked` only when the wave cannot safely continue because the design packet found a fundamental blocker.
47
+ ```
@@ -20,7 +20,7 @@ It is not just a prompt file. A wave is a bounded slice of repository work with:
20
20
  - Wave
21
21
  One numbered work package inside a lane, usually stored as `docs/plans/waves/wave-<n>.md`.
22
22
  - Agent
23
- One role inside the wave, such as implementation, `cont-EVAL`, security review, integration, documentation, cont-QA, infra, or deploy.
23
+ One role inside the wave, such as design, implementation, `cont-EVAL`, security review, integration, documentation, cont-QA, infra, or deploy.
24
24
  - Attempt
25
25
  One execution pass of a wave. A wave can have multiple attempts due to retries or fallback.
26
26
  - Closure
@@ -89,7 +89,7 @@ Inside each agent block, the important sections are:
89
89
 
90
90
  ## Standard Roles
91
91
 
92
- The starter runtime ships with three default closure roles plus up to two optional review specialists. A wave may override the role ids, but the closure semantics stay the same:
92
+ The starter runtime ships with three default closure roles plus optional specialists. A wave may override the role ids, but the closure semantics stay the same:
93
93
 
94
94
  - `A8`
95
95
  Integration steward
@@ -101,6 +101,8 @@ The starter runtime ships with three default closure roles plus up to two option
101
101
  Optional `cont-EVAL` for iterative benchmark or output tuning; report-only by default, implementation-owning only when explicitly assigned non-report files
102
102
  - `A7`
103
103
  Optional security reviewer; report-only by default and used to publish a threat-model-first security review before integration closure
104
+ - `D1` or another custom id
105
+ Optional design steward; report-first and docs/spec-owned by default, used to publish a design packet before code-owning implementation fans out. If the wave explicitly gives that same agent source-code ownership, it becomes a hybrid design steward that rejoins the later implementation fan-out.
104
106
 
105
107
  Implementation or specialist agents own the actual work slices. Closure roles do not replace implementation ownership; they decide whether the combined result is closure-ready. `cont-EVAL` is the one hybrid role: most waves keep it report-only, but human-authored waves may assign explicit tuning files to `E0`, in which case it must satisfy both implementation proof and eval proof.
106
108
 
@@ -109,11 +111,12 @@ Implementation or specialist agents own the actual work slices. Closure roles do
109
111
  1. Author or draft the wave.
110
112
  2. Run `wave launch --dry-run --no-dashboard`.
111
113
  3. The launcher parses the wave, resolves executors and skills, rebuilds reducer state, and materializes operator surfaces.
112
- 4. A live run launches implementation agents first when implementation work remains.
113
- 5. Agents write structured coordination events instead of relying on ad hoc terminal output.
114
- 6. The reducer, gate engine, and retry or closure engines evaluate implementation contracts, promoted-component proof, helper assignments, dependencies, contradictions, and clarification state.
115
- 7. If implementation is ready, closure runs in order: optional `cont-EVAL`, optional security review, integration, documentation, then cont-QA.
116
- 8. The attempt is captured in per-wave traces, ledgers, inboxes, summaries, and copied artifacts.
114
+ 4. A live run launches design agents first when the wave declares them.
115
+ 5. Code-owning implementation agents start only after every design packet is `ready-for-implementation`; hybrid design stewards rejoin that implementation fan-out once the design gate clears.
116
+ 6. Agents write structured coordination events instead of relying on ad hoc terminal output.
117
+ 7. The reducer, gate engine, and retry or closure engines evaluate design readiness, implementation contracts, promoted-component proof, helper assignments, dependencies, contradictions, and clarification state.
118
+ 8. If implementation is ready, closure runs in order: optional `cont-EVAL`, optional security review, integration, documentation, then cont-QA.
119
+ 9. The attempt is captured in per-wave traces, ledgers, inboxes, summaries, and copied artifacts.
117
120
 
118
121
  ## Runtime And Operating Posture
119
122
 
@@ -170,6 +173,7 @@ That is why switching an agent between Codex, Claude, or OpenCode does not requi
170
173
  A wave is not done because an agent said so. It is done only when the runtime surfaces agree:
171
174
 
172
175
  - implementation exit contracts pass
176
+ - if present, design packets are complete and every design worker reports `ready-for-implementation`
173
177
  - required deliverables exist and stay within ownership boundaries
174
178
  - required proof artifacts exist when the wave declares proof-first live evidence
175
179
  - required component proof and promotions pass
@@ -13,33 +13,28 @@
13
13
  "description": "Node.js and TypeScript runtime docs for JavaScript service and tooling work.",
14
14
  "libraries": [
15
15
  {
16
- "libraryName": "nodejs",
16
+ "libraryId": "/nodejs/node",
17
17
  "queryHint": "runtime APIs, child processes, streams, filesystem behavior, and process lifecycle"
18
18
  },
19
19
  {
20
- "libraryName": "typescript",
20
+ "libraryId": "/microsoft/typescript",
21
21
  "queryHint": "types, declarations, module resolution, tsconfig, and compiler behavior"
22
22
  }
23
23
  ]
24
24
  },
25
25
  "planner-agentic": {
26
- "description": "Repo-curated planning research published as a custom Context7 library for the agentic planner.",
27
- "libraries": [
28
- {
29
- "libraryName": "wave-planner-agentic",
30
- "queryHint": "wave planning best practices, maturity alignment, closure gates, proof surfaces, rollout evidence, and coordination failure prevention"
31
- }
32
- ]
26
+ "description": "Placeholder bundle for a repo-published planner corpus. Keep this empty until the planner corpus is published to Context7 and the exact libraryId is known.",
27
+ "libraries": []
33
28
  },
34
29
  "react-web": {
35
30
  "description": "React and Next.js docs for frontend work.",
36
31
  "libraries": [
37
32
  {
38
- "libraryName": "react",
33
+ "libraryId": "/reactjs/react.dev",
39
34
  "queryHint": "components, hooks, rendering, forms, and data flow"
40
35
  },
41
36
  {
42
- "libraryName": "nextjs",
37
+ "libraryId": "/websites/nextjs",
43
38
  "queryHint": "routing, server components, data fetching, and app router behavior"
44
39
  }
45
40
  ]
@@ -48,11 +43,11 @@
48
43
  "description": "Python backend docs for API and worker services.",
49
44
  "libraries": [
50
45
  {
51
- "libraryName": "python",
46
+ "libraryId": "/websites/python_3",
52
47
  "queryHint": "language features, packaging, typing, and standard library behavior"
53
48
  },
54
49
  {
55
- "libraryName": "fastapi",
50
+ "libraryId": "/fastapi/fastapi",
56
51
  "queryHint": "routing, request validation, dependency injection, and OpenAPI behavior"
57
52
  }
58
53
  ]
@@ -61,11 +56,15 @@
61
56
  "description": "Go service and workflow docs for backend work.",
62
57
  "libraries": [
63
58
  {
64
- "libraryName": "golang",
65
- "queryHint": "packages, testing, concurrency, errors, and module layout"
59
+ "libraryId": "/websites/go_dev_ref_spec",
60
+ "queryHint": "language syntax, testing, concurrency, errors, and module semantics"
61
+ },
62
+ {
63
+ "libraryId": "/websites/pkg_go_dev",
64
+ "queryHint": "standard packages, modules, package layout, and reference behavior"
66
65
  },
67
66
  {
68
- "libraryName": "temporal",
67
+ "libraryId": "/temporalio/documentation",
69
68
  "queryHint": "workflow setup, activities, schedules, retries, and worker bootstrap"
70
69
  }
71
70
  ]
@@ -74,11 +73,11 @@
74
73
  "description": "Database and storage docs for persistence work.",
75
74
  "libraries": [
76
75
  {
77
- "libraryName": "postgresql",
76
+ "libraryId": "/websites/postgresql_current",
78
77
  "queryHint": "schema changes, indexes, transactions, constraints, and query behavior"
79
78
  },
80
79
  {
81
- "libraryName": "sqlite",
80
+ "libraryId": "/websites/sqlite_docs",
82
81
  "queryHint": "local persistence, fts, schema migration, and durability patterns"
83
82
  }
84
83
  ]
@@ -87,11 +86,11 @@
87
86
  "description": "Infrastructure and service-manager docs for deployment and operations work.",
88
87
  "libraries": [
89
88
  {
90
- "libraryName": "docker",
89
+ "libraryId": "/docker/docs",
91
90
  "queryHint": "images, builds, volumes, networking, and runtime configuration"
92
91
  },
93
92
  {
94
- "libraryName": "systemd",
93
+ "libraryId": "/websites/systemd_io",
95
94
  "queryHint": "units, dependencies, restart policies, readiness, and service management"
96
95
  }
97
96
  ]
@@ -13,7 +13,10 @@ Why it exists:
13
13
  Publish target:
14
14
 
15
15
  - bundle id: `planner-agentic`
16
- - library name: `wave-planner-agentic`
16
+ - committed repo config should stay empty until the planner corpus is published
17
+ and Context7 returns an exact `libraryId`
18
+ - once published, record that returned `libraryId` in
19
+ `docs/context7/bundles.json` instead of committing a guessed library name
17
20
 
18
21
  Refresh the copied corpus after updating the agent-context cache:
19
22
 
@@ -43,12 +43,38 @@ When you review the generated wave, tighten the parts the planner cannot fully i
43
43
  - file ownership
44
44
  - validation commands
45
45
  - proof artifacts
46
+ - whether the wave needs an optional pre-implementation design steward
46
47
  - `cont-EVAL` targets when needed
47
48
  - security review expectations when needed
48
49
  - explicit `### Skills` only where defaults are not enough
50
+ - `signal-hygiene` only when an agent is intentionally long-running and should wait for orchestrator-written signal changes instead of exiting after a one-shot pass
49
51
 
50
52
  If you want examples of denser hand-authored waves, read [docs/reference/sample-waves.md](../reference/sample-waves.md).
51
53
 
54
+ ## 2a. Add A Design Steward Only When It Actually Helps
55
+
56
+ Use the optional `design` role when the wave needs a concrete handoff packet before coding starts, not just more prose.
57
+
58
+ Good fits:
59
+
60
+ - architecture-heavy or interface-heavy changes
61
+ - multi-owner waves where downstream implementers need the same decisions and assumptions
62
+ - ambiguous tasks where open questions should become explicit before code owners fan out
63
+
64
+ The starter contract in `0.8.6` is:
65
+
66
+ - import `docs/agents/wave-design-role.md`
67
+ - own one packet such as `docs/plans/waves/design/wave-<n>-<agentId>.md`
68
+ - keep that agent docs/spec-only by default
69
+ - add explicit `### Skills` such as `tui-design` when the packet covers terminal UX, dashboards, or other operator surfaces
70
+ - end with `[wave-design] state=<ready-for-implementation|needs-clarification|blocked> decisions=<n> assumptions=<n> open_questions=<n> detail=<short-note>`
71
+
72
+ When a wave includes one or more design agents, the runtime runs them before code-owning implementation agents. Implementation does not start until every design packet is `ready-for-implementation`. `needs-clarification` and `blocked` behave like normal wave blockers.
73
+
74
+ If a wave explicitly gives a design steward source-code ownership, that agent becomes a hybrid design steward. The runtime still runs its design pass first, then includes the same agent in the later implementation fan-out with normal proof obligations. Interactive `wave draft` scaffolds the docs-first default; use manual edits or an agentic planner payload when you want the hybrid path.
75
+
76
+ For long-running non-design agents that should stay alive and react only to feedback or coordination changes, add `signal-hygiene` explicitly in `### Skills`. That skill is not for normal one-shot implementation work.
77
+
52
78
  ## 3. Choose The Execution Posture
53
79
 
54
80
  Every wave should be authored with an explicit operating posture in mind:
@@ -115,6 +141,7 @@ Useful flags:
115
141
 
116
142
  A wave is not done when an implementation agent says it is done. Closure depends on the canonical authority set, typed result state, and the combined runtime projections:
117
143
 
144
+ - if present, design packets are complete and `ready-for-implementation` before code-owning work starts
118
145
  - implementation contracts pass
119
146
  - required deliverables exist
120
147
  - proof artifacts exist when the wave requires them
@@ -6,6 +6,8 @@ If you want the full author-to-launch workflow, start with [author-and-run-waves
6
6
 
7
7
  It reduces repeated setup questions, stores project defaults, and generates wave specs plus markdown that already fit the launcher.
8
8
 
9
+ The published `0.8.6` package already includes the optional `design` worker role for pre-implementation design packets. This guide calls out where that affects drafting.
10
+
9
11
  ## What Ships Today
10
12
 
11
13
  - `wave project setup`
@@ -14,6 +16,7 @@ It reduces repeated setup questions, stores project defaults, and generates wave
14
16
  - agentic `wave draft --agentic --task "..."`
15
17
  - planner run review via `wave draft --show-run <run-id>`
16
18
  - explicit materialization via `wave draft --apply-run <run-id>`
19
+ - worker role kinds including optional `design`
17
20
  - persistent project memory in `.wave/project-profile.json`
18
21
  - transient planner packets in `.wave/planner/runs/<run-id>/`
19
22
  - planner-run Context7 injection via `planner.agentic.context7Bundle`
@@ -87,6 +90,8 @@ The planner agent reads repo-local planning sources directly, and it can also
87
90
  prefetch a planner-specific Context7 bundle when
88
91
  `planner.agentic.context7Bundle` points at a published library. The tracked
89
92
  source corpus for that library lives under `docs/context7/planner-agent/`.
93
+ The starter repo keeps that bundle as a placeholder until the planner corpus is
94
+ actually published and the exact `libraryId` is known.
90
95
 
91
96
  Supported templates today:
92
97
 
@@ -95,6 +100,24 @@ Supported templates today:
95
100
  - `infra`
96
101
  - `release`
97
102
 
103
+ Supported worker role kinds today:
104
+
105
+ - `design`
106
+ - `implementation`
107
+ - `qa`
108
+ - `infra`
109
+ - `deploy`
110
+ - `research`
111
+ - `security`
112
+
113
+ The interactive draft flow now offers `design` as a first-class worker role. Agentic planner payloads also accept `workerAgents[].roleKind = "design"`.
114
+
115
+ `design` uses the `design-pass` executor profile by default and scaffolds the docs-first packet path before coding starts. The normal starter packet path is:
116
+
117
+ - `docs/plans/waves/design/wave-<n>-<agentId>.md`
118
+
119
+ If you want a hybrid design steward, keep the same design packet path but explicitly add implementation-owned paths and the normal implementation contract sections in the authored wave or agentic planner payload. Interactive draft does not ask a separate hybrid-design question yet; it stays on the docs-first default.
120
+
98
121
  Interactive draft writes canonical waves immediately:
99
122
 
100
123
  - `docs/plans/waves/specs/wave-<n>.json`
@@ -125,6 +148,7 @@ The draft flow asks for structured inputs such as:
125
148
  - deploy environments in scope
126
149
  - component promotions and target levels
127
150
  - worker count and worker roles
151
+ - whether a wave needs a pre-implementation design steward
128
152
  - executor profiles
129
153
  - file ownership
130
154
  - Context7 defaults and per-agent bundles
@@ -133,6 +157,27 @@ The draft flow asks for structured inputs such as:
133
157
 
134
158
  That gives you a wave that is much closer to launch-ready than a blank markdown template.
135
159
 
160
+ ## When To Use `design`
161
+
162
+ Use a design worker when the wave is heavy on:
163
+
164
+ - architecture or sequencing decisions
165
+ - interface or contract changes across multiple owners
166
+ - ambiguous requirements that should become explicit assumptions and open questions
167
+ - decision-lineage that downstream implementers should not have to rediscover
168
+
169
+ Do not use a design worker just because the wave is large. If the task is straightforward code change plus validation, normal implementation agents are enough.
170
+
171
+ A design worker should usually:
172
+
173
+ - import `docs/agents/wave-design-role.md`
174
+ - own one design packet under `docs/plans/waves/design/`
175
+ - stay docs/spec-only unless the wave explicitly assigns code ownership
176
+ - add `tui-design` in `### Skills` when the packet owns terminal UX, dashboards, or other operator surfaces
177
+ - emit a final `[wave-design] state=<ready-for-implementation|needs-clarification|blocked> ...` marker
178
+
179
+ If the wave does explicitly assign code ownership, the same design agent becomes a hybrid design steward: it runs the design pass first, then rejoins implementation with the normal implementation proof contract while still keeping the packet current and re-emitting `[wave-design]`.
180
+
136
181
  ## Planner And Skills
137
182
 
138
183
  The planner does not auto-discover every possible skill bundle yet, but it supports explicit per-agent `### Skills` in the rendered output.
@@ -169,6 +214,7 @@ If you want concrete authored examples after the planner baseline, see [docs/ref
169
214
  - Treat `### Deliverables` and `### Proof artifacts` as part of the plan contract, not optional polish.
170
215
  - Keep `docs/context7/planner-agent/` in sync with the selected planning cache slice before publishing the planner bundle to Context7.
171
216
  - Add explicit `### Skills` only when the lane, role, runtime, and deploy-kind defaults are not enough.
217
+ - Use `design` when you need a reusable handoff packet; keep straightforward implementation slices on `implementation`.
172
218
  - Use the component matrix as a planning contract, not just a reporting surface.
173
219
  - Prefer updating the project profile when the same answers recur across waves.
174
220
  - Use [docs/reference/sample-waves.md](../reference/sample-waves.md) when you want examples of denser human-authored waves that combine multiple modern surfaces such as `cont-EVAL`, delegated benchmark families, or proof-first live validation.