cool-workflow 0.1.79 → 0.1.81

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 (131) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +51 -3
  4. package/apps/architecture-review/app.json +1 -1
  5. package/apps/architecture-review-fast/app.json +64 -0
  6. package/apps/architecture-review-fast/workflow.js +153 -0
  7. package/apps/end-to-end-golden-path/app.json +1 -1
  8. package/apps/pr-review-fix-ci/app.json +1 -1
  9. package/apps/release-cut/app.json +1 -1
  10. package/apps/research-synthesis/app.json +1 -1
  11. package/dist/agent-config.js +21 -7
  12. package/dist/candidate-scoring.js +42 -22
  13. package/dist/capability-core.js +132 -17
  14. package/dist/capability-registry.js +138 -168
  15. package/dist/cli.js +97 -98
  16. package/dist/collaboration.js +5 -6
  17. package/dist/commit.js +20 -6
  18. package/dist/compare.js +18 -0
  19. package/dist/coordinator/classify.js +45 -0
  20. package/dist/coordinator/paths.js +42 -0
  21. package/dist/coordinator/util.js +129 -0
  22. package/dist/coordinator.js +127 -300
  23. package/dist/dispatch.js +35 -0
  24. package/dist/drive.js +79 -6
  25. package/dist/error-feedback.js +8 -4
  26. package/dist/evidence-reasoning.js +3 -3
  27. package/dist/execution-backend/agent.js +331 -0
  28. package/dist/execution-backend/probes.js +96 -0
  29. package/dist/execution-backend/util.js +47 -0
  30. package/dist/execution-backend.js +73 -421
  31. package/dist/mcp-server.js +79 -183
  32. package/dist/multi-agent/graph.js +84 -0
  33. package/dist/multi-agent/helpers.js +145 -0
  34. package/dist/multi-agent/paths.js +22 -0
  35. package/dist/multi-agent-eval/format.js +194 -0
  36. package/dist/multi-agent-eval/normalize.js +51 -0
  37. package/dist/multi-agent-eval.js +39 -244
  38. package/dist/multi-agent-host.js +0 -19
  39. package/dist/multi-agent.js +125 -314
  40. package/dist/node-snapshot.js +3 -3
  41. package/dist/observability/format.js +61 -0
  42. package/dist/observability/intake.js +98 -0
  43. package/dist/observability.js +14 -160
  44. package/dist/operator-ux/format.js +364 -0
  45. package/dist/operator-ux.js +22 -363
  46. package/dist/orchestrator/lifecycle-operations.js +2 -1
  47. package/dist/orchestrator/report.js +8 -0
  48. package/dist/orchestrator.js +26 -9
  49. package/dist/reclamation.js +26 -21
  50. package/dist/run-export.js +494 -25
  51. package/dist/run-registry/derive.js +172 -0
  52. package/dist/run-registry/format.js +124 -0
  53. package/dist/run-registry/gc.js +251 -0
  54. package/dist/run-registry/policy.js +16 -0
  55. package/dist/run-registry/queue.js +116 -0
  56. package/dist/run-registry.js +89 -597
  57. package/dist/run-state-schema.js +1 -0
  58. package/dist/sandbox-profile.js +43 -2
  59. package/dist/state-explosion/format.js +159 -0
  60. package/dist/state-explosion/helpers.js +82 -0
  61. package/dist/state-explosion.js +165 -304
  62. package/dist/state-node.js +19 -4
  63. package/dist/telemetry-attestation.js +55 -0
  64. package/dist/telemetry-demo.js +15 -3
  65. package/dist/telemetry-ledger.js +60 -15
  66. package/dist/topology.js +25 -8
  67. package/dist/triggers.js +33 -14
  68. package/dist/trust-audit.js +145 -33
  69. package/dist/version.js +1 -1
  70. package/dist/worker-isolation/helpers.js +51 -0
  71. package/dist/worker-isolation/paths.js +46 -0
  72. package/dist/worker-isolation.js +39 -115
  73. package/docs/agent-delegation-drive.7.md +71 -0
  74. package/docs/canonical-workflow-apps.7.md +37 -0
  75. package/docs/cli-mcp-parity.7.md +16 -0
  76. package/docs/contract-migration-tooling.7.md +6 -0
  77. package/docs/control-plane-scheduling.7.md +6 -0
  78. package/docs/dogfood/resume-drive-real-agent-2026-06-14.md +40 -0
  79. package/docs/durable-state-and-locking.7.md +8 -0
  80. package/docs/evidence-adoption-reasoning-chain.7.md +6 -0
  81. package/docs/execution-backends.7.md +6 -0
  82. package/docs/index.md +2 -0
  83. package/docs/launch/demo.tape +28 -0
  84. package/docs/launch/launch-kit.md +96 -17
  85. package/docs/launch/pre-launch-checklist.md +53 -0
  86. package/docs/multi-agent-cli-mcp-surface.7.md +8 -0
  87. package/docs/multi-agent-eval-replay-harness.7.md +6 -0
  88. package/docs/multi-agent-operator-ux.7.md +6 -0
  89. package/docs/multi-agent-trust-policy-audit.7.md +27 -0
  90. package/docs/node-snapshot-diff-replay.7.md +6 -0
  91. package/docs/observability-cost-accounting.7.md +6 -0
  92. package/docs/project-index.md +27 -6
  93. package/docs/real-execution-backends.7.md +6 -0
  94. package/docs/release-and-migration.7.md +8 -0
  95. package/docs/release-tooling.7.md +6 -0
  96. package/docs/routines.md +23 -0
  97. package/docs/run-registry-control-plane.7.md +89 -2
  98. package/docs/run-retention-reclamation.7.md +8 -0
  99. package/docs/source-context-profiles.7.md +119 -0
  100. package/docs/state-explosion-management.7.md +13 -0
  101. package/docs/team-collaboration.7.md +6 -0
  102. package/docs/trust-model.md +267 -0
  103. package/docs/unix-principles.md +49 -1
  104. package/docs/vendor-manifest-loadability.7.md +43 -0
  105. package/docs/web-desktop-workbench.7.md +6 -0
  106. package/manifest/plugin.manifest.json +1 -1
  107. package/manifest/source-context-profiles.json +142 -0
  108. package/package.json +4 -1
  109. package/scripts/agents/builtin-templates.json +7 -0
  110. package/scripts/agents/claude-p-agent.js +129 -43
  111. package/scripts/architecture-review-fast.js +362 -0
  112. package/scripts/bump-version.js +5 -10
  113. package/scripts/canonical-apps-list.js +64 -0
  114. package/scripts/canonical-apps.js +36 -4
  115. package/scripts/coverage-gate.js +211 -0
  116. package/scripts/dogfood-release.js +1 -1
  117. package/scripts/golden-path.js +4 -4
  118. package/scripts/parity-check.js +5 -0
  119. package/scripts/release-check.js +5 -1
  120. package/scripts/source-context.js +291 -0
  121. package/scripts/version-sync-check.js +5 -7
  122. package/skills/ci-triage/SKILL.md +50 -0
  123. package/skills/ci-triage/agents/openai.yaml +4 -0
  124. package/skills/cool-workflow/SKILL.md +4 -1
  125. package/skills/deploy-check/SKILL.md +55 -0
  126. package/skills/deploy-check/agents/openai.yaml +4 -0
  127. package/skills/design-qa/SKILL.md +49 -0
  128. package/skills/design-qa/agents/openai.yaml +4 -0
  129. package/skills/pr-review/SKILL.md +45 -0
  130. package/skills/pr-review/agents/openai.yaml +4 -0
  131. package/dist/capability-dispatcher.js +0 -86
@@ -6,12 +6,74 @@ Everything leads with the 30-second `npx cool-workflow demo tamper` proof.
6
6
 
7
7
  ---
8
8
 
9
+ ## ✅ FINAL — Show HN (copy-paste ready)
10
+
11
+ **Pre-flight (do these first):**
12
+ 1. Record the demo GIF: `vhs plugins/cool-workflow/docs/launch/demo.tape` → add it to the README hero (insert the GIF near the badges/intro).
13
+ 2. Confirm on a clean machine: `npx cool-workflow demo tamper` runs and prints `VERDICT: tamper-evidence holds ✓`.
14
+ 3. Post during US morning (HN traffic peak); reply to the first comment with the npm + provenance link.
15
+
16
+ **Title** (exactly — HN strips most formatting):
17
+
18
+ ```
19
+ Show HN: Cool Workflow – tamper-evident telemetry for agent pipelines (npx demo)
20
+ ```
21
+
22
+ **URL field:** `https://github.com/coo1white/cool-workflow`
23
+
24
+ **First comment (paste right after posting):**
25
+
26
+ ```
27
+ I kept seeing agent-orchestration tools treat the model's self-reported token
28
+ usage and results as ground truth. For anything auditable that's backwards — a
29
+ control-plane that trusts unverified self-reports audits claims, not facts, and a
30
+ forged "green" run looks identical to a real one.
31
+
32
+ Cool Workflow takes the opposite stance. It DELEGATES model execution to whatever
33
+ agent you configure (claude -p, codex exec, an HTTP endpoint) and never embeds a
34
+ model SDK or holds an API key. What it owns is the audit trail: each agent hop's
35
+ reported usage is signed (ed25519) and appended to a hash-chained ledger, so
36
+ editing any record — or even recomputing its local hash to cover the edit — breaks
37
+ the chain downstream. You re-verify a finished run offline — no telemetry service
38
+ to trust or breach.
39
+
40
+ 30-second proof, no install:
41
+
42
+ npx cool-workflow demo tamper
43
+
44
+ It builds a real signed ledger, forges it two ways (flip a verdict + re-seal its
45
+ hash; inflate reported tokens + reuse the signature), and catches both offline with
46
+ only the public key. On a real run, `cw telemetry verify <run>` re-proves the
47
+ recorded ledger on disk — recomputing the chain so any later edit to a verdict or
48
+ usage digest is caught; add `--pubkey <public.pem>` to re-run each attested hop's
49
+ signature check offline too. I keep an
50
+ honest trust-model doc (what it does and does NOT prove, incl. the single-keyholder
51
+ ceiling): https://github.com/coo1white/cool-workflow/blob/main/plugins/cool-workflow/docs/trust-model.md
52
+
53
+ Also: concurrent parallel() phases with declared collapse semantics (collect-all +
54
+ kill-on-timeout — 16 agents with a forced hang/crash/dirty-return finish without
55
+ deadlock and replay who-passed-who-failed), per-task output-schema gates, token
56
+ budgets enforced against the host's recorded usage (opt-in gate fails closed on
57
+ unattested telemetry), and a one-way executor boundary welded
58
+ into the type system (a callable that could reach a model API fails `npm run
59
+ build`). Zero runtime deps, BSD-2, published to npm with provenance. Ships generated
60
+ plugin manifests for 5 agent platforms (claude, codex, agents, gemini, opencode);
61
+ `npm run manifest:load-check` boots all five from one source of truth.
62
+
63
+ It's early (v0.1.81) — I'd genuinely like to hear where the "delegate, prove,
64
+ replay" model breaks down for your workflows.
65
+
66
+ npm: https://www.npmjs.com/package/cool-workflow
67
+ ```
68
+
69
+ ---
70
+
9
71
  ## One-liner
10
72
 
11
73
  > Cool Workflow is an auditable control-plane for multi-agent workflows. It
12
74
  > *delegates* model execution — never embeds it — and makes every recorded agent
13
- > telemetry verdict tamper-evident: anyone can re-verify a run offline with only a
14
- > public key.
75
+ > telemetry verdict tamper-evident: anyone can re-verify a run's integrity offline,
76
+ > and check the ed25519 attribution with the public key alone.
15
77
 
16
78
  ## Elevator (2 sentences)
17
79
 
@@ -40,8 +102,8 @@ Everything leads with the 30-second `npx cool-workflow demo tamper` proof.
40
102
  > holds an API key. What it *does* own is the audit trail: each agent hop's reported
41
103
  > usage is signed (ed25519) and appended to a hash-chained ledger, so editing any
42
104
  > record — or even recomputing its local hash to cover the edit — breaks the chain
43
- > downstream. You can re-verify a finished run with only the public key, no network,
44
- > no trusted server.
105
+ > downstream. You can re-verify a finished run offline no network, no trusted
106
+ > server.
45
107
  >
46
108
  > The 30-second proof, no install:
47
109
  >
@@ -50,18 +112,23 @@ Everything leads with the 30-second `npx cool-workflow demo tamper` proof.
50
112
  > ```
51
113
  >
52
114
  > It builds a real signed ledger, forges it two ways (flip a verdict + re-seal its
53
- > hash; inflate reported tokens + reuse the signature), and shows both forgeries
54
- > caught offline. On a real run, `cw telemetry verify <run>` does the same against
55
- > what's on disk.
115
+ > hash; inflate reported tokens + reuse the signature), and catches both offline with
116
+ > only the public key. On a real run, `cw telemetry verify <run>` re-proves the
117
+ > recorded ledger on disk — recomputing the chain so any later edit to a verdict or
118
+ > usage digest is caught; add `--pubkey <public.pem>` to re-run each attested hop's
119
+ > signature check offline too. I keep an
120
+ > honest [trust model & limitations](https://github.com/coo1white/cool-workflow/blob/main/plugins/cool-workflow/docs/trust-model.md)
121
+ > doc, including the single-keyholder ceiling.
56
122
  >
57
123
  > Other things it does: concurrent `parallel()` phases with declared collapse
58
124
  > semantics (collect-all + kill-on-timeout — 16 agents with a forced hang/crash/
59
125
  > dirty-return finish without deadlock and replay "who passed/who failed"), per-task
60
- > output-schema gates, token budgets enforced against attested usage, and a one-way
126
+ > output-schema gates, token budgets enforced against the host's recorded usage
127
+ > (an opt-in gate fails closed on unattested telemetry), and a one-way
61
128
  > executor boundary welded into the type system (a callable that could reach a model
62
129
  > API fails `npm run build`).
63
130
  >
64
- > Runs anywhere Node runs; `dist/` is committed; BSD-2. It's early (v0.1.79) and I'd
131
+ > Runs anywhere Node runs; `dist/` is committed; BSD-2. It's early (v0.1.81) and I'd
65
132
  > genuinely like to hear where the "delegate, prove, replay" model breaks down for
66
133
  > your workflows.
67
134
  >
@@ -80,8 +147,9 @@ catches both offline with only the public key. A control-plane that delegates
80
147
  model execution but can still prove the bill is real.
81
148
 
82
149
  3/ Also: concurrent batches that don't deadlock when an agent hangs, schema-gated
83
- outputs, token budgets vs *attested* usage, and a red line (never call a model
84
- API) enforced at compile time. Zero deps, BSD-2.
150
+ outputs, token budgets vs the host's recorded usage (attested-telemetry gate is
151
+ opt-in), and a red line (never call a model API) enforced at compile time. Zero
152
+ deps, BSD-2.
85
153
  → https://github.com/coo1white/cool-workflow
86
154
 
87
155
  ---
@@ -92,21 +160,32 @@ API) enforced at compile time. Zero deps, BSD-2.
92
160
  reported usage. The thing that *spends the money* is not the thing that *keeps
93
161
  the books* — the property auditors require everywhere except, so far, agent
94
162
  infra.
95
- - **Offline, public-key verification.** No telemetry service to trust or breach.
96
- The record proves its own integrity; the verifier needs only the public key.
163
+ - **Offline verification.** No telemetry service to trust or breach. The record
164
+ proves its own integrity offline — re-proving the chain needs no key at all — and
165
+ the ed25519 attribution checks against the public key alone.
97
166
  - **Replayable, not just logged.** CW breaks at dispatch and writes to disk, so a
98
167
  run replays deterministically — "who passed / who failed" is reconstructable, not
99
- a scrollback of a fused process.
168
+ a scrollback of a fused process. A finished run is portable and self-proving:
169
+ `cw run inspect-archive <archive>` re-proves every file digest, the manifest, and
170
+ the whole-archive hash without importing it; `cw run import` then
171
+ `cw run verify-import <run-id>` restores it and re-proves the restored digests +
172
+ telemetry chain — a tampered archive is caught before it is trusted.
100
173
  - **Fail-closed by default where it counts.** Schema mismatch parks the hop;
101
174
  unverifiable usage can be refused (opt-in); an empty-capture result can't be
102
175
  presented as a clean commit.
176
+ - **Cross-vendor, and it actually boots.** One source manifest
177
+ (`manifest/plugin.manifest.json`) generates Claude / Codex / Gemini / OpenCode /
178
+ agents adapters, and `npm run manifest:load-check` boots all five (184 tools each)
179
+ — the neutrality moat is executable, not aspirational.
103
180
 
104
181
  ## Assets to capture before posting
105
182
 
106
- - [ ] A terminal GIF of `npx cool-workflow demo tamper` (the ✗ DETECTED lines are
107
- the hook) for the README top and the HN/tweet.
183
+ - [ ] **Demo GIF** reproducible, no manual screen-recording: `vhs
184
+ plugins/cool-workflow/docs/launch/demo.tape` `docs/launch/demo-tamper.gif`,
185
+ then add it to the README hero (insert it near the badges/intro). The
186
+ ✗ DETECTED lines are the hook.
108
187
  - [ ] Confirm `npx cool-workflow demo tamper` works from a clean machine (no clone).
109
- - [ ] Pin the npm version badge / release in the first comment.
188
+ - [ ] Pin the npm version badge / release + provenance link in the first comment.
110
189
 
111
190
  ## Channels
112
191
 
@@ -0,0 +1,53 @@
1
+ # Pre-Launch Checklist — Cool Workflow Show HN
2
+
3
+ Tick top to bottom; when it's done, post. The one non-negotiable gate is ②.
4
+ Copy for the post itself lives in [launch-kit.md](launch-kit.md) (the **✅ FINAL**
5
+ block).
6
+
7
+ ## ① Prepare assets (optional, recommended)
8
+
9
+ - [ ] Install [vhs](https://github.com/charmbracelet/vhs) (`brew install vhs`).
10
+ - [ ] Record the GIF: `vhs plugins/cool-workflow/docs/launch/demo.tape` →
11
+ `docs/launch/demo-tamper.gif`.
12
+ - [ ] Add it to the README hero (insert
13
+ `![demo](plugins/cool-workflow/docs/launch/demo-tamper.gif)` near the badges/intro), commit + push.
14
+ > Shippable without the GIF — the README's text `✗ DETECTED` hook already stands;
15
+ > the GIF is upside, not a blocker.
16
+
17
+ ## ② Verify — the make-or-break gate (do not skip)
18
+
19
+ - [ ] On a **clean machine / fresh terminal**: `npx cool-workflow demo tamper`
20
+ prints `VERDICT: tamper-evidence holds ✓`.
21
+ > Every click from HN runs this. One crash wastes that traffic. This is the only
22
+ > non-negotiable check.
23
+ - [ ] Sanity: `npx cool-workflow quickstart architecture-review --repo . --question "risks?"`
24
+ → `status: blocked` with no agent configured (fails closed, no crash).
25
+ - [ ] Resumable sanity: `cw quickstart architecture-review --resume` advances one step
26
+ then stops; `cw run resume <run-id> --drive` continues a stopped run — proving
27
+ runs break at dispatch and replay from disk.
28
+
29
+ ## ③ Post (US morning, ~9–11am ET is peak)
30
+
31
+ - [ ] Open the **✅ FINAL** block in [launch-kit.md](launch-kit.md).
32
+ - [ ] HN title: `Show HN: Cool Workflow – tamper-evident telemetry for agent pipelines (npx demo)`
33
+ - [ ] URL field: `https://github.com/coo1white/cool-workflow`
34
+ - [ ] Immediately after posting, paste the FINAL "first comment" as the first reply.
35
+
36
+ ## ④ First hour (decides the outcome)
37
+
38
+ - [ ] Watch and reply fast — early engagement weighs most on HN.
39
+ - [ ] On the "single key holder / no second party" critique (the audit flagged it
40
+ too): concede it honestly and frame it as exactly why you're looking for early
41
+ integration partners. **Turn the critique into an invitation; don't argue.**
42
+ > The canned, linkable answer is already written: [docs/trust-model.md](../trust-model.md)
43
+ > states the ceiling plainly (integrity ≠ source honesty; one party holding both
44
+ > roles; full local re-chain) and frames the partner ask. Link it; don't re-argue it.
45
+ - [ ] No vote-rigging, no asking friends to upvote, no deleting critical comments —
46
+ HN's anti-abuse will sink the post.
47
+
48
+ ---
49
+
50
+ ### Go / no-go
51
+
52
+ > If **② — `npx cool-workflow demo tamper` prints `✓` on a clean machine** — passes,
53
+ > you can post. Everything else is upside.
@@ -265,3 +265,11 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
265
265
  0.1.78
266
266
 
267
267
  0.1.79
268
+
269
+ ## Fast Architecture Review (v0.1.80)
270
+
271
+ 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.
272
+
273
+ ## New Both-Surface Verbs (v0.1.81)
274
+
275
+ v0.1.81 adds `audit verify` (`cw_audit_verify`) and `run inspect-archive` (`cw_run_inspect_archive`) — both declared once in the capability registry and exposed identically on the CLI and MCP, fail-closed (non-zero exit / `ok:false` on an unverified chain or a tampered archive).
@@ -302,3 +302,9 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
302
302
  0.1.78
303
303
 
304
304
  0.1.79
305
+
306
+ ## Fast Architecture Review (v0.1.80)
307
+
308
+ 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.
309
+
310
+ _No changes to the multi-agent eval/replay harness in v0.1.81 (the multi-agent-eval module was carved into behavior-preserving siblings; replay output is byte-identical)._
@@ -314,3 +314,9 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
314
314
  0.1.78
315
315
 
316
316
  0.1.79
317
+
318
+ ## Fast Architecture Review (v0.1.80)
319
+
320
+ 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.
321
+
322
+ _No changes to the multi-agent operator UX surface in v0.1.81 (the operator-ux module was carved into behavior-preserving siblings; output is byte-identical)._
@@ -115,6 +115,32 @@ Human output includes stable panels:
115
115
  - Policy Violations
116
116
  - Next Action
117
117
 
118
+ ## Verify (fail-closed)
119
+
120
+ `audit summary` embeds an `integrity` field but is a *reader* — it always exits 0,
121
+ so it cannot gate a script. `audit verify` is the gate:
122
+
123
+ ```bash
124
+ node scripts/cw.js audit verify <run-id> # exit 1 if the chain is forged
125
+ node scripts/cw.js audit verify <run-id> --json
126
+ ```
127
+
128
+ It re-proves the run's trust-audit hash chain offline: it recomputes every event
129
+ hash from genesis, checks `prevEventHash` linkage, and catches the unchained-event
130
+ forgery (an `eventHash`-less line slipped into a chained log to be waved through as
131
+ "legacy"). The JSON reports `present`, `verified`, `eventCount`, `chained`,
132
+ `unchained`, `corruptLines`, and `failedChecks[]`.
133
+
134
+ Exit-code contract (the peer of `telemetry verify`):
135
+
136
+ - ANY **unverified** chain exits **1** — forged / edited / truncated / unchained-injected,
137
+ *and* a fully-corrupt log (every line unparseable, which reports `present:false` but
138
+ `verified:false`). The gate keys on `verified`, not `present`, so the most severe
139
+ tamper — garbling the whole log — cannot escape by looking "absent". So
140
+ `cw audit verify <run> && deploy` stops on tampering.
141
+ - Only a truly **absent / empty** chain is `verified:true` / exit **0** — a run with
142
+ no audit log (or a blank one) has nothing to prove (no false-red).
143
+
118
144
  ## MCP
119
145
 
120
146
  MCP parity tools:
@@ -128,6 +154,7 @@ MCP parity tools:
128
154
  The older audit tools remain available:
129
155
 
130
156
  - `cw_audit_summary`
157
+ - `cw_audit_verify` — fail-closed re-prove of the trust-audit hash chain (peer of `cw_telemetry_verify`)
131
158
  - `cw_audit_worker`
132
159
  - `cw_audit_provenance`
133
160
  - `cw_audit_attest`
@@ -135,3 +135,9 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
135
135
  0.1.78
136
136
 
137
137
  0.1.79
138
+
139
+ ## Fast Architecture Review (v0.1.80)
140
+
141
+ 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.
142
+
143
+ _No changes to node-snapshot diff/replay in v0.1.81._
@@ -194,3 +194,9 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
194
194
  0.1.78
195
195
 
196
196
  0.1.79
197
+
198
+ ## Fast Architecture Review (v0.1.80)
199
+
200
+ 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.
201
+
202
+ _No changes to the observability + cost-accounting surface in v0.1.81 (the observability module was carved into behavior-preserving siblings; output is byte-identical)._
@@ -1,15 +1,15 @@
1
1
  # Cool Workflow Project Index
2
2
 
3
- Generated from the current repository code on 2026-06-11 by `npm run sync:project-index`.
3
+ Generated from the current repository code on 2026-06-14 by `npm run sync:project-index`.
4
4
 
5
5
  ## Snapshot
6
6
 
7
7
  - Package: `cool-workflow`
8
- - Version: `0.1.79`
8
+ - Version: `0.1.81`
9
9
  - Source modules: `58`
10
- - Workflow apps: `6`
11
- - Docs: `46`
12
- - Smoke tests: `69`
10
+ - Workflow apps: `7`
11
+ - Docs: `49`
12
+ - Smoke tests: `86`
13
13
  - Repository: https://github.com/coo1white/cool-workflow
14
14
 
15
15
  ## Architecture
@@ -82,9 +82,9 @@ multi-agent host -> topology -> blackboard/coordinator
82
82
 
83
83
  - [agent-config.ts](../src/agent-config.ts)
84
84
  - [capability-core.ts](../src/capability-core.ts)
85
- - [capability-dispatcher.ts](../src/capability-dispatcher.ts)
86
85
  - [capability-registry.ts](../src/capability-registry.ts)
87
86
  - [collaboration.ts](../src/collaboration.ts)
87
+ - [compare.ts](../src/compare.ts)
88
88
  - [contract-migration.ts](../src/contract-migration.ts)
89
89
  - [drive.ts](../src/drive.ts)
90
90
  - [evidence-grounding.ts](../src/evidence-grounding.ts)
@@ -116,6 +116,7 @@ multi-agent host -> topology -> blackboard/coordinator
116
116
  | App | Type | Inputs | Sandbox | Source |
117
117
  | --- | --- | --- | --- | --- |
118
118
  | `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) |
119
+ | `architecture-review-fast` - Run a shorter architecture review with parallel map and assess phases for faster first results. | canonical | `repo`, `question`, `invariant`, `focus`, `sourceContext`, `sourceContextDigest` | `readonly` | [manifest](../apps/architecture-review-fast/app.json) / [workflow](../apps/architecture-review-fast/workflow.js) |
119
120
  | `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) |
120
121
  | `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) |
121
122
  | `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) |
@@ -162,10 +163,13 @@ multi-agent host -> topology -> blackboard/coordinator
162
163
  - [SANDBOX-PROFILES(7)](sandbox-profiles.7.md)
163
164
  - [Scheduled Tasks](scheduled-tasks.md)
164
165
  - [Security / Trust Hardening](security-trust-hardening.7.md)
166
+ - [Source Context Profiles](source-context-profiles.7.md)
165
167
  - [State Explosion Management](state-explosion-management.7.md)
166
168
  - [STATE-NODE(7)](state-node.7.md)
167
169
  - [Team Collaboration](team-collaboration.7.md)
170
+ - [Trust Model & Limitations](trust-model.md)
168
171
  - [Unix-Inspired Workflow Principles](unix-principles.md)
172
+ - [Vendor Manifest Loadability](vendor-manifest-loadability.7.md)
169
173
  - [VERIFIER-GATED-COMMIT(7)](verifier-gated-commit.7.md)
170
174
  - [Web / Desktop Workbench](web-desktop-workbench.7.md)
171
175
  - [WORKER-ISOLATION(7)](worker-isolation.7.md)
@@ -176,18 +180,23 @@ multi-agent host -> topology -> blackboard/coordinator
176
180
  Smoke tests mirror the public contracts. The high-signal suites are:
177
181
 
178
182
  - [agent-delegation-drive-smoke.js](../test/agent-delegation-drive-smoke.js)
183
+ - [architecture-review-fast-automation-smoke.js](../test/architecture-review-fast-automation-smoke.js)
184
+ - [architecture-review-fast-smoke.js](../test/architecture-review-fast-smoke.js)
179
185
  - [artifact-integrity-smoke.js](../test/artifact-integrity-smoke.js)
186
+ - [audit-verify-smoke.js](../test/audit-verify-smoke.js)
180
187
  - [backend-registry-smoke.js](../test/backend-registry-smoke.js)
181
188
  - [block-unapproved-tag-smoke.js](../test/block-unapproved-tag-smoke.js)
182
189
  - [candidate-scoring-smoke.js](../test/candidate-scoring-smoke.js)
183
190
  - [canonical-workflow-apps-smoke.js](../test/canonical-workflow-apps-smoke.js)
184
191
  - [claude-p-agent-wrapper-smoke.js](../test/claude-p-agent-wrapper-smoke.js)
192
+ - [cli-jsonmode-parity-smoke.js](../test/cli-jsonmode-parity-smoke.js)
185
193
  - [cli-mcp-parity-smoke.js](../test/cli-mcp-parity-smoke.js)
186
194
  - [concurrent-failure-semantics-smoke.js](../test/concurrent-failure-semantics-smoke.js)
187
195
  - [concurrent-workflow-dsl-smoke.js](../test/concurrent-workflow-dsl-smoke.js)
188
196
  - [contract-migration-tooling-smoke.js](../test/contract-migration-tooling-smoke.js)
189
197
  - [control-plane-scheduling-smoke.js](../test/control-plane-scheduling-smoke.js)
190
198
  - [coordinator-blackboard-smoke.js](../test/coordinator-blackboard-smoke.js)
199
+ - [det-ids-b-smoke.js](../test/det-ids-b-smoke.js)
191
200
  - [dogfood-release-smoke.js](../test/dogfood-release-smoke.js)
192
201
  - [durable-atomic-write-smoke.js](../test/durable-atomic-write-smoke.js)
193
202
  - [end-to-end-demo-smoke.js](../test/end-to-end-demo-smoke.js)
@@ -197,6 +206,8 @@ Smoke tests mirror the public contracts. The high-signal suites are:
197
206
  - [evidence-adoption-reasoning-smoke.js](../test/evidence-adoption-reasoning-smoke.js)
198
207
  - [evidence-content-extraction-smoke.js](../test/evidence-content-extraction-smoke.js)
199
208
  - [execution-backends-smoke.js](../test/execution-backends-smoke.js)
209
+ - [freebsd-audit-fixes-smoke.js](../test/freebsd-audit-fixes-smoke.js)
210
+ - [h7-custom-profile-persist-smoke.js](../test/h7-custom-profile-persist-smoke.js)
200
211
  - [mcp-app-surface-smoke.js](../test/mcp-app-surface-smoke.js)
201
212
  - [multi-agent-cli-mcp-surface-smoke.js](../test/multi-agent-cli-mcp-surface-smoke.js)
202
213
  - [multi-agent-eval-replay-harness-smoke.js](../test/multi-agent-eval-replay-harness-smoke.js)
@@ -222,13 +233,20 @@ Smoke tests mirror the public contracts. The high-signal suites are:
222
233
  - [result-normalize-smoke.js](../test/result-normalize-smoke.js)
223
234
  - [robustness-hardening-smoke.js](../test/robustness-hardening-smoke.js)
224
235
  - [run-export-import-smoke.js](../test/run-export-import-smoke.js)
236
+ - [run-export-restore-rerun-smoke.js](../test/run-export-restore-rerun-smoke.js)
237
+ - [run-export-restore-resume-smoke.js](../test/run-export-restore-resume-smoke.js)
225
238
  - [run-fixture-compat-smoke.js](../test/run-fixture-compat-smoke.js)
239
+ - [run-import-tamper-failclosed-smoke.js](../test/run-import-tamper-failclosed-smoke.js)
240
+ - [run-inspect-archive-smoke.js](../test/run-inspect-archive-smoke.js)
226
241
  - [run-registry-control-plane-smoke.js](../test/run-registry-control-plane-smoke.js)
242
+ - [run-resume-drive-smoke.js](../test/run-resume-drive-smoke.js)
227
243
  - [run-retention-reclamation-smoke.js](../test/run-retention-reclamation-smoke.js)
228
244
  - [sandbox-profile-smoke.js](../test/sandbox-profile-smoke.js)
245
+ - [schedule-routine-daemon-smoke.js](../test/schedule-routine-daemon-smoke.js)
229
246
  - [schema-validation-smoke.js](../test/schema-validation-smoke.js)
230
247
  - [security-trust-hardening-smoke.js](../test/security-trust-hardening-smoke.js)
231
248
  - [self-audit-hardening-smoke.js](../test/self-audit-hardening-smoke.js)
249
+ - [source-context-profile-smoke.js](../test/source-context-profile-smoke.js)
232
250
  - [state-explosion-management-smoke.js](../test/state-explosion-management-smoke.js)
233
251
  - [state-node-smoke.js](../test/state-node-smoke.js)
234
252
  - [tamper-evidence-demo-smoke.js](../test/tamper-evidence-demo-smoke.js)
@@ -238,8 +256,11 @@ Smoke tests mirror the public contracts. The high-signal suites are:
238
256
  - [telemetry-fail-closed-smoke.js](../test/telemetry-fail-closed-smoke.js)
239
257
  - [telemetry-ledger-smoke.js](../test/telemetry-ledger-smoke.js)
240
258
  - [telemetry-metrics-coverage-smoke.js](../test/telemetry-metrics-coverage-smoke.js)
259
+ - [telemetry-verify-signatures-smoke.js](../test/telemetry-verify-signatures-smoke.js)
241
260
  - [token-budget-enforcement-smoke.js](../test/token-budget-enforcement-smoke.js)
261
+ - [vendor-manifest-load-smoke.js](../test/vendor-manifest-load-smoke.js)
242
262
  - [verifier-gated-commit-smoke.js](../test/verifier-gated-commit-smoke.js)
263
+ - [verify-import-audit-chain-smoke.js](../test/verify-import-audit-chain-smoke.js)
243
264
  - [web-desktop-workbench-smoke.js](../test/web-desktop-workbench-smoke.js)
244
265
  - [worker-isolation-smoke.js](../test/worker-isolation-smoke.js)
245
266
  - [worker-retry-count-smoke.js](../test/worker-retry-count-smoke.js)
@@ -142,3 +142,9 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
142
142
  0.1.78
143
143
 
144
144
  0.1.79
145
+
146
+ ## Fast Architecture Review (v0.1.80)
147
+
148
+ 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.
149
+
150
+ _No changes to the real execution backends in v0.1.81._
@@ -280,3 +280,11 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
280
280
  0.1.78
281
281
 
282
282
  0.1.79
283
+
284
+ ## Fast Architecture Review (v0.1.80)
285
+
286
+ 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.
287
+
288
+ ## Migration Compatibility (v0.1.81)
289
+
290
+ v0.1.81 is additive: every change is a new flag/verb/env (`audit verify`, `run inspect-archive`, `verify-import --strict`, `CW_REQUIRE_ARCHIVE_INTEGRITY`, `quickstart --resume`, `run resume --drive`) or an internal behavior-preserving carve. Run-state schema, existing outputs, files, and exit codes are byte-identical, so runs and archives from prior versions load and verify unchanged. No migration action is required.
@@ -159,3 +159,9 @@ also get generated MCP manifests (`.gemini-plugin/`, `.opencode-plugin/`) so the
159
159
  0.1.78
160
160
 
161
161
  0.1.79
162
+
163
+ ## Fast Architecture Review (v0.1.80)
164
+
165
+ 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.
166
+
167
+ _No changes to the release-flow tooling in v0.1.81; this release was cut through the existing gate->review->tag flow._
package/docs/routines.md CHANGED
@@ -41,6 +41,29 @@ Inspect events:
41
41
  node scripts/cw.js routine events
42
42
  ```
43
43
 
44
+ ## Long Architecture Reviews
45
+
46
+ Use `architecture-review-fast` for the foreground user path, then schedule the
47
+ full `architecture-review` app as background work when a deep audit should not
48
+ block an interactive session:
49
+
50
+ ```bash
51
+ node scripts/architecture-review-fast.js \
52
+ --repo /path/to/repo \
53
+ --question "Is this architecture sound?" \
54
+ --metrics \
55
+ --schedule-full
56
+ ```
57
+
58
+ The wrapper creates a one-shot reminder schedule whose `workflowId` is
59
+ `architecture-review`. The schedule prompt is policy. CW stores the schedule and
60
+ records due events; the external agent host decides how to run the long review.
61
+ The prompt includes the foreground fast run id, fast report path, source-context
62
+ digest/profile, and asks the background agent to return the full review report
63
+ path and digest.
64
+ The `--metrics` flag is optional and reports foreground elapsed time plus
65
+ agent-spawn and result-cache-hit counts for the fast run.
66
+
44
67
  ## Boundary
45
68
 
46
69
  CW v0.1.1 does not provide managed cloud infrastructure. It provides a local
@@ -49,6 +49,13 @@ own `sourceFingerprint`, the covered `repos`, the `queue`, and lifecycle
49
49
  a `nextAction`. Every read re-derives records from source; the persisted index is
50
50
  only compared against, never trusted as the live status.
51
51
 
52
+ During one index build, repo-level overlays (`archive.json` and
53
+ `provenance.json`) are read once per repo and passed as an in-memory scan
54
+ snapshot to each run record. This is a short-lived mechanism, not a persistent
55
+ cache: the next registry command re-reads source state and overlays from disk, so
56
+ freshness, fail-closed behavior, and output shape stay unchanged while large
57
+ repos avoid repeated identical overlay reads.
58
+
52
59
  ## Lifecycle state machine
53
60
 
54
61
  Lifecycle is CLASSIFIED from existing state, never invented. `deriveLifecycle`
@@ -108,6 +115,14 @@ cwd — loads its durable state, and returns the next runnable tasks and next
108
115
  actions for the host to execute. Resume is read-only over source: it never
109
116
  mutates `state.json` and never un-archives a run.
110
117
 
118
+ `run resume <run-id> --drive` (or `--once` for a single step) hands the resolved
119
+ run straight to the existing agent-delegation drive loop — it re-plans nothing and
120
+ picks up the pending/running tasks deterministically from durable state — and
121
+ augments the result with the drive outcome under a `drive` field. The default (no
122
+ `--drive`) payload and `nextActions` stay byte-identical. An unconfigured agent
123
+ yields `drive.status="blocked"` (fail-closed, never a fabricated completion); CW
124
+ delegates worker execution to your agent and never runs a model itself.
125
+
111
126
  ## Queue
112
127
 
113
128
  `queue add` appends a durable entry to `$CW_HOME/registry/queue.json` with an
@@ -136,6 +151,65 @@ in the repo's `registry/provenance.json`. The original failed run is PRESERVED
136
151
  for audit — the past is never overwritten. Rerunning a rerun increments
137
152
  `generation` and keeps `originRunId` pinned to the chain root.
138
153
 
154
+ ## Portable export, import, and restore verification
155
+
156
+ `run export <run-id> --output PATH` writes a portable JSON archive for a run. The
157
+ archive includes the run state plus run-local files, committed artifacts, audit
158
+ overlays, telemetry ledger files, per-file sha256 digests, file sizes, and a
159
+ manifest digest. External repo-local artifact paths referenced by the run are
160
+ copied into the archive under `external-artifacts/` and recorded with their
161
+ original `sourcePath`; the source run is never mutated.
162
+
163
+ `run import PATH --target DIR` restores the archive under
164
+ `DIR/.cw/runs/<run-id>/`, rebases paths to the target repo, writes an
165
+ `import-manifest.json`, refreshes the target repo registry, and immediately runs
166
+ the same verification used by `run verify-import`. Restored partial runs can be
167
+ resumed from the target repo; restored failed runs remain discoverable from the
168
+ home registry and can be rerun as new linked runs. The import does not alter the
169
+ source repository or the source run.
170
+
171
+ **Import-time refusal (fail-closed before any write).** Import verifies every
172
+ file digest, every file size, the file count, and the manifest digest *before*
173
+ creating the target run directory — so a tampered archive is refused with a
174
+ non-zero exit and a single `cw:` stderr line, leaving nothing on disk (no partial
175
+ restore). Set `CW_REQUIRE_ARCHIVE_INTEGRITY=1` to additionally refuse an archive
176
+ whose top-level integrity block is *absent* — closing the legacy fail-open seam
177
+ where a stripped-integrity archive imported unverified. Unset (the default) keeps
178
+ legacy integrity-less archives byte-identical; the flag is mechanism, not policy.
179
+
180
+ `run verify-import <run-id> [--cwd DIR]` re-reads the restore manifest, recomputes
181
+ every restored file digest, checks the manifest digest, verifies the telemetry
182
+ ledger when one was restored, and re-proves the **trust-audit hash chain** (the
183
+ decisions / sandbox / commit-gate log, also restored under `audit/`). Missing
184
+ manifests, digest mismatches, path escapes, unsupported archive schemas, unreadable
185
+ files, telemetry-chain failures, or a forged audit chain (`trust-audit-invalid`)
186
+ return explicit failed checks instead of a fabricated success. An archive with no
187
+ audit log yields a passing `trust-audit` check (nothing to prove — no false-red).
188
+
189
+ By default `verify-import` prints the result and exits 0 even when a check fails
190
+ (it is a report). Pass `--strict` to make any failed restore check exit non-zero,
191
+ so `cw run verify-import <run> --strict && restore` stops on a tampered archive.
192
+
193
+ **Inspect an archive before restoring.** `run inspect-archive PATH [--json]`
194
+ re-proves a portable archive's integrity *without writing anything* — contrast
195
+ with `run import`, which validates as a side-effect of restoring a full
196
+ `.cw/runs/<id>/` tree. It re-computes every embedded file's sha256 and size, the
197
+ `integrity.fileCount` and manifest digest, and the whole-archive sha256, returning
198
+ a structured `checks[]` — each failure names the offending `relativePath` with a
199
+ `digest-mismatch` / `size-mismatch` / `manifest-digest-mismatch` /
200
+ `file-count-mismatch` code. It never throws: an unreadable path, invalid JSON, or an
201
+ unknown `schemaVersion` (`schemaSupported:false`) is reported as a check, not a
202
+ stacktrace — stdout is always valid JSON, diagnostics go to stderr. It exits `1`
203
+ when `ok:false`, so `cw run inspect-archive <path> && cw run import <path>` stops
204
+ before importing a bad archive. It is a faithful preview of import: under
205
+ `CW_REQUIRE_ARCHIVE_INTEGRITY=1` a stripped-integrity archive (which import would
206
+ refuse) also inspects as `ok:false`; with the env unset (default) an absent integrity
207
+ block is merely reported, not failed.
208
+
209
+ MCP exposes the same mechanisms as `cw_run_export`, `cw_run_import`,
210
+ `cw_run_verify_import`, and `cw_run_inspect_archive`; the CLI and MCP paths share
211
+ the same runtime functions.
212
+
139
213
  ## Cross-repo history
140
214
 
141
215
  `history` reads a unified timeline of runs across all registered repos
@@ -151,10 +225,14 @@ node scripts/cw.js registry show [--scope repo|home] [--json]
151
225
  node scripts/cw.js run search [--app ID] [--status STATE] [--text Q] [--repo PATH] [--since ISO] [--until ISO] [--limit N] [--offset N] [--scope repo|home] [--json]
152
226
  node scripts/cw.js run list [--scope repo|home] [--json]
153
227
  node scripts/cw.js run show <run-id> [--scope repo|home] [--json]
154
- node scripts/cw.js run resume <run-id> [--limit N] [--json]
228
+ node scripts/cw.js run resume <run-id> [--limit N] [--drive [--once]] [--json]
155
229
  node scripts/cw.js run archive <run-id> [--reason TEXT] [--unarchive]
156
230
  node scripts/cw.js run archive --older-than-days N [--state completed --state failed]
157
231
  node scripts/cw.js run rerun <run-id> [--reason TEXT]
232
+ node scripts/cw.js run export <run-id> --output PATH
233
+ node scripts/cw.js run import PATH --target DIR
234
+ node scripts/cw.js run verify-import <run-id> [--cwd DIR]
235
+ node scripts/cw.js run inspect-archive PATH [--json]
158
236
  node scripts/cw.js queue add [--app ID|--workflow ID|--runId ID] [--repo PATH] [--priority N] [--note TEXT]
159
237
  node scripts/cw.js queue list [--status STATE] [--repo PATH] [--json]
160
238
  node scripts/cw.js queue show <queue-id>
@@ -174,7 +252,8 @@ passes `npm run parity:check`:
174
252
 
175
253
  - `cw_registry_refresh`, `cw_registry_show`
176
254
  - `cw_run_search`, `cw_run_list`, `cw_run_show`, `cw_run_resume`,
177
- `cw_run_archive`, `cw_run_rerun`
255
+ `cw_run_archive`, `cw_run_rerun`, `cw_run_export`, `cw_run_import`,
256
+ `cw_run_verify_import`
178
257
  - `cw_queue_add`, `cw_queue_list`, `cw_queue_drain`, `cw_queue_show`
179
258
  - `cw_history`
180
259
 
@@ -312,3 +391,11 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
312
391
  0.1.78
313
392
 
314
393
  0.1.79
394
+
395
+ ## Fast Architecture Review (v0.1.80)
396
+
397
+ 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.
398
+
399
+ ## Resume Drive, Inspect-Archive & Restore Re-Prove (v0.1.81)
400
+
401
+ v0.1.81 adds `run resume <id> --drive/--once` (continue an interrupted run via the agent-drive loop; default resume stays read-only and byte-identical), `run inspect-archive PATH` (read-only archive integrity check that names any offending file without importing), and restore-time hardening: `verify-import` now re-proves the trust-audit chain on restore and gains `--strict`, and `CW_REQUIRE_ARCHIVE_INTEGRITY=1` refuses a stripped-integrity archive before any write.