Hermes Agent plugin
protean-edu is a teaching plugin for Hermes. /edu on starts plain-word lessons for a non-technical user: what the agent decided, why it matters, and one check to run yourself.
The plugin explains decisions and names checks. It never does the work. The agent keeps working. The lessons are the point.
Install from the repo, enable it, start a new Hermes session. Plugin commands load at startup.
hermes plugins install aska-digital/protean-edu hermes plugins enable protean-edu
The Hermes catalog entry is a later stage (contract §10), so install from source for now. Platforms: anything running Python 3.11 or newer. Configuration: none.
The lessons themselves are a separate curriculum stage and are not written yet. Until they are, /edu next says so instead of inventing one.
One slash command, six subcommands. Each lesson is a static markdown file, found by sorting a directory. Nothing is ever generated or invented.
| Command | Does | Writes |
|---|---|---|
/edu on | Turns teaching on for this profile. Keeps your level and lesson. | enabled = true |
/edu off | Turns teaching off. Your agents keep working. The lessons stop. | enabled = false |
/edu status | Shows whether teaching is on, and which lesson you are on. | nothing |
/edu next | Shows the current lesson and its Proof Run. Run it again with yes to advance. | on yes: level + 1 |
/edu review | Shows the current lesson's title, why it matters, and its Proof Run. Read-only. | nothing |
/edu help | Shows this list. | nothing |
lessons/
One file per lesson, NNN-slug.md, with five required headings: why it matters, the idea, the check, and what comes next. Finding a lesson is a directory sort, never a model call.
injection
While teaching is on, a short reminder (at most 160 characters) is appended to your latest message: the current lesson and its check. Nothing else. Off, and it appends nothing.
state
Progress lives in a single JSON file under your Hermes home: on or off, your level, your lesson. Turning teaching off never wipes it. A fresh install behaves exactly like Hermes without the plugin.
Each lesson names its Proof Run: rerun the exact thing the agent claims to have done, with your own eyes. Compare what actually happens to what the agent said would happen. A claim is not proof. The output of running it is.
/edu next Lesson 1: Reading a diff Proof Run — Open the file the agent says it changed and read the diff. When the check passes, run: /edu next yes
The gate is honor-based, by design. The plugin cannot watch your screen, run shell, or make a network call, so it cannot verify you ran the check. Typing yes is your own hand on the record. The plugin never presents that attestation as verification, and it never will: adding proof would need access the contract forbids.
The contract binds the plugin to three public surfaces and forbids everything else. The full list is in docs/contract.md.
/edu on, a fresh install is indistinguishable from plain Hermes.The whole plugin is one module, one manifest, and one test file. Small enough to read in one sitting.
protean-edu/
├── __init__.py # the plugin: command, lesson parser, injection hook
├── plugin.yaml # manifest
├── docs/
│ ├── contract.md # the locked build contract (single source of truth)
│ └── design-notes.md # deliberate decisions, recorded so they stand
└── tests/
└── test_edu_command.py # 26 tests
Built by Aska Digital