# 依赖关系分析Skill

> Skill

- Skill: `sky-cube/skill-42` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sky-cube/skill-42`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sky-cube/skill-42/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Sky-Cube (https://skillmd.com/u/sky-cube)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sky-cube/skill-42

---

# 依赖关系分析Skill

## 适用场景
架构评审环节,梳理组件/模块/服务之间的依赖链路,量化耦合程度,识别循环依赖与故障爆炸半径,为解耦决策提供证据。

## 执行步骤
1. 提取依赖边:从模块目录结构、import 语句、接口调用关系、消息队列流转、数据库共享、配置文件引用中梳理依赖关系。
2. 绘制依赖图(表格或文字邻接表),标注方向与强度(调用频次、是否强依赖)。
3. 识别三类问题:循环依赖、耦合过强、故障传播面过大(见下表)。
4. 输出问题清单 + 解耦建议,并按严重度排序。

## 分析要点
| 问题类型 | 识别口径 |
|---|---|
| 循环依赖 | 模块/类/包层面形成环(A→B→C→A);可用 jdeps、dependency-cruiser、madge 等工具检测;运行时初始化顺序错乱、编译拆分困难是常见症状 |
| 耦合过强 | 模块扇出(依赖数)过高;修改一个类需同步修改多处调用方;共享全局状态/共享表;接口参数对象过粗导致调用方依赖内部结构 |
| 故障传播面 | 强依赖链路层级过深且无超时/熔断/降级;核心服务被大范围依赖(热点依赖);单点故障可瘫痪整条链路 |

## 规范要点
- 每条依赖边必须落到具体位置:A 文件第 X 行 import/调用 B,禁止只写「A 依赖 B」。
- 循环依赖必须给出完整环路路径(A→B→C→A)及证据位置。
- 每条问题必须附影响量化:变更成本(改 A 需动几个调用方)、故障爆炸半径(该节点故障影响多少下游)、可测试性损失。
- 解耦建议要具体:引入接口隔离、依赖倒置、事件解耦、拆库等,并说明适用条件。

## 输出模板
```
## 依赖关系分析报告
### 依赖总览(模块 → 依赖模块列表,附证据位置)
### 问题清单
| # | 问题类型 | 依赖/环路路径(证据位置) | 影响量化 | 严重度 | 解耦建议 |
### 依赖图(文字邻接表)
```

## 自检清单
- [ ] 依赖边均有文件/配置证据位置
- [ ] 循环依赖给出完整环路径
- [ ] 每条问题附影响量化与解耦建议
- [ ] 覆盖模块间与模块内(类/包)两个层级

