--- name: configure-ecc description: 「Everything Claude Code」互動式安裝程式 — 引導使用者選擇技能與規範並安裝至使用者層級或專案層級目錄、驗證路徑,並可選擇性優化安裝檔案。 --- # 配置 Everything Claude Code (ECC) 這是一個針對 Everything Claude Code 專案的互動式逐步安裝精靈。使用 `AskUserQuestion` 引導使用者選擇性地安裝技能與規範,隨後驗證正確性並提供優化建議。 ## 何時啟用 - 使用者提到「configure ecc」、「install ecc」、「setup everything claude code」或類似詞彙。 - 使用者想要從此專案中選擇性地安裝技能 (Skills) 或規範 (Rules)。 - 使用者想要驗證或修復現有的 ECC 安裝。 - 使用者想要針對其專案優化已安裝的技能或規範。 ## 前置條件 在啟用之前,Claude Code 必須能夠存取此技能。有兩種引導方式: 1. **透過外掛程式**:`/plugin install everything-claude-code` — 外掛程式會自動載入此技能。 2. **手動方式**:僅將此技能複製到 `~/.claude/skills/configure-ecc/SKILL.md`,然後說「configure ecc」即可啟用。 --- ## 步驟 0:複製 ECC 儲存庫 在執行任何安裝之前,先將最新的 ECC 原始碼複製到 `/tmp`: ```bash rm -rf /tmp/everything-claude-code git clone https://github.com/affaan-m/everything-claude-code.git /tmp/everything-claude-code ``` 將 `ECC_ROOT=/tmp/everything-claude-code` 設定為所有後續複製操作的來源。 若複製失敗(網路問題等),請使用 `AskUserQuestion` 要求使用者提供現有 ECC 複製本的本機路徑。 --- ## 步驟 1:選擇安裝層級 使用 `AskUserQuestion` 詢問使用者安裝路徑: ``` 問題:「ECC 組件應安裝在哪裡?」 選項: - 「使用者層級 (~/.claude/)」—「適用於您所有的 Claude Code 專案」 - 「專案層級 (.claude/)」—「僅適用於目前專案」 - 「兩者皆是」—「通用/共享項目安裝於使用者層級,專案特定項目安裝於專案層級」 ``` 將選擇儲存為 `INSTALL_LEVEL`。設定目標目錄: - 使用者層級:`TARGET=~/.claude` - 專案層級:`TARGET=.claude`(相對於目前專案根目錄) - 兩者皆是:`TARGET_USER=~/.claude`, `TARGET_PROJECT=.claude` 若目標目錄不存在則建立: ```bash mkdir -p $TARGET/skills $TARGET/rules ``` --- ## 步驟 2:選擇並安裝技能 (Skills) ### 2a:選擇技能類別 共有 27 個技能,分為 4 個類別。使用 `AskUserQuestion` 並開啟 `multiSelect: true`: ``` 問題:「您想要安裝哪些技能類別?」 選項: - 「框架與語言 (Framework & Language)」—「Django, Spring Boot, Go, Python, Java, 前端, 後端模式」 - 「資料庫 (Database)」—「PostgreSQL, ClickHouse, JPA/Hibernate 模式」 - 「工作流與品質 (Workflow & Quality)」—「TDD, 驗證, 學習, 安全審查, 緊湊化」 - 「所有技能 (All skills)」—「安裝所有可用的技能」 ``` ### 2b:確認個別技能 針對每個選定的類別,列出下方的完整技能清單,並請使用者確認或取消選定特定項目。若清單超過 4 項,請將清單以文字形式列印,並使用 `AskUserQuestion` 的「安裝所有列出的項目」選項,外加「其他」選項供使用者貼上特定名稱。 **類別:框架與語言 (16 個技能)** | 技能 | 描述 | |-------|-------------| | `backend-patterns` | 後端架構、API 設計、Node.js/Express/Next.js 伺服器端最佳實踐 | | `coding-standards` | TypeScript、JavaScript、React、Node.js 的通用編碼標準 | | `django-patterns` | Django 架構、使用 DRF 的 REST API、ORM、快取、信號 (Signals)、中間件 | | `django-security` | Django 安全:驗證、CSRF、SQL 注入、XSS 預防 | | `django-tdd` | 使用 pytest-django, factory_boy, mocking, coverage 進行 Django 測試 | | `django-verification` | Django 驗證迴圈:遷移、Linting、測試、安全掃描 | | `frontend-patterns` | React、Next.js、狀態管理、效能、UI 模式 | | `golang-patterns` | 慣用的 Go 模式、建構健全 Go 應用程式的慣例 | | `golang-testing` | Go 測試:表格驅動測試、子測試、基準測試、模糊測試 | | `java-coding-standards` | Spring Boot 的 Java 編碼標準:命名、不可變性、Optional、Streams | | `python-patterns` | Pythonic 慣用法、PEP 8、型別提示、最佳實踐 | | `python-testing` | 使用 pytest, TDD, fixtures, mocking, parametrization 進行 Python 測試 | | `springboot-patterns` | Spring Boot 架構、REST API、分層服務、快取、非同步 | | `springboot-security` | Spring Security:身分驗證/授權、驗證、CSRF、金鑰、速率限制 | | `springboot-tdd` | 使用 JUnit 5, Mockito, MockMvc, Testcontainers 進行 Spring Boot TDD | | `springboot-verification` | Spring Boot 驗證:建置、靜態分析、測試、安全掃描 | **類別:資料庫 (3 個技能)** | 技能 | 描述 | |-------|-------------| | `clickhouse-io` | ClickHouse 模式、查詢優化、分析、資料工程 | | `jpa-patterns` | JPA/Hibernate 實體設計、關聯、查詢優化、交易 | | `postgres-patterns` | PostgreSQL 查詢優化、綱要設計、索引、安全 | **類別:工作流與品質 (8 個技能)** | 技能 | 描述 | |-------|-------------| | `continuous-learning` | 從對話工作階段中自動擷取可重用的模式作為已學習技能 | | `continuous-learning-v2` | 基於本能的學習並帶有信心評分,會演進為技能/指令/Agent | | `eval-harness` | 用於評估驅動開發 (EDD) 的正式評估框架 | | `iterative-retrieval` | 為了解決子 Agent 上下文問題而採取的漸進式上下文精煉 | | `security-review` | 安全查核清單:驗證、輸入、金鑰、API、支付功能 | | `strategic-compact` | 在邏輯間隔建議進行手動上下文緊湊化 (Compaction) | | `tdd-workflow` | 強制執行具備 80% 以上覆蓋率的 TDD:單元、整合、E2E | | `verification-loop` | 驗證與品質迴圈模式 | **獨立項目** | 技能 | 描述 | |-------|-------------| | `project-guidelines-example` | 用於建立專案特定技能的範例範本 | ### 2c:執行安裝 針對每個選定的技能,複製整個技能目錄: ```bash cp -r $ECC_ROOT/skills/<技能名稱> $TARGET/skills/ ``` 註:`continuous-learning` 與 `continuous-learning-v2` 包含額外檔案 (config.json, hooks, scripts) — 請確保複製整個目錄,而不僅僅是 SKILL.md。 --- ## 步驟 3:選擇並安裝規範 (Rules) 使用 `AskUserQuestion` 並開啟 `multiSelect: true`: ``` 問題:「您想要安裝哪些規範組?」 選項: - 「通用規範 (建議)」—「與語言無關的原則:編碼風格、Git 工作流、測試、安全等 (8 個檔案)」 - 「TypeScript/JavaScript」—「TS/JS 模式、鉤子、使用 Playwright 的測試 (5 個檔案)」 - 「Python」—「Python 模式、pytest、black/ruff 格式化 (5 個檔案)」 - 「Go」—「Go 模式、表格驅動測試、gofmt/staticcheck (5 個檔案)」 ``` 執行安裝: ```bash # 通用規範 (攤平複製到 rules/ 目錄下) cp -r $ECC_ROOT/rules/common/* $TARGET/rules/ # 特定語言規範 (攤平複製到 rules/ 目錄下) cp -r $ECC_ROOT/rules/typescript/* $TARGET/rules/ # 若已選取 cp -r $ECC_ROOT/rules/python/* $TARGET/rules/ # 若已選取 cp -r $ECC_ROOT/rules/golang/* $TARGET/rules/ # 若已選取 ``` **重要**:若使用者選取了特定語言規範但「未」選取通用規範,請發出警告: > 「特定語言規範是通用規範的擴展。不安裝通用規範可能會導致覆蓋範圍不完整。是否也安裝通用規範?」 --- ## 步驟 4:安裝後驗證 安裝完成後,執行以下自動化檢查: ### 4a:驗證檔案是否存在 列出所有已安裝的檔案,確認它們存在於目標位置: ```bash ls -la $TARGET/skills/ ls -la $TARGET/rules/ ``` ### 4b:檢查路徑參照 掃描所有安裝的 `.md` 檔案中的路徑參照: ```bash grep -rn "~/.claude/" $TARGET/skills/ $TARGET/rules/ grep -rn "../common/" $TARGET/rules/ grep -rn "skills/" $TARGET/skills/ ``` **對於專案層級的安裝**,標記出任何指向 `~/.claude/` 路徑的參照: - 若技能參照了 `~/.claude/settings.json` — 這通常沒問題(設定始終是使用者層級)。 - 若技能參照了 `~/.claude/skills/` 或 `~/.claude/rules/` — 若僅安裝在專案層級,這些連結可能會失效。 - 若技能透過名稱參照另一個技能 — 檢查該技能是否也已安裝。 ### 4c:檢查技能間的交叉參照 某些技能會互相參照。請驗證這些依賴關係: - `django-tdd` 可能參照 `django-patterns`。 - `springboot-tdd` 可能參照 `springboot-patterns`。 - `continuous-learning-v2` 參照 `~/.claude/homunculus/` 目錄。 - `python-testing` 可能參照 `python-patterns`。 - `golang-testing` 可能參照 `golang-patterns`。 - 特定語言規範會參照對應的 `common/` 檔案。 ### 4d:回報問題 針對發現的每個問題,請回報: 1. **檔案**:包含問題參照的檔案名稱。 2. **行號**:所在的行號。 3. **問題描述**:哪裡出錯(例如:「參照了 ~/.claude/skills/python-patterns,但未安裝 python-patterns」)。 4. **建議修復方式**:該怎麼做(例如:「安裝 python-patterns 技能」或「將路徑更更新為 .claude/skills/」)。 --- ## 步驟 5:優化已安裝的檔案 (選配) 使用 `AskUserQuestion`: ``` 問題:「您想要為您的專案優化已安裝的檔案嗎?」 選項: - 「優化技能」—「移除不相關的部分、調整路徑、針對您的技術棧量身打造」 - 「優化規範」—「調整覆蓋率目標、加入專案特定的模式、自定義工具配置」 - 「優化兩者」—「完整優化所有已安裝的檔案」 - 「跳過」—「保持現狀」 ``` ### 若要優化技能: 1. 讀取每個安裝的 SKILL.md。 2. 詢問使用者其專案的技術棧(若尚未得知)。 3. 針對每個技能,建議移除不相關的部分。 4. 原地 (In-place) 編輯安裝目標處的 SKILL.md 檔案(而非來源儲存庫)。 5. 修復在步驟 4 中發現的路徑問題。 ### 若要優化規範: 1. 讀取每個安裝的規範 .md 檔案。 2. 詢問使用者的偏好: - 測試覆蓋率目標 (預設 80%)。 - 偏好的格式化工具。 - Git 工作流慣例。 - 安全要求。 3. 原地編輯安裝目標處的規範檔案。 **重要**:僅修改安裝目標 (`$TARGET/`) 中的檔案,**絕對不要** 修改來源 ECC 儲存庫 (`$ECC_ROOT/`) 中的檔案。 --- ## 步驟 6:安裝摘要 從 `/tmp` 中清理複製的儲存庫: ```bash rm -rf /tmp/everything-claude-code ``` 隨後列印摘要報告: ``` ## ECC 安裝完成 ### 安裝目標 - 層級:[使用者層級 / 專案層級 / 兩者皆是] - 路徑:[目標路徑] ### 已安裝技能 ([總數]) - 技能 1, 技能 2, 技能 3, ... ### 已安裝規範 ([總數]) - 通用規範 (8 個檔案) - typescript (5 個檔案) - ... ### 驗證結果 - 發現 [數字] 個問題,已修復 [數字] 個 - [列出任何剩餘問題] ### 已套用的優化 - [列出所做變更,或顯示「無」] ``` --- ## 疑難排解 ### 「Claude Code 未偵測到技能」 - 驗證技能目錄中包含一個 `SKILL.md` 檔案(而非僅有零散的 .md 檔案)。 - 使用者層級:檢查 `~/.claude/skills/<技能名稱>/SKILL.md` 是否存在。 - 專案層級:檢查 `.claude/skills/<技能名稱>/SKILL.md` 是否存在。 ### 「規範無效」 - 規範應該是攤平的檔案,而非放在子目錄中:路徑應為 `$TARGET/rules/coding-style.md` (正確),而非 `$TARGET/rules/common/coding-style.md` (攤平安裝時不正確)。 - 安裝規範後重啟 Claude Code。 ### 「專案層級安裝後出現路徑參照錯誤」 - 某些技能假設路徑為 `~/.claude/`。執行步驟 4 的驗證以查找並修復這些問題。 - 對於 `continuous-learning-v2`,`~/.claude/homunculus/` 目錄始終是使用者層級的 — 這是預期行為,並非錯誤。