{
 "batch": "deep-46",
 "setup": "Hermes installed from source (shallow clone of NousResearch/hermes-agent, uv sync --locked with Python 3.14 placed in test/scratch) and tryit.py run per plugin at its pinned commit: empty plan, then 2-4 planned calls incl. a bad input, plus plugin's own tests (added pytest, pyyaml to the venv; numpy absent). Default offered tools never listed any plugin tool (added_by_plugin empty for all), but calls still reached 5 of 6 plugins' tools. Test failures are sandbox/environment-influenced where noted.",
 "plugins": [
  {
   "pr": 153955,
   "name": "shadow",
   "validate": "passed (all checks ok; rule-9 private-import warnings)",
   "inside": "Loaded, enabled, doctor ok; registers 6 tools, 12 hooks, 3 middleware (none shown in default offered tools). shadow_setup_check returned a clean 'setup check did not pass, nothing saved'; shadow_read and shadow_trial_step refused outside a trial (guarded); all 3 calls ran without crash.",
   "tests": "1887 passed, 1 failed, 6 skipped (tests/ with SHADOW_HERMES_REF; the failure is an isolation test of the installed adapter); acceptance/ folder not run",
   "useful": 4,
   "reliable": 4,
   "polish": 5,
   "creative": 5,
   "beyond": 5,
   "total": 28,
   "rank": 2,
   "best": "Blind, both-order judging of a candidate model on your own saved conversations with undo-able switching changes what Hermes can do (model override, middleware) and is well tested and documented.",
   "worst": "Heavy dependence on private Hermes internals (40+ private-import warnings) and a ~19k-line surface that needs live providers and a verify step before first use, so it breaks easily on Hermes releases.",
   "blocked": null
  },
  {
   "pr": 152190,
   "name": "hermes-tuneup",
   "validate": "passed (all checks ok; rule-9 private-import warnings)",
   "inside": "Loaded, enabled, doctor ok; adds tuneup_check. Default, scope=all and a bad profile name ('../../etc' -> clean 'no profile named' error) all worked and reported the real compaction trigger (96K of 128K).",
   "tests": "after installing pyyaml: 314 passed, 6 failed (adapter-contract tests, e.g. window lookup/MoA aggregator, against current Hermes)",
   "useful": 4,
   "reliable": 4,
   "polish": 5,
   "creative": 3,
   "beyond": 4,
   "total": 24,
   "rank": 5,
   "best": "Read-only advisor that shows when compaction really fires per profile/model and gives exact fix commands, writing only after confirmation with backup.",
   "worst": "Rests on one adapter importing undocumented Hermes resolver modules, and 6 of its adapter-contract tests fail against current Hermes.",
   "blocked": null
  },
  {
   "pr": 151964,
   "name": "takeover",
   "validate": "passed (all checks ok; rule-9 private-import warnings)",
   "inside": "Loaded, enabled, doctor ok; adds request_takeover plus hooks. Missing reason rejected by schema; a valid call returned a clean error that the screen needs sudo apt-get packages (TigerVNC/Xfce), with the exact command, so the Screen/takeover path could not be exercised here.",
   "tests": "116 run: 82 passed, 34 failed, 6 errors in this sandbox (socket/input-gate and Hermes-integration tests); likely partly environment, unverified",
   "useful": 4,
   "reliable": 3,
   "polish": 4,
   "creative": 4,
   "beyond": 5,
   "total": 25,
   "rank": 4,
   "best": "Solves the real human-in-the-loop gap (2FA, login, CAPTCHA) by handing the agent's own browser to the user from WebUI, dashboard or Desktop, fencing browser tools meanwhile.",
   "worst": "Needs root-level system packages and an in-process VNC service, and a large share of its own tests fail in a clean Hermes environment, so the main path was not demonstrable.",
   "blocked": null
  },
  {
   "pr": 153144,
   "name": "signet",
   "validate": "passed (all checks ok; rule-9 private-import warnings)",
   "inside": "Loaded, enabled, doctor ok: 2 tools (signet_send_mail, signet_outbox), 3 hooks. With no from_address set, send was refused cleanly with a clear message (no mail sent); a hostile draft (bad address, header injection, /etc/passwd attachment) also refused; outbox listing worked.",
   "tests": "108 run: 107 passed, 1 failed (a linear-time timing test, 2.5s vs 2.0s limit, likely load)",
   "useful": 4,
   "reliable": 4,
   "polish": 4,
   "creative": 4,
   "beyond": 5,
   "total": 26,
   "rank": 3,
   "best": "Code-enforced email approval tied to the SHA-256 of the exact message, holding mail under YOLO or scheduled runs, is the sort of guardrail a prompt cannot give.",
   "worst": "Narrow to email, needs transport setup (from address, mailer or SMTP) before anything works, and could only be exercised through refusals here.",
   "blocked": null
  },
  {
   "pr": 154028,
   "name": "hail-hermes",
   "validate": "passed (all checks ok; rule-9 private-import warnings)",
   "inside": "Loaded, enabled, doctor ok, but its 4 device_* tools are not offered without a paired device: calls reported 'Tool does not exist' (planned haptic call with bad enum did not run), so hub/watch path unexercised; relies on Desktop panel and Wear OS app.",
   "tests": "plugin/tests: 366 passed, 2 failed (voice backend), 1 skipped; test_characters needs numpy and was not run; README claims 403",
   "useful": 3,
   "reliable": 3,
   "polish": 5,
   "creative": 4,
   "beyond": 4,
   "total": 23,
   "rank": 6,
   "best": "Finished like a product (desktop panel, Wear OS watch, voice, pairing codes) and pushes Hermes onto the user's own devices with a large passing test suite.",
   "worst": "Device tools only exist with paired hardware, so most users get a panel and voice but few agent tools, and the watch half could not be run here.",
   "blocked": null
  },
  {
   "pr": 150644,
   "name": "hermes-canvas",
   "validate": "passed (all checks ok; rule-9 private-import warnings)",
   "inside": "Loaded, enabled, doctor ok; registers canvas_draw/update/get/next plus 7 hooks and a Desktop page. canvas_draw built a 2-box plan with dependencies, canvas_get and canvas_next returned correct state and a ready delegate_task goal; a bogus op was rejected by schema validation with a clear message.",
   "tests": "306 passed, 0 failed",
   "useful": 4,
   "reliable": 5,
   "polish": 5,
   "creative": 5,
   "beyond": 5,
   "total": 29,
   "rank": 1,
   "best": "Box status comes from real file writes and check exit codes via hooks, with the user steering the plan on a canvas, which only a plugin touching Hermes hooks and Desktop can do, and every call and test passed.",
   "worst": "Value depends on the agent drawing plans and on Desktop; headless CLI users get little visible benefit.",
   "blocked": null
  }
 ]
}