Scaffolds and guides custom Odoo module development: __manifest__.py, model inheritance, ORM patterns, views, security, and best practices.
From antigravity-awesome-skillsnpx claudepluginhub sickn33/antigravity-awesome-skills --plugin antigravity-awesome-skillsThis skill uses the workspace's default tool permissions.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
This skill transforms your AI into an expert Odoo custom module developer. It guides you through scaffolding new modules, defining models, setting up security, and following Odoo's coding conventions for both Community and Enterprise editions.
sale.order).onchange, compute, and constraint methods correctly.@odoo-module-developer and describe the module you want to build.__manifest__.py, __init__.py, models, views, and security files.Prompt: Create a module called "hospital_management" with a model for patients
Generated structure:
hospital_management/
├── __manifest__.py
├── __init__.py
├── models/
│ ├── __init__.py
│ └── hospital_patient.py
├── views/
│ └── hospital_patient_views.xml
├── security/
│ ├── ir.model.access.csv
│ └── security.xml
└── data/
__manifest__.py:
{
'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',
}
models/hospital_patient.py:
from odoo import models, fields, api
class HospitalPatient(models.Model):
_name = 'hospital.patient'
_description = 'Hospital Patient'
_inherit = ['mail.thread', 'mail.activity.mixin']
name = fields.Char(string='Patient Name', required=True, tracking=True)
birth_date = fields.Date(string='Birth Date')
doctor_id = fields.Many2one('res.users', string='Assigned Doctor')
state = fields.Selection([
('draft', 'New'),
('confirmed', 'Confirmed'),
('done', 'Done'),
], default='draft', tracking=True)
_name with a namespace (e.g., hospital.patient)._inherit = ['mail.thread'] to add chatter/logging automatically.version in manifest as {odoo_version}.{major}.{minor}.{patch}.'author' and 'website' in __manifest__.py so your module is identifiable in the Apps list._inherit.ir.model.access.csv or users will get access errors.@odoo-xml-views-builder for view XML.__manifest__.py auto-loading) — this skill targets v14+.company_id, website_id).@odoo-automated-tests for that.