skillshare v0.20.27 Release Notes
TL;DR
update --allno longer deletes a skill when the audit blocks it — a blocked grouped update used to leave nothing on disk and an orphaned metadata entry.- Batch updates and the dashboard follow the installed branch — skills installed with
-b <branch>were being checked and updated against the default branch. - Windows drive-letter paths work as local sources —
D:\skills\my-skillinstalls again. - Dashboard shows Remote for Gitea, GitLab and SSH sources instead of Local.
- Agents can declare which targets they belong to — a
targets:list in an agent's frontmatter restricts it to the listed tools.
Blocked grouped updates keep the installed skill
When update --all updated several skills from one repository, it removed the existing skill directory before copying the new content in. If the security audit then blocked the update, its cleanup removed the new content too, so nothing was left on disk and the metadata entry pointed at a missing directory that later updates could not discover. update <name> never had this problem because it already staged new content in a temporary directory.
Grouped updates now use the same staging: the new content is copied to a temporary directory, audited there, and only swapped into place once the audit passes. A blocked update leaves the installed version and its metadata untouched. If a skill was already lost this way, reinstall it with:
skillshare update <name> --forceRefs: #271.
Installed branch is honoured everywhere
Skills installed with -b <branch> recorded the branch, and update <name> used it, but the grouped path behind update --all cloned the remote default branch instead. Skills whose subdirectory does not exist on the default branch were reported stale, and --prune moved them to trash. The dashboard's check and update handlers compared against the remote HEAD in the same way.
Batch updates and the dashboard now group skills by repository and branch and fetch from the installed branch. Refs: #268.
Windows drive-letter paths
skillshare install D:\skills\my-skill failed with unrecognized source format because only inputs starting with /, ~, ./ or ../ were treated as local paths. Drive-letter paths (D:\folder, C:/Users/...) and backslash-relative paths (.\skill) are now recognised, in the CLI and the dashboard install page. Refs: #269.
Remote badge for non-GitHub sources
The dashboard only recognised GitHub metadata types, so skills from Gitea, GitLab, self-hosted or SSH sources were labelled Local. Any non-local git source now shows Remote, matching skillshare list. Tracked repos and GitHub sources keep their badges. Refs: #270.
Per-agent targets frontmatter is honoured
Agent files have no shared schema across tools: Claude Code, OpenCode, Cursor and Copilot each read different frontmatter fields (tools casing, model naming, mode, permission). Skillshare copies agent files verbatim, so an agent written for one tool landed in every agent-capable target, where it was either misconfigured or ignored.
Skillshare already parsed a targets: list from agent frontmatter but never applied it during sync. It does now, in sync agents (global and project mode), the dashboard sync, doctor, and the target summary. Agents without the field still sync everywhere. Target aliases work (claude-code matches claude).
# ~/.config/skillshare/agents/reviewer.md
---
targets: [claude]
tools: Read, Write, Bash(git log)
model: sonnet
---
# ~/.config/skillshare/agents/reviewer-opencode.md
---
targets: [opencode]
mode: subagent
model: anthropic/claude-sonnet-4-5
permission: { read: allow, write: allow, bash: ask }
---Frontmatter is still passed through as-is; this release does not translate fields between tools. Refs: #267.
Changelog
- c7b4663 chore: release v0.20.27
- 99fc332 fix(install): recognise Windows drive-letter paths as local sources
- e780fbf fix(sync): honour agent frontmatter targets when syncing agents
- ec7f4e6 fix(ui): label non-GitHub git sources as Remote instead of Local
- efcc3e6 fix(update): honour installed branch in batch update and web UI check/update
- 4f46a08 fix(update): stage grouped updates so a blocked audit keeps the installed skill