| name | odoo-docs-enhance |
| description | Fetch and annotate Odoo 18 developer documentation with IPAI-specific context — OCA-first alternatives, Azure ACA deployment notes, IPAI module conventions, and Odoo 18 CE breaking changes. Use before ingesting docs into the product-help RAG index. Triggers on "odoo docs", "annotate howto", or "enhance documentation". |
| disable-model-invocation | false |
| user-invocable | true |
| allowed-tools | Bash(curl *) Read Write |
Odoo docs enhancer
You are annotating official Odoo 18 developer documentation for IPAI's codebase context.
The output is an enhanced .md file ready for ingestion into the product-help-index RAG index.
IPAI overlays to apply to every Odoo doc
1. Odoo version pin
Add at the top of every enhanced doc:
> IPAI context: Odoo **18 CE** (not EE, not 19). ACA deployment.
> View XML: use `<list>` tag, never `<tree>`. Use `view_mode="list,form"`.
2. OCA-first annotation
For every topic that has an OCA module equivalent, add:
> OCA-first: Before implementing custom code, check [oca/<repo>] for a maintained module.
> IPAI rule: configure → OCA → minimal custom `ipai_*` bridge module.
3. Azure ACA deployment notes
For topics involving server config, workers, or infrastructure:
> Azure ACA: IPAI runs ipai-odoo-dev-web / cron / worker on Container Apps (rg-ipai-dev-odoo-runtime).
> PG Flex host: pg-ipai-odoo.postgres.database.azure.com (rg-ipai-dev-odoo-data, SEA).
> Secrets: Azure Key Vault via DefaultAzureCredential — never in environment variables or git.
4. Breaking changes — Odoo 18 CE
Add a warning block for any API that changed between 16/17 and 18:
> Odoo 18 CE breaking change: [specific change]
> Migration: [what to do instead]
Known Odoo 18 CE breaking changes to annotate:
_cr, _context, _uid deprecated on models — use self.env.cr, self.env.context, self.env.uid
osv.osv removed — use models.Model
<tree> view tag deprecated — use <list>
type="tree" in ir.actions.act_window deprecated — use type="list"
fields.Datetime.now() returns aware datetime — ensure comparisons use aware datetimes
- HTTP controllers:
@http.route signature changed for JSON endpoints
5. IPAI module naming
For any howto covering module creation:
> IPAI convention: custom modules use `ipai_` prefix. OCA modules use their upstream name unchanged.
> Module placement: odoo/custom/ipai_<name>/ for IPAI bridges, odoo/OCA/<repo>/ for OCA.
> Never modify OCA module source — create a thin `ipai_*` bridge that inherits.
6. Security / RLS alignment
For any howto covering access rights or security:
> IPAI security: all custom models must have ir.model.access.csv entries.
> Finance models: restrict to canonical pulser_* role groups (see pulser-finance-rbac skill).
> No ir.rule bypass for app clients — service role exceptions only.
Operations
Enhance a single howto page (/pulser-odoo:odoo-docs-enhance $0)
Argument: URL or local file path
- Fetch the page content (use
curl -s $0 or read from file)
- Strip HTML nav / sidebar — extract only the main content body
- Convert to clean markdown
- Apply IPAI overlays (sections 1–6 above) at relevant locations
- Add a metadata header:
---
source: $0
version: odoo-18-ce
enhanced: $(date -u +%Y-%m-%dT%H:%M:%SZ)
index_target: product-help-index
ipai_reviewed: false
---
- Save to
docs/odoo-18-enhanced/<slug>.md
- Flag any sections that need manual IPAI review with
> ⚠️ REVIEW NEEDED:
Enhance all howtos (/pulser-odoo:odoo-docs-enhance all)
Run against the full howtos index:
web_services — XML-RPC / JSON-RPC API
javascript_view — Custom view types
website_themes — Website Builder themes
define_module_data — Demo and seed data
company — Multi-company
translations — i18n
Produce one enhanced file per page, then generate an index at
docs/odoo-18-enhanced/INDEX.md listing all pages, their status, and RAG ingestion readiness.
Check ingestion readiness (/pulser-odoo:odoo-docs-enhance check $0)
For file $0, verify: