@chllming/wave-orchestration 0.5.1
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 +41 -0
- package/README.md +549 -0
- package/docs/agents/wave-deploy-verifier-role.md +34 -0
- package/docs/agents/wave-documentation-role.md +30 -0
- package/docs/agents/wave-evaluator-role.md +43 -0
- package/docs/agents/wave-infra-role.md +34 -0
- package/docs/agents/wave-integration-role.md +32 -0
- package/docs/agents/wave-launcher-role.md +37 -0
- package/docs/context7/bundles.json +91 -0
- package/docs/plans/component-cutover-matrix.json +112 -0
- package/docs/plans/component-cutover-matrix.md +49 -0
- package/docs/plans/context7-wave-orchestrator.md +130 -0
- package/docs/plans/current-state.md +44 -0
- package/docs/plans/master-plan.md +16 -0
- package/docs/plans/migration.md +23 -0
- package/docs/plans/wave-orchestrator.md +254 -0
- package/docs/plans/waves/wave-0.md +165 -0
- package/docs/reference/github-packages-setup.md +52 -0
- package/docs/reference/migration-0.2-to-0.5.md +622 -0
- package/docs/reference/npmjs-trusted-publishing.md +55 -0
- package/docs/reference/repository-guidance.md +18 -0
- package/docs/reference/runtime-config/README.md +85 -0
- package/docs/reference/runtime-config/claude.md +105 -0
- package/docs/reference/runtime-config/codex.md +81 -0
- package/docs/reference/runtime-config/opencode.md +93 -0
- package/docs/research/agent-context-sources.md +57 -0
- package/docs/roadmap.md +626 -0
- package/package.json +53 -0
- package/releases/manifest.json +101 -0
- package/scripts/context7-api-check.sh +21 -0
- package/scripts/context7-export-env.sh +52 -0
- package/scripts/research/agent-context-archive.mjs +472 -0
- package/scripts/research/generate-agent-context-indexes.mjs +85 -0
- package/scripts/research/import-agent-context-archive.mjs +793 -0
- package/scripts/research/manifests/harness-and-blackboard-2026-03-21.mjs +201 -0
- package/scripts/wave-autonomous.mjs +13 -0
- package/scripts/wave-cli-bootstrap.mjs +27 -0
- package/scripts/wave-dashboard.mjs +11 -0
- package/scripts/wave-human-feedback.mjs +11 -0
- package/scripts/wave-launcher.mjs +11 -0
- package/scripts/wave-local-executor.mjs +13 -0
- package/scripts/wave-orchestrator/agent-state.mjs +416 -0
- package/scripts/wave-orchestrator/autonomous.mjs +367 -0
- package/scripts/wave-orchestrator/clarification-triage.mjs +605 -0
- package/scripts/wave-orchestrator/config.mjs +848 -0
- package/scripts/wave-orchestrator/context7.mjs +464 -0
- package/scripts/wave-orchestrator/coord-cli.mjs +286 -0
- package/scripts/wave-orchestrator/coordination-store.mjs +987 -0
- package/scripts/wave-orchestrator/coordination.mjs +768 -0
- package/scripts/wave-orchestrator/dashboard-renderer.mjs +254 -0
- package/scripts/wave-orchestrator/dashboard-state.mjs +473 -0
- package/scripts/wave-orchestrator/dep-cli.mjs +219 -0
- package/scripts/wave-orchestrator/docs-queue.mjs +75 -0
- package/scripts/wave-orchestrator/executors.mjs +385 -0
- package/scripts/wave-orchestrator/feedback.mjs +372 -0
- package/scripts/wave-orchestrator/install.mjs +540 -0
- package/scripts/wave-orchestrator/launcher.mjs +3879 -0
- package/scripts/wave-orchestrator/ledger.mjs +332 -0
- package/scripts/wave-orchestrator/local-executor.mjs +263 -0
- package/scripts/wave-orchestrator/replay.mjs +246 -0
- package/scripts/wave-orchestrator/roots.mjs +10 -0
- package/scripts/wave-orchestrator/routing-state.mjs +542 -0
- package/scripts/wave-orchestrator/shared.mjs +405 -0
- package/scripts/wave-orchestrator/terminals.mjs +209 -0
- package/scripts/wave-orchestrator/traces.mjs +1094 -0
- package/scripts/wave-orchestrator/wave-files.mjs +1923 -0
- package/scripts/wave.mjs +103 -0
- package/wave.config.json +115 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Wave Orchestrator
|
|
2
|
+
|
|
3
|
+
The Wave Orchestrator coordinates repository work as bounded execution waves.
|
|
4
|
+
|
|
5
|
+
## What It Does
|
|
6
|
+
|
|
7
|
+
- parses wave plans from `docs/plans/waves/`
|
|
8
|
+
- fans a wave out into one session per `## Agent ...` section
|
|
9
|
+
- supports standing role imports from `docs/agents/*.md`
|
|
10
|
+
- seeds a coordination log, generated board, compiled shared summary, and per-agent inboxes
|
|
11
|
+
- derives a per-wave ledger, docs queue, integration summary, and versioned per-attempt trace bundle
|
|
12
|
+
- validates Context7 declarations and exit contracts from configurable wave thresholds
|
|
13
|
+
- validates component promotions and component-owned proof from configurable wave thresholds
|
|
14
|
+
- writes prompts, logs, dashboards, coordination state, and status summaries under `.tmp/`
|
|
15
|
+
- supports launcher-side Context7 prefetch and injection for headless runs
|
|
16
|
+
- supports headless execution through `codex`, `claude`, `opencode`, and the local smoke executor
|
|
17
|
+
- supports a file-backed human feedback queue
|
|
18
|
+
- performs a closure sweep so integration, documentation, and evaluator gates reflect final landed state
|
|
19
|
+
|
|
20
|
+
## Main Commands
|
|
21
|
+
|
|
22
|
+
- `pnpm exec wave init`
|
|
23
|
+
- `pnpm exec wave init --adopt-existing`
|
|
24
|
+
- `pnpm exec wave doctor`
|
|
25
|
+
- `pnpm exec wave launch --lane main --dry-run --no-dashboard`
|
|
26
|
+
- `pnpm exec wave launch --lane main --start-wave 0 --end-wave 0 --executor codex --codex-sandbox danger-full-access`
|
|
27
|
+
- `pnpm exec wave launch --lane main --start-wave 0 --end-wave 0 --executor claude`
|
|
28
|
+
- `pnpm exec wave launch --lane main --start-wave 0 --end-wave 0 --executor opencode`
|
|
29
|
+
- `pnpm exec wave autonomous --lane main --executor codex --codex-sandbox danger-full-access`
|
|
30
|
+
- `pnpm exec wave feedback list --lane main --pending`
|
|
31
|
+
- `pnpm exec wave coord show --lane main --wave 0 --dry-run`
|
|
32
|
+
- `pnpm exec wave coord inbox --lane main --wave 0 --agent A1 --dry-run`
|
|
33
|
+
- `pnpm exec wave coord post --lane main --wave 0 --agent A1 --kind blocker --summary "Need repository decision"`
|
|
34
|
+
- `pnpm exec wave dep show --lane main --wave 0 --json`
|
|
35
|
+
- `pnpm exec wave dep post --owner-lane main --requester-lane release --owner-wave 0 --requester-wave 2 --agent launcher --summary "Need shared-plan reconciliation" --target capability:docs-shared-plan --required`
|
|
36
|
+
- `pnpm exec wave upgrade`
|
|
37
|
+
|
|
38
|
+
## Configuration
|
|
39
|
+
|
|
40
|
+
- `wave.config.json` controls docs roots, shared plan docs, role prompts, validation thresholds, executor defaults, executor profiles, per-lane runtime policy, component-cutover matrix paths, capability-routing preferences, and Context7 bundle-index location.
|
|
41
|
+
- `docs/context7/bundles.json` controls allowed external library bundles and lane defaults.
|
|
42
|
+
- `docs/plans/component-cutover-matrix.json` is the canonical machine-readable source for component maturity and per-wave promotion targets.
|
|
43
|
+
- `.wave/install-state.json` records how the workspace was initialized and which package version is installed.
|
|
44
|
+
|
|
45
|
+
## Setup
|
|
46
|
+
|
|
47
|
+
1. Install the package with `pnpm add -D @chllming/wave-orchestration`.
|
|
48
|
+
2. Confirm `tmux` and at least one real executor (`codex`, `claude`, or `opencode`) are available if you want real wave execution.
|
|
49
|
+
3. Run `pnpm exec wave init` for a fresh repo, or `pnpm exec wave init --adopt-existing` for a repo with existing Wave files you want preserved.
|
|
50
|
+
4. Review [wave.config.json](../../wave.config.json).
|
|
51
|
+
5. Review the role prompts and docs you want the repo to own.
|
|
52
|
+
|
|
53
|
+
## Recommended Launch Flow
|
|
54
|
+
|
|
55
|
+
1. Run health checks:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pnpm exec wave doctor
|
|
59
|
+
pnpm exec wave launch --lane main --dry-run --no-dashboard
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
2. Reconcile stale state if a prior run died mid-wave:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pnpm exec wave launch --lane main --reconcile-status
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
3. Inspect pending feedback:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
pnpm exec wave feedback list --lane main --pending
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
4. Launch one wave:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
pnpm exec wave launch --lane main --start-wave 0 --end-wave 0 --executor codex --codex-sandbox danger-full-access
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
5. Only move to `wave:autonomous` after single-wave runs are already stable.
|
|
81
|
+
|
|
82
|
+
## Coordination Surfaces
|
|
83
|
+
|
|
84
|
+
- `wave coord show` reads the materialized coordination state for a wave.
|
|
85
|
+
- `wave coord render` regenerates the markdown board projection from the canonical coordination log.
|
|
86
|
+
- `wave coord inbox` writes the compiled shared summary plus the selected agent inbox.
|
|
87
|
+
- `wave coord post` appends a structured record to the coordination log. This is the machine-readable path for blockers, handoffs, evidence, targeted requests, and clarification requests.
|
|
88
|
+
|
|
89
|
+
The canonical state is the JSONL log under `.tmp/<lane>-wave-launcher/coordination/`. The markdown board is a generated projection for humans, not the scheduler's source of truth.
|
|
90
|
+
|
|
91
|
+
Capability-targeted requests now become deterministic helper assignments. The launcher resolves the assignee from explicit targets, `capabilityRouting.preferredAgents`, then least-busy matching capability owners, writes that assignment into `.tmp/<lane>-wave-launcher/assignments/`, mirrors the decision into coordination state, and keeps the wave blocked until the linked follow-up resolves.
|
|
92
|
+
|
|
93
|
+
Clarification flow is orchestrator-first:
|
|
94
|
+
|
|
95
|
+
1. Agent emits `clarification-request` through `wave coord post`.
|
|
96
|
+
2. The launcher triages it from repo policy, ownership, prior decisions, or targeted rerouting.
|
|
97
|
+
3. Only unresolved items become human feedback tickets.
|
|
98
|
+
4. Routed clarification follow-up requests remain blocking until they resolve.
|
|
99
|
+
5. Human escalations are written back into coordination state, the ledger, and trace artifacts.
|
|
100
|
+
|
|
101
|
+
## Cross-Lane Dependencies
|
|
102
|
+
|
|
103
|
+
- `wave dep post` appends a typed dependency ticket under `.tmp/wave-orchestrator/dependencies/`.
|
|
104
|
+
- `wave dep show` materializes the inbound/outbound dependency snapshot for a lane and wave.
|
|
105
|
+
- `wave dep resolve` closes or updates an existing dependency ticket.
|
|
106
|
+
- `wave dep render` writes a markdown dependency projection next to the JSONL store for human review.
|
|
107
|
+
|
|
108
|
+
Required inbound dependencies block autonomous next-wave start and lane finalization. Required outbound dependencies are surfaced in the per-wave dependency snapshot and keep the requester wave from closing while they remain part of that wave's exit conditions.
|
|
109
|
+
|
|
110
|
+
## Upgrade Flow
|
|
111
|
+
|
|
112
|
+
1. Upgrade the package version:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
pnpm up @chllming/wave-orchestration
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
2. Record the upgrade and review release notes:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
pnpm exec wave upgrade
|
|
122
|
+
pnpm exec wave changelog --since-installed
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
3. Review `.wave/upgrade-history/` for any manual follow-up. The upgrade flow does not overwrite repo-owned plans, waves, or config.
|
|
126
|
+
|
|
127
|
+
## What The Launcher Writes
|
|
128
|
+
|
|
129
|
+
- prompts: `.tmp/<lane>-wave-launcher/prompts/`
|
|
130
|
+
- logs: `.tmp/<lane>-wave-launcher/logs/`
|
|
131
|
+
- status summaries: `.tmp/<lane>-wave-launcher/status/`
|
|
132
|
+
- coordination logs: `.tmp/<lane>-wave-launcher/coordination/`
|
|
133
|
+
- helper-assignment snapshots: `.tmp/<lane>-wave-launcher/assignments/`
|
|
134
|
+
- message boards: `.tmp/<lane>-wave-launcher/messageboards/`
|
|
135
|
+
- compiled inboxes: `.tmp/<lane>-wave-launcher/inboxes/`
|
|
136
|
+
- ledger: `.tmp/<lane>-wave-launcher/ledger/`
|
|
137
|
+
- integration summaries: `.tmp/<lane>-wave-launcher/integration/`
|
|
138
|
+
These summaries now carry actionable evidence for conflicting claims, changed interfaces, cross-component impacts, proof gaps, documentation gaps, and deploy or ops risk.
|
|
139
|
+
- dependency snapshots: `.tmp/<lane>-wave-launcher/dependencies/`
|
|
140
|
+
- docs queue: `.tmp/<lane>-wave-launcher/docs-queue/`
|
|
141
|
+
- trace bundles: `.tmp/<lane>-wave-launcher/traces/`
|
|
142
|
+
- clarification triage: `.tmp/<lane>-wave-launcher/feedback/triage/`
|
|
143
|
+
- dashboards: `.tmp/<lane>-wave-launcher/dashboards/`
|
|
144
|
+
- Context7 cache: `.tmp/<lane>-wave-launcher/context7-cache/`
|
|
145
|
+
- executor overlays: `.tmp/<lane>-wave-launcher/executors/`
|
|
146
|
+
- cross-lane dependencies: `.tmp/wave-orchestrator/dependencies/`
|
|
147
|
+
Required inbound tickets in this directory block both autonomous wave launch and lane finalization until they resolve.
|
|
148
|
+
- cross-wave orchestration board: `.tmp/wave-orchestrator/messageboards/orchestrator.md`
|
|
149
|
+
|
|
150
|
+
## Trace Contract
|
|
151
|
+
|
|
152
|
+
- Dry-run is pre-attempt only. It writes manifest, coordination, board projection, inboxes, ledger, docs queue, and integration state under `.tmp/<lane>-wave-launcher/dry-run/`.
|
|
153
|
+
- Dry-run does not write `attempt-<k>` snapshots. The dry-run `traces/` directory can exist, but it should remain file-empty.
|
|
154
|
+
- A live attempt writes a hermetic `traceVersion: 2` bundle at `.tmp/<lane>-wave-launcher/traces/wave-<n>/attempt-<k>/` with:
|
|
155
|
+
- `manifest.json`
|
|
156
|
+
- `coordination.raw.jsonl`
|
|
157
|
+
- `coordination.materialized.json`
|
|
158
|
+
- `ledger.json`
|
|
159
|
+
- `docs-queue.json`
|
|
160
|
+
- `integration.json`
|
|
161
|
+
- `outcome.json`
|
|
162
|
+
- `shared-summary.md`
|
|
163
|
+
- copied prompt, log, status, inbox, and summary artifacts per launched agent
|
|
164
|
+
- `structured-signals.json`
|
|
165
|
+
- `quality.json`
|
|
166
|
+
- `run-metadata.json`
|
|
167
|
+
- `run-metadata.json` is the canonical trace index. It records attempt settings, artifact presence, executor history, prompt hashes, Context7 snippet hashes, the gate snapshot, `replayContext`, and the cumulative `historySnapshot` for that attempt.
|
|
168
|
+
- `outcome.json` is the stored replay baseline. Replay compares recomputed gates and quality against it instead of trusting only inline metadata.
|
|
169
|
+
- For `traceVersion: 2`, launched agents must have copied prompt/log/status/inbox/summary artifacts, and promoted-component waves must include the copied component matrix JSON.
|
|
170
|
+
- `quality.json` is cumulative through the current attempt. It is intended for regression comparison, not only for one-shot pass/fail reporting.
|
|
171
|
+
- `quality.json` also reports capability-assignment and dependency-resolution metrics in addition to the Phase 2/3 communication, fallback, and closure metrics.
|
|
172
|
+
- Replay support is internal. The source tree contains helpers to load, validate, and replay trace bundles against the same gate logic the launcher uses, but there is no public replay CLI yet.
|
|
173
|
+
- Replay is read-only and hash-validating for `traceVersion: 2` bundles. It ignores inline summary duplicates in `run-metadata.json` and returns a stored-vs-recomputed comparison report for gate and quality state. Legacy `traceVersion: 1` bundles remain best-effort and emit warnings instead of claiming full hermetic replay.
|
|
174
|
+
|
|
175
|
+
## Authoring Rules
|
|
176
|
+
|
|
177
|
+
- Every wave must include the configured evaluator agent.
|
|
178
|
+
- Under the starter config, every wave must also include the configured integration steward and documentation steward.
|
|
179
|
+
- From the configured thresholds onward, declare `## Component promotions` and keep them aligned with the component cutover matrix.
|
|
180
|
+
- From the configured thresholds onward, every non-A0/A8/A9 agent must declare `### Components` and emit `[wave-component]` markers for those components.
|
|
181
|
+
- `### Capabilities` is optional and lets the scheduler route targeted follow-up work by capability.
|
|
182
|
+
- `### Executor` can declare `profile`, `fallbacks`, `tags`, and runtime budgets in addition to vendor-specific overrides.
|
|
183
|
+
- Lane runtime policy can assign a default executor by role even when the wave omits `### Executor`.
|
|
184
|
+
- Use `### Role prompts` for standing-role imports from `docs/agents/*.md`.
|
|
185
|
+
- Optional standing roles available in this repo include `docs/agents/wave-infra-role.md` for infra proof and `docs/agents/wave-deploy-verifier-role.md` for rollout verification.
|
|
186
|
+
- Keep file ownership explicit inside each `### Prompt`.
|
|
187
|
+
- From the configured thresholds onward, declare `## Context7 defaults`, per-agent `### Context7`, and per-agent `### Exit contract`.
|
|
188
|
+
- Agents should use `wave coord post` for durable blockers, handoffs, evidence, and requests instead of relying on ad hoc board edits.
|
|
189
|
+
- Keep shared plan docs and the component cutover matrix owned by the configured documentation steward once that rule becomes active.
|
|
190
|
+
- Use the runtime reference pages for the full executor surface instead of relying on this runbook to enumerate every key:
|
|
191
|
+
[docs/reference/runtime-config/README.md](../reference/runtime-config/README.md),
|
|
192
|
+
[codex.md](../reference/runtime-config/codex.md),
|
|
193
|
+
[claude.md](../reference/runtime-config/claude.md),
|
|
194
|
+
[opencode.md](../reference/runtime-config/opencode.md).
|
|
195
|
+
|
|
196
|
+
## Executor Modes
|
|
197
|
+
|
|
198
|
+
- `--executor codex` uses `codex exec` with the generated task prompt piped through stdin.
|
|
199
|
+
- `--executor claude` uses `claude -p` with the generated task prompt as the message and a harness runtime system-prompt overlay.
|
|
200
|
+
- `--executor opencode` uses `opencode run` with a generated runtime `opencode.json` and agent prompt overlay.
|
|
201
|
+
- `--executor local` exists only for smoke-testing prompt and closure behavior.
|
|
202
|
+
- `--codex-sandbox danger-full-access` is the default because it avoids host bubblewrap assumptions.
|
|
203
|
+
- Resolution order is: per-agent explicit executor id, executor profile id, lane role default, CLI `--executor`, then `executors.default`.
|
|
204
|
+
- Runtime mix targets are enforced before launch and again before any retry-time fallback reassignment.
|
|
205
|
+
- Fallbacks are declared in profiles or lane policy, can be applied automatically on retry when the next executor is available and still satisfies mix targets, and are recorded in the ledger, integration summary, and traces when used.
|
|
206
|
+
- Generic `budget.minutes` caps per-agent attempt timeouts. Generic `budget.turns` seeds `claude.maxTurns` and `opencode.steps` when executor-specific values are not set.
|
|
207
|
+
- The launcher writes runtime overlay files under `.tmp/<lane>-wave-launcher/executors/`; these should stay ignored and local.
|
|
208
|
+
|
|
209
|
+
Runtime authoring examples:
|
|
210
|
+
|
|
211
|
+
````md
|
|
212
|
+
### Executor
|
|
213
|
+
|
|
214
|
+
- id: codex
|
|
215
|
+
- model: gpt-5-codex
|
|
216
|
+
- codex.profile_name: review
|
|
217
|
+
- codex.config: model_reasoning_effort=high
|
|
218
|
+
- codex.search: true
|
|
219
|
+
- codex.json: true
|
|
220
|
+
````
|
|
221
|
+
|
|
222
|
+
````md
|
|
223
|
+
### Executor
|
|
224
|
+
|
|
225
|
+
- id: claude
|
|
226
|
+
- model: claude-sonnet-4-6
|
|
227
|
+
- claude.settings_json: {"permissions":{"allow":["Read"]}}
|
|
228
|
+
- claude.hooks_json: {"Stop":[{"command":"echo stop"}]}
|
|
229
|
+
- claude.allowed_http_hook_urls: https://example.com/hooks
|
|
230
|
+
````
|
|
231
|
+
|
|
232
|
+
````md
|
|
233
|
+
### Executor
|
|
234
|
+
|
|
235
|
+
- id: opencode
|
|
236
|
+
- opencode.files: README.md,docs/plans/current-state.md
|
|
237
|
+
- opencode.config_json: {"instructions":["Keep shared-plan edits concise."]}
|
|
238
|
+
````
|
|
239
|
+
|
|
240
|
+
Dry-run is the intended validation path for these runtime surfaces. `wave launch --dry-run --no-dashboard` now writes compiled prompts, merged runtime overlays, and `launch-preview.json` files under `.tmp/<lane>-wave-launcher/dry-run/` so the harness can verify invocation shape without requiring the executor binaries to run.
|
|
241
|
+
|
|
242
|
+
## Human Feedback Queue
|
|
243
|
+
|
|
244
|
+
The file-backed feedback queue is now the final escalation layer, not the first-line clarification path. Operators can inspect and answer unresolved tickets with:
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
pnpm exec wave feedback list --lane main --pending
|
|
248
|
+
pnpm exec wave feedback show --id <request-id>
|
|
249
|
+
pnpm exec wave feedback respond --id <request-id> --response "..."
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Closure Sweep
|
|
253
|
+
|
|
254
|
+
If implementation agents ran, the launcher does not stop at `exit 0`. It checks implementation exit contracts, promoted component proof, helper assignments, required dependencies, and the integration recommendation first. Documentation and evaluator closure only run after integration is explicitly ready for doc closure; if integration reports `needs-more-work`, or if helper assignments or required dependency tickets remain open, the wave stops there and retries only the implicated owners plus the integration steward.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Wave 0 - Starter Scaffold Validation
|
|
2
|
+
|
|
3
|
+
**Commit message**: `Chore: validate starter wave scaffold`
|
|
4
|
+
|
|
5
|
+
## Component promotions
|
|
6
|
+
|
|
7
|
+
- wave-parser-and-launcher: repo-landed
|
|
8
|
+
- starter-docs-and-adoption-guidance: repo-landed
|
|
9
|
+
|
|
10
|
+
## Context7 defaults
|
|
11
|
+
|
|
12
|
+
- bundle: node-typescript
|
|
13
|
+
- query: "Node.js and TypeScript basics for orchestrator maintenance"
|
|
14
|
+
|
|
15
|
+
## Agent A0: Running Evaluator
|
|
16
|
+
|
|
17
|
+
### Role prompts
|
|
18
|
+
|
|
19
|
+
- docs/agents/wave-evaluator-role.md
|
|
20
|
+
|
|
21
|
+
### Executor
|
|
22
|
+
|
|
23
|
+
- id: codex
|
|
24
|
+
- model: gpt-5-codex
|
|
25
|
+
- codex.profile_name: review
|
|
26
|
+
- codex.search: true
|
|
27
|
+
- codex.json: true
|
|
28
|
+
|
|
29
|
+
### Context7
|
|
30
|
+
|
|
31
|
+
- bundle: none
|
|
32
|
+
|
|
33
|
+
### Prompt
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
Primary goal:
|
|
37
|
+
- Keep the starter scaffold coherent while the rest of the wave runs.
|
|
38
|
+
|
|
39
|
+
Required context before coding:
|
|
40
|
+
- Read docs/reference/repository-guidance.md.
|
|
41
|
+
- Read docs/research/agent-context-sources.md.
|
|
42
|
+
- Read docs/plans/master-plan.md, docs/plans/current-state.md, and docs/plans/migration.md.
|
|
43
|
+
|
|
44
|
+
File ownership (only touch these paths):
|
|
45
|
+
- docs/plans/waves/reviews/wave-0-evaluator.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Agent A8: Integration Steward
|
|
49
|
+
|
|
50
|
+
### Role prompts
|
|
51
|
+
|
|
52
|
+
- docs/agents/wave-integration-role.md
|
|
53
|
+
|
|
54
|
+
### Executor
|
|
55
|
+
|
|
56
|
+
- id: claude
|
|
57
|
+
- model: claude-sonnet-4-6
|
|
58
|
+
- claude.settings_json: {"permissions":{"allow":["Read"]}}
|
|
59
|
+
- claude.hooks_json: {"Stop":[{"command":"echo integration-stop"}]}
|
|
60
|
+
|
|
61
|
+
### Context7
|
|
62
|
+
|
|
63
|
+
- bundle: none
|
|
64
|
+
|
|
65
|
+
### Capabilities
|
|
66
|
+
|
|
67
|
+
- integration
|
|
68
|
+
- docs-shared-plan
|
|
69
|
+
|
|
70
|
+
### Prompt
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
Synthesize the wave before documentation and evaluator closure.
|
|
74
|
+
|
|
75
|
+
Required context before coding:
|
|
76
|
+
- Read docs/reference/repository-guidance.md.
|
|
77
|
+
- Read docs/research/agent-context-sources.md.
|
|
78
|
+
- Read docs/plans/master-plan.md, docs/plans/current-state.md, and docs/plans/migration.md.
|
|
79
|
+
|
|
80
|
+
File ownership (only touch these paths):
|
|
81
|
+
- .tmp/main-wave-launcher/integration/wave-0.md
|
|
82
|
+
- .tmp/main-wave-launcher/integration/wave-0.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
|
+
- id: opencode
|
|
94
|
+
- opencode.files: README.md,docs/plans/current-state.md
|
|
95
|
+
- opencode.config_json: {"instructions":["Keep shared plan docs concise and factual."]}
|
|
96
|
+
|
|
97
|
+
### Context7
|
|
98
|
+
|
|
99
|
+
- bundle: none
|
|
100
|
+
|
|
101
|
+
### Prompt
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
Keep the starter shared plan docs aligned with the landed Wave 0 outcomes.
|
|
105
|
+
|
|
106
|
+
Required context before coding:
|
|
107
|
+
- Read docs/reference/repository-guidance.md.
|
|
108
|
+
- Read docs/research/agent-context-sources.md.
|
|
109
|
+
|
|
110
|
+
File ownership (only touch these paths):
|
|
111
|
+
- docs/plans/current-state.md
|
|
112
|
+
- docs/plans/master-plan.md
|
|
113
|
+
- docs/plans/migration.md
|
|
114
|
+
- docs/plans/component-cutover-matrix.md
|
|
115
|
+
- docs/plans/component-cutover-matrix.json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Agent A1: Starter Runtime and Docs Review
|
|
119
|
+
|
|
120
|
+
### Executor
|
|
121
|
+
|
|
122
|
+
- profile: implement-fast
|
|
123
|
+
- model: gpt-5-codex
|
|
124
|
+
- codex.config: model_reasoning_effort=medium
|
|
125
|
+
- codex.add_dirs: docs,scripts
|
|
126
|
+
- fallbacks: claude, opencode
|
|
127
|
+
|
|
128
|
+
### Context7
|
|
129
|
+
|
|
130
|
+
- bundle: node-typescript
|
|
131
|
+
- query: "Node.js module layout, process spawning, and vitest test execution"
|
|
132
|
+
|
|
133
|
+
### Components
|
|
134
|
+
|
|
135
|
+
- wave-parser-and-launcher
|
|
136
|
+
- starter-docs-and-adoption-guidance
|
|
137
|
+
|
|
138
|
+
### Capabilities
|
|
139
|
+
|
|
140
|
+
- schema-migration
|
|
141
|
+
- frontend-validation
|
|
142
|
+
|
|
143
|
+
### Exit contract
|
|
144
|
+
|
|
145
|
+
- completion: contract
|
|
146
|
+
- durability: none
|
|
147
|
+
- proof: unit
|
|
148
|
+
- doc-impact: owned
|
|
149
|
+
|
|
150
|
+
### Prompt
|
|
151
|
+
|
|
152
|
+
```text
|
|
153
|
+
Review and tighten the starter runtime and test harness.
|
|
154
|
+
|
|
155
|
+
Required context before coding:
|
|
156
|
+
- Read docs/reference/repository-guidance.md.
|
|
157
|
+
- Read docs/research/agent-context-sources.md.
|
|
158
|
+
- Read docs/plans/wave-orchestrator.md and docs/plans/context7-wave-orchestrator.md.
|
|
159
|
+
|
|
160
|
+
File ownership (only touch these paths):
|
|
161
|
+
- README.md
|
|
162
|
+
- docs/plans/wave-orchestrator.md
|
|
163
|
+
- scripts/wave-orchestrator/wave-files.mjs
|
|
164
|
+
- test/wave-orchestrator/wave-files.test.ts
|
|
165
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# GitHub Packages Setup
|
|
2
|
+
|
|
3
|
+
Use this package through GitHub Packages under the `@chllming` scope.
|
|
4
|
+
|
|
5
|
+
GitHub's npm registry still requires authentication for installs from `npm.pkg.github.com`, even when the package and backing repository are public.
|
|
6
|
+
This remains the current install path for released versions until the npmjs publish workflow is used for a public npmjs release. If you want to prepare zero-token npmjs publishing for future releases, see [npmjs-trusted-publishing.md](./npmjs-trusted-publishing.md).
|
|
7
|
+
|
|
8
|
+
## `.npmrc`
|
|
9
|
+
|
|
10
|
+
Add a repository-local or user-level `.npmrc` entry like this:
|
|
11
|
+
|
|
12
|
+
```ini
|
|
13
|
+
@chllming:registry=https://npm.pkg.github.com
|
|
14
|
+
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
|
|
15
|
+
always-auth=true
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`GITHUB_TOKEN` should be a GitHub personal access token or an injected CI token with package read access.
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pnpm add -D @chllming/wave-orchestration
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Then initialize the workspace:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pnpm exec wave init
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
For repositories that already have Wave config, docs, or waves:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pnpm exec wave init --adopt-existing
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then verify the package and starter runtime against the target repo:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pnpm exec wave doctor
|
|
42
|
+
pnpm exec wave launch --lane main --dry-run --no-dashboard
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Upgrade
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pnpm up @chllming/wave-orchestration
|
|
49
|
+
pnpm exec wave upgrade
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The package upgrade changes the runtime version. `wave upgrade` writes the upgrade report and changelog files under `.wave/` without overwriting repo-owned plans, waves, or config.
|