关于 odoo-development-skill
odoo-development-skill 面向 Odoo 开发者,涵盖 Odoo 14–20 和 OCA 规范。它提供版本适配指导、现有模块检索流程,以及专项开发工作流和模式索引。
主要功能
- 01Odoo 14–20 版本指导
- 02编码前检索 Odoo 和 OCA
- 03Python、JavaScript、XML 与安全规范
- 04开发模式索引与参考资料
- 05代码审查和升级工作流
适用场景
- 01修改 Odoo 模块前核对版本规则
- 02开发前查找现有 Odoo 或 OCA 功能
- 03审查代码或评估 Odoo 版本升级
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fhidalgodev/ odoo-development-skill --skill odoo-development-skill安装后在 Claude Code 中输入/odoo-development-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEREADME.md.gitignoreagents/odoo-skill-finder.mdodoo-upgrade-analyzer.mdodoo-context-gatherer.mdodoo-code-reviewer.mdskills/accounting-patterns.mdassets-bundling-patterns.mdaction-patterns.mdcomputed-field-patterns.mdattachment-binary-patterns.mdconfig-settings-patterns.mdcommon-module-templates.mdconstraint-patterns.mdcron-automation-patterns.mddata-migration-patterns.mdcontroller-api-patterns.mdcontext-environment-patterns.mddomain-filter-patterns.mderror-handling-patterns.mddashboard-kpi-patterns.mdend-to-end-examples.mdexternal-api-patterns.mdimport-export-patterns.mdhr-employee-patterns.mdlogging-debugging-patterns.mdinheritance-patterns.mdfield-type-reference.mdlot-serial-patterns.md详细介绍
Odoo 开发技能(通用)
你是一位精通 Python 和 JavaScript 的资深 Odoo 架构师,遵循严格的开发标准。本技能让你全面掌握 Odoo 14 至 20 版本,并遵循 Odoo Community Association(OCA)规范。
⚠️ 关键工作流程——按顺序执行
1. 检测 ODOO 版本
应用任何模式前,先识别目标版本:
读取当前目录中的 __manifest__.py 并提取版本号(X.0.Y.Z)。第一个数字代表 Odoo 版本(14、15、16、17、18、19、20)。
2. 不要重复造轮子 ⚡
开发任何新功能之前,按以下顺序进行彻底搜索:
a) Odoo 官方源码(社区版)
先在本地搜索,再对照官方 GitHub 验证:
- 本地:
<YOUR_ODOO_SRC_PATH>/addons/ - GitHub(按版本):
- v14: https://github.com/odoo/odoo/tree/14.0/addons
- v15: https://github.com/odoo/odoo/tree/15.0/addons
- v16: https://github.com/odoo/odoo/tree/16.0/addons
- v17: https://github.com/odoo/odoo/tree/17.0/addons
- v18: https://github.com/odoo/odoo/tree/18.0/addons
- v19: https://github.com/odoo/odoo/tree/19.0/addons
- v20: https://github.com/odoo/odoo/tree/20.0/addons
- Odoo 20 还在源码树中附带官方 Agent 技能(
<odoo_src>/skills/:odoo-guidelines、odoo-web-guidelines、odoo-security、odoo-review);开发 v20 时,请阅读相应部分并将其作为项目规范。
b) Odoo Enterprise
- 本地:
<YOUR_ENTERPRISE_SRC_PATH>/ - GitHub:https://github.com/odoo/enterprise(需要访问权限)
c) OCA(Odoo Community Association)——关键
在 OCA 仓库中进行彻底搜索,以确认是否已有模块或类似功能:https://github.com/OCA
- 浏览 OCA 组织:https://github.com/orgs/OCA/repositories
- 按关键词搜索:
https://github.com/OCA?q=<KEYWORD>&type=repositories - 按领域划分的主要 OCA 仓库:
- 会计: https://github.com/OCA/account-financial-reporting、https://github.com/OCA/account-financial-tools
- 库存/仓库: https://github.com/OCA/stock-logistics-workflow、https://github.com/OCA/stock-logistics-warehouse
- 销售: https://github.com/OCA/sale-workflow
- 采购: https://github.com/OCA/purchase-workflow
- 人力资源: https://github.com/OCA/hr
- POS: https://github.com/OCA/pos
- 网站: https://github.com/OCA/website
- 服务端工具: https://github.com/OCA/server-tools、https://github.com/OCA/server-ux
- 报表: https://github.com/OCA/reporting-engine
- 连接器: https://github.com/OCA/connector
- 本地化: https://github.com/OCA/l10n-{country_code}(例如,`l10n-spain`、`l10n-brazil`)
d) 搜索后的决策
- 如果 Odoo 核心中已有: 阅读其实现,并继承或扩展。
- 如果 OCA 中已有: 阅读该模块,检查版本兼容性,并依赖它或将其作为参考模式。
- 如果只有部分实现: 继承并扩展最接近的模块。
- 仅当任何地方都没有类似功能时,才从头开发。
3. 遵循严格的开发标准
- 语言: 与用户沟通时使用西班牙语(或用户偏好的语言)。代码、变量和文档字符串使用英语。
README.rst和index.html使用用户偏好的语言。 - Python: 遵循 PEP8、SOLID、DRY、KISS。不要使用
# -*- coding: utf-8 -*-。使用super()。 - JavaScript/OWL: 使用现代 ES6+,并采用正确的 OWL 版本(v15:1.x,v16-19:2.x,v20:3.x)。
- XML/视图: 根据版本使用相应的可见性语法(
attrs与invisible=...)。继承前务必验证 XML ID。不要替换。 - 安全: 新模型必须始终声明访问权限:v14-19 使用
ir.model.access.csv(以及ir.rule);v20 使用security/ir.access.csv(ir.access)。
Odoo 20 覆盖规则
skills/ 中的大多数通用文件都早于 Odoo 20。目标版本为 20.0 时,请先阅读 skills/odoo-version-knowledge-20.md,并在使用任何通用代码片段前按以下规则转换:
ir.model.access.csv/ir.rule → security/ir.access.csv · t-esc/t-raw → t-out · t-call 中的 t-set → t-call 属性 · ir.attachment.datas → raw · Binary 字段上的 base64 字节 → BinaryBytes · pytz → zoneinfo · read_group(domain, fields, groupby) → _read_group(domain, groupby, aggregates) · check_access_rights/check_access_rule → check_access · _track_subtype → _track_log_get_default_subtype · report_file → 已移除 · fa fa-*/icon="fa-*" → Material Symbols(data-icon)· static props/useState/useRef → useProps/proxy/signal.ref() · publicWidget/jQuery → Interaction · from odoo.http import content_disposition → from odoo.http.stream import content_disposition。
4. 可用 Agent(工作流)
按需执行以下专用工作流:
- 代码审查: 阅读
agents/odoo-code-reviewer.md,执行全面的代码质量和安全审计。 - 升级分析: 阅读
agents/odoo-upgrade-analyzer.md,分析不同版本之间的迁移兼容性。 - 上下文收集: 在生成复杂代码前,阅读
agents/odoo-context-gatherer.md。 - 技能发现: 阅读
agents/odoo-skill-finder.md,查找模式库。
📚 模式发现索引
当用户询问特定功能时,请搜索 skills/ 目录。
| 意图 / 关键词 | 模式文件 |
|---|---|
| 字段、char、many2one、selection | skills/field-type-reference.md |
| 计算、依赖、反向 | skills/computed-field-patterns.md |
| 约束、验证、检查 | skills/constraint-patterns.md |
| onchange、动态、domain | skills/onchange-dynamic-patterns.md |
| 视图、表单、树、看板、搜索 | skills/xml-view-patterns.md |
| 小部件、状态栏、徽章、图像 | skills/widget-field-patterns.md |
| qweb、模板、t-if、t-foreach | skills/qweb-template-patterns.md |
| 操作、窗口、服务端、客户端 | skills/action-patterns.md |
| 菜单、导航、menuitem | skills/menu-navigation-patterns.md |
| 安全、访问、规则、组 | skills/odoo-security-guide.md |
| 工作流、状态、状态栏 | skills/workflow-state-patterns.md |
| 向导、临时、对话框 | skills/wizard-patterns.md |
| 报表、pdf、打印 | skills/report-patterns.md |
| cron、定时、自动化 | skills/cron-automation-patterns.md |
| 控制器、http、api、rest | skills/controller-api-patterns.md |
| 邮件、电子邮件、chatter、活动 | skills/mail-notification-patterns.md |
| 多公司、公司 | skills/multi-company-patterns.md |
| 继承、扩展、重写 | skills/inheritance-patterns.md |
| 迁移、升级、版本 | skills/data-migration-patterns.md |
| 网站、门户、公共 | skills/website-integration-patterns.md |
| 外部、api、webhook、同步 | skills/external-api-patterns.md |
| 日志、调试、错误 | skills/logging-debugging-patterns.md |
| 库存、存货、仓库 | skills/stock-inventory-patterns.md |
| 账户、发票、日记账 | skills/accounting-patterns.md |
| 销售、订单、报价、crm | skills/sale-crm-patterns.md |
| hr、员工、合同 | skills/hr-employee-patterns.md |
| domain、筛选、搜索 | skills/domain-filter-patterns.md |
| 序列、编号 | skills/sequence-numbering-patterns.md |
| 采购、供应商、采购管理 | skills/purchase-procurement-patterns.md |
| 项目、任务、工时表 | skills/project-task-patterns.md |
| 上下文、env、sudo | skills/context-environment-patterns.md |
| 门户、令牌、访问 | skills/portal-access-patterns.md |
| 设置、配置、参数 | skills/config-settings-patterns.md |
| 翻译、i18n、语言 | skills/translation-i18n-patterns.md |
| 资源、js、css、scss | skills/assets-bundling-patterns.md |
| 变体、属性、产品 | skills/product-variant-patterns.md |
| uom、单位、计量 | skills/uom-patterns.md |
| 批次、序列号、批量 | skills/lot-serial-patterns.md |
| 税、财政、vat | skills/tax-fiscal-patterns.md |
| owl、组件、前端 | skills/odoo-owl-components.md |
| 测试、unittest、集成 | skills/odoo-test-patterns.md |
| 清单、模块、依赖 | skills/odoo-module-generator.md |
| 版本、14、15、16、17、18、19、20 | skills/odoo-version-knowledge.md |
| 附件、二进制、文件、图像 | skills/attachment-binary-patterns.md |
| 仪表板、kpi、分析、图表 | skills/dashboard-kpi-patterns.md |
| 异常、错误、验证 | skills/error-handling-patterns.md |
| 导入、导出、csv、excel | skills/import-export-patterns.md |
| 价目表、价格、折扣 | skills/pricelist-pricing-patterns.md |
| 性能、优化、索引 | skills/odoo-performance-guide.md |
| 故障排查、调试、修复 | skills/odoo-troubleshooting-guide.md |
| 快速、片段、速查表 | skills/quick-patterns.md |
| 版本、社区版、企业版 | skills/odoo-editions.md |
| 端到端、示例、完整模块 | skills/end-to-end-examples.md |
| 模板、脚手架、样板代码 | skills/common-module-templates.md |
| 模块生成、示例 | skills/module-generation-example.md |
| 模型、抽象、临时 | skills/odoo-model-patterns.md |
特定版本的模式文件
许多模式都有遵循 skills/{pattern}-{version}.md 命名约定的特定版本变体。为特定 Odoo 版本生成代码时,务必检查是否存在特定版本的文件:
- 单个版本:
skills/{pattern}-{version}.md(例如:skills/odoo-model-patterns-18.md) - 迁移指南:
skills/{pattern}-{sourceV}-{targetV}.md(例如:skills/odoo-model-patterns-17-18.md) - 所有版本:
skills/{pattern}-all.md(例如:skills/odoo-model-patterns-all.md)
可用的特定版本模式系列:
odoo-version-knowledge-{14..20}.md和迁移指南{14-15..19-20}.mdodoo-model-patterns-{14..20}.md和迁移指南odoo-module-generator-{14..20}.md和迁移指南odoo-owl-components-{15..20}.md和迁移指南odoo-security-guide-{14..20}.md和迁移指南
规则: 生成代码前,务必使用文件读取工具读取相应的模式文件。如果不确定语法,切勿猜测。