Verity

Verity 如何检查一个仓库

Verity 只回答一个问题:这个目标能否在当前电脑上完成仓库声明的运行步骤?

1. 读取仓库中已提交的文件

Verity 从清单、锁文件、脚本、框架入口、测试配置和健康检查开始。README 命令可以帮助人理解项目,但 Verity 不会自动执行。

这些文件告诉 Verity 可以检查哪些应用、库、样例、fixture 和 workspace 成员。

2. 生成运行步骤

Verity 在开始前检查三件事:

  • 每条必要命令是否来自仓库中已提交的文件;
  • 当前电脑是否有项目需要的运行环境;
  • 最终检查能否验证实际行为,而不只是看到进程启动。

缺少锁文件、命令冲突或没有有效的最终检查时,Verity 会在执行前停止。

3. 执行已记录快照

Verity 为仓库生成指纹并创建隔离快照。依赖获取需要明确发生。适配器契约允许时,构建和测试阶段会移除网络访问。逃逸符号链接或源仓库变化会使运行失效。

部分原生目标需要明确确认,因为隔离目录和进程控制不是恶意代码沙箱。

4. 检查实际行为

Verity 把最后的行为检查称为机器 Oracle。它可以是项目声明的测试、服务健康检查、非空 HTML 响应、已提交的无界面测试,或仓库定义的其他检查。只有进程、端口或窗口启动还不够。

Verity 在第一个观察到的阻塞处停止,并保留阻塞、已启动但未验证和已验证之间的区别。

5. 签名本机结果

已验证凭证绑定仓库与快照指纹、目标、宿主、执行环境、Oracle 和时间。Ed25519 签名使同一本机安装后续能够发现篡改。

签名不是远程证明,也不认证源代码安全。完整定义见凭证契约

verity inspect C:\path\to\repository --json
verity check C:\path\to\repository --target TARGET_ID
verity receipt SESSION_ID