Ten manual tests across two dimensions: document graph β can Aperio find, outline, and reference-track your documents from its index; and vision pipeline β can the VLM read structured fields from images and pass them to the main model for document search and cross-referencing. Requires a running Aperio instance.
Aperio indexes your documents β notes, reports, PDFs, spreadsheets, emails β so it can answer questions about them without reading every file from scratch. The document graph (Section A) builds a searchable index of content, structure, and cross-references. The vision pipeline (Section B) adds VLM-powered image extraction: attach a scanned invoice, the VLM reads the fields, and the main model uses those values to search related documents.
This document gives you ten manual tests across both categories. Section A works with any indexed documents. Section B requires sample invoice images and a configured VLM model.
Paste this setup prompt to create three test documents for Section A:
For Section B, you additionally need a VLM model configured (e.g. OLLAMA_VLM_MODEL=qwen3-vl:8b), a folder of trade documents indexed (e.g. trade-docs/ with commercial-invoice.txt, letter-of-credit.txt, swift-mt700.txt), and sample scanned invoice images (scanned-invoice.png, scanned-invoice-2.png).
Each test verifies a different doc_* tool. The system passes if it returns accurate results from the index without falling back to file reads.
Tests doc_repos β can the system tell you what documents are indexed and what's in each folder?
Tests doc_search β can the system find content by keyword across indexed documents?
q3-budget.md?Tests doc_outline β can the system tell you the section structure of a document without reading it from disk?
q3-budget.md β what sections does it have and what is each about?Tests doc_context β can the system retrieve a specific section's full text from the index without re-reading the file?
q3-budget.md.Tests doc_refs β can the system find every document that mentions a specific reference across all indexed files?
INV-204871? Show me all of them.onboard.html AND research-notes.md)doc_refs index or fall back to full-text search?These tests verify the two-model pipeline: VLM reads structured fields from scanned documents, then the main model uses those values to search indexed documents. Requires indexed trade documents and a configured VLM model.
Tests: main model calls doc_search for a beneficiary IBAN without any VLM involvement.
doc_search?commercial-invoice.txt among the results?doc_search and returns filenames. No VLM triggered.doc_search not called β model guesses or hallucinates the IBAN source.Tests: VLM reads a scanned invoice and returns structured JSON without the main model repeating the description.
scanned-invoice.png to your prompt.{"invoice_number":null,"lc_reference":null,"total_amount":null,"beneficiary_iban":null}inv-2026-06-5021, lc-2026-06-001, 1266250.00, DE89 3704 0044 0532 0130 00Tests: The main model remembers VLM-extracted evidence across turns without re-analysing the image.
DE89 3704 0044 0532 0130 00Tests: VLM reads an LC reference from an image β main model calls doc_search with it.
scanned-invoice.png.doc_search with that value?commercial-invoice.txt, letter-of-credit.txt, swift-mt700.txtdoc_search returns no results because the trade docs aren't indexed.Tests: VLM extracts fields from a different invoice document (tests generalisation).
scanned-invoice-2.png.invoice_number: INV-2026-05-1189date: 2026-05-14buyer_name: Aciers SpΓ©ciaux du RhΓ΄ne SAtotal: 11488.00lc_reference: LC-2026-05-008iban: DE89 3704 0044 0532 0130 00bic: COBADEFFXXXTests whether the doc graph handles all file formats it claims to support β different formats have different extraction paths.
budget.xlsx) with Marketing/Engineering sheets, a slide deck (pitch.pptx) with 3 slides, and a PDF (report.pdf) with 2 pages.Outline budget.xlsx β should show one section per sheet.
Outline pitch.pptx β should show one section per slide.
Outline report.pdf β should show one section per page.
Results fill in automatically. Fill in model and date below.
| Test | Result | Notes |
|---|---|---|
| 1. Folder Awareness (doc_repos) | β | |
| 2. Content Search (doc_search) | β | |
| 3. Document Outline (doc_outline) | β | |
| 4. Section Context (doc_context) | β | |
| 5. Reference Lookup (doc_refs) | β | |
| 6. Vision β Document Search Only | β | |
| 7. Vision β Image Extraction Only | β | |
| 8. Vision β Follow-Up Awareness | β | |
| 9. Vision β Image + Doc Tools Combined | β | |
| 10. Vision β Second Invoice | β | |
| Bonus: Format Tour | β | (extra credit) |
| TOTAL: ____ / 10 passed (or ____ / 11 with bonus) | ||
| Behaviour | What it means |
|---|---|
System uses doc_* tools | Using the document graph index |
System uses read_file or grep | Bypassing the index β reading from disk |
| Fast response (< 1 second) | Index lookup |
| Slow response (several seconds) | Reading and parsing files |
| Exact section headings from outline | Index stored structure correctly |
| Reference lookup finds all matches instantly | doc_refs index is working |
| Section | Test | Aperio Tool | What it does |
|---|---|---|---|
| A | Folder Awareness | doc_repos | Lists indexed folders with doc/chunk counts and MIME types |
| A | Content Search | doc_search | FTS5 (keyword) or hybrid vec+FTS (semantic) search with snippets |
| A | Document Outline | doc_outline | Section tree from the index β instant, no file re-read |
| A | Section Context | doc_context | Returns a stored section's full text |
| A | Reference Lookup | doc_refs | Cross-references IDs, URLs, emails, wikilinks, and citations |
| B | Document Search Only | doc_search | Main model searches indexed docs for an IBAN from memory |
| B | Image Extraction | VLM (describe_image) | VLM reads structured fields from a scanned invoice image |
| B | Follow-Up | Conversation context | Main model remembers VLM evidence across turns |
| B | Combined Pipeline | VLM β doc_search | VLM extracts LC ref β main model searches indexed docs |
| B | Second Invoice | VLM (generalisation) | VLM extracts from a different invoice document |