odoo-development-skill について
odoo-development-skillは、Odoo 14~20とOCA規約を扱う開発スキルです。バージョンに応じた実装、既存モジュールの調査、専門的な開発ワークフローやパターンの参照を支援します。
主な機能
- 01Odoo 14~20のバージョン別ガイド
- 02開発前にOdooとOCAを検索
- 03Python、JavaScript、XMLとセキュリティ規約
- 04開発パターンの索引と資料
- 05コードレビューとアップグレードのワークフロー
活用シーン
- 01Odooモジュール変更前のバージョン規則の確認
- 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 公式ソース(Community)
まずローカルで検索し、次に公式 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 には、ソースツリー(
<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)— 重要
モジュールや類似機能がすでに存在するかを確認するため、https://github.com/OCA にある 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. 厳格な開発基準を適用する
- 言語: ユーザーとのコミュニケーションにはスペイン語(またはユーザーの希望言語)を使用します。コード、変数、docstring は英語で記述します。
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. 利用可能なエージェント(ワークフロー)
依頼された場合は、次の専門ワークフローを実行してください。
- コードレビュー: 包括的なコード品質とセキュリティの監査を実施するには、
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 |
| 計算、depends、inverse | skills/computed-field-patterns.md |
| 制約、検証、check | skills/constraint-patterns.md |
| onchange、動的、domain | skills/onchange-dynamic-patterns.md |
| ビュー、form、tree、kanban、search | skills/xml-view-patterns.md |
| ウィジェット、statusbar、badge、image | skills/widget-field-patterns.md |
| qweb、テンプレート、t-if、t-foreach | skills/qweb-template-patterns.md |
| アクション、window、server、client | skills/action-patterns.md |
| メニュー、ナビゲーション、menuitem | skills/menu-navigation-patterns.md |
| セキュリティ、アクセス、rule、group | skills/odoo-security-guide.md |
| ワークフロー、state、statusbar | skills/workflow-state-patterns.md |
| ウィザード、transient、ダイアログ | skills/wizard-patterns.md |
| レポート、pdf、印刷 | skills/report-patterns.md |
| cron、スケジュール、自動化 | skills/cron-automation-patterns.md |
| コントローラー、http、api、rest | skills/controller-api-patterns.md |
| mail、メール、chatter、activity | skills/mail-notification-patterns.md |
| マルチカンパニー、company | 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 |
| context、env、sudo | skills/context-environment-patterns.md |
| ポータル、token、アクセス | skills/portal-access-patterns.md |
| 設定、config、parameter | 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 |
| manifest、モジュール、depends | skills/odoo-module-generator.md |
| バージョン、14、15、16、17、18、19、20 | skills/odoo-version-knowledge.md |
| 添付ファイル、binary、ファイル、画像 | 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 |
| モデル、abstract、transient | 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および移行ガイド
ルール: コードを生成する前に、必ずファイル読み取りツールを使って該当するパターンファイルを読んでください。構文に確信がない場合は、推測しないでください。