Skip to content

docs(skills): document /skill-name slash invocation in slash-commands.md - #71295

Open
Miracle0530 wants to merge 2 commits into
NousResearch:mainfrom
Miracle0530:fix/docs-skill-slash-invocation
Open

docs(skills): document /skill-name slash invocation in slash-commands.md#71295
Miracle0530 wants to merge 2 commits into
NousResearch:mainfrom
Miracle0530:fix/docs-skill-slash-invocation

Conversation

@Miracle0530

Copy link
Copy Markdown

Summary

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.

Changes

  1. Added /<skill-name> to the "Tools & Skills" section of
    slash-commands.md, with two concrete examples and the stacking note
    (up to 5: /skill-a /skill-b do XYZ).

  2. Corrected 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 — a 8-API-call, 3-minute detour that should
be a single skill_view. Documenting it lets the agent answer from the
reference directly.

Verified by probing a fresh hermes chat -q session before and after the
patch (memory and sessions cleaned between runs):

Metric Before patch After patch
API calls 8 3
Duration 3m 07s 58s
Tool calls 7 (grep+read cli.py) 2 (skill_view only)
Source fallback Yes No

Type

docs — accuracy/completeness improvement, no behavior change.

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.
@alt-glitch alt-glitch added type/docs Documentation improvements tool/skills Skills system (list, view, manage) P3 Low — cosmetic, nice to have labels Jul 25, 2026

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread skills/autonomous-ai-agents/hermes-agent/references/slash-commands.md Outdated
@teknium1 teknium1 added the sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users label Jul 30, 2026
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".
@GottZ

GottZ commented Aug 3, 2026

Copy link
Copy Markdown

This was generated by AI during triage.

Summary

18 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 consolidation

Keep #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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P3 Low — cosmetic, nice to have sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users tool/skills Skills system (list, view, manage) type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants