Descobrindo Odoo Estrutura
Skill para descoberta de campos e estrutura de modelos do Odoo.
QUANDO USAR: Quando o Agent nao conhecer um modelo/campo especifico do Odoo e precisar descobrir a estrutura para enriquecer a resposta ao usuario.
Casos de Uso
- •
Usuario pergunta sobre dado que nao esta mapeado
- •Agent usa esta skill para descobrir campos
- •Retorna informacao enriquecida ao usuario
- •
Implementar nova consulta
- •Descobrir estrutura do modelo
- •Mapear campos relevantes
- •Documentar em rastreando-odoo (references/relacionamentos.md)
- •
Debug de integracoes
- •Inspecionar registro especifico
- •Verificar valores de campos
Script Disponivel
descobrindo.py
source .venv/bin/activate && \ python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py [opcoes]
Operacoes Disponiveis
| Operacao | Flag | Descricao | Exemplo |
|---|---|---|---|
| Listar campos | --listar-campos | Lista todos os campos do modelo | --modelo res.partner --listar-campos |
| Buscar campo | --buscar-campo | Busca campo por nome/descricao | --modelo res.partner --buscar-campo cnpj |
| Inspecionar | --inspecionar | Mostra todos os campos de um registro | --modelo res.partner --inspecionar 123 |
| Consulta generica | --filtro | Consulta com filtro JSON | --modelo res.partner --filtro '[["name","ilike","teste"]]' |
Parametros
| Parametro | Obrigatorio | Descricao |
|---|---|---|
--modelo | Sim | Nome do modelo Odoo (ex: res.partner, account.move) |
--listar-campos | Nao | Lista todos os campos do modelo |
--buscar-campo | Nao | Termo para buscar nos nomes/descricoes dos campos |
--inspecionar | Nao | ID do registro para inspecionar |
--filtro | Nao | Filtro em formato JSON |
--campos | Nao | Campos a retornar (JSON), usado com --filtro |
--limit | Nao | Limite de resultados (padrao: 10) |
--json | Nao | Saida em formato JSON |
Exemplos de Uso
Descobrir campos de um modelo
python .../descobrindo.py --modelo l10n_br_ciel_it_account.dfe --listar-campos
Buscar campo especifico
python .../descobrindo.py --modelo res.partner --buscar-campo cnpj
Inspecionar registro
python .../descobrindo.py --modelo res.partner --inspecionar 123
Consulta generica com filtro
python .../descobrindo.py \ --modelo res.partner \ --filtro '[["vat","ilike","93209765"]]' \ --campos '["id","name","vat"]' \ --limit 5
Cenarios Praticos de Descoberta
Cenario 1: Usuario pergunta sobre campo desconhecido
Situacao: "Qual o campo que guarda o codigo de barras do produto?"
# Passo 1: Buscar campos relacionados a "barcode" no modelo product.product source .venv/bin/activate && \ python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py \ --modelo product.product \ --buscar-campo barcode # Resultado esperado: Lista campos como barcode, barcode_ids, etc.
Acao apos descoberta: Documentar no CLAUDE.md ou references/MODELOS_CAMPOS.md se for campo frequentemente usado.
Cenario 2: Debug de campo com valor inesperado
Situacao: "Qual o valor do campo X no registro Y?"
NOTA: Para RASTREAR documentos (NF, PO, SO), use a skill
rastreando-odooem vez desta.
# Inspecionar TODOS os campos de um registro especifico source .venv/bin/activate && \ python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py \ --modelo res.partner \ --inspecionar 12345
Resultado: Ver todos os valores de campos do registro para debug.
Cenario 3: Preparar nova integracao
Situacao: "Preciso criar integracao com modelo stock.picking (movimentacao de estoque)"
# Passo 1: Listar TODOS os campos do modelo source .venv/bin/activate && \ python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py \ --modelo stock.picking \ --listar-campos \ --json > /tmp/stock_picking_campos.json # Passo 2: Buscar campos especificos de interesse python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py \ --modelo stock.picking \ --buscar-campo partner python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py \ --modelo stock.picking \ --buscar-campo origin # Passo 3: Pegar um registro de exemplo para entender estrutura python .claude/skills/descobrindo-odoo-estrutura/scripts/descobrindo.py \ --modelo stock.picking \ --filtro '[["state","=","done"]]' \ --limit 1 \ --inspecionar
Proximo passo: Usar skill integracao-odoo para criar o Service com os campos descobertos.
Modelos Conhecidos (Referencia)
| Modelo | Descricao | Skill Relacionada |
|---|---|---|
l10n_br_ciel_it_account.dfe | Documentos Fiscais | rastreando-odoo |
l10n_br_ciel_it_account.dfe.line | Linhas dos DFE | rastreando-odoo |
res.partner | Parceiros (clientes, fornecedores) | rastreando-odoo |
account.move | Faturas/Lancamentos | rastreando-odoo |
account.move.line | Linhas de fatura | rastreando-odoo |
purchase.order | Pedidos de compra | rastreando-odoo |
sale.order | Pedidos de venda | rastreando-odoo |
product.product | Produtos | - |
Fluxo de Trabalho
Usuario pergunta sobre dado desconhecido
│
▼
Agent verifica: modelo/campo conhecido?
│
├── SIM → Usa rastreando-odoo para consultar fluxos
│
└── NAO → Usa esta skill para descobrir
│
▼
descobrindo.py --modelo X --listar-campos
│
▼
Retorna informacao ao usuario
Relacionado
| Skill | Uso |
|---|---|
| rastreando-odoo | Consultas e rastreamento de fluxos documentais (NF, PO, SO, titulos) |
| integracao-odoo | Desenvolvimento de novas integracoes |
| gerindo-expedicao | Consultas de carteira, separacoes e estoque |