@chllming/wave-orchestration 0.5.4 → 0.6.0
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 +46 -3
- package/README.md +33 -5
- package/docs/README.md +18 -4
- package/docs/agents/wave-cont-eval-role.md +36 -0
- package/docs/agents/{wave-evaluator-role.md → wave-cont-qa-role.md} +14 -11
- package/docs/agents/wave-documentation-role.md +1 -1
- package/docs/agents/wave-infra-role.md +1 -1
- package/docs/agents/wave-integration-role.md +3 -3
- package/docs/agents/wave-launcher-role.md +4 -3
- package/docs/agents/wave-security-role.md +40 -0
- package/docs/concepts/context7-vs-skills.md +1 -1
- package/docs/concepts/what-is-a-wave.md +56 -6
- package/docs/evals/README.md +166 -0
- package/docs/evals/benchmark-catalog.json +663 -0
- package/docs/guides/author-and-run-waves.md +135 -0
- package/docs/guides/planner.md +5 -0
- package/docs/guides/terminal-surfaces.md +2 -0
- package/docs/plans/component-cutover-matrix.json +1 -1
- package/docs/plans/component-cutover-matrix.md +1 -1
- package/docs/plans/current-state.md +19 -1
- package/docs/plans/examples/wave-example-live-proof.md +435 -0
- package/docs/plans/migration.md +42 -0
- package/docs/plans/wave-orchestrator.md +46 -7
- package/docs/plans/waves/wave-0.md +4 -4
- package/docs/reference/live-proof-waves.md +177 -0
- package/docs/reference/migration-0.2-to-0.5.md +26 -19
- package/docs/reference/npmjs-trusted-publishing.md +6 -5
- package/docs/reference/runtime-config/README.md +13 -3
- package/docs/reference/sample-waves.md +87 -0
- package/docs/reference/skills.md +110 -42
- package/docs/research/agent-context-sources.md +130 -11
- package/docs/research/coordination-failure-review.md +266 -0
- package/docs/roadmap.md +6 -2
- package/package.json +2 -2
- package/releases/manifest.json +20 -2
- package/scripts/research/agent-context-archive.mjs +83 -1
- package/scripts/research/manifests/agent-context-expanded-2026-03-22.mjs +811 -0
- package/scripts/wave-orchestrator/adhoc.mjs +1331 -0
- package/scripts/wave-orchestrator/agent-state.mjs +358 -6
- package/scripts/wave-orchestrator/artifact-schemas.mjs +173 -0
- package/scripts/wave-orchestrator/clarification-triage.mjs +10 -3
- package/scripts/wave-orchestrator/config.mjs +48 -12
- package/scripts/wave-orchestrator/context7.mjs +2 -0
- package/scripts/wave-orchestrator/coord-cli.mjs +51 -19
- package/scripts/wave-orchestrator/coordination-store.mjs +26 -4
- package/scripts/wave-orchestrator/coordination.mjs +83 -9
- package/scripts/wave-orchestrator/dashboard-state.mjs +20 -8
- package/scripts/wave-orchestrator/dep-cli.mjs +5 -2
- package/scripts/wave-orchestrator/docs-queue.mjs +8 -2
- package/scripts/wave-orchestrator/evals.mjs +451 -0
- package/scripts/wave-orchestrator/feedback.mjs +15 -1
- package/scripts/wave-orchestrator/install.mjs +32 -9
- package/scripts/wave-orchestrator/launcher-closure.mjs +281 -0
- package/scripts/wave-orchestrator/launcher-runtime.mjs +334 -0
- package/scripts/wave-orchestrator/launcher.mjs +709 -601
- package/scripts/wave-orchestrator/ledger.mjs +123 -20
- package/scripts/wave-orchestrator/local-executor.mjs +99 -12
- package/scripts/wave-orchestrator/planner.mjs +177 -42
- package/scripts/wave-orchestrator/replay.mjs +6 -3
- package/scripts/wave-orchestrator/role-helpers.mjs +84 -0
- package/scripts/wave-orchestrator/shared.mjs +75 -11
- package/scripts/wave-orchestrator/skills.mjs +637 -106
- package/scripts/wave-orchestrator/traces.mjs +71 -48
- package/scripts/wave-orchestrator/wave-files.mjs +947 -101
- package/scripts/wave.mjs +9 -0
- package/skills/README.md +202 -0
- package/skills/provider-aws/SKILL.md +111 -0
- package/skills/provider-aws/adapters/claude.md +1 -0
- package/skills/provider-aws/adapters/codex.md +1 -0
- package/skills/provider-aws/references/service-verification.md +39 -0
- package/skills/provider-aws/skill.json +50 -1
- package/skills/provider-custom-deploy/SKILL.md +59 -0
- package/skills/provider-custom-deploy/skill.json +46 -1
- package/skills/provider-docker-compose/SKILL.md +90 -0
- package/skills/provider-docker-compose/adapters/local.md +1 -0
- package/skills/provider-docker-compose/skill.json +49 -1
- package/skills/provider-github-release/SKILL.md +116 -1
- package/skills/provider-github-release/adapters/claude.md +1 -0
- package/skills/provider-github-release/adapters/codex.md +1 -0
- package/skills/provider-github-release/skill.json +51 -1
- package/skills/provider-kubernetes/SKILL.md +137 -0
- package/skills/provider-kubernetes/adapters/claude.md +1 -0
- package/skills/provider-kubernetes/adapters/codex.md +1 -0
- package/skills/provider-kubernetes/references/kubectl-patterns.md +58 -0
- package/skills/provider-kubernetes/skill.json +48 -1
- package/skills/provider-railway/SKILL.md +118 -1
- package/skills/provider-railway/references/verification-commands.md +39 -0
- package/skills/provider-railway/skill.json +67 -1
- package/skills/provider-ssh-manual/SKILL.md +91 -0
- package/skills/provider-ssh-manual/skill.json +50 -1
- package/skills/repo-coding-rules/SKILL.md +84 -0
- package/skills/repo-coding-rules/skill.json +30 -1
- package/skills/role-cont-eval/SKILL.md +90 -0
- package/skills/role-cont-eval/adapters/codex.md +1 -0
- package/skills/role-cont-eval/skill.json +36 -0
- package/skills/role-cont-qa/SKILL.md +93 -0
- package/skills/role-cont-qa/adapters/claude.md +1 -0
- package/skills/role-cont-qa/skill.json +36 -0
- package/skills/role-deploy/SKILL.md +90 -0
- package/skills/role-deploy/skill.json +32 -1
- package/skills/role-documentation/SKILL.md +66 -0
- package/skills/role-documentation/skill.json +32 -1
- package/skills/role-implementation/SKILL.md +62 -0
- package/skills/role-implementation/skill.json +32 -1
- package/skills/role-infra/SKILL.md +74 -0
- package/skills/role-infra/skill.json +32 -1
- package/skills/role-integration/SKILL.md +79 -1
- package/skills/role-integration/skill.json +32 -1
- package/skills/role-research/SKILL.md +58 -0
- package/skills/role-research/skill.json +32 -1
- package/skills/role-security/SKILL.md +60 -0
- package/skills/role-security/skill.json +36 -0
- package/skills/runtime-claude/SKILL.md +60 -1
- package/skills/runtime-claude/skill.json +32 -1
- package/skills/runtime-codex/SKILL.md +52 -1
- package/skills/runtime-codex/skill.json +32 -1
- package/skills/runtime-local/SKILL.md +39 -0
- package/skills/runtime-local/skill.json +32 -1
- package/skills/runtime-opencode/SKILL.md +51 -0
- package/skills/runtime-opencode/skill.json +32 -1
- package/skills/wave-core/SKILL.md +107 -0
- package/skills/wave-core/references/marker-syntax.md +62 -0
- package/skills/wave-core/skill.json +31 -1
- package/wave.config.json +35 -6
- package/skills/role-evaluator/SKILL.md +0 -6
- package/skills/role-evaluator/skill.json +0 -5
package/docs/plans/migration.md
CHANGED
|
@@ -21,3 +21,45 @@ GitHub Packages remains available as an authenticated fallback path, and maintai
|
|
|
21
21
|
- Existing `wave.config.json`, role prompts, plan docs, `skills/` bundles, Context7 bundles, and wave files are never overwritten by the upgrade flow.
|
|
22
22
|
- Fresh `wave init` seeds the starter `skills/` library. `wave init --adopt-existing` records existing repo-owned skill bundles when they are already present, but does not replace or rewrite them.
|
|
23
23
|
- The current runtime expects the post-roadmap model: typed coordination, compiled inboxes, `A8` integration, staged closure, orchestrator-first clarification, and operational runtime policy.
|
|
24
|
+
|
|
25
|
+
## Upgrading From 0.5.4 To 0.6.0
|
|
26
|
+
|
|
27
|
+
Read `CHANGELOG.md` first, then treat the rest of this page as the manual repo-owned migration checklist for the `0.6.0` release. `wave upgrade` will update package-owned runtime code only; it will not rewrite the docs, prompts, config, or wave files that your repo already owns.
|
|
28
|
+
|
|
29
|
+
### Required Repo Changes
|
|
30
|
+
|
|
31
|
+
1. Rename legacy `evaluator` config and prompt terminology to `cont-QA`.
|
|
32
|
+
2. Keep `A0` as the final closure owner that emits both the final verdict and `[wave-gate]`.
|
|
33
|
+
3. Add `E0` only when the wave needs benchmark-driven tuning or service-output evaluation.
|
|
34
|
+
4. Add wave-level `## Eval targets` whenever `cont-EVAL` is present.
|
|
35
|
+
5. Update any starter docs or examples that still describe the pre-`0.6.0` evaluator model.
|
|
36
|
+
|
|
37
|
+
In practice that means checking:
|
|
38
|
+
|
|
39
|
+
- `wave.config.json`
|
|
40
|
+
Remove or rename `roles.evaluator*`, `skills.byRole.evaluator`, and `runtimePolicy.defaultExecutorByRole.evaluator`.
|
|
41
|
+
- `docs/agents/*.md`
|
|
42
|
+
Rename or replace any legacy evaluator prompt files so the repo clearly distinguishes `cont-QA`, `cont-EVAL`, and optional security review.
|
|
43
|
+
- `docs/plans/waves/*.md`
|
|
44
|
+
Update wave agent headings, role prompts, and closure expectations to use `A0` for `cont-QA`, optional `E0` for eval tuning, and optional security review before integration.
|
|
45
|
+
- `docs/reference/` and other operator docs
|
|
46
|
+
Refresh any examples or internal runbooks that still describe one overloaded evaluator role.
|
|
47
|
+
|
|
48
|
+
### Closure And Marker Changes
|
|
49
|
+
|
|
50
|
+
Live `0.6.0` closure is stricter than `0.5.4`.
|
|
51
|
+
|
|
52
|
+
- `cont-EVAL` must leave a report plus a final `[wave-eval]` marker whose `target_ids` exactly matches the wave contract and whose `benchmark_ids` stays within the benchmark catalog.
|
|
53
|
+
- Security review, when present, must leave a report plus a final `[wave-security]` marker.
|
|
54
|
+
- `cont-QA` must leave both the final `Verdict:` line and the final `[wave-gate]` marker.
|
|
55
|
+
- Older evaluator-era or verdict-only artifacts remain replay-readable, but they do not satisfy live completion anymore.
|
|
56
|
+
|
|
57
|
+
### Recommended Upgrade Validation
|
|
58
|
+
|
|
59
|
+
After updating repo-owned files:
|
|
60
|
+
|
|
61
|
+
1. Run `pnpm exec wave doctor`.
|
|
62
|
+
2. Run `pnpm exec wave launch --lane main --dry-run --no-dashboard`.
|
|
63
|
+
3. Use `pnpm exec wave coord show --lane main --wave 0 --dry-run --json` as a read-only inspection path for the coordination state.
|
|
64
|
+
4. Use `pnpm exec wave coord inbox --lane main --wave 0 --agent A1 --dry-run` when you want the launcher to materialize shared-summary and inbox artifacts for review.
|
|
65
|
+
5. If the repo adopts `cont-EVAL`, verify that every live eval wave declares `## Eval targets` and that the benchmark ids exist in `docs/evals/benchmark-catalog.json`.
|
|
@@ -7,23 +7,30 @@ For the broader docs map, concept pages, and workflow guides, start at [docs/REA
|
|
|
7
7
|
## What It Does
|
|
8
8
|
|
|
9
9
|
- parses wave plans from `docs/plans/waves/`
|
|
10
|
+
- supports transient ad-hoc runs from `.wave/adhoc/runs/` on the same launcher substrate
|
|
10
11
|
- fans a wave out into one session per `## Agent ...` section
|
|
11
12
|
- supports standing role imports from `docs/agents/*.md`
|
|
12
13
|
- seeds a coordination log, generated board, compiled shared summary, and per-agent inboxes
|
|
13
|
-
- derives a per-wave ledger, docs queue, integration summary, and versioned per-attempt trace bundle
|
|
14
|
+
- derives a per-wave ledger, security summary, docs queue, integration summary, and versioned per-attempt trace bundle
|
|
15
|
+
- versions the runtime JSON surfaces that operators and replay tooling consume, including manifests, dashboards, relaunch plans, assignment snapshots, dependency snapshots, and run-state
|
|
14
16
|
- validates Context7 declarations and exit contracts from configurable wave thresholds
|
|
15
17
|
- validates component promotions and component-owned proof from configurable wave thresholds
|
|
16
18
|
- writes prompts, logs, dashboards, coordination state, and status summaries under `.tmp/`
|
|
17
19
|
- supports launcher-side Context7 prefetch and injection for headless runs
|
|
18
20
|
- supports headless execution through `codex`, `claude`, `opencode`, and the local smoke executor
|
|
21
|
+
- can retry rate-limited `codex`, `claude`, and `opencode` launches with per-agent exponential backoff via `--agent-rate-limit-*`
|
|
19
22
|
- supports a file-backed human feedback queue
|
|
20
|
-
- performs a closure sweep so integration, documentation, and
|
|
23
|
+
- performs a closure sweep so optional `cont-EVAL`, optional security review, integration, documentation, and cont-QA gates reflect final landed state
|
|
21
24
|
|
|
22
25
|
## Main Commands
|
|
23
26
|
|
|
24
27
|
- `pnpm exec wave project setup`
|
|
25
28
|
- `pnpm exec wave project show --json`
|
|
26
29
|
- `pnpm exec wave draft --wave 1 --template implementation`
|
|
30
|
+
- `pnpm exec wave adhoc plan --task "patch the planner output"`
|
|
31
|
+
- `pnpm exec wave adhoc run --task "patch the planner output" --yes`
|
|
32
|
+
- `pnpm exec wave adhoc show --run <id>`
|
|
33
|
+
- `pnpm exec wave adhoc promote --run <id> --wave 4`
|
|
27
34
|
- `pnpm exec wave init`
|
|
28
35
|
- `pnpm exec wave init --adopt-existing`
|
|
29
36
|
- `pnpm exec wave doctor`
|
|
@@ -42,11 +49,18 @@ For the broader docs map, concept pages, and workflow guides, start at [docs/REA
|
|
|
42
49
|
|
|
43
50
|
## Configuration
|
|
44
51
|
|
|
45
|
-
- `wave.config.json` controls docs roots, shared plan docs, role prompts, validation thresholds, executor defaults, executor profiles, per-lane runtime policy, skill attachment policy, component-cutover matrix paths, capability-routing preferences, and Context7 bundle-index location.
|
|
52
|
+
- `wave.config.json` controls docs roots, shared plan docs, role prompts, validation thresholds, executor defaults, executor profiles, per-lane runtime policy, skill attachment policy, component-cutover matrix paths, capability-routing preferences, and Context7 bundle-index location. The starter config also wires the optional security reviewer prompt at `docs/agents/wave-security-role.md` and the `security-review` executor profile.
|
|
46
53
|
- `docs/context7/bundles.json` controls allowed external library bundles and lane defaults.
|
|
54
|
+
- `docs/evals/README.md` explains how to author delegated versus pinned `## Eval targets`, including the coordination-oriented benchmark families.
|
|
55
|
+
- `docs/reference/live-proof-waves.md` explains how to author proof-first `pilot-live` and higher-maturity waves with `### Proof artifacts`, sticky executors, and operator command capture.
|
|
56
|
+
- `docs/reference/sample-waves.md` points to showcase-first sample waves that combine the modern authored wave surface in concrete examples.
|
|
47
57
|
- `docs/plans/component-cutover-matrix.json` is the canonical machine-readable source for component maturity and per-wave promotion targets.
|
|
48
58
|
- `.wave/install-state.json` records how the workspace was initialized and which package version is installed.
|
|
49
59
|
- `.wave/project-profile.json` records planner defaults such as oversight mode, terminal surface, and deploy-environment memory.
|
|
60
|
+
- `.wave/adhoc/runs/<run-id>/` stores transient ad-hoc request, spec, rendered markdown, and result artifacts.
|
|
61
|
+
- ad-hoc documentation closure always writes `.wave/adhoc/runs/<run-id>/reports/`, but shared-plan deltas still queue the canonical lane shared-plan docs.
|
|
62
|
+
- ad-hoc task ownership inference only accepts repo-local paths; URLs and other external references are ignored.
|
|
63
|
+
- `wave adhoc promote` promotes the stored ad-hoc spec into `docs/plans/waves/` instead of re-reading the current project profile.
|
|
50
64
|
|
|
51
65
|
## Skill Packs
|
|
52
66
|
|
|
@@ -58,7 +72,7 @@ For the broader docs map, concept pages, and workflow guides, start at [docs/REA
|
|
|
58
72
|
- Starter bundles in this repo cover:
|
|
59
73
|
- core Wave coordination and repo coding rules
|
|
60
74
|
- runtime packs for Codex, Claude, OpenCode, and local execution
|
|
61
|
-
- role packs for implementation, integration, documentation,
|
|
75
|
+
- role packs for implementation, `cont-EVAL`, security review, integration, documentation, cont-QA, infra, deploy, and research work
|
|
62
76
|
- deploy and environment packs for Railway, Docker Compose, Kubernetes, SSH/manual rollout, and generic custom deploys
|
|
63
77
|
- explicit provider packs for GitHub release flow and AWS norms when a wave or lane wants to attach them
|
|
64
78
|
|
|
@@ -101,7 +115,7 @@ pnpm exec wave launch --lane main --start-wave 0 --end-wave 0 --executor codex -
|
|
|
101
115
|
|
|
102
116
|
## Coordination Surfaces
|
|
103
117
|
|
|
104
|
-
- `wave coord show`
|
|
118
|
+
- `wave coord show` is a read-only view of the materialized coordination state for a wave.
|
|
105
119
|
- `wave coord render` regenerates the markdown board projection from the canonical coordination log.
|
|
106
120
|
- `wave coord inbox` writes the compiled shared summary plus the selected agent inbox.
|
|
107
121
|
- `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.
|
|
@@ -149,11 +163,14 @@ pnpm exec wave changelog --since-installed
|
|
|
149
163
|
- prompts: `.tmp/<lane>-wave-launcher/prompts/`
|
|
150
164
|
- logs: `.tmp/<lane>-wave-launcher/logs/`
|
|
151
165
|
- status summaries: `.tmp/<lane>-wave-launcher/status/`
|
|
166
|
+
`run-state.json` keeps compatibility `completedWaves`, but now also stores per-wave current state plus append-only transition history and completion or blocker evidence. Relaunch plans in this directory are schema-versioned.
|
|
152
167
|
- coordination logs: `.tmp/<lane>-wave-launcher/coordination/`
|
|
153
168
|
- helper-assignment snapshots: `.tmp/<lane>-wave-launcher/assignments/`
|
|
154
169
|
- message boards: `.tmp/<lane>-wave-launcher/messageboards/`
|
|
155
170
|
- compiled inboxes: `.tmp/<lane>-wave-launcher/inboxes/`
|
|
156
171
|
- ledger: `.tmp/<lane>-wave-launcher/ledger/`
|
|
172
|
+
- security summaries: `.tmp/<lane>-wave-launcher/security/`
|
|
173
|
+
The launcher writes `wave-<n>.json` and `wave-<n>.md` summaries here, and the starter planner also places the reviewer-owned security report in this directory.
|
|
157
174
|
- integration summaries: `.tmp/<lane>-wave-launcher/integration/`
|
|
158
175
|
These summaries now carry actionable evidence for conflicting claims, changed interfaces, cross-component impacts, proof gaps, documentation gaps, and deploy or ops risk.
|
|
159
176
|
- dependency snapshots: `.tmp/<lane>-wave-launcher/dependencies/`
|
|
@@ -161,6 +178,7 @@ pnpm exec wave changelog --since-installed
|
|
|
161
178
|
- trace bundles: `.tmp/<lane>-wave-launcher/traces/`
|
|
162
179
|
- clarification triage: `.tmp/<lane>-wave-launcher/feedback/triage/`
|
|
163
180
|
- dashboards: `.tmp/<lane>-wave-launcher/dashboards/`
|
|
181
|
+
Dashboard JSON is a versioned contract. `global.json` and `wave-<n>.json` now carry explicit `schemaVersion` and `kind` fields.
|
|
164
182
|
- Context7 cache: `.tmp/<lane>-wave-launcher/context7-cache/`
|
|
165
183
|
- executor overlays: `.tmp/<lane>-wave-launcher/executors/`
|
|
166
184
|
Each agent overlay can include `skills.resolved.md`, `skills.metadata.json`, and `<runtime>-skills.txt` in addition to the runtime-specific executor files.
|
|
@@ -168,6 +186,10 @@ pnpm exec wave changelog --since-installed
|
|
|
168
186
|
Required inbound tickets in this directory block both autonomous wave launch and lane finalization until they resolve.
|
|
169
187
|
- cross-wave orchestration board: `.tmp/wave-orchestrator/messageboards/orchestrator.md`
|
|
170
188
|
|
|
189
|
+
Ad-hoc runs mirror the same state shape under `.tmp/<lane>-wave-launcher/adhoc/<run-id>/`, including dry-run previews at `.tmp/<lane>-wave-launcher/adhoc/<run-id>/dry-run/`. Their docs queue can still point at canonical shared-plan docs when the run reports a shared-plan delta.
|
|
190
|
+
|
|
191
|
+
The launcher entrypoint in `scripts/wave-orchestrator/launcher.mjs` now delegates session launch or wait mechanics to `launcher-runtime.mjs` and closure-sweep sequencing to `launcher-closure.mjs`. The CLI and `traceVersion: 2` replay contract stay unchanged.
|
|
192
|
+
|
|
171
193
|
## Trace Contract
|
|
172
194
|
|
|
173
195
|
- 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/`.
|
|
@@ -178,6 +200,7 @@ pnpm exec wave changelog --since-installed
|
|
|
178
200
|
- `coordination.materialized.json`
|
|
179
201
|
- `ledger.json`
|
|
180
202
|
- `docs-queue.json`
|
|
203
|
+
- `security.json`
|
|
181
204
|
- `integration.json`
|
|
182
205
|
- `outcome.json`
|
|
183
206
|
- `shared-summary.md`
|
|
@@ -188,6 +211,7 @@ pnpm exec wave changelog --since-installed
|
|
|
188
211
|
- `run-metadata.json` is the canonical trace index. It records attempt settings, artifact presence, executor history, prompt hashes, Context7 snippet hashes, resolved skill ids and bundle metadata, the gate snapshot, `replayContext`, and the cumulative `historySnapshot` for that attempt.
|
|
189
212
|
- `outcome.json` is the stored replay baseline. Replay compares recomputed gates and quality against it instead of trusting only inline metadata.
|
|
190
213
|
- 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.
|
|
214
|
+
- `security.json` stores the derived per-wave security state that feeds integration summaries, gate snapshots, and replay.
|
|
191
215
|
- `quality.json` is cumulative through the current attempt. It is intended for regression comparison, not only for one-shot pass/fail reporting.
|
|
192
216
|
- `quality.json` also reports capability-assignment and dependency-resolution metrics in addition to the Phase 2/3 communication, fallback, and closure metrics.
|
|
193
217
|
- 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.
|
|
@@ -195,7 +219,7 @@ pnpm exec wave changelog --since-installed
|
|
|
195
219
|
|
|
196
220
|
## Authoring Rules
|
|
197
221
|
|
|
198
|
-
- Every wave must include the configured
|
|
222
|
+
- Every wave must include the configured cont-QA agent.
|
|
199
223
|
- Under the starter config, every wave must also include the configured integration steward and documentation steward.
|
|
200
224
|
- From the configured thresholds onward, declare `## Component promotions` and keep them aligned with the component cutover matrix.
|
|
201
225
|
- From the configured thresholds onward, every non-A0/A8/A9 agent must declare `### Components` and emit `[wave-component]` markers for those components.
|
|
@@ -203,12 +227,19 @@ pnpm exec wave changelog --since-installed
|
|
|
203
227
|
- `### Deliverables` is optional and lets a wave declare exact repo-relative file outputs that must exist, and that stay within the agent's declared file ownership, before an implementation agent can satisfy its exit contract.
|
|
204
228
|
- `### Skills` is optional and adds explicit skill ids from `skills/` on top of the lane, role, runtime, and deploy-kind defaults.
|
|
205
229
|
- `### Executor` can declare `profile`, `fallbacks`, `tags`, and runtime budgets in addition to vendor-specific overrides.
|
|
230
|
+
- `### Proof artifacts` is optional for repo-only waves and recommended for `pilot-live` and above; use it to declare machine-visible local evidence required for closure.
|
|
206
231
|
- `## Deploy environments` lets the wave declare named deployment targets. The default deploy environment kind is also used for deploy-kind skill attachment.
|
|
207
232
|
- Lane runtime policy can assign a default executor by role even when the wave omits `### Executor`.
|
|
208
233
|
- Use `### Role prompts` for standing-role imports from `docs/agents/*.md`.
|
|
234
|
+
- Optional security review is declared by importing `docs/agents/wave-security-role.md` on a report-owning reviewer agent. The starter planner uses a report path under `.tmp/<lane>-wave-launcher/security/` and the `security-review` executor profile.
|
|
235
|
+
- A security reviewer must own at least one security report path. Any owned `.md` or `.txt` path containing `security` is accepted by the validator.
|
|
236
|
+
- Security reviewers are report-only by default. They should route fixes to the owning implementation agent instead of taking over product-code ownership.
|
|
237
|
+
- Security closure requires one final structured marker: `[wave-security] state=<clear|concerns|blocked> findings=<n> approvals=<n> detail=<short-note>`.
|
|
209
238
|
- 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.
|
|
210
239
|
- Keep file ownership explicit inside each `### Prompt`.
|
|
211
240
|
- From the configured thresholds onward, declare `## Context7 defaults`, per-agent `### Context7`, and per-agent `### Exit contract`.
|
|
241
|
+
- For benchmark-family guidance and delegated-versus-pinned eval examples, see [docs/evals/README.md](../evals/README.md).
|
|
242
|
+
- For proof-first live-wave patterns, sticky retry guidance, and `### Proof artifacts` examples, see [docs/reference/live-proof-waves.md](../reference/live-proof-waves.md).
|
|
212
243
|
- Agents should use `wave coord post` for durable blockers, handoffs, evidence, and requests instead of relying on ad hoc board edits.
|
|
213
244
|
- Keep shared plan docs and the component cutover matrix owned by the configured documentation steward once that rule becomes active.
|
|
214
245
|
- Use the runtime reference pages for the full executor surface instead of relying on this runbook to enumerate every key:
|
|
@@ -225,6 +256,7 @@ pnpm exec wave changelog --since-installed
|
|
|
225
256
|
- `--executor local` exists only for smoke-testing prompt and closure behavior.
|
|
226
257
|
- `--codex-sandbox danger-full-access` is the default because it avoids host bubblewrap assumptions.
|
|
227
258
|
- Resolution order is: per-agent explicit executor id, executor profile id, lane role default, CLI `--executor`, then `executors.default`.
|
|
259
|
+
- The starter config includes a `security-review` profile for the optional security reviewer. It is intended for read-heavy closure passes and pairs with `docs/agents/wave-security-role.md`.
|
|
228
260
|
- Skills resolve only after that executor choice is known. Runtime-specific skill overlays are regenerated whenever retry-time fallback changes the selected executor.
|
|
229
261
|
- Runtime mix targets are enforced before launch and again before any retry-time fallback reassignment.
|
|
230
262
|
- 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.
|
|
@@ -276,4 +308,11 @@ pnpm exec wave feedback respond --id <request-id> --response "..."
|
|
|
276
308
|
|
|
277
309
|
## Closure Sweep
|
|
278
310
|
|
|
279
|
-
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
|
|
311
|
+
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. When present, `cont-EVAL` must satisfy its declared eval targets before integration can close. Optional security review then runs before integration so the reviewer can publish findings and approval-sensitive actions while the wave is still active. In the default planner shape `E0` is report-only; if a wave explicitly assigns `E0` non-report files, the launcher also applies the normal implementation proof gates to that role. Security reviewers stay report-only by default. Documentation and cont-QA closure only run after integration is explicitly ready for doc closure; if `cont-EVAL`, security review, or integration reports more work, or if helper assignments or required dependency tickets remain open, the wave stops there and retries only the implicated owners plus the relevant closure steward.
|
|
312
|
+
|
|
313
|
+
Live closure is fail-closed:
|
|
314
|
+
|
|
315
|
+
- `cont-EVAL` PASS requires a report artifact plus a structured `[wave-eval]` marker whose `target_ids` exactly matches the wave contract and whose `benchmark_ids` stays within the declared benchmark catalog surface.
|
|
316
|
+
- Security review requires a report artifact plus a structured `[wave-security]` marker. `state=blocked` stops the wave before integration, while `state=concerns` is preserved in summaries and traces without automatically failing closure.
|
|
317
|
+
- `cont-QA` PASS requires both the final verdict and the final `[wave-gate]` marker.
|
|
318
|
+
- Legacy evaluator-era or underspecified closure artifacts are still readable in replay and trace analysis, but they no longer satisfy live completion.
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
- bundle: node-typescript
|
|
13
13
|
- query: "Node.js and TypeScript basics for orchestrator maintenance"
|
|
14
14
|
|
|
15
|
-
## Agent A0:
|
|
15
|
+
## Agent A0: cont-QA
|
|
16
16
|
|
|
17
17
|
### Role prompts
|
|
18
18
|
|
|
19
|
-
- docs/agents/wave-
|
|
19
|
+
- docs/agents/wave-cont-qa-role.md
|
|
20
20
|
|
|
21
21
|
### Executor
|
|
22
22
|
|
|
@@ -42,7 +42,7 @@ Required context before coding:
|
|
|
42
42
|
- Read docs/plans/master-plan.md, docs/plans/current-state.md, and docs/plans/migration.md.
|
|
43
43
|
|
|
44
44
|
File ownership (only touch these paths):
|
|
45
|
-
- docs/plans/waves/reviews/wave-0-
|
|
45
|
+
- docs/plans/waves/reviews/wave-0-cont-qa.md
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
## Agent A8: Integration Steward
|
|
@@ -70,7 +70,7 @@ File ownership (only touch these paths):
|
|
|
70
70
|
### Prompt
|
|
71
71
|
|
|
72
72
|
```text
|
|
73
|
-
Synthesize the wave before documentation and
|
|
73
|
+
Synthesize the wave before documentation and cont-QA closure.
|
|
74
74
|
|
|
75
75
|
Required context before coding:
|
|
76
76
|
- Read docs/reference/repository-guidance.md.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Live Proof Waves"
|
|
3
|
+
summary: "How to author proof-first `pilot-live` and higher-maturity waves with explicit proof artifacts, sticky executors, and operator-visible closure evidence."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Live Proof Waves
|
|
7
|
+
|
|
8
|
+
`pilot-live`, `fleet-ready`, `cutover-ready`, and `deprecation-ready` waves are not normal repo-only implementation waves.
|
|
9
|
+
|
|
10
|
+
For these waves:
|
|
11
|
+
|
|
12
|
+
- operator-run commands are part of closure
|
|
13
|
+
- local proof artifacts are part of closure
|
|
14
|
+
- stale success is dangerous
|
|
15
|
+
- sticky executors are safer than loose retry fallback
|
|
16
|
+
- targeted reruns after new proof arrives are normal
|
|
17
|
+
|
|
18
|
+
## Core Rule
|
|
19
|
+
|
|
20
|
+
Repo-landed waves can stay repo-centric.
|
|
21
|
+
|
|
22
|
+
`pilot-live` and above should be proof-centric.
|
|
23
|
+
|
|
24
|
+
That means the wave should declare:
|
|
25
|
+
|
|
26
|
+
- the exact proof owner
|
|
27
|
+
- the exact operator command sequence
|
|
28
|
+
- the exact artifact bundle written locally
|
|
29
|
+
- the exact proof surfaces that closure should trust
|
|
30
|
+
|
|
31
|
+
For a full authored example wave that uses this pattern, see [docs/reference/sample-waves.md](./sample-waves.md) and the linked proof-first live-wave sample.
|
|
32
|
+
|
|
33
|
+
## Recommended Authoring Pattern
|
|
34
|
+
|
|
35
|
+
For live-proof owners:
|
|
36
|
+
|
|
37
|
+
- declare `### Deliverables` for the review/report surface
|
|
38
|
+
- declare `### Proof artifacts` for machine-visible local evidence
|
|
39
|
+
- keep the executor sticky unless fallback is explicitly required
|
|
40
|
+
- prefer wall-clock budgets over tiny hard turn caps
|
|
41
|
+
|
|
42
|
+
Example:
|
|
43
|
+
|
|
44
|
+
````md
|
|
45
|
+
## Agent A6: Learning Plane Live Validation
|
|
46
|
+
|
|
47
|
+
### Executor
|
|
48
|
+
|
|
49
|
+
- id: codex
|
|
50
|
+
- retry-policy: sticky
|
|
51
|
+
- budget.minutes: 30
|
|
52
|
+
|
|
53
|
+
### Exit contract
|
|
54
|
+
|
|
55
|
+
- completion: live
|
|
56
|
+
- durability: durable
|
|
57
|
+
- proof: live
|
|
58
|
+
- doc-impact: owned
|
|
59
|
+
|
|
60
|
+
### Deliverables
|
|
61
|
+
|
|
62
|
+
- docs/plans/waves/reviews/wave-8-live-proof.md
|
|
63
|
+
|
|
64
|
+
### Proof artifacts
|
|
65
|
+
|
|
66
|
+
- path: .tmp/wave-8-learning-proof/learning-plane-before-restart.json | kind: live-status | required-for: pilot-live
|
|
67
|
+
- path: .tmp/wave-8-learning-proof/learning-plane-after-restart.json | kind: restart-check | required-for: pilot-live
|
|
68
|
+
- path: .tmp/wave-8-learning-proof/learning-vector-manifest.json | kind: manifest | required-for: pilot-live
|
|
69
|
+
|
|
70
|
+
### Prompt
|
|
71
|
+
```text
|
|
72
|
+
Operator command sequence:
|
|
73
|
+
- leapctl learning status --json > .tmp/wave-8-learning-proof/learning-plane-before-restart.json
|
|
74
|
+
- leapctl learning restart ...
|
|
75
|
+
- leapctl learning status --json > .tmp/wave-8-learning-proof/learning-plane-after-restart.json
|
|
76
|
+
|
|
77
|
+
Closure only counts when the declared proof artifacts exist locally and match the claimed live state.
|
|
78
|
+
|
|
79
|
+
File ownership (only touch these paths):
|
|
80
|
+
- .tmp/wave-8-learning-proof/
|
|
81
|
+
- docs/plans/waves/reviews/wave-8-live-proof.md
|
|
82
|
+
```
|
|
83
|
+
````
|
|
84
|
+
|
|
85
|
+
## `### Proof artifacts`
|
|
86
|
+
|
|
87
|
+
Use `### Proof artifacts` for the local machine-visible evidence that must exist before closure can trust a live claim.
|
|
88
|
+
|
|
89
|
+
Supported shape:
|
|
90
|
+
|
|
91
|
+
```md
|
|
92
|
+
### Proof artifacts
|
|
93
|
+
|
|
94
|
+
- path: .tmp/example/live-status.json | kind: live-status | required-for: pilot-live
|
|
95
|
+
- path: .tmp/example/after-restart.json | kind: restart-check | required-for: pilot-live
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Guidance:
|
|
99
|
+
|
|
100
|
+
- keep artifact paths repo-relative
|
|
101
|
+
- keep artifact paths inside the agent's owned paths
|
|
102
|
+
- use one file per important proof surface
|
|
103
|
+
- prefer canonical JSON or markdown artifacts over ad hoc screenshots or ephemeral terminal output
|
|
104
|
+
|
|
105
|
+
## Retry And Executor Guidance
|
|
106
|
+
|
|
107
|
+
For proof-bearing owners, default to sticky retry:
|
|
108
|
+
|
|
109
|
+
```md
|
|
110
|
+
### Executor
|
|
111
|
+
|
|
112
|
+
- id: codex
|
|
113
|
+
- retry-policy: sticky
|
|
114
|
+
- budget.minutes: 45
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Only enable cross-executor retry when there is a deliberate reason to do so.
|
|
118
|
+
|
|
119
|
+
If you do allow fallback, declare it explicitly:
|
|
120
|
+
|
|
121
|
+
```md
|
|
122
|
+
### Executor
|
|
123
|
+
|
|
124
|
+
- id: codex
|
|
125
|
+
- retry-policy: fallback-allowed
|
|
126
|
+
- fallbacks: claude
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## What Closure Should Trust
|
|
130
|
+
|
|
131
|
+
Closure roles should trust:
|
|
132
|
+
|
|
133
|
+
- declared proof artifacts that exist locally
|
|
134
|
+
- structured markers
|
|
135
|
+
- integration summaries grounded in current artifacts
|
|
136
|
+
|
|
137
|
+
Closure roles should not trust:
|
|
138
|
+
|
|
139
|
+
- implied host state
|
|
140
|
+
- stale cached snapshots
|
|
141
|
+
- repo-local inference when the wave claims live proof
|
|
142
|
+
- old `status=0` results that no longer match the current proof surface
|
|
143
|
+
|
|
144
|
+
## Targeted Reruns
|
|
145
|
+
|
|
146
|
+
When new proof artifacts arrive after an earlier failed attempt, the right response is usually a targeted rerun, not a full implementation replay.
|
|
147
|
+
|
|
148
|
+
Typical pattern:
|
|
149
|
+
|
|
150
|
+
1. operator captures the missing proof bundle locally
|
|
151
|
+
2. the proof owner reruns on the same executor
|
|
152
|
+
3. any stale synthesis or integration owner reruns if needed
|
|
153
|
+
4. already-valid implementation slices stay reused
|
|
154
|
+
|
|
155
|
+
## Suggested Eval Targets For Live-Proof Waves
|
|
156
|
+
|
|
157
|
+
Good live-proof waves often pair the proof owner with `cont-EVAL` targets that check coordination quality as well as service behavior.
|
|
158
|
+
|
|
159
|
+
Useful examples:
|
|
160
|
+
|
|
161
|
+
```md
|
|
162
|
+
## Eval targets
|
|
163
|
+
|
|
164
|
+
- id: blackboard-fidelity | selection: delegated | benchmark-family: blackboard-fidelity | objective: Preserve machine-visible proof through summaries and integration | threshold: Critical live proof facts remain visible through closure
|
|
165
|
+
- id: contradiction-recovery | selection: pinned | benchmarks: claim-conflict-detection,evidence-based-repair | objective: Surface and repair conflicting live claims before PASS | threshold: Material contradictions become explicit repair work before final closure
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Promotion-Level Guidance
|
|
169
|
+
|
|
170
|
+
- `pilot-live`
|
|
171
|
+
Require explicit proof artifacts and prefer sticky executors for proof owners.
|
|
172
|
+
- `fleet-ready`
|
|
173
|
+
Require the `pilot-live` discipline plus stronger infra/deploy readiness evidence.
|
|
174
|
+
- `cutover-ready`
|
|
175
|
+
Require the `fleet-ready` discipline plus explicit rollback or cutover evidence.
|
|
176
|
+
|
|
177
|
+
The important principle is that higher maturity should mean stronger machine-visible proof, not just more prose.
|
|
@@ -8,6 +8,13 @@ summary: "How to migrate a repository from the earlier 0.2 wave baseline to the
|
|
|
8
8
|
This guide explains how to migrate a repository from the earlier Wave
|
|
9
9
|
Orchestration 0.2 baseline to the current post-roadmap Wave model.
|
|
10
10
|
|
|
11
|
+
Current mainline note:
|
|
12
|
+
|
|
13
|
+
- legacy `evaluator` terminology has been retired in favor of `cont-QA`
|
|
14
|
+
- waves can now add optional `cont-EVAL` plus `## Eval targets` for iterative benchmark or output tuning
|
|
15
|
+
- live closure is stricter than replay compatibility: current waves must emit structured cont-QA and cont-EVAL artifacts even though replay can still read older evaluator-era traces
|
|
16
|
+
- the benchmark catalog lives in `docs/evals/benchmark-catalog.json`
|
|
17
|
+
|
|
11
18
|
It uses two concrete references:
|
|
12
19
|
|
|
13
20
|
- the 0.2-style baseline in the sibling `~/slowfast.ai` repo
|
|
@@ -35,8 +42,8 @@ The migration is intentionally evolutionary:
|
|
|
35
42
|
- keep wave markdown as the authored plan surface
|
|
36
43
|
- keep lanes
|
|
37
44
|
- keep multi-role agents
|
|
38
|
-
- keep A0
|
|
39
|
-
- add stronger runtime planning, typed coordination, A8 integration, and
|
|
45
|
+
- keep A0 cont-QA and A9 documentation stewardship
|
|
46
|
+
- add stronger runtime planning, typed coordination, optional E0 cont-EVAL, A8 integration, and
|
|
40
47
|
orchestrator-first clarification handling
|
|
41
48
|
|
|
42
49
|
## What Changes
|
|
@@ -45,7 +52,7 @@ The migration is intentionally evolutionary:
|
|
|
45
52
|
| --- | --- | --- | --- |
|
|
46
53
|
| Shared coordination | markdown message board plus status files | canonical coordination JSONL plus rendered board projection | Treat the markdown board as a view, not the source of truth |
|
|
47
54
|
| Agent context | raw board snapshots in prompts | compiled shared summary plus per-agent inbox | Switch operator review and agent recovery to inbox artifacts |
|
|
48
|
-
| Closure flow | implementation -> A9 -> A0 | implementation -> A8 integration -> A9 -> A0 | Add and
|
|
55
|
+
| Closure flow | implementation -> A9 -> A0 | implementation -> optional E0 cont-EVAL -> A8 integration -> A9 -> A0 | Add the integration steward and use cont-EVAL when the outcome needs iterative eval tuning |
|
|
49
56
|
| Runtime selection | lane default plus limited per-agent overrides | runtime profiles, role defaults, mix targets, fallbacks, budgets | Expand `wave.config.json` and deliberate `### Executor` planning |
|
|
50
57
|
| Clarification flow | file-backed human feedback queue | `clarification-request` -> orchestrator triage -> human escalation only if needed | Move humans to the end of the escalation ladder |
|
|
51
58
|
| Derived state | status summaries and dashboards | ledger, docs queue, integration summary, traces, triage logs | Update operator workflow and acceptance checks |
|
|
@@ -62,7 +69,7 @@ do otherwise:
|
|
|
62
69
|
- Fallback executors are allowed on retry after unavailability, timeout, or
|
|
63
70
|
failed attempt when policy permits.
|
|
64
71
|
- Automatic fallback must stay within the declared runtime mix.
|
|
65
|
-
- Documentation and
|
|
72
|
+
- Documentation and cont-QA closure must not run until the integration
|
|
66
73
|
steward reports `ready-for-doc-closure`.
|
|
67
74
|
|
|
68
75
|
These defaults match the intended 0.5 operating model and keep the runtime
|
|
@@ -119,7 +126,7 @@ The migration assumes you preserve existing plans and waves. Do not wipe
|
|
|
119
126
|
The most obvious config difference between the `slowfast.ai` baseline and the
|
|
120
127
|
0.5 target is that 0.2 only models:
|
|
121
128
|
|
|
122
|
-
- A0
|
|
129
|
+
- A0 cont-QA
|
|
123
130
|
- A9 documentation steward
|
|
124
131
|
- global executor defaults
|
|
125
132
|
- validation thresholds
|
|
@@ -140,9 +147,9 @@ look like:
|
|
|
140
147
|
```json
|
|
141
148
|
{
|
|
142
149
|
"roles": {
|
|
143
|
-
"
|
|
150
|
+
"contQaAgentId": "A0",
|
|
144
151
|
"documentationAgentId": "A9",
|
|
145
|
-
"
|
|
152
|
+
"contQaRolePromptPath": "docs/agents/wave-cont-qa-role.md",
|
|
146
153
|
"documentationRolePromptPath": "docs/agents/wave-documentation-role.md"
|
|
147
154
|
},
|
|
148
155
|
"executors": {
|
|
@@ -169,10 +176,10 @@ adds the missing surfaces:
|
|
|
169
176
|
```json
|
|
170
177
|
{
|
|
171
178
|
"roles": {
|
|
172
|
-
"
|
|
179
|
+
"contQaAgentId": "A0",
|
|
173
180
|
"integrationAgentId": "A8",
|
|
174
181
|
"documentationAgentId": "A9",
|
|
175
|
-
"
|
|
182
|
+
"contQaRolePromptPath": "docs/agents/wave-cont-qa-role.md",
|
|
176
183
|
"integrationRolePromptPath": "docs/agents/wave-integration-role.md",
|
|
177
184
|
"documentationRolePromptPath": "docs/agents/wave-documentation-role.md"
|
|
178
185
|
},
|
|
@@ -199,7 +206,7 @@ adds the missing surfaces:
|
|
|
199
206
|
"implementation": "codex",
|
|
200
207
|
"integration": "claude",
|
|
201
208
|
"documentation": "claude",
|
|
202
|
-
"
|
|
209
|
+
"cont-qa": "claude",
|
|
203
210
|
"research": "opencode",
|
|
204
211
|
"infra": "opencode",
|
|
205
212
|
"deploy": "opencode"
|
|
@@ -227,7 +234,7 @@ adds the missing surfaces:
|
|
|
227
234
|
Use four profiles first:
|
|
228
235
|
|
|
229
236
|
- `implement-fast`: default implementation work
|
|
230
|
-
- `deep-review`: integration,
|
|
237
|
+
- `deep-review`: integration, cont-QA, and review-heavy work
|
|
231
238
|
- `docs-pass`: documentation steward work
|
|
232
239
|
- `ops-triage`: research, infra, and deployment triage work
|
|
233
240
|
|
|
@@ -253,16 +260,16 @@ What A8 does not own:
|
|
|
253
260
|
|
|
254
261
|
- feature implementation
|
|
255
262
|
- documentation closure
|
|
256
|
-
-
|
|
263
|
+
- cont-QA verdict
|
|
257
264
|
|
|
258
|
-
If your 0.2 repo used
|
|
265
|
+
If your 0.2 repo used cont-QA prose to absorb integration work implicitly,
|
|
259
266
|
move that responsibility out of A0 and into A8.
|
|
260
267
|
|
|
261
268
|
## Step 4: Migrate Wave Files
|
|
262
269
|
|
|
263
270
|
The baseline `slowfast.ai` waves already have several good habits:
|
|
264
271
|
|
|
265
|
-
- explicit A0
|
|
272
|
+
- explicit A0 cont-QA
|
|
266
273
|
- explicit A9 documentation steward
|
|
267
274
|
- Context7 declarations
|
|
268
275
|
- component promotions
|
|
@@ -321,7 +328,7 @@ A minimal 0.5 upgrade looks like this:
|
|
|
321
328
|
|
|
322
329
|
### Prompt
|
|
323
330
|
```text
|
|
324
|
-
Synthesize cross-agent state before documentation and
|
|
331
|
+
Synthesize cross-agent state before documentation and cont-QA closure.
|
|
325
332
|
|
|
326
333
|
File ownership (only touch these paths):
|
|
327
334
|
- .tmp/<lane>-wave-launcher/integration/wave-<n>.md
|
|
@@ -339,7 +346,7 @@ sections instead of relying on lane defaults:
|
|
|
339
346
|
- fallbacks: claude, opencode
|
|
340
347
|
````
|
|
341
348
|
|
|
342
|
-
For documentation or
|
|
349
|
+
For documentation or cont-QA roles:
|
|
343
350
|
|
|
344
351
|
````md
|
|
345
352
|
### Executor
|
|
@@ -358,7 +365,7 @@ Recommended first mapping:
|
|
|
358
365
|
- implementation and test-fix roles: `codex`
|
|
359
366
|
- integration steward: `claude`
|
|
360
367
|
- documentation steward: `claude`
|
|
361
|
-
-
|
|
368
|
+
- cont-QA: `claude`
|
|
362
369
|
- infra or deploy roles: `opencode` or `codex`, chosen deliberately
|
|
363
370
|
- research helpers: `opencode`
|
|
364
371
|
|
|
@@ -522,7 +529,7 @@ The 0.5 target adds more explicit acceptance state:
|
|
|
522
529
|
- no unresolved high-priority blocker
|
|
523
530
|
- runtime plan is within policy
|
|
524
531
|
- documentation closure is explicit
|
|
525
|
-
-
|
|
532
|
+
- cont-QA verdict is explicit
|
|
526
533
|
- the ledger says the wave is actually complete
|
|
527
534
|
- traces capture the final state for replay
|
|
528
535
|
|
|
@@ -537,7 +544,7 @@ Use this acceptance checklist after the migration:
|
|
|
537
544
|
7. No resolved executor count exceeds lane mix targets.
|
|
538
545
|
8. Clarification triage works without immediately creating human tickets for
|
|
539
546
|
obvious ownership questions.
|
|
540
|
-
9. Documentation and
|
|
547
|
+
9. Documentation and cont-QA closure run only after the integration steward
|
|
541
548
|
is ready.
|
|
542
549
|
10. A live attempt writes a trace bundle with coordination, inbox, ledger,
|
|
543
550
|
integration, structured signals, `run-metadata.json`, and cumulative
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This repo now includes a dedicated npmjs publish workflow at [publish-npm.yml](../../.github/workflows/publish-npm.yml).
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The current `0.6.0` release procedure publishes through a repository Actions secret named `NPM_TOKEN`.
|
|
6
6
|
|
|
7
7
|
## What This Repo Already Does
|
|
8
8
|
|
|
@@ -10,6 +10,7 @@ It currently publishes through a repository Actions secret named `NPM_TOKEN`.
|
|
|
10
10
|
- `publish-npm.yml` publishes tagged releases to `https://registry.npmjs.org`.
|
|
11
11
|
- `publish-package.yml` still publishes to GitHub Packages explicitly, so both registries can coexist.
|
|
12
12
|
- `publish-npm.yml` expects `NPM_TOKEN` in GitHub Actions secrets.
|
|
13
|
+
- The public install path is already npmjs; GitHub Packages remains the authenticated fallback path.
|
|
13
14
|
|
|
14
15
|
## One-Time npm Setup
|
|
15
16
|
|
|
@@ -41,11 +42,11 @@ After a successful npm publish:
|
|
|
41
42
|
|
|
42
43
|
If this repo later needs private npm dependencies during CI, consider a separate read-only install token rather than reusing the publish token.
|
|
43
44
|
|
|
44
|
-
##
|
|
45
|
+
## Release Checklist
|
|
45
46
|
|
|
46
47
|
1. Confirm [publish-npm.yml](../../.github/workflows/publish-npm.yml) is on the default branch.
|
|
47
48
|
2. Confirm `NPM_TOKEN` exists in the GitHub repo secrets.
|
|
48
49
|
3. Confirm the package version has been bumped and committed.
|
|
49
|
-
4. Push the release tag, for example `v0.
|
|
50
|
-
5. Verify
|
|
51
|
-
6.
|
|
50
|
+
4. Push the release commit and release tag, for example `v0.6.0`.
|
|
51
|
+
5. Verify both `publish-npm.yml` and `publish-package.yml` start from the tag push.
|
|
52
|
+
6. Verify the npmjs publish completes successfully for the tagged source.
|
|
@@ -50,6 +50,8 @@ Skill settings resolve after executor selection, because runtime and deploy-kind
|
|
|
50
50
|
8. `lanes.<lane>.skills.byDeployKind[defaultDeployEnvironmentKind]`
|
|
51
51
|
9. agent `### Skills`
|
|
52
52
|
|
|
53
|
+
Then Wave filters configured skills through each bundle's activation metadata. Explicit per-agent `### Skills` still force attachment even when activation metadata would not auto-match.
|
|
54
|
+
|
|
53
55
|
When retry-time fallback changes the runtime, Wave recomputes the effective skill set and rewrites the executor overlay before relaunch.
|
|
54
56
|
|
|
55
57
|
## Common Fields
|
|
@@ -82,14 +84,22 @@ Wave writes runtime artifacts here:
|
|
|
82
84
|
Common files:
|
|
83
85
|
|
|
84
86
|
- `launch-preview.json`: resolved invocation lines, env vars, and retry mode
|
|
85
|
-
- `skills.resolved.md`:
|
|
86
|
-
- `skills.
|
|
87
|
-
-
|
|
87
|
+
- `skills.resolved.md`: compact metadata-first skill catalog for the selected agent and runtime
|
|
88
|
+
- `skills.expanded.md`: full canonical/debug skill payload with `SKILL.md` bodies and adapters
|
|
89
|
+
- `skills.metadata.json`: resolved skill ids, activation metadata, permissions, hashes, and generated artifact paths
|
|
90
|
+
- `<runtime>-skills.txt`: runtime-projected compact skill text used by the selected executor
|
|
88
91
|
- `claude-system-prompt.txt`: generated Claude harness prompt overlay
|
|
89
92
|
- `claude-settings.json`: generated Claude settings overlay when inline settings data is present
|
|
90
93
|
- `opencode-agent-prompt.txt`: generated OpenCode harness prompt overlay
|
|
91
94
|
- `opencode.json`: generated OpenCode runtime config overlay
|
|
92
95
|
|
|
96
|
+
Runtime-specific delivery:
|
|
97
|
+
|
|
98
|
+
- Codex uses the compact catalog in the compiled prompt and attaches bundle directories through `--add-dir`.
|
|
99
|
+
- Claude appends the compact catalog to the generated system-prompt overlay.
|
|
100
|
+
- OpenCode injects the compact catalog into `opencode.json` and attaches `skill.json`, `SKILL.md`, the selected adapter, and recursive `references/**` files through `--file`.
|
|
101
|
+
- Local keeps skills prompt-only.
|
|
102
|
+
|
|
93
103
|
`launch-preview.json` also records the resolved skill metadata so dry-run can verify the exact runtime plus skill combination before any live launch.
|
|
94
104
|
|
|
95
105
|
## Recommended Validation Path
|