Require Fresh Coding Evidence with Hermes Verify-on-Stop

verify_on_stop is a coding quality gate. When Hermes edits code in a workspace and tries to finish without fresh verification evidence, the runtime injects a bounded follow-up asking it to test, build, lint, or explain why verification is blocked.

agent:
  verify_on_stop: "auto"
  verify_guidance: true
  max_verify_nudges: 3
  coding_instructions: ""

Documentation, Markdown, and skill-only edits do not trigger the built-in check. The continuation loop is capped, so a broken test environment cannot trap the session indefinitely.

Choose the surface policy

verify_on_stop accepts:

  • true to enable it on every surface;
  • false to disable it;
  • "auto" to enable it for CLI, TUI, desktop, and programmatic coding surfaces while leaving messaging chats quieter.

Existing installations migrate with the feature off, so opt in explicitly. HERMES_VERIFY_ON_STOP can override the configuration.

Define what counts as evidence

Fresh evidence should be produced after the edit and should match the changed risk:

  • unit or integration tests for behavior;
  • a build for compile or bundle integrity;
  • lint or type checks for static guarantees;
  • route or browser checks for user-facing work;
  • an explicit blocker when the required environment is unavailable.

A test command mentioned in prose or copied from an older run is not fresh evidence.

Adoption checklist

  • The project has at least one reliable verification command.
  • The chosen surface policy matches operator expectations.
  • max_verify_nudges remains bounded.
  • Project-wide coding instructions are short and non-conflicting.
  • User-facing releases still receive browser or device QA where needed.
  • Blocked verification is reported honestly rather than fabricated.

Common pitfalls

  • Treating the gate as a complete test strategy. It detects missing evidence; it does not know every domain-specific acceptance criterion.
  • Enabling everywhere without considering chat noise. auto is usually a better first deployment.
  • Using stale test output. Verification must follow the current edit.
  • Forcing success when infrastructure is unavailable. The correct result is a clear blocker and the evidence that exposed it.

Verification

In a disposable repository, enable the policy and make a small code edit without running tests. Confirm Hermes receives a continuation nudge instead of ending immediately. Run the appropriate test and verify the turn can finish. Repeat with a Markdown-only edit and confirm the coding gate does not fire.

Official reference: Hermes configuration.