| name | odoo-readme |
|---|---|
| description | Sincroniza o genera el README.rst de un módulo Odoo según su estado real. |
| argument-hint | Ruta al módulo o nombre técnico. Si falta, el agente la pedirá. |
Antes de operar, revisa las skills de Odoo en .agents/skills/ y las guías de dev/ pertinentes (por ejemplo: *-manifest-guide.md, *-view-guide.md).
Eres un agente que analiza un módulo Odoo y produce o sincroniza su README.rst para que refleje exactamente el estado real del módulo.
- Detectar si existe
README.rsten el módulo. - Si no existe: generar el README completo desde cero siguiendo la plantilla obligatoria.
- Si existe: activar modo sincronización y actualizarlo para que refleje el estado actual del código sin reescribir innecesariamente.
- Verificar existencia de
README.rst.
- Si NO existe: ejecutar los pasos 1→7 y generar el README nuevo.
- Si SÍ existe: activar modo sincronización y ejecutar 1→6 más los pasos de comparación y sincronización.
-
Analizar el módulo completo: leer
__manifest__.py,models/,views/,controllers/(si existe),data/,security/, y cualquier archivo Python o plantilla XML relevante. -
Extraer del
__manifest__.py:name,summary,depends,author,license,description(si existe). -
Detectar características funcionales: métodos Python con comportamiento (overrides de
create,write, etc.), acciones (ir.actions.*), vistas (form, tree, wizard, kanban, report), botones, estados/workflows, modelos nuevos y campos añadidos a modelos existentes. Resumir como lista de características funcionales. -
Detectar detalles técnicos: listar todos los modelos nuevos, modelos heredados, sus campos clave, vistas XML existentes (tipo por tipo), y scripts/adicionales. Generar listas organizadas.
-
Describir el uso: generar un instructivo paso a paso basado en acciones, menús (
ir.ui.menu), botones, estados y flujos lógicos deducidos del código. -
Explicar la arquitectura: describir estructura de carpetas, relaciones entre modelos, vistas que componen la UI, lógica de negocio implementada, endpoints de controllers (si aplican) y reportes (si los hay). Mantener la descripción breve y concreta.
Modo sincronización (cuando existe README.rst):
- Analizar README actual y extraer su información estructurada.
- Comparar estado real del módulo con lo documentado.
- Sincronizar el README: agregar elementos faltantes, actualizar elementos modificados y eliminar información obsoleta.
- Mantener exactamente la estructura RST obligatoria (ver plantilla abajo).
- Evitar duplicar información correcta.
- No reescribir todo innecesariamente; si la información es correcta, mantenerla.
El resultado final debe respetar exactamente esta estructura y contener sólo información derivada del código:
==========================
Nombre del Módulo
==========================
Subtítulo con una descripción corta del módulo
Características
===============
- Lista de características funcionales
Detalles Técnicos
=================
- Modelos nuevos
- Modelos heredados
- Vistas incluidas
- Elementos técnicos adicionales
Uso
===
Paso a paso del uso del módulo
Arquitectura
============
Descripción breve de la arquitectura interna
Dependencias
============
- Lista de dependencias del manifest
Autor
=====
Autor del manifest
Licencia
========
Licencia del manifest- No inventar información: toda la documentación debe derivarse exclusivamente del código del módulo.
- No usar frases genéricas ni contenidos no verificables.
- No agregar texto fuera del README final.
- No explicar qué fue modificado ni mencionar que se sincronizó.
- Si el README actual no respeta la estructura, reestructurarlo para que cumpla la plantilla.
- Si la documentación está obsoleta, regenerarla respetando la plantilla.
- Si faltan datos en el manifest o en el código que impidan documentar un punto, dejar el campo en blanco (o un placeholder mínimo) y marcar internamente como pendiente; no inventar.
- Siempre preferir la fuente de verdad del código (archivos Python/XML/manifest) frente a lo que diga el README actual.
- Escribir o actualizar
README.rsten la raíz del módulo con la plantilla exacta y contenido derivado del análisis.