Skip to content

Dynamic skill loading: install/uninstall skills on demand for efficient context use #52

@devrimcavusoglu

Description

@devrimcavusoglu

Context

The intended model for skern is that agents dynamically manage which skills are loaded on a platform at any given time — installing skills when needed and uninstalling them when no longer relevant. This keeps the active skill set small and avoids bloating the agent's context window with unused instructions.

Current skill count thresholds (20 project / 50 user) already exist as warnings, but there is no mechanism for agents to actively manage the set of loaded skills against these limits.

Idea

Enable agents to maintain an optimal working set of skills per platform by:

  1. Awareness of capacity — Agent can query how many skills are installed vs the threshold, and decide whether to uninstall unused skills before installing new ones
  2. Batch install/uninstall — Support installing or uninstalling multiple skills in a single invocation (e.g., skern skill install skill-a skill-b --platform claude-code or skern skill uninstall skill-x skill-y --platform all)
  3. Least-recently-used eviction — Optionally track skill usage and suggest or auto-evict stale skills when approaching the limit
  4. Context budget — A configurable limit on how many skills can be installed simultaneously, enforced at install time

Open Questions — Decisions Needed

  1. Agent autonomy level — Should skern enforce limits (refuse to install when at capacity) or only advise (warn and let the agent decide)?
  2. Usage tracking — Is tracking "last used" feasible and desirable? Where does this metadata live?
  3. Batch operations vs sync — Batch install/uninstall is a lighter primitive than full sync (Skill sync: bulk reconcile registry with platforms #48). Should batch be the building block, with sync built on top later?
  4. Per-platform limits — Should thresholds be per-platform or global across all platforms?

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-discussionRequires design discussion before implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions