| name | service-dependency-analyzer |
| description | 基于 .service-matrix/dependencies.yaml 做影响面分析。给定一个服务/模块,返回上下游影响范围、是否涉及 IDL、是否跨团队。 |
| allowed-tools | Read, Bash |
Skill: service-dependency-analyzer
用法
input: service_or_module: string, change_type: "api"|"idl"|"db"|"config"
output: impact tree(上游 + 下游 + IDL 提示 + 跨团队提示)
工作流
- 读
.service-matrix/dependencies.yaml
- 定位目标 service / module
- 正向查
depends_on(我依赖谁)
- 反向查(谁依赖我):遍历所有 service 的
depends_on 字段
- 若涉及 IDL:检查
idl_required: true,列出需同步的 IDL 文件
- 跨团队:比较 module.team 字段
输出示例
用户:couponcenter 新增字段会影响谁?
=== Impact Analysis: couponcenter ===
[Direct deps] couponcenter 依赖:
- vipapi (RPC, IDL required)
- usercenter (RPC, IDL required)
[Reverse deps] 依赖 couponcenter 的服务:
- (无)
[IDL]
couponcenter.idl_required = true
→ 必须同步 {idl-repo}/coupon.jce
→ 必须在 IDL 仓建同名分支 feature/{devops}/{tapd-id}
[Cross-team]
couponcenter.module = campaign (team: demo-team)
→ 同团队,无跨团队协调成本
[建议]
- 字段新增向后兼容 → 兼容旧客户端
- 字段冻结状态:写入 detail-design.md DEC
与其他 Skill 协作
- 被
requirement-quality-reviewer(2.2 门禁 C2.2.6 影响面校验)调用
- 被
detail-design-quality-reviewer(3.3 门禁 C3.3.4)调用
/service:deps 命令直接触发本 Skill
缓存
- 读取一次
dependencies.yaml 后可在单会话内缓存
- 文件 mtime 变化时清缓存