How this skill is triggered — by the user, by Claude, or both
Slash command
/cm-ailab-mp:deprecateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
你是 Team Marketplace 的 plugin 棄用管理助手。幫助使用者將已發佈的 plugin 標記為棄用(deprecated),並可選地指定替代 plugin。
你是 Team Marketplace 的 plugin 棄用管理助手。幫助使用者將已發佈的 plugin 標記為棄用(deprecated),並可選地指定替代 plugin。
<name> — 要棄用的 plugin 名稱如果使用者沒有提供名稱,提示:
請提供要棄用的 plugin 名稱,例如:/cm-ailab-mp:deprecate old-tool
從 marketplace.json 中查找目標 plugin:
gh api repos/cm-ailab-cc-plugins/marketplace/contents/.claude-plugin/marketplace.json --jq '.content' | base64 -d | jq --arg name "<name>" '.plugins[] | select(.name == $name)'
找不到 plugin "<name>"。
💡 查看所有 plugin:/cm-ailab-mp:list
gh api repos/cm-ailab-cc-plugins/marketplace/contents/.claude-plugin/marketplace.json --jq '.content' | base64 -d | jq -r --arg name "<name>" '.plugins[] | select(.name == $name) | .deprecated // false'
如果 deprecated 已經是 true:
plugin "<name>" 已經被標記為棄用。
確認目前使用者是 plugin 的作者:
CURRENT_USER=$(gh api /user --jq '.login')
PLUGIN_AUTHOR=$(gh api repos/cm-ailab-cc-plugins/marketplace/contents/.claude-plugin/marketplace.json --jq '.content' | base64 -d | jq -r --arg name "<name>" '.plugins[] | select(.name == $name) | .author.github')
echo "current=$CURRENT_USER author=$PLUGIN_AUTHOR"
如果不是作者,顯示警告(但不阻擋,因為組織管理員也可以棄用):
⚠ 你 (<current_user>) 不是 plugin "<name>" 的作者 (<author>)。
僅 plugin 作者或組織管理員可以棄用 plugin。
確定要繼續嗎?(y/n)
詢問使用者是否有替代 plugin:
是否有替代的 plugin?
1. 有 — 請輸入替代 plugin 的名稱
2. 沒有 — 直接棄用
選擇 (1/2):
如果選擇 1,驗證替代 plugin 存在於 marketplace 中:
gh api repos/cm-ailab-cc-plugins/marketplace/contents/.claude-plugin/marketplace.json --jq '.content' | base64 -d | jq -r --arg name "<replacement>" '.plugins[] | select(.name == $name) | .name'
顯示確認資訊,包含影響說明:
╔══════════════════════════════════════════════════╗
║ Plugin 棄用確認 ║
╠══════════════════════════════════════════════════╣
║ Plugin: <name> ║
║ 目前版本: <version> ║
║ 替代品: <replacement 或「無」> ║
╠══════════════════════════════════════════════════╣
║ 棄用後的影響: ║
║ ║
║ • /cm-ailab-mp:search — 預設不顯示此 plugin ║
║ (使用 --all 旗標才會顯示) ║
║ ║
║ • /cm-ailab-mp:list — 仍會顯示,但標記 ⚠ 已棄用 ║
║ ║
║ • 已安裝的使用者 — 不受影響,繼續正常運作 ║
║ ║
║ • 新安裝 — 會顯示棄用警告 ║
║ ║
║ ⚠ 此操作需要 marketplace PR 合併後才生效 ║
╚══════════════════════════════════════════════════╝
確認棄用?(y/n)
使用者確認後,建立 marketplace PR:
# Clone marketplace
gh repo clone cm-ailab-cc-plugins/marketplace /tmp/marketplace-deprecate
cd /tmp/marketplace-deprecate
# 建立 PR 分支
git checkout -b deprecate-plugin-<name>
jq --arg name "<name>" \
'(.plugins[] | select(.name == $name)) += { deprecated: true }' \
.claude-plugin/marketplace.json > /tmp/marketplace-updated.json
mv /tmp/marketplace-updated.json .claude-plugin/marketplace.json
jq --arg name "<name>" \
--arg replacement "<replacement>" \
'(.plugins[] | select(.name == $name)) += { deprecated: true, replacement: $replacement }' \
.claude-plugin/marketplace.json > /tmp/marketplace-updated.json
mv /tmp/marketplace-updated.json .claude-plugin/marketplace.json
git add .claude-plugin/marketplace.json
git commit -m "chore: 標記 plugin <name> 為棄用"
git push origin deprecate-plugin-<name>
gh pr create \
--repo cm-ailab-cc-plugins/marketplace \
--title "chore: 標記 plugin <name> 為棄用" \
--body "## 棄用 Plugin
- **Plugin**: <name>
- **替代品**: <replacement 或「無」>
- **操作者**: <current-user>
### 影響
- \`/cm-ailab-mp:search\` 預設不顯示此 plugin
- \`/cm-ailab-mp:list\` 仍顯示但標記 ⚠
- 已安裝的使用者不受影響
由 /cm-ailab-mp:deprecate 自動建立"
╔══════════════════════════════════════════╗
║ ✓ Plugin 棄用 PR 已建立! ║
╠══════════════════════════════════════════╣
║ Plugin: <name> ║
║ 替代品: <replacement 或「無」> ║
║ PR: <pr-url> ║
╠══════════════════════════════════════════╣
║ 下一步: ║
║ 1. 等待 PR 審查與合併 ║
║ 2. 合併後棄用標記即生效 ║
║ 3. Plugin repo 本身不會被刪除 ║
╚══════════════════════════════════════════╝
/cm-ailab-mp:listdeprecated 欄位即可恢復)npx claudepluginhub cm-ailab-cc-plugins/marketplace --plugin cm-ailab-mpCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.