cool-workflow 0.1.78

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 (193) hide show
  1. package/.claude-plugin/plugin.json +20 -0
  2. package/.codex-plugin/mcp.json +10 -0
  3. package/.codex-plugin/plugin.json +38 -0
  4. package/.mcp.json +10 -0
  5. package/LICENSE +24 -0
  6. package/README.md +638 -0
  7. package/apps/architecture-review/app.json +51 -0
  8. package/apps/architecture-review/workflow.js +116 -0
  9. package/apps/end-to-end-golden-path/app.json +30 -0
  10. package/apps/end-to-end-golden-path/workflow.js +33 -0
  11. package/apps/pr-review-fix-ci/app.json +59 -0
  12. package/apps/pr-review-fix-ci/workflow.js +90 -0
  13. package/apps/release-cut/app.json +54 -0
  14. package/apps/release-cut/workflow.js +82 -0
  15. package/apps/research-synthesis/app.json +50 -0
  16. package/apps/research-synthesis/workflow.js +76 -0
  17. package/apps/workflow-app-framework-demo/app.json +29 -0
  18. package/apps/workflow-app-framework-demo/workflow.js +44 -0
  19. package/dist/agent-config.js +223 -0
  20. package/dist/candidate-scoring.js +715 -0
  21. package/dist/capability-core.js +630 -0
  22. package/dist/capability-dispatcher.js +86 -0
  23. package/dist/capability-registry.js +523 -0
  24. package/dist/cli.js +1276 -0
  25. package/dist/collaboration.js +727 -0
  26. package/dist/commit.js +570 -0
  27. package/dist/contract-migration.js +234 -0
  28. package/dist/coordinator.js +1163 -0
  29. package/dist/daemon.js +44 -0
  30. package/dist/dispatch.js +201 -0
  31. package/dist/drive.js +503 -0
  32. package/dist/error-feedback.js +415 -0
  33. package/dist/evidence-grounding.js +179 -0
  34. package/dist/evidence-reasoning.js +733 -0
  35. package/dist/execution-backend.js +1279 -0
  36. package/dist/harness.js +61 -0
  37. package/dist/mcp-server.js +1615 -0
  38. package/dist/multi-agent-eval.js +857 -0
  39. package/dist/multi-agent-host.js +764 -0
  40. package/dist/multi-agent-operator-ux.js +537 -0
  41. package/dist/multi-agent-trust.js +366 -0
  42. package/dist/multi-agent.js +1173 -0
  43. package/dist/node-snapshot.js +270 -0
  44. package/dist/observability.js +922 -0
  45. package/dist/operator-ux.js +971 -0
  46. package/dist/orchestrator/audit-operations.js +182 -0
  47. package/dist/orchestrator/candidate-operations.js +117 -0
  48. package/dist/orchestrator/cli-options.js +288 -0
  49. package/dist/orchestrator/collaboration-operations.js +86 -0
  50. package/dist/orchestrator/feedback-operations.js +81 -0
  51. package/dist/orchestrator/host-operations.js +78 -0
  52. package/dist/orchestrator/lifecycle-operations.js +462 -0
  53. package/dist/orchestrator/migration-operations.js +44 -0
  54. package/dist/orchestrator/multi-agent-operations.js +362 -0
  55. package/dist/orchestrator/report.js +369 -0
  56. package/dist/orchestrator/topology-operations.js +84 -0
  57. package/dist/orchestrator.js +874 -0
  58. package/dist/pipeline-contract.js +92 -0
  59. package/dist/pipeline-runner.js +285 -0
  60. package/dist/reclamation.js +882 -0
  61. package/dist/result-normalize.js +194 -0
  62. package/dist/run-export.js +64 -0
  63. package/dist/run-registry.js +1347 -0
  64. package/dist/run-state-schema.js +67 -0
  65. package/dist/sandbox-profile.js +471 -0
  66. package/dist/scheduler.js +266 -0
  67. package/dist/scheduling.js +184 -0
  68. package/dist/schema-validate.js +98 -0
  69. package/dist/state-explosion.js +1213 -0
  70. package/dist/state-migrations.js +463 -0
  71. package/dist/state-node.js +301 -0
  72. package/dist/state.js +308 -0
  73. package/dist/telemetry-attestation.js +156 -0
  74. package/dist/telemetry-ledger.js +145 -0
  75. package/dist/topology.js +527 -0
  76. package/dist/triggers.js +159 -0
  77. package/dist/trust-audit.js +475 -0
  78. package/dist/types/blackboard.js +2 -0
  79. package/dist/types/boundary.js +29 -0
  80. package/dist/types/candidate.js +2 -0
  81. package/dist/types/collaboration.js +2 -0
  82. package/dist/types/core.js +2 -0
  83. package/dist/types/drive.js +10 -0
  84. package/dist/types/error-feedback.js +2 -0
  85. package/dist/types/evidence-reasoning.js +2 -0
  86. package/dist/types/execution-backend.js +2 -0
  87. package/dist/types/multi-agent.js +2 -0
  88. package/dist/types/observability.js +2 -0
  89. package/dist/types/pipeline.js +2 -0
  90. package/dist/types/reclamation.js +8 -0
  91. package/dist/types/result.js +2 -0
  92. package/dist/types/run-registry.js +2 -0
  93. package/dist/types/run.js +2 -0
  94. package/dist/types/sandbox.js +2 -0
  95. package/dist/types/schedule.js +2 -0
  96. package/dist/types/state-node.js +2 -0
  97. package/dist/types/topology.js +2 -0
  98. package/dist/types/trust.js +2 -0
  99. package/dist/types/workbench.js +2 -0
  100. package/dist/types/worker.js +2 -0
  101. package/dist/types/workflow-app.js +2 -0
  102. package/dist/types.js +43 -0
  103. package/dist/verifier-registry.js +46 -0
  104. package/dist/verifier.js +78 -0
  105. package/dist/version.js +8 -0
  106. package/dist/workbench-host.js +172 -0
  107. package/dist/workbench.js +190 -0
  108. package/dist/worker-isolation.js +1028 -0
  109. package/dist/workflow-api.js +98 -0
  110. package/dist/workflow-app-framework.js +626 -0
  111. package/docs/agent-delegation-drive.7.md +190 -0
  112. package/docs/agent-framework.md +176 -0
  113. package/docs/candidate-scoring.7.md +106 -0
  114. package/docs/canonical-workflow-apps.7.md +137 -0
  115. package/docs/capability-topology-registry.7.md +168 -0
  116. package/docs/cli-mcp-parity.7.md +373 -0
  117. package/docs/contract-migration-tooling.7.md +123 -0
  118. package/docs/control-plane-scheduling.7.md +110 -0
  119. package/docs/coordinator-blackboard.7.md +183 -0
  120. package/docs/dogfood/architecture-review-cool-workflow.md +16 -0
  121. package/docs/dogfood-one-real-repo.7.md +168 -0
  122. package/docs/durable-state-and-locking.7.md +107 -0
  123. package/docs/end-to-end-golden-path.7.md +117 -0
  124. package/docs/error-feedback.7.md +153 -0
  125. package/docs/evidence-adoption-reasoning-chain.7.md +270 -0
  126. package/docs/execution-backends.7.md +300 -0
  127. package/docs/getting-started.md +99 -0
  128. package/docs/index.md +41 -0
  129. package/docs/mcp-app-surface.7.md +235 -0
  130. package/docs/multi-agent-cli-mcp-surface.7.md +265 -0
  131. package/docs/multi-agent-eval-replay-harness.7.md +302 -0
  132. package/docs/multi-agent-operator-ux.7.md +314 -0
  133. package/docs/multi-agent-runtime-core.7.md +231 -0
  134. package/docs/multi-agent-topologies.7.md +103 -0
  135. package/docs/multi-agent-trust-policy-audit.7.md +154 -0
  136. package/docs/node-snapshot-diff-replay.7.md +135 -0
  137. package/docs/observability-cost-accounting.7.md +194 -0
  138. package/docs/operator-ux.7.md +180 -0
  139. package/docs/pipeline-runner.7.md +136 -0
  140. package/docs/project-index.md +261 -0
  141. package/docs/real-execution-backends.7.md +142 -0
  142. package/docs/release-and-migration.7.md +280 -0
  143. package/docs/release-tooling.7.md +159 -0
  144. package/docs/routines.md +48 -0
  145. package/docs/run-registry-control-plane.7.md +312 -0
  146. package/docs/run-retention-reclamation.7.md +191 -0
  147. package/docs/sandbox-profiles.7.md +137 -0
  148. package/docs/scheduled-tasks.md +80 -0
  149. package/docs/security-trust-hardening.7.md +117 -0
  150. package/docs/state-explosion-management.7.md +264 -0
  151. package/docs/state-node.7.md +96 -0
  152. package/docs/team-collaboration.7.md +207 -0
  153. package/docs/unix-principles.md +192 -0
  154. package/docs/verifier-gated-commit.7.md +140 -0
  155. package/docs/web-desktop-workbench.7.md +215 -0
  156. package/docs/worker-isolation.7.md +167 -0
  157. package/docs/workflow-app-framework.7.md +274 -0
  158. package/manifest/README.md +43 -0
  159. package/manifest/plugin.manifest.json +316 -0
  160. package/manifest/pricing.policy.json +14 -0
  161. package/package.json +79 -0
  162. package/scripts/agents/claude-p-agent.js +104 -0
  163. package/scripts/agents/claude-p-agent.sh +9 -0
  164. package/scripts/agents/cw-attest-keygen.js +55 -0
  165. package/scripts/agents/cw-attest-wrap.js +143 -0
  166. package/scripts/block-unapproved-tag.sh +39 -0
  167. package/scripts/bump-version.js +249 -0
  168. package/scripts/canonical-apps.js +171 -0
  169. package/scripts/cw.js +4 -0
  170. package/scripts/dist-drift-check.js +79 -0
  171. package/scripts/dogfood-architecture-review.js +237 -0
  172. package/scripts/dogfood-release.js +624 -0
  173. package/scripts/forward-ref-docs.js +73 -0
  174. package/scripts/gen-manifests.js +232 -0
  175. package/scripts/golden-path.js +300 -0
  176. package/scripts/mcp-server.js +4 -0
  177. package/scripts/new-feature.js +121 -0
  178. package/scripts/parity-check.js +213 -0
  179. package/scripts/release-check.js +118 -0
  180. package/scripts/release-flow.js +272 -0
  181. package/scripts/release-gate.sh +85 -0
  182. package/scripts/sync-project-index.js +387 -0
  183. package/scripts/validate-run-state-schema.js +126 -0
  184. package/scripts/verify-container-selfref.js +64 -0
  185. package/scripts/version-sync-check.js +237 -0
  186. package/skills/cool-workflow/SKILL.md +162 -0
  187. package/skills/cool-workflow/references/commands.md +282 -0
  188. package/tsconfig.json +16 -0
  189. package/ui/workbench/app.css +76 -0
  190. package/ui/workbench/app.js +159 -0
  191. package/ui/workbench/index.html +32 -0
  192. package/workflows/architecture-review.workflow.js +84 -0
  193. package/workflows/research-synthesis.workflow.js +47 -0
@@ -0,0 +1,280 @@
1
+ # Release And Migration Discipline
2
+
3
+ CW v0.1.14 made release checks and durable run-state compatibility explicit.
4
+
5
+ ## Who Is Affected
6
+
7
+ Maintainers cutting CW releases should use `npm run release:check` from
8
+ `plugins/cool-workflow`. Operators loading old `.cw/runs/<run-id>/state.json`
9
+ files can inspect compatibility with:
10
+
11
+ ```bash
12
+ node scripts/cw.js state check <run-id>
13
+ ```
14
+
15
+ Use `--state /path/to/state.json` when checking a state file outside the
16
+ current `.cw/runs` tree. Add `--write` only when you deliberately want to write
17
+ the normalized/migrated state back to disk.
18
+
19
+ ## State Policy
20
+
21
+ The current durable run-state schema is `1`, defined by
22
+ `CURRENT_RUN_STATE_SCHEMA_VERSION` in `src/version.ts`.
23
+
24
+ Loading state follows this order:
25
+
26
+ ```text
27
+ read JSON -> detect schema -> migrate -> normalize -> validate -> report
28
+ ```
29
+
30
+ CW supports legacy run state with no `schemaVersion` as historical schema `0`
31
+ and migrates it to schema `1`. Schema versions newer than the runtime fail
32
+ closed. Invalid state objects fail closed. Unknown user data is preserved by
33
+ copying and adding required fields instead of rebuilding state from scratch.
34
+
35
+ ## Dry Run
36
+
37
+ `state check` is dry-run by default. It reports:
38
+
39
+ - detected and current schema versions
40
+ - compatibility status: `current`, `migrated`, `normalized`, or `unsupported`
41
+ - whether writing would be required
42
+ - every field CW would add or normalize
43
+ - warnings and errors
44
+
45
+ ## Backward Compatibility Fixtures
46
+
47
+ Fixture runs live in `test/fixtures/runs/` and cover:
48
+
49
+ - pre-app/simple run state
50
+ - Sandbox Profiles
51
+ - Workflow App framework metadata
52
+ - End-to-End Golden Path
53
+ - Operator UX
54
+ - v0.1.13 MCP/App Surface
55
+
56
+ `npm run fixture-compat` copies each fixture into a temporary `.cw/runs` tree,
57
+ runs migration, and proves `status`, `graph`, and `report` still operate. The
58
+ fixture files are hashed before and after the test to prove they were not
59
+ mutated.
60
+
61
+ ## Release Check
62
+
63
+ `npm run release:check` is the release gate for v0.1.14 and later. It runs:
64
+
65
+ - docs presence checks
66
+ - `npm run build`
67
+ - `npm run check`
68
+ - `npm test`
69
+ - `node test/multi-agent-runtime-core-smoke.js`
70
+ - `node test/coordinator-blackboard-smoke.js`
71
+ - `node test/multi-agent-topologies-smoke.js`
72
+ - `node test/multi-agent-eval-replay-harness-smoke.js`
73
+ - `npm run eval:replay`
74
+ - dogfood release smoke coverage
75
+ - `npm run canonical-apps`
76
+ - `npm run golden-path`
77
+ - `npm run fixture-compat`
78
+ - `npm run version:sync`
79
+
80
+ The command is dry-run and non-destructive. Tagging, pushing, and publishing
81
+ remain manual release actions after the gate passes.
82
+
83
+ For v0.1.15, the same gate also includes the Security / Trust Hardening smoke
84
+ test so audit/provenance coverage remains part of release discipline.
85
+
86
+ For v0.1.18, the gate includes Coordinator / Blackboard smoke coverage and
87
+ fixture normalization for empty blackboard state on older runs.
88
+
89
+ For v0.1.19, the gate includes Multi-Agent Topologies smoke coverage and
90
+ fixture normalization for empty topology state on older runs.
91
+
92
+ For v0.1.20, the gate includes Multi-Agent CLI + MCP Surface smoke coverage.
93
+
94
+ For v0.1.21, the gate includes Multi-Agent Operator UX smoke coverage for
95
+ derived graph, dependency, failure, evidence adoption, report, and MCP parity
96
+ views.
97
+
98
+ For v0.1.22, the gate includes Multi-Agent Trust / Policy / Audit smoke
99
+ coverage for role policy, permission decisions, blackboard write audit, message
100
+ provenance, judge rationale, panel decisions, policy violations, report output,
101
+ audit provenance, and MCP parity.
102
+
103
+ For v0.1.24, the gate includes Multi-Agent Eval & Replay Harness smoke
104
+ coverage for replay snapshots, isolated replay runs, normalized comparison,
105
+ scoring, fail-closed regression detection, report output, and MCP parity.
106
+
107
+ For v0.1.25, the gate includes State Explosion Management smoke coverage for
108
+ durable summary records, compact and focused graph views, blackboard digests,
109
+ critical-path preservation, fail-closed stale-summary detection, eval/replay
110
+ summary metrics (`summary_freshness`, `compact_graph_parity`,
111
+ `blackboard_digest_parity`, `critical_path_parity`, `evidence_digest_parity`,
112
+ `expansion_ref_integrity`), and CLI/MCP parity. Summaries are derived userland
113
+ indexes; raw blackboard, graph, audit, and evidence records are never deleted,
114
+ and migrations remain backward compatible (pre-0.1.25 eval snapshots load with
115
+ empty summary sections).
116
+
117
+ For v0.1.26, the gate includes Evidence Adoption Reasoning Chain smoke coverage
118
+ for derived, fingerprinted reasoning chains, fail-closed `unexplained` detection,
119
+ reasoning steps exempt from compaction, eval/replay reasoning metrics
120
+ (`reasoning_freshness`, `reasoning_chain_parity`, `reasoning_unexplained_parity`),
121
+ and CLI/MCP parity. The reasoning chain is derived, never authoritative over raw
122
+ state, and pre-0.1.26 snapshots load with empty reasoning sections.
123
+
124
+ The host loop must preserve CLI/MCP parity, stable JSON responses,
125
+ blackboard/audit provenance, evidence-required scoring, fail-closed selection,
126
+ and compatibility with the lower-level topology, multi-agent, blackboard, and
127
+ candidate primitives.
128
+
129
+ For v0.1.16, release discipline adds Dogfood One Real Repo. `npm run
130
+ dogfood:release` runs the canonical `release-cut` app against the real Cool
131
+ Workflow repository in dry-run mode and produces a CW report, audit summary,
132
+ provenance, release candidate, score, selection, and verifier-gated
133
+ commit/checkpoint. `npm run release:check` includes the dogfood smoke test so
134
+ the wiring stays covered without recursively running the full release gate.
135
+
136
+ For v0.1.17, release discipline added Multi-Agent Runtime Core coverage.
137
+ `npm run release:check` runs `test/multi-agent-runtime-core-smoke.js` directly
138
+ and through `npm test`. Older fixture runs normalize with empty multi-agent
139
+ state under `multiAgent` and `.cw/runs/<run-id>/multi-agent/`, while unknown
140
+ user data remains preserved.
141
+
142
+ ## Unsupported Cases
143
+
144
+ CW does not silently load:
145
+
146
+ - non-object JSON run state
147
+ - run state with a schema version newer than the runtime
148
+ - run state with a schema version below the supported minimum
149
+ - state that cannot be normalized into the required runtime fields
150
+
151
+ When compatibility is ambiguous, hold the release and add a fixture or migration
152
+ step before proceeding.
153
+ ## v0.1.27 — CLI ↔ MCP Parity
154
+
155
+ v0.1.27 adds a declared capability registry and a fail-closed `npm run
156
+ parity:check` (wired into `release:check`) guaranteeing the CLI and MCP surfaces
157
+ are two renderings of one data source. No run-state schema change: pre-0.1.27
158
+ runs load unchanged, and every pre-0.1.27 CLI command and MCP tool keeps working.
159
+ See [cli-mcp-parity.7.md](cli-mcp-parity.7.md).
160
+
161
+ ## Run Registry / Control Plane (v0.1.28)
162
+
163
+ v0.1.28 adds a derived, rebuildable run registry over the same durable run state.
164
+ No run-state schema change: pre-0.1.28 single-repo runs and existing `.cw/runs/`
165
+ layouts keep working with an empty registry (`registry show` reports `absent`
166
+ until the first `registry refresh`), and the registry, archive/provenance
167
+ overlays, queue, and home discovery set are all derivable files that can be
168
+ deleted and rebuilt from source. See
169
+ [run-registry-control-plane.7.md](run-registry-control-plane.7.md).
170
+
171
+ ## Execution Backends (v0.1.29)
172
+
173
+ v0.1.29 lifts execution into a pluggable driver layer: one narrow `ExecutionBackend`
174
+ contract with interchangeable `node`/`bun`/`shell`/`container`/`remote`/`ci`
175
+ drivers, selected by `--backend` (parallel to `--sandbox`) and inspected via
176
+ `backend list|show|probe`. The result/evidence envelope is schema-identical across
177
+ backends; the backend id + sandbox attestation are recorded as provenance, so this
178
+ surface is unchanged regardless of which backend executed a run. See
179
+ [execution-backends.7.md](execution-backends.7.md).
180
+ ## Web / Desktop Workbench (v0.1.30)
181
+
182
+ v0.1.30 adds the Web / Desktop Workbench: a read-only, localhost-only human
183
+ console that renders this surface (and the other four operator panels — run
184
+ graph, blackboard, worker logs, candidate compare, audit timeline) for any run,
185
+ reading the SAME capability `--json` payloads. It is a THIRD FRONT DOOR alongside
186
+ the CLI and MCP that holds no authoritative state and forks no schema: each panel
187
+ equals its `cw <cmd> --json` payload byte-for-byte (parity-gated), and refresh
188
+ re-derives everything from disk. See
189
+ [web-desktop-workbench.7.md](web-desktop-workbench.7.md).
190
+
191
+ ## Observability + Cost Accounting (v0.1.31)
192
+
193
+ v0.1.31 adds Observability + Cost Accounting: `metrics show`/`metrics summary`
194
+ derive time/duration, failure/verifier/acceptance rates (with sample counts and
195
+ fail-closed `n/a`), and token/cost from existing durable run state — no metrics
196
+ database, no collector daemon, no hidden counter. The migration is ADDITIVE and
197
+ backward compatible: an optional, host-attested `UsageRecord` rides on the
198
+ task/worker record via the EXISTING result/worker intake (absent ⇒ `unreported`,
199
+ never 0); `ResultEnvelope` and the run-state schema are unchanged (schema version
200
+ stays 1), so old runs load and report `unreported` cost while still yielding
201
+ correct time and rate metrics from their recorded timestamps and outcomes. Cost
202
+ is `attested` only from attested usage × a recorded pricing policy; assumed
203
+ pricing is a separate `estimated` figure. Pricing is POLICY supplied as data
204
+ (`--pricing <path>|default`), out of the kernel. The per-run report persists a
205
+ rebuildable, fingerprinted snapshot under `.cw/runs/<id>/metrics/`, and the
206
+ cross-repo summary reports each snapshot's `valid|stale|absent` freshness against
207
+ current source. See
208
+ [observability-cost-accounting.7.md](observability-cost-accounting.7.md).
209
+
210
+
211
+ ## Team Collaboration (v0.1.32)
212
+
213
+ v0.1.32 adds Team Collaboration: a host-attested actor and append-only
214
+ approvals/rejections/comments/handoffs provenance-linked to a durable target,
215
+ plus a review gate that STACKS ON the verifier gate — required approvals from
216
+ authorized roles, enforced inside `resolveCommitGate` AFTER the verifier checks
217
+ and never instead of them, failing closed on quorum/authority/self-approval and
218
+ recording who approved the very artifact that shipped. Policy (required approvals,
219
+ authorized roles, self-approval) is data, default off (pre-v0.1.32 behavior
220
+ unchanged). The verbs are parity-gated and render read-only in the v0.1.30
221
+ Workbench. See [Team Collaboration](team-collaboration.7.md).
222
+
223
+ ## Release Tooling (v0.1.33)
224
+
225
+ the per-tag mechanical surfaces (version bump across 17 surfaces, feature scaffold, and the forward-reference docs) become deterministic scripts, with a de-duplicated release gate. See release-tooling(7).
226
+
227
+ ## Real Execution Backend Integrations (v0.1.34)
228
+
229
+ container/remote/ci backends really execute (docker/podman run, remote/CI POST-and-poll) under the sandbox contract, with byte-stable evidence vs node and fail-closed refusal when a runtime/endpoint is unavailable. See real-execution-backends(7).
230
+
231
+ ## Node Snapshot / Diff / Replay (v0.1.35)
232
+
233
+ per-node snapshot, structural diff, and isolated deterministic replay over StateNode, reusing the v0.1.23 eval harness; fail-closed on source drift (valid|stale|absent). See node-snapshot-diff-replay(7).
234
+
235
+ ## Contract Migration Tooling (v0.1.36)
236
+
237
+ first-class declared migration registry (run-state + workflow-app) with per-edge compatibility proofs, fail-closed reachability, and a round-trip/non-destruction prover. See contract-migration-tooling(7).
238
+
239
+ ## Control-Plane Scheduling (v0.1.37)
240
+
241
+ priority + concurrency limits + lease lifecycle + retry/backoff + fail-closed park over the v0.1.28 Run Registry queue; policy-as-data, deterministic. See control-plane-scheduling(7).
242
+
243
+ ## Agent Delegation Drive (v0.1.38)
244
+
245
+ spawn an external agent process per worker, capture result.md + attestation, auto-drive plan->dispatch->fulfill->accept->commit
246
+
247
+ ## Run Retention & Provable Reclamation (v0.1.39)
248
+
249
+ tiered, append-only, cryptographically-verifiable run reclamation: seal the audit skeleton, free the reconstructable bulk, prove it
250
+
251
+ ## Durable State & Locking (v0.1.40)
252
+
253
+ atomic temp->rename writes + fsync-durability for authoritative stores; portable stale-stealing file lock serializing the cross-process read-modify-write stores
254
+
255
+ ## Self-Audit Hardening & Pure-Router Decomposition (v0.1.41)
256
+
257
+ evidence grounding + durable audit append + symlink-hardened containment + deterministic worker ids + recursive redaction; BackendRegistry self-describing drivers (no per-id switches); orchestrator god-object decomposed into per-domain operation modules (pure loadRun->delegate router)
258
+
259
+ ## Robust Result Ingest (v0.1.42)
260
+
261
+ capture findings/evidence from any reasonable agent shape (alt keys + prose), CW derives grounded evidence itself, warn on empty capture — closes the v0.1.41 live-drive 'accepted with 0 captured' failure
262
+
263
+ ## No-False-Green Gate & Launch Prep (v0.1.43)
264
+
265
+ Hard gate blocking empty-capture verifier-gated commits, plus quickstart and launch-prep docs.
266
+
267
+ ## Release-Gate Determinism & Agents Vendor (v0.1.44)
268
+
269
+ Release-readiness checks now validate the committed blob (`git show HEAD:<path>`) instead of the mutable working tree — eliminating false-red/false-green from concurrent working-tree writes (iCloud/Spotlight/editor). Adds the `agents` vendor manifest target: a generated `.agents/plugins/cool-workflow/` adapter giving any non-Claude AI agent one common interface to CW.
270
+
271
+ ## P1-P2 Fixes & CI Content Surfaces (v0.1.49)
272
+
273
+ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.46), vendor-adapter registry (v0.1.47), state auto-compaction and P2 fixes (v0.1.48), plus CI content-surface determinism hardening (v0.1.49).
274
+ 0.1.51
275
+
276
+ 0.1.76
277
+
278
+ 0.1.77
279
+
280
+ 0.1.78
@@ -0,0 +1,159 @@
1
+ # Release Tooling
2
+
3
+ CW v0.1.33 adds Release Tooling: the mechanical, repetitive part of cutting a tag
4
+ becomes three deterministic scripts plus a de-duplicated release gate. Before
5
+ v0.1.33 a release meant hand-editing the version across ~17 surfaces and recreating
6
+ the same doc/test/CHANGELOG shapes by hand — slow, and the source of stale-version
7
+ gate failures. This release leaves the kernel runtime untouched and moves the toil
8
+ into tooling, so an author spends time on the feature, not the boilerplate.
9
+
10
+ The discipline is the same base-system separation used elsewhere: there is one
11
+ source of truth, and the mechanical surfaces are DERIVED from it, fail-closed.
12
+
13
+ ## bump:version
14
+
15
+ ```text
16
+ node scripts/bump-version.js <new-version>
17
+ npm run bump:version -- 0.1.33
18
+ ```
19
+
20
+ One command rewrites every STRUCTURED version surface from a single source
21
+ (`package.json`): `package.json`, `package-lock.json`, `src/version.ts`,
22
+ `manifest/plugin.manifest.json` (then `gen:manifests` propagates to the vendor
23
+ manifests), every `apps/*/app.json` (top-level `version` only, never
24
+ `compatibility.minVersion`), and the scripts/tests that hard-code the current
25
+ version as a current-version reference. The version string is swapped with a
26
+ TARGETED `old -> new` replace, so historical references (a prior `minVersion`, a
27
+ `pre-vX` note, a fixed demo version) are preserved. It then rebuilds `dist/`, runs
28
+ `version:sync`, and reports the remaining prose-doc surfaces.
29
+
30
+ `version-sync-check.js` reads the expected version from `package.json`, so the
31
+ checker can never drift from the bump source.
32
+
33
+ ## new:feature
34
+
35
+ ```text
36
+ node scripts/new-feature.js <slug> "<Title>" ["summary"]
37
+ ```
38
+
39
+ Scaffolds the per-tag boilerplate: the `docs/<slug>.7.md` skeleton, a runnable
40
+ `test/<slug>-smoke.js` stub, and a `CHANGELOG` entry, then PRINTS the exact
41
+ gate-file edits (capability registry, `version:sync` assertions, the `docs presence`
42
+ list, the `npm test` chain). Gate files are printed, never auto-edited, so a
43
+ scaffold can never silently break a release gate.
44
+
45
+ ## forward-ref
46
+
47
+ ```text
48
+ node scripts/forward-ref-docs.js "<Title>" "<summary>"
49
+ ```
50
+
51
+ Appends a `## <Title> (vX)` forward-reference section to every doc `version:sync`
52
+ requires to carry the current version (the repo's per-release documentation
53
+ pattern). APPEND-ONLY and idempotent: it never rewrites a historical version label
54
+ and re-running for the same version is a no-op.
55
+
56
+ ## De-duplicated release:check
57
+
58
+ `release:check` previously ran `npm test` AND then re-ran ~15 of those same smoke
59
+ tests individually (plus redundant `eval:replay`/`fixture-compat` re-runs). Every
60
+ individual step is already covered by `npm test`, so they were removed — the gate
61
+ keeps full coverage while dropping the duplicate wall time. The steps that remain
62
+ are the ones NOT covered by `npm test`: build, type check, `npm test`,
63
+ canonical-apps, golden-path, parity, vendor-manifest drift, and `version:sync`.
64
+
65
+ ## Boundary
66
+
67
+ Release Tooling touches only the build/release surfaces. It adds no runtime
68
+ capability, no CLI/MCP verb, and no run-state schema change; the kernel is
69
+ unchanged. Older releases cut by hand remain valid — the scripts only standardize
70
+ the mechanical surfaces a tag must update.
71
+
72
+ ## See Also
73
+
74
+ cli-mcp-parity(7), release-and-migration(7), dogfood-one-real-repo(7)
75
+
76
+ ## Real Execution Backend Integrations (v0.1.34)
77
+
78
+ container/remote/ci backends really execute (docker/podman run, remote/CI POST-and-poll) under the sandbox contract, with byte-stable evidence vs node and fail-closed refusal when a runtime/endpoint is unavailable. See real-execution-backends(7).
79
+
80
+ ## Node Snapshot / Diff / Replay (v0.1.35)
81
+
82
+ per-node snapshot, structural diff, and isolated deterministic replay over StateNode, reusing the v0.1.23 eval harness; fail-closed on source drift (valid|stale|absent). See node-snapshot-diff-replay(7).
83
+
84
+ ## Contract Migration Tooling (v0.1.36)
85
+
86
+ first-class declared migration registry (run-state + workflow-app) with per-edge compatibility proofs, fail-closed reachability, and a round-trip/non-destruction prover. See contract-migration-tooling(7).
87
+
88
+ ## Control-Plane Scheduling (v0.1.37)
89
+
90
+ priority + concurrency limits + lease lifecycle + retry/backoff + fail-closed park over the v0.1.28 Run Registry queue; policy-as-data, deterministic. See control-plane-scheduling(7).
91
+
92
+ ## Agent Delegation Drive (v0.1.38)
93
+
94
+ spawn an external agent process per worker, capture result.md + attestation, auto-drive plan->dispatch->fulfill->accept->commit
95
+
96
+ ## Run Retention & Provable Reclamation (v0.1.39)
97
+
98
+ tiered, append-only, cryptographically-verifiable run reclamation: seal the audit skeleton, free the reconstructable bulk, prove it
99
+
100
+ ## Durable State & Locking (v0.1.40)
101
+
102
+ atomic temp->rename writes + fsync-durability for authoritative stores; portable stale-stealing file lock serializing the cross-process read-modify-write stores
103
+
104
+ ## Self-Audit Hardening & Pure-Router Decomposition (v0.1.41)
105
+
106
+ evidence grounding + durable audit append + symlink-hardened containment + deterministic worker ids + recursive redaction; BackendRegistry self-describing drivers (no per-id switches); orchestrator god-object decomposed into per-domain operation modules (pure loadRun->delegate router)
107
+
108
+ ## Robust Result Ingest (v0.1.42)
109
+
110
+ capture findings/evidence from any reasonable agent shape (alt keys + prose), CW derives grounded evidence itself, warn on empty capture — closes the v0.1.41 live-drive 'accepted with 0 captured' failure
111
+
112
+ ## No-False-Green Gate & Launch Prep (v0.1.43)
113
+
114
+ Hard gate blocking empty-capture verifier-gated commits, plus quickstart and launch-prep docs.
115
+
116
+ ## Release-Gate Determinism & Agents Vendor (v0.1.44)
117
+
118
+ Release-readiness checks now validate the committed blob (`git show HEAD:<path>`) instead of the mutable working tree — eliminating false-red/false-green from concurrent working-tree writes (iCloud/Spotlight/editor). Adds the `agents` vendor manifest target: a generated `.agents/plugins/cool-workflow/` adapter giving any non-Claude AI agent one common interface to CW.
119
+
120
+ ## P1-P2 Fixes & CI Content Surfaces (v0.1.49)
121
+
122
+ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.46), vendor-adapter registry (v0.1.47), state auto-compaction and P2 fixes (v0.1.48), plus CI content-surface determinism hardening (v0.1.49).
123
+
124
+ ## Multi-platform release flow (`scripts/release-flow.js`)
125
+
126
+ The gated release ritual — deterministic gate → independent reviewer → verdict →
127
+ (tag) — is now ONE zero-dependency Node orchestrator that runs the same under any
128
+ harness. It does not depend on a host's agent-orchestration primitive; the only
129
+ LLM step (the reviewer) is **delegated** through CW's agent backend, so whichever
130
+ model you configure does the review. CW spawns the agent argv-style (`shell:false`),
131
+ inherits the agent's own credentials, and imports no model SDK — the red line.
132
+
133
+ ```bash
134
+ # check only (gate + independent review, no mutation):
135
+ node plugins/cool-workflow/scripts/release-flow.js --check
136
+ # cut a tag once review is green:
137
+ node plugins/cool-workflow/scripts/release-flow.js --cut --version 0.1.77 [--push]
138
+ ```
139
+
140
+ The per-platform difference is config, not code — set the reviewer agent:
141
+
142
+ | Platform | Reviewer config |
143
+ |---|---|
144
+ | Claude | `CW_AGENT_COMMAND="claude -p {{input}}"` |
145
+ | Codex | `CW_AGENT_COMMAND="codex exec {{input}}"` |
146
+ | Gemini | `CW_AGENT_COMMAND="gemini -p {{input}}"` |
147
+ | OpenCode | `CW_AGENT_COMMAND="opencode run -m <provider/model> {{input}}"` |
148
+ | DeepSeek | via OpenCode (`-m deepseek/deepseek-chat`) or `CW_AGENT_ENDPOINT=<deepseek-compatible HTTP agent>` |
149
+
150
+ `{{input}}` is substituted with the reviewer prompt file path. Gemini and OpenCode
151
+ also get generated MCP manifests (`.gemini-plugin/`, `.opencode-plugin/`) so the
152
+ `cw_*` tools are available as MCP tools in those hosts. The verdict path
153
+ (`.cw-release/review-<sha>.verdict`) and the tag-push CI backstop are unchanged.
154
+
155
+ 0.1.51
156
+
157
+ 0.1.76
158
+
159
+ 0.1.78
@@ -0,0 +1,48 @@
1
+ # Routines
2
+
3
+ CW routines define a trigger, an event payload, match rules, and a generated
4
+ prompt that an agent host can execute.
5
+
6
+ CW stores routine data in:
7
+
8
+ ```text
9
+ .cw/routines/triggers.json
10
+ .cw/routines/payloads/
11
+ ```
12
+
13
+ ## Commands
14
+
15
+ Create an API trigger:
16
+
17
+ ```bash
18
+ node scripts/cw.js routine create \
19
+ --kind api \
20
+ --prompt "Handle this API event."
21
+ ```
22
+
23
+ Create a GitHub trigger:
24
+
25
+ ```bash
26
+ node scripts/cw.js routine create \
27
+ --kind github \
28
+ --prompt "Review this GitHub event." \
29
+ --match '{"action":"opened"}'
30
+ ```
31
+
32
+ Fire a trigger from a payload file:
33
+
34
+ ```bash
35
+ node scripts/cw.js routine fire github payload.json
36
+ ```
37
+
38
+ Inspect events:
39
+
40
+ ```bash
41
+ node scripts/cw.js routine events
42
+ ```
43
+
44
+ ## Boundary
45
+
46
+ CW v0.1.1 does not provide managed cloud infrastructure. It provides a local
47
+ routine bridge that can be connected to GitHub Actions, webhooks, cron, or a
48
+ small HTTP adapter in a future release.