← ClaudeAtlas

setup-pluginslisted

為「當前工作目錄」偵測並推薦該裝哪些 Claude Code plugin(venv 概念,per-project 隔離),核可後由 Claude 直接跑 CLI 代裝(claude plugin install --scope project;settings 由 install 自己寫)。當使用者輸入 /setup-plugins、說「設定這專案的 plugin」、「這目錄要裝哪些 plugin」、「套用 plugin 組合 / profile」、「推薦這專案的 plugin」、「推薦外部 plugin」、「登記外部 plugin」時觸發;當使用者在 [plugin-profile] 提示後回「裝」「裝吧」「幫我裝」時走「一字核可代裝」子流程(偵測有把握就直接裝完,不再多問)。也含子流程 upgrade(偵測自製 plugin 落後版)與外部 plugin 推薦登記(recommends.json,進 git、會推廣)。
abs1294/fulin-claude-plugins · ★ 2 · Testing & QA · score 65
Install: claude install-skill abs1294/fulin-claude-plugins
# Setup Plugins(per-project plugin 偵測與推薦) 讓使用者為「當前目錄」按需啟用 plugin,像 Python venv 那樣按專案隔離,避免全部塞 user scope 浪費上下文。 ## 核心職責(重要 — 邊界) setup 做**偵測 + 推薦 + 核可後代裝**,**不手寫 settings**: - **`claude plugin install <ref> --scope project` 是非互動 CLI**,Claude 可以直接跑(Bash);install 會自己把 `enabledPlugins` 寫進對應 settings.json。這是 install 的職責,setup 不碰。 - 所以 setup **不 Edit、不代寫** `<cwd>/.claude/settings.json` 的 enabledPlugins——寫入一律經由 install CLI(重複手寫只會打架)。 - setup 的價值是:① 看專案**偵測**該裝什麼 → ② **推薦** profile / plugin 組合 → ③ 使用者核可後**直接跑 CLI 裝好**(marketplace 缺就先 add;CLI 失敗才退回列指令請使用者自貼)。 - 舊說法「Claude 不能代執行 /plugin」指的是**互動 slash UI**;CLI 版(`claude plugin install` / `claude plugin marketplace add`)沒有這限制。 ## 背景知識 - plugin「安裝」是全域一份 cache(`~/.claude/plugins/cache/`),但「**啟用 scope**」per-scope:`/plugin install` 互動 UI(`/plugin` → Discover → 選 plugin → Enter)可選 **user**(全域)/ **project**(寫 `<cwd>/.claude/settings.json`,團隊共享)/ **local**(寫 `settings.local.json`,只自己、不進 git)。 - 全域常駐(不需 profile 重複處理):`claude-mem`、`codex`、`example-skills`。 - **profile 來源有兩份,讀時合併**: - 基底(可推廣、進 git):`<monorepo>/plugins/plugin-manager/profiles.json`(monorepo 路徑取自 `~/.claude/plugin-manager/config.json`)——通用 profile(dotnet/frontend/full…)+ 各自的 `detect` 偵測規則。 - 覆寫(本機、不進 git):`~/.claude/plugin-profiles.json`——使用者個人 / 公司專屬 profile(如 supplier)。 - **合併規則**:以基底為底,本機覆寫——同名 profile 本機贏,本機獨有的 profile 保留。 ## 執行步驟(Claude 依此操作) 1. **確認當前工作目錄**(cwd)。 2. **讀 profile 清單(合併兩份)**:Read `<monorepo>/plugins/plugin-manager/profiles.json`(基底)與 `~/.claude/plu