# Discover

> [UDS] 在既有程式碼庫新增功能之前，評估專案健康度、架構與風險。 Use when: 接手不熟悉或老舊的專案、動工前先估算風險、建立風險登記簿。 Not for: 對已經熟悉的程式碼庫做持續指標追蹤——請用 /metrics；從程式碼回推規格——請用 /reverse。 Keywords: discovery, project assessment, legacy onboarding, risk register, technical debt, 現況評估, 專案盤點, 風險登記簿, 老舊系統.

- Skill: `asiaostrich/discover-3` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add asiaostrich/discover-3`
- Raw SKILL.md: https://api.skillmd.com/api/skills/asiaostrich/discover-3/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: AsiaOstrich (https://skillmd.com/u/asiaostrich)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/asiaostrich/discover-3

---


# 專案現況評估

> **語言**: [English](../../../../skills/project-discovery/SKILL.md) | 繁體中文

在既有程式碼庫新增功能前的 Phase 0 評估。評估專案健康度、架構與風險。

## 評估維度

| 維度 | 檢查項目 |
|------|----------|
| **架構** | 模組結構、相依圖、進入點 |
| **相依套件** | 過時套件、已知漏洞、授權風險 |
| **測試覆蓋率** | 現有測試、覆蓋率缺口、測試品質 |
| **安全性** | `npm audit` 結果、硬編碼密鑰、暴露端點 |
| **技術債** | TODO 標記、程式碼重複、複雜度熱點 |

## 工作流程

1. **掃描專案** - 讀取 package.json、目錄結構、設定檔
2. **分析架構** - 繪製模組、相依性和資料流圖
3. **檢查相依套件** - 執行 `npm outdated`、`npm audit` 取得健康信號
4. **評估風險** - 識別複雜度熱點、缺失測試、安全問題
5. **產生報告** - 輸出健康分數與可執行的建議

## 輸出格式

```
專案健康報告
=====================
總分：7.2 / 10

| 維度           | 分數  | 狀態    | 主要發現                |
|----------------|-------|---------|------------------------|
| 架構           | 8/10  | 良好    | 模組邊界清晰            |
| 相依套件       | 6/10  | 警告    | 5 個過時、1 個重大問題   |
| 測試覆蓋率     | 7/10  | 尚可    | 72% 行覆蓋率            |
| 安全性         | 8/10  | 良好    | 無重大漏洞              |
| 技術債         | 6/10  | 警告    | 23 個 TODO、3 個熱點    |

建議：
1. [高] 更新 lodash 以修復 CVE-2024-XXXX
2. [中] 為 src/payments/ 新增測試（0% 覆蓋率）
3. [低] 解決 src/utils/ 中的 TODO 積壓
```

## 風險登記簿

評估完成後，已識別的風險記錄在結構化的風險登記簿中進行持續追蹤。

### 風險矩陣

```
              影響
         低     中     高
高     [ 中 ] [ 高 ] [重大]
中     [ 低 ] [ 中 ] [ 高 ]   可能性
低     [ 低 ] [ 低 ] [ 中 ]
```

### 風險登記簿模板

```markdown
# 風險登記簿 — [專案名稱]
**最後更新**：YYYY-MM-DD

| ID | 類別 | 描述 | 可能性 | 影響 | 等級 | 負責人 | 緩解措施 | 狀態 |
|----|------|------|--------|------|------|--------|----------|------|
| RISK-001 | 安全性 | 過時相依套件有 CVE | 高 | 高 | 重大 | @dev | npm audit fix | 開放 |
| RISK-002 | 效能 | 無負載測試 | 中 | 高 | 高 | @ops | 新增 k6 測試 | 開放 |
| RISK-003 | 品質 | 支付模組測試覆蓋率低 | 高 | 中 | 高 | @qa | 新增整合測試 | 緩解中 |
```

### 風險狀態生命週期

```
已識別 ──► 緩解中 ──► 已解決 ──► 已關閉
  │
  └──► 已接受（附理由說明）
```

### 風險存放

```
docs/risks/
├── RISK-REGISTER.md              # 活躍風險登記簿
├── RISK-REGISTER-2026-Q1.md      # 季度快照（選用）
└── README.md                     # 索引
```

## 使用方式

- `/discover` - 完整專案健康度評估
- `/discover auth` - 針對 auth 相關模組進行評估
- `/discover payments` - 在新增支付功能前評估風險
- `/discover --risks` - 檢視目前風險登記簿
- `/discover --update-risk RISK-NNN` - 更新風險項目狀態

## 下一步引導

`/discover` 完成後，AI 助手應根據評估結果建議：

> **根據評估結果，建議下一步：**
> - **新功能** → 執行 `/sdd` 建立規格
> - **遺留程式碼** → 執行 `/reverse spec` 提取現有行為
> - **重構** → 執行 `/refactor decide` 選擇策略
> - **快速修復** → 執行 `/tdd` 撰寫針對性測試並修復
> - **風險追蹤** → 執行 `/discover --risks` 檢視風險登記簿
> - **架構決策** → 執行 `/adr` 記錄探索過程中的決策

## 參考

- 逐步流程：[workflow.md](./workflow.md) — 探索的各個步驟與順序（程式碼健康度、架構理解、文件盤點、審查快照、相依與安全檢查）。真的要跑一次探索時讀它。
- 詳細指南：[guide.md](./guide.md)

