用途:用于 Odoo 专用代码审查,先给出发现(Findings),重点排查缺陷、安全风险、行为回归、性能问题、迁移隐患与缺失测试,最后才处理风格问题。官方编码规范由 ODOO-CODING-GUIDELINES.md 覆盖,但审查范围大于风格。
必要前置信息:目标 Odoo 版本、插件/模块范围、变更文件或 diff 范围、稳定分支还是开发分支、仓库特定约定与检查、可用的本地框架/工具链上下文($ODOO_SOURCE、$ODOO_TOOL_README、$ODOO_BASE_COMMAND)。若存在版本专用参考技能,审查版本敏感行为前先查阅:Odoo 17 为 odoo-17.0,18 为 odoo-18.0,19 为 odoo-19.0,20 为 odoo-20.0。若设置了 $ODOO_SOURCE,先查本地框架代码中的 API、XML 语法、资源、测试辅助与版本行为。
审查流程:确定目标(整个插件、diff、PR、提交区间或特定文件);先读模块清单,再读相关导入、模型、视图、安全、数据、控制器、测试、资源、报表与文档;用 ODOO-CODING-GUIDELINES.md 检查官方风格;用下方清单检查 Odoo 行为风险;按严重度返回带文件/行号的发现;说明已运行与未运行的检查及剩余缺口。
稳定分支规则:审查稳定分支时不要要求噪音式重排格式,现有文件风格优先于通用格式偏好,聚焦变更代码、正确性、安全性、可维护性与明显规范违规。开发分支对修改代码更广泛地应用规范,仅在能降低真实风险或用户要求时才建议重构。
检查清单覆盖:模型与 ORM(_inherit/_inherits、批量操作、循环内的 search/browse/create/write/unlink、domain、索引、多公司、sudo 信任边界、参数化 SQL);字段、compute、约束与装饰器(@api.depends 完整依赖、@api.constrains、存储计算字段、货币字段、inverse/ondelete、@api.ondelete);XML、视图、动作与数据(继承锚点、XML ID 引用、manifest data 加载顺序、生产/演示/不可更新数据分离、可翻译字符串);安全与访问(ir.model.access.csv、记录规则、门户/公开控制器身份与 CSRF 校验、异常类);控制器、报表、OWL 与资源(auth、路由类型、CSRF、报表访问校验、资源包、OWL 状态与清理);性能、事务与并发(避免 N+1 与逐条写入、_read_group/read_group、保存点隔离、锁与重试、避免随意 self.env.cr.commit());测试、迁移、manifest 与文档。
可选评分:仅在用户要求评分审查时使用:total = 0.25correctness + 0.20security + 0.15performance + 0.10transactions + 0.10views_data + 0.10tests + 0.10*maintainability。
输出格式:Findings(Critical/Major/Minor,含文件行号、问题、影响、建议修复)、Open Questions(仅影响审查正确性的问题)、Checks Run、Residual Risks、Summary(发现之后的简要质量总结)。无发现时说明“No findings”并给出审查范围与剩余风险。每条发现引用确切文件与行号,不把缺陷埋在风格建议下,无具体 Odoo 风险不建议大范围重构,陈述假设而非猜测;执行流不确定时结合 odoo-code-tracer,测试覆盖不足时结合 odoo-test-writer。