Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Master Odoo Banner

master-odoo — Skill Odoo conscient de la version (17 / 18 / 19)

Un Agent Skill pour développer sous Odoo avec un assistant IA (Claude), sans mélanger les conventions entre versions et sans inventer d'API. Architecture noyau + deltas par version : le savoir stable est écrit une fois, et seuls les écarts réels entre 17, 18 et 19 sont surchargés. Les faits sensibles sont vérifiés sur le code source officiel odoo/odoo, pas sur des blogs ou de la mémoire.

Odoo Skill Licence


Sommaire


Pourquoi ce skill

Deux problèmes tuent la qualité d'un assistant Odoo :

  1. La dérive de version. Odoo change de conventions à chaque série (attrs→expressions Python, <tree><list>, group_operatoraggregator, name_get_compute_display_name, déplacement de l'ORM dans odoo/orm/ en 19…). Un assistant qui applique du 17 à du 19 produit du code qui casse.
  2. L'hallucination. Un assistant qui « devine » un nom de champ ou une signature fait perdre des heures.

Ce skill répond aux deux :

  • Noyau + deltas : une seule source par fait → pas de copies qui divergent, et ajouter une version = un seul fichier.
  • Zéro-hallucination : le skill détecte la version cible, ne s'appuie que sur son socle vérifié, et avoue quand il ne sait pas plutôt que d'inventer.

Comment ça marche

À chaque tâche Odoo, le skill suit cet ordre :

1. DÉTECTE la version cible   (__manifest__.py → version, branche git, $ODOO_SOURCE)
2. APPLIQUE   core/            (identité, protocole, sécurité — invariants 17→19+)
3. CHARGE     reference/       (socle version-neutre : ORM, vues, sécurité, manifest, OWL…)
4. SURCHARGE  deltas/odoo-XX   (les écarts de CETTE version priment sur le socle)
5. LIVRE      architecture d'abord, puis code chirurgical, sécurisé par défaut
  • core/ — ce qui est vrai de la 17 à la 19 et au-delà (protocole réactif, sécurité par défaut au moindre privilège).
  • reference/ — 17 guides du tronc commun (models, fields, views, security, manifest, decorators, controllers, data, actions, reports, mixins, testing, transactions, translation, performance, migration, owl).
  • deltas/ — un fichier par version (odoo-17.md, odoo-18.md, odoo-19.md) qui ne contient que les divergences, chacune tracée à sa source.

Ce qui est vérifié (et ce qui ne l'est pas)

La transparence fait partie du produit. Les deltas utilisent des étiquettes de confiance :

Étiquette Signification
[source] Vérifié sur odoo/odoo@<branche> (fichier + ligne cités)
[≈18] Cohérent avec la 18, non re-vérifié ligne à ligne sur la version cible
[ext] Source secondaire (doc / communauté), pas le code
⚠️ À VÉRIFIER Non confirmé — le skill ne l'affirmera pas

Vérifié sur source (exemples) : search(self, domain, offset=0, limit=None, order=None), _read_group(...), retrait de name_get en 18, group_operatoraggregator (message de dépréciation cité), <tree><list> en 18, déplacement odoo/models.pyodoo/orm/models.py en 19 (avec import public from odoo import models, fields préservé), OWL identique bit-à-bit entre 18 et 19, MIN_PY_VERSION=(3,10)/MAX=(3,14) en 19, colonnes perm_* de ir.model.access, champs de ir.rule, positions XPath d'héritage de vue.

Non audité ligne à ligne : le socle reference/ est une synthèse condensée de standard Odoo stable. Il est fiable mais n'est pas re-dérivé du code caractère par caractère — c'est un choix d'ingénierie assumé (faible risque sur des fondamentaux stables). Les faits versionnés et sensibles, eux, sont dans les deltas et vérifiés.

Installation & utilisation

Les interfaces d'installation des Skills évoluent. Les étapes ci-dessous reflètent le fonctionnement courant ; en cas de doute, réfère-toi à la doc officielle : Claude Code · spécification Agent Skills · Aide Claude.ai.

Le dépôt est à la fois un plugin Claude Code (via .claude-plugin/plugin.json) et un skill autonome (dans skills/odoo/). Choisis la voie qui te convient.

A. Claude Code — terminal

Option 1 — comme plugin (recommandé) : ajoute ce dépôt comme marketplace, puis installe.

# Dans une session Claude Code
/plugin marketplace add dr-spook/master-odoo
/plugin install master-odoo@master-odoo

Option 2 — comme skill manuel : copie le dossier du skill dans ton répertoire de skills.

# Skill "projet" (partagé avec l'équipe, versionné dans le repo Odoo) :
git clone https://github.com/dr-spook/master-odoo
mkdir -p .claude/skills
cp -r master-odoo/skills/odoo .claude/skills/odoo

# — ou — Skill "personnel" (dispo sur toutes tes sessions) :
mkdir -p ~/.claude/skills
cp -r master-odoo/skills/odoo ~/.claude/skills/odoo

Ensuite, travaille normalement : dès que ta tâche parle d'Odoo, d'un __manifest__.py, d'un modèle, d'une vue XML, etc., le skill se déclenche.

B. Claude Code — application (bureau / web)

Même logique que le terminal : installe le plugin via le gestionnaire de plugins de l'application, ou place le dossier skills/odoo/ dans le répertoire de skills du projet (.claude/skills/). L'app détecte les skills du projet ouvert.

C. Claude.ai — web & app

Sur les offres qui exposent les Skills (Paramètres → Capabilities / Skills) :

  1. Zippe le contenu de skills/odoo/ de sorte que SKILL.md soit à la racine du zip.
  2. Ajoute-le via Paramètres → Skills → Ajouter un skill et téléverse le zip.
  3. Active-le. Il s'activera automatiquement sur tes conversations Odoo.

Le fichier master-odoo-skill.zip fourni dans les Releases du dépôt est déjà prêt à téléverser.

D. Installation manuelle

N'importe quel outil qui lit le format Agent Skill peut consommer skills/odoo/. Le point d'entrée est skills/odoo/SKILL.md (frontmatter name + description qui pilote le déclenchement) ; le reste (core/, reference/, deltas/) est chargé à la demande.

Exemples d'usage

Le skill est réactif : il fait exactement ce qu'on demande, expose l'architecture avant de coder, et livre du code sécurisé par défaut.

Créer un module (Odoo détecté = 18) :

« Crée-moi un module de gestion de tickets SAV : modèle helpdesk.ticket avec état, priorité, client, et les vues liste + formulaire. » → Le skill produit manifest + __init__ + modèle + sécurité (CSV + règles) + vues, en <list> (18), champ d'état en Selection, modificateurs en expressions Python.

Revue de code versionnée :

« Voici un module écrit pour Odoo 16, dis-moi ce qui casse en 18. » → Il pointe attrs/states, name_get, group_operator, <tree>… avec la correction 18.

Migration :

« Aide-moi à passer ce module de 18 à 19. » → Il applique deltas/odoo-19 : imports profonds odoo.orm.*, sémantique héritée, et te prévient sur les zones non confirmées plutôt que d'affirmer.

Question ORM ciblée :

« En 18, comment je rends un champ calculé cherchable et triable ? » → store=True + @api.depends, ou search=/inverse=, avec le pourquoi.

Détecter et forcer la version

Le skill détecte la série cible via, par ordre de priorité : la clé version du __manifest__.py ("18.0.1.0.0"18.0), le nom de branche git (17.0/18.0/19.0), puis $ODOO_SOURCE (odoo/release.py). Si rien n'est détectable et que ça bloque, il pose une question. Tu peux toujours forcer : « traite ça en Odoo 17 ».

Ajouter une future version (ex. Odoo 20)

C'est tout l'intérêt du modèle : un seul fichier.

  1. Crée skills/odoo/deltas/odoo-20.md.
  2. Renseignes-y uniquement les écarts vs le socle, vérifiés sur odoo/odoo@20.0.
  3. Ajoute la ligne dans le tableau des versions de skills/odoo/SKILL.md.

Ni le core/ ni le reference/ ne bougent.

Structure du dépôt

master-odoo/
├── README.md
├── LICENSE
├── .claude-plugin/
│   └── plugin.json                 # rend le dépôt installable comme plugin Claude Code
└── skills/
    └── odoo/                       # le skill autonome (copiable / téléversable tel quel)
        ├── SKILL.md                # routeur : détection de version + composition
        ├── core/                   # invariants 17→19+ (identité, protocole, sécurité)
        │   ├── 00-identity-and-protocol.md
        │   └── 01-security-baseline.md
        ├── reference/              # socle version-neutre (17 guides + index)
        │   ├── README.md
        │   ├── models.md  fields.md  views.md  security.md  manifest.md
        │   ├── decorators.md  controllers.md  data.md  actions.md  reports.md
        │   ├── mixins.md  testing.md  transactions.md  translation.md
        │   └── performance.md  migration.md  owl.md
        └── deltas/                 # écarts par version (faits tracés à la source)
            ├── odoo-17.md
            ├── odoo-18.md
            └── odoo-19.md

Contribuer

Les contributions sont bienvenues, à une condition : le standard de vérification.

  • Un fait versionné (diffère entre 17/18/19) va dans deltas/, jamais dans reference/, et doit citer sa source (odoo/odoo@<branche>/<fichier>, ligne si possible) → étiquette [source].
  • Un fait stable (identique sur toutes les versions) va dans reference/, en forme neutre.
  • Ne soumets pas d'affirmation « certaine » basée sur un blog ou la mémoire : marque-la [ext] ou ⚠️ À VÉRIFIER.
  • Pour une nouvelle version : voir Ajouter une future version.

Ouvre une issue pour discuter d'un ajout de version ou d'un sujet manquant avant une grosse PR.

Crédits & mentions

  • Le socle reference/ a été synthétisé et dédupliqué à partir d'un corpus de guides Odoo communautaires, puis condensé et recoupé avec le code source officiel. Merci aux auteurs de ces ressources en amont.
  • Les faits versionnés sont vérifiés contre le dépôt officiel odoo/odoo.
  • Odoo est une marque d'Odoo S.A. Ce projet est une ressource indépendante, non affiliée à Odoo S.A.

Licence

MIT

Avertissement

Ce skill assiste ; il ne remplace ni la documentation officielle Odoo ni ton jugement. Vérifie toujours le résultat sur ta version et ton projet, en particulier les zones marquées ⚠️ À VÉRIFIER (certains sujets d'Odoo 19 restent à confirmer). Signale une erreur via une issue — c'est comme ça que le socle se durcit.

About

Assistant expert pour développeurs Odoo 17, 18 et 19. Intègre une base de connaissances robuste (modèles, vues, sécurité, OWL) et un suivi précis des écarts (deltas) par version, entièrement vérifiés à la source du code d'Odoo. Optimisé pour automatiser et sécuriser tes développements via Claude Code.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors