evaluate-multi-modal-docproc — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited evaluate-multi-modal-docproc (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
| Metric | Target | How to Measure |
|---|---|---|
| Text field extraction (OCR) | ≥ 95% | Labeled test set comparison |
| Table extraction F1 | ≥ 90% | Cell-level precision/recall |
| Chart data extraction | ≥ 85% | Data point accuracy for charts |
| Stamp/signature detection | ≥ 90% | Detection rate on known stamps |
| Page classification accuracy | ≥ 95% | Correct routing to OCR vs vision |
| Cross-modal consistency | ≥ 90% | Vision + OCR agree on shared fields |
| PII detection (images) | ≥ 95% | PII in photos/stamps detected |
| Processing time per page | < 15 seconds | Timed batch processing |
Create test documents with ground truth:
{"id": "mm001", "document": "samples/invoice-with-logo.pdf", "pages": [
{"page": 1, "type": "mixed", "expected_text": {"vendor": "Acme Corp", "total": "$1,234.56"}, "expected_visual": {"logo": "Acme Corp logo, blue"}},
{"page": 2, "type": "table", "expected_rows": 15, "expected_columns": 4}
]}
{"id": "mm002", "document": "samples/report-with-charts.pdf", "pages": [
{"page": 3, "type": "chart", "expected_data": {"type": "bar", "values": [10, 25, 40, 15]}}
]}Minimum: 30 test documents spanning all page types (text, table, chart, photo, stamp, mixed).
# OCR accuracy (text pages)
python evaluation/eval.py --test-set evaluation/test-set.jsonl --metrics ocr_accuracy
# Vision accuracy (visual pages)
python evaluation/eval.py --test-set evaluation/test-set.jsonl --metrics vision_accuracy
# Table extraction
python evaluation/eval.py --test-set evaluation/test-set.jsonl --metrics table_extractionFor mixed pages processed by BOTH OCR and vision:
python evaluation/eval.py --all --output evaluation/report.json --ci-gate| Result | Action |
|---|---|
| All PASS | Deploy to production |
| OCR < 90% | Check document quality, adjust preprocessing |
| Vision < 80% | Improve prompts, increase image resolution |
| Page classification < 90% | Retrain classifier with more samples |
| PII in images missed | Add explicit PII check in vision prompt |
| Symptom | Root Cause | Fix |
|---|---|---|
| Charts interpreted as decoration | Generic vision prompt | Use chart-specific extraction prompt |
| Table columns shifted | Complex merged cells | Route to Doc Intel table model, not vision |
| Stamps not detected | Too small in image | Crop stamp region, process at higher DPI |
| Handwriting gibberish | Low quality scan | Require 300 DPI, apply contrast enhancement |
| Vision + OCR disagree | Different interpretation | Use OCR for text, vision for visual meaning |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.