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