{
  "batch": "read2-007",
  "plugins": [
    {
      "pr": 0,
      "name": "done-bell",
      "does": "Notifies users when Hermes finishes a turn or needs approval, with a Desktop status chip and mute controls.",
      "useful": 4,
      "reliable": 3,
      "polish": 3,
      "creative": 2,
      "beyond": 4,
      "total": 20,
      "best": "Useful native turn and approval awareness across Desktop and CLI, without credentials or chat-content storage.",
      "worst": "The README uses an author-specific Windows install path and manual pane copying, while its small Python suite does not cover Desktop notification behavior.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 0,
      "name": "homeassistant",
      "does": "Connects Hermes to Home Assistant events, device queries and service control, including cron notifications.",
      "useful": 4,
      "reliable": 5,
      "polish": 4,
      "creative": 3,
      "beyond": 5,
      "total": 26,
      "best": "A genuine gateway platform with reconnect logic, profile-scoped secrets, bounded requests and tested entity/service restrictions.",
      "worst": "Entity restrictions are opt-in, and the documented service blocklist cannot provide service-level access control inside Home Assistant.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 152755,
      "name": "hermes-drawbridge",
      "does": "Shares a Desktop computer folder with one remote Hermes chat, with read-only grants and approved text changes.",
      "useful": 5,
      "reliable": 4,
      "polish": 5,
      "creative": 4,
      "beyond": 5,
      "total": 28,
      "best": "Bridges remote agents to user hardware through scoped native folder grants, expiring shares, version checks and Hermes approval cards.",
      "worst": "The final file comparison and write are not atomic, and the native-file smoke coverage is Windows-specific, as the README acknowledges.",
      "standout": true,
      "blocked": null
    },
    {
      "pr": 151929,
      "name": "promise-keeper",
      "does": "Turns user-confirmed chat rules into deterministic checks on Hermes tool calls, with block or ask behavior and a Desktop rules panel.",
      "useful": 5,
      "reliable": 4,
      "polish": 5,
      "creative": 4,
      "beyond": 5,
      "total": 28,
      "best": "Human activation, two enforcement layers and extensive adversarial tests turn remembered preferences into persistent operational constraints.",
      "worst": "Shell enforcement remains best effort, and the README explicitly excludes tools without path arguments and argument rewrites by later pre_tool_call hooks.",
      "standout": true,
      "blocked": null
    },
    {
      "pr": 153903,
      "name": "stock-runway",
      "does": "Forecasts inventory run-out and reorder needs from local CSV, sample data or a read-only Odoo connection, with a Desktop planning UI.",
      "useful": 3,
      "reliable": 4,
      "polish": 5,
      "creative": 3,
      "beyond": 3,
      "total": 21,
      "best": "A finished inventory workflow with ERP column normalization, bounded arithmetic, detailed UI and read-only, secret-scoped Odoo access.",
      "worst": "engine.py grades a three-month-average backtest even when the forecast uses seasonal factors, so the displayed grade does not validate that seasonal model.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 153205,
      "name": "receipt-printer",
      "does": "Builds printable receipts comparing agent claims with observed tool history and explicit local task evidence.",
      "useful": 4,
      "reliable": 3,
      "polish": 4,
      "creative": 4,
      "beyond": 4,
      "total": 23,
      "best": "Evidence scoping and mandatory verdict rendering distinguish supported outcomes from missing evidence, with local PNG, Desktop and optional USB output.",
      "worst": "The pinned README labels v2 experimental with independent accuracy acceptance pending; the Desktop pane supplies only an unverified preview without a task manifest.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 151301,
      "name": "confidential-mode",
      "does": "Locks Hermes inference to approved attested enclaves or listed local hosts, with route checks, encrypted transports and replayable evidence receipts.",
      "useful": 4,
      "reliable": 4,
      "polish": 4,
      "creative": 5,
      "beyond": 5,
      "total": 27,
      "best": "Substantial provider and middleware engineering verifies attestations, pins transport keys and refuses off-tier main calls, backed by hostile seam tests.",
      "worst": "The lock cannot stop auxiliary calls that stray mid-turn or inspect shell/code network access, so its confidentiality boundary remains narrower than a full egress sandbox.",
      "standout": true,
      "blocked": null
    },
    {
      "pr": 152343,
      "name": "melange",
      "does": "Records terminal output into hash-chained rewindable timelines and exposes provenance, branching and demo-specific computational edits.",
      "useful": 3,
      "reliable": 3,
      "polish": 3,
      "creative": 5,
      "beyond": 3,
      "total": 20,
      "best": "Character provenance and forward-checked counterfactual edits are an unusual, locally implemented debugging direction.",
      "worst": "The bundled bridge rebuilds computations through the tax flagship or coding demo; a generic recorded shell command does not become a recomputable What-if, and a fork only records intent.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 151963,
      "name": "siemless",
      "does": "Collects Hermes security telemetry, correlates suspicious sequences and exports findings to local files or opted-in SIEM destinations.",
      "useful": 4,
      "reliable": 4,
      "polish": 5,
      "creative": 4,
      "beyond": 5,
      "total": 27,
      "best": "Nonblocking observer hooks, evidence labels, bounded retry spools and Desktop findings make Hermes itself visible to existing security operations.",
      "worst": "Detection and secret redaction are heuristic, and bounded queues or process shutdown can lose events, so this is neither complete surveillance nor a prevention layer.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 153266,
      "name": "carnet",
      "does": "Provides layered local Hermes memory with permanent core facts, relevant recall, long sheets, expiring notes and a Desktop memory graph.",
      "useful": 4,
      "reliable": 1,
      "polish": 4,
      "creative": 3,
      "beyond": 5,
      "total": 22,
      "best": "A native memory provider with addressable facts, lexical abstention, provenance and a substantial Desktop management surface.",
      "worst": "dashboard/plugin_api.py writes custom endpoint keys to config.json and provider.py reads that file-backed fallback, violating the catalog secret-store rule; the advertised local embed_server.py is also absent.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 151804,
      "name": "dress-rehearsal",
      "does": "Records side-effecting tool calls for user review, selective removal and deterministic replay, with direct-file drift checks.",
      "useful": 5,
      "reliable": 3,
      "polish": 4,
      "creative": 4,
      "beyond": 5,
      "total": 26,
      "best": "Reviewing and replaying the stored calls without regenerating them closes a real gap in prompt-only planning modes.",
      "worst": "__init__.py turns unreadable rehearsal state into a fresh unarmed state, so a state-read failure can silently allow real tool execution instead of preserving the guard.",
      "standout": false,
      "blocked": null
    },
    {
      "pr": 151024,
      "name": "night-shift",
      "does": "Triages monitoring incidents, proposes Slack-approved fixes, checks recovery and saves verified fixes as reusable Hermes skills.",
      "useful": 4,
      "reliable": 2,
      "polish": 4,
      "creative": 4,
      "beyond": 5,
      "total": 24,
      "best": "Human identity checks, expiring proposals, exact-command cards and recovery-before-learning form a useful complete on-call loop.",
      "worst": "policy.py treats uniq as read-only without checking its output-file argument, so an incident command such as uniq input output can write before approval despite the read-only safety claim.",
      "standout": false,
      "blocked": null
    }
  ]
}
