docs(skills): document /skill-name slash invocation in slash-commands.md - #71295
docs(skills): document /skill-name slash invocation in slash-commands.md#71295Miracle0530 wants to merge 2 commits into
Conversation
The hermes-agent skill's references/slash-commands.md listed /skills (management), /bundles, /learn, and /reload-skills, but omitted the primary way to load a specific skill into a session: /<skill-name> (e.g., /github-auth, /gif-search). Every installed skill is automatically registered as a slash command at startup by agent/skill_commands.py, but this was not documented in the in-skill reference the agent consults first. This matches the behavior in cli.py:9620-9664 and the official user guide (website/docs/user-guide/features/skills.md:52-85), which both document the /<skill-name> form with examples. Also corrects the opening "Registry of record" note: it claimed every slash-command consumer derives from COMMAND_REGISTRY, but dynamically registered skill commands live in agent/skill_commands.py, not COMMAND_REGISTRY. The note now distinguishes the two sets and points to the registration source. Impact: without this line, the agent falls back to grepping cli.py source when asked how to load a skill — an 8-API-call, 3-minute detour that should be a single skill_view. Documenting it lets the agent answer from the reference directly. Verified: patched the installed skill, cleaned memory + sessions, ran a fresh hermes chat -q probe. Agent answered correctly in 3 API calls / 58s (2 tool calls, both skill_view) — vs 8 calls / 3m07s (7 tool calls including grep + read_file on cli.py) before the patch.
teknium1
left a comment
There was a problem hiding this comment.
Thanks for filling a real gap in the in-skill slash-command reference: current main supports dynamic skill invocation (agent/skill_commands.py:374-482; CLI dispatch at cli.py:10159-10203), while this reference currently omits it (skills/autonomous-ai-agents/hermes-agent/references/slash-commands.md:55-75).
Problems
- The added registry note says skill commands are registered “at startup” by scanning
~/.hermes/skills/. Discovery is lazy (agent/skill_commands.py:470-482), profile-aware (tools/skills_tool.py:142-143), and also includes configured external directories (agent/skill_commands.py:390-415).
Suggested changes
- Describe
/<skill-name>commands as dynamically discovered eligible skills, without a fixed default-profile path or startup-only timing claim.
Automated hermes-sweeper review.
The registry note described skill commands as "registered dynamically at startup by scanning ~/.hermes/skills/". Actual discovery is lazy (agent/skill_commands.py:416-428: scan on first access or platform change), profile-aware (tools/skills_tool.py:142-143: resolves active profile's skills dir at call time), and includes configured external directories (agent/skill_commands.py:336-340: SKILLS_DIR + get_external_skills_dirs()). Updated wording: "dynamically discovered (lazily, on first access) from the active profile's skills directory and any configured external directories".
Summary18 PRs address or reference this issue complex: seven modify the resolved-install-path versus unresolved-skills-root failure, while the remainder cover destination symlinks, one-shot CLI documentation, here-now metadata, or slash-command documentation. The visible diffs make #64954 the current-code-shape two-site symlink-root implementation, #70511 the merged slash-command reference implementation, and #71295 a distinct follow-up documenting dynamic skill invocation. Related pull requests
Duplicates#23251 duplicates #21739. For the symlink-root cause, #35630, #53409, #53493, and #64954 overlap at both production sites; #49885 and #53541 are older backend-only variants, and #65050 is the current-main backend-only subset of #64954. #50608, #50613, #62933, and #63451 substantially duplicate the correction delivered by #70511; #25501 overlaps the CLI-compatibility portion of #54444, and #53447 overlaps its here-now portion. Suggested consolidationKeep #71295 open with a salvage path preserving its corrected lazy, profile-aware dynamic-discovery wording; keep #64954 open with its current-main two-site fix and regressions, and keep #53447 only for the narrowly stated frontmatter-normalization path. Author action on #54444: split out the #25121 compatibility documentation; close #65050 as duplicate of #64954, and despite their keep_open reviews close #35630, #49885, #53409, #53493, and #53541 as duplicate or superseded variants because their visible diffs use obsolete path APIs, omit an affected site or equivalent coverage, or bundle unrelated work. Cross-PR triage: Reviewed 18 pull requests and 7 issues in this complex. Each diff was read against this issue; Assessment working set: 97 kB of PR diffs, 49 kB of issue/PR text, 35 kB of discussion (51 comments), 36 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
Summary
The hermes-agent skill's
references/slash-commands.mdlisted/skills(management),
/bundles,/learn, and/reload-skills, but omitted theprimary way to load a specific skill into a session:
/<skill-name>(e.g.,/github-auth,/gif-search). Every installed skill is automaticallyregistered as a slash command at startup by
agent/skill_commands.py, butthis was not documented in the in-skill reference the agent consults first.
This matches the behavior in
cli.py:9620-9664and the official user guide(
website/docs/user-guide/features/skills.md:52-85), which both documentthe
/<skill-name>form with examples.Changes
Added
/<skill-name>to the "Tools & Skills" section ofslash-commands.md, with two concrete examples and the stacking note(up to 5:
/skill-a /skill-b do XYZ).Corrected the opening "Registry of record" note — it claimed every
slash-command consumer derives from
COMMAND_REGISTRY, but dynamicallyregistered skill commands live in
agent/skill_commands.py, notCOMMAND_REGISTRY. The note now distinguishes the two sets and pointsto the registration source.
Impact
Without this line, the agent falls back to grepping
cli.pysource whenasked how to load a skill — a 8-API-call, 3-minute detour that should
be a single
skill_view. Documenting it lets the agent answer from thereference directly.
Verified by probing a fresh
hermes chat -qsession before and after thepatch (memory and sessions cleaned between runs):
Type
docs — accuracy/completeness improvement, no behavior change.