Migra módulos de Odoo con IA, sin reescribirlos a mano

Compartimos el System Prompt de código abierto que permite automatizar las reglas de transformación de Odoo. Lo hemos puesto a prueba migrando un módulo extenso desde la versión 12 hasta la 19, superando con éxito todos los breaking changes del camino e instalándolo sin errores ni advertencias.
Lo compartimos en código abierto para la comunidad.
1. El Problema: El 80% es trabajo mecánico
Migrar Odoo cada año es tedioso y costoso. Cada versión rompe decoradores, sintaxis XML y APIs, generando una deuda técnica que paraliza a las empresas.
La solución: El System Prompt automatiza ese 80% de tareas repetitivas en minutos. Para garantizar la seguridad, la IA nunca inventa código: si hay dudas, marca el bloque con # TODO_AI para revisión humana. Un simple grep permite auditar el resultado en segundos.
2. Métricas de desempeño
Validamos este sistema con un caso real: un módulo extenso migrado desde Odoo v12 hasta Odoo v19 en 7 saltos consecutivos.
Trayectoria: v12 → v13 → v14 → v15 → v16 → v17 → v18 → v19
Resultado: Módulo instalado en Odoo v19 de forma limpia, sin errores ni warnings.
Radiografía del código migrado
| Métrica | Volumen | Detalle |
|---|---|---|
| Archivos | 47 | 18 Python, 26 XML, 1 CSV |
| Líneas de código | ~5,987 | 1,969 LOC Python, 3,795 LOC XML, 88 LOC CSV |
| Modelos | 29 | 23 propios, 6 heredados (res.partner, res.users, etc.) |
| Campos | ~295 | Definiciones completas de modelos |
| Interfaz y vistas | 112 | 50 vistas, 26 acciones, 36 menús |
| Seguridad | 69 | 69 grupos de seguridad, 87 reglas ACL |
Stack tecnológico
- Entorno base: Odoo 19 + PostgreSQL (Docker Compose).
- Desarrollo: Python 3.12+, framework OWL.
- Motores IA ejecutados: Claude Code + Claude 3.5 Sonnet / Opus.
3. Cómo usarlo
Hemos preparado un workspace que combina las reglas de migración con un entorno Odoo + PostgreSQL dockerizado para validar el resultado.
Workspace: nodenlabs/odoo-devx → odoo-module-migration Reglas: .claude/skills/odoo-module-migration — divididas por versión, para que el agente cargue solo los saltos que necesita.
Estructura del workspace
AGENTS.md: La guía que sigue el agente.CLAUDE.md: ImportaAGENTS.md, así Claude Code lo carga solo.docker-compose.yamlyDockerfile: Odoo + PostgreSQL, en la versión que definas.src/: tus módulos originales ·out/: los migrados.
Paso 1 · Preparar el entorno
cp .env.example .env
mkdir -p src outCopia tu módulo original dentro de src/. La variable ODOO_VERSION en el .env define la versión destino: 15.0 para migrar de v14 a v15, 18.0 para v17 a v18, y así.
Paso 2 · Lanzar la migración
Abre tu agente de IA en el directorio —Claude Code carga CLAUDE.md → AGENTS.md solo— y lanza la instrucción:
"Migrate
src/mi_modulofrom v12 to v19. Save it inout/mi_modulo."
El agente copia el módulo, aplica las reglas salto por salto, escribe un CHANGELOG.md con lo que cambió y marca con # TODO_AI: todo lo que no pudo resolver con certeza.
Paso 3 · Validar
docker compose up -d --build
docker compose exec odoo odoo -d migration_test -i mi_modulo --stop-after-init --no-http
docker compose logs -f odooOdoo queda en http://localhost:8069.
Paso 4 · Iterar y revisar
Si la instalación falla, devuelve el traceback al agente: corrige solo los archivos afectados, sin tocar el resto del trabajo. Al final, revisa los puntos que dejó marcados:
grep -rn 'TODO_AI' out/Por qué ese marcador importa. El agente nunca inventa código: si no está seguro, conserva el original y deja el
TODO_AIcon la razón. Esa lista es tu trabajo manual real, y es corta.
Migrar versiones de Odoo ya no tiene que ser un dolor de cabeza. Al delegar el trabajo manual a la IA, recuperamos tiempo para programar lo que aporta valor real.
Pruébalo con tus módulos y, si encuentras nuevas reglas, ¡anímate a contribuir al repositorio!