@chllming/wave-orchestration 0.8.3 → 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 +36 -1
- package/README.md +60 -11
- package/docs/README.md +8 -2
- 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/architecture-hardening-migration.md +8 -1
- package/docs/plans/current-state.md +19 -7
- package/docs/plans/end-state-architecture.md +88 -70
- 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 +370 -64
- package/docs/plans/wave-orchestrator.md +49 -13
- package/docs/reference/cli-reference.md +46 -14
- package/docs/reference/coordination-and-closure.md +19 -6
- package/docs/reference/npmjs-trusted-publishing.md +5 -4
- package/docs/reference/sample-waves.md +14 -7
- package/docs/reference/skills.md +10 -0
- package/package.json +1 -1
- package/releases/manifest.json +39 -0
- package/scripts/wave-orchestrator/agent-state.mjs +64 -491
- package/scripts/wave-orchestrator/autonomous.mjs +10 -6
- package/scripts/wave-orchestrator/{launcher-closure.mjs → closure-engine.mjs} +190 -74
- package/scripts/wave-orchestrator/config.mjs +5 -0
- package/scripts/wave-orchestrator/coordination.mjs +42 -1
- package/scripts/wave-orchestrator/{launcher-derived-state.mjs → derived-state-engine.mjs} +34 -146
- package/scripts/wave-orchestrator/{launcher-gates.mjs → gate-engine.mjs} +501 -141
- package/scripts/wave-orchestrator/human-input-resolution.mjs +14 -10
- package/scripts/wave-orchestrator/human-input-workflow.mjs +104 -0
- package/scripts/wave-orchestrator/implementation-engine.mjs +120 -0
- package/scripts/wave-orchestrator/install.mjs +3 -0
- package/scripts/wave-orchestrator/launcher-runtime.mjs +11 -6
- package/scripts/wave-orchestrator/launcher.mjs +324 -723
- 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/projection-writer.mjs +256 -0
- package/scripts/wave-orchestrator/reconcile-format.mjs +32 -0
- package/scripts/wave-orchestrator/reducer-snapshot.mjs +297 -0
- package/scripts/wave-orchestrator/replay.mjs +3 -1
- package/scripts/wave-orchestrator/result-envelope.mjs +620 -0
- package/scripts/wave-orchestrator/retry-control.mjs +22 -2
- package/scripts/wave-orchestrator/{launcher-retry.mjs → retry-engine.mjs} +352 -18
- package/scripts/wave-orchestrator/role-helpers.mjs +124 -1
- package/scripts/wave-orchestrator/{launcher-supervisor.mjs → session-supervisor.mjs} +178 -103
- package/scripts/wave-orchestrator/shared.mjs +2 -0
- package/scripts/wave-orchestrator/skills.mjs +1 -0
- package/scripts/wave-orchestrator/task-entity.mjs +65 -45
- package/scripts/wave-orchestrator/traces.mjs +10 -1
- package/scripts/wave-orchestrator/wave-files.mjs +96 -10
- package/scripts/wave-orchestrator/wave-state-reducer.mjs +76 -12
- 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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# End-State Architecture
|
|
2
2
|
|
|
3
|
-
This document describes the
|
|
3
|
+
This document describes the canonical architecture for the current Wave runtime. It is the authoritative reference for the engine boundaries, canonical authority set, and artifact ownership model that the shipped `0.8.5` surface now follows.
|
|
4
4
|
|
|
5
|
-
The thesis is unchanged: bounded waves, closure roles, proof artifacts, selective rerun, and delivery discipline. What changes is the internal authority model. The launcher stops being the decision engine and becomes a thin
|
|
5
|
+
The thesis is unchanged: bounded waves, closure roles, proof artifacts, selective rerun, and delivery discipline. What changes is the internal authority model. The launcher stops being the decision engine and becomes a thin orchestrator that reads decisions from canonical state, sequences the engines, and delegates process work to the session supervisor.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@ The thesis is unchanged: bounded waves, closure roles, proof artifacts, selectiv
|
|
|
12
12
|
|
|
13
13
|
2. **Phase engines replace the monolithic launcher loop.** Each distinct concern — implementation orchestration, derived-state materialization, gate evaluation, retry planning, closure sequencing, session supervision — lives in its own deterministic module with an explicit input/output contract.
|
|
14
14
|
|
|
15
|
-
3. **Planning engines emit intent; the supervisor emits observed facts.** A phase engine may output
|
|
15
|
+
3. **Planning engines emit intent; the supervisor emits observed facts.** A phase engine may output a run selection or launch request. Only the session supervisor, after the process actually launches, writes `agent_run.started`. This distinction between desired action and observed action is critical for replay and auditability.
|
|
16
16
|
|
|
17
17
|
4. **Proof and closure are separate first-class states.** An agent can satisfy its own work contract (`owned_slice_proven`) without the wave being closeable (`wave_closure_ready`). These are distinct top-level state transitions, not implicit conditions scattered across gate checks.
|
|
18
18
|
|
|
@@ -48,6 +48,8 @@ The system uses **Model B: canonical authority set**, not a single event log. Th
|
|
|
48
48
|
|
|
49
49
|
The reducer consumes all three canonical sources plus result envelopes to rebuild state. No other input is read for decision-making.
|
|
50
50
|
|
|
51
|
+
Optional design packets live in repo-owned docs, usually under `docs/plans/waves/design/`. They are not canonical runtime state by themselves, but the validated packet path and final `design` result are captured in summaries, envelopes, reducer state, and traces.
|
|
52
|
+
|
|
51
53
|
---
|
|
52
54
|
|
|
53
55
|
## Module Architecture
|
|
@@ -84,45 +86,48 @@ Each phase engine is a pure-ish function: it reads from the canonical authority
|
|
|
84
86
|
implementation-engine.mjs Drives the implementation phase
|
|
85
87
|
Inputs: wave definition, materialized event state,
|
|
86
88
|
task graph, retry plan
|
|
87
|
-
Outputs: launch
|
|
88
|
-
|
|
89
|
+
Outputs: run selections, launch requests,
|
|
90
|
+
executor assignments,
|
|
89
91
|
prompt construction requests
|
|
90
|
-
|
|
92
|
+
Rule: optional design workers run before
|
|
93
|
+
code-owning implementation workers
|
|
94
|
+
Does NOT output: agent_run.started, attempt.running
|
|
91
95
|
(those are observed facts written by the supervisor)
|
|
92
96
|
|
|
93
|
-
derived-state-engine.mjs
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Outputs: shared summaries,
|
|
97
|
-
|
|
98
|
-
ledger, docs queue,
|
|
99
|
-
integration summary
|
|
97
|
+
derived-state-engine.mjs Computes all derived state from canonical sources
|
|
98
|
+
Inputs: coordination log, control-plane events,
|
|
99
|
+
agent result envelopes
|
|
100
|
+
Outputs: derived payloads for shared summaries,
|
|
101
|
+
per-agent inboxes, assignment snapshots,
|
|
102
|
+
dependency snapshots, ledger, docs queue,
|
|
103
|
+
security summary, integration summary
|
|
100
104
|
Rule: reads only from canonical authority set,
|
|
101
|
-
never from its own prior outputs
|
|
105
|
+
never from its own prior outputs and
|
|
106
|
+
never persists projections directly
|
|
102
107
|
|
|
103
108
|
gate-engine.mjs Evaluates all closure gates
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
Inputs: agent result envelopes, proof registry,
|
|
110
|
+
coordination state, component matrix,
|
|
106
111
|
task graph
|
|
107
112
|
Outputs: per-gate verdicts (ok/blocked + detail),
|
|
108
113
|
per-task owned_slice_proven verdicts
|
|
109
114
|
Does NOT write: gate events to control-plane
|
|
110
115
|
(the caller writes gate events after receiving verdicts)
|
|
111
|
-
Gates: implementation-proof, cont-eval, security,
|
|
116
|
+
Gates: design, implementation-proof, cont-eval, security,
|
|
112
117
|
integration, documentation, cont-qa,
|
|
113
118
|
component-matrix, assignment-barrier,
|
|
114
119
|
dependency-barrier, clarification-barrier
|
|
115
120
|
|
|
116
121
|
closure-engine.mjs Sequences the closure sweep
|
|
117
|
-
|
|
118
|
-
|
|
122
|
+
Inputs: gate verdicts, wave definition, task graph
|
|
123
|
+
Outputs: closure phase transitions, agent relaunch
|
|
119
124
|
requests, wave completion or block events
|
|
120
125
|
Stages: implementation+proof → cont-eval → security →
|
|
121
126
|
integration → documentation → cont-qa
|
|
122
127
|
|
|
123
128
|
retry-engine.mjs Plans all retry and resume operations
|
|
124
|
-
|
|
125
|
-
|
|
129
|
+
Inputs: failure records, proof registry, rerun
|
|
130
|
+
requests, executor history, task graph
|
|
126
131
|
Outputs: retry plan with explicit contract:
|
|
127
132
|
- why_resuming
|
|
128
133
|
- invalidated (task ids)
|
|
@@ -148,26 +153,27 @@ wave-state-reducer.mjs Rebuilds full wave state from canonical authority set
|
|
|
148
153
|
|
|
149
154
|
The supervisor is the only module that interacts with the outside world: launching processes, managing terminals, and monitoring sessions. It reads decisions from phase engines and executes them. It is the only module that writes observed lifecycle events.
|
|
150
155
|
|
|
151
|
-
The projection writer is the single module responsible for
|
|
156
|
+
The projection writer is the single module responsible for projection writes. Workflow-owned compatibility state, clarification triage, and canonical coordination/control-plane mutations stay in their own modules.
|
|
152
157
|
|
|
153
158
|
```
|
|
154
159
|
session-supervisor.mjs Launches and monitors agent sessions
|
|
155
|
-
|
|
156
|
-
|
|
160
|
+
Inputs: run selections / launch requests from
|
|
161
|
+
implementation engine and closure engine,
|
|
162
|
+
launch specs from executor adapters
|
|
157
163
|
Owns: process lifecycle, tmux sessions,
|
|
158
164
|
terminal surfaces, PID tracking,
|
|
159
165
|
lock management, rate-limit retry loops,
|
|
160
166
|
resident orchestrator sessions
|
|
161
|
-
Writes:
|
|
162
|
-
|
|
163
|
-
|
|
167
|
+
Writes: wave_run.started|completed|failed,
|
|
168
|
+
attempt.running|completed|failed,
|
|
169
|
+
agent_run.started|completed|failed|timed_out
|
|
164
170
|
Observes: human feedback responses (collects and
|
|
165
171
|
submits, but does NOT own SLA, reroute,
|
|
166
172
|
escalation, or timeout policy — those
|
|
167
173
|
are control-plane workflow semantics
|
|
168
174
|
materialized by the reducer)
|
|
169
175
|
|
|
170
|
-
projection-writer.mjs Writes
|
|
176
|
+
projection-writer.mjs Writes projection outputs
|
|
171
177
|
(new) Inputs: derived state from materializer,
|
|
172
178
|
gate verdicts from gate engine,
|
|
173
179
|
wave state from reducer
|
|
@@ -175,7 +181,10 @@ projection-writer.mjs Writes all non-canonical outputs
|
|
|
175
181
|
markdown board projections,
|
|
176
182
|
coordination board projection,
|
|
177
183
|
trace bundles, quality metrics,
|
|
178
|
-
|
|
184
|
+
shared summaries, inboxes, assignment
|
|
185
|
+
and dependency snapshots, ledger,
|
|
186
|
+
docs queue, security summary,
|
|
187
|
+
integration summary
|
|
179
188
|
Rule: never reads its own outputs,
|
|
180
189
|
always writes atomically,
|
|
181
190
|
labels every artifact with its class
|
|
@@ -192,15 +201,16 @@ launcher.mjs Thin orchestrator
|
|
|
192
201
|
3. For each wave:
|
|
193
202
|
a. reducer.rebuild() → current state
|
|
194
203
|
b. retry-engine.plan() → retry decisions
|
|
195
|
-
c. implementation-engine.select() →
|
|
196
|
-
|
|
197
|
-
|
|
204
|
+
c. implementation-engine.select() → run selections
|
|
205
|
+
(design-first when the wave declares design workers)
|
|
206
|
+
d. derived-state-engine.materialize() → derived payloads
|
|
207
|
+
e. supervisor.launch(run selections) → agent sessions
|
|
198
208
|
(supervisor writes agent_run.started)
|
|
199
209
|
f. supervisor.wait() → completion
|
|
200
210
|
(supervisor writes agent_run.completed)
|
|
201
211
|
g. gate-engine.evaluate() → gate verdicts
|
|
202
212
|
h. closure-engine.sequence() → closure phases
|
|
203
|
-
i. projection-writer.write() →
|
|
213
|
+
i. projection-writer.write() → persisted projections
|
|
204
214
|
4. Release lock, exit
|
|
205
215
|
```
|
|
206
216
|
|
|
@@ -361,11 +371,11 @@ All tasks in the wave are `owned_slice_proven` AND all cross-cutting closure con
|
|
|
361
371
|
- no open clarification barriers
|
|
362
372
|
- no open helper assignment barriers
|
|
363
373
|
- no open cross-lane dependency barriers
|
|
364
|
-
- integration gate passed (A8)
|
|
365
|
-
- documentation gate passed (A9)
|
|
366
|
-
- cont-eval gate passed (E0) if applicable
|
|
374
|
+
- integration gate passed (effective integration steward; starter default `A8`)
|
|
375
|
+
- documentation gate passed (effective documentation steward; starter default `A9`)
|
|
376
|
+
- cont-eval gate passed (effective `cont-EVAL`; starter default `E0`) if applicable
|
|
367
377
|
- security gate passed if applicable
|
|
368
|
-
- cont-qa final verdict is PASS (A0)
|
|
378
|
+
- cont-qa final verdict is PASS (effective `cont-QA`; starter default `A0`)
|
|
369
379
|
- component matrix promotions validated
|
|
370
380
|
|
|
371
381
|
Only when `wave_closure_ready` is true does the closure engine emit the `wave_run.completed` event.
|
|
@@ -499,13 +509,11 @@ Agent result envelopes are classified as canonical structured snapshots and must
|
|
|
499
509
|
.tmp/<lane>-wave-launcher/results/wave-<N>/attempt-<A>/<agentId>.json
|
|
500
510
|
```
|
|
501
511
|
|
|
502
|
-
###
|
|
503
|
-
|
|
504
|
-
- Phase 1: agents emit the envelope alongside existing log markers. Gate engine reads the envelope when present, falls back to the legacy adapter.
|
|
505
|
-
- Phase 2: gate engine requires the envelope. Log markers become human-readable only.
|
|
506
|
-
- Phase 3: log-parsing code is removed.
|
|
512
|
+
### Current runtime behavior
|
|
507
513
|
|
|
508
|
-
|
|
514
|
+
- Live runs read and write the attempt-scoped canonical envelope path directly.
|
|
515
|
+
- Legacy sibling `*.envelope.json` files and marker-era artifacts are compatibility import inputs for replay, reconcile, and historical trace materialization only.
|
|
516
|
+
- `synthesizeLegacyEnvelope()` remains explicit migration-only compatibility code; live gate, retry, closure, and reducer decisions do not use it as a correctness path.
|
|
509
517
|
|
|
510
518
|
---
|
|
511
519
|
|
|
@@ -545,15 +553,17 @@ Projections materialized from Class 1 and Class 2 sources. Can be deleted and re
|
|
|
545
553
|
| Relaunch plan | `.tmp/<lane>-wave-launcher/status/relaunch-plan-wave-<N>.json` | JSON |
|
|
546
554
|
| Assignment snapshot | `.tmp/<lane>-wave-launcher/assignments/wave-<N>.json` | JSON |
|
|
547
555
|
| Dependency snapshot | `.tmp/<lane>-wave-launcher/dependencies/wave-<N>.json` | JSON |
|
|
548
|
-
| Shared summary | `.tmp/<lane>-wave-launcher/
|
|
556
|
+
| Shared summary | `.tmp/<lane>-wave-launcher/inboxes/wave-<N>/shared-summary.md` | Markdown |
|
|
549
557
|
| Per-agent inbox | `.tmp/<lane>-wave-launcher/inboxes/wave-<N>/<agentId>.md` | Markdown |
|
|
550
|
-
| Ledger | `.tmp/<lane>-wave-launcher/
|
|
558
|
+
| Ledger | `.tmp/<lane>-wave-launcher/ledger/wave-<N>.json` | JSON |
|
|
551
559
|
| Docs queue | `.tmp/<lane>-wave-launcher/docs-queue/wave-<N>.json` | JSON |
|
|
552
|
-
| Security summary | `.tmp/<lane>-wave-launcher/
|
|
553
|
-
|
|
|
560
|
+
| Security summary JSON | `.tmp/<lane>-wave-launcher/security/wave-<N>.json` | JSON |
|
|
561
|
+
| Security summary markdown | `.tmp/<lane>-wave-launcher/security/wave-<N>.md` | Markdown |
|
|
562
|
+
| Integration summary JSON | `.tmp/<lane>-wave-launcher/integration/wave-<N>.json` | JSON |
|
|
563
|
+
| Integration summary markdown | `.tmp/<lane>-wave-launcher/integration/wave-<N>.md` | Markdown |
|
|
554
564
|
| Run state | `.tmp/<lane>-wave-launcher/run-state.json` | JSON |
|
|
555
565
|
| Quality metrics | `.tmp/<lane>-wave-launcher/traces/wave-<N>/attempt-<A>/quality.json` | JSON |
|
|
556
|
-
|
|
|
566
|
+
| Reducer snapshot | `.tmp/<lane>-wave-launcher/reducer/wave-<N>.json` | JSON |
|
|
557
567
|
|
|
558
568
|
### Class 4 — Human-Facing Projections
|
|
559
569
|
|
|
@@ -563,9 +573,9 @@ Convenience outputs for operator dashboards and review. Never read by the system
|
|
|
563
573
|
|----------|------|--------|
|
|
564
574
|
| Global dashboard | `.tmp/<lane>-wave-launcher/dashboards/global.json` | JSON |
|
|
565
575
|
| Wave dashboard | `.tmp/<lane>-wave-launcher/dashboards/wave-<N>.json` | JSON |
|
|
566
|
-
| Coordination board | `.tmp/<lane>-wave-launcher/
|
|
567
|
-
| Orchestrator board | `.tmp
|
|
568
|
-
| Wave manifest | `.tmp/<lane>-wave-launcher/
|
|
576
|
+
| Coordination board | `.tmp/<lane>-wave-launcher/messageboards/wave-<N>.md` | Markdown |
|
|
577
|
+
| Orchestrator board | `.tmp/wave-orchestrator/messageboards/orchestrator.md` | Markdown |
|
|
578
|
+
| Wave manifest | `.tmp/<lane>-wave-launcher/waves.manifest.json` | JSON |
|
|
569
579
|
|
|
570
580
|
Each artifact file includes a `_meta` field (or frontmatter for markdown) declaring:
|
|
571
581
|
|
|
@@ -839,23 +849,31 @@ This boundary means a future Temporal-backed or service-backed orchestrator can
|
|
|
839
849
|
|
|
840
850
|
---
|
|
841
851
|
|
|
842
|
-
##
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
|
847
|
-
|
|
848
|
-
| `launcher.mjs`
|
|
849
|
-
| `
|
|
850
|
-
| `
|
|
851
|
-
| `
|
|
852
|
-
| `
|
|
853
|
-
| `
|
|
854
|
-
| `
|
|
855
|
-
|
|
|
856
|
-
|
|
|
857
|
-
|
|
|
858
|
-
|
|
|
852
|
+
## Runtime Module Layout
|
|
853
|
+
|
|
854
|
+
The runtime tree now uses the engine-oriented module names directly.
|
|
855
|
+
|
|
856
|
+
| Runtime Module | Responsibility |
|
|
857
|
+
|---------------|----------------|
|
|
858
|
+
| `launcher.mjs` | Thin orchestrator and CLI entrypoint |
|
|
859
|
+
| `implementation-engine.mjs` | Implementation fan-out planning |
|
|
860
|
+
| `derived-state-engine.mjs` | Derived state computation from canonical inputs |
|
|
861
|
+
| `gate-engine.mjs` | Live gate evaluation |
|
|
862
|
+
| `closure-engine.mjs` | Closure sequencing |
|
|
863
|
+
| `retry-engine.mjs` | Retry and resume planning |
|
|
864
|
+
| `wave-state-reducer.mjs` | Deterministic wave-state reconstruction |
|
|
865
|
+
| `session-supervisor.mjs` | Session launch and observation |
|
|
866
|
+
| `projection-writer.mjs` | Projection writes |
|
|
867
|
+
| `result-envelope.mjs` | Envelope schema, validation, and compatibility synthesis |
|
|
868
|
+
| `launcher-runtime.mjs` | Low-level launch and wait helpers used by the session supervisor |
|
|
869
|
+
| `control-plane.mjs` | Canonical control-plane event log |
|
|
870
|
+
| `coordination-store.mjs` | Canonical coordination log |
|
|
871
|
+
| `wave-files.mjs` | Parsed wave definitions |
|
|
872
|
+
|
|
873
|
+
Historical note:
|
|
874
|
+
|
|
875
|
+
- earlier transition builds used `launcher-gates.mjs`, `launcher-retry.mjs`, `launcher-derived-state.mjs`, `launcher-closure.mjs`, and `launcher-supervisor.mjs` as extracted runtime modules
|
|
876
|
+
- those compatibility names are no longer part of the live runtime tree
|
|
859
877
|
| (new) | `contradiction-entity.mjs` | Contradiction lifecycle |
|
|
860
878
|
| (new) | `fact-entity.mjs` | Fact/evidence lineage |
|
|
861
879
|
| (new) | `human-input-workflow.mjs` | Human input workflow logic |
|
|
@@ -900,7 +918,7 @@ This section documents the 10 feedback corrections incorporated from architectur
|
|
|
900
918
|
|
|
901
919
|
2. **Task vs coordination_record boundary:** added an explicit section defining the crisp rule. Task = durable work unit with ownership, artifact contract, proof rules, closure semantics. Coordination record = event or message about a task. They do not overlap.
|
|
902
920
|
|
|
903
|
-
3. **Intent vs observation:**
|
|
921
|
+
3. **Intent vs observation:** planning engines emit run selections or launch requests (intent). Only the session supervisor writes `wave_run.*`, `attempt.*`, and `agent_run.*` observed lifecycle facts after those events actually happen.
|
|
904
922
|
|
|
905
923
|
4. **Reducer input model:** the reducer explicitly takes all three canonical sources (control-plane events, coordination records, agent result envelopes) as arguments. The doc no longer claims a single event log.
|
|
906
924
|
|
|
@@ -914,7 +932,7 @@ This section documents the 10 feedback corrections incorporated from architectur
|
|
|
914
932
|
|
|
915
933
|
9. **Human input workflow ownership:** explicitly moved SLA, reroute, escalation, and timeout logic out of the supervisor. The supervisor observes and submits; workflow semantics live in control-plane events, the reducer, and `human-input-workflow.mjs`.
|
|
916
934
|
|
|
917
|
-
10. **Executor adapter contract:** `
|
|
935
|
+
10. **Executor adapter contract:** `locateResultEnvelope()` + `validateResultEnvelope()` define the live end state, and `synthesizeLegacyEnvelope()` is explicitly named as migration-only compatibility code.
|
|
918
936
|
|
|
919
937
|
---
|
|
920
938
|
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
# Wave 12 - Optional Design Steward Handoff
|
|
2
|
+
|
|
3
|
+
This is a showcase-first sample wave for the shipped `design` worker role in `0.8.5`.
|
|
4
|
+
|
|
5
|
+
This example demonstrates the docs-first design-steward path where a design packet is published before code-owning implementation begins.
|
|
6
|
+
|
|
7
|
+
Use this shape when:
|
|
8
|
+
|
|
9
|
+
- the task has interface or architecture ambiguity
|
|
10
|
+
- multiple implementation owners need the same decisions and assumptions
|
|
11
|
+
- you want explicit design lineage instead of re-deriving the same plan in each coding prompt
|
|
12
|
+
|
|
13
|
+
If you want the hybrid design-steward variant instead, keep the same packet path but also assign that same design agent implementation-owned files plus the normal implementation contract sections. The runtime will then run the design pass first and include that same agent in the later implementation fan-out.
|
|
14
|
+
|
|
15
|
+
**Commit message**: `Feat: add design packet before implementation fan-out`
|
|
16
|
+
|
|
17
|
+
## Component promotions
|
|
18
|
+
|
|
19
|
+
- api-boundary: repo-landed
|
|
20
|
+
- runtime-integration: repo-landed
|
|
21
|
+
|
|
22
|
+
## Context7 defaults
|
|
23
|
+
|
|
24
|
+
- bundle: node-typescript
|
|
25
|
+
- query: "Interface boundaries, migration sequencing, and implementation handoff patterns for repository work"
|
|
26
|
+
|
|
27
|
+
## Agent A0: cont-QA
|
|
28
|
+
|
|
29
|
+
### Role prompts
|
|
30
|
+
|
|
31
|
+
- docs/agents/wave-cont-qa-role.md
|
|
32
|
+
|
|
33
|
+
### Executor
|
|
34
|
+
|
|
35
|
+
- profile: deep-review
|
|
36
|
+
|
|
37
|
+
### Context7
|
|
38
|
+
|
|
39
|
+
- bundle: none
|
|
40
|
+
|
|
41
|
+
### Prompt
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
Primary goal:
|
|
45
|
+
- Judge whether the design packet, implementation slices, and closure evidence line up without hidden architectural drift.
|
|
46
|
+
|
|
47
|
+
Required context before coding:
|
|
48
|
+
- Read docs/reference/repository-guidance.md.
|
|
49
|
+
- Read docs/plans/current-state.md and docs/plans/migration.md.
|
|
50
|
+
- Read docs/plans/waves/design/wave-12-D1.md.
|
|
51
|
+
|
|
52
|
+
File ownership (only touch these paths):
|
|
53
|
+
- docs/plans/waves/reviews/wave-12-cont-qa.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Agent A8: Integration Steward
|
|
57
|
+
|
|
58
|
+
### Role prompts
|
|
59
|
+
|
|
60
|
+
- docs/agents/wave-integration-role.md
|
|
61
|
+
|
|
62
|
+
### Executor
|
|
63
|
+
|
|
64
|
+
- profile: deep-review
|
|
65
|
+
|
|
66
|
+
### Context7
|
|
67
|
+
|
|
68
|
+
- bundle: none
|
|
69
|
+
|
|
70
|
+
### Prompt
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Primary goal:
|
|
74
|
+
- Reconcile the landed implementation against the design packet and the actual repo changes.
|
|
75
|
+
|
|
76
|
+
Required context before coding:
|
|
77
|
+
- Read docs/plans/current-state.md.
|
|
78
|
+
- Read docs/plans/waves/design/wave-12-D1.md.
|
|
79
|
+
|
|
80
|
+
File ownership (only touch these paths):
|
|
81
|
+
- .tmp/main-wave-launcher/integration/wave-12.md
|
|
82
|
+
- .tmp/main-wave-launcher/integration/wave-12.json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Agent A9: Documentation Steward
|
|
86
|
+
|
|
87
|
+
### Role prompts
|
|
88
|
+
|
|
89
|
+
- docs/agents/wave-documentation-role.md
|
|
90
|
+
|
|
91
|
+
### Executor
|
|
92
|
+
|
|
93
|
+
- profile: docs-pass
|
|
94
|
+
|
|
95
|
+
### Context7
|
|
96
|
+
|
|
97
|
+
- bundle: none
|
|
98
|
+
|
|
99
|
+
### Prompt
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
Primary goal:
|
|
103
|
+
- Keep the shared docs and migration notes aligned with the design packet and final implementation outcome.
|
|
104
|
+
|
|
105
|
+
Required context before coding:
|
|
106
|
+
- Read docs/plans/current-state.md.
|
|
107
|
+
- Read docs/plans/migration.md.
|
|
108
|
+
- Read docs/plans/waves/design/wave-12-D1.md.
|
|
109
|
+
|
|
110
|
+
File ownership (only touch these paths):
|
|
111
|
+
- docs/plans/current-state.md
|
|
112
|
+
- docs/plans/migration.md
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Agent D1: Design Steward
|
|
116
|
+
|
|
117
|
+
### Role prompts
|
|
118
|
+
|
|
119
|
+
- docs/agents/wave-design-role.md
|
|
120
|
+
|
|
121
|
+
### Executor
|
|
122
|
+
|
|
123
|
+
- profile: design-pass
|
|
124
|
+
|
|
125
|
+
### Context7
|
|
126
|
+
|
|
127
|
+
- bundle: none
|
|
128
|
+
|
|
129
|
+
### Skills
|
|
130
|
+
|
|
131
|
+
- role-design
|
|
132
|
+
|
|
133
|
+
Add `tui-design` here too when the design packet owns terminal UX, dashboards, or other operator-surface behavior. Omit it for generic API or migration design.
|
|
134
|
+
|
|
135
|
+
### Capabilities
|
|
136
|
+
|
|
137
|
+
- design
|
|
138
|
+
- interface-handoff
|
|
139
|
+
- decision-lineage
|
|
140
|
+
|
|
141
|
+
### Prompt
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
Primary goal:
|
|
145
|
+
- Produce the implementation-ready design packet for the Wave 12 slice before coding starts.
|
|
146
|
+
|
|
147
|
+
Required context before coding:
|
|
148
|
+
- Read docs/reference/repository-guidance.md.
|
|
149
|
+
- Read docs/plans/current-state.md.
|
|
150
|
+
- Read docs/plans/migration.md.
|
|
151
|
+
|
|
152
|
+
Specific expectations:
|
|
153
|
+
- make the implementation handoff concrete enough that A1 and A2 can start without re-deriving the same architecture
|
|
154
|
+
- keep assumptions and open questions explicit
|
|
155
|
+
- do not silently expand into source-code changes
|
|
156
|
+
|
|
157
|
+
File ownership (only touch these paths):
|
|
158
|
+
- docs/plans/waves/design/wave-12-D1.md
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Agent A1: API Boundary Update
|
|
162
|
+
|
|
163
|
+
### Executor
|
|
164
|
+
|
|
165
|
+
- profile: implement-fast
|
|
166
|
+
|
|
167
|
+
### Context7
|
|
168
|
+
|
|
169
|
+
- bundle: node-typescript
|
|
170
|
+
- query: "API boundary refactors and compatibility-safe migration sequencing"
|
|
171
|
+
|
|
172
|
+
### Skills
|
|
173
|
+
|
|
174
|
+
- role-implementation
|
|
175
|
+
- runtime-codex
|
|
176
|
+
- repo-coding-rules
|
|
177
|
+
|
|
178
|
+
### Components
|
|
179
|
+
|
|
180
|
+
- api-boundary
|
|
181
|
+
|
|
182
|
+
### Deliverables
|
|
183
|
+
|
|
184
|
+
- scripts/wave-orchestrator/api-boundary.mjs
|
|
185
|
+
- test/wave-orchestrator/api-boundary.test.ts
|
|
186
|
+
|
|
187
|
+
### Exit contract
|
|
188
|
+
|
|
189
|
+
- completion: integrated
|
|
190
|
+
- durability: durable
|
|
191
|
+
- proof: integration
|
|
192
|
+
- doc-impact: none
|
|
193
|
+
|
|
194
|
+
### Prompt
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
Primary goal:
|
|
198
|
+
- Land the API-boundary changes described in the Wave 12 design packet.
|
|
199
|
+
|
|
200
|
+
Required context before coding:
|
|
201
|
+
- Read docs/plans/waves/design/wave-12-D1.md before changing code.
|
|
202
|
+
|
|
203
|
+
File ownership (only touch these paths):
|
|
204
|
+
- scripts/wave-orchestrator/api-boundary.mjs
|
|
205
|
+
- test/wave-orchestrator/api-boundary.test.ts
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Agent A2: Runtime Integration Update
|
|
209
|
+
|
|
210
|
+
### Executor
|
|
211
|
+
|
|
212
|
+
- profile: implement-fast
|
|
213
|
+
|
|
214
|
+
### Context7
|
|
215
|
+
|
|
216
|
+
- bundle: node-typescript
|
|
217
|
+
- query: "Runtime integration updates and handoff-safe staged migration"
|
|
218
|
+
|
|
219
|
+
### Skills
|
|
220
|
+
|
|
221
|
+
- role-implementation
|
|
222
|
+
- runtime-codex
|
|
223
|
+
- repo-coding-rules
|
|
224
|
+
|
|
225
|
+
### Components
|
|
226
|
+
|
|
227
|
+
- runtime-integration
|
|
228
|
+
|
|
229
|
+
### Deliverables
|
|
230
|
+
|
|
231
|
+
- scripts/wave-orchestrator/runtime-integration.mjs
|
|
232
|
+
- test/wave-orchestrator/runtime-integration.test.ts
|
|
233
|
+
|
|
234
|
+
### Exit contract
|
|
235
|
+
|
|
236
|
+
- completion: integrated
|
|
237
|
+
- durability: durable
|
|
238
|
+
- proof: integration
|
|
239
|
+
- doc-impact: none
|
|
240
|
+
|
|
241
|
+
### Prompt
|
|
242
|
+
|
|
243
|
+
```text
|
|
244
|
+
Primary goal:
|
|
245
|
+
- Land the runtime integration changes described in the Wave 12 design packet.
|
|
246
|
+
|
|
247
|
+
Required context before coding:
|
|
248
|
+
- Read docs/plans/waves/design/wave-12-D1.md before changing code.
|
|
249
|
+
|
|
250
|
+
File ownership (only touch these paths):
|
|
251
|
+
- scripts/wave-orchestrator/runtime-integration.mjs
|
|
252
|
+
- test/wave-orchestrator/runtime-integration.test.ts
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Why This Example Exists
|
|
256
|
+
|
|
257
|
+
This example demonstrates the intended boundary:
|
|
258
|
+
|
|
259
|
+
- the design steward is report-first and docs/spec-owned
|
|
260
|
+
- implementation owners still own code changes and proof
|
|
261
|
+
- closure roles stay the same
|
|
262
|
+
- the design packet becomes an explicit handoff artifact instead of hidden reasoning inside one agent transcript
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This is a showcase-first sample wave.
|
|
4
4
|
|
|
5
|
-
Use it as the single reference example for the current `0.8.
|
|
5
|
+
Use it as the single reference example for the current `0.8.5` Wave surface.
|
|
6
6
|
|
|
7
7
|
It intentionally combines more sections than a normal production wave so one file can demonstrate:
|
|
8
8
|
|