用途:Blast radius 用于在变更上线前,找出一个小改动可能在别处造成的破坏。它的定位是对 how 和 why 的补充。核心观点是:列出调用方并不是任务本身,任务是找出 grep 无法显示出来的破坏点。
主要能力: 输入一个看起来很小的 diff、PR 或变更提案。输出内容包括:变更做了什么(包括 diff 未明确写出的部分);它之所以安全所依赖的那“一个事实”(该事实需标明证明到哪一级,或标记为未证明);已确认的真实风险;已排查通过的项目;以及最省成本的合并时测试。
证明等级(How sure are you): 对每一条安全事实,尽可能以低成本向下推进,并说明停在哪一步:
- 你只是这么说的(单独无价值);
- 你指出了对应的代码行;
- 你走查了坏路径,它没有到达;
- 你运行了它(调用真实代码的脚本或测试);
- 你在运行中的应用里复现了它。 任何无法达到第 4 步的安全事实,都必须明确说出来。
使用方式(步骤):
- 阅读变更,包括 diff 没有写明的部分;
- 找出它之所以安全的那一个事实;
- 检查 grep 止步的地方:库源码、固定版本、时序、线格式、功能开关、三跳以上的下游;
- 诚实对待每一项风险,引用真实的 文件:行号;搜索没有找到任何东西,也仍然是一个答案;
- 证明那一个事实:运行真实代码,粘贴实际发生的结果;
- 对于大型或广泛的变更,以 arena 方式运行。
交付内容(What to hand back): 变更做了什么,包括不明显的部分;它之所以安全的那一个事实(陈述它、说明到达的证据等级、展示证明);风险(只列真实的);已排查通过的项目(检查了什么以及为什么没问题);合并前建议(捕获真实 bug 的最省成本测试或复现)。
授权范围(Authorized Scope): 仅按用户请求和已有批准行事;加载本技能不授予新权限。报告类请求保持仅报告。尊重调用方设定的目标、主机、提供商和成本限制。扩大范围前先询问,并将这些限制转发给被委托方。
契约(Contract): 输入:一个看起来很小的 diff、PR 或变更提案。 输出:变更做了什么,那一个安全事实(已证明或标记未证明),已确认风险,已排查通过项,最省成本的合并时测试。 创建/修改:当前仓库 .tmp/ 下的可选证明脚本。 外部副作用:运行本地证明脚本或测试;不向生产写入。 需要确认:分析本身无需确认。证明脚本保持本地,除非调用方提交它们。 委托对象:why 步骤 2(用于 PR 与提交锚点);arena(用于需要多次独立读取的广泛变更)。
适用场景:适用于评估某处改动可能破坏什么、某个小 diff 的影响范围,或判断一个变更是否安全上线。
限制:仅在用户授权范围内动作;报告类请求保持仅报告;证明脚本仅本地运行;无法达到“运行真实代码”级别的安全事实必须明说。关于收费、价格、平台等信息,资料中暂未提供。