Skip to content

skill install copies companion directories verbatim, with no exclusion mechanism #103

Closed

Description

@ilkemerol

A skill directory often carries assets that belong in the registry but not in a platform's skill directory — evaluation corpora, fixtures, development scratch. skern installs the whole tree.

Reproduced on skern 0.3.1: a template with eval/s1.md alongside SKILL.md installs as:

.claude/skills/demo.skill/SKILL.md
.claude/skills/demo.skill/eval/s1.md

Everything under the skill directory is loaded or at least indexed by the host agent, so a large eval corpus is dead weight in the agent's context budget on every project.

Requested behavior: an exclusion mechanism at install time — a repeatable --exclude <glob> flag, a convention (a leading-dot or _-prefixed directory), or an install.exclude list in the skill's frontmatter. Any of the three solves it; the frontmatter form is the most portable since the skill author knows which of its own files are runtime assets.

Definition of Done

  • Named directories/globs under a skill can be excluded from skill install while staying in the registry
  • skill diff accounts for intentionally-excluded paths rather than reporting them as drift

Activity

  1. devrimcavusoglu commented on Aug 19, 2026

    @devrimcavusoglu
    Owner

    Implemented in #109 as the frontmatter form (install.exclude), stacked on #106 because the block has to survive registry writes (#100).

    One note on DoD item 2: skern skill diff compares manifests (frontmatter fields + body), never file trees, so excluded paths cannot show up as drift today — there was nothing to fix there. TestSkillInstall_HonorsInstallExclude asserts diff reports identical after an excluding install, and the docs say so. If a file-tree diff is ever added it should honor install.exclude; that would be a new feature, not part of this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions