--- name: hermes-profile-maintenance description: "Maintain and optimize Hermes profiles — cleanup unused skills, audit configuration, and streamline profiles for specific use cases." version: 1.0.0 author: Hermes Agent license: MIT platforms: [linux, macos] metadata: hermes: tags: [hermes, profiles, maintenance, cleanup, optimization] related_skills: [hermes-agent] --- # Hermes Profile Maintenance Maintain and optimize Hermes profiles. Covers cleaning up unused skills, auditing profile configuration, and streamlining profiles for specific use cases (e.g., Open WebUI-only profiles). ## Quick Reference - **Curator** only touches agent-created skills (`created_by: "agent"`). Bundled and hub-installed skills are off-limits. - **Bundled placeholder skills** (only a `DESCRIPTION.md`, no `SKILL.md`) are safe to remove at the filesystem level. - **Always take a curator backup** before removing skills: `hermes curator backup` - **Stale caches** (`.usage.json`, `.bundled_manifest`) regenerate automatically after removal. ## Identifying Safe-to-Remove Skills ### Step 1: List all skills in the profile ```bash ls -1 ~/.hermes/profiles//skills/ | grep -v '^\.' ``` ### Step 2: Check which have real content vs placeholders A skill with real content has a `SKILL.md` file. A placeholder only has a `DESCRIPTION.md`: ```bash for s in $(ls -1 ~/.hermes/profiles//skills/ | grep -v '^\.'); do if [ -f ~/.hermes/profiles//skills/$s/SKILL.md ]; then echo "REAL: $s" else echo "PLACEHOLDER: $s" fi done ``` ### Step 3: Check usage data ```bash cat ~/.hermes/profiles//skills/.usage.json | python3 -m json.tool | grep -E '"name"|"last_used_at"|"use_count"' ``` Skills with `use_count: 0` and no `last_used_at` are candidates for removal. ### Step 4: Verify sub-skills Some umbrella skills contain real sub-skills even if the parent is a placeholder. Check: ```bash find ~/.hermes/profiles//skills/ -name "SKILL.md" ``` If sub-directories contain `SKILL.md` files, the umbrella should be kept. ## Removing Bundled Placeholder Skills When the curator won't touch bundled skills and `hermes skills uninstall` only works for hub-installed skills, remove placeholder-only bundled skills at the filesystem level: ```bash # 1. Take a backup hermes curator backup # 2. Remove placeholder skills (verify each is DESCRIPTION.md only first) cd ~/.hermes/profiles//skills rm -rf apple smart-home social-media # etc. # 3. Verify remaining skills ls -1 | grep -v '^\.' ``` ### Pitfalls - **Don't remove umbrellas with real sub-skills.** Check for `SKILL.md` in subdirectories before removing the parent. - **Don't remove skills with `created_by: "agent"` provenance via filesystem.** Use `hermes curator archive` for those — it logs the action and makes recovery possible. - **The `.bundled_manifest` and `.usage.json` become stale** after filesystem removal. These are auto-regenerated caches — no manual cleanup needed. - **Future `hermes update` may re-seed bundled placeholders.** If they come back, they're still harmless (no SKILL.md = no prompt injection). - **The curator's `.curator_state` may point to the wrong profile's logs** if the profile was cloned. Check `last_report_path` in `.curator_state` — if it references another profile's log directory, the curator has never actually run against this profile. ## Support Files - `references/placeholder-skill-removal-example.md` — Session example: identifying and removing 9 placeholder skills from the open1 profile.