关于 blast-radius
blast-radius 是用于代码审查的技能,可追踪差异可能在改动文件之外引发的故障,并要求用可执行检查支撑安全结论,或明确标出证据缺口。
主要功能
- 01追踪改动对外部使用方和边界的影响
- 02按证明阶梯评估安全证据
- 03基于引用评估可达风险
- 04提出合并前的针对性测试
适用场景
- 01审查跨越子系统边界的改动
- 02检查生命周期、架构或依赖行为
- 03识别并验证潜在回归路径
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scottwater/ skills --skill blast-radius安装后在 Claude Code 中输入/blast-radius确认已加载。
详细介绍
影响范围
查找差异可能造成的影响,不限于它触及的文件。只有关键安全结论得到代码、可执行检查或明确指出的证据缺口支持时,结果才有用。
当这些分支与问题相关时,使用 how 跟踪运行时行为,并使用 why 找回历史约束。
证据阶梯
对每项安全关键结论,尽可能沿此阶梯深入,直到达到仓库和可用工具所允许的程度:
- 断言。 看似合理但没有证据的说法。
- 源码。 具体的
file:line、固定版本的依赖源码、架构或协议定义。 - 追踪。 分步说明故障是否会影响到受影响边界。
- 可执行检查。 调用生产路径,并在结论不成立时失败的脚本或测试。
- 运行时复现。 在运行中的系统中复现该行为。
将第 1 和第 2 级视为线索。若安全关键结论无法达到第 4 级,应标记为未经证明,并说明是什么阻碍了更有力的证明。
工作流
1. 确定变更边界
阅读差异,识别所有新增、修改和删除的符号或行为。纳入隐式变更,例如时序、顺序、默认值、序列化和错误处理。如果差异中缺少决策背景,则找回相关提交或理由。
完成条件: 每项变更后的行为都有明确的变更前后说明。
2. 找出支撑安全性的关键事实
找出使变更安全的一到两个关键事实。例如幂等性保证、调用方不变量、兼容性承诺或生命周期顺序约束。措辞应确保可通过可执行检查证伪。
完成条件: 证伪所列任何事实,都能揭示一条具体的故障路径。
3. 超越符号搜索进行追踪
跟进直接调用方,以及符号搜索容易遗漏的边界:
- 固定版本的依赖行为和本地补丁;
- 任务队列、回调、拆除和生命周期顺序;
- API、架构、数据库、文件和线缆格式;
- 使用同一数据的其他语言或服务;
- 标志、配置、缓存和下游任务。
搜索当前和先前的名称、值与格式。当无匹配结果本身属于相关证据时,记录这些搜索。
完成条件: 每项变更后的行为都已追踪到外部使用方,或已追踪到经验证可将其限制在内的边界。
4. 评估风险
对每项候选风险,说明:
- 故障机制;
- 附有引用的受影响调用方或边界;
- 有证据支持的可能性和影响;
- 可用于确认或排除风险的最简检查。
区分已确认的风险和已排除的候选风险。若推测性风险不存在可达的故障路径,则省略。
完成条件: 每项保留的风险都有一条从变更到可观察故障的引用路径。
5. 证明关键事实
优先使用针对性脚本或测试,导入并运行产品实际使用的同一段代码。运行该检查,并记录命令、结果和相关输出。若运行时复现成本低且能显著增强证据,则使用运行时复现。
对于范围较广的变更,按相互独立的依赖领域拆分审查,并汇总结果。仅在运行时支持并行审查者时才使用;该方法不得依赖特定的 Agent 或模型。
完成条件: 每项关键事实都有对应的证据阶梯级别,以及实际可获得的最强证据。
输出
变更内容
描述行为差异,包括不明显的时序、格式或生命周期影响。
支撑安全性的关键事实
对每项事实给出其证据阶梯级别、证据和状态:已证明或未经证明。
已确认的风险
仅列出可达的故障。包括位置、可能性、影响,以及检查或缓解措施。
已排除的候选风险
列出调查后排除的合理风险,并引用用于排除这些风险的证据。
合并前
提供能保护真实边界的最小测试或复现步骤。包括调查期间创建的任何脚本。
完成标准: 审阅者可以复现证明,区分已确认的风险与不确定性,并查看所有剩余的缺口。