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