All-my-ai-needs hermes-skill-source-classification

Diagnose Hermes `hermes skills list` source labels (`builtin` vs `local`) and avoid false sync decisions.

install
source · Clone the upstream repo
git clone https://github.com/codingSamss/all-my-ai-needs
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/codingSamss/all-my-ai-needs "$T" && mkdir -p ~/.claude/skills && cp -r "$T/platforms/hermes/skills/autonomous-ai-agents/hermes-skill-source-classification" ~/.claude/skills/codingsamss-all-my-ai-needs-hermes-skill-source-classification && rm -rf "$T"
manifest: platforms/hermes/skills/autonomous-ai-agents/hermes-skill-source-classification/SKILL.md
source content

Hermes skill source classification

Use this when

hermes skills list
shows
source=builtin
for skills that also exist in local skill directories.

Key finding

Hermes source labeling is name-manifest based:

  • if a skill name appears in
    ~/.hermes/skills/.bundled_manifest
    , the CLI may label it as
    builtin
  • this can happen even when a local copy exists at
    ~/.hermes/skills/<category>/<name>/

So

builtin
does not always mean “no local copy”.

Verification workflow

  1. Check label:
hermes skills list --source all | grep -E '<skill-name>'
  1. Check bundled manifest hit:
grep -nE '^<skill-name>:' ~/.hermes/skills/.bundled_manifest
  1. Check both physical paths:
test -f ~/.hermes/hermes-agent/skills/<category>/<skill-name>/SKILL.md && echo bundled_exists
test -f ~/.hermes/skills/<category>/<skill-name>/SKILL.md && echo local_exists

Sync decision rule

For repo/local sync scripts, do not use only

--source local
as truth. Use a combined rule:

  • source label
  • local path existence
  • repo path existence

Pitfall

A skill may be misclassified as repo-only if your script trusts source label alone. This can trigger unnecessary sync prompts.