Skip to content

fix: the skill passes the Hermes Agent install scanner - #42

Merged
ilyautov merged 1 commit into
mainfrom
fix/hermes-skills-guard
Oct 12, 2026
Merged

ilyautov merged 1 commit into
mainfrom
fix/hermes-skills-guard

Conversation

@ilyautov

Copy link
Copy Markdown
Owner

Problem

Installing the skill in Hermes Agent is blocked: the built-in skills-guard scanner (tools/skills_guard.py, v10) rates it DANGEROUS, and --force does not override that verdict for community skills. One finding:

Rule Where Fix
echo_pipe_exec (CRITICAL) SKILL.md:77, scan.py docstring echo "testo" | python3 scan.py - → heredoc scan.py - <<'EOF'

Same false positive as ilyautov/humanizer-ru#160, fixed there in ilyautov/humanizer-ru#161.

Also

  • lint_skill.py: new check_install_scanners gate with the Hermes rules (echo-pipe, !…``, bare pip install, `\uXXXX` chains, literal invisible characters, ≤50 files).
  • clawhub.yml: comments translated to English; they broke the repo's Cyrillic-free lint on main.

Verification

  • tools/skills_guard.py from NousResearch/hermes-agent on a clean copy of the skill: was DANGEROUS, now SAFE, 0 findings.
  • lint_skill, test_markers, test_score, test_package: green. The scanner reads stdin via heredoc as before.

🤖 Generated with Claude Code

Hermes skills-guard v10 rated the skill DANGEROUS on one line: the
`echo "testo" | python3 scan.py -` example in SKILL.md (echo_pipe_exec,
CRITICAL), and --force does not override a dangerous verdict. The stdin
example in SKILL.md and the scan.py docstring is now a heredoc.

lint_skill.py gains check_install_scanners with the Hermes rules. The
clawhub.yml comments were in Russian and failed the repo's Cyrillic-free
lint; translated. tools/skills_guard.py on a clean copy: SAFE, 0 findings.

Same fix as ilyautov/humanizer-ru#161.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ilyautov
ilyautov merged commit 64065d9 into main Oct 12, 2026
1 check passed
@ilyautov
ilyautov deleted the fix/hermes-skills-guard branch October 12, 2026 13:16
ilyautov added a commit that referenced this pull request Oct 12, 2026
ci.yml existed only locally since June, so lint_skill, the tests and the
eval harness never ran on PRs; lint_skill was broken on main unnoticed
until #42. All steps pass locally on Python 3.11.

eval/run_triggers.py read the root SKILL.md, which was removed (lint_skill
forbids a root mirror); it now reads skills/humanizer-it/SKILL.md.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant