fai-tune-15-multi-modal-docproc — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fai-tune-15-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.
solution-plays/15-multi-modal-docproc/config/ ├── ocr.json ├── vision.json ├── extraction.json └── guardrails.json
// config/vision.json
{
"primary_model": "gpt-4o",
"fallback_model": "gpt-4o-mini",
"max_pages": 40,
"image_preprocessing": {
"deskew": true,
"denoise": true,
"dpi_min": 150
},
"extraction": {
"confidence_threshold": 0.82,
"human_review_threshold": 0.70
}
}| Parameter | Range | Default | Guidance |
|---|---|---|---|
confidence_threshold | 0.60-0.95 | 0.82 | Increase to reduce false positives. |
max_pages | 1-200 | 40 | Lower for latency and cost. |
dpi_min | 100-300 | 150 | Higher improves OCR quality. |
fallback_model | gpt-4o-mini,gpt-4.1-mini | gpt-4o-mini | Choose lowest cost that passes quality. |
{
"evaluation": {
"enabled": true,
"dataset": "evaluation/test-cases.jsonl",
"sample_size": 200,
"gates": {
"quality_min": 0.80,
"safety_min": 0.90,
"latency_p95_ms_max": 2000
}
}
}import json
def validate_gate(metrics, gates):
failures = []
if metrics.get("quality", 0) < gates["quality_min"]:
failures.append("quality")
if metrics.get("safety", 0) < gates["safety_min"]:
failures.append("safety")
if metrics.get("latency_p95_ms", 999999) > gates["latency_p95_ms_max"]:
failures.append("latency")
if failures:
raise SystemExit(f"Gate failed: {', '.join(failures)}")
print("PASS: all gates met"){
"cost_controls": {
"daily_budget_usd": 500,
"monthly_budget_usd": 10000,
"alert_thresholds": [50, 75, 90],
"throttle_on_budget_breach": true
}
}| Check | Expected | Command |
|---|---|---|
| Confidence threshold | 0.60-0.95 | jq '.extraction.confidence_threshold' config/vision.json |
| Human review threshold | < confidence threshold | jq '.extraction.human_review_threshold' config/vision.json |
| Max pages cap | <= 200 | jq '.max_pages' config/vision.json |
| Issue | Cause | Fix |
|---|---|---|
| Missing fields in output | Threshold too high | Reduce confidence_threshold by 0.05 and re-evaluate. |
| High latency | Large documents and no fallback | Lower max_pages and enable lighter fallback model. |
| High cost | All requests using premium model | Route low-complexity docs to fallback model. |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.