github runkids/skillshare v0.30.8

42 minutes ago

skillshare v0.30.8 Release Notes

TL;DR

  1. MCP clients can browse skill folders. mcp serve adds resources/directory/read and lists each SKILL.md in resources/list.
  2. Tracked repositories this machine has not cloned keep their records, so an install and push on that machine no longer remove them everywhere.
  3. Fields under metadata no longer replace a skill's own name, description or tags in search, audit and the hub index.
  4. The dashboard Doctor page names the check that is still running instead of stopping at an unlabeled placeholder.
  5. The desktop app can start the dashboard in your exact theme, including Dark + Clean and Playful dark.

MCP: browse skill folders

skillshare mcp serve now implements the optional directory part of the MCP Skills extension, and passes all 45 checks of the official conformance suite for it. (#895, #905)

  • The server advertises directoryRead: true. resources/directory/read with a URI such as skill://_team/tools/pdf lists that folder's direct entries. Empty folders are listed with the MIME type inode/directory, and a file or an unknown folder returns -32602.
  • resources/list lists each served SKILL.md with the name and description from its frontmatter.
  • Both lists are sorted by URI, return up to 100 entries per page and continue with nextCursor, under the same selection and refresh rules as skills/list.
{"jsonrpc": "2.0", "id": 1, "method": "resources/directory/read", "params": {"uri": "skill://_team/tools/pdf"}}

Frontmatter returned by the server now follows YAML 1.2 rules, the way clients read the file themselves. updated: 2026-11-14 stays the text "2026-11-14" instead of becoming "2026-11-14T00:00:00Z", and 012 is 12 instead of octal 10. If a client compares these values, expect them to change. A skill with such a date under metadata is no longer left out of the Executor index at /.well-known/agent-skills/.

Tracked repositories across machines

pull brings tracked repository records but not their checkouts, which are git-ignored. On a machine without the checkout, the next install dropped the record and its audit acceptances, and the next push removed the repository on every machine. Global reconcile now keeps those records. (#823, #880)

skillshare install -g            # clone the missing checkouts
skillshare uninstall _team -g    # or drop the record instead
  • Dropping a record without a checkout removes only the record and its audit acceptances. Nothing goes to trash, so trash restore cannot undo it. uninstall --json lists such names under record_only.
  • In global mode, unlink also forgets the record and acceptances kept for that link name.
  • status, check, update and doctor suggest both options. Project mode suggests install -p as before.
  • In the dashboard, such a repository shows No checkout on this machine, and Uninstall removes only its record.

Uninstalling a tracked repository also used to remove repositories installed into its group. With _team checked out and team/_b (installed with --into team) not cloned on this machine, uninstall _team -g removed team/_b's record and acceptances, and the next push lost it on every machine. It now removes only _team. (#898, #900)

Skill frontmatter: metadata stays separate

Some readers scanned SKILL.md line by line and took a name, description or tags written under metadata: as the skill's own, so a nested value could appear in search results, audit findings or the hub index. They now read only top-level fields, and custom data under metadata is kept as it is. (#894, #901)

hub index and hub draft now read tags the same way. Both accept a comma-separated value and a YAML list, and both ignore tags under metadata. (#909)

tags: [git, workflow]     # same as: tags: git, workflow
metadata:
  tags: [internal]        # custom data, not hub tags

Dashboard: Doctor and theme

The Doctor page stopped at an unlabeled placeholder while a slow check ran, most often the plugin check that asks each agent's CLI what is installed, and the checks after it waited. The plugin check, the skill source scan and the Git status check now show as a row with their name and Checking while the later checks finish, and the result replaces the row. GET /api/doctor/stream sends these as pending rows. CLI output is unchanged. (#870, #889)

The desktop app passed its theme in one ?theme= value, which cannot say Dark + Clean or Playful dark. On Linux, where the embedded page's storage is not kept between launches, the dashboard started in another theme and reported it back as if you had picked it. The dashboard now accepts ?mode=dark|light and ?style=clean|playful, which win over ?theme=, and tells the embedding app when a page starts. This needs the matching desktop app update. (runkids/skillshare-app#128)

Contributors

@salmonumbrella @ndeybach

Don't miss a new skillshare release

NewReleases is sending notifications on new releases.