docs(rtl): align all markdown documentation files right-to-left for Arabic readability

This commit is contained in:
Hamza-Ayed
2026-09-09 11:38:30 +03:00
parent 432ca50204
commit 0dc5df7b5e
13 changed files with 1126 additions and 51 deletions
+290
View File
@@ -0,0 +1,290 @@
<div dir="rtl" align="right">
# خطة التنفيذ اللاحق واختبارات القبول
2026-09-09 — جميع المهام أدناه **مخططة وغير منفذة في مهمة التوثيق هذه**. مرجع المنتج [المواصفات](NEXT_PHASE_MASTER_SPEC.md)، وأدلة الفجوات [تدقيق الكود](CURRENT_STATE_AUDIT_2026-09-09.md). تستخدم IDs التدقيق `Axx` للربط، وIDs المهام `NP-xx` للتسليم. لا يحوّل النموذج المقترحات المالية إلى شروط حقيقية دون قرار تجاري.
## 1. خريطة التنفيذ
</div>
```text
NP-00 تثبيت خط الأساس
├─ NP-01 صدق البيانات ─ NP-02 الهوية والأصول ─ NP-03 الاستبدال ─ NP-04 التدقيق
│ └─ NP-05 قائمة المعلمين
│ └─ NP-10 الإنجليزية ─ NP-11 حلقة التعلم
└─ NP-06 دفتر المال ─ NP-07 قياس الدقائق ─ NP-08 التسوية
└─ NP-09 الدفع والبصمة والسحب
NP-12 المؤسسات والتقييمات يتكامل مع 02/05/07/11
NP-13 إثبات الصف العاشر يجمع المسارات بعد اجتياز بواباتها
```
<div dir="rtl" align="right">
هذه علاقات اعتماد وليست طلباً لتشغيل وكلاء أو فتح مهام جديدة تلقائياً. يمكن العمل على مكونات مستقلة عند تكليفها؛ لا تؤجل إصلاح نجاح الدفع المصطنع انتظاراً لتحسين واجهة الإنجليزي.
## 2. المهام المرتبة
### NP-00 — خط أساس صادق وبيئة اختبار آمنة | P0
**الحالة:** مخطط. **قبلها:** لا شيء. **الدليل:** A01/A24.
- اقرأ entrypoint والخدمات والـworkers والاختبارات قبل التشغيل؛ وثق الأوامر المتاحة بالفعل. لا تستعمل `php artisan test` ولا تشغل سكربتاً يكتب بيانات أو يستدعي Gemini باسم «test» دون معرفة أثره.
- حدد قاعدة staging وRedis وحاوية أصول وقناة دفع sandbox مع فصل عن الإنتاج. جرد الجداول ومخطط الإنتاج قبل migrations، مع نسخة احتياطية واختبار استعادتها في المكان الصحيح.
- أنشئ harness تكامل لـPHP/HTTP يناسب البنية الأصلية عند تكليف التنفيذ. اختبارات Flutter الحالية smoke فقط إلى أن يثبت غير ذلك.
**القبول:** تسجيل أوامر فعلية ونتائجها، نجاح bootstrap بتهيئة صريحة، وفشل واضح عند غياب الخدمات. لا إدخال fixtures في إنتاج. تسجل الاختبارات الخارجية غير المتاحة كغير منفذة، لا كناجحة.
### NP-01 — إيقاف النجاح والمحتوى المصطنع | P0
**قبلها:** NP-00. **الدليل:** A05/A11–A13/A17–A22.
**النطاق:** `CliqPaymentService.php`, `TeacherController.php`, `AiVideoAnalyzerService.php`, `CurriculumController.php`, واجهات مستندات الطالب و`CurriculumBakedData`, `teacher_monetization_cubit.dart`، وفروع الويب/المختبرات المتاحة للمستخدم.
- امنع اعتماد إيصال أو إكمال سحب بلا دليل مزود/مراجعة حقيقية؛ تظهر المعاملة pending/unavailable إلى أن يكتمل التكامل. تعطيل نجاح مصطنع لا يعني حذف تاريخ المعاملات.
- أزل fallback الذي يعرض درساً/ترجمة/IPA/إيراداً ثابتاً. احتفظ بـcache موثق لمحتوى منشور، وبالأمثلة التعليمية الصحيحة ذات المصدر. حالات نقص البيانات المجهول ليست صفراً مالياً مؤكداً.
- أنشئ جرد تنظيف: نوع البيانات، مصدرها، سبب اعتبارها demo، عدد الصفوف/الأصول المتأثرة، خطة ترحيل dry-run واستعادة. عزل الصفوف المشكوك فيها ومراجعتها قبل أي حذف إنتاجي. لا ترحّل مدفوعات verified الحالية إلى رصيد موثوق دون مطابقة.
**القبول:** انقطاع الشبكة/AI/خدمة المال لا يعرض نجاحاً؛ فقد درس محدد لا يعرض درساً آخر؛ كلمة مجهولة بلا IPA مزور؛ لا تتغير بيانات حقيقية في dry-run؛ جرد تطبيقات Flutter والويب والـworkers مع دليل لكل fallback أزيل أو احتفظ به.
### NP-02 — الهوية المنهجية وحزم الملفات | P0/P1
**قبلها:** NP-01. **الدليل:** A04/A09/A17/A21/A23.
- تصميم migrations لفصل `curriculum_lesson`, `teacher_submission`, `video_version`, `content_asset`, `publication_bundle`؛ هذه أسماء مفاهيم مقترحة ويمكن مواءمتها مع الجدول الحالي دون ازدواج.
- backfill من العلاقات/manifest؛ العناوين المتشابهة تُحال إلى قائمة تعارضات ولا تطابق تلقائياً بـLIKE. لا ربط دورة المعلم بمادة أخرى لمجرد تطابق الصف.
- نقل النصوص إلى أصول بإصدارات مع checksum قبل إلغاء المصدر القديم. يتضمن النشر روابط Markdown وPDF وworksheet وخريطتي الدرس والوحدة وmetadata للحقوق والمراجعة.
- endpoint مستند يأخذ asset ID، يتحقق من الحالة والنطاق، ويعيد الأصل الصحيح أو خطأ؛ path traversal ممنوع. يعرض الفهرس المنشور فقط، ويقيد cache بإصدار ونطاق الوصول.
**القبول:** درسان اسمهما «الدرس الأول» في صفين/مادتين لا يختلطان؛ PDF المقصود يفتح صفحته؛ مورد مفقود لا يستبدل؛ markdown يحافظ على المعادلات؛ rollback للترحيل يعيد البيانات؛ بعد سحب أصل تتبع النسخ المحلية سياسة الصلاحية المتفق عليها.
### NP-03 — منع تكرار الحصة واستبدالها بأمان | P1
**قبلها:** NP-02. **الدليل:** A08/A09.
- preflight يكتشف حصة المعلم الحالية ويعيد metadata عرض قابلة للمراجعة. عند طلب إنشاء ثانٍ يعيد `409 existing_submission`؛ الاستبدال intent مستقل يستهدف الحالية.
- قيد DB لحصة أساسية واحدة لكل معلم+درس، ومؤشر نسخة حالية. لا يكفي SELECT قبل INSERT؛ غط السباق بunique key/row lock ومعالجة conflict.
- `Idempotency-Key` يربط الطلب وhash الجسم؛ إعادة المفتاح بجسم مختلف conflict. retry لنفس الرفع لا ينشئ إصدارين.
- candidate مستقل ورفع قابل للاستئناف وفق البنية المختارة، فحص كامل، ثم نشر ذري. يحتفظ بالأصل والفواتير والمحاولات. مسارات الأدمن والـworker لا تتجاوز البوابة.
**القبول:** طلبان متزامنان لا ينشران حصتين لنفس المعلم؛ معلمان مختلفان ينشران للدرس؛ البديلة المرفوضة لا توقف القديمة؛ فشل منتصف الرفع لا ينشر؛ وصول تقرير قديم لا ينشر نسخة جديدة؛ rollback يعيد نسخة سليمة دون محو التاريخ.
### NP-04 — تدقيق الفيديو والأسئلة من الأدلة | P0/P1 تعليمي
**قبلها:** NP-02/03. **الدليل:** A02–A07/A24.
- تنفيذ [عقد البرومبتات](VIDEO_REVIEW_AND_SOCRATIC_PROMPTS.md): تفريغ كامل، صور مرجعية، Markdown كامل مع فهرس تغطية، schema validator، مراجع أكاديمي، وحزمة أسئلة لكل نسخة.
- إزالة توليد/حذف الأسئلة من GET playback، وعدم نشر fallback. jobs قابلة للإعادة ضمن حد تكلفة، وتقارير بالنسخة/hash الفعليين.
- شاشة تقرير للمعلم: كل ملاحظة مربوطة بالوقت/القسم، رد على بند، طلب مراجعة، وسجل قرار. لا زر للمعلم ينشر تقريره غير المعتمد.
**القبول:** اجتياز حالات القسم 8 في وثيقة البرومبت، مع نتيجة متوقعة وأدلة؛ تحقق مضمون/توقيت كل سؤال في مجموعة التجربة؛ تقرير يفرق بين rejected وincomplete؛ لا مفتاح إجابة قبل تقديم محاولة معتبرة؛ GET متكرر لا يعدل DB للمحتوى.
### NP-05 — صفر/واحد/متعدد وقائمة معلمي الدرس | P1
**قبلها:** NP-02 ونسخة منشورة وفق NP-04. **الدليل:** A10/A16.
- API قائمة حصص الدرس: entitlement ثم publication ثم ترتيب موثق وpagination. يعيد `available_count` مطابقاً لمرشحات القائمة، مع `next_cursor` وتقييم وعدد مراجعات لكل بطاقة.
- المشغل يطلب `video_version_id` المحدد ويعيد فحص وصوله. لا يعيد البحث بعنوان ويستبدله بفيديو آخر. إذا تغيرت القائمة بين القراءة والنقر يعرض الحالة ويحدثها.
- صفر: موارد الدرس فقط؛ واحد: تشغيل مباشر؛ متعدد: قائمة مرتبة مع اسم معلم حقيقي. العودة تحفظ التقدم لكل حصة. لا جلب روابط فيديو مدرسة أخرى في القائمة حتى لو لن تشغلها الواجهة.
**القبول:** 0/1/2/100 حصة، صفحات بلا تكرار/فقد عند ثبات snapshot، تقييمات متساوية بترتيب مستقر، حصة جديدة بلا تقييم، سحب نسخة بعد فتح القائمة، طالب مدرسة أخرى، وانتهاء التصريح قبل التشغيل.
### NP-06 — دفتر مالي وحجز الرصيد | P0 مالي
**قبلها:** NP-00/01، وتثبيت تعريف الدفاتر. **الدليل:** A11–A13.
- ledger بقيود غير قابلة للتعديل الصامت، حسابات للمتحصل/التأجيل/صندوق المعلمين/مستحق المعلم/المحجوز/المسدد والتعديلات. كل قيد له currency/amount/reference/reason/policy version؛ التعديل بقيد عكسي.
- JOD بالفلس الصحيح (3 منازل)، لا float للأرصدة. حجز السحب transaction يمنع سحبين يتجاوزان الرصيد. لا يدخل estimated في available.
- افصل tenant ومحتوى المعلم وأوعيته. لا يجمع endpoint المعلم إيراد جميع المنصة على أنه إيراده. قيود مستفيد المعاملة والصلاحية وسجل التدقيق على كل endpoint.
- reconciliation للتاريخ الحالي: المعتمد السابق يحتاج إثباتاً، ولا تترجم كل قيمة verified إلى opening balance تلقائياً.
**القبول:** حفظ توازن القيود، رصيد محدد لنطاق كل معلم، رفض مبلغ سالب/صفر/غير محدود/دقة عملة غير صحيحة، حجز مزدوج، retry، reversal، وعدم قابلية المستخدم لتغيير teacher_id للوصول لدفتر غيره.
### NP-07 — قياس الدقائق المستحقة | P1 قبل تشغيل الإيراد
**قبلها:** NP-02/05/06 وسياسة دقائق بإصدار. **الدليل:** A14.
- فصل learning progress عن watch events وعن eligible allocations. server session بمصدر تمويل واحد، أحداث متسلسلة وفترات فريدة، وقواعد سرعة/تكرار/تزامن.
- ابدأ في وضع قياس تجريبي بلا مال حقيقي، ثم قارن بيانات جهاز فعلية بأحداث الخادم. ضَع المشبوه قيد مراجعة وأظهر سبب الاستبعاد؛ لا تدّع إثبات الانتباه.
- dedup يشمل lineage الاستبدال، وقيود autoplay/self-view/unfunded/offline كما في المواصفات. العرض الجماعي له نوع جلسة مستقل.
**القبول:** 60 ثانية مؤهلة للمعلم أ و180 للمعلم ب تسجل 1 و3 دقائق؛ ضغطة seek للنهاية لا تربح؛ ثانيتان لا تقربان لدقيقة؛ event معاد لا يزيد؛ 2x/0.5x حسب السياسة؛ pause/buffer/reconnect؛ جلسات متداخلة؛ استبدال لا يعيد عداد الاستحقاق؛ offline لا يخلق ربحاً في الإصدار الأول.
### NP-08 — توزيع الإيراد وكشف حساب المعلم | P1 قبل الإطلاق المالي
**قبلها:** NP-06/07، ونسبة الصندوق/الفترة/الاسترداد المعتمدة.
- period close بإدخالات مثبتة: الإيراد المكتسب المحصل، الخصومات المحددة بالعقد، أهلية الدقائق، policy_version. لا اختيار النسبة من واجهة الطالب أو تخمينها من التوثيق القديم.
- احسب الحصص بدقة عالية ثم وزّع فروق التقريب حتمياً. zero pool/zero minutes حالتان صريحتان. معالجة الاشتراك السنوي والاسترداد بعد إغلاق الشهر بقيد تعديل مثبت.
- dashboard يعرض estimated/held/approved/available/paid وشرحاً قابلاً للتنزيل؛ فصل المؤسسات والمستقلين. عدم جمع الصندوق نفسه مرتين عند وجود تصريحي وصول.
**القبول:** مثال 600/30000 ينتج 0.020 للدقيقة و0.060 لثلاث دقائق؛ مجموع المعلمين لا يزيد الصندوق؛ إعادة الإغلاق لا تدفع مرتين؛ سنة مقدمة لا توزع في شهر واحد؛ استرداد وتعليق شبهة وتسوية تعديل؛ لا يرى المعلم أسماء الطلاب أو مال الآخرين دون صلاحية.
### NP-09 — الدفع بالبصمة والتحويل الحقيقي | P0 قبل أي مال حي
**قبلها:** NP-06، عقد مزود/قناة توزيع حقيقية، وقرار سياسة المصادقة.
- adapters منفصلة للشراء/استحقاق المتجر/تحويل المعلمين؛ تحقق من وثائق المزود ولا تخترع API لكليك. تثبيت ما إذا كانت القناة web/App Store/Play ومطابقة سياسة المحتوى الرقمي.
- intent من الخادم، challenge أحادي الاستخدام مربوط بتفاصيل العملية، تحقق بيومتري مع إثبات مناسب أو مصادقة المزود. لا boolean محلي. إنشاء وسيلة المستفيد وتغييرها يحتاجان تحققاً.
- callbacks موثقة/موقعة أو استعلام مزود؛ server-side entitlement فقط عند دليل مقبول. صفقة idempotent، outbox/job لحالات إرسال التحويل، وتسوية دورية لحالات timeout أو webhook ضائع.
- حالتا device no biometrics والرفض/lockout لهما مسار صريح؛ لا يُتجاوز التحقق بصمت. sandbox لا يدخل أرصدة إنتاج، والعودة من تطبيق البنك لا تعني نجاح الدفع.
**القبول:** إلغاء البصمة لا ينفذ، replay challenge مرفوض، تغيير المبلغ/المستفيد بعد التأكيد مرفوض، webhook مزور/مكرر/متأخر لا يمنح مرتين، طلبا سحب متزامنان لا يتجاوزان الرصيد، timeout غامض لا يعاد إرساله كحوالة جديدة، فشل نهائي يحرر الحجز مرة، completed فقط بدليل مزود. جهاز Android وiPhone فعليان عند التكامل.
### NP-10 — الإنجليزية المرتبة والصوت المراجع | P1
**قبلها:** NP-01/02 ومصدر كتاب مثبت. **الدليل:** A19/A20.
- تحويل قائمة الوحدات/القواعد والقاموس إلى بيانات الحزمة. الإبقاء على المكونات المفيدة وتوحيد navigation؛ لا يعاد بناء التطبيق كله.
- مراحل أتهيأ/أقرأ وأسمع/الكلمات/القاعدة/أتدرب/أراجع، مع original/simplified/extra واضحين. لا أمثلة خارج مستوى الدرس غير موسومة.
- صوت جمل منشور ومراجع مع مشغل واحد، ترجمة سياقية ومفردات وIPA محقق، وضبط اتجاه المقاطع والنص الكبير وإتاحة الوصول.
**القبول:** Unit 1 يطابق قاعدة الدرس الفعلية؛ تنقل Unit 2 لا يستعمل مفردات Unit 1؛ لا معنى/IPA مختلق لكلمة مجهولة؛ تشغيل كلمة يوقف الفقرة دون تداخل ويعود بشكل صحيح؛ غياب الصوت لا يظهر نجاح تشغيل؛ original لا يتبدل إلى paraphrase؛ اختبار 5–8 طلاب مع تسجيل مشكلات الاستخدام.
### NP-11 — إكمال حلقة التعلم والموارد | P1
**قبلها:** NP-02/04/05/10 بحسب المبحث. **الدليل:** نواقص `IMPLEMENTATION_STATUS.md`.
- ورقة Markdown ثابتة بأرقام أسئلة، PDF أصلي، صورة خريطة درس وصورة وحدة مع zoom وalt text، ومختبر مطابق للهدف عند توفره.
- واجب ينشئه المعلم ويكلفه لصفه/المخولين، محاولات وتصحيح خادم، ودفتر خطأ يتحول لتدريب علاجي ومحاولة مؤجلة. سؤال صحيح بعد تلميح لا يساوي استقلالاً كاملاً في الإتقان.
- موافقة الطالب على ربط ولي الأمر، وتقارير مستمدة من نتائج حقيقية. لا رسالة تلقائية خارج نطاق إشعارات المستخدم/التطبيق المعتمدة.
- أول أفكار تطبق: تدرج المثال، عدسة الدليل، استرجاع الخريطة، وتوقع/جرب/فسر في درس فيزياء واحد. بقية أفكار المواصفات تبقى backlog تجارب.
**القبول:** واجب حقيقي من المعلم حتى تقرير الطالب/ولي الأمر، محاولة مكررة لا تضاعف النقاط، مراجعة مؤجلة لا تعتمد على زر «فهمت»، الخطأ يعود لنفس نسخة السؤال، PDF والخريطتان يعملان، وفشل الخادم لا يمنح إتقاناً.
### NP-12 — المؤسسات والسمعة والتلعيب | P1/P2
**قبلها:** NP-02/05/07/11. **الدليل:** A01/A16.
- ربط المدرسة/الشعبة/المعلم/الطالب بفترات عضوية، وتصاريح للمكتبة الداخلية والعامة؛ لا نسخ دورات للتحايل على النطاق.
- تقييم مثبت بالحصة، متوسط عرض حقيقي وترتيب معدل معلن، تحقق من التلاعب الإيجابي/السلبي واعتراضات، وظهور منفصل للمعلمين الجدد.
- شارات إنجازات تعليمية/مهنية ذات دليل، فصل سياسة مكافأة المؤسسة عن سوق المستقلين، وإظهار مصدر تمويل الدقائق.
**القبول:** طالب مدرسة أ لا يرى محتوى ب؛ معلم يجمع النمطين يرى حسابين واضحين بلا مضاعفة؛ عضو انتهى انتسابه يفقد الحق في الجلسات الجديدة؛ طالب لم يشاهد الحصة لا ينشئ verified review؛ تقييم سلبي صادق لا يمحى تلقائياً؛ لا شارة أو نجوم وهمية للمعلم الجديد.
### NP-13 — إثبات الصف العاشر ثم قرار الإطلاق | بوابة نهائية
**قبلها:** مسارات المحتوى والأمان والتعليم مكتملة؛ NP-06–09 مكتملة قبل تفعيل مدفوعات حقيقية.
- اختبار تشغيل على staging بـMySQL وRedis وR2/التخزين الفعلي وخدمات الوسائط، باستخدام أصول حقيقة مجازة وحسابات اختبار معزولة. اختبارات البنك في sandbox، ثم تحقق حي محدود فقط عند تفويضه.
- تجربة الدراسة المقترحة في المواصفات: 12 درساً/3 مواد، ثم قياس تعليم مؤجل وعودة وتجديد وتكلفة فعلية. لا تُنسب نتائج لعينة لم تجر.
- مراجعة ادعاءات الموقع والشاشات: لا «شريك رسمي»/«مكتمل»/«مضمون»/«120fps» إلا بدليل يناسبه. تحقق المتطلبات التنظيمية وحقوق المحتوى من مصادر حديثة عند تجهيز الإطلاق.
**القبول:** دليل لكل صف في المصفوفة التالية، أخطاء P0 مغلقة باختبار، قائمة قيود معلنة، تشغيل مراقبة وتنبيه لحالات الفشل، وخطة rollback. لا توسع صفوف/بلدان قبل تحقق هذه البوابة، ولا تسعير إنتاج من أرقام الأمثلة.
## 3. مصفوفة القبول المتكاملة
| ID | السيناريو | النتيجة المطلوبة | المهمة |
|---|---|---|---|
| T01 | خادم المنهج فارغ/منقطع | حالة فارغة/خطأ واضح، لا كل الصفوف ولا محتوى baked بديل | 01/02 |
| T02 | طلب ورقة غير موجودة وPDF غائب | لا ملف درس آخر؛ موارد أخرى مسماة متاحة | 02/11 |
| T03 | ملف Markdown مطابق في cache دون اتصال | يعرض الأصل مع الإصدار وحالة التنزيل؛ لا يخلط حسابين | 02 |
| T04 | مسار `../` أو asset مدرسة أخرى | رفض دون كشف الملفات | 02/12 |
| T05 | نفس عنوان الدرس في رياضيات/فيزياء أو صفين | اختيار ID الصحيح فقط | 02/05 |
| T06 | رفعان متزامنان لنفس المعلم والدرس | حصة واحدة، تعارض مفهوم، لا نسختان منشورتان | 03 |
| T07 | رفعان من معلمين مختلفين للدرس نفسه | حصتان مستقلتان مسموحتان بعد التدقيق | 03/05 |
| T08 | رفض/انقطاع البديلة | القديمة متاحة ولم تُحذف | 03 |
| T09 | صوت جديد/قص فيديو/Markdown جديد | تقرير جديد ولا reuse لاعتماد النسخة السابقة | 03/04 |
| T10 | تقرير متأخر وrollback ونشر متزامن | مؤشر نسخة واحدة، تاريخ ومحاولات محفوظة | 03/04 |
| T11 | 0/1/2/100 حصة متاحة | حالة موارد/تشغيل مباشر/قائمة مرتبة مع صفحات | 05 |
| T12 | 100 في DB لكن واحدة فقط مصرح بها | تشغيل الواحدة مباشرة؛ لا كشف بقية المعلمين الخاصين | 05/12 |
| T13 | تغيّر حق الوصول بعد عرض القائمة | رفض/تحديث صادق عند التشغيل | 05/12 |
| T14 | فتح الفيديو عدة مرات | لا توليد جديد أو حذف محتوى داخل GET | 04 |
| T15 | صوت ناقص/معادلة غير مقروءة/ملف طويل مقتطع | مراجعة أو رفض موثق؛ لا درجات عالية افتراضية | 04 |
| T16 | سؤال من المستقبل/معلم آخر/بخيارين صحيحين | لا نشر | 04 |
| T17 | حقن تعليمات داخل Markdown/التفريغ | لا تغيير للسياسة ولا اعتماد | 04 |
| T18 | اعتراض المعلم بدليل PDF | بند مراجعة مسجل؛ لا تجاوز آلي | 04 |
| T19 | محاولة إجابة/واجب يغير user_id أو school_id | الهوية من الجلسة والصلاحية من الخادم | 11/12 |
| T20 | خطأ ثم تلميح ثم صحيح | يحفظ مقدار المساعدة؛ لا «إتقان كامل» تلقائي | 11 |
| T21 | علاج ثم استرجاع بعد 7 أيام | تقدم مستقل من محاولات حقيقية | 11/13 |
| T22 | تعطل خدمة سؤال/تصحيح/ربط ولي الأمر | لا علامة نجاح ولا تسريب بيانات للوالد غير المرتبط | 11/12 |
| T23 | كلمة مجهولة/لهجة صوت غير متاحة | لا IPA/معنى مخترع ولا تشغيل وهمي | 10 |
| T24 | فيديو وفقرة وكلمة مع تنقل سريع | مصدر صوت واحد، إيقاف واضح، لا تداخل | 10 |
| T25 | نص كبير/قارئ شاشة/عربي وإنجليزي/معادلات | ترتيب قراءة سليم، alt text وخط مفهوم | 10/11 |
| T26 | دقيقة لمعلم وثلاث لآخر | 60 و180 ثانية مؤهلة، لا ربط ببيع باقة المعلم | 07/08 |
| T27 | seek/pause/buffer/replay/rate changes | لا ثوانٍ مصطنعة؛ السياسة المعلنة مطبقة | 07 |
| T28 | نفس event من جهازين/تغيير ساعة الهاتف | لا ازدواج ولا تجاوز زمن الخادم | 07 |
| T29 | إعادة رفع المعلم/نسخة بديلة/عرض جماعي | لا تصفير تحايل ولا ضرب شاشة بعدد الطلاب | 07/12 |
| T30 | تصريح مستقل ومدرسي متزامنان | مصدر تمويل واحد لكل جلسة | 07/08/12 |
| T31 | صندوق صفر أو دقائق صفر | لا قسمة على صفر ولا توزيع بلا أساس | 08 |
| T32 | استرداد بعد فترة مغلقة وإعادة إغلاقها | قيد تعديل مثبت، لا أرباح/دفع مكرر | 06/08 |
| T33 | إيصال مصور صحيح شكلياً دون حوالة | لا منح تلقائي للوصول | 01/09 |
| T34 | بصمة ملغاة/مقفلة/غير موجودة | لا تنفيذ؛ بديل مصرح واضح إذا كان معتمداً | 09 |
| T35 | تعديل مبلغ/مستفيد/nonce بعد البصمة | رفض وإعادة تأكيد | 09 |
| T36 | webhook مزور/مكرر/مخالف المبلغ | رفض/إهمال آمن؛ لا تصريح مكرر | 09 |
| T37 | طلبا سحب يتجاوز مجموعهما المتاح | حجز ذري يمنع زيادة السحب | 06/09 |
| T38 | timeout بعد إرسال التحويل | استعلام عن المرجع نفسه قبل أي retry | 09 |
| T39 | وصول تسوية مزود متأخرة بعد فشل اتصال | مطابقة واحدة بلا دفع أو تحرير حجز مضاعف | 06/09 |
| T40 | طلب كشف مال لمعلم/مدرسة أخرى | رفض وتدقيق؛ مجموع المنصة لا يظهر كدخل شخصي | 06/08/12 |
| T41 | rating بلا مشاهدة/تصويت منظم موجب أو سالب | لا verified غير مستحق؛ مراجعة مع حق اعتراض | 12 |
| T42 | معلم جديد بلا تقييم | «جديد»، ترتيب مستقر، لا نجوم مصطنعة | 05/12 |
| T43 | R2/Redis/MySQL/AI يتعطل كل على حدة | فشل محدد ومراقب دون نجاح وهمي أو تسريب | 00/13 |
| T44 | مراجعة نسخة جاهزة واستعادة backup/rollback | ملفات/علاقات متطابقة، وما لم يُختبر موثق | 00/13 |
تُنفذ الاختبارات في طبقتها المناسبة: unit للمعادلة والتحقق، تكامل للـDB والصلاحيات والتزامن، widget/navigation للحالات، وجهاز فعلي للصوت والبصمة والفيديو. الاختبار الآلي لا يستبدل مراجعة دقة الكتاب والفيديو، وقياس usability لا يثبت أثر تعلم طويل المدى.
## 4. تسليم العمل إلى نموذج تنفيذ اقتصادي
لا تعطه جميع المهام في تكليف واحد. اختر ID واحداً أو جزءاً مستقلاً صغيراً منه، مع ملفات النطاق ومعيار القبول؛ لا تقسّم بحيث يبقى مسار مالي غير آمن منشوراً بين دفعتين.
نص تكليف قابل للنسخ:
</div>
```text
نفذ المهمة NP-XX من docs/NEXT_PHASE_EXECUTION_BACKLOG.md فقط.
اقرأ AGENTS.md ومواصفات المرحلة والتدقيق الحالي ثم الجزء المتعلق بالمهمة.
أعد التحقق من الكود الفعلي؛ نتائج تدقيق 2026-09-09 نقطة بداية وليست وصفاً أبدياً.
حدد الاعتمادات المتوفرة والفجوات، ثم نفذ الجزء المأذون واختباراته المناسبة.
حافظ على PHP الأصلي وFlutter/Cubits ولا تعيد بناء المشروع أو تغير نموذج الإيراد.
لا تنشئ نجاحاً أو بيانات وهمية عند غياب خدمة/مصدر. لا تعدّل أسراراً أو بيانات إنتاج.
لا تنشر ولا تحوّل أموالاً ضمن هذا التكليف. إذا احتجت قراراً تجارياً غير محسوم،
أنجز العقود/الاختبارات المستقلة عنه ثم اذكر القرار المطلوب، ولا تخترعه.
في النهاية قدم الملفات، السلوك قبل/بعد، الاختبارات المنفذة ونتائجها، القيود،
وأدلة تحقق معايير القبول. حدّث حالة هذه المهمة فقط بما ثبت فعلاً.
```
<div dir="rtl" align="right">
قالب حالة التنفيذ اللاحقة:
</div>
```text
Task ID:
Status: planned | in_progress | implemented_unverified | verified | blocked
Scope / files:
Prerequisites checked:
Decisions / policy versions:
Acceptance cases and actual results:
External checks not run:
Migration / rollback evidence:
Known limitations:
Next bounded task:
```
<div dir="rtl" align="right">
إذا فشل النموذج مرتين في نفس مسألة الدليل/الصلاحية/المال، لا يخفف الشرط لتجاوز الاختبار؛ يلخص السبب والأثر والأدلة ويطلب مراجعة هندسية مركزة. تقليل كلفة النموذج يأتي من صغر المهمة ووضوح العقد وإعادة استخدام النتائج، لا إلغاء الضوابط.
## 5. تتبع طلب المستخدم
| طلب المستخدم | موضع القرار | التنفيذ |
|---|---|---|
| أين وصلنا وما الناقص؟ | CURRENT_STATE_AUDIT، A01–A24 | NP-00 ثم المهام بحسب الفجوة |
| تعليمات ثابتة دون تعديل التطبيق الآن | AGENTS.md + وثائق هذه الدفعة | تم التوثيق فقط؛ NP كلها مخططة |
| إزالة الديمو | المواصفات 1/8 | NP-01/02 |
| دفع وسحب ببصمة الهاتف | المواصفات 7 | NP-06/09 |
| منع حصة مكررة لنفس المعلم مع استبدال وفحص | المواصفات 4 | NP-03/04 |
| فحص شامل ودقيق لMarkdown والفيديو | وثيقة البرومبتات 2–8 | NP-04 |
| عدة معلمين مرتبين بالتقييم والدخول المباشر للواحد | المواصفات 3/10 | NP-05/12 |
| دخل بالدقائق ورأي تجاري ومقارنة الأردن | المواصفات 2/6 | NP-06/07/08 |
| مدرسي/مستقل وتلعيب المعلم | المواصفات 6.3/10 | NP-12 |
| سقراطي من الفيديو نفسه | المواصفات 5 + برومبت الأسئلة | NP-04/11 |
| أوراق Markdown وكتاب PDF وخرائط صور درس/وحدة | المواصفات 8 | NP-02/11 |
| إنجليزية أبسط وتنظيم وصوت وأمثلة من مستوى الكتاب | المواصفات 9 | NP-10 |
| أفكار علمية جديدة وانتشار قابل للقياس | المواصفات 11/12 | NP-11/13 وتجارب لاحقة |
| تجربة الصف العاشر ومواد محدودة | المواصفات 12 | NP-13 |
</div>