---
name: muaalajat-almustanadat
description: استخراج نص مستندات العميل بأمان من PDF والصور وDOCX وغيرها، مع تقدير الثقة ومنع اعتماد الاستخراج المشوّه. استخدمها عند وصول أي مستند مع القضية.
---

# معالجة المستندات

```
python3 tools/documents/extract_cli.py <المستند> --out cases/<رقم>/mustanadat/<اسم>.md
python3 tools/documents/extract_cli.py --backends     # ما المثبّت وما الناقص
python3 tools/documents/verify_fields.py <المستند>    # تدقيق الحقول الحرجة
```

## التعرّف الضوئي غير مضمون — والطبقة الاحتياطية ليست نموذجًا يقرأ النص

أخطر خطأ في القراءة الآلية ما يبقى النص بعده سليمًا: «٣٠ يومًا» تُقرأ «٣٧ يومًا»،
فتبقى الجملة فصيحة والثقة عالية والمدة خطأ. **ولا يكشف ذلك مراجعٌ يقرأ النص** —
الخانة الخاطئة اختفت منه، ونموذج يُطلب منه «التحقق» يجعل النص أفصح لا أصدق.

`verify_fields.py` يحصر الشك في الحقول التي تدور عليها القضية:

1. **قراءتان مستقلتان** للملف نفسه (`pdftotext -layout` مقابل `-raw`، وtesseract
   بـ`--psm 6` مقابل `--psm 4`). الرقم الذي تختلف عليه قراءتان هو موضع الخطأ.
2. **تماسك داخلي**: تاريخ غير ممكن تقويميًا، مجموع لا يساوي مفرداته، مدة تناقض
   حدّيها في السطر نفسه، رقم شخصي تاريخه مستحيل، رقم بخانتين من كتابتين، ودينار
   بخانتين عشريتين بدل ثلاث.
3. **ورقة مقابلة** لكل حقل، تُملأ بما يُقرأ في الأصل — وما يُكتب فيها هو المعتمد
   لا ما قرأته الآلة.

```
python3 tools/documents/verify_fields.py مسح.jpg --out cases/12/tadqiq.md
# ثم بعد ملء «بالأصل» في كل حقل:
python3 tools/documents/verify_fields.py مسح.jpg --confirm cases/12/tadqiq.md
```

رموز الخروج: `0` لا مقابلة لازمة · `3` تحتاج مقابلة بالأصل · `1` ورقة ناقصة ·
`2` خطأ تشغيلي.

**المصدر الحتمي لا يحتاج مقابلة:** DOCX وODT وHTML والنص تُقرأ حرفًا بحرف، فلا
خطأ قراءة ممكنًا. المقابلة تُطلب لـPDF والصور، أو حين تظهر ملاحظة تماسك.

**إن كنت وكيلًا يرى الصورة نفسها** (لا نصها فقط)، فاقرأ الحقول من الصورة وقارنها
بورقة التدقيق: قارئ ثانٍ يرى البكسل قارئ حقيقي، بخلاف نموذج يرى النص وحده.

```bash
```

## رمز الخروج يحكم

| الرمز | المعنى | إجراؤك |
|---|---|---|
| `0` | استخراج سليم | انقل الوقائع منه |
| `3` | مقبول بتحفظات | **قابِل كل تاريخ ومبلغ واسم بالأصل** قبل النقل |
| `1` | غير صالح | لا تبنِ عليه واقعة. اطلب نسخة أوضح |
| `2` | تعذّر (أداة ناقصة أو صيغة مرفوضة) | اتبع الإرشاد المعروض |

## القاعدة

**الاستخراج المشوّه أخطر من الفاشل.** الفاشل يوقفك؛ والمشوّه يعطيك نصًا يبدو
سليمًا فتُبنى عليه وقائع. تاريخ أو مبلغ مقروء خطأً من عقد يفسد القضية كما يفسدها
إسناد ملفّق تمامًا — والفرق أن هذا لا تلتقطه بوابة الإسناد لأنه ليس إسنادًا.

فإذا قالت الأداة «مقبول بتحفظات» فالتحفظ ليس شكليًا: افتح المستند الأصلي وقابِل
الأرقام حرفًا حرفًا.

## ما يعمل بلا تثبيت
DOCX · ODT · RTF · HTML · نص — بالمكتبة القياسية.

## ما يحتاج أداة
- **PDF**: `sudo apt install poppler-utils`
- **صور ومستندات ممسوحة**: `sudo apt install tesseract-ocr tesseract-ocr-ara`

الأداة **ترفض صراحةً** ولا تُرجع نصًا فارغًا حين تنقص الخلفية.

## ما لا يُفتح
- **`.doc`/`.xls` القديمة** — قد تحوي ماكرو. تُحوَّل في بيئة معزولة أولًا:
  `soffice --headless --safe-mode --convert-to docx <الملف>`
- **الأرشيفات المضغوطة** — تُفك ويُمرَّر كل مستند على حدة.
- أي ملف بمسار خطر داخله أو نسبة ضغط شاذة أو كيانات XML — يُرفض تلقائيًا.

## إصدار الوثيقة النهائية بصيغة Word

```
python3 tools/documents/export_cli.py <المسودة>.md --kind <memo|pleading|opinion> \
    --out cases/<رقم>/<اسم>.docx
```

المحاكم والعملاء لا يقبلون Markdown. الأداة تُخرج ملف Word عربيًا باتجاه من
اليمين، بخط وحجم مضبوطين، على مقاس A4.

**البوابة تُشغَّل من داخل الأداة ولا تُتخطى.** التصدير آخر خطوة قبل خروج
الوثيقة من المكتب، فلو أمكن تصدير مسودة لم تُجَز لصار كل ما قبله زينة. مسودة
مردودة أو معلّقة على تحكيم **لا يُنتج لها ملف Word أصلًا**.

تُزال علامات الإسناد الآلية تلقائيًا، وتُضاف ترويسة المسودة إن كان
`output.draft_watermark` مفعّلًا في `config/office.yaml`.

`--no-gate` للمعاينة أثناء الصياغة فقط. **لا تسلّم بها.**

## العربية
تفاصيل أعطاب الاستخراج العربي وكيف تُقرأ التحفظات:
[references/uyub-alistikhraj.md](references/uyub-alistikhraj.md)
