Files

92 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

---
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/<profile>/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/<profile>/skills/ | grep -v '^\.'); do
if [ -f ~/.hermes/profiles/<profile>/skills/$s/SKILL.md ]; then
echo "REAL: $s"
else
echo "PLACEHOLDER: $s"
fi
done
```
### Step 3: Check usage data
```bash
cat ~/.hermes/profiles/<profile>/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/<profile>/skills/<skill-name> -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/<profile>/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.