## Why 项目复杂度增长后,AI 编写代码时经常忽略基本编码规范(如使用指定日志工具、正确处理错误等)。依赖 prompt 约定是"软约束",无法可靠防止违规。需要引入静态分析工具,将编码规范从"约定"升级为"机器可检查的硬约束",在提交时自动拦截问题代码。 ## What Changes - 新增 `.golangci.yml` 配置文件,启用 13 个 linter 并配置项目专属规则 - 引入 lefthook 作为 Git hook 管理器,在 pre-commit 时自动运行 lint - 修复存量代码中的规范违规(约 31 处) - 解决 embedfs 模块导致 golangci-lint 无法运行的阻塞问题 - 更新 README.md 补充代码规范说明 ## Capabilities ### New Capabilities - `code-lint`: 后端代码静态分析规则配置,包括 13 个 linter 的启用、参数配置、测试/正式代码的差异化规则、生成代码排除等 - `pre-commit-hook`: 基于 lefthook 的 pre-commit hook 配置,提交时自动运行 lint 检查 ### Modified Capabilities - `module-logging`: 新增 zap.Error(err) 优于 zap.String("error", err.Error()) 的规范要求 - `error-handling`: 新增必须使用 errors.Is/As 而非直接 == 比较的强制要求 - `structured-logging`: 补充 zap.Error(err) 的使用约定 ## Impact - 新增开发依赖:lefthook(二进制工具,不影响生产代码) - 修改文件:约 15 个 Go 源文件(存量修复)、README.md、Makefile - 新增文件:`.golangci.yml`、`lefthook.yml`、`embedfs/assets/.gitkeep`、`embedfs/frontend-dist/.gitkeep` - 开发流程影响:git commit 时自动触发 lint 检查,lint 不过则提交被拒绝