关于 code-maturity-assessor
Code Maturity Assessor 是依据 Trail of Bits 九类框架评估代码库成熟度的技能,面向需要基于证据审查安全与工程实践的团队。它逐类分析代码并结合提问补足代码外的信息,生成评分卡、详细依据和优先级改进路线图。
主要功能
- 01探索代码、测试和文档结构
- 02按九类框架逐项评估
- 03提供带文件引用的发现
- 04通过问题补充流程背景
- 05生成成熟度评分卡和改进路线图
适用场景
- 01评估智能合约或模块的代码成熟度
- 02审查测试、文档和访问控制实践
- 03整理有证据支撑的改进优先级
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trailofbits/ skills --skill code-maturity-assessor安装后在 Claude Code 中输入/code-maturity-assessor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/trail-of-bits-mark.svgresources/ASSESSMENT_CRITERIA.mdEXAMPLE_REPORT.mdREPORT_FORMAT.md详细介绍
代码成熟度评估器
用途
使用 Trail of Bits 的 9 类框架,系统评估代码库的成熟度。提供基于证据的评级和可执行的建议。
框架:Building Secure Contracts - Code Maturity Evaluation v0.1.0
工作原理
阶段 1:探索
探索代码库,了解:
- 项目结构和平台
- 合约/模块文件
- 测试覆盖率
- 文档可用性
阶段 2:分析
针对 9 个类别中的每一个,我会:
- 搜索代码中的相关模式
- 阅读关键文件以评估实现情况
- 展示调查结果并注明文件引用
- 询问澄清问题,了解无法从代码中看到的流程
- 根据标准确定评级
阶段 3:报告
生成:
- 执行摘要
- 成熟度评分卡(涵盖全部 9 个类别的评级)
- 附有证据的详细分析
- 按优先级排序的改进路线图
评级体系
- 缺失(0):不存在/未实现
- 较弱(1):有多项重大改进需求
- 中等(2):达到基本要求,仍可改进
- 令人满意(3):高于平均水平,仅需少量改进
- 强(4):表现出色,仅有少量可改进之处
评级逻辑:
- 任何标准为“较弱”→ 较弱
- 没有“较弱” + 有部分“中等”标准未达标 → 中等
- 所有“中等”标准达标 + 部分“令人满意”标准达标 → 令人满意
- 所有“令人满意”标准达标 + 实践表现出色 → 强
9 个类别
我会评估 9 个全面的类别,涵盖代码成熟度的各个方面。详细标准、分析方法和评级门槛,请参见 ASSESSMENT_CRITERIA.md。
快速参考:
1. 算术
- 溢出保护机制
- 精度处理和舍入
- 公式规范
- 边界情况测试
2. 审计
- 事件定义和覆盖范围
- 监控基础设施
- 事件响应规划
3. 身份验证/访问控制
- 权限管理
- 角色分离
- 访问控制测试
- 密钥泄露场景
4. 复杂度管理
- 函数范围和清晰度
- 圈复杂度
- 继承层次结构
- 代码重复
5. 去中心化
- 中心化风险
- 升级控制机制
- 用户退出途径
- 时间锁/多重签名模式
6. 文档
- 规范和架构
- 内联代码文档
- 用户故事
- 领域术语表
7. 交易排序风险
- MEV 漏洞
- 抢先交易防护
- 滑点控制
- 预言机安全
8. 底层操作
- 汇编用法
- 不安全代码段
- 底层调用
- 合理性说明和测试
9. 测试与验证
- 测试覆盖率
- 模糊测试和形式化验证
- CI/CD 集成
- 测试质量
如需查看完整的评估标准,包括我将分析的内容、要向你询问的问题以及详细的评级门槛(较弱/中等/令人满意/强),请参见 ASSESSMENT_CRITERIA.md。
输出示例
评估完成后,你将收到一份全面的成熟度报告,其中包括:
- 执行摘要:总体评分、3 项主要优势、3 项主要差距、优先建议
- 成熟度评分卡:包含全部 9 个类别评级、分数和备注的表格
- 详细分析:按类别逐项分析,并附有证据(文件:行号引用)
- 改进路线图:按优先级排序的建议(严重/高/中),附带工作量估算
完整的评估报告示例,请参见 EXAMPLE_REPORT.md。
评估流程
调用时,我将:
-
探索代码库
- 查找合约/模块文件
- 确定测试文件
- 定位文档
-
分析各个类别
- 搜索相关代码模式
- 阅读关键实现
- 根据标准进行评估
- 收集证据
-
交互式评估
- 展示我的发现及文件引用
- 询问无法从代码中了解的流程
- 讨论边界案例
- 共同确定评级
-
生成报告
- 执行摘要
- 成熟度评分表
- 基于证据的详细分类分析
- 按优先级排序的改进路线图
常见借口(不可跳过)
| 借口 | 为什么不对 | 必须采取的行动 |
|---|---|---|
| “找到了一些发现,评估完成了” | 评估要求审查全部 9 个类别 | 使用每个类别的证据,完成全部 9 个类别的评估 |
| “我看到有事件,审计类别看起来不错” | 仅有事件并不代表审计成熟度 | 检查日志记录的完整性、测试和事件响应流程 |
| “代码看起来简单,复杂度很低” | 表面上的简单会掩盖组合复杂性 | 分析圈复杂度、依赖深度和状态机转换 |
| “这不是 DeFi 协议,MEV 类别不适用” | MEV 的范围不止 DeFi(治理、NFT、游戏等) | 在宣布不适用前,先通过交易排序分析进行验证 |
| “没找到汇编,低级类别不适用” | 低级风险包括外部调用、delegatecall 和内联汇编 | 跳过类别前,搜索所有低级模式 |
| “这花的时间太长了” | 全面评估需要逐个类别投入时间 | 完成全部 9 个类别,并询问链下流程的澄清问题 |
| “我可以在没有证据的情况下评级” | 没有文件:行号引用的评级属于未经证实的断言 | 为每个类别的评估收集具体的代码证据 |
| “用户会知道该改进什么” | 含糊的指导无法转化为行动 | 提供按优先级排序的路线图,列出具体改进和工作量估算 |
报告格式
详细的报告结构和模板请参阅 REPORT_FORMAT.md。
结构:
-
执行摘要
- 项目名称和平台
- 整体成熟度(平均评级)
- 3 大优势
- 3 大关键缺口
- 优先级建议
-
成熟度评分表
- 包含全部 9 个类别的表格
- 评级和分数
- 关键发现说明
-
详细分析
- 各类别的分析
- 带文件:行号引用的证据
- 缺口和改进措施
-
改进路线图
- CRITICAL(立即)
- HIGH(1-2 个月)
- MEDIUM(2-4 个月)
- 工作量估算和影响
准备开始
预计耗时:30-40 分钟
我需要:
- 访问完整代码库
- 了解你的流程(监控、事件响应、团队实践)
- 项目背景(DeFi、NFT、基础设施等)
让我们开始评估这个代码库吧!
评论
支持 Markdown