github runkids/skillshare v0.15.5

latest releases: v0.19.2, v0.19.1, v0.19.0...
one month ago

📂 skillshare v0.15.5 Release Notes

Release date: 2026-02-23

TL;DR

v0.15.5 focuses on onboarding friction reduction, CLI output polish, and a critical bug fix:

  1. init --mode flag — choose merge / copy / symlink at init time
  2. uninstall --all — remove all skills at once
  3. Improved CLI output — compact grouped audit findings, structured sections, lighter headers
  4. Manifest-based orphan cleanup — fixes orphan directory cleanup after uninstall (#45)
  5. ssenv devcontainer workflow — isolated testing environments

What's New

1) init --mode flag

Previously, changing sync mode required a separate target --mode command after init. Now you can set it at init time:

# Set copy mode for all targets at init (non-interactive)
skillshare init --mode copy

# Short flag
skillshare init -m copy

# Interactive prompt (TTY detected)
skillshare init
# → Sync mode preference
#   [1] merge   (per-skill symlinks, preserves local skills)
#   [2] copy    (real files, compatibility-first)
#   [3] symlink (entire directory linked)
#   Enter choice [1]:

# Project mode
skillshare init -p -m copy

# Discover new targets with copy mode (existing targets unchanged)
skillshare init --discover -m copy

The interactive prompt only appears when a TTY is detected, so CI pipelines are not affected.

2) Per-target sync mode hint

After sync and doctor, if you have targets with known symlink compatibility issues (Cursor, Antigravity, Copilot, OpenCode) still using merge or symlink mode, a subtle hint suggests switching:

Hint: tune sync mode per target when needed
  skillshare target cursor --mode copy && skillshare sync

The hint is suppressed when only symlink-compatible targets (Claude, Codex, etc.) are configured, keeping output clean for simple setups.

3) Devcontainer: ssenv isolated environments

New ssenv tool for creating isolated skillshare environments inside the dev container. Each environment gets its own XDG directories (HOME, XDG_CONFIG_HOME, XDG_DATA_HOME, etc.), allowing parallel testing without interference.

# Create and switch to an isolated environment
ssnew demo
ssuse demo

# Run commands in isolation (separate config, skills, targets)
ss init
ss install github.com/someone/skills
ss sync
ss status

# Switch back to original environment
ssback

# List / delete environments
ssls
ssenv delete demo --force

Shortcuts: ssnew, ssuse, ssback, ssls, sshelp are available in interactive shells for quick access.

Use cases:

  • Test install/sync/audit flows without touching your working config
  • Reproduce user-reported issues in a clean environment
  • Run parallel test scenarios (e.g. one env per sync mode)

4) uninstall --all

Remove every skill from source in one command:

skillshare uninstall --all                 # Interactive confirmation
skillshare uninstall --all --force         # Skip confirmation
skillshare uninstall --all -p              # Project mode
skillshare uninstall --all -n              # Preview (dry-run)

Cannot be combined with skill names or --group.

5) Improved CLI output

  • Compact audit findings — grouped by severity + message with × N dedup and location list; use --audit-verbose on install for full detail
  • Structured sections — consistent section labels throughout (── Audit Findings ──, ── Next Steps ──, etc.)
  • Lighter update headers — single-item updates use flowing StepStart style instead of bordered box

6) Manifest-based orphan cleanup in merge mode (fixes #45)

After uninstalling skills, sync previously left orphan real directories (non-symlinks) in targets with "unknown directory" warnings. This happened because PruneOrphanLinks only identified managed directories by naming patterns (__ nested separator, _ tracked repo prefix) — simple names like pdf or code-reviewer were treated as user-created.

Now, sync in merge mode writes .skillshare-manifest.json (the same file already used by copy mode) to track all managed skills. On prune:

  • In manifest → safely removed (skillshare-managed)
  • Not in manifest → preserved with warning (user-created)

This also fixes a related edge case: changing exclude patterns now correctly prunes previously-managed real directories, not just symlinks.

Backward compatible: targets without a manifest fall back to the existing naming-pattern heuristic.

7) Hardened devcontainer entrypoints

  • ensure-skillshare-linux-binary.sh now validates binary architecture and falls back gracefully
  • setup.sh improvements for robustness during container rebuild
  • start-dev.sh hardened for edge cases in service startup

Changelog

  • 4c628e9 Add devcontainer ssenv workflow and AI test guide
  • 7ab4c62 Harden devcontainer skillshare entrypoints
  • 42c383d docs(changelog): add uninstall --all, compact audit display, structured sections
  • 7dc7d9a docs(changelog): add v0.15.5 entry for init --mode and per-target hint
  • 0694fbd docs(guides): add skill design guide with determinism and CLI wrapper patterns
  • 06c14b6 feat(init): add --mode flag and per-target compatibility hints
  • 7de15b0 feat(install): add SectionLabel and structured audit-blocked output for single-item handlers
  • a0c859a feat(install): compress batch output for --audit-verbose and dry-run skill list
  • 25f8617 feat(ui): add Audit Findings section label for single-skill install/update
  • a15f87f feat(ui): add SectionLabel("Next Steps") to all remaining single-item handlers
  • 537e293 feat(ui): add SectionLabel, fix StepFail ANSI passthrough, skip short elapsed
  • 93aa257 feat(uninstall): add --all flag to remove all skills from source
  • 95ad577 feat(update): add section labels and improve project batch output
  • 81a43a0 fix(ux): keep filter text after selection in MultiSelect prompts
  • 3721d69 fix: prune orphaned real directories in merge mode via manifest (#45)
  • 7e1b29a refactor(devcontainer): dedupe ssenv shortcut setup and unify mode prompt
  • 70502ec refactor(ui): compact audit findings display with grouping and risk score
  • b91a6fc refactor(ui): replace HeaderBox with lightweight headers in update command
  • d150f74 refactor(ui): use SectionLabel unconditionally in batch result display

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.