用途
Impact Analysis 是一个分析“提议变更”影响面的技能。其核心目标是在任何人编写代码之前,梳理并绘制完整的变更影响范围(blast radius),把潜在问题尽早暴露,因为早期发现问题的成本远低于在生产环境发现问题。它适用于评估代码、系统、API、数据库、服务或流程变更对现有系统、服务、团队、API、数据库、基础设施和工作流的影响。
主要能力
技能围绕以下维度组织分析:
- 理解提议变更:解析变更内容、原因、期望结果以及明确不发生变化的部分,并对变更类型进行分类。
- 变更分类与风险:将变更归为配置变更、缺陷修复、新增功能(附加式)、向后兼容的 API 变更、破坏性 API 变更、数据库模式变更、服务迁移/替换、共享库更新、基础设施变更、认证/授权变更、数据模型/领域变更等,并对应典型影响范围与风险等级(低/中/高/严重)。
- 影响范围映射:按代码层、API、数据库、服务与集成、基础设施、测试、文档等层面,提供检索命令与检查方法,用于定位受影响的文件、路由、查询、模型、配置、流水线和测试。
- 依赖图:区分直接依赖(上游与下游)与传递依赖(第二层),并建议用可视依赖图呈现。
- 破坏性变更检测:分别列出 API、数据库、共享库三类破坏性变更判断表,标明是否破坏兼容及影响。
- 团队与人员影响:列出哪些团队或角色需要知悉、原因与所需行动,并给出沟通计划表。
- 迁移与发布策略:在存在破坏性变更时,建议分阶段推进(准备、向后兼容、逐步迁移、清理),并提供回滚计划模板。
- 风险矩阵与风险登记表:按可能性与影响评估风险并给出缓解措施与负责人。
- 按变更类型的检查清单:例如 API 变更清单。
使用方式
技能要求在分析提议变更时遵循结构化流程,并要求始终将输出保存为项目根目录下 project-decisions/ 目录中的 Markdown 文件,若目录不存在则创建。文件保存为:project-decisions/YYYY-MM-DD-impact-[kebab-case-topic].md。
资料中提供的输出设置命令为: mkdir -p project-decisions
分析流程从“理解提议变更”开始,解析请求中“变更什么、为何变更、期望结果、明确不变的部分”,随后进行变更类型分类。接着按多个层面执行检索,资料中给出的示例命令包括用于查找引用、导入、受影响文件数量、下游依赖、再导出、类型使用等代码层检索;用于查找 API 路由、端点、版本与 OpenAPI/Swagger 规格的 API 检索;用于查找模型/模式、查询、ORM 查询、迁移、视图/函数/触发器、索引的数据库检索;用于查找外部服务调用、消息队列、webhook、gRPC/protobuf、GraphQL、共享库的服务与集成检索;用于检查 Docker、CI/CD、环境配置、Kubernetes、Terraform、反向代理、监控告警的基础设施检索;用于查找受影响测试、测试夹具/模拟的测试检索;以及用于查找文档、API 文档、内联文档、ADR/决策记录的文档检索。
适用场景
- 在实施新功能、缺陷修复、重构、迁移、弃用等变更前,评估其对现有系统的影响。
- 评估 API 变更、数据库模式变更、共享库更新、基础设施变更、认证授权变更等高风险改动的兼容性与波及范围。
- 需要梳理受影响团队、制定沟通计划、迁移与回滚策略时。
- 需要产出结构化、可归档的影响分析文档时。
限制
资料未提供具体的收费、价格、平台限制或效果保证等信息。技能中给出的命令为示例检索命令,实际使用时需根据具体代码库、技术栈与目录结构进行调整。破坏性变更判断表、迁移阶段与风险矩阵为通用模板,需要结合具体变更填写。资料未提供自动化执行、集成方式或与特定工具链绑定的说明。