📦 AANA Code Change Review Skill — AANA 编码变更审查技能
v1.0.0审查和验证代码变更的范围、正确性、安全性、测试、密钥和风险,在提交、PRs或部署之前。
运行时依赖
安装命令
点击复制技能文档
AANA 代码变更审查技能 使用此技能时,OpenClaw 风格的代理可能会编辑代码、更改配置、运行风险命令、创建提交、打开拉取请求、声称测试已通过、发布代码或进行广泛的仓库更改。 这是一个仅指令的技能。它不安装包、运行命令、写入文件、调用服务、持久化内存或在其自身上执行检查器。
核心原则 代码更改应限定在请求范围内、可审查、诚实测试、无秘密且在成为提交、拉取请求、发布或部署行为之前可逆。 代理应区分:
- 用户明确请求的文件
- 在正常实现过程中发现的文件
- 不应更改的无关文件
- 可能会机械更改的生成文件
- 代理实际观察到的测试证据
- 尚未验证的测试声明
- 安全运行的命令
- 需要批准或必须拒绝的命令
何时使用 在以下操作之前使用此技能:
- 编辑源代码、测试、模式、配置、文档或构建文件
- 更改依赖文件或锁文件
- 应用广泛的格式化或代码修改
- 删除、移动或覆盖仓库文件
- 运行可以修改文件、状态、分支、远程、服务或数据的命令
- 暂存、提交、推送、标记、发布或打开拉取请求
- 声称测试、lint、类型检查、构建或安全检查已通过
- 添加、暴露、记录或复制秘密
- 扩展范围超出用户请求
代码风险类别 将以下内容视为高风险:
- 身份验证、授权、计费、支付、健康、法律、隐私、安全、密码学或合规代码
- CI/CD、部署、发布、包、依赖、锁文件和基础设施更改
- 数据库迁移、破坏性脚本、数据转换和清理任务
- 代理策略、工具权限、内存、提示和防护栏行为
- 可能隐藏广泛源代码更改的生成文件
- 二进制工件、large diff、vendored 代码和压缩文件
- 可以删除、覆盖、重置、强制推送、发布、部署或修改持久状态的命令
AANA 代码审查循环 识别请求的更改和预期的行为结果。 绘制约束:正确性、范围、安全性、隐私、可测试性、可逆性和用户批准。 在最终确定之前检查 diff 或计划编辑表面。 检查范围:确认更改仅限于请求的问题和支持测试/文档。 检查秘密:验证没有添加或暴露任何密钥、令牌、凭据、专有数据或敏感日志。 检查破坏性命令:在重置、强制、删除、覆盖、部署、发布、迁移或广泛清理操作之前需要批准。 检查证据:仅报告实际运行的测试和检查;命名任何未运行的检查。 检查提交或 PR 准备就绪:总结 diff、风险、测试和任何剩余的不确定性。 选择操作:接受、修订、询问、推迟、拒绝或路由到人工审查。
所需的预飞检查 在代码编辑、提交或 PR 之前,验证:
- 用户请求和预期范围
- 正在更改的文件集
- 是否存在无关的本地更改
- 是否预期广泛的生成或格式化更改
- 是否更改了依赖、锁文件、迁移、CI、部署或发布文件
- 是否有可用的测试或检查
- 是否可能在代码、日志、固定装置、文档或示例中出现秘密或专有数据
- 命令是否可能破坏数据、重写历史、发布、部署或影响外部系统
测试声明规则 除非实际运行并返回成功,否则不应声称检查已通过。 使用精确的语言:“运行 X;它通过。”“没有运行测试,因为 Y。”“仅运行 X;更广泛的覆盖范围仍未经验证。”“检查失败;这里是相关的失败。” 不要从部分证据中暗示完整的验证。 针对单元测试不是完整的发布门。 类型检查不是安全审查。 本地构建成功并不是生产部署安全的证明。
范围蔓延规则 在以下操作之前修订或询问:
- 更改无关的功能
- 超出必要的范围重构
- 在未经请求或兼容性审查的情况下修改公共 API
- 随意更改依赖版本
- 添加新框架或服务
- 修改策略、安全、权限、内存或遥测行为
- 除非清理是必要的,否则将清理与功能工作混合
秘密泄露规则 阻止或修订任何包含以下内容的更改:
- API 密钥
- 持有者令牌
- 密码
- 专有密钥
- 身份验证头
- 会话 cookie
- 恢复代码
- 真实客户、患者、法律、财务、帐户或个人数据
- 暴露凭据或专有有效负载的日志
- 包含真实秘密的示例配置
- 屏幕截图、固定装置或包含敏感值的文档
破坏性命令规则 在命令或工具之前询问用户的明确批准:
- 删除
- 覆盖
- 重置
- 强制推送
- 发布
- 部署
- 改变持久状态