关于 formal-verify
formal-verify 是面向重视架构意图的团队的验证技能,不只检查代码能否编译。它将结构规则、行为规格和代码质量审查组合成分阶段验证流程。
主要功能
- 01基于 AST 的结构检查
- 02Z3Py 与 TLA+/Apalache 规格
- 03分阶段验证检查点
- 04含逐行问题的优雅度评分
- 05初始化与规则漂移检查
适用场景
- 01每次编辑后检查架构
- 02高风险合并前验证状态转换
- 03提交前审查代码质量
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ petekp/ claude-code-setup --skill formal-verify安装后在 Claude Code 中输入/formal-verify确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/activation-coordinator.tlasnapshot-contract.pystructural-rules.yamlreferences/agent-feedback-loop.mdbootstrap-process.mdconstraint-yaml-spec.mdlayer1-structural.mdlayer2-behavioral.mdlayer3-elegance.mdspec-authoring-guide.mdscripts/audit-elegance.pyextract-facts.pyinstall-deps.shrun-apalache.shverify-behavioral.pyverify-structural.pyverify.shscripts/elegance/__init__.pycomplexity.pyconsistency.pycraft.py详细介绍
formal-verify
当架构意图比“代码能编译”更重要时,请使用此技能。
此技能会运行一个三层验证循环:
- 第 1 层:根据提取的 AST 事实和声明式规则进行结构验证
- 第 2 层:根据 Z3Py 协议规范和 TLA+/Apalache 状态机规范进行行为验证
- 第 3 层:根据复杂度、一致性和工艺启发式进行优雅度审查
各层按预定层级运行:
- 每次编辑:仅运行第 1 层,速度足以支持持续反馈
- 切片检查点:运行第 1 层和第 2 层
- 提交前和手动执行
/verify:运行全部三层
快速开始
使用以下命令为目标项目进行引导:
/verify --bootstrap
引导过程分为四个阶段:
- 安装依赖项并创建
.verifier/ - 根据文档和代码结构发现架构规则
- 用通俗英语询问用户存在歧义的地方
- 根据当前代码库验证初始规则
命令
/verify以详细模式运行所有层并打印统一报告。/verify --bootstrap安装依赖项,创建.verifier/,并搭建第一组规则。/verify --evolve检查架构文档与现有验证规范之间是否存在偏差。/verify --grade仅运行第 3 层,并报告当前优雅度等级。
验证流程
第 1 层:结构验证
运行器会从 Rust 和 Swift 源文件中提取事实,然后检查
structural.yaml 中的规则,例如:
- 只有模块 X 可以跨越边界 Y
- 匹配模式 Z 的模块必须实现接口 W
- 所有模块都不得引用旧版标识符
结构检查是默认的 PostToolUse hook,因为它们速度最快。
第 2 层:行为验证
行为验证涵盖状态转换和协议约定:
- 使用 TLA+/Apalache 验证时序属性、活性和交错执行
- 使用 Z3Py 规范文件验证约定、不变量和跨边界数据保证
在切片检查点、风险较高的合并前,以及任何涉及协调逻辑或跨语言约定的更改中使用此层。
第 3 层:优雅度审查
优雅度审查会从以下方面为代码评分:
- 复杂度
- 一致性
- 工艺
它会给出等级和逐行扣分,让 Agent 能够清理代码, 而不只是确保代码在技术上正确。
违规处理
发现违规时,应根据受众调整输出内容:
- Agent 输出:反例、诊断和具体的修复建议
- 人类输出:仅提供反例和诊断
如果 Agent 连续三次未能解决同一违规,应停止修复循环 并升级问题,同时提供:
- 原始规则
- 反例
- 三次尝试的修复方案
- 目前仍可能阻碍正确修复的问题
在目标仓库中创建的项目结构
引导过程会创建并维护:
.verifier/
├── structural.yaml
├── elegance.yaml
├── specs/
├── facts/
└── reports/
structural.yaml存储声明式第 1 层规则elegance.yaml存储阈值和等级策略specs/存储 Z3Py 和 TLA+ 行为规范facts/缓存提取的 AST 事实reports/存储最近的验证输出
目标项目应将 facts/ 和 reports/ 添加到 gitignore。
操作指南
- 在宣称迁移已完成前运行
/verify。 - 如果代码正确但仍显粗糙,请运行
/verify --grade。 - 架构有意演进时,优先更新规则和规范,而不是放宽规则和规范。
- 让
SKILL.md专注于编排;详细机制请参阅下方的参考资料。
参考资料
@references/layer1-structural.md事实提取、Z3 编码、可达性和增量失效处理。@references/layer2-behavioral.md何时使用 TLA+/Apalache 而非 Z3Py,以及规约执行契约。@references/layer3-elegance.md指标类别、评级、阈值和 Layer 3 子模块布局。@references/constraint-yaml-spec.md结构规则架构、选择器、断言和事实模式运算符。@references/bootstrap-process.md安装、发现、访谈、验证引导工作流。@references/agent-feedback-loop.md钩子集成、违规注入、重试和升级策略。@references/spec-authoring-guide.md将通俗英文的架构意图转化为形式化规约。
评论
支持 Markdown