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.mdsource 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
, the CLI may label it as~/.hermes/skills/.bundled_manifestbuiltin - 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
- Check label:
hermes skills list --source all | grep -E '<skill-name>'
- Check bundled manifest hit:
grep -nE '^<skill-name>:' ~/.hermes/skills/.bundled_manifest
- 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.