deploy-multi-modal-docproc — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited deploy-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.
az account showaz bicep lint -f infra/main.bicep
az bicep build -f infra/main.bicepVerify resources:
az deployment group create -g $RG -f infra/main.bicep -p infra/parameters.jsonDocument Upload → PDF split into pages → Page Classification
├── Text-heavy page → Document Intelligence (OCR + Layout)
├── Chart/graph page → GPT-4o Vision (interpret visual)
├── Table page → Document Intelligence (table extraction)
├── Photo/stamp page → GPT-4o Vision (describe + extract)
└── Mixed page → Doc Intel (OCR) + GPT-4o Vision (visual elements)
↓
Merge results → Structured JSON → Cosmos DB| Page Type | Detection Method | Processing Path |
|---|---|---|
| Text-only | >90% text area | Document Intelligence Layout |
| Table | Table borders detected | Document Intelligence table extraction |
| Chart/graph | Chart pattern recognition | GPT-4o Vision with data extraction prompt |
| Photo/image | <20% text area | GPT-4o Vision with description prompt |
| Stamp/seal | Circular pattern detected | GPT-4o Vision with stamp reading prompt |
| Handwriting | Ink stroke detection | Document Intelligence + GPT-4o Vision |
| Mixed | Text + visual elements | Both pipelines, merge results |
# Chart interpretation prompt
vision_prompt = """Analyze this chart/graph image and extract:
1. Chart type (bar, line, pie, scatter)
2. Title and axis labels
3. All data points as structured JSON
4. Key trends or insights
Return structured JSON only."""
# Stamp/signature prompt
stamp_prompt = """Identify stamps, seals, or signatures in this image:
1. Type (stamp, seal, signature, initials)
2. Text content (if readable)
3. Position on page (top-left, bottom-right, etc.)
4. Estimated authenticity indicators
Return structured JSON only."""# Test OCR-only page
python scripts/test_extraction.py --document samples/text-page.pdf --expect ocr
# Test vision page (chart)
python scripts/test_extraction.py --document samples/chart-page.pdf --expect vision
# Test mixed document
python scripts/test_extraction.py --document samples/mixed-doc.pdf --expect multi-modal
# Test full pipeline
python scripts/test_pipeline.py --document samples/full-report.pdf --output results.json| Issue | Cause | Fix |
|---|---|---|
| Vision returns "I can't see" | Image too small or low quality | Ensure 300 DPI, resize to ≥1024px |
| Chart data extraction wrong | Ambiguous chart type | Add chart type hint in prompt |
| Table columns misaligned | Complex spanning headers | Use Doc Intel table extraction, not vision |
| Handwriting not recognized | Cursive or faded ink | Combine Doc Intel + GPT-4o for cross-validation |
| High cost per document | Using vision on text pages | Route text pages to OCR (10x cheaper) |
| Processing timeout | Large multi-page document | Process pages in parallel, max 5 concurrent |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.