@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.
Files changed (68) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +549 -0
  3. package/docs/agents/wave-deploy-verifier-role.md +34 -0
  4. package/docs/agents/wave-documentation-role.md +30 -0
  5. package/docs/agents/wave-evaluator-role.md +43 -0
  6. package/docs/agents/wave-infra-role.md +34 -0
  7. package/docs/agents/wave-integration-role.md +32 -0
  8. package/docs/agents/wave-launcher-role.md +37 -0
  9. package/docs/context7/bundles.json +91 -0
  10. package/docs/plans/component-cutover-matrix.json +112 -0
  11. package/docs/plans/component-cutover-matrix.md +49 -0
  12. package/docs/plans/context7-wave-orchestrator.md +130 -0
  13. package/docs/plans/current-state.md +44 -0
  14. package/docs/plans/master-plan.md +16 -0
  15. package/docs/plans/migration.md +23 -0
  16. package/docs/plans/wave-orchestrator.md +254 -0
  17. package/docs/plans/waves/wave-0.md +165 -0
  18. package/docs/reference/github-packages-setup.md +52 -0
  19. package/docs/reference/migration-0.2-to-0.5.md +622 -0
  20. package/docs/reference/npmjs-trusted-publishing.md +55 -0
  21. package/docs/reference/repository-guidance.md +18 -0
  22. package/docs/reference/runtime-config/README.md +85 -0
  23. package/docs/reference/runtime-config/claude.md +105 -0
  24. package/docs/reference/runtime-config/codex.md +81 -0
  25. package/docs/reference/runtime-config/opencode.md +93 -0
  26. package/docs/research/agent-context-sources.md +57 -0
  27. package/docs/roadmap.md +626 -0
  28. package/package.json +53 -0
  29. package/releases/manifest.json +101 -0
  30. package/scripts/context7-api-check.sh +21 -0
  31. package/scripts/context7-export-env.sh +52 -0
  32. package/scripts/research/agent-context-archive.mjs +472 -0
  33. package/scripts/research/generate-agent-context-indexes.mjs +85 -0
  34. package/scripts/research/import-agent-context-archive.mjs +793 -0
  35. package/scripts/research/manifests/harness-and-blackboard-2026-03-21.mjs +201 -0
  36. package/scripts/wave-autonomous.mjs +13 -0
  37. package/scripts/wave-cli-bootstrap.mjs +27 -0
  38. package/scripts/wave-dashboard.mjs +11 -0
  39. package/scripts/wave-human-feedback.mjs +11 -0
  40. package/scripts/wave-launcher.mjs +11 -0
  41. package/scripts/wave-local-executor.mjs +13 -0
  42. package/scripts/wave-orchestrator/agent-state.mjs +416 -0
  43. package/scripts/wave-orchestrator/autonomous.mjs +367 -0
  44. package/scripts/wave-orchestrator/clarification-triage.mjs +605 -0
  45. package/scripts/wave-orchestrator/config.mjs +848 -0
  46. package/scripts/wave-orchestrator/context7.mjs +464 -0
  47. package/scripts/wave-orchestrator/coord-cli.mjs +286 -0
  48. package/scripts/wave-orchestrator/coordination-store.mjs +987 -0
  49. package/scripts/wave-orchestrator/coordination.mjs +768 -0
  50. package/scripts/wave-orchestrator/dashboard-renderer.mjs +254 -0
  51. package/scripts/wave-orchestrator/dashboard-state.mjs +473 -0
  52. package/scripts/wave-orchestrator/dep-cli.mjs +219 -0
  53. package/scripts/wave-orchestrator/docs-queue.mjs +75 -0
  54. package/scripts/wave-orchestrator/executors.mjs +385 -0
  55. package/scripts/wave-orchestrator/feedback.mjs +372 -0
  56. package/scripts/wave-orchestrator/install.mjs +540 -0
  57. package/scripts/wave-orchestrator/launcher.mjs +3879 -0
  58. package/scripts/wave-orchestrator/ledger.mjs +332 -0
  59. package/scripts/wave-orchestrator/local-executor.mjs +263 -0
  60. package/scripts/wave-orchestrator/replay.mjs +246 -0
  61. package/scripts/wave-orchestrator/roots.mjs +10 -0
  62. package/scripts/wave-orchestrator/routing-state.mjs +542 -0
  63. package/scripts/wave-orchestrator/shared.mjs +405 -0
  64. package/scripts/wave-orchestrator/terminals.mjs +209 -0
  65. package/scripts/wave-orchestrator/traces.mjs +1094 -0
  66. package/scripts/wave-orchestrator/wave-files.mjs +1923 -0
  67. package/scripts/wave.mjs +103 -0
  68. 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.