- Replaces duplicated _load_prompt() helpers with shared load_prompt().
- Classifier raises cleanly when no renderable pages exist.
- scanned_print, handwritten, and mixed_unknown branches now force
response_format=OcrResponse and parse via client.parse_json().
- Adds branch tests for multi-page OCR and corrected invoice handling.
- Adds abstract aclose() and shared load_prompt() helper to BaseVLMClient.
- OllamaClient now logs latency, tokens, and prompt hash per call.
- Retries cover HTTP 429 and 5xx in addition to network/timeout errors.
- Cache key now includes response_format and max_tokens.
- Warns when JSON schema generation falls back to plain 'json' format.
- Adds FakeVLMClient.aclose() and cache unit tests.
- Adds OcrResponse Pydantic schema for OCR branch JSON output.
- Validates invoice_date and due_date as strict ISO 8601 calendar dates.
- Adds field descriptions to InvoiceLineItem for clearer VLM prompts.
- Expands schema tests for dates, decimal coercion, negatives, and line_items_sum().
Adds the uv lockfile generated from pyproject.toml and updates
tool.mypy.python_version to 3.12 so third-party stubs parse cleanly
while keeping runtime compatibility at Python 3.11.
- Enforce Understand → Plan → Wait for Approval → Implement → Validate → Review.
- Require agents to read code, load skills, and produce a plan before changing files.
- Add explicit STOP after presenting the plan until user approval.
- Define minimum validation commands and self-review checklist.
- Allow trivial fixes to skip directly to implementation, but still require validation.
- 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.
- Add .agents/skills/review/SKILL.md with a required review checklist covering
project rules, model client rules, pipeline rules, XML rules, and test rules.
- Update AGENTS.md with a dedicated 'Review Stage Rules' section that makes
review mandatory and maps confidence thresholds to XML generation behavior.
- Add review skill to the skills reference.
- Add .ruff_cache/ to .gitignore and keep agent XML templates out of the '*.xml' ignore rule.