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,136 @@
1
+ # PIPELINE-RUNNER(7)
2
+
3
+ ## NAME
4
+
5
+ Pipeline Runner - contract-driven StateNode execution kernel for Cool Workflow
6
+
7
+ ## SYNOPSIS
8
+
9
+ ```ts
10
+ import { createPipelineRunner } from "./pipeline-runner";
11
+
12
+ const runner = createPipelineRunner();
13
+ const contract = runner.getRunContract(run);
14
+ const runnable = runner.findRunnablePipelineStages(run, contract);
15
+
16
+ const result = runner.runPipelineStage(run, "verify", resultNode.id, {
17
+ outputNodeId: `${run.id}:verifier:${task.id}`,
18
+ outputStatus: "verified",
19
+ evidence: resultNode.evidence
20
+ });
21
+ ```
22
+
23
+ ## DESCRIPTION
24
+
25
+ `Pipeline Runner` is the small execution kernel between workflow definitions,
26
+ pipeline contracts, state nodes, and CW operations such as dispatch, result,
27
+ verifier, commit, and report.
28
+
29
+ The runner does not implement business workflow behavior. It owns only stage
30
+ selection, contract validation, state-node transition, parent/child linking,
31
+ artifact and evidence attachment, and structured failure preservation.
32
+
33
+ The runner uses existing CW helpers:
34
+
35
+ - `validatePipelineContract`
36
+ - `assertNodeSatisfiesContract`
37
+ - `transitionStateNode`
38
+ - `recordNodeError`
39
+ - `linkStateNodes`
40
+ - `appendRunNode`
41
+ - `upsertRunContract`
42
+
43
+ ## EXECUTION MODEL
44
+
45
+ The default CW pipeline is:
46
+
47
+ ```text
48
+ input -> plan -> dispatch -> result -> verify -> commit -> report
49
+ ```
50
+
51
+ A stage run receives a `WorkflowRun`, a `stageId`, and an input `StateNode` id.
52
+ It resolves the active `PipelineContract`, validates the stage, creates the
53
+ output node declared by the contract, links input and output nodes, writes node
54
+ JSON under `nodes/`, and returns a structured result.
55
+
56
+ The runner records progress in files. There is no hidden in-memory-only
57
+ pipeline cursor.
58
+
59
+ ## CONTRACTS
60
+
61
+ Stages come from `PipelineContract.stages`. A stage declares accepted input node
62
+ kinds and statuses, required artifacts, required evidence, verifier gate
63
+ requirements, and the produced output node kind.
64
+
65
+ The runner does not duplicate contract validation. It uses the StateNode and
66
+ PipelineContract helpers as the ABI boundary.
67
+
68
+ ## FAILURE MODES
69
+
70
+ Contract failures become `StateNodeError` records. When the stage or contract
71
+ failure policy preserves failure nodes, the runner creates an `error` node,
72
+ records the structured error, links it to the input node, and persists it under
73
+ `nodes/`.
74
+
75
+ Unknown run ids, unknown contract ids, unknown node ids, unknown stage ids, and
76
+ corrupt state remain hard errors because the caller cannot proceed safely.
77
+
78
+ Commit stages are verifier-gated. The default contract requires a verified
79
+ verifier node with evidence before a `committed` commit node can be created.
80
+ Non-gated snapshots are written as `completed` checkpoint nodes outside the
81
+ commit stage.
82
+
83
+ ## FILES
84
+
85
+ ```text
86
+ .cw/runs/<run-id>/state.json
87
+ .cw/runs/<run-id>/nodes/<node-id>.json
88
+ .cw/runs/<run-id>/dispatches/*.json
89
+ .cw/runs/<run-id>/results/*.md
90
+ .cw/runs/<run-id>/commits/*.json
91
+ ```
92
+
93
+ Inspection commands print stable JSON:
94
+
95
+ ```text
96
+ cw.js contract show <run-id> [contract-id]
97
+ cw.js node list <run-id>
98
+ cw.js node show <run-id> <node-id>
99
+ cw.js node graph <run-id>
100
+ ```
101
+
102
+ ## EXAMPLES
103
+
104
+ Find runnable stages:
105
+
106
+ ```ts
107
+ const stages = findRunnablePipelineStages(run);
108
+ ```
109
+
110
+ Run a legal plan stage:
111
+
112
+ ```ts
113
+ runPipelineStage(run, "plan", `${run.id}:input`, {
114
+ outputNodeId: `${run.id}:task:${task.id}`,
115
+ outputStatus: "pending",
116
+ artifacts: [{ id: "task", kind: "markdown", path: task.taskPath }]
117
+ });
118
+ ```
119
+
120
+ Preserve a failed stage:
121
+
122
+ ```ts
123
+ const failed = runPipelineStage(run, "commit", taskNode.id, {
124
+ outputNodeId: `${run.id}:failed-commit`
125
+ });
126
+ ```
127
+
128
+ ## COMPATIBILITY
129
+
130
+ Pipeline Runner is introduced in CW v0.1.3. It preserves v0.1.2 run state and
131
+ CLI behavior. New public types are plain TypeScript interfaces with optional
132
+ fields where practical.
133
+
134
+ Older runs without `nodes` or `contracts` remain readable through the existing
135
+ state loader, which initializes those arrays.
136
+ 0.1.51
@@ -0,0 +1,261 @@
1
+ # Cool Workflow Project Index
2
+
3
+ Generated from the current repository code on 2026-06-11 by `npm run sync:project-index`.
4
+
5
+ ## Snapshot
6
+
7
+ - Package: `cool-workflow`
8
+ - Version: `0.1.78`
9
+ - Source modules: `57`
10
+ - Workflow apps: `6`
11
+ - Docs: `46`
12
+ - Smoke tests: `68`
13
+ - Repository: https://github.com/coo1white/cool-workflow
14
+
15
+ ## Architecture
16
+
17
+ ```text
18
+ workflow app -> runner -> dispatch -> isolated workers
19
+ -> results -> feedback/candidates -> verifier gate
20
+ -> commit/checkpoint -> report/trust audit
21
+
22
+ multi-agent host -> topology -> blackboard/coordinator
23
+ -> fanout/fanin -> candidate score/select
24
+ ```
25
+
26
+ ## Source Map
27
+
28
+ ### Core runtime
29
+
30
+ | Module | Responsibility |
31
+ | --- | --- |
32
+ | [orchestrator.ts](../src/orchestrator.ts) | Plans runs, loads workflows, records results, writes reports, and exposes runner commands. |
33
+ | [state.ts](../src/state.ts) | Persists run checkpoints, JSON state, run paths, and state migration entrypoints. |
34
+ | [state-node.ts](../src/state-node.ts) | Defines explicit state nodes, pipeline transitions, evidence checks, and node persistence. |
35
+ | [pipeline-contract.ts](../src/pipeline-contract.ts) | Builds the default pipeline contract used by run state. |
36
+ | [pipeline-runner.ts](../src/pipeline-runner.ts) | Finds runnable stages and advances/fails pipeline nodes with retry-aware errors. |
37
+ | [types.ts](../src/types.ts) | Owns the shared workflow, run, app, evidence, worker, candidate, audit, and topology types. |
38
+
39
+ ### Verification and state gates
40
+
41
+ | Module | Responsibility |
42
+ | --- | --- |
43
+ | [verifier.ts](../src/verifier.ts) | Validates result envelopes, findings, evidence, and run gate completion. |
44
+ | [commit.ts](../src/commit.ts) | Creates verifier-gated commits and explicit manual checkpoints. |
45
+ | [candidate-scoring.ts](../src/candidate-scoring.ts) | Registers, scores, ranks, selects, rejects, and summarizes candidate outputs. |
46
+ | [error-feedback.ts](../src/error-feedback.ts) | Turns failures into persisted feedback records and correction tasks. |
47
+ | [trust-audit.ts](../src/trust-audit.ts) | Records provenance, sandbox decisions, host attestations, and acceptance rationale. |
48
+
49
+ ### Workers and policy
50
+
51
+ | Module | Responsibility |
52
+ | --- | --- |
53
+ | [dispatch.ts](../src/dispatch.ts) | Selects runnable tasks and writes dispatch manifests. |
54
+ | [worker-isolation.ts](../src/worker-isolation.ts) | Allocates worker scopes, writes manifests, records worker outputs, and validates boundaries. |
55
+ | [sandbox-profile.ts](../src/sandbox-profile.ts) | Resolves named sandbox policy contracts and validates read/write/command/network boundaries. |
56
+ | [harness.ts](../src/harness.ts) | Renders task files for dispatched work. |
57
+
58
+ ### Multi-agent layer
59
+
60
+ | Module | Responsibility |
61
+ | --- | --- |
62
+ | [multi-agent.ts](../src/multi-agent.ts) | Persists multi-agent runs, roles, groups, memberships, fanouts, and fanins. |
63
+ | [coordinator.ts](../src/coordinator.ts) | Owns blackboard topics, messages, context, artifacts, snapshots, and coordinator decisions. |
64
+ | [topology.ts](../src/topology.ts) | Defines and applies official map-reduce, debate, and judge-panel topologies. |
65
+ | [multi-agent-host.ts](../src/multi-agent-host.ts) | Provides the preferred host loop for run, status, step, blackboard, score, and select. |
66
+
67
+ ### User and host surfaces
68
+
69
+ | Module | Responsibility |
70
+ | --- | --- |
71
+ | [cli.ts](../src/cli.ts) | Routes human CLI commands to runtime, app, topology, multi-agent, and operator flows. |
72
+ | [mcp-server.ts](../src/mcp-server.ts) | Exposes JSON-RPC/MCP tool parity for agent hosts. |
73
+ | [operator-ux.ts](../src/operator-ux.ts) | Formats status, reports, graph, worker, candidate, feedback, commit, and trust summaries. |
74
+ | [workflow-app-framework.ts](../src/workflow-app-framework.ts) | Validates app manifests and loads app entrypoints. |
75
+ | [workflow-api.ts](../src/workflow-api.ts) | Provides the fluent workflow, phase, task, artifact, and input API. |
76
+ | [daemon.ts](../src/daemon.ts) | Runs scheduled tasks through the desktop scheduler daemon. |
77
+ | [scheduler.ts](../src/scheduler.ts) | Creates, stores, computes, and runs schedules. |
78
+ | [triggers.ts](../src/triggers.ts) | Bridges routine triggers to explicit workflow events. |
79
+ | [version.ts](../src/version.ts) | Defines current package and state schema versions. |
80
+
81
+ ### Other Source Modules
82
+
83
+ - [agent-config.ts](../src/agent-config.ts)
84
+ - [capability-core.ts](../src/capability-core.ts)
85
+ - [capability-dispatcher.ts](../src/capability-dispatcher.ts)
86
+ - [capability-registry.ts](../src/capability-registry.ts)
87
+ - [collaboration.ts](../src/collaboration.ts)
88
+ - [contract-migration.ts](../src/contract-migration.ts)
89
+ - [drive.ts](../src/drive.ts)
90
+ - [evidence-grounding.ts](../src/evidence-grounding.ts)
91
+ - [evidence-reasoning.ts](../src/evidence-reasoning.ts)
92
+ - [execution-backend.ts](../src/execution-backend.ts)
93
+ - [multi-agent-eval.ts](../src/multi-agent-eval.ts)
94
+ - [multi-agent-operator-ux.ts](../src/multi-agent-operator-ux.ts)
95
+ - [multi-agent-trust.ts](../src/multi-agent-trust.ts)
96
+ - [node-snapshot.ts](../src/node-snapshot.ts)
97
+ - [observability.ts](../src/observability.ts)
98
+ - [reclamation.ts](../src/reclamation.ts)
99
+ - [result-normalize.ts](../src/result-normalize.ts)
100
+ - [run-export.ts](../src/run-export.ts)
101
+ - [run-registry.ts](../src/run-registry.ts)
102
+ - [run-state-schema.ts](../src/run-state-schema.ts)
103
+ - [scheduling.ts](../src/scheduling.ts)
104
+ - [schema-validate.ts](../src/schema-validate.ts)
105
+ - [state-explosion.ts](../src/state-explosion.ts)
106
+ - [state-migrations.ts](../src/state-migrations.ts)
107
+ - [telemetry-attestation.ts](../src/telemetry-attestation.ts)
108
+ - [telemetry-ledger.ts](../src/telemetry-ledger.ts)
109
+ - [verifier-registry.ts](../src/verifier-registry.ts)
110
+ - [workbench-host.ts](../src/workbench-host.ts)
111
+ - [workbench.ts](../src/workbench.ts)
112
+
113
+ ## Workflow Apps
114
+
115
+ | App | Type | Inputs | Sandbox | Source |
116
+ | --- | --- | --- | --- | --- |
117
+ | `architecture-review` - Map a repository architecture, assess risks, verify important findings, and synthesize an evidence-backed verdict. | canonical | `repo`, `question`, `invariant`, `focus` | `readonly` | [manifest](../apps/architecture-review/app.json) / [workflow](../apps/architecture-review/workflow.js) |
118
+ | `end-to-end-golden-path` - Deterministic one-worker workflow app for proving the CW integration chain. | userland | `question` | `readonly` | [manifest](../apps/end-to-end-golden-path/app.json) / [workflow](../apps/end-to-end-golden-path/workflow.js) |
119
+ | `pr-review-fix-ci` - Review a pull request or branch, inspect CI failures, diagnose actionable issues, optionally patch, verify, and summarize with evidence. | canonical | `repo`, `pr`, `branch`, `base`, `ci`, `mode` | `readonly`, `workspace-write` | [manifest](../apps/pr-review-fix-ci/app.json) / [workflow](../apps/pr-review-fix-ci/workflow.js) |
120
+ | `release-cut` - Prepare a release with checklist discipline: version checks, changelog, tests, packaging, release notes, and final verification. | canonical | `repo`, `version`, `previousVersion`, `releaseBranch`, `dryRun` | `readonly`, `workspace-write` | [manifest](../apps/release-cut/app.json) / [workflow](../apps/release-cut/workflow.js) |
121
+ | `research-synthesis` - Split a research question into claims, investigate sources, cross-check evidence, verify claims, and synthesize a concise answer. | canonical | `question`, `source`, `scope`, `freshness` | `readonly`, `locked-down` | [manifest](../apps/research-synthesis/app.json) / [workflow](../apps/research-synthesis/workflow.js) |
122
+ | `workflow-app-framework-demo` - Small framework app showing inputs, phases, evidence gates, and sandbox profile hints. | example | `question` | `readonly`, `workspace-write` | [manifest](../apps/workflow-app-framework-demo/app.json) / [workflow](../apps/workflow-app-framework-demo/workflow.js) |
123
+
124
+ ## Documentation Map
125
+
126
+ - [Agent Delegation Drive](agent-delegation-drive.7.md)
127
+ - [Workflow App framework](agent-framework.md)
128
+ - [CANDIDATE-SCORING(7)](candidate-scoring.7.md)
129
+ - [Canonical Workflow Apps](canonical-workflow-apps.7.md)
130
+ - [CAPABILITY-TOPOLOGY-REGISTRY(7) — Cool Workflow Agent-Driven Self-Evolution](capability-topology-registry.7.md)
131
+ - [CLI ↔ MCP Parity](cli-mcp-parity.7.md)
132
+ - [Contract Migration Tooling](contract-migration-tooling.7.md)
133
+ - [Control-Plane Scheduling](control-plane-scheduling.7.md)
134
+ - [Coordinator / Blackboard](coordinator-blackboard.7.md)
135
+ - [Dogfood One Real Repo](dogfood-one-real-repo.7.md)
136
+ - [Durable State & Locking](durable-state-and-locking.7.md)
137
+ - [End-to-End Golden Path](end-to-end-golden-path.7.md)
138
+ - [ERROR-FEEDBACK(7)](error-feedback.7.md)
139
+ - [Evidence Adoption Reasoning Chain](evidence-adoption-reasoning-chain.7.md)
140
+ - [EXECUTION-BACKENDS(7)](execution-backends.7.md)
141
+ - [Getting Started](getting-started.md)
142
+ - [Cool Workflow Docs](index.md)
143
+ - [MCP App Surface](mcp-app-surface.7.md)
144
+ - [Multi-Agent CLI + MCP Surface](multi-agent-cli-mcp-surface.7.md)
145
+ - [Multi-Agent Eval & Replay Harness](multi-agent-eval-replay-harness.7.md)
146
+ - [Multi-Agent Operator UX](multi-agent-operator-ux.7.md)
147
+ - [Multi-Agent Runtime Core](multi-agent-runtime-core.7.md)
148
+ - [Multi-Agent Topologies](multi-agent-topologies.7.md)
149
+ - [Multi-Agent Trust / Policy / Audit](multi-agent-trust-policy-audit.7.md)
150
+ - [Node Snapshot / Diff / Replay](node-snapshot-diff-replay.7.md)
151
+ - [Observability + Cost Accounting](observability-cost-accounting.7.md)
152
+ - [Operator UX](operator-ux.7.md)
153
+ - [PIPELINE-RUNNER(7)](pipeline-runner.7.md)
154
+ - [Cool Workflow Project Index](project-index.md)
155
+ - [Real Execution Backend Integrations](real-execution-backends.7.md)
156
+ - [Release And Migration Discipline](release-and-migration.7.md)
157
+ - [Release Tooling](release-tooling.7.md)
158
+ - [Routines](routines.md)
159
+ - [Run Registry / Control Plane](run-registry-control-plane.7.md)
160
+ - [Run Retention & Provable Reclamation](run-retention-reclamation.7.md)
161
+ - [SANDBOX-PROFILES(7)](sandbox-profiles.7.md)
162
+ - [Scheduled Tasks](scheduled-tasks.md)
163
+ - [Security / Trust Hardening](security-trust-hardening.7.md)
164
+ - [State Explosion Management](state-explosion-management.7.md)
165
+ - [STATE-NODE(7)](state-node.7.md)
166
+ - [Team Collaboration](team-collaboration.7.md)
167
+ - [Unix-Inspired Workflow Principles](unix-principles.md)
168
+ - [VERIFIER-GATED-COMMIT(7)](verifier-gated-commit.7.md)
169
+ - [Web / Desktop Workbench](web-desktop-workbench.7.md)
170
+ - [WORKER-ISOLATION(7)](worker-isolation.7.md)
171
+ - [Workflow App framework](workflow-app-framework.7.md)
172
+
173
+ ## Test Surface
174
+
175
+ Smoke tests mirror the public contracts. The high-signal suites are:
176
+
177
+ - [agent-delegation-drive-smoke.js](../test/agent-delegation-drive-smoke.js)
178
+ - [artifact-integrity-smoke.js](../test/artifact-integrity-smoke.js)
179
+ - [backend-registry-smoke.js](../test/backend-registry-smoke.js)
180
+ - [block-unapproved-tag-smoke.js](../test/block-unapproved-tag-smoke.js)
181
+ - [candidate-scoring-smoke.js](../test/candidate-scoring-smoke.js)
182
+ - [canonical-workflow-apps-smoke.js](../test/canonical-workflow-apps-smoke.js)
183
+ - [claude-p-agent-wrapper-smoke.js](../test/claude-p-agent-wrapper-smoke.js)
184
+ - [cli-mcp-parity-smoke.js](../test/cli-mcp-parity-smoke.js)
185
+ - [concurrent-failure-semantics-smoke.js](../test/concurrent-failure-semantics-smoke.js)
186
+ - [concurrent-workflow-dsl-smoke.js](../test/concurrent-workflow-dsl-smoke.js)
187
+ - [contract-migration-tooling-smoke.js](../test/contract-migration-tooling-smoke.js)
188
+ - [control-plane-scheduling-smoke.js](../test/control-plane-scheduling-smoke.js)
189
+ - [coordinator-blackboard-smoke.js](../test/coordinator-blackboard-smoke.js)
190
+ - [dogfood-release-smoke.js](../test/dogfood-release-smoke.js)
191
+ - [durable-atomic-write-smoke.js](../test/durable-atomic-write-smoke.js)
192
+ - [end-to-end-demo-smoke.js](../test/end-to-end-demo-smoke.js)
193
+ - [end-to-end-golden-path-smoke.js](../test/end-to-end-golden-path-smoke.js)
194
+ - [error-feedback-resolution-smoke.js](../test/error-feedback-resolution-smoke.js)
195
+ - [error-feedback-smoke.js](../test/error-feedback-smoke.js)
196
+ - [evidence-adoption-reasoning-smoke.js](../test/evidence-adoption-reasoning-smoke.js)
197
+ - [evidence-content-extraction-smoke.js](../test/evidence-content-extraction-smoke.js)
198
+ - [execution-backends-smoke.js](../test/execution-backends-smoke.js)
199
+ - [mcp-app-surface-smoke.js](../test/mcp-app-surface-smoke.js)
200
+ - [multi-agent-cli-mcp-surface-smoke.js](../test/multi-agent-cli-mcp-surface-smoke.js)
201
+ - [multi-agent-eval-replay-harness-smoke.js](../test/multi-agent-eval-replay-harness-smoke.js)
202
+ - [multi-agent-eval-replay-smoke.js](../test/multi-agent-eval-replay-smoke.js)
203
+ - [multi-agent-operator-ux-smoke.js](../test/multi-agent-operator-ux-smoke.js)
204
+ - [multi-agent-runtime-core-smoke.js](../test/multi-agent-runtime-core-smoke.js)
205
+ - [multi-agent-topologies-smoke.js](../test/multi-agent-topologies-smoke.js)
206
+ - [multi-agent-trust-policy-audit-smoke.js](../test/multi-agent-trust-policy-audit-smoke.js)
207
+ - [no-false-green-smoke.js](../test/no-false-green-smoke.js)
208
+ - [node-snapshot-diff-replay-smoke.js](../test/node-snapshot-diff-replay-smoke.js)
209
+ - [observability-cost-accounting-smoke.js](../test/observability-cost-accounting-smoke.js)
210
+ - [one-way-boundary-smoke.js](../test/one-way-boundary-smoke.js)
211
+ - [operator-ux-smoke.js](../test/operator-ux-smoke.js)
212
+ - [parallel-onramp-smoke.js](../test/parallel-onramp-smoke.js)
213
+ - [pipeline-auto-advance-smoke.js](../test/pipeline-auto-advance-smoke.js)
214
+ - [pipeline-runner-smoke.js](../test/pipeline-runner-smoke.js)
215
+ - [project-index-sync-smoke.js](../test/project-index-sync-smoke.js)
216
+ - [quickstart-smoke.js](../test/quickstart-smoke.js)
217
+ - [real-execution-backends-smoke.js](../test/real-execution-backends-smoke.js)
218
+ - [release-flow-smoke.js](../test/release-flow-smoke.js)
219
+ - [release-gate-smoke.js](../test/release-gate-smoke.js)
220
+ - [release-tooling-smoke.js](../test/release-tooling-smoke.js)
221
+ - [result-normalize-smoke.js](../test/result-normalize-smoke.js)
222
+ - [robustness-hardening-smoke.js](../test/robustness-hardening-smoke.js)
223
+ - [run-export-import-smoke.js](../test/run-export-import-smoke.js)
224
+ - [run-fixture-compat-smoke.js](../test/run-fixture-compat-smoke.js)
225
+ - [run-registry-control-plane-smoke.js](../test/run-registry-control-plane-smoke.js)
226
+ - [run-retention-reclamation-smoke.js](../test/run-retention-reclamation-smoke.js)
227
+ - [sandbox-profile-smoke.js](../test/sandbox-profile-smoke.js)
228
+ - [schema-validation-smoke.js](../test/schema-validation-smoke.js)
229
+ - [security-trust-hardening-smoke.js](../test/security-trust-hardening-smoke.js)
230
+ - [self-audit-hardening-smoke.js](../test/self-audit-hardening-smoke.js)
231
+ - [state-explosion-management-smoke.js](../test/state-explosion-management-smoke.js)
232
+ - [state-node-smoke.js](../test/state-node-smoke.js)
233
+ - [team-collaboration-smoke.js](../test/team-collaboration-smoke.js)
234
+ - [telemetry-attest-wrap-smoke.js](../test/telemetry-attest-wrap-smoke.js)
235
+ - [telemetry-attestation-smoke.js](../test/telemetry-attestation-smoke.js)
236
+ - [telemetry-fail-closed-smoke.js](../test/telemetry-fail-closed-smoke.js)
237
+ - [telemetry-ledger-smoke.js](../test/telemetry-ledger-smoke.js)
238
+ - [telemetry-metrics-coverage-smoke.js](../test/telemetry-metrics-coverage-smoke.js)
239
+ - [token-budget-enforcement-smoke.js](../test/token-budget-enforcement-smoke.js)
240
+ - [verifier-gated-commit-smoke.js](../test/verifier-gated-commit-smoke.js)
241
+ - [web-desktop-workbench-smoke.js](../test/web-desktop-workbench-smoke.js)
242
+ - [worker-isolation-smoke.js](../test/worker-isolation-smoke.js)
243
+ - [worker-retry-count-smoke.js](../test/worker-retry-count-smoke.js)
244
+ - [workflow-app-framework-smoke.js](../test/workflow-app-framework-smoke.js)
245
+
246
+ ## Sync Targets
247
+
248
+ - Repository docs: [docs/project-index.md](project-index.md)
249
+ - Obsidian vault (optional): set `CW_OBSIDIAN_VAULT` to your local vault path.
250
+ - GitHub Wiki: the `cool-workflow.wiki` working tree (override with `CW_GITHUB_WIKI_DIR`).
251
+
252
+ ## Maintenance
253
+
254
+ Run this after changing source modules, workflow app manifests, public docs, or smoke test coverage:
255
+
256
+ ```bash
257
+ cd plugins/cool-workflow
258
+ npm run sync:project-index
259
+ ```
260
+
261
+ Then review the Obsidian page and GitHub Wiki working tree before publishing wiki changes.
@@ -0,0 +1,142 @@
1
+ # Real Execution Backend Integrations
2
+
3
+ CW v0.1.34 makes the delegating execution backends REAL. v0.1.29 shipped the
4
+ driver layer (`src/execution-backend.ts`) with `node`/`bun`/`shell` really
5
+ executing and `container`/`remote`/`ci` as contract-conformant stubs: `delegate()`
6
+ built a handle and returned `status: "completed"` with `delegated:`/`handle:`
7
+ evidence without running anything. v0.1.34 replaces that no-op so the three
8
+ delegating drivers actually drive a container runtime, a remote runner, and a CI
9
+ job — opt-in, fail-closed, and recording the SAME canonical evidence as `node`.
10
+
11
+ The driver model and the sandbox contract are unchanged; only HOW/WHERE a
12
+ delegated task runs becomes real.
13
+
14
+ ## Identical Evidence, Any Backend
15
+
16
+ A real delegated run records the SAME canonical evidence `executeLocal` produces:
17
+
18
+ ```text
19
+ command:<command + args>
20
+ exitCode:<code>
21
+ stdoutSha256:sha256:<hex>
22
+ ```
23
+
24
+ The execution handle (`image@digest`, `endpoint#jobId`) lives in
25
+ `provenance.handle` and the sandbox attestation in `provenance.attestation` —
26
+ NEVER in `evidence`. So a `container` run of the same task is byte-stable against
27
+ `node` after stripping provenance: only `provenance.backendId`/`handle`/
28
+ `attestation` and ISO timestamps differ. Eval/replay, the verifier gates, the
29
+ v0.1.28 registry, and the v0.1.30 Workbench stay backend-agnostic.
30
+
31
+ ## container
32
+
33
+ Runs `docker` (or `podman`) really, under the sandbox contract:
34
+
35
+ ```text
36
+ <runtime> run --rm [--network none] -v <cwd>:<cwd>:ro -w <cwd> [-e NAME=VALUE ...] <image[@digest]> <command> <args>
37
+ ```
38
+
39
+ - **network** — `--network none` when the profile restricts it (`network.mode !=
40
+ any`); a container network namespace genuinely enforces this (the dimension is
41
+ declared `enforce`).
42
+ - **read/write** — the workspace is mounted read-only at the same path; CW's
43
+ worker-output acceptance still bounds writes. (Write-through mounts are a later
44
+ refinement.)
45
+ - **env** — only the profile's explicitly exposed names cross into the container;
46
+ the image supplies its own `PATH`/`HOME`, so host-specific base env is never
47
+ injected.
48
+
49
+ Selection supplies the image via `--image` / `CW_CONTAINER_IMAGE` (+ optional
50
+ `CW_CONTAINER_DIGEST`).
51
+
52
+ ## remote / ci
53
+
54
+ Real HTTP delegation. The job `{ command, args, env, sandboxProfileId, jobId? }`
55
+ is POSTed to the configured endpoint by a self-contained Node child (global
56
+ `fetch`, so the driver stays portable and synchronous from CW's view); a returned
57
+ `jobId` is polled until `done`. The runner's `{ exitCode, stdout }` becomes the
58
+ canonical evidence. Endpoints come from `--endpoint`/`--job` or
59
+ `CW_REMOTE_ENDPOINT`/`CW_REMOTE_JOB` / `CW_CI_ENDPOINT`/`CW_CI_JOB`.
60
+
61
+ ## Fail Closed
62
+
63
+ A delegated run NEVER fabricates a completion. It returns `status: "refused"`
64
+ (`attestation.status: "refused"`, a `refused:<code>` evidence line, no
65
+ `stdoutSha256:`) when:
66
+
67
+ - `delegation-target-missing` — no image (container) or no endpoint (remote/ci).
68
+ - `no-command` — a delegating backend was asked to run with no command.
69
+ - `runtime-unavailable` — no `docker`/`podman` on PATH, or the daemon is
70
+ **unreachable**. A present CLI with a dead daemon is detected by a pre-flight
71
+ `<runtime> version --format {{.Server.Version}}` (which returns the server
72
+ version only when reachable) — the container run's own exit code is NOT a
73
+ reliable daemon-down signal across runtimes, so it is not relied upon.
74
+ - `delegation-failed` — the runtime errored (e.g. `docker` exit 125 for a bad
75
+ image), the HTTP POST/poll failed or was unreachable, or the runner returned an
76
+ unparseable response or no `exitCode`.
77
+
78
+ A container command that genuinely runs and exits non-zero is `failed` (a real
79
+ result), distinct from `refused` (never ran).
80
+
81
+ ## Compatibility
82
+
83
+ The default backend stays `node`; the dispatch path stays a `delegate-host`
84
+ execution reproducing pre-v0.1.29 behavior exactly. With no container runtime, no
85
+ endpoint, and no credentials, every existing probe and test output is unchanged —
86
+ real execution is strictly opt-in. The `ResultEnvelope` schema is unchanged.
87
+
88
+ ## See Also
89
+
90
+ execution-backends(7), sandbox-profiles(7), cli-mcp-parity(7),
91
+ run-registry-control-plane(7)
92
+
93
+ ## Node Snapshot / Diff / Replay (v0.1.35)
94
+
95
+ 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).
96
+
97
+ ## Contract Migration Tooling (v0.1.36)
98
+
99
+ 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).
100
+
101
+ ## Control-Plane Scheduling (v0.1.37)
102
+
103
+ 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).
104
+
105
+ ## Agent Delegation Drive (v0.1.38)
106
+
107
+ spawn an external agent process per worker, capture result.md + attestation, auto-drive plan->dispatch->fulfill->accept->commit
108
+
109
+ ## Run Retention & Provable Reclamation (v0.1.39)
110
+
111
+ tiered, append-only, cryptographically-verifiable run reclamation: seal the audit skeleton, free the reconstructable bulk, prove it
112
+
113
+ ## Durable State & Locking (v0.1.40)
114
+
115
+ atomic temp->rename writes + fsync-durability for authoritative stores; portable stale-stealing file lock serializing the cross-process read-modify-write stores
116
+
117
+ ## Self-Audit Hardening & Pure-Router Decomposition (v0.1.41)
118
+
119
+ 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)
120
+
121
+ ## Robust Result Ingest (v0.1.42)
122
+
123
+ 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
124
+
125
+ ## No-False-Green Gate & Launch Prep (v0.1.43)
126
+
127
+ Hard gate blocking empty-capture verifier-gated commits, plus quickstart and launch-prep docs.
128
+
129
+ ## Release-Gate Determinism & Agents Vendor (v0.1.44)
130
+
131
+ 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.
132
+
133
+ ## P1-P2 Fixes & CI Content Surfaces (v0.1.49)
134
+
135
+ 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).
136
+ 0.1.51
137
+
138
+ 0.1.76
139
+
140
+ 0.1.77
141
+
142
+ 0.1.78