SuperAPI AI 工具集

patch

安全与审计

查看项目

更新于 10-15 16:50

技能介绍

用途:patch 是静态漏洞管道的第三环(/vuln-scan → /triage → /patch),把已验证、排名的安全发现转化为候选修复 diff。它从不把 diff 应用到目标仓库,输出只是放在 ./PATCHES/ 的惰性文本,供人在管道外审核与使用;按设计没有 --apply 或 --approve 选项,因此该能力不存在,也就无法被提示注入利用。

调用方式:/patch <findings-path> [--repo PATH] [--top N] [--id fNNN] [--model M] [--fresh]。findings 路径为必填的首个位置参数,可为 TRIAGE.json、VULN-FINDINGS.json、pipeline 的 results/<target>/<ts>/ 目录,或 /triage 能识别的任意 JSON。--repo 指定只读目标代码库(默认当前目录),静态模式下必需;--top N 只处理最严重的前 N 个真阳性;--id fNNN 只处理指定发现;--model 在执行验证模式下透传给 vuln-pipeline patch;--fresh 忽略 ./.patch-state/ 检查点重新开始。

主要能力:流程分阶段。阶段 0 解析参数并判定模式(execution-verified 或 static);阶段 1 读取并按优先级归一化多种输入容器(TRIAGE.json、VULN-FINDINGS.json、INCIDENTS.json、pipeline 结果目录或通用 JSON),统一字段别名并补充 id 与来源。静态模式下会过滤无法定位文件的发现并记录跳过原因。

生成补丁:执行验证模式委托 vuln-pipeline patch,由管道自带构建、复现、回归、再攻击阶梯验证,读取 patch_result.json 记录裁决,并跳过阶段 3。静态模式则为每个发现启动一个只读补丁子代理,要求先读代码、从零根因追踪、变体检索、最小 diff、对抗性自检,并附一个回归测试;找不到测试目录则在 <test_note> 说明。补丁以带标签的文本 diff 返回,由编排器写入 PATCHES/bug_NN/patch.diff。

独立审核:静态模式阶段 3 为每个 diff 启动一个审核子代理,审核者不看发现描述、建议或作者理由,仅凭位置、类别与 diff 原文重新判断范围、是否症状抑制、是否引入新攻击面及风格评分,最后给出 ACCEPT 或 REJECT。角色分离可避免发现文本中的指令同时触达作者与门禁。

工具与写入范围限制:优先 Read、Glob、Grep、Write、Task;部分会话未提供 Glob 或 Grep 时,回退到白名单只读 Bash 命令(rg/grep、ls、head/file/wc、jq),Bash 其余仅允许运行检查点脚本与 vuln-pipeline patch,find 不被允许。Write 只能写入 ./PATCHES/ 和 ./.patch-state/,绝不写入 --repo,绝不 git apply、patch 或编辑目标源码;若某步骤似需要,则该步骤即错误。

检查点:状态持久化到 ./.patch-state/,使新的 /patch 会话可断点续跑,所有检查点 I/O 通过 python3 .claude/skills/_lib/checkpoint.py 原子化、JSON 校验完成;状态文件包括 progress.json、phaseN.json、_chunk.tmp。运行时以 load 读取,status 为 absent、complete 或带 --fresh 时以 reset 重来,running 且 phase_done==N 时按顺序读取此前阶段并提示从第 N+1 阶段继续,避免重复启动已完成子代理。每个阶段用 save 保存,每个发现用 shard 保存,全部完成写 PATCHES.md 与 PATCHES.json 后调用 done 标记结束。

适用场景:适合对已验证安全发现进行候选修复的生成与独立复核,尤其是需要人工最终把关、不希望自动改代码的安全流程。限制:不自动应用补丁;静态模式无 PoC,由新上下文审核者作为 oracle,验证强度弱于执行验证模式;被引用文件在 --repo 下无法解析时会停止;补丁子代理与审核者均为只读,不能构建、运行或联网;外层工具对输出长度、格式与转义处理有容错要求。其他未在资料中说明的收费、平台或性能等事实暂未提供。