Develop Custom Odoo Modules
A skill for scaffolding and reviewing custom Odoo modules following Odoo coding conventions.
19.4.0Add to Favorites
Why it matters
Transform your AI into an expert Odoo custom module developer. Scaffold new modules, define models, set up security, and adhere to Odoo's coding conventions for both Community and Enterprise editions.
Outcomes
What it gets done
Scaffold new Odoo modules from scratch.
Extend existing Odoo models with new fields and logic.
Review and troubleshoot Odoo module code and manifest issues.
Implement Odoo methods like onchange, compute, and constraints.
Install
Add it to your toolbox
Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-odoo-module-developer | bash After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.
Reports
Agent outcome reports
No reports yet
Overview
This skill scaffolds custom Odoo modules: manifest, models, views, and security files, following Odoo's coding conventions. It generates a working example (a hospital_management module with a patient model) and reviews existing code against best practices like namespaced model names and using _inherit instead of modifying core files. It targets Odoo v14+. Use it when building or extending a custom Odoo module. Skip it for OWL/frontend widgets, automated tests, or multi-company setup - those are separate skills.
What it does
This skill turns an AI into an expert Odoo custom module developer, guiding module scaffolding, model definition, security setup, and adherence to Odoo's coding conventions for both Community and Enterprise editions. Activated by mentioning @odoo-module-developer and describing the module, it generates a full folder structure (__manifest__.py, __init__.py, models/, views/, security/, data/), and can also review pasted existing code against Odoo best practices. Its worked example scaffolds a "hospital_management" module with a hospital.patient model: a __manifest__.py declaring name, version 17.0.1.0.0, category, dependencies on base and mail, data files, and an LGPL-3 license, plus a model file inheriting mail.thread and mail.activity.mixin with name, birth_date, doctor_id, and a state selection field.
When to use - and when NOT to
Use it when starting a new custom Odoo module from scratch, extending an existing Odoo model such as adding fields to sale.order, troubleshooting module loading errors or manifest issues, or implementing onchange, compute, and constraint methods correctly. It does not cover OWL JavaScript components or frontend widget development (use @odoo-xml-views-builder instead), does not generate automated test files (use @odoo-automated-tests), does not cover multi-company or multi-website configuration, and targets Odoo v14+ since Odoo 13 and below use a different module structure without __manifest__.py auto-loading.
Inputs and outputs
Input is a natural-language description of the module to build, or existing module code to review; output is a scaffolded module tree with manifest, models, views, and security files, or a best-practices review of pasted code. The example manifest shows the expected shape:
{
'name': 'Hospital Management',
'version': '17.0.1.0.0',
'category': 'Healthcare',
'depends': ['base', 'mail'],
'data': [
'security/ir.model.access.csv',
'views/hospital_patient_views.xml',
],
'installable': True,
'license': 'LGPL-3',
}
Integrations
Built specifically for Odoo's module system and ORM (odoo.models, odoo.fields, odoo.api), and chains with two sibling skills: @odoo-xml-views-builder for view XML and frontend work, and @odoo-automated-tests for test generation.
Who it's for
Developers building or maintaining custom Odoo modules who want scaffolding and code review that follows Odoo conventions, such as namespaced model names, _inherit instead of modifying core files, correct manifest versioning, and a populated ir.model.access.csv, rather than assembling module structure from scratch each time. The skill's best-practices checklist spells out both directions: always prefix a model's _name with a namespace, use _inherit = ['mail.thread'] to get chatter and logging automatically, format version as {odoo_version}.{major}.{minor}.{patch}, and set 'author' and 'website' in the manifest so the module is identifiable in the Apps list; conversely, never modify core Odoo model files directly, never forget to register new models in ir.model.access.csv (or users hit access errors), and never use spaces or uppercase letters in folder names, since Odoo requires snake_case module names.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.