المحكّمون في 2026 يسألون صراحةً: «كم من هذا كتبه الذكاء الاصطناعي؟ وهل تفهمونه؟». هذا الملف يجيب قبل أن يُسأل.
| المرحلة | من ينفّذها | هل يكتب النموذج نصًا دينيًا؟ |
|---|---|---|
| استخراج مواضع الاقتباس من نص المستخدم | قواعد حتمية (extract/rules.py) دائمًا + نموذج لغوي اختياري يقترح مواضع إضافية فقط (providers/) |
لا. يُرجع أزواج (بداية، نهاية) تُعاد مطابقتها على النص الأصلي (relocate) وتُرفض إن لم تُوجد حرفيًا |
| الكشف الحتمي عن آيات بلا علامات على كامل النص | فهرس مواضع فقط (extract/anchor.py) |
لا — بلا نموذج |
| المطابقة (حرفية → تقريبية) | numpy على فهرس مواضع + BM25 + trigram (match/, retrieve/) |
لا — بلا نموذج |
| القرار (الحالات الأربع) | آلة حالات حتمية (state.py) — المكان الوحيد الذي يُسنَد فيه وضع |
لا |
| النص المعروض | حرفيًا من المدوّنة بمعرّفه؛ المدقّق V1 يرفض أي بايت مختلف (verify.py) |
لا |
| الرسائل | قوالب ثابتة في messages/*.json بمفاتيح؛ المعجم الممنوع يُفحص عند الإقلاع وفي كل رد (V4) |
لا |
| قراءة الصور (OCR) | نموذج رؤية اختياري | يُرجع النص المقروء للمستخدم ليراجعه؛ ما يأتي من صورة لا يُؤكَّد أبدًا كـ«وُجد» (ADR-003) |
الخلاصة: النموذج اللغوي في بصيرة مساعد استخراج قابل للتعطيل (LLM_PROVIDER=mock). تعطيله يُبقي كل النتائج الحتمية ويُظهر شارة extraction_degraded. لا جملة واحدة يراها المستخدم ألّفها نموذج.
أي واجهة متوافقة مع OpenAI؛ في الإنتاج: Genspark LLM proxy بالنموذج gpt-5.4-mini (اختير بعد قياس 20 نموذجًا، docs/MODELS.md)، ويعمل أيضًا مع OpenAI مباشرة. يُضبط من /settings مرة واحدة أو بـ LLM_BASE_URL/LLM_API_KEY/LLM_MODEL. التقييم الرسمي (eval/REPORT.md) يُشغَّل بـ mock ليكون قابلًا للتكرار بالبايت؛ ويُعاد بمزوّد حقيقي مع سطر «تباين الاستخراج».
- بوت تيليجرام (
integrations/telegram) لا يحوي أي نموذج؛ هو عميل رقيق لواجهة بصيرة البرمجية.
طُوِّر المشروع بمساعدة أحدث نماذج البرمجة عبر Genspark: Claude Opus 5.5 وClaude Fable 5.1 وGPT-6 Astra،
وقيس أداؤها على مهمة الاستخراج الحقيقية قبل اختيار نموذج التشغيل الافتراضي (docs/MODELS.md).
| ما استُخدم | فيمَ | ما رُوجع يدويًا |
|---|---|---|
| مساعدات برمجة بالذكاء الاصطناعي | صياغة أولية لأجزاء من الكود والوثائق والاختبارات | كل سطر في state.py وverify.py وextract/ قُرئ وفُهم وعُدّل يدويًا؛ كل ثابت I1–I19 له اختبار كتبناه ونعرف لماذا |
| نماذج لغوية | توليد حالات اختبار اصطناعية (eval/gen_cases.py — حتمي بـ seed) |
المراجعة البشرية + المرشد الشرعي لرسائل الحالات |
| — | لا لتوليد أي نص قرآني أو حديثي في المدوّنة أو الاختبارات؛ كل نص اختبار يُشتق بمعرّف سجل من المصادر الرسمية ثم يُحوَّر ميكانيكيًا | — |
docs/adr/قرارات معمارية مكتوبة بأسبابها.docs/DECISIONS.mdسجل قرارات مؤرّخ (E-001 … E-064).- كل ثابت سلامة له اختبار باسمه (
tests/test_state.py,tests/test_scholar_lens.py). - في جلسة التحكيم: نشرح أي ملف شفهيًا عند الطلب.
- لا نُدرّب نموذجًا على نصوص دينية.
- لا نُرسل بيانات المستخدم لأي جهة غير مزوّد الاستخراج المُعلن (ويمكن تعطيله).
- لا نسوّق بصيرة كـ«مرجع ديني» — هي أداة تحقق من النقل، وتُحيل إلى أهل العلم (توافقًا مع توصية IslamicMMLU 2026: «Religious guidance should involve qualified human scholars»).