修复验证记录
修复由 Dvalin 验证,而不是由写下它的人验证。记录里有修复前后的目标、Dvalin 跑了哪些命令和它观察到的退出码,以及这次扫描究竟覆盖了什么 —— 用 dvalin verify-fix 可离线复验。
开放规范
Agent 修好了一个安全问题之后,由 Dvalin 判断它到底修好没有 —— 重新扫描、亲自跑你的测试、读它自己启动的进程返回的退出码。修复是谁写的只被记录,绝不参与判定。


所有人都在卷「发现漏洞」和「修漏洞」。几乎没有人在回答下一个问题: 你怎么知道这个修复是真的修好了?
在大多数工具里,这个答案来自写下修复的那个模型 —— 直接问它,或者去解析它对自己 做了什么的自述。而这恰恰是模型最无法违背自身利益去诚实回答的问题,改多少遍 prompt 都没用。
Dvalin 把这个判断权从修复者手里彻底拿走:
| 谁改代码 | 任何 agent,或者人。只作为元数据记录。 |
| 谁判断修好没有 | Dvalin:它重新扫描,并亲自跑你项目自己的检查。 |
| 判定依据是什么 | Dvalin 自己启动的进程返回的退出码。绝不是别人递过来的报告。 |
| 你拿到什么 | 一份任何人都能离线复验的记录,不需要工作区,也不需要联网。 |
没有任何检查能确认的修复,不会通过 —— 「没东西可跑」不算通过。而且每份记录都 带着这次扫描实际覆盖了什么,所以半数引擎缺失时的「没发现问题」,永远不会读起来像 一次完整扫描的结论。开放规范 →
不必凭口头信任——在你自己的机器上验证:
curl -fsSL https://raw.githubusercontent.com/arthurpanhku/dvalincode/main/scripts/install.sh | bash
dvalincode trust
dvalincode dvalin . --scanners builtin,semgrep,trivy,osv-scanner这条 Dvalin 命令会运行内置规则,以及 PATH 中已安装的受支持开源引擎。 加上 --fix --verify --record fix-record.json 可以准备聚焦修复、运行测试, 并写出那份记录。这份记录可以直接交给任何人:
dvalin verify-fix fix-record.jsonFix record 2c9d71ac03e0 · VERIFIED · scan-and-checks
executor: claude-code (recorded, not consulted)
targets: 1 before · 0 remaining
coverage: complete → complete
✓ test: npm run test (exit 0)
audit: run verify-36509f42 @ 414644c75af0同样的检查也能跑在 PR 上 —— 给 GitHub Action 传 fix-record:,它会在 runner 上 重新推导这份记录,然后把结果贴在 diff 旁边。签发之后被改过的记录会在那里失败, 并让整个 job 失败。

上面的真实案例改编自 OWASP NodeGoat:三处 eval 调用改为受约束的数值解析并 新增一条注入回归测试后,从 10 条发现、22/F 变为 0 条、100/A。该分数是分诊 启发式,不是认证。
Dvalin 将 MIT 许可的 DvalinCode 流水线与开源 Semgrep CE、 Trivy、 OSV-Scanner 和 SARIF 2.1 互操作结合起来。 扫描证据指导配置的模型;DvalinCode 记录 diff、运行项目测试、复扫,并要求用户 显式发布 PR。 Codex Security 等专业 Agent 也可以把 SARIF 导入同一个 case 和门禁流程, 而 Dvalin 不接管它们的凭据或密封扫描工件。Dvalin 也可以独立完成发现、修复和 验证闭环;互操作是一种选择,不是产品边界。
代理完成工作后仍可事后证明它做过什么:
dvalincode report verify # 重新推导上次运行审计日志的哈希链Windows 构建和各平台手动下载见 Releases 页面, 每个压缩包都附带 SHA256SUMS.txt 和构建来源证明(provenance attestation)。
直接运行 dvalincode 得到交互式终端代理——流式输出、行内审批、红绿 diff; 或者 dvalincode serve 启动网页 GUI 供浏览器和远程使用。实验性的桌面应用 在独立的预发布轨道上发布。三者驱动同一个代理内核。

新版 Dvalin 面板把模型检查、项目测试报告、确定性复扫、扫描覆盖率、安全门禁和 离线记录状态放在一起。干净分数只是证据的一部分;advisory gate、缺失的 Fix Record 以及 Git 发布阻塞项都会与结果同时展示。

DvalinCode 是一个 Agent 可调用的安全运行时:它可以独立运行、在安全发现和修复 领域参与竞争,也可以与专业系统互操作;但它不以替代所有通用 Coding Agent 为目标。 产品本身是人类或 Agent 代码合并前,安全、合规或平台团队所需要的发现、证据、修复 与强制执行层:
建议从威胁模型读起,了解完整攻击面——恶意 AGENTS.md、被投毒的 MCP 服务器、提示注入升级、数据外流、审计篡改——每一项都对应到防御它的控制措施, 以及诚实标注的残余风险。
诚实的适配判断——我们比拼的是可衡量的安全结果和“可审批”,而不是包打天下。
选择 DvalinCode,当……
另寻他处,当……
📖 文档正文目前为英文。