Skip to content

[Bug]: Hermes tool mapping in v6.3.0 uses stale names and an unqualified plugin skill name #2157

Description

@ovijincom
  • I searched existing issues and this is not a duplicate.

Environment

Field Value
Superpowers version v6.3.0
Superpowers commit b36e0829c6d0140e93cfef2ca599b1b07d4a7797
Harness Hermes Agent desktop / native plugin
Harness version Hermes Agent v0.20.1 (2026.8.13), upstream 165c889e
Your model + version OpenAI Codex / gpt-5.6-terra
Relevant plugin superpowers v6.3.0, enabled, source: user
OS + shell Windows 11, Git Bash / MSYS terminal

Is this a Superpowers issue or a platform issue?

  • I confirmed this issue does not occur without Superpowers installed.

This is a Superpowers issue: the incorrect instructions are shipped by the
Hermes-specific reference file in this repository. Hermes itself exposes its
current runtime schema; the drift is in the mapping that Superpowers injects
into the agent context.

Related: #1581

What happened?

The Hermes mapping in
skills/using-superpowers/references/hermes-tools.md is stale and internally
inconsistent with the current Hermes runtime.

The affected lines are:

15 | Fetch a URL / read a webpage | web_extract(urls=[...])
16 | Search the web | web_search(query=...)
17 | Dispatch a subagent | delegate_task(..., toolsets=[...], role="leaf")
31 | skill_view("brainstorming")
49 | delegate_task(..., toolsets=[...], role="leaf")

1. Wrong delegate_task parameter

Current Hermes Agent v0.20.1 exposes enabled_toolsets, not toolsets, for
the delegated worker toolset restriction.

The current Hermes source and live tool schema use:

delegate_task(
    goal="...",
    context="...",
    enabled_toolsets=["..."],
    role="leaf",
)

An agent following the Superpowers mapping verbatim can construct an invalid
tool call.

2. Wrong skill identifier in the same Hermes integration

The reference tells the agent to load an unqualified skill:

skill_view("brainstorming")

In the actual plugin runtime that fails:

Skill 'brainstorming' not found.

The qualified identifier works:

skill_view("superpowers:brainstorming")

This also conflicts with the bootstrap generated by the plugin itself, which
instructs agents to use:

skill_view("superpowers:brainstorming")

3. Unconditional web tool names are not portable across Hermes sessions

The reference unconditionally directs agents to web_extract and
web_search. In this current Hermes desktop session neither tool is exposed;
available capabilities depend on enabled toolsets and configured providers.

The mapping should not instruct the model to call a web tool that may not
exist. It should use the capability visible in the active session, or state a
fallback when no web/search tool is available.

Steps to reproduce

  1. Install the official Hermes integration:

    hermes plugins install obra/superpowers --enable
  2. Start a fresh Hermes session.

  3. Verify that the plugin is enabled and its runtime registration passes:

    hermes plugins show superpowers
    hermes plugins doctor superpowers --ci

    Observed:

    superpowers v6.3.0
    Status: enabled
    
    Plugin Doctor:
      OK: runtime discovery, manifest parsing, import, and registration passed
      registrations: 0 tool(s), 1 hook(s)
    
  4. Inspect the shipped Hermes mapping:

    nl -ba skills/using-superpowers/references/hermes-tools.md
  5. Try the identifier documented in that mapping:

    skill_view("brainstorming")

    Actual result:

    Skill 'brainstorming' not found.
    
  6. Try the plugin-qualified runtime identifier:

    skill_view("superpowers:brainstorming")

    Actual result: skill loads successfully.

Expected behavior

The Hermes-specific Superpowers mapping should only contain tool names and
argument schemas supported by the current Hermes integration, and should use
the correct namespaced identifier for plugin skills.

Actual behavior

The shipped mapping currently contains:

  • toolsets=[...] instead of enabled_toolsets=[...];
  • skill_view("brainstorming"), which fails for the registered plugin skill;
  • unconditional web_extract / web_search references despite those tools
    not being guaranteed to exist in every Hermes session.

Proposed fix

Update skills/using-superpowers/references/hermes-tools.md as follows:

  1. Replace:

    delegate_task(goal="...", context="...", toolsets=["..."], role="leaf")

    with:

    delegate_task(
        goal="...",
        context="...",
        enabled_toolsets=["..."],
        role="leaf",
    )

    Alternatively, omit the optional toolset restriction where
    cross-version compatibility is more important.

  2. Standardize plugin-skill loading on the qualified identifier:

    skill_view("superpowers:brainstorming")
  3. Replace unconditional web-tool names with capability-aware guidance, e.g.:

    Use the web/search capability exposed in the current Hermes session.
    If none is available, do not invent a tool call; use an available fallback
    or report that web access is unavailable.
    
  4. Add a short verification note:

    Plugin-provided skills are runtime-registered. Use `skill_view(...)` or
    `hermes plugins doctor superpowers --ci` to verify this integration;
    `hermes skills inspect` may not resolve plugin-provided skills.
    

Debug log or conversation transcript

No crash occurred. The issue is reproducible from the shipped mapping and the
live Hermes tool schema. The relevant command output is included above.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions