299 lines
12 KiB
Markdown
299 lines
12 KiB
Markdown
|
|
---
|
|||
|
|
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/` 目錄始終是使用者層級的 — 這是預期行為,並非錯誤。
|