\ud83e\udd9e Nm Pensive Blast Radius — 代码影响范围分析

v1.0.0

使用代码知识图谱分析代码变更的影响范围,提供风险评分、受影响节点、未测试函数和代码审查优先级建议。

0· 22·1 当前·1 累计
athola 头像by @athola·MIT-0
下载技能包 项目主页
License
MIT-0
最后更新
2026/4/15
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
medium confidence
该技能的需求和指令与其声明的目的(影响范围/影响分析)一致,但它依赖运行本地工具(gauntlet Python 脚本或其他 CLI),因此在使用前应验证这些工具。
评估建议
该技能似乎能实现其声称的功能:检查 git 变更并在可用时查询本地代码图谱工具。在使用前,确保其运行的任何本地工具都是可信的:验证 ~/.claude/plugins/gauntlet/graph_query.py(或等效文件)的内容,并对运行未知的 Python/CLI 工具保持谨慎。如需更安全,可在一次性容器中运行命令或手动检查输出,而不是自动执行建议的脚本。如果没有安装 gauntlet 插件或 sem,回退的 grep/rg 方法功能较弱但可避免执行第三方 Python 代码。...
详细分析 ▾
用途与能力
该技能声称使用代码知识图谱计算影响范围,其运行时指令实际上尝试图查询、回退到跨文件追踪工具并使用 git diffs — 这些与其声明的目的相符。
指令范围
指令保持在代码库分析范围内(git、rg/grep、sem),并可选择调用本地 gauntlet graph_query.py;这是预期的,但该技能明确运行来自 ~/.claude/plugins 的代码,这是任意的本地代码,应在执行前进行信任检查和审查。
安装机制
无安装规范或外部下载 — 仅限指令。这降低了安装风险;唯一的运行时风险是执行现有的本地工具(python3、sem、rg)(如果存在)。
凭证需求
该技能不请求环境变量或外部凭证。但是它会从用户的 ~/.claude/plugins 路径读取并执行 Python 脚本,并扫描仓库文件;这些操作与影响分析成正比,但需要信任本地插件代码。
持久化与权限
该技能不是始终启用的,也不请求提升的或持久的权限或修改其他技能。它仅在调用时运行并执行本地分析命令。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/15

Blast Radius 技能初始版本发布: - 使用风险评分和代码知识图谱分析代码变更影响。 - 识别受影响的节点、未测试的函数和审查优先级。 - 支持与 gauntlet 插件深度分析;如果缺失则支持手动和回退模式。 - 根据测试覆盖率、安全性、流程角色、跨模块调用和调用者数量对风险进行排名。 - 为高风险或安全敏感变更建议优先审查操作。

无害

安装命令

点击复制
官方npx clawhub@latest install nm-pensive-blast-radius
镜像加速npx clawhub@latest install nm-pensive-blast-radius --registry https://cn.longxiaskill.com

技能文档

Night Market Skill — 移植自 claude-night-market/pensive。要获得包含 agents、hooks 和命令的完整体验,请安装 Claude Code 插件。

# 影响范围分析

使用代码知识图谱分析当前代码变更的影响。

前置条件

此技能需要 gauntlet 插件来获取图数据。检查是否可用:

GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "/gauntlet/" 2>/dev/null | head -1)

如果未安装 gauntlet(GRAPH_QUERY 为空): 回退到使用 git diffgrep 追踪导入和调用站点的手动影响分析。跳过图步骤,直接进入步骤 3(手动模式)。

如果安装了 gauntlet 但不存在 graph.db: 告诉用户:"请先运行 /gauntlet-graph build。"

步骤

  • 显示当前变更:运行 git diff --stat 向用户显示哪些文件发生了变更。
  • 运行影响分析(需要 gauntlet):
python3 "$GRAPH_QUERY" \
  --action impact --base-ref HEAD --depth 2

回退层级 1(sem 可用,无 gauntlet):使用 sem 进行跨文件依赖追踪:

if command -v sem &>/dev/null; then
  sem impact --json 
fi

这会追踪真实的函数级依赖而不是文件名匹配。参见 leyline:sem-integration 的检测模式。

回退层级 2(无 sem,无 gauntlet):使用 rg(或 grep)追踪变更函数的调用者:

# 优先使用 rg 以提高速度;如不可用则回退到 grep
if command -v rg &>/dev/null; then
  git diff --name-only HEAD | while read f; do
    rg -l "$(basename $f .py)" --type py . 2>/dev/null
  done | sort -u
else
  git diff --name-only HEAD | while read f; do
    grep -rl "$(basename $f .py)" --include="*.py" . 2>/dev/null
  done | sort -u
fi
  • 按优先级顺序显示结果:将输出格式化为表格:
 Risk | Node | File | Reason
0.85 | auth.py::verify_token | auth.py:45 | untested, security
0.62 | db.py::execute_query | db.py:112 | high fan-in
0.41 | api.py::handle_request | api.py:78 | flow participant
  • 突出显示未测试的函数:列出任何缺乏测试覆盖率的受影响函数(无 TESTED_BY 边)。
  • 显示整体风险:根据最高风险分数显示整体风险级别(低/中/高)。
  • 建议操作
  • 对于高风险节点:"合并前考虑添加测试"
  • 对于安全敏感节点:"仔细审查认证和授权逻辑"
  • 对于高扇入节点:"此处的变更影响许多调用者;验证向后兼容性"

风险评分模型

五个加权因素(总和上限为 1.0):

| 因素 | 权重 | 含义 | |--------|--------|---------| | 测试缺口 | 0.30 | 无测试覆盖率 | | 安全性 | 0.20 | 认证/加密/SQL 关键词 | | 流程参与 | 0.25 | 执行流程的一部分 | | 跨社区 | 0.15 | 被其他模块调用 | | 调用者数量 | 0.10 | 高扇入函数 |

数据来源ClawHub ↗ · 中文优化:龙虾技能库