Skip to content

feat(curator): prune unused built-in skills + track usage for all skills#36701

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-5d49b13c
Jun 1, 2026
Merged

feat(curator): prune unused built-in skills + track usage for all skills#36701
teknium1 merged 1 commit into
mainfrom
hermes/hermes-5d49b13c

Conversation

@teknium1

@teknium1 teknium1 commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary

The skill curator can now prune unused built-in skills (not just agent-created ones), and usage telemetry is tracked for every skill regardless of origin.

Changes

  • Built-in pruning (curator.prune_builtins, default on): bundled built-ins become curation candidates and are archived after archive_after_days of non-use. A .curator_suppressed list makes the prune durable — tools/skills_sync skips re-seeding suppressed built-ins on hermes update. Restoring a built-in clears its suppression. Hub-installed skills are never pruned.
  • No mass-prune on upgrade: the curator seeds each built-in's inactivity clock the first time it sees it, so the window starts at upgrade time, not epoch.
  • Usage tracking decoupled from curation: telemetry (view/use/patch) now records for all skills (built-in, hub, agent); only lifecycle mutators (set_state/set_pinned/mark_agent_created/archive) stay curation-gated. New usage_report() + provenance() expose all skills with an agent/bundled/hub tag.
  • curator_backup doc note: .curator_suppressed is captured in snapshots (already covered by the existing top-level include).

Validation

Before After
Unused built-in skill never archived; resurrected on update archived after 90d idle; prune survives update
Built-in on first curator pass n/a (excluded) clock seeded, not archived
Usage of built-in / hub skills not tracked tracked (observability)
Hub skill pruning never never (unchanged)
prune_builtins: false n/a built-ins fully protected

275 targeted tests pass (test_curator, test_skill_usage, test_skills_sync, test_curator_backup, test_curator_activity, test_config). E2E-verified through the real config layer: default-on prune lifecycle, default-off invariant, and track-all-provenance.

Infographic

curator-prune-builtins-track-all-skills

…or all skills

Two related changes to the skill curator:

1. Built-in pruning. New curator.prune_builtins config (default on) lets the
   curator archive bundled built-in skills after the inactivity period, not
   just agent-created ones. A .curator_suppressed list tells the update-time
   re-seeder (tools/skills_sync) to leave pruned built-ins archived, so the
   prune is durable across `hermes update`. Built-ins are seeded with a
   baseline record on first sight, so the inactivity clock starts at upgrade
   time -- no mass-prune on the first run. Hub-installed skills are never
   pruned regardless of the flag. Restoring a built-in clears its suppression.

2. Usage tracking for all skills. Telemetry (view/use/patch) was wrongly gated
   behind curation-eligibility, so built-ins were tracked only when prunable
   and hub skills never. Telemetry is observability and is now decoupled from
   curation: every skill accrues usage counts regardless of provenance, while
   lifecycle mutators (set_state/set_pinned/mark_agent_created) stay
   curation-gated. New usage_report() + provenance() expose all skills with an
   agent/bundled/hub tag.
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-5d49b13c vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9577 on HEAD, 9577 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 4962 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@teknium1 teknium1 merged commit 70e1571 into main Jun 1, 2026
23 checks passed
@teknium1 teknium1 deleted the hermes/hermes-5d49b13c branch June 1, 2026 09:07
@alt-glitch alt-glitch added type/feature New feature or request tool/skills Skills system (list, view, manage) comp/agent Core agent loop, run_agent.py, prompt builder P3 Low — cosmetic, nice to have labels Jun 1, 2026
JoeKowal pushed a commit to JoeKowal/hermes-agent that referenced this pull request Jun 4, 2026
…or all skills (NousResearch#36701)

Two related changes to the skill curator:

1. Built-in pruning. New curator.prune_builtins config (default on) lets the
   curator archive bundled built-in skills after the inactivity period, not
   just agent-created ones. A .curator_suppressed list tells the update-time
   re-seeder (tools/skills_sync) to leave pruned built-ins archived, so the
   prune is durable across `hermes update`. Built-ins are seeded with a
   baseline record on first sight, so the inactivity clock starts at upgrade
   time -- no mass-prune on the first run. Hub-installed skills are never
   pruned regardless of the flag. Restoring a built-in clears its suppression.

2. Usage tracking for all skills. Telemetry (view/use/patch) was wrongly gated
   behind curation-eligibility, so built-ins were tracked only when prunable
   and hub skills never. Telemetry is observability and is now decoupled from
   curation: every skill accrues usage counts regardless of provenance, while
   lifecycle mutators (set_state/set_pinned/mark_agent_created) stay
   curation-gated. New usage_report() + provenance() expose all skills with an
   agent/bundled/hub tag.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent loop, run_agent.py, prompt builder P3 Low — cosmetic, nice to have tool/skills Skills system (list, view, manage) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants