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.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin kde-plasmoid-devThis skill uses the workspace's default tool permissions.
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.
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.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
.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.