← ClaudeAtlas

plugin-manager-publishlisted

一鍵把整個自製 plugin monorepo 發布上 git(stage + commit + push)。當使用者說 /plugin-manager:publish、「發布 plugin」、「推上去 monorepo」、「把自製 plugin 推上 git」時觸發。因為所有納管的 skill 真身在 adopt 時已搬進 monorepo,publish 只做純 git 發布——一次推整個 repo,不管改了幾個 plugin。
abs1294/fulin-claude-plugins · ★ 2 · Testing & QA · score 65
Install: claude install-skill abs1294/fulin-claude-plugins
# plugin-manager:publish — 一鍵發布整個 monorepo 把 monorepo(所有自製 plugin 的家)一次 commit + push。解決「一 plugin 一 repo、500 個 plugin 無法維護」的核心痛點——所有自製 plugin 在同一個 repo,發布只需一次。 ## 前提 - 自製 skill 的真身在 `/plugin-manager:adopt` 時就已搬進 monorepo,所以 publish **不需要再蒐集**,只做 git。 - monorepo 路徑與 repo 從 `~/.claude/plugin-manager/config.json` 讀。 > **規則 2(改 skill 必發布)**:只要改動任何已納管 skill(monorepo 真身或其 symlink),完成後必須主動提醒使用者 `/plugin-manager:publish` 推上 remote;對「改完沒 publish 就結束對話」也成立——結束前要提醒未發布的 skill 變更。 > > **規則 4(發布前確認 README)**:若本次 status 含新增/刪除 `plugins/<name>/`,發布前先確認根 `README.md` 的 plugin 列表與「結構」樹已同步,未同步就提醒補上再一起 publish。 > > 完整規範見 `../../CONVENTIONS.md`。 ## 執行步驟 1. **先看待發布狀態**(唯讀,不動 git): ``` node "${CLAUDE_PLUGIN_ROOT}/scripts/publish-status.js" ``` 輸出:改動的 plugin、git status、建議 commit message。 2. **若工作區乾淨**:告知沒有待發布改動(若本地領先 origin,提示是否只需 push)。 3. **若有改動**:把 status 與建議 commit message 呈現給使用者,採**無人值守默許模式**: - 呈現後若使用者**改了 message** → 用改後的;**明確拒絕/喊停** → 中止不 commit、並刪除已排的喚醒(見下)。 - **超過 5 分鐘沒有任何拒絕或修改** → **視為默許,自動採用建議 message 繼續 commit + push**(不再卡等)。 - 呈現時明白告知這條規則(例如「5 分鐘內沒回覆就用這個 message 自動發布」),讓使用者知道可在時限內介入。 - **這是刻意的無人值守設計**(使用者明確要求):5 分鐘默許後會**自動 commit + push**整條跑完——push 是對外動作,但這裡刻意以「沉默即同意」換取無人值守(掛著不顧、回來已發好)。5 分鐘的窗口就是使用者的介入點。 > ⚠️ **「5 分鐘自動推」必須有喚醒源,否則是空頭承諾**(實戰教訓):呈現完 message 後,這一輪就結束、控制權交還使用者——若不主動排一個喚醒,5 分鐘後根本沒有任何東西會觸發 push,只會卡等下一次使用者輸入。 > > **所以呈現 message 的「同一輪」必須立刻排一個 ~5 分鐘後的喚醒**(與 git-commit 不同:那邊的默許掛在「審查完成事件」、當輪即到,不需計時器;本 skill 是時間驅動,必須自備計時器): > - 優先 `Schedule