mcpField
B
blast-radius

blast-radius

github.com/scottwater测试与质量151 次安装1 周前更新
代码仓库

关于 blast-radius

blast-radius 是用于代码审查的技能,可追踪差异可能在改动文件之外引发的故障,并要求用可执行检查支撑安全结论,或明确标出证据缺口。

主要功能

  1. 01追踪改动对外部使用方和边界的影响
  2. 02按证明阶梯评估安全证据
  3. 03基于引用评估可达风险
  4. 04提出合并前的针对性测试

适用场景

  1. 01审查跨越子系统边界的改动
  2. 02检查生命周期、架构或依赖行为
  3. 03识别并验证潜在回归路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scottwater/skills --skill blast-radius

安装后在 Claude Code 中输入/blast-radius确认已加载。

详细介绍

影响范围

查找差异可能造成的影响,不限于它触及的文件。只有关键安全结论得到代码、可执行检查或明确指出的证据缺口支持时,结果才有用。

当这些分支与问题相关时,使用 how 跟踪运行时行为,并使用 why 找回历史约束。

证据阶梯

对每项安全关键结论,尽可能沿此阶梯深入,直到达到仓库和可用工具所允许的程度:

  1. 断言。 看似合理但没有证据的说法。
  2. 源码。 具体的 file:line、固定版本的依赖源码、架构或协议定义。
  3. 追踪。 分步说明故障是否会影响到受影响边界。
  4. 可执行检查。 调用生产路径,并在结论不成立时失败的脚本或测试。
  5. 运行时复现。 在运行中的系统中复现该行为。

将第 1 和第 2 级视为线索。若安全关键结论无法达到第 4 级,应标记为未经证明,并说明是什么阻碍了更有力的证明。

工作流

1. 确定变更边界

阅读差异,识别所有新增、修改和删除的符号或行为。纳入隐式变更,例如时序、顺序、默认值、序列化和错误处理。如果差异中缺少决策背景,则找回相关提交或理由。

完成条件: 每项变更后的行为都有明确的变更前后说明。

2. 找出支撑安全性的关键事实

找出使变更安全的一到两个关键事实。例如幂等性保证、调用方不变量、兼容性承诺或生命周期顺序约束。措辞应确保可通过可执行检查证伪。

完成条件: 证伪所列任何事实,都能揭示一条具体的故障路径。

3. 超越符号搜索进行追踪

跟进直接调用方,以及符号搜索容易遗漏的边界:

  • 固定版本的依赖行为和本地补丁;
  • 任务队列、回调、拆除和生命周期顺序;
  • API、架构、数据库、文件和线缆格式;
  • 使用同一数据的其他语言或服务;
  • 标志、配置、缓存和下游任务。

搜索当前和先前的名称、值与格式。当无匹配结果本身属于相关证据时,记录这些搜索。

完成条件: 每项变更后的行为都已追踪到外部使用方,或已追踪到经验证可将其限制在内的边界。

4. 评估风险

对每项候选风险,说明:

  • 故障机制;
  • 附有引用的受影响调用方或边界;
  • 有证据支持的可能性和影响;
  • 可用于确认或排除风险的最简检查。

区分已确认的风险和已排除的候选风险。若推测性风险不存在可达的故障路径,则省略。

完成条件: 每项保留的风险都有一条从变更到可观察故障的引用路径。

5. 证明关键事实

优先使用针对性脚本或测试,导入并运行产品实际使用的同一段代码。运行该检查,并记录命令、结果和相关输出。若运行时复现成本低且能显著增强证据,则使用运行时复现。

对于范围较广的变更,按相互独立的依赖领域拆分审查,并汇总结果。仅在运行时支持并行审查者时才使用;该方法不得依赖特定的 Agent 或模型。

完成条件: 每项关键事实都有对应的证据阶梯级别,以及实际可获得的最强证据。

输出

变更内容

描述行为差异,包括不明显的时序、格式或生命周期影响。

支撑安全性的关键事实

对每项事实给出其证据阶梯级别、证据和状态:已证明或未经证明。

已确认的风险

仅列出可达的故障。包括位置、可能性、影响,以及检查或缓解措施。

已排除的候选风险

列出调查后排除的合理风险,并引用用于排除这些风险的证据。

合并前

提供能保护真实边界的最小测试或复现步骤。包括调查期间创建的任何脚本。

完成标准: 审阅者可以复现证明,区分已确认的风险与不确定性,并查看所有剩余的缺口。

评论

支持 Markdown