@chllming/wave-orchestration 0.5.4 → 0.6.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 (126) hide show
  1. package/CHANGELOG.md +52 -3
  2. package/README.md +33 -5
  3. package/docs/README.md +18 -4
  4. package/docs/agents/wave-cont-eval-role.md +36 -0
  5. package/docs/agents/{wave-evaluator-role.md → wave-cont-qa-role.md} +14 -11
  6. package/docs/agents/wave-documentation-role.md +1 -1
  7. package/docs/agents/wave-infra-role.md +1 -1
  8. package/docs/agents/wave-integration-role.md +3 -3
  9. package/docs/agents/wave-launcher-role.md +4 -3
  10. package/docs/agents/wave-security-role.md +40 -0
  11. package/docs/concepts/context7-vs-skills.md +1 -1
  12. package/docs/concepts/what-is-a-wave.md +56 -6
  13. package/docs/evals/README.md +166 -0
  14. package/docs/evals/benchmark-catalog.json +663 -0
  15. package/docs/guides/author-and-run-waves.md +135 -0
  16. package/docs/guides/planner.md +5 -0
  17. package/docs/guides/terminal-surfaces.md +2 -0
  18. package/docs/plans/component-cutover-matrix.json +1 -1
  19. package/docs/plans/component-cutover-matrix.md +1 -1
  20. package/docs/plans/current-state.md +19 -1
  21. package/docs/plans/examples/wave-example-live-proof.md +435 -0
  22. package/docs/plans/migration.md +42 -0
  23. package/docs/plans/wave-orchestrator.md +46 -7
  24. package/docs/plans/waves/wave-0.md +4 -4
  25. package/docs/reference/live-proof-waves.md +177 -0
  26. package/docs/reference/migration-0.2-to-0.5.md +26 -19
  27. package/docs/reference/npmjs-trusted-publishing.md +6 -5
  28. package/docs/reference/runtime-config/README.md +14 -4
  29. package/docs/reference/sample-waves.md +87 -0
  30. package/docs/reference/skills.md +110 -42
  31. package/docs/research/agent-context-sources.md +130 -11
  32. package/docs/research/coordination-failure-review.md +266 -0
  33. package/docs/roadmap.md +6 -2
  34. package/package.json +2 -2
  35. package/releases/manifest.json +35 -2
  36. package/scripts/research/agent-context-archive.mjs +83 -1
  37. package/scripts/research/manifests/agent-context-expanded-2026-03-22.mjs +811 -0
  38. package/scripts/wave-orchestrator/adhoc.mjs +1331 -0
  39. package/scripts/wave-orchestrator/agent-state.mjs +358 -6
  40. package/scripts/wave-orchestrator/artifact-schemas.mjs +173 -0
  41. package/scripts/wave-orchestrator/clarification-triage.mjs +10 -3
  42. package/scripts/wave-orchestrator/config.mjs +48 -12
  43. package/scripts/wave-orchestrator/context7.mjs +2 -0
  44. package/scripts/wave-orchestrator/coord-cli.mjs +51 -19
  45. package/scripts/wave-orchestrator/coordination-store.mjs +26 -4
  46. package/scripts/wave-orchestrator/coordination.mjs +83 -9
  47. package/scripts/wave-orchestrator/dashboard-state.mjs +20 -8
  48. package/scripts/wave-orchestrator/dep-cli.mjs +5 -2
  49. package/scripts/wave-orchestrator/docs-queue.mjs +8 -2
  50. package/scripts/wave-orchestrator/evals.mjs +451 -0
  51. package/scripts/wave-orchestrator/feedback.mjs +15 -1
  52. package/scripts/wave-orchestrator/install.mjs +32 -9
  53. package/scripts/wave-orchestrator/launcher-closure.mjs +281 -0
  54. package/scripts/wave-orchestrator/launcher-runtime.mjs +334 -0
  55. package/scripts/wave-orchestrator/launcher.mjs +709 -601
  56. package/scripts/wave-orchestrator/ledger.mjs +123 -20
  57. package/scripts/wave-orchestrator/local-executor.mjs +99 -12
  58. package/scripts/wave-orchestrator/planner.mjs +177 -42
  59. package/scripts/wave-orchestrator/replay.mjs +6 -3
  60. package/scripts/wave-orchestrator/role-helpers.mjs +84 -0
  61. package/scripts/wave-orchestrator/shared.mjs +75 -11
  62. package/scripts/wave-orchestrator/skills.mjs +637 -106
  63. package/scripts/wave-orchestrator/traces.mjs +71 -48
  64. package/scripts/wave-orchestrator/wave-files.mjs +947 -101
  65. package/scripts/wave.mjs +9 -0
  66. package/skills/README.md +202 -0
  67. package/skills/provider-aws/SKILL.md +111 -0
  68. package/skills/provider-aws/adapters/claude.md +1 -0
  69. package/skills/provider-aws/adapters/codex.md +1 -0
  70. package/skills/provider-aws/references/service-verification.md +39 -0
  71. package/skills/provider-aws/skill.json +50 -1
  72. package/skills/provider-custom-deploy/SKILL.md +59 -0
  73. package/skills/provider-custom-deploy/skill.json +46 -1
  74. package/skills/provider-docker-compose/SKILL.md +90 -0
  75. package/skills/provider-docker-compose/adapters/local.md +1 -0
  76. package/skills/provider-docker-compose/skill.json +49 -1
  77. package/skills/provider-github-release/SKILL.md +116 -1
  78. package/skills/provider-github-release/adapters/claude.md +1 -0
  79. package/skills/provider-github-release/adapters/codex.md +1 -0
  80. package/skills/provider-github-release/skill.json +51 -1
  81. package/skills/provider-kubernetes/SKILL.md +137 -0
  82. package/skills/provider-kubernetes/adapters/claude.md +1 -0
  83. package/skills/provider-kubernetes/adapters/codex.md +1 -0
  84. package/skills/provider-kubernetes/references/kubectl-patterns.md +58 -0
  85. package/skills/provider-kubernetes/skill.json +48 -1
  86. package/skills/provider-railway/SKILL.md +118 -1
  87. package/skills/provider-railway/references/verification-commands.md +39 -0
  88. package/skills/provider-railway/skill.json +67 -1
  89. package/skills/provider-ssh-manual/SKILL.md +91 -0
  90. package/skills/provider-ssh-manual/skill.json +50 -1
  91. package/skills/repo-coding-rules/SKILL.md +84 -0
  92. package/skills/repo-coding-rules/skill.json +30 -1
  93. package/skills/role-cont-eval/SKILL.md +90 -0
  94. package/skills/role-cont-eval/adapters/codex.md +1 -0
  95. package/skills/role-cont-eval/skill.json +36 -0
  96. package/skills/role-cont-qa/SKILL.md +93 -0
  97. package/skills/role-cont-qa/adapters/claude.md +1 -0
  98. package/skills/role-cont-qa/skill.json +36 -0
  99. package/skills/role-deploy/SKILL.md +90 -0
  100. package/skills/role-deploy/skill.json +32 -1
  101. package/skills/role-documentation/SKILL.md +66 -0
  102. package/skills/role-documentation/skill.json +32 -1
  103. package/skills/role-implementation/SKILL.md +62 -0
  104. package/skills/role-implementation/skill.json +32 -1
  105. package/skills/role-infra/SKILL.md +74 -0
  106. package/skills/role-infra/skill.json +32 -1
  107. package/skills/role-integration/SKILL.md +79 -1
  108. package/skills/role-integration/skill.json +32 -1
  109. package/skills/role-research/SKILL.md +58 -0
  110. package/skills/role-research/skill.json +32 -1
  111. package/skills/role-security/SKILL.md +60 -0
  112. package/skills/role-security/skill.json +36 -0
  113. package/skills/runtime-claude/SKILL.md +60 -1
  114. package/skills/runtime-claude/skill.json +32 -1
  115. package/skills/runtime-codex/SKILL.md +52 -1
  116. package/skills/runtime-codex/skill.json +32 -1
  117. package/skills/runtime-local/SKILL.md +39 -0
  118. package/skills/runtime-local/skill.json +32 -1
  119. package/skills/runtime-opencode/SKILL.md +51 -0
  120. package/skills/runtime-opencode/skill.json +32 -1
  121. package/skills/wave-core/SKILL.md +107 -0
  122. package/skills/wave-core/references/marker-syntax.md +62 -0
  123. package/skills/wave-core/skill.json +31 -1
  124. package/wave.config.json +35 -6
  125. package/skills/role-evaluator/SKILL.md +0 -6
  126. package/skills/role-evaluator/skill.json +0 -5
@@ -0,0 +1,62 @@
1
+ # Structured Marker Syntax Reference
2
+
3
+ This reference documents the exact format for all structured markers used in wave coordination.
4
+
5
+ ## wave-gate (cont-QA closure)
6
+ Emitted by: cont-QA agent (A0)
7
+ Format:
8
+ `[wave-gate] architecture=<pass|concerns|blocked> integration=<pass|concerns|blocked> durability=<pass|concerns|blocked> live=<pass|concerns|blocked> docs=<pass|concerns|blocked> detail=<short-note>`
9
+
10
+ Must be accompanied by a verdict line:
11
+ `Verdict: PASS` or `Verdict: CONCERNS` or `Verdict: BLOCKED`
12
+
13
+ Example:
14
+ `[wave-gate] architecture=pass integration=pass durability=pass live=pass docs=pass detail=all-exit-contracts-met`
15
+ `Verdict: PASS`
16
+
17
+ ## wave-eval (cont-EVAL closure)
18
+ Emitted by: cont-EVAL agent (E0)
19
+ Format:
20
+ `[wave-eval] state=<satisfied|needs-more-work|blocked> target_ids=<comma-separated-ids> benchmark_ids=<comma-separated-ids> detail=<short-note>`
21
+
22
+ Example:
23
+ `[wave-eval] state=satisfied target_ids=prompt-quality,response-accuracy benchmark_ids=bench-01,bench-02 detail=all-targets-within-threshold`
24
+
25
+ ## wave-integration (integration closure)
26
+ Emitted by: Integration steward (A8)
27
+ Format:
28
+ `[wave-integration] state=<ready-for-doc-closure|needs-more-work> blockers=<count> detail=<short-note>`
29
+
30
+ Example:
31
+ `[wave-integration] state=ready-for-doc-closure blockers=0 detail=all-agents-coherent-no-contradictions`
32
+
33
+ ## wave-doc-closure (documentation closure)
34
+ Emitted by: Documentation steward (A9)
35
+ Format:
36
+ `[wave-doc-closure] state=<closed|no-change|needs-work> affected=<comma-separated-file-list> detail=<short-note>`
37
+
38
+ Example:
39
+ `[wave-doc-closure] state=closed affected=docs/plans/current-state.md,docs/plans/component-cutover-matrix.md detail=status-and-ownership-updated`
40
+
41
+ ## infra-status (infrastructure verification)
42
+ Emitted by: Infra agent
43
+ Format:
44
+ `[infra-status] kind=<conformance|role-drift|dependency|identity|admission|action> surface=<name> state=<pass|warn|fail> detail=<short-note>`
45
+
46
+ Example:
47
+ `[infra-status] kind=dependency surface=node-22 state=pass detail=node-v22.15.0-confirmed`
48
+
49
+ ## deploy-status (deployment verification)
50
+ Emitted by: Deploy agent
51
+ Format:
52
+ `[deploy-status] state=<deploying|healthy|failed|rolled-back> service=<name> detail=<short-note>`
53
+
54
+ Example:
55
+ `[deploy-status] state=healthy service=api-server detail=health-endpoint-200-latency-under-50ms`
56
+
57
+ ## Rules
58
+ - Markers must appear on a single line, not wrapped across lines.
59
+ - Field values must not contain spaces; use hyphens for compound values.
60
+ - Markers are machine-parsed; do not add extra fields or change field order.
61
+ - Each closure role emits exactly one final marker per wave attempt.
62
+ - Markers in agent output are the authoritative proof surface for orchestrator validation.
@@ -1,5 +1,35 @@
1
1
  {
2
2
  "id": "wave-core",
3
3
  "title": "Wave Core",
4
- "description": "Core Wave execution rules for coordination, ownership, proof, and closure."
4
+ "description": "Ensures every agent follows coordination protocol, respects ownership boundaries, produces durable proof, and meets closure requirements before claiming done.",
5
+ "activation": {
6
+ "when": "Attach to every agent to enforce Wave coordination, proof, and closure protocol.",
7
+ "roles": [],
8
+ "runtimes": [],
9
+ "deployKinds": []
10
+ },
11
+ "termination": "Stop when ownership boundaries, proof obligations, and required Wave markers are satisfied or explicitly handed off.",
12
+ "permissions": {
13
+ "network": [],
14
+ "shell": [],
15
+ "mcpServers": []
16
+ },
17
+ "trust": {
18
+ "tier": "repo-owned"
19
+ },
20
+ "evalCases": [
21
+ {
22
+ "id": "implementation-codex",
23
+ "role": "implementation",
24
+ "runtime": "codex",
25
+ "expectActive": true
26
+ },
27
+ {
28
+ "id": "documentation-opencode",
29
+ "role": "documentation",
30
+ "runtime": "opencode",
31
+ "deployKind": "railway-cli",
32
+ "expectActive": true
33
+ }
34
+ ]
5
35
  }
package/wave.config.json CHANGED
@@ -9,17 +9,21 @@
9
9
  "orchestratorStateDir": ".tmp/wave-orchestrator",
10
10
  "terminalsPath": ".vscode/terminals.json",
11
11
  "context7BundleIndexPath": "docs/context7/bundles.json",
12
+ "benchmarkCatalogPath": "docs/evals/benchmark-catalog.json",
12
13
  "componentCutoverMatrixDocPath": "docs/plans/component-cutover-matrix.md",
13
14
  "componentCutoverMatrixJsonPath": "docs/plans/component-cutover-matrix.json"
14
15
  },
15
16
  "roles": {
16
17
  "rolePromptDir": "docs/agents",
17
- "evaluatorAgentId": "A0",
18
+ "contQaAgentId": "A0",
19
+ "contEvalAgentId": "E0",
18
20
  "integrationAgentId": "A8",
19
21
  "documentationAgentId": "A9",
20
- "evaluatorRolePromptPath": "docs/agents/wave-evaluator-role.md",
22
+ "contQaRolePromptPath": "docs/agents/wave-cont-qa-role.md",
23
+ "contEvalRolePromptPath": "docs/agents/wave-cont-eval-role.md",
21
24
  "integrationRolePromptPath": "docs/agents/wave-integration-role.md",
22
- "documentationRolePromptPath": "docs/agents/wave-documentation-role.md"
25
+ "documentationRolePromptPath": "docs/agents/wave-documentation-role.md",
26
+ "securityRolePromptPath": "docs/agents/wave-security-role.md"
23
27
  },
24
28
  "executors": {
25
29
  "default": "codex",
@@ -40,6 +44,14 @@
40
44
  "minutes": 30
41
45
  }
42
46
  },
47
+ "eval-tuning": {
48
+ "id": "codex",
49
+ "tags": ["eval", "tuning"],
50
+ "budget": {
51
+ "turns": 14,
52
+ "minutes": 45
53
+ }
54
+ },
43
55
  "docs-pass": {
44
56
  "id": "claude",
45
57
  "tags": ["documentation"],
@@ -48,6 +60,17 @@
48
60
  "minutes": 20
49
61
  }
50
62
  },
63
+ "security-review": {
64
+ "id": "claude",
65
+ "tags": ["security", "review"],
66
+ "budget": {
67
+ "turns": 8,
68
+ "minutes": 20
69
+ },
70
+ "claude": {
71
+ "allowedTools": ["Read", "Edit", "Write", "Bash", "Grep", "Glob"]
72
+ }
73
+ },
51
74
  "ops-triage": {
52
75
  "id": "opencode",
53
76
  "tags": ["ops", "research"],
@@ -78,7 +101,9 @@
78
101
  "implementation": ["role-implementation"],
79
102
  "integration": ["role-integration"],
80
103
  "documentation": ["role-documentation"],
81
- "evaluator": ["role-evaluator"],
104
+ "cont-qa": ["role-cont-qa"],
105
+ "cont-eval": ["role-cont-eval"],
106
+ "security": ["role-security"],
82
107
  "infra": ["role-infra"],
83
108
  "deploy": ["role-deploy"],
84
109
  "research": ["role-research"]
@@ -94,6 +119,8 @@
94
119
  "railway-mcp": ["provider-railway"],
95
120
  "docker-compose": ["provider-docker-compose"],
96
121
  "kubernetes": ["provider-kubernetes"],
122
+ "aws": ["provider-aws"],
123
+ "github-release": ["provider-github-release"],
97
124
  "ssh-manual": ["provider-ssh-manual"],
98
125
  "custom": ["provider-custom-deploy"]
99
126
  }
@@ -123,14 +150,16 @@
123
150
  "runtimePolicy": {
124
151
  "runtimeMixTargets": {
125
152
  "codex": 3,
126
- "claude": 3,
153
+ "claude": 4,
127
154
  "opencode": 2
128
155
  },
129
156
  "defaultExecutorByRole": {
130
157
  "implementation": "codex",
131
158
  "integration": "claude",
132
159
  "documentation": "claude",
133
- "evaluator": "claude",
160
+ "cont-qa": "claude",
161
+ "cont-eval": "codex",
162
+ "security": "claude",
134
163
  "research": "opencode",
135
164
  "infra": "opencode",
136
165
  "deploy": "opencode"
@@ -1,6 +0,0 @@
1
- # Evaluator Role
2
-
3
- - Judge the wave on landed evidence, not on effort or intent.
4
- - Require coherence across implementation, integration, documentation, and runtime proof before PASS.
5
- - Keep the final verdict and gate markers authoritative and internally consistent.
6
- - Call out the smallest set of blocking issues that must change before the next wave can proceed safely.
@@ -1,5 +0,0 @@
1
- {
2
- "id": "role-evaluator",
3
- "title": "Evaluator Role",
4
- "description": "Evaluator norms for final gate judgments."
5
- }