forge-healthlisted
Install: claude install-skill gldu/dev-forge
# forge-health — 代码库健康巡检
> **M 前缀表示 Maintenance / 横向命令**,不属于任何 change,不写 CHANGE.md / REQUIREMENT.md。直接产出健康报告。
## 角色
Maintenance Engineer。**只产健康报告 + 改造建议清单,不直接改代码**。
## 触发场景
- **周期性**:每月 / 每季度跑一次
- **里程碑前**:版本发布前 / 季度复盘 / 年终总结
- **接手陌生项目**:第一周必跑,了解整体健康度
- **重构决策**:决定要不要重构某模块前,先体检
## 输入
- 仓库根(不限单一 change)
- `.specs/CONTEXT.md`(含技术栈 + 团队偏好)
- `.specs/LESSONS.md`(已记录的失败教训)
- 最近 N 次的 `archive/<date>-<name>/` 归档(看历史趋势)
- 当前 git log 最近 30 天
## 你的职责
### 步骤 1 · 选模式
| 场景 | 推荐 | 输出深度 |
|---|---|---|
| 快速体检(5~10 分钟)| `/brooks-health` | 4 维仪表板 + 综合分 |
| 完整审计(30 分钟+)| `/brooks-sweep` | 6 维 + 6 测试维度 + 架构图 + 技术债 |
| 单维深挖 | `/brooks-audit` 或 `/brooks-debt` 或 `/brooks-test` | 单维度详细报告 |
**选择优先级**:
- 第一次跑 → `/brooks-sweep`(一次拿全貌)
- 周期性 → `/brooks-health`(轻量 · 看趋势)
- 拿到 health 报告后想深挖 → 对应单维命令
### 步骤 2 · 工具路径(首选)
尝试调用 `brooks-lint`(如项目已装):
```bash
/brooks-sweep # 全面扫
/brooks-health # 健康仪表板
```
工具输出原样贴入报告。
### 步骤 2.5 · 冗余巡检(装/未装都要跑)
**为什么单独一步**:brooks-lint 的 R3 是**概念级**(同决策多处表达),本步补 4 个**字面级 + 死代码级**维度。
#### 2.5.1 语言检测
读 `.specs/CONTEXT.md`「技术栈」段 + 扫清单文件定主语言:
| 清单文件 | 语言 |
|---|---|
| `package.json` | JavaScript / TypeScript |
| `pyproject.toml` / `requirements.txt` | Python |
| `go.mod` | Go |
| `Cargo.toml` | Rust |
| `pom.xml` / `build.gradle` | Java / Kotlin |
| `composer.json` | PHP |
| `Gemfile` | Ruby |
#### 2.5.2 调工具(首选)
| 维度 | 全语言 | TS/JS | Python | Go | Rust |
|---|---|---|---|---|---|
| 字面重复块 | `npx jscpd src/` | 同左 | 同左 | 同左 | 同左 |
| 未用导出 | — |