spec-to-code-compliance
作者 trailofbitsspec-to-code-compliance 用于核对代码是否与书面规范完全一致,适合区块链审计和 Compliance Review。使用 spec-to-code-compliance 技能,可以对照白皮书、设计文档和实现代码,找出缺失的行为,并标记未说明或存在偏差的逻辑。
该技能得分为 78/100,说明它很适合作为目录中面向需要区块链审计规范核对的用户的候选条目。它提供了足够的工作流结构、触发条件指引和输出要求,相比通用提示词能明显减少试错;但用户仍应预期这是一个较为专门、且文档依赖较强的流程。
- 明确列出适用场景和具体触发条件,便于将代码与规范、白皮书和协议文档进行对照。
- 通过检查清单和必需的 IR/输出格式提供了清晰的操作指引,包括完整性阈值和逐行证据要求。
- 主体内容充实,包含多项支持性资源,说明这是一个真实可用的工作流,而不是演示或占位内容。
- 高度聚焦于区块链/规范合规,因此并不适合作为通用代码审查或漏洞排查技能。
- 未提供安装命令或脚本化自动化方案,因此实际采用效果取决于用户是否严格按书面流程执行。
spec-to-code-compliance 技能概览
spec-to-code-compliance 是一项聚焦审计技能,用来检查代码是否与书面规范完全一致。它最适合区块链和协议团队做有证据支撑的合规审查,而不是泛泛的代码审查。当你同时拥有规范和实现,并且需要回答一个严肃问题——实现了什么、缺了什么、在行为、不变式或安全保证上有哪些偏差——就应该使用 spec-to-code-compliance 技能。
这个技能的用途
这个技能专为规范到代码的一致性分析而设计,尤其适用于智能合约、协议逻辑,以及其他带有正式文档的高风险代码库。它可以帮助发现白皮书、设计文档与代码之间的差距,包括遗漏的工作流、被改动的假设、未文档化的行为,以及不完整的安全约束。
最适合的用户和任务
它非常适合审计员、协议工程师、安全评审人员,以及正在准备 Compliance Review 的技术产品经理。如果你需要在上线前把预期行为和真实代码逐项对照,这个技能提供的工作流会比普通提示词更严格、更可控。
主要差异点
spec-to-code-compliance 的核心价值在于可追溯性:它会把分析推向明确的规范抽取、代码级证据和一致性核对。相比让 AI 一次性“审一下代码”,这种方式更可靠。
如何使用 spec-to-code-compliance 技能
安装并启用它
先使用该技能的 repo 安装路径,然后把模型指向你要检查的具体代码库和规范文档。典型的 spec-to-code-compliance 安装流程是先从 trailofbits/skills 中的插件路径开始,再在同时包含文档和源码的 repo 里运行该技能。
提供正确的输入
要把 spec-to-code-compliance 用好,请提供:
- 规范来源或多个来源
- 目标代码库或具体 commit
- 精确范围,例如某个合约、模块或协议流程
- 任何已知的排除项、假设或审查标准
弱请求是:“看看它是否符合规范。”
更强的请求是:“对照 docs/whitepaper.md 和 contracts/Router.sol,检查 swap 滑点、deadline 处理和授权逻辑,并标出任何规范未覆盖的行为。”
先读这些文件
先看 SKILL.md,再阅读 resources/OUTPUT_REQUIREMENTS.md、resources/COMPLETENESS_CHECKLIST.md 和 resources/IR_EXAMPLES.md。这些文件会说明该技能期望抽取什么内容、如何判断完整性,以及一份合格的一致性记录应该长什么样。
能带来更好结果的工作流
一个实用的 spec-to-code-compliance 处理流程是:
- 找出规范中包含要求、不变式和工作流的章节
- 把每一条要求映射到代码里的具体函数、modifier 和状态变更
- 记录每一处不一致、缺失分支和未文档化假设
- 按严重程度和置信度汇总,而不是按发现数量堆砌
提升质量最大的关键,是把被审查的行为说清楚。只要把范围收窄到一个流程、一个合约或一组不变式,输出通常就会更精准,也更容易验证。
spec-to-code-compliance 技能常见问题
spec-to-code-compliance 只适合区块链代码吗?
不是,但它显然是为区块链和协议文档优化的。如果你的项目没有正式规范、白皮书或设计文档,这个技能通常就不是合适的工具。
它和普通代码审查提示词有什么不同?
普通提示词可能会发现 bug 或概述代码。spec-to-code-compliance 则是用于合规审查:它检查实现是否符合文档化意图,包括遗漏内容和不匹配的保证。
新手需要审计经验才能用吗?
不需要。只要能清楚提供规范和代码,新手也可以使用 spec-to-code-compliance 技能。关键要求不是经验,而是资料选择准确、问题边界明确。
什么情况下不该用它?
当你只是想写文档、广泛寻找漏洞,或只是想快速理解陌生代码时,不要用它。如果没有权威规范,分析的意义会明显下降,匹配度也会很弱。
如何改进 spec-to-code-compliance 技能
重点关注最重要的规范主张
想让 spec-to-code-compliance 的结果更好,就优先处理对用户、对安全或对经济性有影响的要求:不变式、角色、信任边界、状态转换,以及明确写成 MUST/NEVER 的语句。这些主张最可能影响 Compliance Review 的判断。
提供明确的证据边界
尽可能把文档名称、代码路径,以及 commit 或 tag 直接给模型。如果你知道审查应该排除测试辅助代码、管理脚本或无关模块,也要提前说明。清晰的边界可以减少误报缺口,让分析始终落在预期的实现表面上。
留意常见失败模式
最常见的薄弱点是隐含的规范主张、隐藏的状态转换,以及看起来对得上、实际上只对了一半的匹配。如果第一次结果不够明确,可以要求模型输出更紧的对齐表,把每一条规范主张对应到一个代码位置,或者注明它尚未实现。
用更明确的第二轮提问继续收敛
如果第一次输出太宽泛,可以用下面这些方式进一步收紧:
- “只检查授权和升级路径”
- “把费用计算与规范公式逐项对比”
- “列出所有在代码中找不到对应实现的规范主张”
这类追问会把 spec-to-code-compliance 从概述工具变成精确的验证工作流。
