安全扫描
OpenClaw
可疑
medium confidenceSkill 在功能上与“Jest 单测管理/补全/诊断”描述大体一致,但存在若干实现细节和边界条件不够严格(如命令拼接、配置文件存放位置与注入风险、以及自动修改源文件的能力),建议在受控环境/分支中先审计并备份再使用。
评估建议
这个技能看起来确实会运行 Jest、生成/解析 coverage,并自动写入测试文件以尝试把覆盖率补到 100%,功能与描述一致。但有几点在使用前务必注意:
1) 在启用前备份或在单独分支/沙箱仓库运行:completer 会编辑测试文件(并可能在极少数情况下修改源文件),以免意外破坏主分支代码。
2) 检查并确认 source.json(jestConfigPath)的内容:脚本把该路径直接拼到 shell 命令里,错误或恶意的路径字符串可能导致命令注入风险。不要把不可信的字符串写入 source.json。最好由你手动填写或审查该文件后再运行 reload。
3) 审阅生成的 config.json 与 .temp 内容:技能将 per-project 配置和覆盖率产物放在 skill 的 .temp 下(skill 包目录),这可能与你预期的项目结构不同,确认路径不会暴露敏感信息或被误提交。
4) 网络/依赖行为:脚本使用 npx 和可能触发 npm 下载,确保在可控网络环境下运行,或事先在项目中安装好依赖(本地 jest),以减少远程包拉取。
5) 命令注入风险:如果你担心安...详细分析 ▾
ℹ 用途与能力
技能名与描述(覆盖率检测、自动补全测试、诊断修复)与包含的脚本/子技能功能对齐;所需权限(读写测试文件、运行 jest/npx)与功能预期相符。唯一偏差是脚本把 per-project 配置(source.json/config.json)放在 skill 包目录下的 .temp 中,而不是直接放在项目目录,这可能令用户意外地将项目相关配置保存在 skill 安装目录。
⚠ 指令范围
运行时的脚本会:读取项目 jest 配置和源码、运行 npx jest(通过 execSync / shell)、解析 coverage 与错误、并在 completer 中使用 Edit/Write/ MultiEdit 修改测试文件(在明确告知下才会修改源文件)。风险点:命令字符串以简单拼接方式构建并传入 shell(例如 testCommand 包含来自 source.jestConfigPath 与其他配置字段),如果这些字段被恶意或意外设置,可能出现命令注入;脚本也会读取/写入项目文件,带来潜在的破坏性改动(虽然文档声明优先修改测试文件)。总体上操作超出“只读分析”的范围,但与“自动补全/修复单测”的目的有关联。
✓ 安装机制
该 skill 是 instruction-only(无安装规范),包含本地脚本文件。没有从远程 URL 下载或在安装时执行未知二进制文件,风险相对较低。
ℹ 凭证需求
技能不请求任何环境变量或外部凭证——这与其本地运行测试/修改文件的目的相称。需要注意的是,它会调用 `npx`/`git`,这些工具可能会访问网络或本地工具链,且运行 `npx` 会在需要时从 npm 拉取包,这是预期行为但有网络依赖。
⚠ 持久化与权限
技能不会设置 always:true,也不请求持久凭证,但会在 skill 包目录生成 `.temp/projects/<hash>/` 和 coverage 报告文件,且允许通过 agent 的 Edit/Write 权限自动修改测试文件(并在特定情况下修改源文件)。自动修改代码是该技能的核心功能,但对不熟悉行为的用户具有潜在破坏性,应该在受控分支或备份下运行。
⚠ scripts/guard-config.cjs:63
Shell command execution detected (child_process).
⚠ scripts/reload.cjs:169
Shell command execution detected (child_process).
⚠ scripts/resolve-project.cjs:30
Shell command execution detected (child_process).
⚠ sub-skills/unittest-checker/scripts/analyze-coverage/index.cjs:63
Shell command execution detected (child_process).
⚠ sub-skills/unittest-completer/scripts/check-coverage-100/index.cjs:47
Shell command execution detected (child_process).
⚠ sub-skills/unittest-doctor/scripts/test-error-reporter/index.cjs:39
Shell command execution detected (child_process).
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.0.32026/4/2
- Added multi-project support: each project's configuration files are now isolated under .temp/projects/<hash>/ to prevent conflicts. - Updated configuration instructions and error handling to reflect the new per-project config system. - Added scripts/resolve-project.cjs; removed config.json and source.json from the root (now managed per project). - Documentation updated to explain config paths, hash calculation, and automatic project detection.
● 可疑
安装命令
点击复制官方npx clawhub@latest install jest-unittest
镜像加速npx clawhub@latest install jest-unittest --registry https://cn.longxiaskill.com
技能文档
根据用户意图路由到对应子技能。
配置
配置文件按项目隔离,存放在 .temp/projects// 下(hash 由项目根路径计算):
source.json— 用户配置的 jest 配置文件路径配置.json— 由重新加载.cjs自动生成的完整配置
各子技能的脚本启动时会自动校验配置和环境。如果返回 error 字段,根据 type 处理:
config_error→ 按hint帮用户配置source.json(路径见错误信息中的sourceJsonPath),执行节点 scripts/重新加载.cjs生成配置,然后重试env_error→ 根据错误信息排查环境问题,解决后重试
用户主动要求 reload 时,直接执行 node scripts/reload.cjs。
多项目支持
本 skill 支持在多个项目间使用而不产生配置冲突。每个项目的 source.json 和 config.json 独立存放在 .temp/projects// 下,切换项目时自动识别。
路由规则
| 用户意图 | 路由到 |
|---|---|
| 查看覆盖率、检查哪些单测覆盖率未达标、覆盖率报告 | unittest-checker |
| 补充测试、让单测覆盖率达到100%、写单测 | unittest-completer |
| 单测报错、单测失败、修复单测、诊断单测问题 | unittest-doctor |
严禁事项
- 严禁手动编辑
配置.json,必须通过重新加载.cjs生成。 - 严禁修改项目的 jest 配置文件来适配本 skill。
- 严禁手动运行 jest 命令来替代脚本,脚本参数由
配置.json提供。
Sub-skills
| Sub-skill | 功能 |
|---|---|
| unittest-checker | 运行测试并分析覆盖率,输出未达标组件列表 |
| unittest-completer | 指定组件名,自动补充测试直到四项覆盖率全部100% |
| unittest-doctor | 运行测试,诊断失败和console警告,支持自动修复 |