Fixes the post-update harness breakage
- Self-healing deps — every verify entry script runs
ensureDeps()first: if the harnessnode_modulesis missing (e.g. right after/plugin updatere-clones the cache), it runsnpm ciautomatically. No more manual reinstall after updates. node_modules-backed imports are now dynamic (after ensureDeps); only built-ins + dependency-free locals are static. - Dropped the version-pinned symlink —
run-spec.mjscopies the spec into the harness tree before running, so@playwright/testresolves against the harnessnode_modules. Nospecs/node_modulessymlink in the data home (it broke when old caches were pruned). - Docs — RUNBOOK drops the obsolete
TEST_CAMPAIGN_ID(BASE_URL entry + UI discovery). README adds a Companion plugins, MCP servers & tools section (required/recommended/optional with copy-paste commands) and a host-tools table.
Verified: simulated a fresh post-update cache (node_modules removed) → auth.mjs auto-installed → AUTH_OK; run-spec.mjs PASS with no symlink present.