All plugins

skillens

Live skill-execution fidelity - watches whether the agent actually performs the steps a loaded skill requires, with a checklist pane, an in-session corrective nudge, and a status-bar fidelity score. Disclosure — records every tool call's arguments and the first 1,500 characters of its result (which can include secrets printed by tools) in a local SQLite file under `$HERMES_HOME/plugin-data/skillens/` with no automatic pruning, and adds a one-time corrective context note to the model's next turn when a loaded skill's numbered steps show no matching tool calls; no network.

PhucNguyen-DevDesktopv0.1.0Updated 3 hours ago

About

Live skill-execution fidelity - watches whether the agent actually performs the steps a loaded skill requires, with a checklist pane, an in-session corrective nudge, and a status-bar fidelity score. Disclosure — records every tool call's arguments and the first 1,500 characters of its result (which can include secrets printed by tools) in a local SQLite file under `$HERMES_HOME/plugin-data/skillens/` with no automatic pruning, and adds a one-time corrective context note to the model's next turn when a loaded skill's numbered steps show no matching tool calls; no network.

Skillens

A Hermes plugin that checks whether the agent actually does what a loaded skill says.

Skills tell the agent what to do. Nothing checks that it did it. The agent reads a
SKILL.md, answers you fluently, and quietly skips the numbered steps: doesn't run the
test suite, doesn't read the reference file, takes shortcuts you only catch later.
Skillens watches every tool call, matches it against the steps of every skill loaded
in the session, and shows you the result live.

What it does

Checklist with a skipped step flagged red

  • Listens to every tool call and every skill load (two hooks: post_tool_call and
    pre_llm_call). It observes only. It never blocks or changes a tool call.
  • When a skill loads, it pulls the numbered steps out of that SKILL.md.
  • Each step is matched against the session's recorded tool calls. Did the command it
    names actually run? Was the file it names actually read?
  • The result shows up in a desktop pane: one checklist per skill, green for a step
    with evidence, red for a step without.
  • If a required step has no evidence by the agent's next turn, Skillens appends one
    short correction to the turn's context naming the step. The agent then does it, or
    tells you why it doesn't apply. Each step gets nudged at most once per session.
  • A status bar chip shows the fidelity number at a glance: ◎ 85%.
  • A second view counts repeated tool calls in the session, so you can see rework.

Run analytics - repeated calls and tool histogram

Multiple skills tracked in one session

Steps with no evidence turn red. That is the whole product.

Install

hermes plugins install skillens

Then open Settings → Plugins and toggle it on. Desktop halves of agent packages ship
opt-in by design.

Requirements

  • Hermes Desktop (the pane and the chip live there)
  • Skills you load through skill_view — that is the only feed it reads

Privacy and disclosures

  • Reads: tool call names, arguments, and truncated results from your own sessions.
    Stored in <hermes home>/plugin-data/skillens/data.db on your machine. Nothing
    leaves this machine. The plugin makes no network requests.
  • The pane polls /api/plugins/skillens/state on localhost only.
  • Sidebar entry and a full-page view at /skillens, same data as the pane.
  • Disable it any time from Settings → Plugins; the hooks stop on toggle.

Files

plugin.yaml            manifest (2 hooks)
__init__.py            hook registration, errors swallowed by design
core.py                trace store (SQLite), step parser, evidence matcher, snapshot
dashboard/             one read-only API route backed by the trace store
desktop/plugin.js      the pane, the status chip, the route page, the sidebar entry
desktop/live_viewer.py optional: view the same store in a browser (localhost:8791)

How it checks

Matching is deterministic token overlap against the session's recorded tool calls.
No LLM judge, no API cost, no extra model calls. A step it cannot read never
triggers a false alarm; the matcher fails quiet.

License

MIT

README from the reviewed commit b788910; it updates when the author re-pins.