github runkids/skillshare v0.16.0

latest releases: v0.19.5, v0.19.4, v0.19.3...
2 months ago

📟 skillshare v0.16.0 Release Notes

Release date: 2026-02-25

TL;DR

v0.16.0 is a major release focused on performance, interactive TUI, and developer experience:

  1. Per-skill tree hash checkingcheck is 10-100x faster, downloads ~200 KB instead of full clones (#46)
  2. Sparse checkout installs — monorepo subdirectory installs download only what's needed (#46)
  3. Full bubbletea TUI migrationlist, log, search, init now have interactive TUIs with fuzzy search
  4. Skill registry separation — installed skill metadata moves to registry.yaml (silent auto-migration)
  5. Project-mode skills.skillshare/skills/ ships 5 built-in project skills for contributors
  6. CLI visual overhaul — consistent hierarchical output layout across all commands
  7. Web UI: TanStack Query + virtual scrolling — faster, smoother dashboard experience

What's New

1) Per-Skill Tree Hash Comparison (check) (#46)

Previously, check compared full commit hashes, which couldn't detect when only specific skills within a monorepo changed. Now it uses blobless git fetches (~150-200 KB per repo) and compares individual skill directory tree hashes.

# Check all — now parallel with 8 workers
skillshare check

# Check specific skills — tree hash precision
skillshare check my-skill
skillshare check team-repo//frontend/react

# Progress bar shows skill count, not URL count
# ✓ Checking 46 skills across 12 repos...
#   ████████████████████████████████████████ 46/46

What changes:

  • Repos with no changes to your installed skills are correctly reported as "up to date"
  • Much faster: downloads tree+commit objects only, not blobs
  • Parallel: up to 8 concurrent workers with deduped ls-remote calls
  • Clean results are summarized (e.g., "3 up to date, 2 local") instead of listed individually

2) Sparse Checkout for Subdir Installs (#46)

Installing skills from monorepos now uses git sparse-checkout (requires git 2.25+) to clone only the target subdirectory:

# Before: downloaded entire repo, then extracted subdir
# After: downloads only the subdir tree (~95% less data for large repos)
skillshare install github.com/org/monorepo/skills/react

Falls back to full clone on older git versions. Also works with update for tracked subdir repos.

3) Interactive TUI for list, log, search, init

All interactive prompts have been migrated from survey to bubbletea, delivering responsive, keyboard-navigable interfaces:

skillshare list — full-screen TUI with:

  • Fuzzy search and filter
  • Sort by name, date, type
  • Detail panel with word-wrapped description and license
  • Inline actions: press A to audit, U to update, D to uninstall

skillshare log — operation log browser with:

  • Fuzzy filter across all log fields
  • Detail panel for each operation entry

skillshare search — multi-select checkbox interface for GitHub search results

skillshare init — target selection with bubbletea checklist and descriptions

All TUIs support --no-tui to fall back to plain text output for scripts and CI.

4) Skill Registry Separation

Installed skill metadata (tracked repos, groups, installation sources) has been moved from config.yaml to a new registry.yaml file. This cleanly separates:

  • config.yaml — user settings (targets, audit thresholds, custom targets, hubs)
  • registry.yaml — skill inventory (installed skills, tracked repos, groups)

Silent auto-migration: On first v0.16.0 run, any skills[] entries in config.yaml are automatically moved to registry.yaml. No user action required. The migration runs once and is transparent.

5) Project-Mode Skills

The skillshare repository itself now ships 5 project-mode skills in .skillshare/skills/:

Skill Purpose
cli-e2e-test Run isolated E2E tests in devcontainer from ai_docs/tests/ runbooks
codebase-audit Cross-validate CLI flags, docs, tests, and targets for consistency
implement-feature TDD workflow: spec → tests → implement → E2E runbook generation
update-docs Sync website docs with recent code changes
changelog Generate CHANGELOG.md entries from commits

Contributors can install them with:

cd skillshare
skillshare sync -p

A .skillignore file prevents these from being discovered during external install commands.

6) CLI Visual Language Overhaul

All single-item operations now use a consistent hierarchical layout:

Source: github.com/org/skills
Items:  1 skill
Skill:  react-best-practices
Source: github.com/org/skills

✓ Installing...
✓ Installed: react-best-practices (1.2s)

Changes:

  • Structured labels (Source:, Items:, Skill:) replace ad-hoc formatting
  • Spinners auto-indent within hierarchy and disappear on completion
  • Audit findings section only appears when findings exist (no empty sections)
  • Symlink compat hint moved from sync to doctor (universal notice, not per-target)

7) Web UI: TanStack Query + Virtual Scrolling

The React dashboard migrates from manual fetch logic to @tanstack/react-query:

  • Automatic caching and background refetching
  • Query deduplication (no duplicate API calls)
  • React Query DevTools for debugging

Skills page virtualization: Large skill collections (1000+ skills) now render efficiently with virtual scrolling instead of DOM-rendering every item.

Restore validation: The restore modal now previews conflicts, backup size, and symlink detection before committing. New endpoint: POST /api/restore/validate.

8) Batch Update Progress Bar

update --all now shows a progress bar with the current skill name:

Updating 12 skills...
  ████████████░░░░░░░░░░░░░░░░░░░░░░░░░ 8/12  vue-patterns

Git clone progress is also wired through for tracked repos.

Breaking Changes

  • openclaude target removed — replaced by openclaw. Update your config if you used openclaude.
  • registry.yaml introduced — skill metadata auto-migrated from config.yaml. If you have scripts parsing config.yaml for skill lists, update them to read registry.yaml instead.

Bug Fixes

  • Fixed infinite loop in directory picker for repos with many subdirectories
  • Fixed leading slash in subdir paths breaking tree hash lookup in check
  • Fixed update --all in project mode skipping nested skills
  • Fixed path duplication in batch update destinations
  • Fixed file:// URL subdir extraction via // separator
  • Fixed git clone progress not shown during batch updates
  • Fixed backup restore incorrectly following symlinks instead of detecting them

Changelog

  • 0c28f0c chore(schemas): move skills to registry.schema.json
  • 173803e chore(targets): remove deprecated openclaude target
  • c5d3211 dev: overhaul devcontainer experience with persistence and enhanced tooling
  • c81e7d7 docs(backup): fix cleanup size cap from 100 MB to 500 MB
  • 04b3808 docs(e2e): improve cli-e2e-test skill and add registry runbook
  • 6958cfc docs(faq): add Q&A for "unknown target" warning
  • aa10c6e feat(api): add POST /api/restore/validate endpoint for pre-restore checks
  • 2947617 feat(check): add ParallelCheckRepos with bounded semaphore
  • 846bedb feat(check): add ParallelCheckURLs for deduped ls-remote
  • fc2df38 feat(check): match single-skill output style with update command
  • e5c1f64 feat(check): parallelize runCheckFiltered with batch pattern
  • 117b319 feat(check): per-skill tree hash comparison for precise update detection
  • 3fa49a8 feat(check): summarize up_to_date/local results instead of listing each
  • a6431e9 feat(check): wire parallel repos + deduped URL checks into runCheck
  • e779ed8 feat(config): add Registry struct with Load/Save for registry.yaml
  • b7bb8af feat(config): add silent auto-migration from config.yaml skills[] to registry.yaml
  • 1fb5219 feat(list): add interactive TUI with search, filter, sort, and detail panel
  • cff3fc4 feat(list): add skill actions (audit/update/uninstall) to TUI
  • cfe709f feat(list-tui): expand detail panel with word-wrapped description and license
  • 76ef4ff feat(log): add interactive TUI with fuzzy filter and detail panel
  • c9e10fa feat(log): record update command options in oplog and add dedicated formatters
  • a5ba6e4 feat(ssenv): add ssrm shortcut for force-deleting environments
  • 6df9ddd feat(ui): add shared SeverityColor/Colorize and colorize audit severity counts
  • 0af62f5 feat(ui): add validateRestore API type and function
  • a50639b feat(ui): enhance restore modal with validation preview and conflict warnings
  • 29e97fc feat(ui): migrate to TanStack Query and virtualize SkillsPage
  • 4c05791 feat: add progress bar to batch update and show current skill name
  • 2ee8033 feat: migrate contributor skills to .skillshare/skills/ for project-mode sharing
  • b014f8c feat: optimize large-repo install and update flows
  • 792d236 feat: optimize tracked subdir installs and devcontainer isolation
  • e873a73 fix(backup): use os.Lstat in ValidateRestore to detect symlink targets
  • 662dca5 fix(check): handle IsDirty error, improve test coverage
  • ce8608a fix(check): normalize leading slash in subdir for tree hash comparison
  • 82587e9 fix(check): show skill count instead of URL count in progress bar
  • ed709ef fix(ci): update redteam-signal to match handler split
  • cfa6d40 fix(docs,test): add replit badge and project-mode integration tests
  • 7287e6b fix(install): resolve infinite loop in directory picker for large repos
  • aeddeb9 fix(install): show [dry-run] message for single-skill git install paths
  • b4c6c39 fix(install): support subdir extraction for file:// URLs via // separator
  • 1926725 fix(ssenv): use PROMPT_COMMAND for PS1 and create .claude/.codex dirs
  • a05d344 fix(sync): match targets by shared path and track local dirs in prune
  • 3012061 fix(update): use caller-provided dest paths in batch update to prevent path duplication
  • bcc88ba fix(update): wire git clone progress into batch update progress bar
  • c60d101 fix: clarify tracked audit block messaging
  • 34bfa0c fix: enable recursive skill discovery for project-mode update --all
  • 45890e7 refactor(check): extract collectCheckItems for RepoURL grouping
  • 74e232c refactor(config): reconcile writes to Registry instead of Config
  • 4152282 refactor(config): remove Skills field from Config and ProjectConfig structs
  • 53b4ba4 refactor(doctor): replace per-target mode hint with universal symlink compat notice
  • 7fb201d refactor(init): replace survey with bubbletea checklist and inline prompts
  • 5b4f1c3 refactor(install): extract audit rendering to install_audit_render.go
  • 6e15e50 refactor(install): extract install handlers to install_handlers.go
  • 0f7d7d8 refactor(install): extract interactive prompts to install_prompt.go
  • f8205a2 refactor(install): prefer sparse checkout over GitHub API for subdir install
  • 0f24230 refactor(install): unify duplicated logic between global and project modes
  • 37a5e68 refactor(install): unify duplicated parseInstallArgs between global and project modes
  • 3bfad95 refactor(sync): remove symlink compat hint from sync output
  • f7bfb56 refactor(tui): replace survey MultiSelect with bubbletea skill select TUI
  • 9743fa0 refactor(tui): replace survey Select with bubbletea multi-select in search
  • 31bafce refactor(ui): add SeverityColorID table for lipgloss, unify log TUI colors
  • 3892578 refactor(ui): overhaul CLI visual language and unify operation paths
  • a0ebbde refactor(ui): use raw bytes in backup API and extract shared formatSize
  • 30d5baf refactor(update): extract audit rendering to update_audit_render.go
  • 97128a2 refactor(update): extract handlers to update_handlers.go
  • 5b5475d refactor(update): extract target resolution to update_resolve.go
  • 553c0a8 refactor(update): introduce updateContext and unify quick handlers
  • fadacb8 refactor(update): replace third batch loop in updateAllProjectSkills with executeBatchUpdate
  • c6d4407 refactor(update): simplify updateAllProjectSkills to accept *updateContext
  • e6ca4f1 refactor(update): unify batch header UI with check command style
  • 0f1d9eb refactor(update): unify resolvedMatch and projectTarget into updateTarget
  • 9fa4828 refactor(update): unify verbose handlers, remove project-mode duplicates
  • f1b5b0b refactor: polish install facade delegation comments
  • 3ae2a16 refactor: split install implementation into focused files
  • 2cb6cc3 refactor: update all callers to pass Registry to reconcile functions
  • 8e51423 style(update): fix gofmt formatting in update_resolve.go
  • 81315cd style: fix gofmt alignment in checklist_tui.go
  • c321db5 test(audit): add E2E runbook and online test for batch audit output
  • e064b45 test(integration): check registry.yaml instead of config.yaml for installed skills
  • 49dd344 test(integration): read registry.yaml instead of config.yaml for skill assertions
  • fd9bee5 test(restore): add 6 integration tests for restore flows

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.