Skip to content

Commit 0e577fb

Browse files
authored
docs(curator): document that pinning also blocks skill_manage writes (#17578)
Add a dedicated 'Pinning a skill' section that covers both gating layers — curator auto-transitions AND the agent's skill_manage tool — so users know what the flag actually protects against after PR #17562. Updates the one-line claim in 'How it runs' to cross-link the new section instead of only mentioning auto-transitions.
1 parent c61b2e0 commit 0e577fb

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

website/docs/user-guide/features/curator.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ A run has two phases:
2828
1. **Automatic transitions** (deterministic, no LLM). Skills unused for `stale_after_days` (30) become `stale`; skills unused for `archive_after_days` (90) are moved to `~/.hermes/skills/.archive/`.
2929
2. **LLM review** (single aux-model pass, `max_iterations=8`). The forked agent surveys the agent-created skills, can read any of them with `skill_view`, and decides per-skill whether to keep, patch (via `skill_manage`), consolidate overlapping ones, or archive via the terminal tool.
3030

31-
Pinned skills bypass all auto-transitions and the LLM is instructed not to touch them.
31+
Pinned skills are off-limits to both the curator's auto-transitions and the agent's own `skill_manage` tool. See [Pinning a skill](#pinning-a-skill) below.
3232

3333
## Configuration
3434

@@ -80,7 +80,27 @@ Everything else in `~/.hermes/skills/` is fair game for the curator. This includ
8080
- Skills you created manually with a hand-written `SKILL.md`.
8181
- Skills added via external skill directories you've pointed Hermes at.
8282

83-
If you want to protect a specific skill from ever being touched — for example a hand-authored skill you rely on — use `hermes curator pin <name>`. The pin is a hard guarantee enforced at the shared mutation helper; no code path that would archive, consolidate, or state-transition a skill can bypass it.
83+
If you want to protect a specific skill from ever being touched — for example a hand-authored skill you rely on — use `hermes curator pin <name>`. See the next section.
84+
85+
## Pinning a skill
86+
87+
Pinning is a hard fence against both automated and agent-driven changes. Once a skill is pinned:
88+
89+
- The **curator** skips it during auto-transitions (`active → stale → archived`), and its LLM review pass is instructed to leave it alone.
90+
- The **agent's `skill_manage` tool** refuses every write action on it. Calls to `edit`, `patch`, `delete`, `write_file`, and `remove_file` return a refusal that tells the model to ask the user to run `hermes curator unpin <name>`. This prevents the agent from silently rewriting a skill mid-conversation.
91+
92+
Pin and unpin with:
93+
94+
```bash
95+
hermes curator pin <skill>
96+
hermes curator unpin <skill>
97+
```
98+
99+
The flag is stored as `"pinned": true` on the skill's entry in `~/.hermes/skills/.usage.json`, so it survives across sessions.
100+
101+
Only **agent-created** skills can be pinned — bundled and hub-installed skills are never subject to curator mutation in the first place, and `hermes curator pin` will refuse with an explanatory message if you try.
102+
103+
If you need to update a pinned skill yourself, edit `~/.hermes/skills/<name>/SKILL.md` directly with your editor. The pin only guards the agent's tool path, not your own filesystem access.
84104

85105
## Usage telemetry
86106

0 commit comments

Comments
 (0)