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?
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
-
Install the official Hermes integration:
hermes plugins install obra/superpowers --enable
-
Start a fresh Hermes session.
-
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)
-
Inspect the shipped Hermes mapping:
nl -ba skills/using-superpowers/references/hermes-tools.md
-
Try the identifier documented in that mapping:
skill_view("brainstorming")
Actual result:
Skill 'brainstorming' not found.
-
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:
-
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.
-
Standardize plugin-skill loading on the qualified identifier:
skill_view("superpowers:brainstorming")
-
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.
-
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.
Environment
b36e0829c6d0140e93cfef2ca599b1b07d4a7797165c889esuperpowers v6.3.0, enabled, source: userIs this a Superpowers issue or a platform issue?
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.mdis stale and internallyinconsistent with the current Hermes runtime.
The affected lines are:
1. Wrong
delegate_taskparameterCurrent Hermes Agent v0.20.1 exposes
enabled_toolsets, nottoolsets, forthe delegated worker toolset restriction.
The current Hermes source and live tool schema use:
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:
In the actual plugin runtime that fails:
The qualified identifier works:
This also conflicts with the bootstrap generated by the plugin itself, which
instructs agents to use:
3. Unconditional web tool names are not portable across Hermes sessions
The reference unconditionally directs agents to
web_extractandweb_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
Install the official Hermes integration:
Start a fresh Hermes session.
Verify that the plugin is enabled and its runtime registration passes:
Observed:
Inspect the shipped Hermes mapping:
Try the identifier documented in that mapping:
Actual result:
Try the plugin-qualified runtime identifier:
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 ofenabled_toolsets=[...];skill_view("brainstorming"), which fails for the registered plugin skill;web_extract/web_searchreferences despite those toolsnot being guaranteed to exist in every Hermes session.
Proposed fix
Update
skills/using-superpowers/references/hermes-tools.mdas follows:Replace:
with:
Alternatively, omit the optional toolset restriction where
cross-version compatibility is more important.
Standardize plugin-skill loading on the qualified identifier:
Replace unconditional web-tool names with capability-aware guidance, e.g.:
Add a short verification note:
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.