{
 "batch": "deep-x-05",
 "setup": "Hermes cloned from github.com/NousResearch/hermes-agent (shallow, HEAD a84025ad) into test/scratch/hermes and built with uv sync --locked --python 3.14 (uv installed per RUN.md; Python and uv cache kept under test/scratch); `hermes plugins --help` lists install/validate/doctor. tryit.py from the gist ran each plugin against Nous's scripted fake model. Plugin tools register in their own toolsets and are not in the first offered tool list (so added_by_plugin shows none), but Hermes dispatched every planned direct call. Plugin tests run with the Hermes venv Python with Hermes off PYTHONPATH (pytest added to the venv). patient-research could not be fetched: its repository returns 404 and the pinned commit is not reachable.",
 "plugins": [
  {
   "pr": 151704,
   "name": "guild",
   "validate": "passed (all checks ok, no warnings; tools/hooks match declarations, security scan safe)",
   "inside": "loaded and enabled; doctor OK, 4 tools + 4 hooks. In Hermes: guild_status before init returned a clean 'not in a guild' error; after `hermes guild init` on a local bare repo, guild_status listed the guild; guild_propose was stopped by the plugin's own approval hook (no human present), guild_review with a bad id gave a clear error; the CLI `hermes guild propose` pushed a proposal branch and reported 'Scrubbed: 1 secret; 1 email'.",
   "tests": "failed: 2 passed, 8 failed (tests/test_guild.py; failures are 'No skill named deploy-preview in this profile' when the test swaps HERMES_HOME against current Hermes; the same path worked in a real Hermes home)",
   "useful": 4,
   "reliable": 3,
   "polish": 4,
   "creative": 4,
   "beyond": 4,
   "total": 23,
   "rank": 4,
   "best": "A reviewed, secret-scrubbed, git-backed team skill library that Hermes loads read-only, with a human approval gate on proposing that really fired inside Hermes.",
   "worst": "Its own suite fails 8 of 10 against current Hermes, and reading the code shows approve() merges whatever is on the force-pushable proposal branch, reject() skips the reviewer check, and sync's git clean can delete untracked library files.",
   "blocked": null
  },
  {
   "pr": 150261,
   "name": "excubitor",
   "validate": "passed (all checks ok, no warnings)",
   "inside": "loaded and enabled; doctor OK, 0 tools + 8 hooks. An 8-call repeated read_file turn completed; its SQLite ledger recorded 1 turn, 8 tool calls, 2 spend rows and 1 receipt. Hermes's own read_file loop guard blocked the repeats from call 3, before excubitor's threshold of 6 could act; the /excubitor slash command was not exercised (no gateway).",
   "tests": "passed: 94 passed, 2 skipped (live OpenRouter test skipped without a key)",
   "useful": 4,
   "reliable": 4,
   "polish": 4,
   "creative": 3,
   "beyond": 4,
   "total": 23,
   "rank": 3,
   "best": "One ledger of fail-open hooks that dedups replayed gateway messages, vetoes turns past a day or session spend cap, and alerts on hung turns, well tested and off-network by default.",
   "worst": "Part of it overlaps Hermes's own loop guard (which fired first in the run), costs come from a small built-in price table when the hook gives none, and webhook/ntfy targets sit in plain config rather than the secret store.",
   "blocked": null
  },
  {
   "pr": 153687,
   "name": "locus-codegraph",
   "validate": "passed (all checks ok, no warnings)",
   "inside": "loaded and enabled; doctor OK, 5 tools + 3 hooks (plus context references, /locus, skill). On a small sample project: locus_map listed files/symbols with PageRank; locus_rehearse on verify_token -> (token, *, scope=None, grace=0) correctly flagged app/views.py:5 as breaking (2 positional args) and kept the other caller compatible; locus_impact listed both call sites; a missing symbol and a malformed signature returned clean errors.",
   "tests": "passed: 146 unittest tests OK (its CI runner; pytest collection fails on the package-relative import), plus 10/10 node UI tests",
   "useful": 4,
   "reliable": 4,
   "polish": 5,
   "creative": 4,
   "beyond": 4,
   "total": 25,
   "rank": 1,
   "best": "Rehearsing a signature change against statically proven callers, before editing, gave an exact, correct break list inside Hermes, and it also annotates edit results with caller drift.",
   "worst": "Indexing runs synchronously at session start and on every edit (a full relink), so huge repos may stall a session, and non-Python languages get only regex-level parsing.",
   "blocked": null
  },
  {
   "pr": 149202,
   "name": "3ds-platform",
   "validate": "passed (all checks ok; isolation verdict in_process because it is a gateway platform adapter)",
   "inside": "loaded and enabled as a platform plugin; doctor OK, 0 tools/hooks (adds a gateway platform and `hermes 3ds` CLI). No 3DS here, so the adapter was not driven; `hermes 3ds devices`, `pair` (printed a single-use code, address and fingerprint) and `away status` all worked in the test home.",
   "tests": "passed: 212 passed, 26 skipped (plugin/tests, incl. Noise IK test vectors); the C host tests for the 3DS app were not run",
   "useful": 2,
   "reliable": 4,
   "polish": 5,
   "creative": 5,
   "beyond": 5,
   "total": 26,
   "rank": 2,
   "best": "A real new Hermes platform: a full C homebrew client plus a Noise-IK encrypted, pair-by-code gateway adapter that puts the agent, approvals and clarify on a Nintendo 3DS.",
   "worst": "Few Hermes users own a homebrew 3DS, and the server and device keys live in plain 0600 files, with an unauthenticated plaintext LAN mode the README does not mention.",
   "blocked": null
  },
  {
   "pr": 150160,
   "name": "helm",
   "validate": "passed with a warning: desktop surface review (catalog rule 8) flags 27 app markup selectors in desktop/plugin.js (CSS [data-slot] rules)",
   "inside": "loaded and enabled; doctor OK, 0 tools/hooks (Desktop-only; dashboard route serves sprites). Not exercised as a chat; desktop/plugin.js smoke test rendered 31 contributions.",
   "tests": "passed: node smoke.mjs ok (31 contributions, 13 rendered); tests/test_plugin_api.py ok (191 sprites, path traversal)",
   "useful": 3,
   "reliable": 3,
   "polish": 5,
   "creative": 4,
   "beyond": 4,
   "total": 23,
   "rank": 5,
   "best": "A polished Desktop redesign with a Desk home, one inbox for every bot's approvals and questions (answered only on click), and generated robot avatars.",
   "worst": "It styles the app through markup selectors the catalog check warns about, auto-sets profile avatars every minute despite the README listing that among click-only actions, and a comment admits shaping code to avoid the install scanner's obfuscation flags.",
   "blocked": null
  },
  {
   "pr": 153640,
   "name": "patient-research",
   "validate": "not run: plugin source unavailable",
   "inside": "not run: plugin source unavailable",
   "tests": "not run",
   "useful": 0,
   "reliable": 0,
   "polish": 0,
   "creative": 0,
   "beyond": 0,
   "total": 0,
   "rank": 6,
   "best": "Could not be judged.",
   "worst": "Could not be judged.",
   "blocked": "Its repository github.com/solo386/patient-research returns 404 and the pinned commit 8642b35 could not be fetched (PR 153640's head is a different plugin, agentpay-guard)."
  }
 ]
}