522a6a98679158bc6709883406e8939d7ef96673
- Add 'Mandatory First Step for Agents' section at the top of AGENTS.md. - Require agents to inspect .agents/skills/ and load all applicable skills before starting work. - Clarify that skill instructions take precedence over general instructions and that ambiguous or conflicting tasks must stop for user consultation. - Remove the old bottom 'Skills Reference' section. - Add 'Any project rule, skill instruction, or requirement is unclear or ambiguous' to the 'When to Ask the User' list.
odoo_ocr
Local-first invoice OCR pipeline that reads scanned, printed, handwritten, and native-PDF invoices and produces Odoo Enterprise-ready XML.
Quick start
-
Install dependencies:
uv sync --all-extras # or pip install -e ".[dev]" -
Configure
config.yamlor set environment variables:export OLLAMA_BASE_URL="http://100.103.83.12:11435" -
Run the pipeline:
odoo-ocr process /path/to/invoices --output ./out/
Architecture
Input File
→ Classifier (heuristic + small VLM)
→ Branch: digital_pdf → text/layout extraction
→ Branch: scanned_print → preprocess → VLM OCR
→ Branch: handwritten → preprocess → GLM-OCR
→ Branch: mixed_unknown → preprocess → ensemble OCR
→ Structured Extraction VLM
→ Review VLM (image vs extracted JSON)
→ Confidence check
→ XML Builder
→ Odoo XML + sidecar JSON
Project-specific agent skills
Agent skills are in .agents/skills/:
odoo-ocr-pipeline— classifier, branches, extraction, review.odoo-xml-import— generating and validating Odoo XML.local-vlm-client— Ollama/llama.cpp VLM clients and prompts.
Description
Languages
Python
99.5%
Shell
0.5%