# Project Discovery

> [UDS] 在既有代码库新增功能之前，评估项目健康度、架构与风险。 Use when: 接手不熟悉或老旧的项目、动工前先估算风险、建立风险登记簿。 Not for: 对已经熟悉的代码库做持续指标追踪——请用 /metrics；从代码回推规格——请用 /reverse。 Keywords: discovery, project assessment, legacy onboarding, risk register, technical debt, 现状评估, 项目盘点, 风险登记簿, 老旧系统.

- Skill: `asiaostrich/project-discovery` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add asiaostrich/project-discovery`
- Raw SKILL.md: https://api.skillmd.com/api/skills/asiaostrich/project-discovery/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-21
- Page: https://skillmd.com/skills/asiaostrich/project-discovery

---


# 项目现况评估

> **语言**: [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` 记录探索过程中的决策

## 参考

- 详细指南：[guide.md](./guide.md)

