[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M756SX1CMP0684KN2RTDVVG5":3,"skill-same:01M756SX1CMP0684KN2RTDVVG5":60},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":31,"ownerHtmlUrl":32,"ownerBlogUrl":33,"ownerDescription":6,"updatedAt":34,"install":35,"resources":47},"01M756SX1CMP0684KN2RTDVVG5","adopt-upx",null,"Use this skill when the user wants to make their skills use upx — the fast local-first package runner shipped as @repobuddy\u002Fupx. Trigger on phrases like \"make my skills use upx\", \"adopt the upx runner\", \"speed up npx calls\", \"switch to upx\", or \"rewrite npx pins to upx\". Rewrites `npx \u003Cpkg>@\u003Cversion>` references to a caret range on `upx` (`^\u003Cmajor>`, or `^0.\u003Cminor>` for a 0.x pin) across one skill, a named set, or every skill in the project.","cyberuni\u002Funiversal-plugin","cyberuni","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F65646890?v=4","01M756SKHC8BY8C4GQSZ9FTK9F","CyberUni","01M756SKJF0TPEBQ7YC0QVGZN6",1,"MIT","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fadopt-upx\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: adopt-upx\ndescription: Use this skill when the user wants to make their skills use upx — the fast local-first package runner shipped as @repobuddy\u002Fupx. Trigger on phrases like \"make my skills use upx\", \"adopt the upx runner\", \"speed up npx calls\", \"switch to upx\", or \"rewrite npx pins to upx\". Rewrites `npx \u003Cpkg>@\u003Cversion>` references to a caret range on `upx` (`^\u003Cmajor>`, or `^0.\u003Cminor>` for a 0.x pin) across one skill, a named set, or every skill in the project.\nmetadata:\n  pin-exempt: true\n---\n\n# Adopt upx\n\nRewrites `npx \u003Cpkg>@\u003Cversion>` references inside `SKILL.md` files to a caret range on `upx` — the\nfast local-first runner shipped by `universal-plugin` (see the package\n[`readme.md`](https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Freadme.md#upx-the-fast-package-runner) for the `upx` contract).\n\n## When to use\n\nThe user wants their project's skills to shell out via `upx` instead of `npx`, for the speed\nwin on repeated calls. This is an opt-in migration, not a default — see Tradeoff below before\nrunning it broadly.\n\n## Prerequisites\n\nInstall the runner:\n\n```bash\nnpm i -g @repobuddy\u002Fupx\n```\n\nThis puts the `upx` bin on PATH. Verify:\n\n```bash\nupx --help\n```\n\nIf `upx` isn't found after install, stop and fix PATH before rewriting anything — a rewritten\nskill with no `upx` on PATH breaks for that user (see Tradeoff).\n\n## Rewrite rule\n\n`npx \u003Cpkg>@\u003Cversion>` → `upx \u003Cpkg>@^\u003Cmajor>` — a caret range on the major version, not the exact\npin. That's the point: one global `upx` install then satisfies every skill's call to that CLI at\nthat major, instead of `npx` re-resolving+spawning per exact version every time.\n\n**`0.x` versions are special.** Under semver a `0.x` minor bump is a breaking change, so `^0`\n(= `>=0.0.0 \u003C1.0.0`) is far too loose — it would match across incompatible `0.x` lines. A `0.x` pin\nis rewritten to `upx \u003Cpkg>@^0.\u003Cminor>` instead (e.g. `pkg@0.2.3` → `upx pkg@^0.2`, matching only the\n`0.2.x` line). `^\u003Cmajor>` applies only to `>=1.0.0`.\n\nLeft alone (never rewritten):\n\n- **Non-semver placeholders** — `npx universal-plugin@\u003Cversion>` (angle-bracket doc placeholders\n  aren't real pins)\n- **Dist-tags** — `npx pkg@next`, `npx pkg@latest` (not a range `upx` can match against an\n  installed version; these already go straight to `npx` inside `upx` itself on a miss)\n- **Already-`upx` references** — nothing to do\n- **Any skill marked `pin-exempt: true`** in its frontmatter — its version strings are\n  documentation\u002Fillustration, not real invocations. This mirrors how `plugin version` treats\n  pin-exempt skills; `upgrade-plugin` is a live example.\n\n## Choose scope\n\nAsk the user (or infer from their request) which of the three scopes applies:\n\n| Scope | How to invoke |\n|---|---|\n| **A specific skill** | Pass its path: `skills\u002Fmy-skill` (dir) or `skills\u002Fmy-skill\u002FSKILL.md` |\n| **A named set** | Pass multiple paths and\u002For a glob: `skills\u002Fa skills\u002Fb \"skills\u002Ffoo-*\"` |\n| **All skills in the project** | Pass `--all` — walks the whole project for every `SKILL.md`, skipping `node_modules`, `.git`, `dist`, `build`, `.turbo` |\n\n## Run the rewrite\n\nThe mechanism is `scripts\u002Frewrite-upx.mjs` in this skill directory — run it directly, don't\nhand-edit files:\n\n```bash\n# One skill\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" skills\u002Fmy-skill\n\n# A named set (paths and\u002For globs)\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" skills\u002Fmy-skill skills\u002Fother-skill \"skills\u002Fteam-*\"\n\n# Every skill in the project\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" --all\n```\n\nPreview without writing:\n\n```bash\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" --all --dry-run\n```\n\nThe script reports, per file, how many references it rewrote and which skills it skipped as\npin-exempt, plus a final tally. It is **idempotent** — re-running over already-rewritten files is\na no-op (there's no `npx` left to match), so it's safe to run again after adding new skills.\n\n## Tradeoff — say this out loud to the user\n\nA skill rewritten to `upx` now depends on the `upx` bin being on that environment's PATH.\n`npx` always ships with npm — every Node environment has it. `upx` does not — it only exists after\n`npm i -g @repobuddy\u002Fupx`. So this is a deliberate opt-in for environments where\n`universal-plugin` is installed globally, not a safe-by-default swap.\n\nMitigating factor: `upx` itself falls back to plain `npx` on a miss (no local\u002Fglobal install\nsatisfies the range) — but that fallback only fires if the `upx` bin is present to run in the\nfirst place. If `upx` isn't on PATH at all, the shell fails to find the command before `upx`'s own\nfallback logic ever gets a chance to run.\n\n## Verify\n\n1. Re-run the script over the same scope — it should report `0 file(s) rewritten` (idempotent).\n2. Spot-check a rewritten skill: the pin should read `upx \u003Cpkg>@^\u003Cmajor>` (or `upx \u003Cpkg>@^0.\u003Cminor>`\n   for a 0.x package), not a concrete version.\n3. Confirm any pin-exempt skills (e.g. `upgrade-plugin`) were skipped, not rewritten.\n4. If the project has a skill validator (`validate-skill` \u002F `improve-skill`), run it over each\n   touched skill to confirm the rewrite didn't break frontmatter or Markdown structure.\n\n## Commit\n\nFollow project commit discipline — one commit for this rewrite:\n\n```text\nchore(skills): adopt upx runner for \u003Cscope>\n```\n","# Adopt upx\n\nRewrites `npx \u003Cpkg>@\u003Cversion>` references inside `SKILL.md` files to a caret range on `upx` — the\nfast local-first runner shipped by `universal-plugin` (see the package\n[`readme.md`](https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Freadme.md#upx-the-fast-package-runner) for the `upx` contract).\n\n## When to use\n\nThe user wants their project's skills to shell out via `upx` instead of `npx`, for the speed\nwin on repeated calls. This is an opt-in migration, not a default — see Tradeoff below before\nrunning it broadly.\n\n## Prerequisites\n\nInstall the runner:\n\n```bash\nnpm i -g @repobuddy\u002Fupx\n```\n\nThis puts the `upx` bin on PATH. Verify:\n\n```bash\nupx --help\n```\n\nIf `upx` isn't found after install, stop and fix PATH before rewriting anything — a rewritten\nskill with no `upx` on PATH breaks for that user (see Tradeoff).\n\n## Rewrite rule\n\n`npx \u003Cpkg>@\u003Cversion>` → `upx \u003Cpkg>@^\u003Cmajor>` — a caret range on the major version, not the exact\npin. That's the point: one global `upx` install then satisfies every skill's call to that CLI at\nthat major, instead of `npx` re-resolving+spawning per exact version every time.\n\n**`0.x` versions are special.** Under semver a `0.x` minor bump is a breaking change, so `^0`\n(= `>=0.0.0 \u003C1.0.0`) is far too loose — it would match across incompatible `0.x` lines. A `0.x` pin\nis rewritten to `upx \u003Cpkg>@^0.\u003Cminor>` instead (e.g. `pkg@0.2.3` → `upx pkg@^0.2`, matching only the\n`0.2.x` line). `^\u003Cmajor>` applies only to `>=1.0.0`.\n\nLeft alone (never rewritten):\n\n- **Non-semver placeholders** — `npx universal-plugin@\u003Cversion>` (angle-bracket doc placeholders\n  aren't real pins)\n- **Dist-tags** — `npx pkg@next`, `npx pkg@latest` (not a range `upx` can match against an\n  installed version; these already go straight to `npx` inside `upx` itself on a miss)\n- **Already-`upx` references** — nothing to do\n- **Any skill marked `pin-exempt: true`** in its frontmatter — its version strings are\n  documentation\u002Fillustration, not real invocations. This mirrors how `plugin version` treats\n  pin-exempt skills; `upgrade-plugin` is a live example.\n\n## Choose scope\n\nAsk the user (or infer from their request) which of the three scopes applies:\n\n| Scope | How to invoke |\n|---|---|\n| **A specific skill** | Pass its path: `skills\u002Fmy-skill` (dir) or `skills\u002Fmy-skill\u002FSKILL.md` |\n| **A named set** | Pass multiple paths and\u002For a glob: `skills\u002Fa skills\u002Fb \"skills\u002Ffoo-*\"` |\n| **All skills in the project** | Pass `--all` — walks the whole project for every `SKILL.md`, skipping `node_modules`, `.git`, `dist`, `build`, `.turbo` |\n\n## Run the rewrite\n\nThe mechanism is `scripts\u002Frewrite-upx.mjs` in this skill directory — run it directly, don't\nhand-edit files:\n\n```bash\n# One skill\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" skills\u002Fmy-skill\n\n# A named set (paths and\u002For globs)\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" skills\u002Fmy-skill skills\u002Fother-skill \"skills\u002Fteam-*\"\n\n# Every skill in the project\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" --all\n```\n\nPreview without writing:\n\n```bash\nnode \"\u003Cthis skill's dir>\u002Fscripts\u002Frewrite-upx.mjs\" --all --dry-run\n```\n\nThe script reports, per file, how many references it rewrote and which skills it skipped as\npin-exempt, plus a final tally. It is **idempotent** — re-running over already-rewritten files is\na no-op (there's no `npx` left to match), so it's safe to run again after adding new skills.\n\n## Tradeoff — say this out loud to the user\n\nA skill rewritten to `upx` now depends on the `upx` bin being on that environment's PATH.\n`npx` always ships with npm — every Node environment has it. `upx` does not — it only exists after\n`npm i -g @repobuddy\u002Fupx`. So this is a deliberate opt-in for environments where\n`universal-plugin` is installed globally, not a safe-by-default swap.\n\nMitigating factor: `upx` itself falls back to plain `npx` on a miss (no local\u002Fglobal install\nsatisfies the range) — but that fallback only fires if the `upx` bin is present to run in the\nfirst place. If `upx` isn't on PATH at all, the shell fails to find the command before `upx`'s own\nfallback logic ever gets a chance to run.\n\n## Verify\n\n1. Re-run the script over the same scope — it should report `0 file(s) rewritten` (idempotent).\n2. Spot-check a rewritten skill: the pin should read `upx \u003Cpkg>@^\u003Cmajor>` (or `upx \u003Cpkg>@^0.\u003Cminor>`\n   for a 0.x package), not a concrete version.\n3. Confirm any pin-exempt skills (e.g. `upgrade-plugin`) were skipped, not rewritten.\n4. If the project has a skill validator (`validate-skill` \u002F `improve-skill`), run it over each\n   touched skill to confirm the rewrite didn't break frontmatter or Markdown structure.\n\n## Commit\n\nFollow project commit discipline — one commit for this rewrite:\n\n```text\nchore(skills): adopt upx runner for \u003Cscope>\n```\n",{"name":5,"metadata":24,"description":7},{"pin-exempt":25},true,"main","1abd213d96b54bf10606ffe06dd2896fdf3faf4b","packages\u002Funiversal-plugin\u002Fskills\u002Fadopt-upx",0,"https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin","https:\u002F\u002Fcyberuni.github.io\u002Funiversal-plugin\u002F","https:\u002F\u002Fgithub.com\u002Fcyberuni","https:\u002F\u002Fwww.youtube.com\u002F@cyberuni","2026-11-14 20:29:04",{"source":8,"skillName":5,"commands":36,"prompt":46,"zipAvailable":25},[37,40,43],{"tool":38,"command":39},"npx","npx skills add cyberuni\u002Funiversal-plugin --skill adopt-upx",{"tool":41,"command":42},"bunx","bunx skills add cyberuni\u002Funiversal-plugin --skill adopt-upx",{"tool":44,"command":45},"pnpm","pnpm dlx skills add cyberuni\u002Funiversal-plugin --skill adopt-upx","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fadopt-upx\u002FSKILL.md",[48,54],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"README.md","REFERENCE","参考文档",1391,"https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fadopt-upx\u002FREADME.md",{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"scripts\u002Frewrite-upx.mjs","SCRIPT","脚本",4597,"https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fadopt-upx\u002Fscripts\u002Frewrite-upx.mjs",[61,68,75,82,89,96],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M756VH3K76XSF636AV1E8WAM","upgrade-plugin","Use this skill when upgrading pinned `npx universal-plugin@\u003Cversion>` calls across a project to a newer version.","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fupgrade-plugin\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M756VB8VEBTV5M607P0R6ESG","remove-plugin","Use this skill to remove a universal agent plugin's artifacts — delete the generated vendor manifests for Claude Code, Cursor, or Codex, clear a stale or shadowing manifest left by an older build, or take the whole plugin out of a project. Trigger on \"delete the generated manifests\", \"remove the vendor manifests\", \"clean the plugin build output\", \"drop Codex support\", \"get rid of this plugin\", or \"stop shipping this plugin\".","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fremove-plugin\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M756TXPT39K2PQJH95SY4Q80","migrate-plugin","Move a repository-root or sibling-workspace universal agent plugin into its npm package so the package distributes its manifest, vendor manifests, skills, and agents, and bundle the package's CLI with tsdown so it runs from an installed plugin directory with no node_modules. Use this skill when packaging an existing plugin for npm, relocating a top-level or plugins\u002F\u003Cname> plugin into a package, fixing a package that omits plugin assets, or making a plugin's bundled CLI self-contained, even if the user says only 'ship this plugin through npm', 'move the plugin into the package', or 'the CLI can't find its dependencies when installed as a plugin.'","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fmigrate-plugin\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M756TQ9GGV2ZX10VWKRJY38K","marketplace","Use this skill to run a repository's own plugin marketplace — generate the catalogs Claude Code, Codex, GitHub Copilot CLI, and Cursor read, list a plugin that lives elsewhere (an npm package, a GitHub repo, or `\u003Cplugin>@\u003Cmarketplace>`), change one listed entry in place, check every catalog against the schema its runtime loads, and write the README install section. Trigger on \"set up a local marketplace\", \"let users install this from my repo\", \"generate marketplace catalogs\", \"add a plugin to the marketplace\", \"list this npm package in my marketplace\", \"switch this entry to a url source\", \"bump the ref on this entry\", \"change the category of a marketplace entry\", \"make this repo installable\", \"add install instructions to the README\", or \"check my marketplace catalogs\".","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Fmarketplace\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":19},"01M756TKWBQAAYZ17DGRJK5RTJ","\u003Cskill-name>","Use this skill when \u003Ctrigger>. \u003COne-line summary.>","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002Fpackages\u002Funiversal-plugin\u002Fskills\u002Finit-universal-plugin\u002Fassets\u002Ftemplates\u002Fskill.md",[],[],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":19},"01M756SSYSH9QK2WGD4RNXW9JG","subagent-driven-development","Use this skill when committing changes in this repository, even if the user does not explicitly mention the required pre-commit checks.","https:\u002F\u002Fgithub.com\u002Fcyberuni\u002Funiversal-plugin\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsubagent-driven-development\u002FSKILL.md",[],[]]