Odoo addon factory
Use when creating or reshaping Odoo addons from a functional request, especially when choosing module boundaries, manifests, model files, security data, views, tests, and OCA-compatible structure.From its SKILL.md
npx -y skills add wpmoo-org/odoo-skills --skill odoo-addon-factoryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 7 commands, including `pre-commit run -a` and 6 more.
SKILL.md
3.1 KB, 701 tokens by cl100k_base, as published. Nobody here has run it
Odoo Addon Factory
Use this skill to turn a functional request into a clean Odoo addon plan and
implementation. Pair it with the target version skill (odoo-13 through
odoo-19) for version-specific APIs, XML syntax, commands, and validators.
First decisions
- Confirm the target Odoo major version and repository branch.
- Identify whether the addon is community, pro/private, or customer-specific.
- Choose the smallest useful addon boundary. Split unrelated features.
- Inspect existing addons for naming, dependency, security, and test patterns.
- Load the matching version skill before using version-sensitive syntax.
Addon shape
Default to an OCA-compatible layout and omit directories that are not needed:
addon_name/
|-- __init__.py
|-- __manifest__.py
|-- models/
|-- security/
|-- views/
|-- data/
|-- demo/
|-- tests/
|-- readme/
`-- static/
Use lowercase ASCII module names with underscores. Put each model in a clear
file under models/, import files from models/__init__.py, and import
subpackages from the addon root __init__.py.
Manifest baseline
versionstarts with the target branch, for example18.0.1.0.0.dependsis minimal, explicit, and never reaches from community into private or pro addons.- Load security groups before
security/ir.model.access.csv. - Load views after the records, groups, and actions they reference.
- Use
LGPL-3,AGPL-3,OPL-1, or project policy deliberately. - Leave
installableasFalseuntil the addon installs cleanly.
Build order
- Manifest and Python package imports.
- Models, fields, constraints, and computed-field dependencies.
- Security groups, ACLs, and record rules.
- Views, actions, menus, reports, assets, and demo data.
- Tests for core behavior, security, install/update, and regression cases.
- README fragments or documentation required by the repository.
Safety rules
- Menus and view invisibility do not secure data; add model ACLs and record rules.
- Public model methods can be called through RPC; validate records, arguments, access rights, and states before side effects.
- Avoid raw SQL unless the ORM cannot express the operation safely.
- Do not add cron jobs, external calls, or automated mail without tests and explicit user approval.
Verification
Run the repository checks first. Common order:
pre-commit run -a
odoo-bin -d test_db --addons-path=/path/to/addons -i addon_name --test-enable --stop-after-init
odoo-bin -d test_db --addons-path=/path/to/addons -u addon_name --test-enable --stop-after-init
When WPMoo tooling is present, prefer npx @wpmoo/toolkit doctor, ./moo lint,
./moo resetdb, and ./moo pot where applicable.
Done criteria
- Addon boundary and dependencies are reviewable.
- Manifest, imports, security, views, data order, and tests match the target Odoo version.
- Install and update paths pass or limitations are reported clearly.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.