用途:当代码库缺乏有意义的测试、需要安全改动时,用该技能生成能捕获非预期行为变化的测试安全网,并如实报告未能覆盖的部分及原因。它位于 verifier-installer(安装 verify→repair 循环)与 clean-code(评判产物)之间,负责把占位测试替换为真实测试。
主要能力:内置六个脚本——与栈无关的风险排序器 assets/rank_risk.py、四种运行时的 I/O 防护脚本(Python 用 assets/io_guard.py,Node 用 assets/io_guard.js,Go 用 assets/io_guard_go.py,Rust 用 assets/io_guard_rust.py)以及契约检查器 assets/contract_check.py。排序器离线、仅用标准库与 git、结果确定,输出 ranked、remainder、not_netted、covered 等键;它自行检测栈并打印判定与证据(如 stack=python (evidence: python=52, node=18, go=0, rust=0)),可传 --stack 覆盖。四种栈端到端完整,因为各自附带可在单测运行期间证明“无 I/O”不变的运行时防护。
使用方式:先解析技能基础目录(SKILL_DIR),例如 SKILL_DIR=$(find ~/.claude ~/.config ~/.agents -type d -name 'test-safety-net' 2>/dev/null | head -1),并用 test -f 校验各脚本存在。确定 Python 3.10 及以上解释器后再执行命令。运行 rank_risk.py <repo> [--top-n N] [--since "6 months ago"] [--stack python|node|go|rust] 排序风险面,向用户展示前 N(默认 10)并等待确认,这是硬性关卡;若 contract_check.py check-grant 返回 0,说明已有授权可继续,并在报告中注明授权 id 与动作类别。之后逐单元编写测试:写故意错误的期望值→运行单个测试要求 RED→改为真实输出→再运行要求 GREEN。每个 RED/GREEN 都需经对应栈的运行防护执行,例如 Python:PYTHONPATH="$SKILL_DIR/assets:$PYTHONPATH" TEST_SAFETY_NET_TIER=1 pytest -p io_guard <path>::<test_name>;Node:TEST_SAFETY_NET_TIER=1 node --require "$SKILL_DIR/assets/io_guard.js" --test --test-name-pattern '^<test_name>$' <path>。Tier 2 需用 TEST_SAFETY_NET_ALLOW 列出所有伪造的可控分组。
适用场景:没有测试但需安全重构或迁移的代码库;在智能体改动前建立安全网。限制:不做正确性审计、不追求覆盖率、不重构代码使其可测;Node 仓库若已配置 jest/vitest/mocha,本版本只排序并回报而不写测试;Go 需先自行 go mod download;Rust 依赖锁文件与本地 cargo 缓存,缺锁文件须先征得同意再运行 cargo generate-lockfile;Node 上须以退出状态而非单测结果判断违规。其余未提供。