SuperAPI AI 工具集

error-handling-audit

通用与其它

查看项目

更新于 10-16 06:47

技能介绍

用途:依据 RMS Go 编码规范审计 Go 代码的错误处理,确保错误被正确包装、上下文保留、信息有意义且不被静默忽略,适合在提交代码前或代码评审时使用。

主要能力:检查六类问题。一是错误包装,要求用 fmt.Errorf(..., %w, err) 保留错误链以支持 errors.Is() 和 errors.As(),标记使用 %v/%s 或直接返回裸 err 的写法;API 边界、日志输出等场景允许例外。二是错误上下文,要求信息包含操作、资源标识与相关状态,标记过于笼统的消息。三是消息格式,要求小写开头、无结尾标点、现在时、包含动作与资源标识。四是错误吞没,要求每个错误都被返回或记录,用 _ 忽略时须有注释说明。五是错误创建,简单静态错误用 errors.New,带格式化用 fmt.Errorf,哨兵错误定义为 var;禁用 github.com/pkg/errors,gRPC 响应用 commonpb.Error。六是 panic,仅允许在 init() 或 main() 启动阶段使用,运行时代码应返回错误。

使用方式:可手动调用 /skill error-handling-audit,也可由 quality-check 技能在检测到 Go 项目时自动调用,或经 safe-commit 间接触发。执行时先用 find 命令定位 Go 文件(排除 vendor、mock 与 _test.go),再读取文件分析错误处理块、错误创建、返回与 panic,最后生成含文件行号、问题等级(CRITICAL/HIGH/MEDIUM)、修复示例与统计摘要的报告。

适用场景与限制:适用于 Go 项目提交前审计与评审;CRITICAL 问题应阻止提交。资料未提供安装命令、收费与平台信息,暂未提供。