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
- Run
scripts/run_tests.sh. - Run focused success and failure tests.
- Exercise the user path in a sandbox profile.
- Scan fixtures and logs for credentials or local paths.
- Review the diff for unrelated churn.
Use the official Hermes documentation for the current source of truth.
