chore: 新增 backend-code-lint 变更计划,更新 .gitignore
This commit is contained in:
29
openspec/changes/backend-code-lint/proposal.md
Normal file
29
openspec/changes/backend-code-lint/proposal.md
Normal file
@@ -0,0 +1,29 @@
|
||||
## 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 不过则提交被拒绝
|
||||
Reference in New Issue
Block a user