Repository navigation
Releases: 100yenadmin/hermes-plan-mode
Release list
v0.6.8
/newon chat platforms now starts plan mode clean (#67).- Before: on Telegram and other chat platforms, the first
/planafter/newcontinued a finished plan. Its card
said "Approve plan rev 2", and the agent first read the old plan file. Approval itself was always correct: the card
named the new file, and the new plan was what got approved. - The fix: an unbound gateway reset now also finds finished plans, through a bounded index of the 256 most recent
session states. - Upgrading: plans that finished before the upgrade are added to that index once, at the first reset.
- Unchanged: same-session re-entry still keeps its plan history; approval logic and rule keys are untouched.
- Before: on Telegram and other chat platforms, the first
- README: the approval card's buttons were clicked on Telegram. In two runs on a Hermes v0.21.7 gateway, a real click
approved plans that were then implemented in the same turn (#31).
Not proven yet: the live gateway path. The Telegram /new repro from #67 runs again on a test agent with this release.
Install or update: hermes plugins install 100yenadmin/hermes-plan-mode --ref v0.6.8.
plan-mode 0.6.7
edit_batchjoins the default lean profile (#26, #30). After approval, the agent edits each file in one call
where the tool allows it, and sends edits to different files, including the tests, in the same response. Setlevers
without it to opt out.- Measured in EB-2. It was pre-registered and frozen before the runs, and a blind adjudicator applied the bars.
0.6.6 lean with and withoutedit_batchran on T8 × 8 and PARITY-4's N1 and L2 × 4 each per arm, on Hermes 0.21.6
hermes servewith gpt-6.1-sol:- verified: 16 of 16 in both arms;
- T8 passing tests per run: 27.5 vs 26.375 (#26's guard is ≥ 0.85×);
- execution model calls per run: 7.9 vs 11.8 (0.67×, 95% CI 0.56–0.81);
- execution cost-weighted tokens: 0.94× (95% CI 0.75–1.18).
- A first run, EB-1, ended undecided on calls and cost. A Hermes background-review call in one run broke the call
count; its results and T8 bars held. EB-2 is a fresh replication that counts only the main agent loop. - R066 nominated this lever. It measured 0.6.6 against Codex plan mode on the same day (exploratory):
- both verified 12 of 12;
- blind judges preferred Plan Mode's plans in 11 and 12 of 12;
- cost-weighted tokens were 1.08–1.24× Codex's on W1 and A1, and 1.9–2.5× on N1 and L2.
- Measured in EB-2. It was pre-registered and frozen before the runs, and a blind adjudicator applied the bars.
- Report skill: a yes to the secrets question alone does not approve publishing; only an explicit yes to publishing,
given after the user has seen the text, does (#65, from the plugin community kit).
Install or update: hermes plugins install 100yenadmin/hermes-plan-mode --ref v0.6.7.
plan-mode 0.6.6
write_oncejoins lean on the interactive classic CLI (#58). The agent writes each plan revision to a new file
withwrite_file, and Hermes prints the new file in full as an inline diff. When the plugin can confirm that diff
showed the whole file it is submitting, the agent no longer retypes the plan in its reply. The diff must come from
inline diffs on, a local file backend, at most 78 lines, no control characters and no line starting with++, with
the same bytes at submit. Otherwise the agent shows the plan as before. Single-query mode (hermes chat -q), the TUI,
Desktop and messaging are unchanged. Approval is unchanged.- Measured in SPEED-2 (pre-registered, 12 runs on PARITY-4 W1 and L2, Hermes 0.21.6, gpt-6.1-sol; #30):
- safety and display truth held in every run (6 of 6 flagged runs really showed the whole plan);
- retyped characters fell from the whole plan to 0;
- planning output tokens fell to 0.65× on both tasks, with the same number of model calls and the same plan length;
- blind pairwise judges (Claude and Codex) preferred the write_once plan in 4 of 6 pairs each and the 0.6.5 plan in
at most 1.
- The pre-registered planning-time gate failed: W1 1.11×, L2 0.79×, geometric mean 0.94× against a bar of 0.90×.
write_once ships on the owner's metric: plan quality first, then model calls and tokens. Wall time is reported,
not gated.
- Measured in SPEED-2 (pre-registered, 12 runs on PARITY-4 W1 and L2, Hermes 0.21.6, gpt-6.1-sol; #30):
- Report skill:
- the agent saves the issue title and the search words to files and passes them with
"$(cat '<file>')", so quotes,
$()and backticks in model-written text stay text (#59); - file paths are quoted;
- security problems that clearly come from Hermes itself go to Hermes' private route;
- when the CLI is missing or fails, the paste fallback also covers a comment on the matching issue (#61).
- it adopts the community kit's v2 baseline (#64): the Hermes-or-plugin security route is decided from what the user
describes, an exposed key gets revoke-and-replace advice, "Where it happened" uses the bug form's options, logs
use--since, a closed-issue match is checked against the user's version, and the user approves the title and
text exactly as saved in the filesghposts, seeing them again after any change.
- the agent saves the issue title and the search words to files and passes them with
- README Disclosure:
write_onceadds a ninth group of internal Hermes seams (the classic CLI's inline-diff path).
v0.6.5
- Add the
plan-mode-report-problemskill, registered withctx.register_skill. Ask the agent to "report a problem
with Plan Mode": it checks/planmode status, collects versions and log lines, searches existing issues, drafts a
report with the bug form's headings, and files it withghonly after you approve that draft. Security problems go
to a private advisory instead, and problems in Hermes itself to the Hermes tracker. Hermes 0.21.6 and newer list the skill for the agent; older Hermes loads it by name
(plan-mode:plan-mode-report-problem). While plan mode is on, the agent hands you the draft and the form link. - Add contributor docs: AGENTS.md, CONTRIBUTING.md, SECURITY.md, a bug report form and a README troubleshooting
section (#56).
v0.6.4
- When a turn ends while a submitted plan still awaits approval and no approval card was answered, the reply now ends
with one line saying how to approve:⏸ Plan rev N is waiting for your approval: type /planmode approve to approve it, or say what to change.It applies on every surface (#19). On Hermes 0.21.6hermes servewith approvals off,
gpt-6.1-sol skipped the card in 6 of 6 runs when the task said "do not ask questions" (3 of them with the
approval_asklever), and in 0 of 2 without that phrase; on the classic CLI it asked in 3 of 3. The line changes no
approval decision. It is a pure append to the reply,footer: offturns it off, and subagent or curator turns never
get it. - Bound approved snapshot names to 255 filesystem bytes, including non-UTF-8 names, so surrogate-escaped plan
names no longer refuse edited-plan approval (#54).
v0.6.3
- Approved snapshots carry a short digest of the reviewed text in their name (
<stem>-rev<N>-<digest>.md), so two
sessions approving the same plan name no longer block each other (#52). A name that is already taken gets a short
random tag; plan-mode never reuses, follows or replaces an existing file there, and long plan names are trimmed to
fit one 255-byte file name.
0.6.2 — approve an edited plan exactly as reviewed
- Local
/planmode show [file]displays one complete plan up to 64 KiB and captures its review. Typed approval of a
changed or explicitly named unsubmitted file requires that same activation, path and current digest, while idle. - A reviewed replacement becomes approved rev N+1 once. Implementation receives the complete captured text and an
approved snapshot path, even withapproved_textoff; later edits to the working file do not change that approval. - Add
/planmode edit [file]with external-editor save → show → approve instructions, and ask TUI/Desktop plan
replies to include a markdown file link. Chat and oversized displays do not arm edited-plan approval. - Keep-planning feedback reports saved-file changes in the live card result and next planning turn, asking the agent
to read and preserve them before submitting a complete new revision.
0.6.1 — bare approve refuses unseen plans; Approval card switch
- Bare
/planmode approverefuses changed submissions (#48) even after a denial or stale answer, and refuses a newer file
that was never submitted or a submitted file that was deleted; review with/planmode show, then resubmit or approve
the file explicitly. - A stale approval-card answer tells the model in the same turn that approval did not apply, plan mode is still on,
and it must show the current plan and submit it again. - Move previews keep the tails of both source and destination on Telegram, Slack and Discord's 250-character prompts (#46).
- Add the Approval card switch (
approval_card, on by default): off uses Hermes' approval prompt, keeps the other
lean settings, and wins over custom lever overrides. It takes effect at once, so change it between plans.
0.6.0 — approval card in the default lean profile
-
Approval card (
approval_card). Now part of the default lean profile, after PROOF-060 (README).- After the complete plan, one card asks: "Approve, auto-accept edits", "Approve, review each file edit" (when Hermes approvals are on), or "Keep planning". Other sends feedback, which starts a revision.
- A revision shows what changed since the last one ("Changed since rev 1: +6/−5 lines in Summary, …").
/planmode showprints the plan, up to 64 KB. - Cancelling the card (Ctrl+C on the CLI, Skip on Desktop) leaves the plan unapproved. Typed
/planmode approvestill works and auto-accepts edits.
-
Review each file edit. Each
write_file/patchcall, including file-tool calls insideexecute_code, gets an approval prompt. The prompt shows:- cwd-relative paths and whole-edit counts;
- delete and move counts, with the operations listed first up to the prompt's length limit (1000 chars; 250 on
Telegram, Slack and Discord); - a count of paths outside the working directory;
- up to eight changed lines.
On the classic CLI the prompt is one line, so the approval box stays intact. Once approves one edit; session / always auto-accept the rest of this plan. Shell commands, subagents and MCP tools are not covered.
-
Fix
/planmode on <task>: the task now reaches the model on the next turn, and is delivered once (#40). -
V4A patch targets are extracted in linear time (#39).
-
Large patches render their edit prompt quickly, and displayed paths keep their whitespace (#44).
PROOF-060 (Hermes v0.21.6, gpt-6.1-sol medium, two small tasks, 4 runs per task per arm): approval correctness held
with the card and with the approval directive; 8 of 8 verified in both; the approved revision addressed the feedback
4/4 with the card vs 3/4 without; median wall time +9%. Not shown: other models, larger tasks, the TUI, chat-surface
buttons and "review each file edit". To keep the old prompt, set plan_profile: classic or a levers list without
approval_card.
plan-mode 0.4.7 (opt-in exec_skill_guard)
0.4.7 - 2026-10-13
- New opt-in lever
exec_skill_guard: while an approved plan is executing, block loading the TDD, planning and
code-review process skills. A user message mentioning TDD, test-first, red-green or code review lifts the guard for
TDD and code-review skills; planning, brainstorming and executing-plans skills stay blocked. - It stays opt-in. PROOF-050 (README) showed the block and unchanged results, but not the speed effect: the control
arm rarely loaded the TDD skill.