Contribute to Hermes Agent with a Safe Development Loop

A strong Hermes contribution respects profiles, protects secrets, handles platform differences, includes focused tests, and changes the smallest appropriate extension surface.

Operating checklist

  • Decide whether the change belongs in a skill, plugin, provider, tool, or docs.
  • Use the managed checkout or an external development venv.
  • Create a focused branch.
  • Use a throwaway profile for state-changing tests.
  • Keep a manual venv outside the operated repo.
  • Run the repository test path before review.

How the workflow works

Broad procedural knowledge is usually a skill; optional or local capability often belongs in a plugin. Core tools require a stronger case because every schema consumes prompt space. Code must use profile-aware home helpers, explicit UTF-8, OS-aware paths, and guarded process primitives. Security-sensitive changes should quote shell input, resolve symlinks before protected-path checks, avoid logging secrets, and fail closed around approval boundaries.

Common pitfalls

  • Running the system Python accidentally.
  • Putting the venv inside an agent-operated checkout.
  • Adding a built-in tool for a narrow workflow.
  • Testing only the happy path.
  • Assuming Unix process and signal behavior.

Verification steps

  1. Run scripts/run_tests.sh.
  2. Run focused success and failure tests.
  3. Exercise the user path in a sandbox profile.
  4. Scan fixtures and logs for credentials or local paths.
  5. Review the diff for unrelated churn.

Use the official Hermes documentation for the current source of truth.