cool-workflow 0.1.81 → 0.1.83

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 (102) hide show
  1. package/.claude-plugin/plugin.json +2 -2
  2. package/.codex-plugin/plugin.json +4 -4
  3. package/README.md +125 -121
  4. package/apps/architecture-review/app.json +1 -1
  5. package/apps/architecture-review-fast/app.json +1 -1
  6. package/apps/end-to-end-golden-path/app.json +1 -1
  7. package/apps/pr-review-fix-ci/app.json +1 -1
  8. package/apps/release-cut/app.json +1 -1
  9. package/apps/research-synthesis/app.json +1 -1
  10. package/dist/candidate-scoring.js +20 -26
  11. package/dist/capability-core.js +80 -93
  12. package/dist/capability-registry.js +30 -3
  13. package/dist/cli.js +12 -1
  14. package/dist/commit.js +217 -204
  15. package/dist/coordinator/util.js +6 -9
  16. package/dist/dispatch.js +11 -3
  17. package/dist/doctor.js +153 -0
  18. package/dist/evidence-reasoning.js +4 -1
  19. package/dist/execution-backend/agent.js +11 -48
  20. package/dist/execution-backend.js +11 -31
  21. package/dist/gates.js +48 -0
  22. package/dist/mcp-server.js +11 -0
  23. package/dist/multi-agent/helpers.js +6 -10
  24. package/dist/multi-agent/ids.js +20 -0
  25. package/dist/multi-agent-eval.js +27 -1
  26. package/dist/multi-agent-host.js +53 -21
  27. package/dist/multi-agent-operator-ux.js +2 -1
  28. package/dist/multi-agent-trust.js +5 -5
  29. package/dist/node-projection.js +59 -0
  30. package/dist/node-snapshot.js +8 -18
  31. package/dist/orchestrator/lifecycle-operations.js +22 -1
  32. package/dist/orchestrator.js +29 -2
  33. package/dist/reclamation/hash.js +72 -0
  34. package/dist/reclamation.js +31 -112
  35. package/dist/run-registry/queue.js +6 -7
  36. package/dist/run-registry.js +35 -24
  37. package/dist/scheduler.js +112 -57
  38. package/dist/topology.js +25 -4
  39. package/dist/trust-audit.js +70 -38
  40. package/dist/validation.js +328 -0
  41. package/dist/version.js +1 -1
  42. package/dist/worker-isolation.js +163 -58
  43. package/docs/agent-delegation-drive.7.md +90 -85
  44. package/docs/agent-framework.md +33 -32
  45. package/docs/candidate-scoring.7.md +26 -24
  46. package/docs/canonical-workflow-apps.7.md +40 -40
  47. package/docs/capability-topology-registry.7.md +24 -24
  48. package/docs/cli-mcp-parity.7.md +227 -154
  49. package/docs/contract-migration-tooling.7.md +49 -41
  50. package/docs/control-plane-scheduling.7.md +45 -40
  51. package/docs/coordinator-blackboard.7.md +30 -30
  52. package/docs/dogfood-one-real-repo.7.md +44 -44
  53. package/docs/durable-state-and-locking.7.md +35 -30
  54. package/docs/end-to-end-golden-path.7.md +29 -29
  55. package/docs/error-feedback.7.md +27 -27
  56. package/docs/evidence-adoption-reasoning-chain.7.md +63 -58
  57. package/docs/execution-backends.7.md +84 -79
  58. package/docs/getting-started.md +35 -18
  59. package/docs/index.md +3 -3
  60. package/docs/mcp-app-surface.7.md +64 -64
  61. package/docs/multi-agent-cli-mcp-surface.7.md +83 -77
  62. package/docs/multi-agent-eval-replay-harness.7.md +59 -54
  63. package/docs/multi-agent-operator-ux.7.md +70 -65
  64. package/docs/multi-agent-runtime-core.7.md +39 -39
  65. package/docs/multi-agent-topologies.7.md +24 -24
  66. package/docs/multi-agent-trust-policy-audit.7.md +38 -38
  67. package/docs/node-snapshot-diff-replay.7.md +26 -21
  68. package/docs/observability-cost-accounting.7.md +50 -45
  69. package/docs/operator-ux.7.md +30 -30
  70. package/docs/pipeline-runner.7.md +31 -31
  71. package/docs/project-index.md +15 -6
  72. package/docs/real-execution-backends.7.md +47 -42
  73. package/docs/release-and-migration.7.md +43 -38
  74. package/docs/release-tooling.7.md +74 -39
  75. package/docs/routines.md +16 -16
  76. package/docs/run-registry-control-plane.7.md +120 -115
  77. package/docs/run-retention-reclamation.7.md +46 -41
  78. package/docs/sandbox-profiles.7.md +32 -32
  79. package/docs/scheduled-tasks.md +14 -14
  80. package/docs/security-trust-hardening.7.md +29 -29
  81. package/docs/source-context-profiles.7.md +28 -28
  82. package/docs/state-explosion-management.7.md +64 -59
  83. package/docs/state-node.7.md +8 -8
  84. package/docs/team-collaboration.7.md +63 -58
  85. package/docs/trust-model.md +126 -126
  86. package/docs/unix-principles.md +80 -80
  87. package/docs/vendor-manifest-loadability.7.md +20 -20
  88. package/docs/verifier-gated-commit.7.md +16 -16
  89. package/docs/web-desktop-workbench.7.md +70 -65
  90. package/docs/worker-isolation.7.md +34 -37
  91. package/docs/workflow-app-framework.7.md +38 -38
  92. package/manifest/plugin.manifest.json +4 -4
  93. package/manifest/source-context-profiles.json +1 -1
  94. package/package.json +3 -2
  95. package/scripts/canonical-apps.js +4 -4
  96. package/scripts/children/batch-delegate-child.js +58 -0
  97. package/scripts/children/http-delegate-child.js +39 -0
  98. package/scripts/dogfood-release.js +1 -1
  99. package/scripts/gen-parity-doc.js +106 -0
  100. package/scripts/golden-path.js +4 -4
  101. package/scripts/release-flow.js +181 -5
  102. package/dist/verifier-registry.js +0 -46
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cool-workflow",
3
- "description": "Auditable workflow control-plane and orchestration runtime: TypeScript dispatch, evidence-gated verification, state commits, scheduling, routines, multi-agent coordination, and MCP. Delegates execution to external agents — never runs models.",
4
- "version": "0.1.81",
3
+ "description": "A workflow control plane and run-time you are able to check: it sends out jobs in TypeScript, makes certain of work against facts before it goes through, puts state into fixed records, orders jobs by time, runs jobs again and again, gets a group of agents to do their parts together, and talks MCP. It gives the doing of the work to outside agents — it never runs the models itself.",
4
+ "version": "0.1.83",
5
5
  "author": {
6
6
  "name": "COOLWHITE LLC"
7
7
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cool-workflow",
3
- "version": "0.1.81",
4
- "description": "Auditable workflow control-plane and orchestration runtime: TypeScript dispatch, evidence-gated verification, state commits, scheduling, routines, multi-agent coordination, and MCP. Delegates execution to external agents — never runs models.",
3
+ "version": "0.1.83",
4
+ "description": "A workflow control plane and run-time you are able to check: it sends out jobs in TypeScript, makes certain of work against facts before it goes through, puts state into fixed records, orders jobs by time, runs jobs again and again, gets a group of agents to do their parts together, and talks MCP. It gives the doing of the work to outside agents — it never runs the models itself.",
5
5
  "author": {
6
6
  "name": "COOLWHITE LLC"
7
7
  },
@@ -19,8 +19,8 @@
19
19
  "mcpServers": "./.codex-plugin/mcp.json",
20
20
  "interface": {
21
21
  "displayName": "Cool Workflow",
22
- "shortDescription": "Auditable workflow control-plane.",
23
- "longDescription": "Cool Workflow (CW) is an auditable workflow control-plane and orchestration runtime. It provides a TypeScript COL runtime, Workflow App framework contracts, Router/Orchestrator, Subagent Dispatch, Deterministic Harness, Adversarial Verifier, Git/State Commit, Sandbox Profiles, scheduled tasks, routine triggers, a high-level Multi-Agent CLI/MCP host surface, and an MCP JSON-RPC 2.0 bridge. Developers write reusable workflow apps; CW delegates execution to an external agent host and records verified, replayable state — it never embeds a model API.",
22
+ "shortDescription": "A workflow control plane you are able to check.",
23
+ "longDescription": "Cool Workflow (CW) is a workflow control plane and run-time you are able to check. It gives you: a TypeScript COL run-time, Workflow App framework agreements, a Router and Orchestrator, Subagent Dispatch, a same-every-time Harness, a hard-questioning Verifier, Git and State Commit, Sandbox Profiles, time-ordered jobs, jobs that come round again, a high-level Multi-Agent CLI and MCP host face, and an MCP JSON-RPC 2.0 bridge. Builders make workflow apps they are able to use again; CW gives the doing of the work to an outside agent host and keeps a checked, play-again record of state — it never puts a model API inside itself.",
24
24
  "developerName": "COOLWHITE LLC",
25
25
  "category": "Productivity",
26
26
  "capabilities": [
package/README.md CHANGED
@@ -17,145 +17,145 @@
17
17
 
18
18
  **[Structure](#structure)** · [Commands](#commands) · [Result Envelope](#result-envelope) · [Scheduled Tasks](#scheduled-tasks) · [License](#license)
19
19
 
20
- Cool Workflow, or CW, is an independent agent workflow control-plane packaged as a
21
- TypeScript runtime. It provides a COL-Architecture: Router / Orchestrator,
20
+ Cool Workflow, or CW, is a free-standing agent workflow control-plane put up as a
21
+ TypeScript runtime. It gives a COL-Architecture: Router / Orchestrator,
22
22
  Subagent Dispatch, Deterministic Harness, Adversarial Verifier, Git/State
23
23
  Commit, and MCP JSON-RPC 2.0 bridge.
24
24
 
25
- The mental model is base system plus userland apps: CW provides the runtime and
26
- contracts, while developers write reusable workflow apps in
27
- `apps/<app-id>/app.json`. Legacy `workflows/*.workflow.js` files remain
28
- loadable as compatibility wrappers.
25
+ The way to see it is a base system plus userland apps: CW gives the runtime and
26
+ contracts, while makers write apps they can use again in
27
+ `apps/<app-id>/app.json`. Old `workflows/*.workflow.js` files still
28
+ load as fit-together wrappers.
29
29
 
30
- CW records the model workflow loop explicitly:
30
+ CW writes down the model workflow loop in a clear way:
31
31
 
32
32
  ```text
33
33
  interpret -> act -> observe -> adjust -> checkpoint
34
34
  ```
35
35
 
36
- These loop stages are stored in `state.json`, task records, reports, and state
36
+ These loop stages are kept in `state.json`, task records, reports, and state
37
37
  commit snapshots.
38
38
 
39
- CW keeps orchestration state and task queues in files. An agent host executes
40
- the tasks and feeds results back into the workflow.
39
+ CW keeps orchestration state and task queues in files. An agent host does
40
+ the tasks and gives results back to the workflow.
41
41
 
42
- CW follows a small set of Unix-inspired workflow principles: small kernel,
43
- explicit state, composable pipes, isolated workers, and verifier-gated commits.
42
+ CW keeps to a small set of Unix-based workflow rules: small kernel,
43
+ clear state, pipes that join, workers kept apart, and verifier-gated commits.
44
44
  See [docs/unix-principles.md](docs/unix-principles.md).
45
45
 
46
46
  CW v0.1.32 adds Team Collaboration: a host-attested actor, append-only
47
47
  approvals/rejections/comments/handoffs provenance-linked to a durable target
48
48
  (`run|task|candidate|selection|commit|node`), and a review gate that STACKS ON the
49
- verifier gate. Identity is ATTESTED provenance, never authenticated — an absent
50
- identity is the explicit `unattributed` actor, never a fabricated one. The review
51
- gate is POLICY layered on the verifier MECHANISM: it runs inside `resolveCommitGate`
52
- AFTER the verifier checks and can only ADD a required-approvals constraint, never
53
- remove the verifier's — so an approval can never turn an unverified result into a
49
+ verifier gate. Identity is ATTESTED provenance, never authenticated — a missing
50
+ identity is the clear `unattributed` actor, never a made-up one. The review
51
+ gate is POLICY put on top of the verifier MECHANISM: it runs inside `resolveCommitGate`
52
+ AFTER the verifier checks and can only ADD a required-approvals rule, never
53
+ take away the verifier's — so an approval can never turn an unverified result into a
54
54
  committed one. It FAILS CLOSED on quorum, authority, self-approval, and
55
- unattributed actors, recording exactly which approvals are missing, and a
56
- gate-satisfied commit is stamped with WHO approved the very artifact that shipped.
55
+ unattributed actors, writing down just which approvals are not there, and a
56
+ gate-satisfied commit is marked with WHO approved the very artifact that went out.
57
57
  Required approvals, authorized roles, and the self-approval rule are POLICY as data
58
- (`review policy`), default off (pre-v0.1.32 behavior unchanged). Each verb is
59
- declared once in the capability registry so `cw <cmd> --json` is identical to
60
- `cw_<tool>`; the v0.1.30 Workbench renders the review timeline read-only and the
58
+ (`review policy`), off to start with (pre-v0.1.32 behavior unchanged). Each verb is
59
+ declared once in the capability registry so `cw <cmd> --json` is the same as
60
+ `cw_<tool>`; the v0.1.30 Workbench shows the review timeline read-only and the
61
61
  v0.1.31 metrics report adds derived approval-rate/time-to-approval/handoff-count.
62
62
  See [docs/team-collaboration.7.md](docs/team-collaboration.7.md).
63
63
 
64
64
  CW v0.1.29 adds Execution Backends: the execution layer is lifted OUT of the
65
- kernel into pluggable, swappable drivers — `node`, `bun`, `shell`, `container`,
66
- `remote`, and `ci` — behind ONE narrow `ExecutionBackend` contract
67
- (`src/execution-backend.ts`). Modeled on a BSD VFS / device-driver layer, the
65
+ kernel into drivers you can plug in and swap — `node`, `bun`, `shell`, `container`,
66
+ `remote`, and `ci` — behind ONE small `ExecutionBackend` contract
67
+ (`src/execution-backend.ts`). Built on the lines of a BSD VFS / device-driver layer, the
68
68
  kernel (orchestrator/dispatch/pipeline-runner) never learns which backend ran a
69
69
  task: WHAT to run and which evidence to record is kernel policy; HOW and WHERE it
70
- runs is the driver's concern. The sandbox profile is the contract — every backend
71
- enforces or attests each requested read/write/command/network/env dimension, or
72
- FAILS CLOSED rather than silently running unsandboxed. The result/evidence
73
- envelope is schema-identical across backends (CW's own self-verify produces
70
+ runs is the driver's business. The sandbox profile is the contract — every backend
71
+ makes good or attests each requested read/write/command/network/env dimension, or
72
+ FAILS CLOSED instead of quietly running unsandboxed. The result/evidence
73
+ envelope is schema-identical across backends (CW's own self-verify makes
74
74
  byte-stable evidence on `node`, `shell`, and `bun`); the backend id + sandbox
75
75
  attestation are recorded AS provenance, so eval/replay, the verifier gates, and
76
76
  the v0.1.28 run registry stay backend-agnostic. The container/remote/ci drivers
77
77
  DELEGATE and record a handle + attestation + result — CW does not become the
78
- executor. Selection mirrors `--sandbox` with a parallel `--backend` flag and
78
+ executor. Selection is like `--sandbox` with a parallel `--backend` flag and
79
79
  `backend list|show|probe`, declared once in the capability registry so
80
80
  `cw <cmd> --json` is schema-identical to `cw_<tool>`. The default (`node`) backend
81
- reproduces pre-v0.1.29 behavior exactly. See
81
+ gives pre-v0.1.29 behavior just the same. See
82
82
  [docs/execution-backends.7.md](docs/execution-backends.7.md).
83
83
 
84
84
  CW v0.1.31 adds Observability + Cost Accounting: time/duration, failure rate,
85
85
  verifier pass rate, candidate acceptance rate, and token/cost — all DERIVED from
86
86
  the run state CW already keeps (timestamps → durations; verifier nodes → pass
87
87
  rate; candidates → acceptance; failed workers/feedback → failure rate). There is
88
- NO metrics database, NO collector daemon, NO hidden counter. A rate over zero
89
- samples is `n/a`, never a fabricated 0%/100%. Cost is ATTESTED, never measured:
88
+ NO metrics database, NO collector daemon, NO secret counter. A rate over zero
89
+ samples is `n/a`, never a made-up 0%/100%. Cost is ATTESTED, never measured:
90
90
  CW does not call the model, so token usage is recorded as host-attested
91
91
  provenance on the existing result/worker intake (absent ⇒ `unreported`, never 0),
92
- and a monetary figure is `attested` only from attested usage × a recorded pricing
93
- policy — assumed pricing is a SEPARATE `estimated` figure, never conflated.
92
+ and a money figure is `attested` only from attested usage × a recorded pricing
93
+ policy — guessed pricing is a SEPARATE `estimated` figure, never mixed in.
94
94
  Pricing is POLICY as data (`--pricing <path>|default`), out of the kernel.
95
95
  `metrics show`/`metrics summary` are declared once in the capability registry so
96
96
  `cw <cmd> --json` is byte-identical to `cw_<tool>`, and the v0.1.30 Workbench
97
- renders a read-only metrics panel from the same payload. See
97
+ shows a read-only metrics panel from the same payload. See
98
98
  [docs/observability-cost-accounting.7.md](docs/observability-cost-accounting.7.md).
99
99
 
100
- CW v0.1.30 adds the Web / Desktop Workbench: a human-facing console rendering a
100
+ CW v0.1.30 adds the Web / Desktop Workbench: a console for people that shows a
101
101
  run's run graph, blackboard, worker logs, candidate compare, and audit timeline,
102
- plus a cross-run entry point over the v0.1.28 Run Registry. It is a THIRD FRONT
103
- DOOR alongside the CLI (human speed) and MCP (machine context) — all three are
104
- presentation policy over ONE mechanism. Upholding CW's "no hidden dashboard
102
+ plus a cross-run way in over the v0.1.28 Run Registry. It is a THIRD FRONT
103
+ DOOR next to the CLI (human speed) and MCP (machine context) — all three are
104
+ presentation policy over ONE mechanism. Keeping CW's "no hidden dashboard
105
105
  database" promise, the Workbench holds ZERO authoritative state: it is a
106
106
  stateless, READ-ONLY renderer over the durable `.cw/` files and the existing
107
- capability payloads, so each panel equals its `cw <cmd> --json` payload
108
- byte-for-byte (parity-gated) and refresh re-derives everything from disk — delete
107
+ capability payloads, so each panel is the same as its `cw <cmd> --json` payload
108
+ byte-for-byte (parity-gated) and refresh works it all out again from disk — delete
109
109
  the host and nothing is lost. The optional localhost host (`cw workbench serve`)
110
- binds `127.0.0.1` only, is read-only (writes refused `405`), rejects non-localhost
110
+ binds `127.0.0.1` only, is read-only (writes refused `405`), says no to non-localhost
111
111
  `Host` headers and path traversal, and fails closed on unreadable state. It is an
112
112
  OPTIONAL surface: the committed `dist/` and a plain `node` runtime keep working
113
- with the Workbench (and its dependency-light static UI) absent. See
113
+ with the Workbench (and its dependency-light static UI) gone. See
114
114
  [docs/web-desktop-workbench.7.md](docs/web-desktop-workbench.7.md).
115
115
 
116
- CW v0.1.28 adds the Run Registry / Control Plane: a layer that manages MANY
116
+ CW v0.1.28 adds the Run Registry / Control Plane: a layer that looks after MANY
117
117
  workflow runs across repositories — `run search`, `run resume`, `run archive`, a
118
118
  durable `queue`, cross-repo `history`, and failed-run `run rerun` — over the
119
- per-run `.cw/runs/<id>/state.json`, which stays the single source of truth. The
119
+ per-run `.cw/runs/<id>/state.json`, which stays the one true source. The
120
120
  registry (`src/run-registry.ts`) is a DERIVED, rebuildable, fingerprinted index:
121
- it classifies a documented lifecycle (`queued → running → blocked → completed →
122
- failed → archived`), discovers runs cross-repo through a plain-file home registry
123
- (`CW_HOME`/XDG), and fails closed — tampered or missing source surfaces as
124
- `stale`/`missing` and triggers a rebuild, never a fabricated status. Resume
125
- continues a run, rerun creates a NEW run linked to the original by provenance, and
126
- archive marks without deleting source. Every verb is declared once in the
121
+ it sorts a documented lifecycle (`queued → running → blocked → completed →
122
+ failed → archived`), finds runs cross-repo through a plain-file home registry
123
+ (`CW_HOME`/XDG), and fails closed — tampered or missing source comes up as
124
+ `stale`/`missing` and starts a rebuild, never a made-up status. Resume
125
+ goes on with a run, rerun makes a NEW run tied to the first one by provenance, and
126
+ archive marks it without deleting source. Every verb is declared once in the
127
127
  capability registry, so `cw <cmd> --json` is schema-identical to `cw_<tool>`. See
128
128
  [docs/run-registry-control-plane.7.md](docs/run-registry-control-plane.7.md).
129
129
 
130
130
  CW v0.1.27 adds CLI ↔ MCP Parity: the command-line surface and the MCP surface
131
- are now two renderings of ONE data source, declared in a single capability
132
- registry (`src/capability-registry.ts`) and enforced fail-closed. Each capability
131
+ are now two views of ONE data source, declared in a single capability
132
+ registry (`src/capability-registry.ts`) and kept fail-closed. Each capability
133
133
  names one shared core `entry`; `cw <cmd> --json` is payload-identical to the
134
- matching `cw_<tool>` MCP result, the CLI stays terse for humans while MCP stays
135
- complete for machines, and `npm run parity:check` (wired into `release:check`)
136
- blocks any drift — a capability on only one surface, an undeclared tool or
137
- command, or a payload divergence. See
134
+ matching `cw_<tool>` MCP result, the CLI stays short for people while MCP stays
135
+ full for machines, and `npm run parity:check` (wired into `release:check`)
136
+ stops any drift — a capability on only one surface, an undeclared tool or
137
+ command, or a payload that does not match. See
138
138
  [docs/cli-mcp-parity.7.md](docs/cli-mcp-parity.7.md).
139
139
 
140
140
  CW v0.1.26 adds the Evidence Adoption Reasoning Chain: a derived, fingerprinted,
141
- fail-closed view that explains *why* each evidence item was adopted, rejected,
141
+ fail-closed view that makes clear *why* each evidence item was adopted, rejected,
142
142
  superseded, or conflicting. For every gate (`fanin`, `candidate-score`,
143
143
  `selection`, `verifier`, `commit`) it records the decision, basis (evidence +
144
144
  provenance + trust source), authority (role/membership/worker + role policy),
145
- rationale (reusing existing reason fields), and counterfactual (the alternatives
146
- that lost). A "why" that cannot be traced to a real record renders as
147
- `unexplained` rather than a fabricated rationale. New surfaces: `multi-agent
145
+ rationale (using existing reason fields again), and counterfactual (the other choices
146
+ that lost). A "why" that cannot be traced to a real record comes up as
147
+ `unexplained` rather than a made-up rationale. New surfaces: `multi-agent
148
148
  reasoning <run-id> [--evidence <id>] [--refresh]`, the MCP tools
149
- `cw_evidence_reasoning` and `cw_evidence_reasoning_refresh`, and an additive
149
+ `cw_evidence_reasoning` and `cw_evidence_reasoning_refresh`, and an added
150
150
  `rationaleStatus` on `multi-agent evidence`. The chain is derived, never
151
- authoritative over raw state, and stored under `.cw/runs/<run-id>/reasoning/`.
151
+ the top authority over raw state, and kept under `.cw/runs/<run-id>/reasoning/`.
152
152
  See
153
153
  [docs/evidence-adoption-reasoning-chain.7.md](docs/evidence-adoption-reasoning-chain.7.md).
154
154
 
155
155
  CW v0.1.25 adds State Explosion Management: durable, versioned,
156
156
  provenance-backed summary records (`MultiAgentSummaryIndex`,
157
157
  `BlackboardSummaryRecord`, `GraphSummaryRecord`, `OperatorDigest`,
158
- `StateExplosionReport`), compact and focused graph views with synthetic summary
158
+ `StateExplosionReport`), small and pointed graph views with built-up summary
159
159
  nodes, blackboard digests, and eval/replay-gated freshness checks. Summaries are
160
160
  derived userland indexes that never delete raw blackboard, graph, audit, or
161
161
  evidence records and fail closed when stale. New surfaces: `summary refresh`,
@@ -163,7 +163,7 @@ evidence records and fail closed when stale. New surfaces: `summary refresh`,
163
163
  `multi-agent graph --view`. See
164
164
  [docs/state-explosion-management.7.md](docs/state-explosion-management.7.md).
165
165
 
166
- CW v0.1.24 hardens state loading, migrations, MCP tool calls, multi-agent and
166
+ CW v0.1.24 makes harder state loading, migrations, MCP tool calls, multi-agent and
167
167
  blackboard persistence, and eval/replay artifact validation with fail-closed
168
168
  operator diagnostics.
169
169
 
@@ -178,13 +178,13 @@ rationale, panel decisions, and policy violations in the existing trust-audit
178
178
  log. See
179
179
  [docs/multi-agent-trust-policy-audit.7.md](docs/multi-agent-trust-policy-audit.7.md).
180
180
 
181
- CW v0.1.21 adds Multi-Agent Operator UX: compact graph, dependencies,
181
+ CW v0.1.21 adds Multi-Agent Operator UX: small graph, dependencies,
182
182
  failures, and evidence adoption views for topology-backed multi-agent runs.
183
183
  Operators can trace agent -> dependency -> evidence -> fanin -> score ->
184
- selection -> verifier-gated commit without a separate dashboard state. See
184
+ selection -> verifier-gated commit with no separate dashboard state. See
185
185
  [docs/multi-agent-operator-ux.7.md](docs/multi-agent-operator-ux.7.md).
186
186
 
187
- CW v0.1.20 adds Multi-Agent CLI + MCP Surface: the preferred host loop for
187
+ CW v0.1.20 adds Multi-Agent CLI + MCP Surface: the host loop to go for, for
188
188
  `multi-agent run`, `multi-agent status`, `multi-agent step`,
189
189
  `multi-agent blackboard`, `multi-agent score`, and `multi-agent select`.
190
190
  The matching MCP tools are `cw_multi_agent_run`, `cw_multi_agent_status`,
@@ -195,9 +195,9 @@ and `cw_multi_agent_select`. See
195
195
  CW v0.1.19 adds Multi-Agent Topologies: official `map-reduce`, `debate`, and
196
196
  `judge-panel` coordination definitions with validation, apply-time
197
197
  materialization, topology run state, topology graphs, Operator UX panels, trust
198
- audit provenance, CLI commands, and MCP parity. Applying a topology creates the
198
+ audit provenance, CLI commands, and MCP parity. Applying a topology makes the
199
199
  linked MultiAgentRun, roles, groups, fanout, blackboard topics, coordinator
200
- decisions, and deterministic next actions that the agent host can execute.
200
+ decisions, and deterministic next actions that the agent host can do.
201
201
  See [docs/multi-agent-topologies.7.md](docs/multi-agent-topologies.7.md).
202
202
 
203
203
  CW v0.1.18 adds Coordinator / Blackboard: first-class shared topics,
@@ -215,8 +215,8 @@ and MCP parity. See
215
215
 
216
216
  CW v0.1.16 adds Dogfood One Real Repo: a dry-run release proof that runs the
217
217
  canonical `release-cut` app against this repository, records real command
218
- evidence, scores/selects a release candidate, creates a verifier-gated CW state
219
- commit, and explains trust through audit provenance. See
218
+ evidence, scores/selects a release candidate, makes a verifier-gated CW state
219
+ commit, and makes trust clear through audit provenance. See
220
220
  [docs/dogfood-one-real-repo.7.md](docs/dogfood-one-real-repo.7.md).
221
221
 
222
222
  CW v0.1.15 adds Security / Trust Hardening: durable trust audit records,
@@ -224,32 +224,32 @@ worker sandbox decision history, evidence provenance, acceptance rationale,
224
224
  and CLI/MCP audit inspection. See
225
225
  [docs/security-trust-hardening.7.md](docs/security-trust-hardening.7.md).
226
226
 
227
- CW v0.1.14 added Release & Migration Discipline: explicit run-state schema
227
+ CW v0.1.14 added Release & Migration Discipline: clear run-state schema
228
228
  migration policy, fixture-based backward compatibility tests, version
229
229
  synchronization checks, and a dry-run release gate. See
230
230
  [docs/release-and-migration.7.md](docs/release-and-migration.7.md).
231
231
 
232
- CW v0.1.13 completes the MCP / App Surface so agent hosts can treat CW as a
233
- runtime instead of a CLI wrapper. MCP now covers app runs, worker inspection and
232
+ CW v0.1.13 completes the MCP / App Surface so agent hosts can take CW as a
233
+ runtime in place of a CLI wrapper. MCP now covers app runs, worker inspection and
234
234
  output recording, candidate scoring/selection, sandbox profile resolution,
235
- verifier-gated commits, and structured operator summaries while preserving old
235
+ verifier-gated commits, and structured operator summaries while keeping old
236
236
  tool names. See [docs/mcp-app-surface.7.md](docs/mcp-app-surface.7.md).
237
237
 
238
238
  CW v0.1.12 added Operator UX: human-readable status, graph, report summaries,
239
239
  resource summaries, commit/feedback/worker/candidate panels, and deterministic
240
- next-step recommendations. JSON remains available with `--json` or
240
+ next-step suggestions. JSON is still there with `--json` or
241
241
  `--format json`. See [docs/operator-ux.7.md](docs/operator-ux.7.md).
242
242
 
243
243
  CW v0.1.11 added Canonical Workflow Apps: official app-directory userland for
244
244
  `architecture-review`, `pr-review-fix-ci`, `release-cut`, and
245
245
  `research-synthesis`. They validate and plan through `npm run canonical-apps`
246
- and are the app matrix used to judge whether the framework is pleasant, stable, and
247
- expressive. See
246
+ and are the app matrix used to judge if the framework is nice to use, steady, and
247
+ able to say much. See
248
248
  [docs/canonical-workflow-apps.7.md](docs/canonical-workflow-apps.7.md).
249
249
 
250
250
  CW v0.1.10 added the End-to-End Golden Path: a deterministic regression command
251
251
  that validates a first-class app, plans a run, dispatches a readonly isolated
252
- worker, records a simulated worker result, scores/selects a candidate, creates a
252
+ worker, records a simulated worker result, scores/selects a candidate, makes a
253
253
  verifier-gated commit, and renders a report. See
254
254
  [docs/end-to-end-golden-path.7.md](docs/end-to-end-golden-path.7.md).
255
255
 
@@ -260,12 +260,12 @@ state/report metadata. See
260
260
 
261
261
  CW v0.1.8 added Sandbox Profiles: named worker policy contracts for read paths,
262
262
  write paths, command execution, network access, and environment exposure. CW
263
- stores and validates the policy, while the agent host enforces OS/process
263
+ keeps and validates the policy, while the agent host makes good the OS/process
264
264
  runtime controls. See [docs/sandbox-profiles.7.md](docs/sandbox-profiles.7.md).
265
265
 
266
266
  ## Quickstart
267
267
 
268
- **30-second proof, no install** — see that a recorded telemetry verdict can't be forged:
268
+ **30-second proof, no install** — see that a recorded telemetry verdict can't be faked:
269
269
 
270
270
  ```bash
271
271
  npx cool-workflow demo tamper
@@ -281,8 +281,8 @@ npx cool-workflow quickstart architecture-review --repo /path/to/repo \
281
281
  ```
282
282
 
283
283
  CW DELEGATES worker execution to your own agent. With no `--agent-command` (or
284
- `CW_AGENT_COMMAND`) the drive fails closed (status `blocked`) — it never fabricates a
285
- result. `--agent-command builtin:claude` resolves to a bundled read-only `claude -p`
284
+ `CW_AGENT_COMMAND`) the drive fails closed (status `blocked`) — it never makes up a
285
+ result. `--agent-command builtin:claude` points to a bundled read-only `claude -p`
286
286
  wrapper (needs `claude` on your PATH).
287
287
 
288
288
  **Re-prove a finished run, offline** (`cw` is the installed bin; or `npx cool-workflow <cmd>`):
@@ -294,8 +294,8 @@ cw audit verify <run-id> # re-proves the trust-audit hash c
294
294
  ```
295
295
 
296
296
  More: `cw quickstart <app> --preview` (read-only dry run), `cw run resume <run-id> --drive`
297
- (continue an interrupted run), `cw run inspect-archive <archive>` (integrity-check a
298
- portable run archive without importing it).
297
+ (go on with a run that was stopped), `cw run inspect-archive <archive>` (integrity-check a
298
+ portable run archive without bringing it in).
299
299
 
300
300
  ## Structure
301
301
 
@@ -336,7 +336,7 @@ cool-workflow
336
336
 
337
337
  Installed via npm, the bin is `cw` (alias `cool-workflow`): e.g. `cw list`,
338
338
  `cw quickstart …`. From a cloned source checkout, before `npm run build`, use the
339
- equivalent `node scripts/cw.js <cmd>` form shown in the examples below.
339
+ matching `node scripts/cw.js <cmd>` form shown in the examples below.
340
340
 
341
341
  List bundled workflows:
342
342
 
@@ -431,8 +431,8 @@ node scripts/cw.js topology graph <run-id> --json
431
431
  node scripts/cw.js topology show <run-id> <topology-run-id>
432
432
  ```
433
433
 
434
- Topology runs are stored under `.cw/runs/<run-id>/topologies/`, referenced from
435
- `state.json`, included in operator status and graph output, and counted in the
434
+ Topology runs are kept under `.cw/runs/<run-id>/topologies/`, pointed to from
435
+ `state.json`, put into operator status and graph output, and counted in the
436
436
  trust audit summary.
437
437
 
438
438
  Create a dispatch manifest for the current runnable phase:
@@ -480,8 +480,8 @@ node scripts/cw.js commit <run-id> --selection <selection-id> --reason "verified
480
480
  node scripts/cw.js commit <run-id> --allow-unverified-checkpoint --reason "manual checkpoint"
481
481
  ```
482
482
 
483
- The first two commands create verifier-gated committed state. The last command
484
- creates an explicit non-gated checkpoint.
483
+ The first two commands make verifier-gated committed state. The last command
484
+ makes a clear non-gated checkpoint.
485
485
 
486
486
  Render a report:
487
487
 
@@ -489,7 +489,7 @@ Render a report:
489
489
  node scripts/cw.js report <run-id>
490
490
  ```
491
491
 
492
- Manage runs across repos with the control plane (derived, fail-closed registry):
492
+ Look after runs across repos with the control plane (derived, fail-closed registry):
493
493
 
494
494
  ```bash
495
495
  node scripts/cw.js registry refresh --scope home
@@ -517,7 +517,7 @@ npm test
517
517
  ```
518
518
 
519
519
  Run data lives under `.cw/runs/<run-id>/` in `--cwd`, or in `--repo` when
520
- `--cwd` is omitted.
520
+ `--cwd` is left out.
521
521
 
522
522
  Build the TypeScript runtime:
523
523
 
@@ -580,7 +580,7 @@ node scripts/cw.js routine events
580
580
 
581
581
  ## Result Envelope
582
582
 
583
- Verification and synthesis tasks require a structured result block:
583
+ Verification and synthesis tasks need a structured result block:
584
584
 
585
585
  ````text
586
586
  ```cw:result
@@ -601,15 +601,15 @@ Verification and synthesis tasks require a structured result block:
601
601
 
602
602
  ## Release Tooling (v0.1.33)
603
603
 
604
- 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).
604
+ the per-tag mechanical surfaces (version bump across 17 surfaces, feature scaffold, and the forward-reference docs) become deterministic scripts, with a release gate that has no copies. See release-tooling(7).
605
605
 
606
606
  ## Real Execution Backend Integrations (v0.1.34)
607
607
 
608
- 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).
608
+ container/remote/ci backends really do the work (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 not there to use. See real-execution-backends(7).
609
609
 
610
610
  ## Node Snapshot / Diff / Replay (v0.1.35)
611
611
 
612
- 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).
612
+ per-node snapshot, structural diff, and isolated deterministic replay over StateNode, using the v0.1.23 eval harness again; fail-closed on source drift (valid|stale|absent). See node-snapshot-diff-replay(7).
613
613
 
614
614
  ## Contract Migration Tooling (v0.1.36)
615
615
 
@@ -621,84 +621,88 @@ priority + concurrency limits + lease lifecycle + retry/backoff + fail-closed pa
621
621
 
622
622
  ## Agent Delegation Drive (v0.1.38)
623
623
 
624
- spawn an external agent process per worker, capture result.md + attestation, auto-drive plan->dispatch->fulfill->accept->commit
624
+ start up an outside agent process per worker, catch result.md + attestation, auto-drive plan->dispatch->fulfill->accept->commit
625
625
 
626
626
  ## Run Retention & Provable Reclamation (v0.1.39)
627
627
 
628
- tiered, append-only, cryptographically-verifiable disk reclamation: `gc plan|run|verify` seal the audit skeleton, free the reconstructable/scratch bulk, and prove it via a hash-chained tombstone. Write-ahead + fail-closed (skeleton -> tombstone -> fsync -> free); explicit capability downgrade (verify-only / re-runnable-by-reconstruction); CW never reclaims by default.
628
+ tiered, append-only, cryptographically-verifiable disk reclamation: `gc plan|run|verify` close up the audit skeleton, free the reconstructable/scratch bulk, and prove it by way of a hash-chained tombstone. Write-ahead + fail-closed (skeleton -> tombstone -> fsync -> free); clear capability downgrade (verify-only / re-runnable-by-reconstruction); CW never reclaims to start with.
629
629
 
630
630
  ## Durable State & Locking (v0.1.40)
631
631
 
632
- every authoritative write is now atomic (temp -> rename, so a crash can never truncate state.json) with fsync-durability for the audit-essential stores; the cross-process read-modify-write stores (home queue, archive overlay, reclamation chain) are serialized by a portable stale-stealing file lock. Closes the architecture self-audit's non-atomic/unlocked P1 and pulls reclamation's result-node re-point inside the write-ahead boundary (durable persist + dangling-ref proof before any free) with a content-validated skeleton.
632
+ every authoritative write is now atomic (temp -> rename, so a crash can never cut short state.json) with fsync-durability for the audit-essential stores; the cross-process read-modify-write stores (home queue, archive overlay, reclamation chain) are serialized by a portable stale-stealing file lock. Closes the architecture self-audit's non-atomic/unlocked P1 and pulls reclamation's result-node re-point inside the write-ahead boundary (durable persist + dangling-ref proof before any free) with a content-validated skeleton.
633
633
 
634
634
  ## Self-Audit Hardening & Pure-Router Decomposition (v0.1.41)
635
635
 
636
- closes the v0.1.41 architecture self-audit's real findings and pays down its top maintainability debt. Hardening: evidence-gated commits now require GROUNDED locators (path/URL/namespace:value), not just presence, with opt-in `CW_REQUIRE_RESOLVABLE_EVIDENCE` on-disk resolution; the trust-audit event log is appended with fsync (durable like state.json); path containment is symlink-hardened (realpath of the deepest existing ancestor) across sandbox checks and reclamation proofs; worker ids are deterministic; coordinator secret redaction recurses. Maintainability: the `descriptor.id ===` switches in the execution backend are gone — drivers self-describe through a `registerBackend` registry — and the ~2100-line CoolWorkflowRunner god-object is decomposed into per-domain operation modules under `src/orchestrator/`, leaving the runner a pure `loadRun -> delegate` router. Behavior-preserving (verified by adversarial review + full release:check).
636
+ closes the v0.1.41 architecture self-audit's real findings and pays down its top maintainability debt. Hardening: evidence-gated commits now need GROUNDED locators (path/URL/namespace:value), not just presence, with opt-in `CW_REQUIRE_RESOLVABLE_EVIDENCE` on-disk resolution; the trust-audit event log is appended with fsync (durable like state.json); path containment is symlink-hardened (realpath of the deepest existing ancestor) across sandbox checks and reclamation proofs; worker ids are deterministic; coordinator secret redaction recurses. Maintainability: the `descriptor.id ===` switches in the execution backend are gone — drivers self-describe through a `registerBackend` registry — and the ~2100-line CoolWorkflowRunner god-object is broken up into per-domain operation modules under `src/orchestrator/`, leaving the runner a pure `loadRun -> delegate` router. Behavior-preserving (verified by adversarial review + full release:check).
637
637
 
638
638
  ## Robust Result Ingest (v0.1.42)
639
639
 
640
- 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
640
+ catch findings/evidence from any agent shape that makes sense (alt keys + prose), CW works out grounded evidence itself, warn on empty capture — closes the v0.1.41 live-drive 'accepted with 0 captured' failure
641
641
 
642
642
  ## No-False-Green Gate & Launch Prep (v0.1.43)
643
643
 
644
- Hard gate blocking empty-capture verifier-gated commits, plus quickstart and launch-prep docs.
644
+ Hard gate stopping empty-capture verifier-gated commits, plus quickstart and launch-prep docs.
645
645
 
646
646
  ## Release-Gate Determinism & Agents Vendor (v0.1.44)
647
647
 
648
- 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.
648
+ Release-readiness checks now validate the committed blob (`git show HEAD:<path>`) in place of the mutable working tree — doing away with 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 that gives any non-Claude AI agent one shared way in to CW.
649
649
 
650
650
  ## Migration DAG (v0.1.45)
651
651
 
652
- Replaces the linear migration chain with a BFS graph path resolver (`findMigrationPath()`) over directed migration edges. Each `StateMigrationStep` carries an optional `reverse()` function, enabling rollback/downgrade paths via `reverseRunState()`.
652
+ Puts in place of the linear migration chain a BFS graph path resolver (`findMigrationPath()`) over directed migration edges. Each `StateMigrationStep` carries an optional `reverse()` function, which makes rollback/downgrade paths possible by way of `reverseRunState()`.
653
653
 
654
654
  ## Capability Auto-Discovery (v0.1.46)
655
655
 
656
- `registerCapability()` builder pattern replaces manual registry entries. Capabilities self-register at implementation sites via Map-based dedup; no need to touch `capability-registry.ts`. New capabilities call `registerCapability()` next to their entry function.
656
+ `registerCapability()` builder pattern takes the place of by-hand registry entries. Capabilities self-register at implementation sites by way of Map-based dedup; no need to touch `capability-registry.ts`. New capabilities call `registerCapability()` next to their entry function.
657
657
 
658
658
  ## Vendor-Adapter Registry (v0.1.47)
659
659
 
660
- Data-driven manifest generation: vendor JSON shapes extracted from `gen-manifests.js` into declarative templates in `plugin.manifest.json`. A `_resolveTemplate()` engine resolves `{{path.to.field}}` markers. Adding a new AI platform is pure data. Cross-vendor is proven by boot, not just by generation: `npm run manifest:load-check` (`node test/vendor-manifest-load-smoke.js`) loads every generated manifest (claude, codex, agents, gemini, opencode) and asserts each exposes the full tool surface (184 tools).
660
+ Data-driven manifest generation: vendor JSON shapes taken out of `gen-manifests.js` into declarative templates in `plugin.manifest.json`. A `_resolveTemplate()` engine works out `{{path.to.field}}` markers. Adding a new AI platform is pure data. Cross-vendor is proven by boot, not just by generation: `npm run manifest:load-check` (`node test/vendor-manifest-load-smoke.js`) loads every generated manifest (claude, codex, agents, gemini, opencode) and makes sure each shows the full tool surface (184 tools).
661
661
 
662
662
  ## P2 Fixes (v0.1.48)
663
663
 
664
- State auto-compaction via `setPostSaveCallback()` hook — after every `saveCheckpoint()`, the orchestrator checks `computeStateSize()` and auto-triggers compaction. Agent dedup docs, npm `ci` aggregate script.
664
+ State auto-compaction by way of `setPostSaveCallback()` hook — after every `saveCheckpoint()`, the orchestrator checks `computeStateSize()` and auto-starts compaction. Agent dedup docs, npm `ci` aggregate script.
665
665
 
666
666
  ## CI Content-Surface Fix (v0.1.49)
667
667
 
668
- CHANGELOG.md and RELEASE.md are content surfaces checked by the dogfood-release gate. The bump-version script covers structured surfaces only; content surface updates are now documented as a release step.
668
+ CHANGELOG.md and RELEASE.md are content surfaces checked by the dogfood-release gate. The bump-version script covers structured surfaces only; content surface updates are now written down as a release step.
669
669
 
670
670
  ## Auto-Compaction Fix (v0.1.50, v0.1.51)
671
671
 
672
- Auto-compaction hook moved from `saveCheckpoint()` to explicit `maybeCompactRun()` calls after major lifecycle mutations. Fixes test fixture fingerprint instability. Also fixes the dogfood-release version-sync pipeline: always use `npm run bump:version`, never hand-edit version.ts alone.
672
+ Auto-compaction hook moved from `saveCheckpoint()` to clear `maybeCompactRun()` calls after big lifecycle mutations. Fixes test fixture fingerprint instability. Also fixes the dogfood-release version-sync pipeline: always use `npm run bump:version`, never hand-edit version.ts alone.
673
673
 
674
674
  ## Control-plane naming (v0.1.76)
675
675
 
676
- Positioning consistency: every self-describing surface names CW an auditable workflow control-plane / Workflow App framework, not an "SDK" (which survives only in the red-line disclaimer "embeds no model SDK").
676
+ Positioning consistency: every self-describing surface names CW an auditable workflow control-plane / Workflow App framework, not an "SDK" (which lives on only in the red-line disclaimer "embeds no model SDK").
677
677
 
678
678
  ## Workflow orchestration: Tracks 1–3 (v0.1.77)
679
679
 
680
- The orchestration vision landed in one release, all reviewer-gated:
680
+ The orchestration vision came in one release, all reviewer-gated:
681
681
 
682
- - **Track 1 — telemetry attestation**: each agent's reported token usage is verified against an operator ed25519 trust key (`attested`/`unattested`/`absent`, surfaced loudly), recorded in a tamper-evident hash-chained ledger; opt-in `require-attested-telemetry` fails closed on unverifiable usage.
683
- - **Track 2 — concurrent failure semantics**: a `parallel()` phase runs its agents concurrently with declared collapse rules — **collect-all** (a failing hop never aborts siblings) and **kill-on-timeout** (a hung agent is killed at its deadline and counted as one failure). 16 agents with a forced hang + crash + dirty-return complete with no deadlock and a replay-complete record.
684
- - **Track 3 — boundary contract**: per-task output `schema` validation (dependency-free, parks on mismatch), `limits.tokenBudget` enforced against recorded usage, and the one-way executor boundary welded into the type layer (a callable crossing it fails `npm run build`).
682
+ - **Track 1 — telemetry attestation**: each agent's reported token usage is checked against an operator ed25519 trust key (`attested`/`unattested`/`absent`, shown loudly), recorded in a tamper-evident hash-chained ledger; opt-in `require-attested-telemetry` fails closed on usage it cannot check.
683
+ - **Track 2 — concurrent failure semantics**: a `parallel()` phase runs its agents at the same time with declared collapse rules — **collect-all** (a failing hop never stops siblings) and **kill-on-timeout** (a hung agent is killed at its deadline and counted as one failure). 16 agents with a forced hang + crash + dirty-return finish with no deadlock and a replay-complete record.
684
+ - **Track 3 — boundary contract**: per-task output `schema` validation (dependency-free, parks on mismatch), `limits.tokenBudget` made good against recorded usage, and the one-way executor boundary welded into the type layer (a callable crossing it fails `npm run build`).
685
685
 
686
686
  ## Working onboarding + npm distribution (v0.1.78)
687
687
 
688
- `--agent-command builtin:claude` resolves to a bundled read-only claude wrapper that completes workers with a real agent; the cross-directory quickstart crash is fixed; missing optional inputs no longer leak `{{name}}` into prompts. Published to npm (`cool-workflow`, bins `cw`/`cool-workflow`) with LICENSE and metadata. Live dogfood proof committed under `docs/dogfood/`.
688
+ `--agent-command builtin:claude` points to a bundled read-only claude wrapper that finishes workers with a real agent; the cross-directory quickstart crash is fixed; missing optional inputs no longer let `{{name}}` slip into prompts. Published to npm (`cool-workflow`, bins `cw`/`cool-workflow`) with LICENSE and metadata. Live dogfood proof committed under `docs/dogfood/`.
689
689
 
690
690
  ## Tamper-evidence demo (v0.1.79)
691
691
 
692
- `cw demo tamper` — a hermetic, one-command proof that a recorded telemetry verdict cannot be forged undetected: it builds a real ed25519-signed ledger, forges it at the ledger layer (verdict flip + recomputed local hash → the chain still breaks) and the signature layer (inflated tokens, reused signature → ed25519 rejects), all verified offline with only the public key. `cw telemetry verify <run>` (`cw_telemetry_verify` on MCP) is the operator-facing re-proof: by default it recomputes the hash chain on disk so any later edit to a recorded verdict or usage digest is caught; add `--pubkey <pem-or-path>` to re-run each `attested` hop's ed25519 signature check against the stored raw usage too. What this does and does **not** prove — including the single-keyholder ceiling — is documented honestly in [Trust Model & Limitations](docs/trust-model.md); read it before relying on a green verdict.
692
+ `cw demo tamper` — a hermetic, one-command proof that a recorded telemetry verdict cannot be faked without being caught: it builds a real ed25519-signed ledger, fakes it at the ledger layer (verdict flip + recomputed local hash → the chain still breaks) and the signature layer (inflated tokens, reused signature → ed25519 rejects), all checked offline with only the public key. `cw telemetry verify <run>` (`cw_telemetry_verify` on MCP) is the operator-facing re-proof: by default it recomputes the hash chain on disk so any later edit to a recorded verdict or usage digest is caught; add `--pubkey <pem-or-path>` to re-run each `attested` hop's ed25519 signature check against the stored raw usage too. What this does and does **not** prove — taking in the single-keyholder ceiling — is set down in a true way in [Trust Model & Limitations](docs/trust-model.md); read it before you put trust in a green verdict.
693
693
 
694
694
  ## Opt-in live agent output during a drive (on main, ships next)
695
695
 
696
- Set `CW_AGENT_STREAM=1` to see each worker's live agent trace. The bundled claude wrapper (`builtin:claude` / `scripts/agents/claude-p-agent.js`) keeps the legacy `--output-format json` path by default; only the opt-in path runs claude in `--output-format stream-json` and renders a concise human trace (tool uses, assistant text, per-turn summaries) to **stderr**. CW core forwards that stderr to the operator's terminal only when `CW_AGENT_STREAM=1`, CW's own stderr is a TTY, and `CW_NO_STREAM` is not set; piped/CI runs stay silent (Rule of Silence). Core only forwards the stream, never parses it — vendor-specific rendering is the wrapper's concern (policy), not the kernel's (mechanism).
696
+ Set `CW_AGENT_STREAM=1` to see each worker's live agent trace. The bundled claude wrapper (`builtin:claude` / `scripts/agents/claude-p-agent.js`) keeps the legacy `--output-format json` path by default; only the opt-in path runs claude in `--output-format stream-json` and renders a short human trace (tool uses, assistant text, per-turn summaries) to **stderr**. CW core sends that stderr on to the operator's terminal only when `CW_AGENT_STREAM=1`, CW's own stderr is a TTY, and `CW_NO_STREAM` is not set; piped/CI runs stay quiet (Rule of Silence). Core only sends the stream on, never reads it — vendor-specific rendering is the wrapper's business (policy), not the kernel's (mechanism).
697
697
 
698
698
  v0.1.79
699
699
 
700
700
  ## Fast Architecture Review (v0.1.80)
701
701
 
702
- Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
702
+ Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, Map and Assess results you can use again, wrapper metrics you can measure, a background full-review handoff you can act on, and userland model policy flags for routing fast/strong workers without changing the full review contract.
703
703
 
704
- _This documentation tracks Cool Workflow v0.1.81. See [CHANGELOG](../../CHANGELOG.md) for the release notes._
704
+ _This documentation tracks Cool Workflow v0.1.82. See [CHANGELOG](../../CHANGELOG.md) for the release notes._
705
+
706
+ ## Hardening and Onboarding (v0.1.83)
707
+
708
+ Loaders fail closed on corrupt state; store writes are made safe under more than one writer; a new cw doctor checks your setup; help lists every command; and the docs are put into Basic English.
@@ -3,7 +3,7 @@
3
3
  "id": "architecture-review",
4
4
  "title": "Architecture Review",
5
5
  "summary": "Map a repository architecture, assess risks, verify important findings, and synthesize an evidence-backed verdict.",
6
- "version": "0.1.81",
6
+ "version": "0.1.83",
7
7
  "author": "COOLWHITE LLC",
8
8
  "inputs": [
9
9
  {
@@ -3,7 +3,7 @@
3
3
  "id": "architecture-review-fast",
4
4
  "title": "Architecture Review Fast",
5
5
  "summary": "Run a shorter architecture review with parallel map and assess phases for faster first results.",
6
- "version": "0.1.81",
6
+ "version": "0.1.83",
7
7
  "author": "COOLWHITE LLC",
8
8
  "inputs": [
9
9
  {
@@ -3,7 +3,7 @@
3
3
  "id": "end-to-end-golden-path",
4
4
  "title": "End-to-End Golden Path",
5
5
  "summary": "Deterministic one-worker workflow app for proving the CW integration chain.",
6
- "version": "0.1.81",
6
+ "version": "0.1.83",
7
7
  "author": "COOLWHITE LLC",
8
8
  "inputs": [
9
9
  {