{
 "batch": "deep-19",
 "setup": "Hermes installed from source per RUN.md: git clone --depth 1 NousResearch/hermes-agent, uv sync --locked --python 3.14 (uv installed into test/scratch; Python store moved into test/scratch because the sandbox blocks reading ~/.local). Each plugin fetched at its pinned sha, run with tryit.py (catalog validate, enable, doctor, then an in-process AIAgent chat against Hermes's fake_llm_provider) with an empty plan and then a 2-5 call plan including one bad input. Plugin tools do not show in tryit's 'added_by_plugin' (all six report none; this Hermes offers plugin tools through tool_search/tool_call), but the planned calls to them ran for real. Own tests run with Hermes's venv Python plus pytest/hypothesis/PyYAML added, Hermes source off PYTHONPATH.",
 "plugins": [
  {
   "pr": 151371,
   "name": "smart-dictation",
   "validate": "passed (hermes plugins validate --json: all checks ok); requires_hermes >=0.23.0; 3 pinned deps (faster-whisper, av, numpy) installed by validate --install-deps",
   "inside": "Loaded: enable exit 0, doctor OK with 0 tools and 0 hooks; it registers a 'smart_dictation' transcription provider, an auxiliary correction task, a dashboard API (/status, /transcribe, jobs) and a Desktop page. No agent tool to call; a chat with a read_file call completed normally with it enabled. The provider path was not exercised (no microphone/audio or local Whisper model here; downloads are off by design).",
   "tests": "pytest: 85 passed, 3 failed (tests/test_duration_limits.py: a dashboard route returned a starlette JSONResponse where the test expects a dict, i.e. drift from this Hermes); JS tests not run",
   "useful": 3,
   "reliable": 3,
   "polish": 4,
   "creative": 3,
   "beyond": 4,
   "total": 21,
   "rank": 6,
   "best": "A local, offline faster-whisper speech provider for Hermes's own microphone input, with consent-gated, tool-free proofreading that fails closed to the raw transcript.",
   "worst": "It adds no tool, its dashboard manifest points to a dist/index.js that is not shipped, four near-duplicate api_v0_N.py files remain, and 3 of its own tests fail against current Hermes.",
   "blocked": null
  },
  {
   "pr": 153781,
   "name": "wings",
   "validate": "passed, with a catalog rule 9 warning: private core imports (hermes_state_sessions.INTERNAL_LISTING_SOURCES, hermes_cli.profiles.list_profiles) in dashboard/plugin_api.py and wings/cockpit.py",
   "inside": "Loaded: enable exit 0 (installed qrcode), doctor OK with 2 tools. wings_status ran and returned a clean not-initialized state; wings_revoke_device{name:'bobs-phone'} on an uninitialized net returned {\"error\": \"'devices'\"} (a raw KeyError message); wings_revoke_device{} was refused by Hermes's schema check. Setup of the WireGuard mesh itself (root helper, nftables, systemd, CA) was not run here.",
   "tests": "repo tests/ scripts run standalone: test_core, test_mesh, test_net_trust, test_phone_path, test_router, test_start_job, test_trust all exit 0 ('0 failed'); test_root_validate.sh not run (needs root)",
   "useful": 4,
   "reliable": 3,
   "polish": 4,
   "creative": 5,
   "beyond": 5,
   "total": 26,
   "rank": 1,
   "best": "It changes where Hermes runs and is reached: a no-account WireGuard mesh linking every Hermes you own and your phone, with bots and sessions from all machines in Desktop, terminal and the phone app.",
   "worst": "A heavy root footprint (sudo/pkexec helper, nftables, systemd, a trusted CA, /etc/hosts) that the dashboard can start via 'setup -y', revoking a device does not rotate the shared key, and an unknown device returns a bare KeyError text.",
   "blocked": null
  },
  {
   "pr": 153687,
   "name": "locus-codegraph",
   "validate": "passed (hermes plugins validate --json: all checks ok); config schema valid, no dependencies (stdlib ast + sqlite3)",
   "inside": "Loaded: enable exit 0, doctor OK with 5 tools and 3 hooks. On a 2-file demo project: locus_map returned a PageRank module map; locus_symbol found issue_token and its 2 call sites; locus_rehearse with a keyword-only rename correctly reported app/api.py:3 would break ('unexpected keyword argument scope') without editing; locus_impact on an unknown name returned a clear ok:false error; locus_hotspots on /root was refused ('Refusing to index OS system directory').",
   "tests": "python -m unittest discover -s tests: 146 tests OK",
   "useful": 4,
   "reliable": 5,
   "polish": 4,
   "creative": 4,
   "beyond": 4,
   "total": 25,
   "rank": 2,
   "best": "Rehearses a Python signature change against every statically proven caller before an edit and injects broken-caller alerts into Hermes's own edit-tool results, and every call I ran gave correct, clearly worded output.",
   "worst": "Depth is Python-only, and the repository buries the plugin under a large pile of evidence files that is hard to audit.",
   "blocked": null
  },
  {
   "pr": 153872,
   "name": "local-scout",
   "validate": "passed (all checks ok, no warnings); requires_hermes '>=0.23.0,<0.24.0'; chat logged 'unknown manifest field(s) ignored: provides_middleware'",
   "inside": "Not loaded: 'hermes plugins enable' exited 1, refused with 'venv: uv lock exited 2: Failed to generate package metadata for hermes-local-scout==1.7.4 ... Distribution not found' (its pyproject maps package hermes_local_scout to '.'; the same source builds a wheel standalone with uv build). Doctor still reported 9 tools, 9 hooks, but in the chat scout_recipes and scout_handle came back 'Tool ... does not exist' and the remaining calls did not run. Its tools also default to mode off until set up through its own CLI.",
   "tests": "pytest (folder copied as 'plugin', as its tests import plugin.*): 250 passed, 1 failed (test_hybrid artifacts reload), 36 skipped",
   "useful": 4,
   "reliable": 2,
   "polish": 4,
   "creative": 4,
   "beyond": 5,
   "total": 24,
   "rank": 5,
   "best": "A fail-closed local privacy layer that masks detected personal data and secrets in prompts, tool and terminal output through Hermes's request middleware before the model sees them.",
   "worst": "Hermes refused to enable it here (dependency lock failed on its editable pyproject package), so none of its tools reached the model, and it pins Hermes to <0.24.0 and ships injection-model weights without the training code.",
   "blocked": null
  },
  {
   "pr": 152258,
   "name": "kumi",
   "validate": "passed, with a catalog rule 9 warning: private core import tools.approval.is_current_session_yolo_enabled (tools.py:597)",
   "inside": "Loaded: enable exit 0, doctor OK with 30 tools and 8 hooks. kumi_status returned a clear 'needs_runtime' state (31.5 MB pinned download) and kumi_setup{action:plan,daw:reaper} a plan naming the SHA-256 it checks; kumi_read was 'does not exist' because tools stay hidden until the runtime is installed (by design); kumi_setup{action:'launch-rockets'} was refused by schema enum. Runtime download and DAW control were not run (no DAW here).",
   "tests": "python -m unittest discover -s hermes-plugin/tests: 496 tests OK (2 skipped), using a fake runtime",
   "useful": 3,
   "reliable": 4,
   "polish": 5,
   "creative": 5,
   "beyond": 4,
   "total": 25,
   "rank": 3,
   "best": "Puts Hermes inside Ableton Live, REAPER and Renoise with undoable, recorded changes, local audio measurement and a sound map in Desktop, backed by careful approval rules and 496 passing tests.",
   "worst": "Nothing useful works without a 31.5 MB downloaded runtime binary and a DAW, DAW changes run without asking by default, and it uses a private Hermes import.",
   "blocked": null
  },
  {
   "pr": 154025,
   "name": "omniscience",
   "validate": "passed (hermes plugins validate --json: all checks ok); no tools, 14 hooks",
   "inside": "Loaded: enable exit 0, doctor OK with 0 tools and 14 hooks. A chat with two read_file calls (one on a missing file) completed; events.db recorded 14 events and the planted 'sk-test-SHOULDNOTLEAK123' in the user message was not stored. It also spawned a detached viewer server on 127.0.0.1:8797 that kept running after the session ended.",
   "tests": "pytest: 792 passed, 1 failed (test_parent_watch: own-pid liveness check, likely this sandbox), 12 skipped; ~58 TS test files not run",
   "useful": 4,
   "reliable": 2,
   "polish": 5,
   "creative": 4,
   "beyond": 4,
   "total": 23,
   "rank": 4,
   "best": "A live, replayable map of what the agent did, recorded metadata-only from 14 Hermes hooks, with a sanitizer that kept a planted secret out of its database.",
   "worst": "It claims 'Local, private, read-only' and 'no write endpoints', yet its viewer has POST write routes and its insight feature reads keys from ~/.hermes/auth.json and .env to call a provider, and it auto-spawns a server that outlives the session.",
   "blocked": null
  }
 ]
}