Impact Analyzer 技能
描述
预测代码修改的爆炸半径(blast radius)。给定一个文件、函数名或当前 git diff,追踪所有直接和传递依赖方,映射受影响的测试文件,并给出风险评分。
使用方法
/impact-analyzer [选项]
选项
--file <path>- 分析修改某个文件的影响范围--function <name>- 追踪函数/类的调用者--diff- 分析当前 git diff 的影响
分析维度
依赖追踪
- 构建反向导入图(谁 import/require 了目标文件)
- BFS 追踪传递依赖,最大深度 5 层
- 支持
require()和import两种语法
测试映射
foo.js→foo.test.js/foo.spec.jsfoo.js→__tests__/foo.test.jssrc/main/x.js→tests/unit/x.test.js
风险评分
| 等级 | 条件 |
|---|---|
| HIGH | 依赖方 > 10 个,或无测试覆盖 |
| MEDIUM | 依赖方 3-10 个,有测试覆盖 |
| LOW | 依赖方 < 3 个(叶子节点) |
IPC 影响
- 检测 IPC handler 文件变更
- 列出受影响的前端 store 和 page
输出示例
Impact Analysis: src/main/llm/session-manager.js
=================================================
Direct dependents (6):
→ conversation-ipc.js
→ manus-optimizations.js
→ context-engineering.js
→ permanent-memory-manager.js
→ plan-mode/index.js
→ hooks/hook-middleware.js
Transitive dependents (8 additional):
→ index.js (main entry)
→ ai-engine/cowork/skills/index.js
...
Affected tests (3):
→ tests/unit/llm/session-manager.test.js
→ tests/unit/llm/context-engineering.test.js
→ tests/integration/conversation.test.js
Risk: HIGH (score: 8.5/10)
Core module with 14 total dependents.
Recommendation: Write comprehensive tests before modifying.
Ensure backward-compatible API changes.