github runkids/skillshare v0.19.15

4 hours ago

skillshare v0.19.15 Release Notes

Release date: 2026-05-20

TL;DR

  1. Custom project source directories — point skills, agents, and extras at any directory in your repo via the new sources map in .skillshare/config.yaml
  2. Safer project commands — destructive commands now refuse to operate when the project config is malformed instead of silently using the default path
  3. Sync validates source/target overlap — configs where a source aliases or nests with a target path are rejected up front, preventing sync --force from deleting the source

Custom Project Source Directories

Project mode previously hardcoded .skillshare/skills/, .skillshare/agents/, and .skillshare/extras/ as source directories. v0.19.15 adds an optional sources map so you can co-locate skill content with existing project documentation:

# .skillshare/config.yaml
sources:
  skills: ./docs/skills
  agents: ./docs/agents
  extras: ./docs/extras
targets:
  - claude

Each key is optional — omit any key to keep the default .skillshare/<type>/ path. Paths resolve relative to the project root; absolute paths and ~ work too.

A few things stay put regardless of sources:

  • skillshare init -p always seeds the default .skillshare/skills/ and .skillshare/agents/ directories — sources takes effect after you edit config.yaml
  • Trash, backups, and operation logs live under .skillshare/ no matter what

Fail-Closed on Malformed Project Config

uninstall, new, enable/disable, and check in project mode previously fell back to .skillshare/skills when config.yaml failed to parse. With the new sources feature, that silent fallback could touch the wrong directory if you have a custom source configured.

These commands now return failed to load project config and abort. Fix the YAML and re-run. The most common issue is using a map where a list is expected:

# WRONG — targets must be a list
targets: {}

# RIGHT
targets: []

If you previously had a malformed config that "worked" by accident, you'll see the error after upgrading.

Sync Rejects Source/Target Path Overlap

skillshare sync -p now errors when sources.skills or sources.agents resolves to the same directory as a target's path (or one contains the other). Without this guard, sync --force would treat the source as a target directory and replace it.

For example, this config is rejected:

sources:
  skills: .claude/skills    # same path as claude target
targets:
  - claude

The error message names the offending target and paths. Choose a source path that doesn't alias any target — for instance, ./docs/skills is always safe.

Changelog

  • 9aee526 chore: release v0.19.15
  • 1809fd4 docs(changelog): add v0.19.15 entry for custom sources feature
  • 68d5ead feat: support custom project source directories via sources map
  • 8731554 fix: fail closed on config load error in agents check
  • 49abc19 fix: fail closed on config load error in destructive uninstall commands
  • 4f908a1 fix: fail closed on config load error in enable/disable/new commands
  • 14402dc fix: handle sources.skills: . producing invalid ./ gitignore pattern
  • 9a30a90 fix: handle sources.skills: .skillshare producing invalid ./ gitignore pattern
  • bb3745b fix: reject source/target path overlap and fail closed in check
  • 5b7ca8b fix: trash before gitignore cleanup and skip gitignore for external sources
  • 0c010c5 fix: wire custom sources into server reload and gitignore paths
  • 38317a1 proposal: custom project source directories

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.