{
 "batch": "deep-59",
 "setup": "Hermes cloned at HEAD of NousResearch/hermes-agent (depth 1) and built with `uv sync --locked --python 3.14` (uv from astral.sh into test/scratch/bin); `hermes plugins --help` lists install, validate and doctor. tryit.py from the gist ran each plugin at its pinned commit against tests/fakes/fake_llm_provider.py: empty plan first, then 2-5 planned calls. Plugin tools are deferred in this Hermes (not in the first tool list, so added_by_plugin is empty for all six); planned calls went through Hermes's own tool_call(name, arguments). Plugin tests ran in a separate uv venv (pytest 9.2, Python 3.14). This machine has no cargo and no system libcairo, and its sandbox blocks some cross-process/file operations; failures caused by those are noted as environment, not plugin, faults.",
 "plugins": [
  {
   "pr": 152063,
   "name": "undo-send",
   "validate": "passed: hermes plugins validate exit 0, all checks ok (declared middleware matches, security scan safe, desktop surface inside SDK), isolation verdict host.",
   "inside": "Enabled and doctor OK (0 tools, 1 hook, plus tool_execution middleware; Hermes warns 'unknown manifest field provides_middleware ignored' but the middleware still ran). terminal `git push origin main` was held for the grace window (conversation took 28.2 s vs ~3 s otherwise), then released and ran (git error 128 as expected outside a repo); `echo hello-local` ran without a hold; send_message is not offered in a bare CLI Hermes, so the messaging path could not be exercised. pending.db was created in plugin-data.",
   "tests": "passed: 64 passed (pytest, tests/test_undo_send.py and tests/test_api.py).",
   "useful": 4,
   "reliable": 4,
   "polish": 3,
   "creative": 4,
   "beyond": 4,
   "total": 23,
   "rank": 3,
   "best": "A Gmail-style undo window for an agent's outward actions (chat posts, connector writes, git push, npm publish, curl POST), done as tool-execution middleware with /unsend, a Desktop chip and a dashboard page, and it really held a git push inside Hermes.",
   "worst": "README says it fails open on its own errors, but only the classifier is wrapped, so a SQLite error during a hold would raise instead of running the call; the command classifier is regex-based and there are no screenshots.",
   "blocked": null
  },
  {
   "pr": 150556,
   "name": "hermes-ui-cards",
   "validate": "passed: validate exit 0, every check ok, no collisions, security scan safe, isolation verdict host.",
   "inside": "Enabled and doctor OK (1 tool, 3 hooks). hui_present demo=plan and a checklist card both returned ok with the CLI text fallback; a choice card with one option was rejected with a named problem ('card.options: needs at least 2 items'); demo='bogus' was refused by Hermes's schema check. The Desktop renderer could not be seen headless and ships off by default.",
   "tests": "464 passed, 3 failed, 12 skipped (pytest): 2 failures are PermissionError from this sandbox in cross-process answer-store tests; 1 real Python/JS validator parity failure on fixture invalid/datetime-hour-24.json under Python 3.14. Node desktop tests not run.",
   "useful": 4,
   "reliable": 4,
   "polish": 5,
   "creative": 4,
   "beyond": 4,
   "total": 25,
   "rank": 1,
   "best": "Seventeen interactive card types (plan, confirm, compare, form, checklist and more) rendered in Desktop with an answer loop back into the chat and a clean text fallback, with strict validation that gave precise errors on bad cards inside Hermes.",
   "worst": "The Desktop half is off by default so most users first see .md attachments, the README still has an empty demo-video placeholder, and one validator-parity test fails.",
   "blocked": null
  },
  {
   "pr": 151341,
   "name": "permission-canvas",
   "validate": "passed: validate exit 0, all checks ok (3 requirements from manifest, security scan safe), isolation verdict host.",
   "inside": "Enabled (dependencies installed) and doctor OK; it registers a computer-use backend plus /pc-approve and /pc-canvas, no new tools. computer_use calls (list_windows; capture with a bogus pid) returned 'not available in this execution context' because this headless Hermes has no computer-use backend selected, no desktop and no cua-driver, so its core path was not exercised.",
   "tests": "312 passed, 2 failed, 9 skipped (pytest with HERMES_SRC); both failures are subprocess loads of Hermes from a test venv without Hermes's dependencies (environment).",
   "useful": 3,
   "reliable": 3,
   "polish": 4,
   "creative": 5,
   "beyond": 4,
   "total": 23,
   "rank": 6,
   "best": "Element-level permissions for computer_use (allow, read-only, approve-once bound to an action hash, and hidden elements masked from screenshots and the accessibility tree), failing closed, with a private preview panel for the human.",
   "worst": "Validated only on Windows with cua-driver and a Tkinter panel, so it could not run here, and the long README and dense one-line code style make it hard to review.",
   "blocked": null
  },
  {
   "pr": 150293,
   "name": "procgen-studio",
   "validate": "passed: validate exit 0, all checks ok (3 requirements from pyproject, security scan safe), isolation verdict host.",
   "inside": "Enabled (cairosvg, numpy, pillow installed) and doctor OK; registers image and video generation providers, /procgen and an auxiliary model slot, no new tools. image_generate (a normal prompt and a blank one) returned 'not available in this execution context' because no image backend is selected in a fresh Hermes and the scripted model cannot write drawing programs, so rendering was judged by reading.",
   "tests": "Run in place, pytest 9 errors on collection (root __init__.py does a relative import); from a copy in an importable folder: 77 passed, 98 failed, 3 skipped, failures from this machine lacking system libcairo, which plugin.yaml does not declare.",
   "useful": 3,
   "reliable": 3,
   "polish": 5,
   "creative": 4,
   "beyond": 4,
   "total": 23,
   "rank": 4,
   "best": "An image/video backend that has the user's own model write SVG or Python drawing programs, renders them locally in a sandbox with a critic loop, and saves source and seed so results are reproducible, with a rich gallery and Desktop pane.",
   "worst": "It needs system cairo and ffmpeg that the manifest does not declare, its tests do not collect in place under pytest 9, and `/procgen render --size abc` raises an uncaught ValueError.",
   "blocked": null
  },
  {
   "pr": 153221,
   "name": "capalis",
   "validate": "passed: validate exit 0, all checks ok (config schema valid, no collisions, security scan safe).",
   "inside": "Enabled and doctor OK (7 tools, 1 hook). capalis_status, capalis_setup (named each missing token and how to set it in Hermes's secret store) and capalis_capabilities (ranked github.issue.create with rationale) worked; a bad recipe_id gave a clear error; capalis_recipe template=site_watch without slack_channel returned a bare KeyError text ('slack_channel') instead of a usable message.",
   "tests": "passed: 305 passed, 1 skipped (pytest, unit, integration and property tests).",
   "useful": 4,
   "reliable": 4,
   "polish": 4,
   "creative": 4,
   "beyond": 4,
   "total": 24,
   "rank": 2,
   "best": "Owner-approved automations (Discord/Slack bug intake to GitHub issue to reply, scheduled site checks) with a practice run, read-back verification of every write, and self-pause when a token or tool changes, keeping tokens in Hermes's secret store.",
   "worst": "A missing argument surfaced as a raw KeyError inside Hermes, the practice run fetches a model-proposed URL with no private-address block, and JUDGES.md contradicts itself about which live runs happened.",
   "blocked": null
  },
  {
   "pr": 149685,
   "name": "hermes-teleoperator",
   "validate": "passed with warnings: validate exit 0, security scan 'caution' (ssh_dir_access) and catalog rule 9 warning for private core imports (tools.approval.check_all_command_guards, request_tool_approval).",
   "inside": "Not enabled: `hermes plugins enable` was refused twice in clean homes (uv lock: 'Failed to generate package metadata for hermes-teleoperator==1.2.0 ... Distribution not found'), so its tool never loaded and the three planned teleoperator calls (status, switch to an unknown machine, call while local) got 'not a known tool name'. Doctor alone reported registration OK (1 tool, 2 hooks).",
   "tests": "153 ran (unittest): 2 failed, 6 errors, 15 skipped; failures are its deploy ELF probe and a PermissionError under this sandbox. Rust receiver tests not run (no cargo).",
   "useful": 4,
   "reliable": 2,
   "polish": 3,
   "creative": 4,
   "beyond": 5,
   "total": 23,
   "rank": 5,
   "best": "Moves one conversation's terminal, file, skill and MCP tools onto another machine over SSH with a short-lived Rust receiver and Hermes's approval gates, which takes Hermes onto the user's own hardware.",
   "worst": "Hermes refused to enable it here, it imports private Hermes approval internals, it reads SSH key files from paths in a JSON file rather than using the secret store, and the Rust is dense one-liners that are hard to review.",
   "blocked": null
  }
 ]
}