From kde-plasmoid-dev
Use when the user wants to build a distributable `.plasmoid` archive of a KDE Plasma 6 widget for upload to store.kde.org / opendesktop.org. Triggers on phrases like "build a plasmoid file", "package this for the kde store", "create the .plasmoid", "make a release archive for opendesktop", "upload to kde-look". Bumps the version in `package/metadata.json`, zips the `package/` contents into a versioned `.plasmoid` file, and prints the upload checklist for the store product page.
How this skill is triggered — by the user, by Claude, or both
Slash command
/kde-plasmoid-dev:build-plasmoid-fileThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Plasma widgets are distributed on **store.kde.org** / **opendesktop.org** as a single archive named `<id>-<version>.plasmoid`. The `.plasmoid` file is just a zip of the contents of `package/` (no top-level wrapper directory). KDE's "Get New Plasma Widgets" pulls the file attached to the product's *Files* section — the GitHub repo is irrelevant to GHNS users.
.plasmoid File for DistributionPlasma widgets are distributed on store.kde.org / opendesktop.org as a single archive named <id>-<version>.plasmoid. The .plasmoid file is just a zip of the contents of package/ (no top-level wrapper directory). KDE's "Get New Plasma Widgets" pulls the file attached to the product's Files section — the GitHub repo is irrelevant to GHNS users.
The repo follows the standard KDE plasmoid layout:
<repo>/
package/
metadata.json ← KPlugin.Version lives here
contents/
ui/, code/, config/
install.sh ← used for local install (kpackagetool6)
If the repo doesn't have package/metadata.json, stop and tell the user — this isn't a Plasma 6 plasmoid in the standard layout.
package/metadata.json → read KPlugin.Name, KPlugin.Id, KPlugin.Version.git status --short and git log -1 --oneline to confirm the working tree is clean (or warn the user if not).Ask the user only if unclear. Default rules:
If the user gave an explicit version, use that verbatim. Otherwise propose one based on the recent commits (git log <last-tag>..HEAD --oneline if a tag exists) and confirm.
Edit package/metadata.json — change KPlugin.Version to the new value. Don't touch other fields.
The .plasmoid is a zip of package/'s contents (the metadata.json must be at the archive root, not inside a package/ directory). Use a (cd package && zip ...) pattern:
cd <repo-root>
ID=$(jq -r '.KPlugin.Id' package/metadata.json)
VER=$(jq -r '.KPlugin.Version' package/metadata.json)
OUT="${ID}-${VER}.plasmoid"
rm -f "$OUT"
( cd package && zip -r "../$OUT" . -x '*.bak' '*~' '.DS_Store' )
ls -lh "$OUT"
Verify the archive:
unzip -l "$OUT" | head -20 # metadata.json should be at root, not inside package/
If metadata.json shows up as package/metadata.json in the listing, the archive is wrong and KDE won't accept it.
If the working tree was clean before the bump, commit the metadata change:
git add package/metadata.json
git commit -m "Bump version to ${VER}"
Don't push automatically — let the user decide whether to push, tag, sync to OpenCode, etc. Just mention that the commit was made.
Don't commit the .plasmoid archive itself — it's a build artifact. Add it to .gitignore if not already excluded.
After the file is built, surface this to the user (don't bury it in tool output):
Built
<ID>-<VER>.plasmoid— ready to upload.On the product page at opendesktop.org / store.kde.org:
- Open Files → upload
<ID>-<VER>.plasmoid- Update the product version to
<VER>- Add a Changelog entry summarising what's new
- Save / publish
Existing GHNS users will see "Update available" the next time they open Add Widgets → Get New Widgets.
If you have a sense of what's new (from the recent commits), draft a 2–4 line changelog the user can paste in.
zip -r foo.plasmoid package/, the archive contains package/metadata.json and KDE rejects it. Always cd package && zip -r ../foo.plasmoid ..jq: fall back to grep -oP '"Version":\s*"\K[^"]+' package/metadata.json if jq isn't installed.KPlugin.Id (e.g. com.danielrosehill.hebrewdate) rather than the human name. Some users prefer a simpler name — ask if unsure, but the Id-based name is the safe default.0.x versions; respect that — don't force semver-major.install.sh / kpackagetool6 --upgrade, not a .plasmoid build.package/metadata.json) — stop and say so.npx claudepluginhub danielrosehill/claude-code-plugins --plugin kde-plasmoid-devProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.