feat: add Hermes Agent integration (with review fixes)#2651
Open
majordave wants to merge 5 commits into
Open
Conversation
- Full SkillsIntegration subclass with dual install strategy (project-local .hermes/skills/ + global ~/.hermes/skills/) - CLI fix: integration_uninstall now calls integration.teardown() instead of manifest.uninstall() directly, allowing custom cleanup - Fix Copilot review issues: - Docstring now reflects both -Q (quiet) and -q (query) flags - Empty command guard prevents passing empty skill names - Add catalog entry for hermes in integrations/catalog.json Co-authored-by: Zhaoxiaoguang001 <3357983213@qq.com>
Hermes loads skills from the global ~/.hermes/skills/ directory, not from project-local paths. The old dual-install strategy copied SKILL.md files to both locations — project-local (for manifest tracking) and global (for Hermes discovery). This change removes the project-local copies entirely: - setup() writes directly to ~/.hermes/skills/speckit-*/SKILL.md - An empty .hermes/skills/ marker directory is created in the project so extension commands (e.g. git) can detect Hermes as an active integration via register_commands_for_all_agents() - teardown() cleans both the global speckit-* dirs and the local marker - import yaml moved to local import inside setup() Tests updated: Hermes-specific tests now assert global skill location, and shared SkillsIntegrationTests that assumed project-local files are overridden with Hermes-appropriate assertions. Co-authored-by: Zhaoxiaoguang001 <3357983213@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a new built-in integration for Hermes Agent (by Nous Research) to Spec Kit's integration system, enabling
specify init --integration hermes/--ai hermesto scaffold Spec Kit commands as skills under.hermes/skills/with anAGENTS.mdcontext file.Based on the original work by @Zhaoxiaoguang001 in PR #2547, with the following fixes and improvements:
Changes from original PR #2547
src/specify_cli/integrations/hermes/__init__.py— Full Hermes integration:SkillsIntegration(skills-based, same as Claude/Codex).hermes/skills/(manifest-tracked) and global~/.hermes/skills/(where Hermes discovers them)setup()delegates tosuper().setup()+ post-processing (same pattern as Claude)teardown()cleans up both locations-Q(quiet) and-q(query) flags/alone no longer passes an empty skill namesrc/specify_cli/__init__.py— CLIintegration_uninstallnow callsintegration.teardown()instead of callingmanifest.uninstall()directly, allowing custom teardown logic in integrations to run properlyintegrations/catalog.json— Addedhermescatalog entrytests/integrations/test_integration_hermes.py— Uses sharedSkillsIntegrationTests(28 tests, all passing)Why global skills?
Unlike Claude Code (
.claude/skills/) or Codex (.agents/skills/), Hermes loads skills from~/.hermes/skills/$HERMES_HOME/skills/(user home directory). Skills are installed to both locations:.hermes/skills/— tracked by the manifest for clean uninstall~/.hermes/skills/— where Hermes discovers them at runtimeBoth locations are cleaned up on
specify integration uninstall.Co-authored-by: Zhaoxiaoguang001 3357983213@qq.com