odoo-dev
Skill2 starsChanged 3 months agoMITView on GitHub
MANDATORY for customizations. High-level technical expertise in Odoo's customization engine, covering Server Actions, Automated Rules, and Odoo Studio modifications.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- panusbodee-owen/odoo-dev-skilltheir own version, first seen Oct 20, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- panusbodee-owen/odoo-dev-skill★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository30 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- odoo-attendanceSkill
- odoo-crmSkill
- odoo-dashboardsSkill
- odoo-data-opsSkill
- odoo-documentsSkill
- odoo-field-serviceSkill
- odoo-financeSkill
- odoo-frontdeskSkill
- odoo-get-startedSkill
- odoo-helpdeskSkill
- odoo-hrSkill
- odoo-introspectorSkill
- odoo-inventorySkill
- odoo-knowledgeSkill
- odoo-mrpSkill
- odoo-plmSkill
- odoo-productsSkill
- odoo-projectsSkill
- odoo-purchasingSkill
- odoo-qualitySkill
- odoo-relationsSkill
- odoo-reportsSkill
- odoo-salesSkill
- odoo-securitySkill
- odoo-spreadsheetsSkill
- odoo-uxSkill
- odoo-websiteSkill
- odoo-worksheetsSkill
- odoo-workspaceSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 3 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Verification: If troubleshooting an error related to a custom module or a specific Odoo version, you MUST call inspect_model to retrieve …
- Distinctive: line 16
Before troubleshooting or proposing changes, the agent must identify existing low-code customizations:
- Very specific: line 17
Custom Fields: Look for fields prefixed with x_ (e.g., x_studio_customer_type).
- Very specific: line 18
Custom Models: Look for technical models prefixed with x_ (e.g., x_service_agreement).
- Very specific: line 23
Mandate: When writing Python code in a Server Action, ensure all variables (env, model, record, records, time) are used correctly.
- Very specific: line 24
HTML Communication: If using message_post within a Server Action to send HTML, remember to pass body_is_html=True to prevent escaping.
- Distinctive: line 37
Follow-up actions are inert: If the action returns another action, it is handed back as data and is NOT executed.
- Very specific: line 39
Snapshots are honest: Only declarative states (object_write, object_create, update) can be snapshotted.
- Very specific: line 49
Mandate: Always check filter_pre_domain and filter_domain to understand exactly which records will trigger the rule.
- Very specific: line 52
Logs: Check ir.logging for tracebacks or server-side error messages.
- Distinctive: line 53
Customizations: Verify if an Automated Rule or a Studio field is causing the unexpected behavior.
- Very specific: line 54
Environment: Use the env variable in Server Actions to inspect related records or bypass access rights if absolutely necessary (using …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: Odoo Development & Customization
This skill provides the agent with high-level technical expertise in Odoo's customization engine, covering Server Actions, Automated Rules, and Odoo Studio modifications.
Core Mandates
1. Snapshot Awareness (Technical Discovery)
- Mandate: The
dev-fields.jsonresource is a snapshot of common technical models. - Verification: If troubleshooting an error related to a custom module or a specific Odoo version, you MUST call
inspect_modelto retrieve the current, live schema. Custom fields added via Studio or third-party code will only be visible via live introspection.
2. Identify Customizations (Odoo Studio)
Before troubleshooting or proposing changes, the agent must identify existing low-code customizations:
- Custom Fields: Look for fields prefixed with
x_(e.g.,x_studio_customer_type). - Custom Models: Look for technical models prefixed with
x_(e.g.,x_service_agreement). - Custom Views: Studio modifications are stored in the database (
ir.ui.view). Check for views with a name containing "studio" or aninherit_idpointing to a standard view.
2. Server Actions (ir.actions.server)
- Purpose: Execute Python code, update records, or trigger multi-step workflows via the UI.
- Mandate: When writing Python code in a Server Action, ensure all variables (
env,model,record,records,time) are used correctly. Avoid long-running loops or operations that could cause database locks. - HTML Communication: If using
message_postwithin a Server Action to send HTML, remember to passbody_is_html=Trueto prevent escaping.
Running one (execute_action)
- Inspect before you run. A server action is a mutable data row, so its name tells you nothing
about its effect. ALWAYS call
execute_actionwithdry_run: truefirst for an action you have not run before: the report expands the fullchild_idstree and classifies every step. - Unsafe states are blocked by default.
code(arbitrary Python),webhook,mail_postandsmsrequireacknowledge_unsafe: true. Before setting it, explain to the user in your message exactly what the action does — for acodeaction, quote the Python from the dry-run report. - A
multiaction is only as safe as its children. The classification covers the whole expanded tree, so a wrapper containing one Python step is treated as Python. - Targets are explicit. Pass
ids. An empty recordset is refused unless you setallow_empty_recordset: true, because many actions fall back to acting on everything in scope. - Follow-up actions are inert. If the action returns another action, it is handed back as data and is NOT executed. Decide deliberately whether to act on it.
- Snapshots are honest. Only declarative states (
object_write,object_create,update) can be snapshotted. For anything else the audit entry records that no before-state was capturable rather than implying nothing changed — so recovery planning is on you.
3. Automated Rules (base.automation)
- Purpose: Automatically trigger Server Actions based on specific events.
- Triggers:
on_create: When a record is first created.on_write: When a record is updated (can be restricted to specific fields).on_time: Based on a date field (e.g., 2 hours after a deadline).
- Mandate: Always check
filter_pre_domainandfilter_domainto understand exactly which records will trigger the rule.
4. Technical Troubleshooting Workflow
- Logs: Check
ir.loggingfor tracebacks or server-side error messages. - Customizations: Verify if an Automated Rule or a Studio field is causing the unexpected behavior.
- Environment: Use the
envvariable in Server Actions to inspect related records or bypass access rights if absolutely necessary (usingsudo()).
Available Resources
dev-logic.md: Deep-dive into Odoo's Python execution context, Studio mechanics, and module anatomy.dev-fields.json: Technical map for Server Action and Automation models.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

