Files
hermes-agent/skills/software-development
赵桂雄 42d40a1503 fix(skills): brace the documented tool placeholder in bundled SKILL.md docs
skill_view returns a skill's full text, so bundled SKILL.md files are
part of the request surface: skill content loaded into a later request
travels verbatim to the provider. OpenRouter's gateway classifier treats
the angle-bracket tool placeholder documented in three bundled skills as
a role-tag injection attempt and rejects the whole request with HTTP 403
("Request blocked: prompt injection patterns detected"); Hermes'
per-provider retries then fail the same way, leaving the conversation
unrecoverable on that provider.

Switch the three documented placeholders to the brace form already used
by skills/autonomous-ai-agents/hermes-agent/references/native-mcp.md:

- skills/software-development/hermes-agent-skill-authoring/SKILL.md
  (CLI-wrapper invocation example)
- skills/autonomous-ai-agents/claude-code/SKILL.md (MCP tool naming)
- optional-skills/creative/unreal-mcp/SKILL.md (tool-search mode)

Add tests/tools/test_bundled_skill_doc_placeholders.py, a data-driven
guard that scans the bundled skills tree (skills/ and optional-skills/,
skipping hub caches) for the angle-bracket tool placeholder and lists
every offending file:line. The scanned token is assembled from fragments
so the guard itself never carries the literal.

Note for operators: the hub index cache (skills/.hub/index-cache/) is
not tracked by git. After pulling this change, rebuild the cache so
runtime-loaded skill text picks up the corrected placeholders.

Fixes #132504

(cherry picked from commit c080bc17ae0cf133af90399aa09bdee3d818f7af)
2026-10-04 11:56:08 +05:30
..