Update Saqel Platform: 2026-09-12 08:50:01

This commit is contained in:
Hamza-Ayed
2026-09-12 08:50:02 +03:00
parent cb4f2a3159
commit 1f31369893
414 changed files with 70042 additions and 113 deletions
@@ -0,0 +1,68 @@
# وضع تنفيذ المختبرات الافتراضية — الصف العاشر
> تحديث: 2026-09-12 — المرحلة: البنية المكتملة والتأليف الجاري (عربية: 11 دروس، الوحدة 01 كاملة + U2L1–U2L5).
## القاعدة الحاكمة
لا يُعرض مختبر للطالب إلا إذا:
1. حمل هوية منهجية مربوطة (`curriculum_lesson_id` صريح من حزمة معتمدة)، و
2. حالته `released`، و
3. وصل من الخادم `publishedBundleVersion`.
حالياً **صفر مختبرات منشورة** — كل المواصفات `draft_requires_academic_review`/`needs_human_review` وليس ثمة حزمة منشورة بعد. العرض للطالب فارغ بصدق؛ المعاينة التأليفية متاحة في معرض المختبرات بوسم واضح.
## البنية المشتركة — مكتملة ومفحوصة (2026-09-12)
| الملف | الحالة |
|---|---|
| `lab_identity.dart` | نموذج `LabIdentity` + 44 ثابتاً (28 مربوطاً + 16 أداة) — عربية U1L1..U1L6 + U2L1..U2L5 |
| `labs_registry.dart` | 44 entry (28 bound + 16 tool) — مطابقة صريحة فقط، بلا keywords/fallback، بوابة نشر |
| `lab_scaffold.dart` | هوية + شارة حالة (منشور/مسودة/أداة) + تقليل الحركة + Semantics |
| الملفات الـ33 `<subject>_labs.dart` | رُبطت بالثوابت وحُذفت `v2026.1`/`curriculumPath` |
| `arabic_listening_lab.dart` | **مختبر جديد** مكتوب/مربوط/مُختبر — «أستمعُ بانتباهٍ وتركيزٍ» (قصة كعب بن مالك): آداب الاستماع + مراحل الابتلاء (ترتيب، مصحَّح بلا دمج) + جدول سبب/نتيجة + نقطة تحول، رسم `CustomPainter` فقط |
| `arabic_apology_lab.dart` | **مختبر جديد** — «فن الاعتذار وقيم التسامح»: بنية الحديث (تقديم/عرض/خاتمة) + نبرة الصوت (4 نغمات) + جسر الاعتذار (محاور 5) |
| `arabic_quranic_apology_lab.dart` | **مختبر جديد** — «أقرأ بطلاقة وفهم»: مطابقة سورة/وجه اعتذار + سلوكيات القراءة الصامتة + ترتيب اعتذار موسى |
| `arabic_apology_letter_lab.dart` | **مختبر جديد** — «أكتب محتوى (رسالة اعتذار وتسامح)»: عناصر الرسالة الشخصية من نموذج زينة→سلمى + معايير الاعتذار الناجح + ترتيب فقرات الرسالة. متباين مع بطاقة المواصفة (صفحات 22-24 تحوي أسلوب الشرط والمحتوى الرسالي مستخلص في lesson_03 ص19-21) |
| `arabic_conditional_lab.dart` | **مختبر جديد** — «أبني لغتي (1): أسلوب الشرط»: تصنيف الأدوات (جازمة/غير جازمة) + نموذج إعراب «تأتِهِ» + تحليل «أيّ خطأ تخطئْ» إلى الأركان. الآيات المتوضعِة بالرموز وفراغات التمرين الناقصة تخطّيها حتى المراجعة |
| `arabic_informative_style_lab.dart` | **مختبر جديد** — «أبني لغتي (2): الأسلوب الخبري»: تصنيف جمل الدرس (خبرية/إنشائية) + إكمال قواعد التعريف (يحتمل الصدق والكذب؛ خبري/إنشائي؛ الاسمية والفعلية) + ميزان صدق/كذب الخبر بمطابقة الواقع |
| `arabic_unit2_listening_lab.dart` | **مختبر جديد (الوحدة 02 درس 01)** — «أستمع بانتباه وتركيز — قصة الضيف»: تصحيح العبارات (4 صواب + 1 خطأ) + تمييز شخصيات (صفتا الضيف والراوي) + ترتيب مراحل الحكاية + نقطة تحوّل اليوم السابع. يغطي قابل الإثبات من صفحات 34-36؛ صفحة 37 تعود للدرس الثاني (أتحدث بطلاقة) — تفاوت مسجّل |
| `arabic_unit2_speaking_lab.dart` | **مختبر جديد (الوحدة 02 درس 02)** — «أتحدثُ بطلاقةٍ (العرض التقديمي)»: عبارات قيم الوطنية (صواب/خطأ) + عناصر العرض المطلوبة من نص النشاط (مهارات التواصل البصري، الطلاقة، الزمن المحدد) + إسناد «القول إلى مضمونه» (رسالة الملك الحسين الثاني بعيد ميلاده الستين: لن أنسى... والحمى شرفٌ وواجبٌ). نسبة قول «والدي الحسين» ملتبسة الـOCR ولم تُسمَّ؛ المصدر صفحة 38 أحادية وتحتاج مراجعة بشرية |
| `arabic_unit2_poetry_lab.dart` | **مختبر جديد (الوحدة 02 درس 03)** — «أقرأُ بطلاقةٍ وفهمٍ (إلى الصامدين غرب النهر)» لخالد محادين: مطابقة معجم القصيدة (الأنداد/الكابي/بيادر/سفر) + ترتيب سير جوّ القصيدة (بكاء الضياع ← رسائل الصامدين ← بيان الارتباط ← خاتمة متفائلة) + تصنيف خصائص شعر التفعيلة (أسطر متباينة الطول، قوافٍ متعددة). أنشطة (2.3)/(3.3) مكثفة ونصوص موازنة البرغوثي وديوان فدوى طوقان لم تُنمذج بنصوص مخترعة |
| `arabic_unit2_writing_lab.dart` | **مختبر جديد (الوحدة 02 درس 04)** — «أكتبُ محتوى (تحليل النص الشعري)»: عناصرُ العملِ الأدبيِّ (الأفكار/العواطف/الخيال/اللغة/موسيقا الشعر + أدوات الربط) بالتصنيف، وترتيب معايير التحليل السبع في مسارٍ كتابيّ (الديوان والمناسبة ← الأفكار والعاطفة والتصوير ← دقة الألفاظ والأساليب ← أدوات الربط والاستشهاد بين قوسين)، ولقطاتُ تحليلِ مقطع عبد الكريم الكرمي (الأرض أُمٌّ والخضوع «تزحف» والتراب زهرٌ). نشاطُ «أردن يا بلدي» لحبيب الزيودي (ص49) مهمةُ كتابةٍ حرةٍ تُنجزُ خارج المختبر |
| `labs_gallery_screen.dart` | سطّح معاينة تأليفية بشارات الحالة |
| `subject_virtual_labs_view.dart` | منشور فقط + حالة فارغة صادقة + رابط المعرض |
| `virtual_labs_smoke_test.dart` | **36 اختباراً ✅** (44/28/16، تفرّد، رفض العنوان، صفر منشورات، تفاعلات عربية ×22) — ومن ثمّ كامل المجموعة 39/39 ✅ (36 + widget/fingerprint) |
| `flutter analyze` | 0 أخطاء |
## الربط المقرر (23 درساً + 16 أداة)
- **17 السابقة** + العربية: `arb-listen` ← `arabic_10_semester_1_unit_01_lesson_01` (قصة كعب — الاستماع الواعي)، `arb-apology` ← `arabic_10_semester_1_unit_01_lesson_02` (فن الاعتذار وقيم التسامح)، `arb-quranic-read` ← `arabic_10_semester_1_unit_01_lesson_03` (أقرأ بطلاقة وفهم — الاعتذار في قصص قرآنية)، `arb-letter` ← `arabic_10_semester_1_unit_01_lesson_04` (أكتب محتوى — رسالة اعتذار وتسامح)، `arb-conditional` ← `arabic_10_semester_1_unit_01_lesson_05` (أبني لغتي — أسلوب الشرط)، `arb-informative` ← `arabic_10_semester_1_unit_01_lesson_06` (أبني لغتي — الأسلوب الخبري)، `arb-unit2-listen` ← `arabic_10_semester_1_unit_02_lesson_01` (الوحدة 02 — أستمع بانتباه وتركيز؛ قصة الضيف)، `arb-unit2-speak` ← `arabic_10_semester_1_unit_02_lesson_02` (الوحدة 02 — أتحدث بطلاقة؛ العرض التقديمي وعرض الوطنية)، `arb-unit2-poem` ← `arabic_10_semester_1_unit_02_lesson_03` (الوحدة 02 — أقرأ بطلاقة وفهم؛ إلى الصامدين غرب النهر)، `arb-unit2-write` ← `arabic_10_semester_1_unit_02_lesson_04` (الوحدة 02 — أكتب محتوى؛ تحليل النص الشعري).
- **16 أداة تأليف (غير مربوطة بدرس)**: che-flame، bio-finches، bio-phage، bio-scope، ear-mohs، ear-strata، eng-phon، eng-tense، arb-syntax، arb-prosody، isl-tajweed، isl-inherit، fin-budget، his-chrono، dig-flow، dig-sort.
### تفاوت مسجّل للمراجعة
- مواصفة `lesson_03` تذكر «سينية البحتري» بينما صفحات الكوربوس (13-18) تعرض القراءة الصامتة وثقافة الاعتذار القرآني واعتذار موسى للعبد الصالح. بُني المختبر على المستخلص الفعلي فقط، والتفاوت مسجّل في `footerNote` ويحتاج قرار مراجع أكاديمي قبل أي نشر.
- مواصفة `lesson_04` تربط صفحات 22-24 بينما هذه الصفحات في المستخلص تعرض «أسلوب الشرط»، ومحتو الدرس الفعلي (رسالة زينة→سلمى وعناصرها) مستخلص في نهاية `lesson_03.md` (صفحات 19-21). بُني المختبر على المحتوى الرسالي فقط (منقول نصّياً) والتفاوت مسجّل في `footerNote` — يحتاج إعادة إسناد صفحات الكوربوس قبل النشر.
- `lesson_05` (أسلوب الشرط): الآيات المستخرجة بالرموز (U+E7xx) وفراغات التمرينات (أكمل) غير قابلة للتحقق من نص الكوربوس — تخطّى المختبر هذه المواضع الصريحة وبُني على النص القابل للإثبات فقط (التصنيف، الإعراب، الأركان).
- `lesson_06` (الأسلوب الخبري): صفحة 31 «أدوّن ما تعلمته» صفحة تلخيص ذاتية بلا محتوى منهجيّ — لم يُبنَ عليها ولم تُخترع بيانات.
- `unit_02 lesson_01` (قصة الضيف): صفحة 37 من نطاقها تعود فعليًا للدرس الثاني (أتحدث بطلاقة)؛ بُني المختبر على قابل الإثبات من صفحات 34-36 (آداب الاستماع، تصحيح العبارات، نقطة اليوم السابع، أسباب القوة، النهاية) مع تمييز صفات الشخصيات، والأصناف النصية للوصف، و«اليوم السابع نقطة التحوّل» قابلة للإثبات ذاته بتصحيح من المراجع قبل النشر.
- `unit_02 lesson_02` (أتحدث بطلاقة): المصدر صفحة 38 فقط ونصُّ OCR متداخل شديداً (النشاط والقيم مع الرسالة الملكية في فقرة واحدة). بُني المختبر على الجُمل القابلة للفصل (نشاط 3.2 «أصمّمُ عرضًا تقديميًّا...»، وقيم الوطنية، ورسالة الملك الحسين الثاني بعيد ميلاده الستين). إسناد قول «كلماتِ والدي الحسين» ملتبس بالـOCR — لم يُسمَّ الشخص ولم تُخترع له ترجمة ولا نسبة.
- `unit_02 lesson_03` (إلى الصامدين غرب النهر): صفحات 39-45 ونصوص OCR مكثفة ومتقطعة على القصيدة والحواشي. أنشطة (2.3)/(3.3) (الموازنة مع عبد الرزاق البرغوثي وطلب العودة لديوان فدوى طوقان «لن أبكي») لم تُنمذج لغياب النصوص الصافية؛ بُني المختبر على المعجم وجوّ النص وشعر التفعيلة فحسب.
- `unit_02 lesson_04` (تحليل النص الشعري): صفحات 46-49؛ مقدمة التحليل (ص46) وصفٌ عامُّ OCR متداخل وقد جمع في اللقطة الأولى ما بين عناصر العمل الأدبي وتعريف القراءة التحليلية؛ نشاطُ (2.4) «أرْدُن يا بلدي» نصٌّ كامل بلا تمارين قابلة للتحقق — تُرك تحليلُهُ حُرًّا خارج المختبر ولم تُخترع أسئلة عليه. مسودّة مواصفة عامة تُكملها المراجعة الأكاديمية.
## الربطات المؤقتة (تحتاج تحققاً من المصدر قبل أي إطلاق)
bio-key، ear-rock، mat-trig، fin-feas، his-persian، geo-atmo، civ-active — مبنية على العناوين فقط حتى مراجعة `source_markdown`.
## المانع
- مراجعة أكاديمية لكل المواصفات (لا شيء `released`).
- خلل كوربوس: الإسلامية S1 وحدات 02–04 ملوثة؛ لا ميراث/فرائض بالكوربوس؛ العربية S2 تدوير وحدات + OCR.
- حزمة النشر من الخادم + ربط `has_virtual_lab` في النموذج لم تُنشأ بعد (عمل خلفي قادم).
## تنفيذ الدروس — المصفوفة
| المبحث | عدد دروس | مكتمل/منشور | ملاحظات |
|---|---|---|---|
| العربية لغتي | 54 | 11/0 | الوحدة 01 مكتملة (6/6) + U2L1–U2L5 في الوحدة 02؛ التالي U2L6 |
(توسيع الجدول مع كل مبحث مُنجَز.)
+375
View File
@@ -0,0 +1,375 @@
# فهرس مواصفات مختبرات الصف العاشر
> مولّد من `manifest.accepted.json`، وعدده 369 ملفاً. جميعها مسودات مراجعة وليست دليلاً على النشر للطلاب.
| هوية الدرس | المبحث | الدرس | ملف المختبر |
|---|---|---|---|
| `arabic_10_semester_1_unit_01_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ (قصة كعب بن مالك رضي الله عنه) | [المواصفة](./arabic_10/semester_1/unit_01/lesson_01.lab.md) |
| `arabic_10_semester_1_unit_01_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (فن الاعتذار وقيم التسامح) | [المواصفة](./arabic_10/semester_1/unit_01/lesson_02.lab.md) |
| `arabic_10_semester_1_unit_01_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (سينية البحتري في الاعتذار) | [المواصفة](./arabic_10/semester_1/unit_01/lesson_03.lab.md) |
| `arabic_10_semester_1_unit_01_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (كتابة رسالة اعتذار وتسامح) | [المواصفة](./arabic_10/semester_1/unit_01/lesson_04.lab.md) |
| `arabic_10_semester_1_unit_01_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): أسلوبُ الشَّرطِ | [المواصفة](./arabic_10/semester_1/unit_01/lesson_05.lab.md) |
| `arabic_10_semester_1_unit_01_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): الأسلوبُ الخَبَريُّ | [المواصفة](./arabic_10/semester_1/unit_01/lesson_06.lab.md) |
| `arabic_10_semester_1_unit_02_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_1/unit_02/lesson_01.lab.md) |
| `arabic_10_semester_1_unit_02_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (العرض التقديمي) | [المواصفة](./arabic_10/semester_1/unit_02/lesson_02.lab.md) |
| `arabic_10_semester_1_unit_02_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (إلى الصامدين غرب النهر) | [المواصفة](./arabic_10/semester_1/unit_02/lesson_03.lab.md) |
| `arabic_10_semester_1_unit_02_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (تحليل النص الشعري) | [المواصفة](./arabic_10/semester_1/unit_02/lesson_04.lab.md) |
| `arabic_10_semester_1_unit_02_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): أسلوبُ النِّداءِ | [المواصفة](./arabic_10/semester_1/unit_02/lesson_05.lab.md) |
| `arabic_10_semester_1_unit_02_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): الأسلوبُ الإنشائيُّ (الإنشاء الطلبي) | [المواصفة](./arabic_10/semester_1/unit_02/lesson_06.lab.md) |
| `arabic_10_semester_1_unit_03_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_1/unit_03/lesson_01.lab.md) |
| `arabic_10_semester_1_unit_03_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (قراءة الصورة) | [المواصفة](./arabic_10/semester_1/unit_03/lesson_02.lab.md) |
| `arabic_10_semester_1_unit_03_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (اللغة الأم) | [المواصفة](./arabic_10/semester_1/unit_03/lesson_03.lab.md) |
| `arabic_10_semester_1_unit_03_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (تحليل لوحة فنية) | [المواصفة](./arabic_10/semester_1/unit_03/lesson_04.lab.md) |
| `arabic_10_semester_1_unit_03_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): معاني الأفعال المزيدة | [المواصفة](./arabic_10/semester_1/unit_03/lesson_05.lab.md) |
| `arabic_10_semester_1_unit_03_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): الأسلوب الإنشائي غير الطلبي | [المواصفة](./arabic_10/semester_1/unit_03/lesson_06.lab.md) |
| `arabic_10_semester_1_unit_04_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_1/unit_04/lesson_01.lab.md) |
| `arabic_10_semester_1_unit_04_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (كيف أقدم شخصية أدبية؟) | [المواصفة](./arabic_10/semester_1/unit_04/lesson_02.lab.md) |
| `arabic_10_semester_1_unit_04_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (شغف القراءة وحكايات أخرى) | [المواصفة](./arabic_10/semester_1/unit_04/lesson_03.lab.md) |
| `arabic_10_semester_1_unit_04_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (صفحة أولى من سيرتي الذاتية) | [المواصفة](./arabic_10/semester_1/unit_04/lesson_04.lab.md) |
| `arabic_10_semester_1_unit_04_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): مصادر الأفعال الثلاثية | [المواصفة](./arabic_10/semester_1/unit_04/lesson_05.lab.md) |
| `arabic_10_semester_1_unit_04_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها | [المواصفة](./arabic_10/semester_1/unit_04/lesson_06.lab.md) |
| `arabic_10_semester_1_unit_05_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_1/unit_05/lesson_01.lab.md) |
| `arabic_10_semester_1_unit_05_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (قراءة المشاعر) | [المواصفة](./arabic_10/semester_1/unit_05/lesson_02.lab.md) |
| `arabic_10_semester_1_unit_05_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (بم التعلل لا أهل ولا وطن) | [المواصفة](./arabic_10/semester_1/unit_05/lesson_03.lab.md) |
| `arabic_10_semester_1_unit_05_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (نص إخباري عن مناسبة أممية) | [المواصفة](./arabic_10/semester_1/unit_05/lesson_04.lab.md) |
| `arabic_10_semester_1_unit_05_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): مصادر الأفعال غير الثلاثية | [المواصفة](./arabic_10/semester_1/unit_05/lesson_05.lab.md) |
| `arabic_10_semester_1_unit_05_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها | [المواصفة](./arabic_10/semester_1/unit_05/lesson_06.lab.md) |
| `arabic_10_semester_2_unit_06_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_2/unit_06/lesson_01.lab.md) |
| `arabic_10_semester_2_unit_06_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (المناقشة الجماعية الحرة) | [المواصفة](./arabic_10/semester_2/unit_06/lesson_02.lab.md) |
| `arabic_10_semester_2_unit_06_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (سينية أحمد شوقي في الحنين للوطن) | [المواصفة](./arabic_10/semester_2/unit_06/lesson_03.lab.md) |
| `arabic_10_semester_2_unit_06_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (مقال تحليلي عن تجربة شعورية) | [المواصفة](./arabic_10/semester_2/unit_06/lesson_04.lab.md) |
| `arabic_10_semester_2_unit_06_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): الممنوع من الصرف | [المواصفة](./arabic_10/semester_2/unit_06/lesson_05.lab.md) |
| `arabic_10_semester_2_unit_06_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): نوعا التشبيه: المؤكد المفصل والمؤكد المجمل | [المواصفة](./arabic_10/semester_2/unit_06/lesson_06.lab.md) |
| `arabic_10_semester_2_unit_07_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_2/unit_07/lesson_01.lab.md) |
| `arabic_10_semester_2_unit_07_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (فن المناظرة وأدوار المتحدثين) | [المواصفة](./arabic_10/semester_2/unit_07/lesson_02.lab.md) |
| `arabic_10_semester_2_unit_07_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (عصر المعلومات بعد الإنترنت: قضية إشكالية) | [المواصفة](./arabic_10/semester_2/unit_07/lesson_03.lab.md) |
| `arabic_10_semester_2_unit_07_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (النص الجدلي) | [المواصفة](./arabic_10/semester_2/unit_07/lesson_04.lab.md) |
| `arabic_10_semester_2_unit_07_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): تمييز الذات | [المواصفة](./arabic_10/semester_2/unit_07/lesson_05.lab.md) |
| `arabic_10_semester_2_unit_07_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): صيغة المبالغة والصفة المشبهة | [المواصفة](./arabic_10/semester_2/unit_07/lesson_06.lab.md) |
| `arabic_10_semester_2_unit_08_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_2/unit_08/lesson_01.lab.md) |
| `arabic_10_semester_2_unit_08_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (إدارة الندوة) | [المواصفة](./arabic_10/semester_2/unit_08/lesson_02.lab.md) |
| `arabic_10_semester_2_unit_08_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (مقطوعات من الغزل العذري) | [المواصفة](./arabic_10/semester_2/unit_08/lesson_03.lab.md) |
| `arabic_10_semester_2_unit_08_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (إعداد مخطط مبادرة تطوعية) | [المواصفة](./arabic_10/semester_2/unit_08/lesson_04.lab.md) |
| `arabic_10_semester_2_unit_08_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): تثنية الاسم المقصور والمنقوص والممدود وجمعه | [المواصفة](./arabic_10/semester_2/unit_08/lesson_05.lab.md) |
| `arabic_10_semester_2_unit_08_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها (بحر الهزج) | [المواصفة](./arabic_10/semester_2/unit_08/lesson_06.lab.md) |
| `arabic_10_semester_2_unit_09_lesson_01` | اللغة العربية | الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ | [المواصفة](./arabic_10/semester_2/unit_09/lesson_01.lab.md) |
| `arabic_10_semester_2_unit_09_lesson_02` | اللغة العربية | الدرس الثاني: أتحدثُ بطالقةٍ (العرض الشفوي لقصة نجاح) | [المواصفة](./arabic_10/semester_2/unit_09/lesson_02.lab.md) |
| `arabic_10_semester_2_unit_09_lesson_03` | اللغة العربية | الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (المفكر العربي إدوارد سعيد) | [المواصفة](./arabic_10/semester_2/unit_09/lesson_03.lab.md) |
| `arabic_10_semester_2_unit_09_lesson_04` | اللغة العربية | الدرس الرابع: أكتبُ محتوى (تقرير علمي عن شخصية) | [المواصفة](./arabic_10/semester_2/unit_09/lesson_04.lab.md) |
| `arabic_10_semester_2_unit_09_lesson_05` | اللغة العربية | الدرس الخامس: أبني لغتي (1): الأفعال المتعدية إلى مفعولين | [المواصفة](./arabic_10/semester_2/unit_09/lesson_05.lab.md) |
| `arabic_10_semester_2_unit_09_lesson_06` | اللغة العربية | الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها (بحر المتقارب) | [المواصفة](./arabic_10/semester_2/unit_09/lesson_06.lab.md) |
| `biology_10_semester_1_unit_01_lesson_01` | العلوم الحياتية | الدرس الأول: النقل عبر الغشاء البلازمي والخاصية الأسموزية والانتشار | [المواصفة](./biology_10/semester_1/unit_01/lesson_01.lab.md) |
| `biology_10_semester_1_unit_01_unit_review` | العلوم الحياتية | مراجعة واختبار الوحدة الأولى: أنشطة الخلية | [المواصفة](./biology_10/semester_1/unit_01/unit_review.lab.md) |
| `biology_10_semester_1_unit_02_lesson_01` | العلوم الحياتية | الدرس الأول: المادة الوراثية وتضاعف الحمض النووي DNA وبناء البروتين | [المواصفة](./biology_10/semester_1/unit_02/lesson_01.lab.md) |
| `biology_10_semester_1_unit_02_unit_review` | العلوم الحياتية | مراجعة واختبار الوحدة الثانية: الوراثة والبيولوجيا الجزيئية | [المواصفة](./biology_10/semester_1/unit_02/unit_review.lab.md) |
| `biology_10_semester_1_unit_03_lesson_01` | العلوم الحياتية | الدرس 1: أسس علم التصنيف ومستوياته ونظام التسمية الثنائية | [المواصفة](./biology_10/semester_1/unit_03/lesson_01.lab.md) |
| `biology_10_semester_1_unit_03_lesson_02` | العلوم الحياتية | الدرس 2: البكتيريا والأثريات وخصائصها الحيوية | [المواصفة](./biology_10/semester_1/unit_03/lesson_02.lab.md) |
| `biology_10_semester_1_unit_03_lesson_03` | العلوم الحياتية | الدرس 3: الطلائعيات وتنوعها وأهميتها البيئية والاقتصادية | [المواصفة](./biology_10/semester_1/unit_03/lesson_03.lab.md) |
| `biology_10_semester_1_unit_03_lesson_04` | العلوم الحياتية | الدرس 4: الفطريات وتراكيبها وطرائق تغذيتها ودورها في الطبيعة | [المواصفة](./biology_10/semester_1/unit_03/lesson_04.lab.md) |
| `biology_10_semester_1_unit_03_unit_review` | العلوم الحياتية | مراجعة واختبار الوحدة الثالثة: تصنيف الكائنات الحية | [المواصفة](./biology_10/semester_1/unit_03/unit_review.lab.md) |
| `biology_10_semester_2_unit_03_lesson_05` | العلوم الحياتية | الدرس 5: النباتات اللاوعائية والنباتات الوعائية اللابذرية | [المواصفة](./biology_10/semester_2/unit_03/lesson_05.lab.md) |
| `biology_10_semester_2_unit_03_lesson_06` | العلوم الحياتية | الدرس 6: النباتات الوعائية البذرية (معراة ومغطاة البذور) | [المواصفة](./biology_10/semester_2/unit_03/lesson_06.lab.md) |
| `biology_10_semester_2_unit_03_lesson_07` | العلوم الحياتية | الدرس 7: خصائص الحيوانات وأسس تصنيف المملكة الحيوانية | [المواصفة](./biology_10/semester_2/unit_03/lesson_07.lab.md) |
| `biology_10_semester_2_unit_03_lesson_08` | العلوم الحياتية | الدرس 8: اللافقاريات وخصائص قبائلها الرئيسية | [المواصفة](./biology_10/semester_2/unit_03/lesson_08.lab.md) |
| `biology_10_semester_2_unit_03_lesson_09` | العلوم الحياتية | الدرس 9: الفقاريات وطوائفها وتكيفاتها المعيشية | [المواصفة](./biology_10/semester_2/unit_03/lesson_09.lab.md) |
| `biology_10_semester_2_unit_03_unit_review` | العلوم الحياتية | مراجعة واختبار الوحدة الثالثة: المملكة النباتية والحيوانية | [المواصفة](./biology_10/semester_2/unit_03/unit_review.lab.md) |
| `biology_10_semester_2_unit_04_lesson_01` | العلوم الحياتية | الدرس 1: تدفق الطاقة ودورات المواد في الأنظمة البيئية | [المواصفة](./biology_10/semester_2/unit_04/lesson_01.lab.md) |
| `biology_10_semester_2_unit_04_lesson_02` | العلوم الحياتية | الدرس 2: الجماعات الحيوية والعوامل المؤثرة في نموها وكثافتها | [المواصفة](./biology_10/semester_2/unit_04/lesson_02.lab.md) |
| `biology_10_semester_2_unit_04_unit_review` | العلوم الحياتية | مراجعة واختبار الوحدة الرابعة: البيئة والتنوع الحيوي | [المواصفة](./biology_10/semester_2/unit_04/unit_review.lab.md) |
| `chemistry_10_semester_1_unit_01_lesson_01` | الكيمياء | الدرس الأول: نظرية بور لذرة الهيدروجين والطيوف الذرية | [المواصفة](./chemistry_10/semester_1/unit_01/lesson_01.lab.md) |
| `chemistry_10_semester_1_unit_01_lesson_02` | الكيمياء | الدرس الثاني: النموذج الميكانيكي الموجي للذرة وأفلاك الطاقة | [المواصفة](./chemistry_10/semester_1/unit_01/lesson_02.lab.md) |
| `chemistry_10_semester_1_unit_01_unit_review` | الكيمياء | مراجعة واختبار الوحدة الأولى: بنية الذرة | [المواصفة](./chemistry_10/semester_1/unit_01/unit_review.lab.md) |
| `chemistry_10_semester_1_unit_02_lesson_01` | الكيمياء | الدرس الأول: قواعد التوزيع الإلكتروني للذرات والأيونات | [المواصفة](./chemistry_10/semester_1/unit_02/lesson_01.lab.md) |
| `chemistry_10_semester_1_unit_02_lesson_02` | الكيمياء | الدرس الثاني: الخصائص الدورية للعناصر (نصف القطر، طاقة التأين، الكهروسالبية) | [المواصفة](./chemistry_10/semester_1/unit_02/lesson_02.lab.md) |
| `chemistry_10_semester_1_unit_02_unit_review` | الكيمياء | مراجعة واختبار الوحدة الثانية: التوزيع الإلكتروني والدورية | [المواصفة](./chemistry_10/semester_1/unit_02/unit_review.lab.md) |
| `chemistry_10_semester_1_unit_03_lesson_01` | الكيمياء | الدرس الأول: الروابط الكيميائية وأنواعها (الأيونية، التساهمية، والفلزية) | [المواصفة](./chemistry_10/semester_1/unit_03/lesson_01.lab.md) |
| `chemistry_10_semester_1_unit_03_lesson_02` | الكيمياء | الدرس الثاني: الصيغ الكيميائية وخصائص المركبات وقوى التجاذب بين الجزيئات | [المواصفة](./chemistry_10/semester_1/unit_03/lesson_02.lab.md) |
| `chemistry_10_semester_1_unit_03_unit_review` | الكيمياء | مراجعة واختبار الوحدة الثالثة: الروابط والمركبات الكيميائية | [المواصفة](./chemistry_10/semester_1/unit_03/unit_review.lab.md) |
| `chemistry_10_semester_2_unit_04_lesson_01` | الكيمياء | الدرس الأول: التفاعلات الكيميائية وأنواعها وموازنة المعادلات | [المواصفة](./chemistry_10/semester_2/unit_04/lesson_01.lab.md) |
| `chemistry_10_semester_2_unit_04_lesson_02` | الكيمياء | الدرس الثاني: المول والكتلة المولية والكتلة الصيغية | [المواصفة](./chemistry_10/semester_2/unit_04/lesson_02.lab.md) |
| `chemistry_10_semester_2_unit_04_lesson_03` | الكيمياء | الدرس الثالث: الحسابات الكيميائية المبنية على المعادلات والمردود المئوي | [المواصفة](./chemistry_10/semester_2/unit_04/lesson_03.lab.md) |
| `chemistry_10_semester_2_unit_04_unit_review` | الكيمياء | مراجعة واختبار الوحدة الرابعة: التفاعلات والحسابات الكيميائية | [المواصفة](./chemistry_10/semester_2/unit_04/unit_review.lab.md) |
| `chemistry_10_semester_2_unit_05_lesson_01` | الكيمياء | الدرس الأول: تغيرات الطاقة في التفاعلات الكيميائية (الماصة والطاردة) | [المواصفة](./chemistry_10/semester_2/unit_05/lesson_01.lab.md) |
| `chemistry_10_semester_2_unit_05_lesson_02` | الكيمياء | الدرس الثاني: الطاقة الممتصة والطاقة المنبعثة من التفاعلات وقانون حفظ الطاقة | [المواصفة](./chemistry_10/semester_2/unit_05/lesson_02.lab.md) |
| `chemistry_10_semester_2_unit_05_lesson_03` | الكيمياء | الدرس الثالث: السعة الحرارية والحرارة النوعية وحساب كمية الحرارة | [المواصفة](./chemistry_10/semester_2/unit_05/lesson_03.lab.md) |
| `chemistry_10_semester_2_unit_05_unit_review` | الكيمياء | مراجعة واختبار الوحدة الخامسة: الطاقة الكيميائية | [المواصفة](./chemistry_10/semester_2/unit_05/unit_review.lab.md) |
| `civics_10_semester_1_unit_01_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: التربية الوطنية والمدنية: المفهوم والدلالات | [المواصفة](./civics_10/semester_1/unit_01/lesson_01.lab.md) |
| `civics_10_semester_1_unit_01_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: هويتي الأردنية | [المواصفة](./civics_10/semester_1/unit_01/lesson_02.lab.md) |
| `civics_10_semester_1_unit_01_lesson_03` | التربية الوطنية والمدنية | الدرس الثالث: المواطنة | [المواصفة](./civics_10/semester_1/unit_01/lesson_03.lab.md) |
| `civics_10_semester_1_unit_01_lesson_04` | التربية الوطنية والمدنية | الدرس الرابع: الديمقراطية | [المواصفة](./civics_10/semester_1/unit_01/lesson_04.lab.md) |
| `civics_10_semester_1_unit_01_lesson_05` | التربية الوطنية والمدنية | الدرس الخامس: خدمة العلم | [المواصفة](./civics_10/semester_1/unit_01/lesson_05.lab.md) |
| `civics_10_semester_1_unit_01_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة الأولى: التربية الوطنية والمدنية | [المواصفة](./civics_10/semester_1/unit_01/unit_review.lab.md) |
| `civics_10_semester_1_unit_02_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: الدستور الأردني وسيادة القانون | [المواصفة](./civics_10/semester_1/unit_02/lesson_01.lab.md) |
| `civics_10_semester_1_unit_02_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: المشاركة في الحياة العامة | [المواصفة](./civics_10/semester_1/unit_02/lesson_02.lab.md) |
| `civics_10_semester_1_unit_02_lesson_03` | التربية الوطنية والمدنية | الدرس الثالث: الانتخابات (أنا والصندوق) | [المواصفة](./civics_10/semester_1/unit_02/lesson_03.lab.md) |
| `civics_10_semester_1_unit_02_lesson_04` | التربية الوطنية والمدنية | الدرس الرابع: الأحزاب السياسية | [المواصفة](./civics_10/semester_1/unit_02/lesson_04.lab.md) |
| `civics_10_semester_1_unit_02_lesson_05` | التربية الوطنية والمدنية | الدرس الخامس: أردن المستقبل | [المواصفة](./civics_10/semester_1/unit_02/lesson_05.lab.md) |
| `civics_10_semester_1_unit_02_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة الثانية: المشاركة في الحياة العامة | [المواصفة](./civics_10/semester_1/unit_02/unit_review.lab.md) |
| `civics_10_semester_2_unit_03_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: الشرعة الدولية لحقوق الإنسان | [المواصفة](./civics_10/semester_2/unit_03/lesson_01.lab.md) |
| `civics_10_semester_2_unit_03_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: حقوق الإنسان في الأردن | [المواصفة](./civics_10/semester_2/unit_03/lesson_02.lab.md) |
| `civics_10_semester_2_unit_03_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة الثالثة: حقوق الإنسان | [المواصفة](./civics_10/semester_2/unit_03/unit_review.lab.md) |
| `civics_10_semester_2_unit_04_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: العلاقات الأردنية العربية | [المواصفة](./civics_10/semester_2/unit_04/lesson_01.lab.md) |
| `civics_10_semester_2_unit_04_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: العلاقات الأردنية الدولية | [المواصفة](./civics_10/semester_2/unit_04/lesson_02.lab.md) |
| `civics_10_semester_2_unit_04_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة الرابعة: العلاقات الأردنية الدولية | [المواصفة](./civics_10/semester_2/unit_04/unit_review.lab.md) |
| `civics_10_semester_2_unit_05_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: التراث الوطني | [المواصفة](./civics_10/semester_2/unit_05/lesson_01.lab.md) |
| `civics_10_semester_2_unit_05_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: المحافظة على التراث | [المواصفة](./civics_10/semester_2/unit_05/lesson_02.lab.md) |
| `civics_10_semester_2_unit_05_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة الخامسة: التراث | [المواصفة](./civics_10/semester_2/unit_05/unit_review.lab.md) |
| `civics_10_semester_2_unit_06_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: النزاهة الوطنية | [المواصفة](./civics_10/semester_2/unit_06/lesson_01.lab.md) |
| `civics_10_semester_2_unit_06_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: مكافحة الفساد والمحسوبية | [المواصفة](./civics_10/semester_2/unit_06/lesson_02.lab.md) |
| `civics_10_semester_2_unit_06_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة السادسة: النزاهة ومكافحة الفساد | [المواصفة](./civics_10/semester_2/unit_06/unit_review.lab.md) |
| `civics_10_semester_2_unit_07_lesson_01` | التربية الوطنية والمدنية | الدرس الأول: المحتوى الإعلامي | [المواصفة](./civics_10/semester_2/unit_07/lesson_01.lab.md) |
| `civics_10_semester_2_unit_07_lesson_02` | التربية الوطنية والمدنية | الدرس الثاني: السلوك | [المواصفة](./civics_10/semester_2/unit_07/lesson_02.lab.md) |
| `civics_10_semester_2_unit_07_unit_review` | التربية الوطنية والمدنية | مراجعة الوحدة السابعة: مهارات حياتية | [المواصفة](./civics_10/semester_2/unit_07/unit_review.lab.md) |
| `digital_skills_10_semester_1_unit_01_lesson_01` | المهارات الرقمية | الدرس الأول: البيانات والمعلومات (Information and Data) | [المواصفة](./digital_skills_10/semester_1/unit_01/lesson_01.lab.md) |
| `digital_skills_10_semester_1_unit_01_lesson_02` | المهارات الرقمية | الدرس الثاني: أنواع البيانات وطرائق تنظيمها (Data Types & Organization) | [المواصفة](./digital_skills_10/semester_1/unit_01/lesson_02.lab.md) |
| `digital_skills_10_semester_1_unit_01_lesson_03` | المهارات الرقمية | الدرس الثالث: التمثيل المرئي للبيانات (Data Visualization) | [المواصفة](./digital_skills_10/semester_1/unit_01/lesson_03.lab.md) |
| `digital_skills_10_semester_1_unit_01_lesson_04` | المهارات الرقمية | الدرس الرابع: تحليل البيانات (Data Analysis with Excel) | [المواصفة](./digital_skills_10/semester_1/unit_01/lesson_04.lab.md) |
| `digital_skills_10_semester_1_unit_01_unit_summary` | المهارات الرقمية | ملخص وأسئلة الوحدة وتقويم ذاتي: تحليل البيانات | [المواصفة](./digital_skills_10/semester_1/unit_01/unit_summary.lab.md) |
| `digital_skills_10_semester_2_unit_01_lesson_01` | المهارات الرقمية | الدرس الأول: مفهوم إنترنت الأشياء ومكوناتها ووظائفها | [المواصفة](./digital_skills_10/semester_2/unit_01/lesson_01.lab.md) |
| `digital_skills_10_semester_2_unit_01_lesson_02` | المهارات الرقمية | الدرس الثاني: تكوين شبكة إنترنت الأشياء ومحاكاة نقل البيانات | [المواصفة](./digital_skills_10/semester_2/unit_01/lesson_02.lab.md) |
| `digital_skills_10_semester_2_unit_01_unit_review` | المهارات الرقمية | مراجعة ومشروع الوحدة الأولى: إنترنت الأشياء | [المواصفة](./digital_skills_10/semester_2/unit_01/unit_review.lab.md) |
| `digital_skills_10_semester_2_unit_02_lesson_01` | المهارات الرقمية | الدرس الأول: أنظمة قواعد المعرفة ومفهوم المنطق في الذكاء الاصطناعي | [المواصفة](./digital_skills_10/semester_2/unit_02/lesson_01.lab.md) |
| `digital_skills_10_semester_2_unit_02_lesson_02` | المهارات الرقمية | الدرس الثاني: تطبيقات الذكاء الاصطناعي وتقنية النانو والهولوغرام | [المواصفة](./digital_skills_10/semester_2/unit_02/lesson_02.lab.md) |
| `digital_skills_10_semester_2_unit_02_unit_review` | المهارات الرقمية | ملخص وأسئلة الوحدة الثانية: الذكاء الاصطناعي | [المواصفة](./digital_skills_10/semester_2/unit_02/unit_review.lab.md) |
| `earth_sciences_10_semester_1_unit_01_lesson_01` | علوم الأرض والبيئة | الدرس 1: الصخور النارية (Igneous Rocks) | [المواصفة](./earth_sciences_10/semester_1/unit_01/lesson_01.lab.md) |
| `earth_sciences_10_semester_1_unit_01_lesson_02` | علوم الأرض والبيئة | الدرس 2: الصخور الرسوبية (Sedimentary Rocks) | [المواصفة](./earth_sciences_10/semester_1/unit_01/lesson_02.lab.md) |
| `earth_sciences_10_semester_1_unit_01_lesson_03` | علوم الأرض والبيئة | الدرس 3: الصخور المتحولة (Metamorphic Rocks) | [المواصفة](./earth_sciences_10/semester_1/unit_01/lesson_03.lab.md) |
| `earth_sciences_10_semester_1_unit_01_unit_enrichment_and_review` | علوم الأرض والبيئة | الإثراء والتوسع ومراجعة الوحدة الأولى: الصوف الصخري والصخور | [المواصفة](./earth_sciences_10/semester_1/unit_01/unit_enrichment_and_review.lab.md) |
| `earth_sciences_10_semester_1_unit_02_lesson_01` | علوم الأرض والبيئة | الدرس 1: ماهية النجوم وخصائصها الفيزيائية وطاقتها | [المواصفة](./earth_sciences_10/semester_1/unit_02/lesson_01.lab.md) |
| `earth_sciences_10_semester_1_unit_02_lesson_02` | علوم الأرض والبيئة | الدرس 2: الأنظمة النجمية والكوكبات النجمية | [المواصفة](./earth_sciences_10/semester_1/unit_02/lesson_02.lab.md) |
| `earth_sciences_10_semester_1_unit_02_lesson_03` | علوم الأرض والبيئة | الدرس 3: دورة حياة النجوم ومراحل تطورها وموتها | [المواصفة](./earth_sciences_10/semester_1/unit_02/lesson_03.lab.md) |
| `earth_sciences_10_semester_1_unit_02_unit_enrichment_and_review` | علوم الأرض والبيئة | الإثراء والتوسع ومراجعة الوحدة الثانية: مقراد الكوة الدائرية والنجوم | [المواصفة](./earth_sciences_10/semester_1/unit_02/unit_enrichment_and_review.lab.md) |
| `earth_sciences_10_semester_2_unit_03_lesson_01` | علوم الأرض والبيئة | الدرس 1: الكتل والجبهات الهوائية (Air Masses and Fronts) | [المواصفة](./earth_sciences_10/semester_2/unit_03/lesson_01.lab.md) |
| `earth_sciences_10_semester_2_unit_03_lesson_02` | علوم الأرض والبيئة | الدرس 2: أنظمة الضغط الجوي (Pressure Systems) | [المواصفة](./earth_sciences_10/semester_2/unit_03/lesson_02.lab.md) |
| `earth_sciences_10_semester_2_unit_03_unit_enrichment_and_review` | علوم الأرض والبيئة | الإثراء والتوسع ومراجعة الوحدة الثالثة: بالونات الطقس والأرصاد | [المواصفة](./earth_sciences_10/semester_2/unit_03/unit_enrichment_and_review.lab.md) |
| `earth_sciences_10_semester_2_unit_04_lesson_01` | علوم الأرض والبيئة | الدرس 1: خصائص مياه المحيطات (الملوحة والحرارة والكثافة) | [المواصفة](./earth_sciences_10/semester_2/unit_04/lesson_01.lab.md) |
| `earth_sciences_10_semester_2_unit_04_lesson_02` | علوم الأرض والبيئة | الدرس 2: أمواج المحيط (Ocean Waves) | [المواصفة](./earth_sciences_10/semester_2/unit_04/lesson_02.lab.md) |
| `earth_sciences_10_semester_2_unit_04_lesson_03` | علوم الأرض والبيئة | الدرس 3: تيارات المحيط والمناخ (Ocean Currents and Climate) | [المواصفة](./earth_sciences_10/semester_2/unit_04/lesson_03.lab.md) |
| `earth_sciences_10_semester_2_unit_04_unit_enrichment_and_review` | علوم الأرض والبيئة | الإثراء والتوسع ومراجعة الوحدة الرابعة: دراسة المحيطات بالأقمار الصناعية | [المواصفة](./earth_sciences_10/semester_2/unit_04/unit_enrichment_and_review.lab.md) |
| `earth_sciences_10_semester_2_unit_05_lesson_01` | علوم الأرض والبيئة | الدرس 1: مفهوم المياه العادمة ومصادرها | [المواصفة](./earth_sciences_10/semester_2/unit_05/lesson_01.lab.md) |
| `earth_sciences_10_semester_2_unit_05_lesson_02` | علوم الأرض والبيئة | الدرس 2: الآثار السلبية للمياه العادمة على البيئة والصحة | [المواصفة](./earth_sciences_10/semester_2/unit_05/lesson_02.lab.md) |
| `earth_sciences_10_semester_2_unit_05_lesson_03` | علوم الأرض والبيئة | الدرس 3: معالجة المياه العادمة ومراحلها وتطبيقاتها في الأردن | [المواصفة](./earth_sciences_10/semester_2/unit_05/lesson_03.lab.md) |
| `earth_sciences_10_semester_2_unit_05_unit_enrichment_and_review` | علوم الأرض والبيئة | الإثراء والتوسع ومراجعة الوحدة الخامسة: فوائد الحمأة ومعالجة المياه | [المواصفة](./earth_sciences_10/semester_2/unit_05/unit_enrichment_and_review.lab.md) |
| `english_10_semester_1_unit_01_lesson_01` | اللغة الإنجليزية | Unit 01 - Lesson 1: Grammar & Vocabulary (Present Simple & Continuous, Verb phrases with dress) | [المواصفة](./english_10/semester_1/unit_01/lesson_01.lab.md) |
| `english_10_semester_1_unit_01_lesson_02` | اللغة الإنجليزية | Unit 01 - Lesson 2: Vocabulary & Listening (Appearance, Clothes & Accessories, Jobs Podcast) | [المواصفة](./english_10/semester_1/unit_01/lesson_02.lab.md) |
| `english_10_semester_1_unit_01_lesson_03` | اللغة الإنجليزية | Unit 01 - Lesson 3: Reading (The Power of Appearance) | [المواصفة](./english_10/semester_1/unit_01/lesson_03.lab.md) |
| `english_10_semester_1_unit_01_lesson_04` | اللغة الإنجليزية | Unit 01 - Lesson 4: Grammar (Articles & Pronunciation) | [المواصفة](./english_10/semester_1/unit_01/lesson_04.lab.md) |
| `english_10_semester_1_unit_01_lesson_05` | اللغة الإنجليزية | Unit 01 - Lesson 5: Speaking (Participating in Conversations) | [المواصفة](./english_10/semester_1/unit_01/lesson_05.lab.md) |
| `english_10_semester_1_unit_01_lesson_06` | اللغة الإنجليزية | Unit 01 - Lesson 6: Writing (An Informal Email) | [المواصفة](./english_10/semester_1/unit_01/lesson_06.lab.md) |
| `english_10_semester_1_unit_02_lesson_01` | اللغة الإنجليزية | Unit 02 - Lesson 1: Grammar & Vocabulary (Present Perfect Simple & Continuous, Scientific Research) | [المواصفة](./english_10/semester_1/unit_02/lesson_01.lab.md) |
| `english_10_semester_1_unit_02_lesson_02` | اللغة الإنجليزية | Unit 02 - Lesson 2: Reading (Science Fiction or Science Fact?) | [المواصفة](./english_10/semester_1/unit_02/lesson_02.lab.md) |
| `english_10_semester_1_unit_02_lesson_03` | اللغة الإنجليزية | Unit 02 - Lesson 3: Vocabulary & Grammar (Science, Think & Mind, Verb Patterns) | [المواصفة](./english_10/semester_1/unit_02/lesson_03.lab.md) |
| `english_10_semester_1_unit_02_lesson_04` | اللغة الإنجليزية | Unit 02 - Lesson 4: Listening (Uses of Drones) | [المواصفة](./english_10/semester_1/unit_02/lesson_04.lab.md) |
| `english_10_semester_1_unit_02_lesson_05` | اللغة الإنجليزية | Unit 02 - Lesson 5: Speaking (Making Choices) | [المواصفة](./english_10/semester_1/unit_02/lesson_05.lab.md) |
| `english_10_semester_1_unit_02_lesson_06` | اللغة الإنجليزية | Unit 02 - Lesson 6: Writing (A Blog Post - Health and Computers) | [المواصفة](./english_10/semester_1/unit_02/lesson_06.lab.md) |
| `english_10_semester_1_unit_02_life_skills` | اللغة الإنجليزية | Unit 02 - Life Skills: How to Give a Presentation | [المواصفة](./english_10/semester_1/unit_02/life_skills.lab.md) |
| `english_10_semester_1_unit_03_lesson_01` | اللغة الإنجليزية | Unit 03 - Lesson 1: Grammar & Vocabulary (Past Simple, Past Continuous, Past Perfect, Sports) | [المواصفة](./english_10/semester_1/unit_03/lesson_01.lab.md) |
| `english_10_semester_1_unit_03_lesson_02` | اللغة الإنجليزية | Unit 03 - Lesson 2: Vocabulary & Listening (Injuries, Accidents & Emergencies) | [المواصفة](./english_10/semester_1/unit_03/lesson_02.lab.md) |
| `english_10_semester_1_unit_03_lesson_03` | اللغة الإنجليزية | Unit 03 - Lesson 3: Grammar (Used to & Would) | [المواصفة](./english_10/semester_1/unit_03/lesson_03.lab.md) |
| `english_10_semester_1_unit_03_lesson_04` | اللغة الإنجليزية | Unit 03 - Lesson 4: Reading & Vocabulary (Say 'Yum' to Healthy Eating - Diet & Nutrition) | [المواصفة](./english_10/semester_1/unit_03/lesson_04.lab.md) |
| `english_10_semester_1_unit_03_lesson_05` | اللغة الإنجليزية | Unit 03 - Lesson 5: Writing (A Short Story) | [المواصفة](./english_10/semester_1/unit_03/lesson_05.lab.md) |
| `english_10_semester_1_unit_04_lesson_01` | اللغة الإنجليزية | Unit 04 - Lesson 1: Grammar & Vocabulary (Modal and Related Verbs, Air Travel) | [المواصفة](./english_10/semester_1/unit_04/lesson_01.lab.md) |
| `english_10_semester_1_unit_04_lesson_02` | اللغة الإنجليزية | Unit 04 - Lesson 2: Reading (How to Have the Perfect Family Holiday) | [المواصفة](./english_10/semester_1/unit_04/lesson_02.lab.md) |
| `english_10_semester_1_unit_04_lesson_03` | اللغة الإنجليزية | Unit 04 - Lesson 3: Vocabulary & Grammar (Travel Essentials, Relative Clauses) | [المواصفة](./english_10/semester_1/unit_04/lesson_03.lab.md) |
| `english_10_semester_1_unit_04_lesson_04` | اللغة الإنجليزية | Unit 04 - Lesson 4: Listening & Speaking (Urban Transport, Agreeing & Disagreeing) | [المواصفة](./english_10/semester_1/unit_04/lesson_04.lab.md) |
| `english_10_semester_1_unit_04_lesson_05` | اللغة الإنجليزية | Unit 04 - Lesson 5: Writing (A Formal Email of Enquiry) | [المواصفة](./english_10/semester_1/unit_04/lesson_05.lab.md) |
| `english_10_semester_1_unit_04_life_skills` | اللغة الإنجليزية | Unit 04 - Life Skills: How to Take Part in a Debate | [المواصفة](./english_10/semester_1/unit_04/life_skills.lab.md) |
| `english_10_semester_1_unit_05_culture_spot` | اللغة الإنجليزية | Unit 05 - Culture Spot & Literature Spot | [المواصفة](./english_10/semester_1/unit_05/culture_spot.lab.md) |
| `english_10_semester_1_unit_05_lesson_01` | اللغة الإنجليزية | Unit 05 - Lesson 1: Grammar & Vocabulary (Talking About the Future, Personality Adjectives) | [المواصفة](./english_10/semester_1/unit_05/lesson_01.lab.md) |
| `english_10_semester_1_unit_05_lesson_02` | اللغة الإنجليزية | Unit 05 - Lesson 2: Grammar & Vocabulary (Future Continuous & Perfect, Studying Phrasal Verbs) | [المواصفة](./english_10/semester_1/unit_05/lesson_02.lab.md) |
| `english_10_semester_1_unit_05_lesson_03` | اللغة الإنجليزية | Unit 05 - Lesson 3: Speaking (Describing Strengths and Weaknesses) | [المواصفة](./english_10/semester_1/unit_05/lesson_03.lab.md) |
| `english_10_semester_1_unit_05_lesson_04` | اللغة الإنجليزية | Unit 05 - Lesson 4: Listening (The Gig Economy, Taking Notes) | [المواصفة](./english_10/semester_1/unit_05/lesson_04.lab.md) |
| `english_10_semester_1_unit_05_lesson_05` | اللغة الإنجليزية | Unit 05 - Lesson 5: Reading & Vocabulary (The Future of Work, Future Jobs) | [المواصفة](./english_10/semester_1/unit_05/lesson_05.lab.md) |
| `english_10_semester_1_unit_05_lesson_06` | اللغة الإنجليزية | Unit 05 - Lesson 6: Writing (Personal Statement for University) | [المواصفة](./english_10/semester_1/unit_05/lesson_06.lab.md) |
| `english_10_semester_2_unit_06_lesson_01` | اللغة الإنجليزية | Unit 06 - Lesson 1: Grammar & Vocabulary (First & Second Conditionals, Mobile Etiquette) | [المواصفة](./english_10/semester_2/unit_06/lesson_01.lab.md) |
| `english_10_semester_2_unit_06_lesson_02` | اللغة الإنجليزية | Unit 06 - Lesson 2: Reading (If We Kept It, We'd Be Rich) | [المواصفة](./english_10/semester_2/unit_06/lesson_02.lab.md) |
| `english_10_semester_2_unit_06_lesson_03` | اللغة الإنجليزية | Unit 06 - Lesson 3: Listening & Grammar (Zero Conditional, Alternatives to If) | [المواصفة](./english_10/semester_2/unit_06/lesson_03.lab.md) |
| `english_10_semester_2_unit_06_lesson_04` | اللغة الإنجليزية | Unit 06 - Lesson 4: Speaking & Writing (Advice, For-and-Against Essay) | [المواصفة](./english_10/semester_2/unit_06/lesson_04.lab.md) |
| `english_10_semester_2_unit_06_life_skills` | اللغة الإنجليزية | Unit 06 - Life Skills: How to Set SMART Goals | [المواصفة](./english_10/semester_2/unit_06/life_skills.lab.md) |
| `english_10_semester_2_unit_07_lesson_01` | اللغة الإنجليزية | Unit 07 - Lesson 1: Grammar & Vocabulary (Reported Speech, TV News & Viewing Habits) | [المواصفة](./english_10/semester_2/unit_07/lesson_01.lab.md) |
| `english_10_semester_2_unit_07_lesson_02` | اللغة الإنجليزية | Unit 07 - Lesson 2: Reading (What is and isn't Art?) | [المواصفة](./english_10/semester_2/unit_07/lesson_02.lab.md) |
| `english_10_semester_2_unit_07_lesson_03` | اللغة الإنجليزية | Unit 07 - Lesson 3: Grammar & Speaking (Reported Questions, Personal Experience) | [المواصفة](./english_10/semester_2/unit_07/lesson_03.lab.md) |
| `english_10_semester_2_unit_07_lesson_04` | اللغة الإنجليزية | Unit 07 - Lesson 4: Writing (A Review of a Play) | [المواصفة](./english_10/semester_2/unit_07/lesson_04.lab.md) |
| `english_10_semester_2_unit_08_lesson_01` | اللغة الإنجليزية | Unit 08 - Lesson 1: Grammar & Vocabulary (The Passive, Advertising) | [المواصفة](./english_10/semester_2/unit_08/lesson_01.lab.md) |
| `english_10_semester_2_unit_08_lesson_02` | اللغة الإنجليزية | Unit 08 - Lesson 2: Listening & Vocabulary (Spending & Saving, Money) | [المواصفة](./english_10/semester_2/unit_08/lesson_02.lab.md) |
| `english_10_semester_2_unit_08_lesson_03` | اللغة الإنجليزية | Unit 08 - Lesson 3: Reading (The Way We Pay - Trading & Banking) | [المواصفة](./english_10/semester_2/unit_08/lesson_03.lab.md) |
| `english_10_semester_2_unit_08_lesson_04` | اللغة الإنجليزية | Unit 08 - Lesson 4: Speaking & Writing (Complaints, Opinion Essay) | [المواصفة](./english_10/semester_2/unit_08/lesson_04.lab.md) |
| `english_10_semester_2_unit_08_life_skills` | اللغة الإنجليزية | Unit 08 - Life Skills: How to Be More Creative | [المواصفة](./english_10/semester_2/unit_08/life_skills.lab.md) |
| `english_10_semester_2_unit_09_lesson_01` | اللغة الإنجليزية | Unit 09 - Lesson 1: Grammar & Vocabulary (Third Conditional, Water & Ocean) | [المواصفة](./english_10/semester_2/unit_09/lesson_01.lab.md) |
| `english_10_semester_2_unit_09_lesson_02` | اللغة الإنجليزية | Unit 09 - Lesson 2: Listening & Vocabulary (Surviving an Earthquake, Natural Disasters) | [المواصفة](./english_10/semester_2/unit_09/lesson_02.lab.md) |
| `english_10_semester_2_unit_09_lesson_03` | اللغة الإنجليزية | Unit 09 - Lesson 3: Grammar & Speaking (I wish / If only for regrets) | [المواصفة](./english_10/semester_2/unit_09/lesson_03.lab.md) |
| `english_10_semester_2_unit_09_lesson_04` | اللغة الإنجليزية | Unit 09 - Lesson 4: Reading (Wildlife Documentary Changed My Life) | [المواصفة](./english_10/semester_2/unit_09/lesson_04.lab.md) |
| `english_10_semester_2_unit_09_lesson_05` | اللغة الإنجليزية | Unit 09 - Lesson 5: Writing (An Article - Sustainable Homes) | [المواصفة](./english_10/semester_2/unit_09/lesson_05.lab.md) |
| `english_10_semester_2_unit_10_culture_spot` | اللغة الإنجليزية | Unit 10 - Culture Spot & Literature Spot | [المواصفة](./english_10/semester_2/unit_10/culture_spot.lab.md) |
| `english_10_semester_2_unit_10_lesson_01` | اللغة الإنجليزية | Unit 10 - Lesson 1: Grammar & Vocabulary (Modals for Speculating, Food Tastes) | [المواصفة](./english_10/semester_2/unit_10/lesson_01.lab.md) |
| `english_10_semester_2_unit_10_lesson_02` | اللغة الإنجليزية | Unit 10 - Lesson 2: Reading (Dining with a Difference!) | [المواصفة](./english_10/semester_2/unit_10/lesson_02.lab.md) |
| `english_10_semester_2_unit_10_lesson_03` | اللغة الإنجليزية | Unit 10 - Lesson 3: Speaking & Listening (Healthy Food, Comparing Photos) | [المواصفة](./english_10/semester_2/unit_10/lesson_03.lab.md) |
| `english_10_semester_2_unit_10_lesson_04` | اللغة الإنجليزية | Unit 10 - Lesson 4: Writing (A Formal Letter) | [المواصفة](./english_10/semester_2/unit_10/lesson_04.lab.md) |
| `financial_10_semester_1_unit_01_lesson_01` | الثقافة المالية | الدرس (1): المشروع وإدارته | [المواصفة](./financial_10/semester_1/unit_01/lesson_01.lab.md) |
| `financial_10_semester_1_unit_01_lesson_02` | الثقافة المالية | الدرس (2): فريق المشروع | [المواصفة](./financial_10/semester_1/unit_01/lesson_02.lab.md) |
| `financial_10_semester_1_unit_01_lesson_03` | الثقافة المالية | الدرس (3): مراحل إدارة المشروع وفريق العمل | [المواصفة](./financial_10/semester_1/unit_01/lesson_03.lab.md) |
| `financial_10_semester_1_unit_01_lesson_04` | الثقافة المالية | الدرس (4): نماذج بدء المشروع والتخطيط الزمني | [المواصفة](./financial_10/semester_1/unit_01/lesson_04.lab.md) |
| `financial_10_semester_1_unit_01_lesson_05` | الثقافة المالية | الدرس (5): مراقبة المشروع وتقييمه | [المواصفة](./financial_10/semester_1/unit_01/lesson_05.lab.md) |
| `financial_10_semester_1_unit_01_unit_test_and_project` | الثقافة المالية | اختبار نهاية الوحدة ومشروع الوحدة: إدارة المشروعات | [المواصفة](./financial_10/semester_1/unit_01/unit_test_and_project.lab.md) |
| `financial_10_semester_1_unit_02_lesson_01` | الثقافة المالية | الدرس الأول: مفهوم دراسة الجدوى الاقتصادية وأهميتها | [المواصفة](./financial_10/semester_1/unit_02/lesson_01.lab.md) |
| `financial_10_semester_1_unit_02_lesson_02` | الثقافة المالية | الدرس الثاني: خطوات إعداد دراسة الجدوى والتحليل المالي | [المواصفة](./financial_10/semester_1/unit_02/lesson_02.lab.md) |
| `financial_10_semester_1_unit_02_unit_review` | الثقافة المالية | اختبار ومراجعة الوحدة الثانية: الجدوى الاقتصادية للمشروعات | [المواصفة](./financial_10/semester_1/unit_02/unit_review.lab.md) |
| `geography_10_semester_1_unit_01_lesson_01` | الجغرافيا | الدرس الأول: الغلاف الجوي | [المواصفة](./geography_10/semester_1/unit_01/lesson_01.lab.md) |
| `geography_10_semester_1_unit_01_lesson_02` | الجغرافيا | الدرس الثاني: الغلاف الحيوي | [المواصفة](./geography_10/semester_1/unit_01/lesson_02.lab.md) |
| `geography_10_semester_1_unit_01_lesson_03` | الجغرافيا | الدرس الثالث: التنوع الحيوي | [المواصفة](./geography_10/semester_1/unit_01/lesson_03.lab.md) |
| `geography_10_semester_1_unit_01_unit_review` | الجغرافيا | مراجعة الوحدة الأولى: الجغرافيا الطبيعية | [المواصفة](./geography_10/semester_1/unit_01/unit_review.lab.md) |
| `geography_10_semester_1_unit_02_lesson_01` | الجغرافيا | الدرس الأول: مقومات السياحة | [المواصفة](./geography_10/semester_1/unit_02/lesson_01.lab.md) |
| `geography_10_semester_1_unit_02_lesson_02` | الجغرافيا | الدرس الثاني: الآثار الاقتصادية والاجتماعية للسياحة | [المواصفة](./geography_10/semester_1/unit_02/lesson_02.lab.md) |
| `geography_10_semester_1_unit_02_lesson_03` | الجغرافيا | الدرس الثالث: النقل | [المواصفة](./geography_10/semester_1/unit_02/lesson_03.lab.md) |
| `geography_10_semester_1_unit_02_unit_review` | الجغرافيا | مراجعة الوحدة الثانية: السياحة والنقل | [المواصفة](./geography_10/semester_1/unit_02/unit_review.lab.md) |
| `geography_10_semester_1_unit_03_lesson_01` | الجغرافيا | الدرس الأول: الخرائط الموضوعية | [المواصفة](./geography_10/semester_1/unit_03/lesson_01.lab.md) |
| `geography_10_semester_1_unit_03_lesson_02` | الجغرافيا | الدرس الثاني: نظم المعلومات الجغرافية | [المواصفة](./geography_10/semester_1/unit_03/lesson_02.lab.md) |
| `geography_10_semester_1_unit_03_lesson_03` | الجغرافيا | الدرس الثالث: الأقمار الصناعية وتحليل الصور الفضائية | [المواصفة](./geography_10/semester_1/unit_03/lesson_03.lab.md) |
| `geography_10_semester_1_unit_03_unit_review` | الجغرافيا | مراجعة الوحدة الثالثة: التقنيات الجغرافية | [المواصفة](./geography_10/semester_1/unit_03/unit_review.lab.md) |
| `geography_10_semester_2_unit_04_lesson_01` | الجغرافيا | الدرس الأول: الموارد المائية | [المواصفة](./geography_10/semester_2/unit_04/lesson_01.lab.md) |
| `geography_10_semester_2_unit_04_lesson_02` | الجغرافيا | الدرس الثاني: الموارد الزراعية | [المواصفة](./geography_10/semester_2/unit_04/lesson_02.lab.md) |
| `geography_10_semester_2_unit_04_lesson_03` | الجغرافيا | الدرس الثالث: الموارد المعدنية | [المواصفة](./geography_10/semester_2/unit_04/lesson_03.lab.md) |
| `geography_10_semester_2_unit_04_unit_review` | الجغرافيا | مراجعة الوحدة الرابعة: الموارد الطبيعية | [المواصفة](./geography_10/semester_2/unit_04/unit_review.lab.md) |
| `geography_10_semester_2_unit_05_lesson_01` | الجغرافيا | الدرس الأول: التنمية المستدامة | [المواصفة](./geography_10/semester_2/unit_05/lesson_01.lab.md) |
| `geography_10_semester_2_unit_05_lesson_02` | الجغرافيا | الدرس الثاني: مصادر الطاقة وأنواعها | [المواصفة](./geography_10/semester_2/unit_05/lesson_02.lab.md) |
| `geography_10_semester_2_unit_05_lesson_03` | الجغرافيا | الدرس الثالث: الريادة والابتكار | [المواصفة](./geography_10/semester_2/unit_05/lesson_03.lab.md) |
| `geography_10_semester_2_unit_05_unit_review` | الجغرافيا | مراجعة الوحدة الخامسة: التنمية المستدامة | [المواصفة](./geography_10/semester_2/unit_05/unit_review.lab.md) |
| `geography_10_semester_2_unit_06_lesson_01` | الجغرافيا | الدرس الأول: أمريكا الشمالية والوسطى: الملامح الطبيعية والبشرية | [المواصفة](./geography_10/semester_2/unit_06/lesson_01.lab.md) |
| `geography_10_semester_2_unit_06_lesson_02` | الجغرافيا | الدرس الثاني: أمريكا الجنوبية: الملامح الطبيعية والبشرية | [المواصفة](./geography_10/semester_2/unit_06/lesson_02.lab.md) |
| `geography_10_semester_2_unit_06_lesson_03` | الجغرافيا | الدرس الثالث: أوقيانوسيا: الملامح الطبيعية والبشرية | [المواصفة](./geography_10/semester_2/unit_06/lesson_03.lab.md) |
| `geography_10_semester_2_unit_06_unit_review` | الجغرافيا | مراجعة الوحدة السادسة: جغرافيا العالم الجديد | [المواصفة](./geography_10/semester_2/unit_06/unit_review.lab.md) |
| `history_10_semester_1_unit_01_lesson_01` | التاريخ | الدرس الأول: الإمبراطورية الفارسية: النشأة والتطور | [المواصفة](./history_10/semester_1/unit_01/lesson_01.lab.md) |
| `history_10_semester_1_unit_01_lesson_02` | التاريخ | الدرس الثاني: الدولة الساسانية (226م - 651م) | [المواصفة](./history_10/semester_1/unit_01/lesson_02.lab.md) |
| `history_10_semester_1_unit_01_lesson_03` | التاريخ | الدرس الثالث: الحكم والمؤسسات في الدولة الساسانية | [المواصفة](./history_10/semester_1/unit_01/lesson_03.lab.md) |
| `history_10_semester_1_unit_01_lesson_04` | التاريخ | الدرس الرابع: الحياة العامة في الدولة الساسانية | [المواصفة](./history_10/semester_1/unit_01/lesson_04.lab.md) |
| `history_10_semester_1_unit_01_lesson_05` | التاريخ | الدرس الخامس: علاقات الدولة الساسانية الخارجية | [المواصفة](./history_10/semester_1/unit_01/lesson_05.lab.md) |
| `history_10_semester_1_unit_01_lesson_06` | التاريخ | الدرس السادس: نهاية الدولة الساسانية | [المواصفة](./history_10/semester_1/unit_01/lesson_06.lab.md) |
| `history_10_semester_1_unit_01_unit_review` | التاريخ | مراجعة الوحدة الأولى: الإمبراطورية الفارسية | [المواصفة](./history_10/semester_1/unit_01/unit_review.lab.md) |
| `history_10_semester_1_unit_02_lesson_01` | التاريخ | الدرس الأول: نشأة الدولة العثمانية | [المواصفة](./history_10/semester_1/unit_02/lesson_01.lab.md) |
| `history_10_semester_1_unit_02_lesson_02` | التاريخ | الدرس الثاني: فتح القسطنطينية (إسطنبول) | [المواصفة](./history_10/semester_1/unit_02/lesson_02.lab.md) |
| `history_10_semester_1_unit_02_lesson_03` | التاريخ | الدرس الثالث: الحياة العامة في الدولة العثمانية | [المواصفة](./history_10/semester_1/unit_02/lesson_03.lab.md) |
| `history_10_semester_1_unit_02_lesson_04` | التاريخ | الدرس الرابع: الوطن العربي في ظل الحكم العثماني | [المواصفة](./history_10/semester_1/unit_02/lesson_04.lab.md) |
| `history_10_semester_1_unit_02_lesson_05` | التاريخ | الدرس الخامس: الأردن في ظل الحكم العثماني | [المواصفة](./history_10/semester_1/unit_02/lesson_05.lab.md) |
| `history_10_semester_1_unit_02_lesson_06` | التاريخ | الدرس السادس: نهاية الدولة العثمانية | [المواصفة](./history_10/semester_1/unit_02/lesson_06.lab.md) |
| `history_10_semester_1_unit_02_unit_review` | التاريخ | مراجعة الوحدة الثانية: الدولة العثمانية | [المواصفة](./history_10/semester_1/unit_02/unit_review.lab.md) |
| `history_10_semester_2_unit_03_lesson_01` | التاريخ | الدرس الأول: الثورة الصناعية | [المواصفة](./history_10/semester_2/unit_03/lesson_01.lab.md) |
| `history_10_semester_2_unit_03_lesson_02` | التاريخ | الدرس الثاني: إنجازات الثورة الصناعية | [المواصفة](./history_10/semester_2/unit_03/lesson_02.lab.md) |
| `history_10_semester_2_unit_03_lesson_03` | التاريخ | الدرس الثالث: الثورة الأمريكية | [المواصفة](./history_10/semester_2/unit_03/lesson_03.lab.md) |
| `history_10_semester_2_unit_03_lesson_04` | التاريخ | الدرس الرابع: مراحل الثورة الأمريكية | [المواصفة](./history_10/semester_2/unit_03/lesson_04.lab.md) |
| `history_10_semester_2_unit_03_lesson_05` | التاريخ | الدرس الخامس: الثورة الفرنسية | [المواصفة](./history_10/semester_2/unit_03/lesson_05.lab.md) |
| `history_10_semester_2_unit_03_lesson_06` | التاريخ | الدرس السادس: نتائج الثورة الفرنسية | [المواصفة](./history_10/semester_2/unit_03/lesson_06.lab.md) |
| `history_10_semester_2_unit_03_lesson_07` | التاريخ | الدرس السابع: الثورة الروسية | [المواصفة](./history_10/semester_2/unit_03/lesson_07.lab.md) |
| `history_10_semester_2_unit_03_lesson_08` | التاريخ | الدرس الثامن: العالم في القرن العشرين | [المواصفة](./history_10/semester_2/unit_03/lesson_08.lab.md) |
| `history_10_semester_2_unit_03_unit_review` | التاريخ | مراجعة الوحدة الثالثة: ثورات غيرت العالم الحديث | [المواصفة](./history_10/semester_2/unit_03/unit_review.lab.md) |
| `history_10_semester_2_unit_04_lesson_01` | التاريخ | الدرس الأول: محمد علي باشا (1769م - 1849م) | [المواصفة](./history_10/semester_2/unit_04/lesson_01.lab.md) |
| `history_10_semester_2_unit_04_lesson_02` | التاريخ | الدرس الثاني: المهاتما غاندي (1869م - 1948م) | [المواصفة](./history_10/semester_2/unit_04/lesson_02.lab.md) |
| `history_10_semester_2_unit_04_lesson_03` | التاريخ | الدرس الثالث: زيغريد هونكه (1913م - 1999م) | [المواصفة](./history_10/semester_2/unit_04/lesson_03.lab.md) |
| `history_10_semester_2_unit_04_unit_review` | التاريخ | مراجعة الوحدة الرابعة: شخصيات من التاريخ | [المواصفة](./history_10/semester_2/unit_04/unit_review.lab.md) |
| `islamic_10_semester_1_unit_01_lesson_01` | التربية الإسلامية | الدرس 1: واجب المسلم تجاه القرآن الكريم (تلاوته وتدبره والعمل به) | [المواصفة](./islamic_10/semester_1/unit_01/lesson_01.lab.md) |
| `islamic_10_semester_1_unit_01_lesson_02` | التربية الإسلامية | الدرس 2: الفقه الإسلامي: البيع وأحكامه في الإسلام | [المواصفة](./islamic_10/semester_1/unit_01/lesson_02.lab.md) |
| `islamic_10_semester_1_unit_01_lesson_03` | التربية الإسلامية | الدرس 3: معاملة النبي صلى الله عليه وسلم ليهود المدينة المنورة | [المواصفة](./islamic_10/semester_1/unit_01/lesson_03.lab.md) |
| `islamic_10_semester_1_unit_02_lesson_01` | التربية الإسلامية | الدرس الأول: الربا وأنواعه وأحكامه في الشريعة الإسلامية | [المواصفة](./islamic_10/semester_1/unit_02/lesson_01.lab.md) |
| `islamic_10_semester_1_unit_02_lesson_02` | التربية الإسلامية | الدرس الثاني: الصرف والقرض في الفقه الإسلامي | [المواصفة](./islamic_10/semester_1/unit_02/lesson_02.lab.md) |
| `islamic_10_semester_1_unit_02_lesson_03` | التربية الإسلامية | الدرس الثالث: الشركات المالية الحديثة وضوابطها الشرعية | [المواصفة](./islamic_10/semester_1/unit_02/lesson_03.lab.md) |
| `islamic_10_semester_1_unit_03_lesson_01` | التربية الإسلامية | الدرس الأول: وثيقة المدينة المنورة ودولة المواطنة والتعايش | [المواصفة](./islamic_10/semester_1/unit_03/lesson_01.lab.md) |
| `islamic_10_semester_1_unit_03_lesson_02` | التربية الإسلامية | الدرس الثاني: غزوة مؤتة والدروس القيادية والعسكرية | [المواصفة](./islamic_10/semester_1/unit_03/lesson_02.lab.md) |
| `islamic_10_semester_1_unit_03_lesson_03` | التربية الإسلامية | الدرس الثالث: منجزات الحضارة الإسلامية في العلوم والترجمة | [المواصفة](./islamic_10/semester_1/unit_03/lesson_03.lab.md) |
| `islamic_10_semester_1_unit_04_lesson_01` | التربية الإسلامية | الدرس الأول: خلق الحياء والعفة في السلوك الفردي والجماعي | [المواصفة](./islamic_10/semester_1/unit_04/lesson_01.lab.md) |
| `islamic_10_semester_1_unit_04_lesson_02` | التربية الإسلامية | الدرس الثاني: صلة الأرحام وحقوق الجوار والمسؤولية الأسرية | [المواصفة](./islamic_10/semester_1/unit_04/lesson_02.lab.md) |
| `islamic_10_semester_1_unit_04_lesson_03` | التربية الإسلامية | الدرس الثالث: ترشيد الاستهلاك وحماية البيئة في المنظور الإسلامي | [المواصفة](./islamic_10/semester_1/unit_04/lesson_03.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_01` | التربية الإسلامية | الدرس 1: سورة آل عمران: الآيات الكريمة (189-195) | [المواصفة](./islamic_10/semester_2/unit_01/lesson_01.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_02` | التربية الإسلامية | الدرس 2: صلح الحديبية | [المواصفة](./islamic_10/semester_2/unit_01/lesson_02.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_03` | التربية الإسلامية | الدرس 3: الخرافة وموقف الإسلام منها | [المواصفة](./islamic_10/semester_2/unit_01/lesson_03.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_04` | التربية الإسلامية | الدرس 4: الحكم الشرعي التكليفي وأقسامه | [المواصفة](./islamic_10/semester_2/unit_01/lesson_04.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_05` | التربية الإسلامية | الدرس 5: من أنواع الوقف الاختياري الجائز (الوقف الحسن) | [المواصفة](./islamic_10/semester_2/unit_01/lesson_05.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_06` | التربية الإسلامية | الدرس 6: الإجارة وأحكامها في الفقه الإسلامي | [المواصفة](./islamic_10/semester_2/unit_01/lesson_06.lab.md) |
| `islamic_10_semester_2_unit_01_lesson_07` | التربية الإسلامية | الدرس 7: دور القوات المسلحة الأردنية في الدفاع عن فلسطين ومقدساتها | [المواصفة](./islamic_10/semester_2/unit_01/lesson_07.lab.md) |
| `islamic_10_semester_2_unit_02_lesson_01` | التربية الإسلامية | الدرس 1: سورة الغاشية | [المواصفة](./islamic_10/semester_2/unit_02/lesson_01.lab.md) |
| `islamic_10_semester_2_unit_02_lesson_02` | التربية الإسلامية | الدرس 2: صحيح الإمام مسلم رحمه الله | [المواصفة](./islamic_10/semester_2/unit_02/lesson_02.lab.md) |
| `islamic_10_semester_2_unit_02_lesson_03` | التربية الإسلامية | الدرس 3: من خصائص الشريعة الإسلامية: المرونة | [المواصفة](./islamic_10/semester_2/unit_02/lesson_03.lab.md) |
| `islamic_10_semester_2_unit_02_lesson_04` | التربية الإسلامية | الدرس 4: الوقف الاختياري غير الجائز (الوقف القبيح) | [المواصفة](./islamic_10/semester_2/unit_02/lesson_04.lab.md) |
| `islamic_10_semester_2_unit_02_lesson_05` | التربية الإسلامية | الدرس 5: الإعارة وأحكامها في الفقه الإسلامي | [المواصفة](./islamic_10/semester_2/unit_02/lesson_05.lab.md) |
| `islamic_10_semester_2_unit_02_lesson_06` | التربية الإسلامية | الدرس 6: الإسلام والفن | [المواصفة](./islamic_10/semester_2/unit_02/lesson_06.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_01` | التربية الإسلامية | الدرس 1: حق المواطنة | [المواصفة](./islamic_10/semester_2/unit_03/lesson_01.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_02` | التربية الإسلامية | الدرس 2: المحافظة على الموارد البيئية | [المواصفة](./islamic_10/semester_2/unit_03/lesson_02.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_03` | التربية الإسلامية | الدرس 3: التبرع بالأعضاء | [المواصفة](./islamic_10/semester_2/unit_03/lesson_03.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_04` | التربية الإسلامية | الدرس 4: الوقف وأحكامه في الفقه الإسلامي | [المواصفة](./islamic_10/semester_2/unit_03/lesson_04.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_05` | التربية الإسلامية | الدرس 5: الإيمان والعمل | [المواصفة](./islamic_10/semester_2/unit_03/lesson_05.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_06` | التربية الإسلامية | الدرس 6: تطبيقات على أحكام وقف التلاوة في القرآن الكريم (1) | [المواصفة](./islamic_10/semester_2/unit_03/lesson_06.lab.md) |
| `islamic_10_semester_2_unit_03_lesson_07` | التربية الإسلامية | الدرس 7: من روائع حضارتنا: المنجزات العلمية | [المواصفة](./islamic_10/semester_2/unit_03/lesson_07.lab.md) |
| `islamic_10_semester_2_unit_04_lesson_01` | التربية الإسلامية | الدرس 1: سورة النساء: الآيتان الكريمتان (58-59) | [المواصفة](./islamic_10/semester_2/unit_04/lesson_01.lab.md) |
| `islamic_10_semester_2_unit_04_lesson_02` | التربية الإسلامية | الدرس 2: الحديث الشريف: سبعة يظلهم الله في ظله | [المواصفة](./islamic_10/semester_2/unit_04/lesson_02.lab.md) |
| `islamic_10_semester_2_unit_04_lesson_03` | التربية الإسلامية | الدرس 3: اللباس والزينة في الإسلام | [المواصفة](./islamic_10/semester_2/unit_04/lesson_03.lab.md) |
| `islamic_10_semester_2_unit_04_lesson_04` | التربية الإسلامية | الدرس 4: تطبيقات على أحكام وقف التلاوة في القرآن الكريم (2) | [المواصفة](./islamic_10/semester_2/unit_04/lesson_04.lab.md) |
| `islamic_10_semester_2_unit_04_lesson_05` | التربية الإسلامية | الدرس 5: الوديعة وأحكامها في الفقه الإسلامي | [المواصفة](./islamic_10/semester_2/unit_04/lesson_05.lab.md) |
| `islamic_10_semester_2_unit_04_lesson_06` | التربية الإسلامية | الدرس 6: الصحابي الجليل أبو عبيدة عامر بن الجراح رضي الله عنه | [المواصفة](./islamic_10/semester_2/unit_04/lesson_06.lab.md) |
| `math_10_semester_1_unit_01_geogebra_lab` | الرياضيات | معملُ برمجيةِ جيوجبرا: حلُّ أنظمةِ المعادلاتِ بيانياً (Solving Systems of Equations Graphically) | [المواصفة](./math_10/semester_1/unit_01/geogebra_lab.lab.md) |
| `math_10_semester_1_unit_01_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: أنظمة المعادلات في حياتنا | [المواصفة](./math_10/semester_1/unit_01/intro_and_project.lab.md) |
| `math_10_semester_1_unit_01_lesson_01` | الرياضيات | الدرس 1: حلُّ معادلاتٍ خاصّةٍ (Solving Special Equations) | [المواصفة](./math_10/semester_1/unit_01/lesson_01.lab.md) |
| `math_10_semester_1_unit_01_lesson_02` | الرياضيات | الدرس 2: حلُّ نظامٍ مُكوَّنٍ من معادلةٍ خطيّةٍ ومعادلةٍ تربيعيّةٍ (Solving a System of Linear and Quadratic Equations) | [المواصفة](./math_10/semester_1/unit_01/lesson_02.lab.md) |
| `math_10_semester_1_unit_01_lesson_03` | الرياضيات | الدرس 3: حلُّ نظامٍ مُكوَّنٍ من معادلتيْنِ تربيعيّتيْنِ (Solving a System of Two Quadratic Equations) | [المواصفة](./math_10/semester_1/unit_01/lesson_03.lab.md) |
| `math_10_semester_1_unit_01_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ الأولى: المعادلات | [المواصفة](./math_10/semester_1/unit_01/unit_exam.lab.md) |
| `math_10_semester_1_unit_02_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: استعمالات علمية لخصائص الدائرة | [المواصفة](./math_10/semester_1/unit_02/intro_and_project.lab.md) |
| `math_10_semester_1_unit_02_lesson_01` | الرياضيات | الدرس 1: أوتارُ الدائرةِ، وأقطارُها، ومماساتُها (Chords, Diameters and Tangents of a Circle) | [المواصفة](./math_10/semester_1/unit_02/lesson_01.lab.md) |
| `math_10_semester_1_unit_02_lesson_02` | الرياضيات | الدرس 2: الأقواسُ والقطاعاتُ الدائريّةُ (Arcs and Sectors) | [المواصفة](./math_10/semester_1/unit_02/lesson_02.lab.md) |
| `math_10_semester_1_unit_02_lesson_03` | الرياضيات | الدرس 3: الزوايا في الدائرة (Angles in a Circle) | [المواصفة](./math_10/semester_1/unit_02/lesson_03.lab.md) |
| `math_10_semester_1_unit_02_lesson_04` | الرياضيات | الدرس 4: معادلةُ الدائرةِ (Equation of a Circle) | [المواصفة](./math_10/semester_1/unit_02/lesson_04.lab.md) |
| `math_10_semester_1_unit_02_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ الثانية: الدائرة | [المواصفة](./math_10/semester_1/unit_02/unit_exam.lab.md) |
| `math_10_semester_1_unit_03_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: إنشاء نظام إحداثي جديد | [المواصفة](./math_10/semester_1/unit_03/intro_and_project.lab.md) |
| `math_10_semester_1_unit_03_lesson_01` | الرياضيات | الدرس 1: النِّسَبُ المُثلَّثيَّةُ (Trigonometric Ratios) | [المواصفة](./math_10/semester_1/unit_03/lesson_01.lab.md) |
| `math_10_semester_1_unit_03_lesson_02` | الرياضيات | الدرس 2: النِّسَبُ المُثلَّثيَّةُ للزوايا ضِمْنَ الدَّوْرَةِ الواحدةِ (Trigonometric Ratios within One Revolution) | [المواصفة](./math_10/semester_1/unit_03/lesson_02.lab.md) |
| `math_10_semester_1_unit_03_lesson_03` | الرياضيات | الدرس 3: تمثيلُ الاقتراناتِ المُثلَّثيَّةِ (Graphing Trigonometric Functions) | [المواصفة](./math_10/semester_1/unit_03/lesson_03.lab.md) |
| `math_10_semester_1_unit_03_lesson_04` | الرياضيات | الدرس 4: حَلُّ المُعادلاتِ المُثلَّثيَّةِ (Solving Trigonometric Equations) | [المواصفة](./math_10/semester_1/unit_03/lesson_04.lab.md) |
| `math_10_semester_1_unit_03_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ الثالثة: حساب المثلثات | [المواصفة](./math_10/semester_1/unit_03/unit_exam.lab.md) |
| `math_10_semester_1_unit_04_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: صنع كلينومتر واستعماله | [المواصفة](./math_10/semester_1/unit_04/intro_and_project.lab.md) |
| `math_10_semester_1_unit_04_lesson_01` | الرياضيات | الدرس 1: الاتجاهُ مِنَ الشَّمالِ (Bearings) | [المواصفة](./math_10/semester_1/unit_04/lesson_01.lab.md) |
| `math_10_semester_1_unit_04_lesson_02` | الرياضيات | الدرس 2: قانونُ الجُيوبِ (The Law of Sines) | [المواصفة](./math_10/semester_1/unit_04/lesson_02.lab.md) |
| `math_10_semester_1_unit_04_lesson_03` | الرياضيات | الدرس 3: قانونُ جُيوبِ التَّمامِ (The Law of Cosines) | [المواصفة](./math_10/semester_1/unit_04/lesson_03.lab.md) |
| `math_10_semester_1_unit_04_lesson_04` | الرياضيات | الدرس 4: استعمالُ جَيْبِ الزاويةِ لإيجادِ مِساحةِ المُثلَّثِ (Area of a Triangle Using Sine) | [المواصفة](./math_10/semester_1/unit_04/lesson_04.lab.md) |
| `math_10_semester_1_unit_04_lesson_05` | الرياضيات | الدرس 5: حَلُّ مسائلَ ثُلاثيَّةِ الأبعادِ (Solving Three-Dimensional Problems) | [المواصفة](./math_10/semester_1/unit_04/lesson_05.lab.md) |
| `math_10_semester_1_unit_04_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ الرابعة: تطبيقات المثلثات | [المواصفة](./math_10/semester_1/unit_04/unit_exam.lab.md) |
| `math_10_semester_2_unit_05_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: نمذجة علاقات باستعمال كثيرات الحدود | [المواصفة](./math_10/semester_2/unit_05/intro_and_project.lab.md) |
| `math_10_semester_2_unit_05_lesson_01` | الرياضيات | الدرس 1: اقتراناتُ كثيراتِ الحدودِ (Polynomial Functions) | [المواصفة](./math_10/semester_2/unit_05/lesson_01.lab.md) |
| `math_10_semester_2_unit_05_lesson_02` | الرياضيات | الدرس 2: قسمةُ كثيراتِ الحدودِ والاقتراناتُ النسبيّةُ (Dividing Polynomials and Rational Functions) | [المواصفة](./math_10/semester_2/unit_05/lesson_02.lab.md) |
| `math_10_semester_2_unit_05_lesson_03` | الرياضيات | الدرس 3: تركيبُ الاقتراناتِ (Composition of Functions) | [المواصفة](./math_10/semester_2/unit_05/lesson_03.lab.md) |
| `math_10_semester_2_unit_05_lesson_04` | الرياضيات | الدرس 4: الاقترانُ العكسيُّ (Inverse Functions) | [المواصفة](./math_10/semester_2/unit_05/lesson_04.lab.md) |
| `math_10_semester_2_unit_05_lesson_05` | الرياضيات | الدرس 5: المتتالياتُ (Sequences) | [المواصفة](./math_10/semester_2/unit_05/lesson_05.lab.md) |
| `math_10_semester_2_unit_05_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ الخامسة: الاقترانات | [المواصفة](./math_10/semester_2/unit_05/unit_exam.lab.md) |
| `math_10_semester_2_unit_06_geogebra_lab` | الرياضيات | معملُ برمجية جيوجبرا: استكشافُ ميلِ مماس المنحنى (Exploring Slope of Tangent with GeoGebra) | [المواصفة](./math_10/semester_2/unit_06/geogebra_lab.lab.md) |
| `math_10_semester_2_unit_06_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: عمل صندوق حجمه أكبر ما يمكن | [المواصفة](./math_10/semester_2/unit_06/intro_and_project.lab.md) |
| `math_10_semester_2_unit_06_lesson_01` | الرياضيات | الدرس 1: تقديرُ ميلِ المنحنى (Estimating the Slope of a Curve) | [المواصفة](./math_10/semester_2/unit_06/lesson_01.lab.md) |
| `math_10_semester_2_unit_06_lesson_02` | الرياضيات | الدرس 2: الاشتقاقُ (Differentiation) | [المواصفة](./math_10/semester_2/unit_06/lesson_02.lab.md) |
| `math_10_semester_2_unit_06_lesson_03` | الرياضيات | الدرس 3: القِيَمُ العُظْمى والقِيَمُ الصُّغْرى (Maximum and Minimum Values) | [المواصفة](./math_10/semester_2/unit_06/lesson_03.lab.md) |
| `math_10_semester_2_unit_06_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ السادسة: المشتقات | [المواصفة](./math_10/semester_2/unit_06/unit_exam.lab.md) |
| `math_10_semester_2_unit_07_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: المتجهات في الجغرافيا | [المواصفة](./math_10/semester_2/unit_07/intro_and_project.lab.md) |
| `math_10_semester_2_unit_07_lesson_01` | الرياضيات | الدرس 1: المُتَّجَهاتُ في المستوى الإحداثيِّ (Vectors in the Coordinate Plane) | [المواصفة](./math_10/semester_2/unit_07/lesson_01.lab.md) |
| `math_10_semester_2_unit_07_lesson_02` | الرياضيات | الدرس 2: جمعُ المتجهاتِ وطرحُها (Adding and Subtracting Vectors) | [المواصفة](./math_10/semester_2/unit_07/lesson_02.lab.md) |
| `math_10_semester_2_unit_07_lesson_03` | الرياضيات | الدرس 3: الضربُ القياسيُّ (The Scalar Product) | [المواصفة](./math_10/semester_2/unit_07/lesson_03.lab.md) |
| `math_10_semester_2_unit_07_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ السابعة: المتجهات | [المواصفة](./math_10/semester_2/unit_07/unit_exam.lab.md) |
| `math_10_semester_2_unit_08_geogebra_lab` | الرياضيات | معملُ برمجية جيوجبرا: رسمُ المستقيمِ الأفضلِ مطابقةً (Line of Best Fit with GeoGebra) | [المواصفة](./math_10/semester_2/unit_08/geogebra_lab.lab.md) |
| `math_10_semester_2_unit_08_intro_and_project` | الرياضيات | مقدمة ومشروع الوحدة: مستوى الأقارب التعليمي | [المواصفة](./math_10/semester_2/unit_08/intro_and_project.lab.md) |
| `math_10_semester_2_unit_08_lesson_01` | الرياضيات | الدرس 1: أشكالُ الانتشارِ (Scatter Plots) | [المواصفة](./math_10/semester_2/unit_08/lesson_01.lab.md) |
| `math_10_semester_2_unit_08_lesson_02` | الرياضيات | الدرس 2: المُنحنى التَّكراريُّ التَّراكميُّ (Cumulative Frequency Curve) | [المواصفة](./math_10/semester_2/unit_08/lesson_02.lab.md) |
| `math_10_semester_2_unit_08_lesson_03` | الرياضيات | الدرس 3: مقاييسُ التَّشتُّتِ للجداولِ التَّكراريَّةِ ذاتِ الفئاتِ (Measures of Dispersion for Grouped Frequency Tables) | [المواصفة](./math_10/semester_2/unit_08/lesson_03.lab.md) |
| `math_10_semester_2_unit_08_lesson_04` | الرياضيات | الدرس 4: احتمالاتُ الحوادثِ المُتنافيةِ (Probability of Mutually Exclusive Events) | [المواصفة](./math_10/semester_2/unit_08/lesson_04.lab.md) |
| `math_10_semester_2_unit_08_lesson_05` | الرياضيات | الدرس 5: احتمالاتُ الحوادثِ المُستقلَّةِ والحوادثِ غيرِ المُستقلَّةِ (Probability of Independent and Dependent Events) | [المواصفة](./math_10/semester_2/unit_08/lesson_05.lab.md) |
| `math_10_semester_2_unit_08_unit_exam` | الرياضيات | اختبارُ نهايةِ الوحدةِ الثامنة: الإحصاء والاحتمالات | [المواصفة](./math_10/semester_2/unit_08/unit_exam.lab.md) |
| `physics_10_semester_1_unit_01_lesson_01` | الفيزياء | الدرس الأول: المتجهات وخصائصها وتمثيلها بيانياً | [المواصفة](./physics_10/semester_1/unit_01/lesson_01.lab.md) |
| `physics_10_semester_1_unit_01_lesson_02` | الفيزياء | الدرس الثاني: جمع المتجهات وطرحها وتحليل المتجهات | [المواصفة](./physics_10/semester_1/unit_01/lesson_02.lab.md) |
| `physics_10_semester_1_unit_01_unit_review` | الفيزياء | مراجعة واختبار الوحدة الأولى: المتجهات | [المواصفة](./physics_10/semester_1/unit_01/unit_review.lab.md) |
| `physics_10_semester_1_unit_02_lesson_01` | الفيزياء | الدرس الأول: الحركة في بعد واحد والسرعة القياسية والمتجهة | [المواصفة](./physics_10/semester_1/unit_02/lesson_01.lab.md) |
| `physics_10_semester_1_unit_02_lesson_02` | الفيزياء | الدرس الثاني: الحركة في بعدين وحركة المقذوفات | [المواصفة](./physics_10/semester_1/unit_02/lesson_02.lab.md) |
| `physics_10_semester_1_unit_02_lesson_03` | الفيزياء | الدرس الثالث: التسارع الثابت ومعادلات الحركة بتسارع ثابت | [المواصفة](./physics_10/semester_1/unit_02/lesson_03.lab.md) |
| `physics_10_semester_1_unit_02_unit_review` | الفيزياء | مراجعة واختبار الوحدة الثانية: الحركة | [المواصفة](./physics_10/semester_1/unit_02/unit_review.lab.md) |
| `physics_10_semester_1_unit_03_lesson_01` | الفيزياء | الدرس الأول: مفهوم القوة والقانون الأول لنيوتن والقصور الذاتي | [المواصفة](./physics_10/semester_1/unit_03/lesson_01.lab.md) |
| `physics_10_semester_1_unit_03_lesson_02` | الفيزياء | الدرس الثاني: القانون الثاني لنيوتن والقوة المحصلة والتسارع | [المواصفة](./physics_10/semester_1/unit_03/lesson_02.lab.md) |
| `physics_10_semester_2_unit_04_lesson_01` | الفيزياء | الدرس الأول: الوزن والقوة العمودية | [المواصفة](./physics_10/semester_2/unit_04/lesson_01.lab.md) |
| `physics_10_semester_2_unit_04_lesson_02` | الفيزياء | الدرس الثاني: تطبيقات على القوى (قوة الشد، الاحتكاك، والمستوى المائل) | [المواصفة](./physics_10/semester_2/unit_04/lesson_02.lab.md) |
| `physics_10_semester_2_unit_04_lesson_03` | الفيزياء | الدرس الثالث: القوة المركزية والحركة الدائرية المنتظمة | [المواصفة](./physics_10/semester_2/unit_04/lesson_03.lab.md) |
| `physics_10_semester_2_unit_04_unit_review` | الفيزياء | مراجعة واختبار الوحدة الرابعة: تطبيقات على قوانين نيوتن | [المواصفة](./physics_10/semester_2/unit_04/unit_review.lab.md) |
| `physics_10_semester_2_unit_05_lesson_01` | الفيزياء | الدرس الأول: الموائع الساكنة (ضغط المائع وقاعدة باسكال وقاعدة أرخميدس) | [المواصفة](./physics_10/semester_2/unit_05/lesson_01.lab.md) |
| `physics_10_semester_2_unit_05_lesson_02` | الفيزياء | الدرس الثاني: الموائع المتحركة (معادلة الاستمرارية ومعادلة برنولي وتطبيقاتها) | [المواصفة](./physics_10/semester_2/unit_05/lesson_02.lab.md) |
| `physics_10_semester_2_unit_05_unit_review` | الفيزياء | مراجعة واختبار الوحدة الخامسة: الموائع | [المواصفة](./physics_10/semester_2/unit_05/unit_review.lab.md) |
| `physics_10_semester_2_unit_06_lesson_01` | الفيزياء | الدرس الأول: الموجات وصفاتها وأنواعها (الموجات المستعرضة والطولية) | [المواصفة](./physics_10/semester_2/unit_06/lesson_01.lab.md) |
| `physics_10_semester_2_unit_06_lesson_02` | الفيزياء | الدرس الثاني: خصائص الموجات (الانعكاس، الانكسار، التداخل، والحيود) | [المواصفة](./physics_10/semester_2/unit_06/lesson_02.lab.md) |
| `physics_10_semester_2_unit_06_unit_review` | الفيزياء | مراجعة واختبار الوحدة السادسة: الحركة الموجية | [المواصفة](./physics_10/semester_2/unit_06/unit_review.lab.md) |
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_01_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_1/unit_01/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ (قصة كعب بن مالك رضي الله عنه)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_01_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_01/lesson_01.md`
- صفحات المصدر المسجلة: 8, 9
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ (قصة كعب بن مالك رضي الله عنه)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_01_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_1/unit_01/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (فن الاعتذار وقيم التسامح)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_01_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_01/lesson_02.md`
- صفحات المصدر المسجلة: 10, 11, 12
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (فن الاعتذار وقيم التسامح)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_01_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_1/unit_01/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (سينية البحتري في الاعتذار)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_01_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_01/lesson_03.md`
- صفحات المصدر المسجلة: 13, 14, 15, 16, 17, 18, 19, 20, 21
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (سينية البحتري في الاعتذار)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_01_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_1/unit_01/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (كتابة رسالة اعتذار وتسامح)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_01_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_01/lesson_04.md`
- صفحات المصدر المسجلة: 22, 23, 24
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (كتابة رسالة اعتذار وتسامح)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_01_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_1/unit_01/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): أسلوبُ الشَّرطِ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_01_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_01/lesson_05.md`
- صفحات المصدر المسجلة: 25, 26, 27, 28
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): أسلوبُ الشَّرطِ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_01_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_1/unit_01/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): الأسلوبُ الخَبَريُّ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_01_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_01/lesson_06.md`
- صفحات المصدر المسجلة: 29, 30, 31
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): الأسلوبُ الخَبَريُّ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_02_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_1/unit_02/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_02_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_02/lesson_01.md`
- صفحات المصدر المسجلة: 34, 35, 36, 37
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_02_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_1/unit_02/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (العرض التقديمي)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_02_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_02/lesson_02.md`
- صفحات المصدر المسجلة: 38
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (العرض التقديمي)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_02_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_1/unit_02/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (إلى الصامدين غرب النهر)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_02_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_02/lesson_03.md`
- صفحات المصدر المسجلة: 39, 40, 41, 42, 43, 44, 45
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (إلى الصامدين غرب النهر)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_02_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_1/unit_02/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (تحليل النص الشعري)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_02_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_02/lesson_04.md`
- صفحات المصدر المسجلة: 46, 47, 48, 49
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (تحليل النص الشعري)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_02_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_1/unit_02/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): أسلوبُ النِّداءِ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_02_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_02/lesson_05.md`
- صفحات المصدر المسجلة: 50, 51, 52, 53, 54, 55
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): أسلوبُ النِّداءِ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_02_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_1/unit_02/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): الأسلوبُ الإنشائيُّ (الإنشاء الطلبي)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_02_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_02/lesson_06.md`
- صفحات المصدر المسجلة: 56, 57, 58, 59
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): الأسلوبُ الإنشائيُّ (الإنشاء الطلبي)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_03_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_1/unit_03/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_03_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_03/lesson_01.md`
- صفحات المصدر المسجلة: 62, 63, 64
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_03_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_1/unit_03/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (قراءة الصورة)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_03_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_03/lesson_02.md`
- صفحات المصدر المسجلة: 65, 66
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (قراءة الصورة)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_03_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_1/unit_03/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (اللغة الأم)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_03_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_03/lesson_03.md`
- صفحات المصدر المسجلة: 67, 68, 69, 70, 71, 72, 73, 74
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (اللغة الأم)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_03_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_1/unit_03/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (تحليل لوحة فنية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_03_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_03/lesson_04.md`
- صفحات المصدر المسجلة: 75, 76, 77, 78
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (تحليل لوحة فنية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_03_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_1/unit_03/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): معاني الأفعال المزيدة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_03_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_03/lesson_05.md`
- صفحات المصدر المسجلة: 79, 80, 81, 82, 83, 84, 85
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): معاني الأفعال المزيدة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_03_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_1/unit_03/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): الأسلوب الإنشائي غير الطلبي
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_03_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_03/lesson_06.md`
- صفحات المصدر المسجلة: 86, 87, 88, 89
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): الأسلوب الإنشائي غير الطلبي
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_04_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_04
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_1/unit_04/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_04_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_04/lesson_01.md`
- صفحات المصدر المسجلة: 92, 93, 94
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_04_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_04
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_1/unit_04/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (كيف أقدم شخصية أدبية؟)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_04_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_04/lesson_02.md`
- صفحات المصدر المسجلة: 95, 96
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (كيف أقدم شخصية أدبية؟)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_04_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_04
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_1/unit_04/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (شغف القراءة وحكايات أخرى)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_04_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_04/lesson_03.md`
- صفحات المصدر المسجلة: 97, 98, 99, 100, 101, 102, 103
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (شغف القراءة وحكايات أخرى)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_04_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_04
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_1/unit_04/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (صفحة أولى من سيرتي الذاتية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_04_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_04/lesson_04.md`
- صفحات المصدر المسجلة: 104, 105, 106
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (صفحة أولى من سيرتي الذاتية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_04_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_04
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_1/unit_04/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): مصادر الأفعال الثلاثية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_04_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_04/lesson_05.md`
- صفحات المصدر المسجلة: 107, 108, 109, 110, 111, 112
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): مصادر الأفعال الثلاثية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_04_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_04
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_1/unit_04/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_04_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_04/lesson_06.md`
- صفحات المصدر المسجلة: 113, 114, 115
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_05_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_05
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_1/unit_05/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_05_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_05/lesson_01.md`
- صفحات المصدر المسجلة: 118, 119, 120, 121
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_05_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_05
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_1/unit_05/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (قراءة المشاعر)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_05_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_05/lesson_02.md`
- صفحات المصدر المسجلة: 122, 123, 124
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (قراءة المشاعر)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_05_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_05
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_1/unit_05/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (بم التعلل لا أهل ولا وطن)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_05_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_05/lesson_03.md`
- صفحات المصدر المسجلة: 125, 126, 127, 128, 129, 130, 131
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (بم التعلل لا أهل ولا وطن)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_05_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_05
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_1/unit_05/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (نص إخباري عن مناسبة أممية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_05_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_05/lesson_04.md`
- صفحات المصدر المسجلة: 132, 133, 134
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (نص إخباري عن مناسبة أممية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_05_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_05
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_1/unit_05/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): مصادر الأفعال غير الثلاثية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_05_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_05/lesson_05.md`
- صفحات المصدر المسجلة: 135, 136, 137, 138, 139, 140
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): مصادر الأفعال غير الثلاثية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_1_unit_05_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_1
unit_key: unit_05
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_1/unit_05/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_1_unit_05_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_1/unit_05/lesson_06.md`
- صفحات المصدر المسجلة: 141, 142
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_06_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_06
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_2/unit_06/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_06_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_06/lesson_01.md`
- صفحات المصدر المسجلة: 10, 11, 12
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_06_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_06
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_2/unit_06/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (المناقشة الجماعية الحرة)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_06_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_06/lesson_02.md`
- صفحات المصدر المسجلة: 13, 14, 15, 16, 17
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (المناقشة الجماعية الحرة)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_06_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_06
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_2/unit_06/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (سينية أحمد شوقي في الحنين للوطن)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_06_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_06/lesson_03.md`
- صفحات المصدر المسجلة: 18, 19, 20
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (سينية أحمد شوقي في الحنين للوطن)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_06_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_06
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_2/unit_06/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (مقال تحليلي عن تجربة شعورية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_06_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_06/lesson_04.md`
- صفحات المصدر المسجلة: 21, 22, 23, 24
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (مقال تحليلي عن تجربة شعورية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_06_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_06
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_2/unit_06/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): الممنوع من الصرف
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_06_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_06/lesson_05.md`
- صفحات المصدر المسجلة: 25, 26, 27
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): الممنوع من الصرف
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_06_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_06
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_2/unit_06/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): نوعا التشبيه: المؤكد المفصل والمؤكد المجمل
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_06_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_06/lesson_06.md`
- صفحات المصدر المسجلة: 28, 29
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): نوعا التشبيه: المؤكد المفصل والمؤكد المجمل
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_07_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_07
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_2/unit_07/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_07_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_07/lesson_01.md`
- صفحات المصدر المسجلة: 30, 31, 32
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_07_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_07
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_2/unit_07/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (فن المناظرة وأدوار المتحدثين)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_07_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_07/lesson_02.md`
- صفحات المصدر المسجلة: 33, 34, 35
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (فن المناظرة وأدوار المتحدثين)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_07_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_07
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_2/unit_07/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (عصر المعلومات بعد الإنترنت: قضية إشكالية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_07_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_07/lesson_03.md`
- صفحات المصدر المسجلة: 36, 37, 38, 39, 40, 41
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (عصر المعلومات بعد الإنترنت: قضية إشكالية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_07_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_07
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_2/unit_07/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (النص الجدلي)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_07_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_07/lesson_04.md`
- صفحات المصدر المسجلة: 42, 43, 44, 45
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (النص الجدلي)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_07_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_07
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_2/unit_07/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): تمييز الذات
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_07_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_07/lesson_05.md`
- صفحات المصدر المسجلة: 46, 47, 48, 49, 50
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): تمييز الذات
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_07_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_07
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_2/unit_07/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): صيغة المبالغة والصفة المشبهة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_07_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_07/lesson_06.md`
- صفحات المصدر المسجلة: 51, 52, 53, 54, 55
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): صيغة المبالغة والصفة المشبهة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_08_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_08
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_2/unit_08/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_08_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_08/lesson_01.md`
- صفحات المصدر المسجلة: 56, 57, 58
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_08_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_08
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_2/unit_08/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (إدارة الندوة)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_08_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_08/lesson_02.md`
- صفحات المصدر المسجلة: 59, 60, 61
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (إدارة الندوة)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_08_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_08
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_2/unit_08/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (مقطوعات من الغزل العذري)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_08_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_08/lesson_03.md`
- صفحات المصدر المسجلة: 62, 63, 64, 65, 66, 67, 68, 69
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (مقطوعات من الغزل العذري)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_08_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_08
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_2/unit_08/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (إعداد مخطط مبادرة تطوعية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_08_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_08/lesson_04.md`
- صفحات المصدر المسجلة: 70, 71, 72, 73
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (إعداد مخطط مبادرة تطوعية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_08_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_08
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_2/unit_08/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): تثنية الاسم المقصور والمنقوص والممدود وجمعه
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_08_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_08/lesson_05.md`
- صفحات المصدر المسجلة: 74, 75, 76, 77
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): تثنية الاسم المقصور والمنقوص والممدود وجمعه
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_08_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_08
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_2/unit_08/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها (بحر الهزج)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_08_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_08/lesson_06.md`
- صفحات المصدر المسجلة: 78, 79, 80, 81, 82, 83
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها (بحر الهزج)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_09_lesson_01
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_09
lesson_key: lesson_01
source_markdown: grade_10/arabic_10/semester_2/unit_09/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_09_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_09/lesson_01.md`
- صفحات المصدر المسجلة: 84, 85, 86, 87
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: أستمعُ بانتباهٍ وتركيزٍ
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_09_lesson_02
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_09
lesson_key: lesson_02
source_markdown: grade_10/arabic_10/semester_2/unit_09/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: أتحدثُ بطالقةٍ (العرض الشفوي لقصة نجاح)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_09_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_09/lesson_02.md`
- صفحات المصدر المسجلة: 88, 89, 90
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: أتحدثُ بطالقةٍ (العرض الشفوي لقصة نجاح)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_09_lesson_03
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_09
lesson_key: lesson_03
source_markdown: grade_10/arabic_10/semester_2/unit_09/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (المفكر العربي إدوارد سعيد)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_09_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_09/lesson_03.md`
- صفحات المصدر المسجلة: 91, 92, 93, 94, 95, 96
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: أقرأُ بطالقةٍ وفهمٍ (المفكر العربي إدوارد سعيد)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_09_lesson_04
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_09
lesson_key: lesson_04
source_markdown: grade_10/arabic_10/semester_2/unit_09/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: أكتبُ محتوى (تقرير علمي عن شخصية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_09_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_09/lesson_04.md`
- صفحات المصدر المسجلة: 97, 98, 99, 100
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: أكتبُ محتوى (تقرير علمي عن شخصية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_09_lesson_05
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_09
lesson_key: lesson_05
source_markdown: grade_10/arabic_10/semester_2/unit_09/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: أبني لغتي (1): الأفعال المتعدية إلى مفعولين
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_09_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_09/lesson_05.md`
- صفحات المصدر المسجلة: 101, 102, 103, 104, 105
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: أبني لغتي (1): الأفعال المتعدية إلى مفعولين
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: arabic_10_semester_2_unit_09_lesson_06
grade_key: grade_10
subject_key: arabic_10
semester_key: semester_2
unit_key: unit_09
lesson_key: lesson_06
source_markdown: grade_10/arabic_10/semester_2/unit_09/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها (بحر المتقارب)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: اللغة العربية
- هوية الدرس: `arabic_10_semester_2_unit_09_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/arabic_10/semester_2/unit_09/lesson_06.md`
- صفحات المصدر المسجلة: 106, 107, 108, 109, 110
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: أبني لغتي (2): موسيقا لغتي وإيقاعها (بحر المتقارب)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مسرح نصي تفاعلي يفكك البنية والمعنى والإيقاع بصرياً.
- **حلقة اللعب:** رتّب عناصر النص أو اللغة واستدل على العلاقة.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_01_lesson_01
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_01
source_markdown: grade_10/biology_10/semester_1/unit_01/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: النقل عبر الغشاء البلازمي والخاصية الأسموزية والانتشار
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_01_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_01/lesson_01.md`
- صفحات المصدر المسجلة: 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: النقل عبر الغشاء البلازمي والخاصية الأسموزية والانتشار
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_01_unit_review
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_01
lesson_key: unit_review
source_markdown: grade_10/biology_10/semester_1/unit_01/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الأولى: أنشطة الخلية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_01_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_01/unit_review.md`
- صفحات المصدر المسجلة: 18, 19
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الأولى: أنشطة الخلية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_02_lesson_01
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_01
source_markdown: grade_10/biology_10/semester_1/unit_02/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: المادة الوراثية وتضاعف الحمض النووي DNA وبناء البروتين
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_02_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_02/lesson_01.md`
- صفحات المصدر المسجلة: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: المادة الوراثية وتضاعف الحمض النووي DNA وبناء البروتين
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_02_unit_review
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_02
lesson_key: unit_review
source_markdown: grade_10/biology_10/semester_1/unit_02/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الثانية: الوراثة والبيولوجيا الجزيئية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_02_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_02/unit_review.md`
- صفحات المصدر المسجلة: 34, 35
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الثانية: الوراثة والبيولوجيا الجزيئية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_03_lesson_01
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_01
source_markdown: grade_10/biology_10/semester_1/unit_03/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 1: أسس علم التصنيف ومستوياته ونظام التسمية الثنائية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_03_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_03/lesson_01.md`
- صفحات المصدر المسجلة: 38, 39, 40, 41, 42, 43, 44
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 1: أسس علم التصنيف ومستوياته ونظام التسمية الثنائية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_03_lesson_02
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_02
source_markdown: grade_10/biology_10/semester_1/unit_03/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 2: البكتيريا والأثريات وخصائصها الحيوية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_03_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_03/lesson_02.md`
- صفحات المصدر المسجلة: 45, 46, 47, 48, 49, 50, 51, 52, 53
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 2: البكتيريا والأثريات وخصائصها الحيوية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_03_lesson_03
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_03
source_markdown: grade_10/biology_10/semester_1/unit_03/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 3: الطلائعيات وتنوعها وأهميتها البيئية والاقتصادية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_03_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_03/lesson_03.md`
- صفحات المصدر المسجلة: 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 3: الطلائعيات وتنوعها وأهميتها البيئية والاقتصادية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_03_lesson_04
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_04
source_markdown: grade_10/biology_10/semester_1/unit_03/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 4: الفطريات وتراكيبها وطرائق تغذيتها ودورها في الطبيعة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_03_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_03/lesson_04.md`
- صفحات المصدر المسجلة: 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 4: الفطريات وتراكيبها وطرائق تغذيتها ودورها في الطبيعة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_1_unit_03_unit_review
grade_key: grade_10
subject_key: biology_10
semester_key: semester_1
unit_key: unit_03
lesson_key: unit_review
source_markdown: grade_10/biology_10/semester_1/unit_03/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الثالثة: تصنيف الكائنات الحية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_1_unit_03_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_1/unit_03/unit_review.md`
- صفحات المصدر المسجلة: 76, 77, 78
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الثالثة: تصنيف الكائنات الحية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_03_lesson_05
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_05
source_markdown: grade_10/biology_10/semester_2/unit_03/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 5: النباتات اللاوعائية والنباتات الوعائية اللابذرية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_03_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_03/lesson_05.md`
- صفحات المصدر المسجلة: 10, 11, 12, 13, 14
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 5: النباتات اللاوعائية والنباتات الوعائية اللابذرية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_03_lesson_06
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_06
source_markdown: grade_10/biology_10/semester_2/unit_03/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 6: النباتات الوعائية البذرية (معراة ومغطاة البذور)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_03_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_03/lesson_06.md`
- صفحات المصدر المسجلة: 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 6: النباتات الوعائية البذرية (معراة ومغطاة البذور)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_03_lesson_07
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_07
source_markdown: grade_10/biology_10/semester_2/unit_03/lesson_07.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 7: خصائص الحيوانات وأسس تصنيف المملكة الحيوانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_03_lesson_07`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_03/lesson_07.md`
- صفحات المصدر المسجلة: 28, 29, 30, 31, 32, 33, 34
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 7: خصائص الحيوانات وأسس تصنيف المملكة الحيوانية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_03_lesson_08
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_08
source_markdown: grade_10/biology_10/semester_2/unit_03/lesson_08.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 8: اللافقاريات وخصائص قبائلها الرئيسية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_03_lesson_08`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_03/lesson_08.md`
- صفحات المصدر المسجلة: 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 8: اللافقاريات وخصائص قبائلها الرئيسية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_03_lesson_09
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_09
source_markdown: grade_10/biology_10/semester_2/unit_03/lesson_09.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 9: الفقاريات وطوائفها وتكيفاتها المعيشية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_03_lesson_09`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_03/lesson_09.md`
- صفحات المصدر المسجلة: 45, 46, 47, 48, 49, 50, 51
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 9: الفقاريات وطوائفها وتكيفاتها المعيشية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_03_unit_review
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_03
lesson_key: unit_review
source_markdown: grade_10/biology_10/semester_2/unit_03/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الثالثة: المملكة النباتية والحيوانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_03_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_03/unit_review.md`
- صفحات المصدر المسجلة: 52, 53, 54
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الثالثة: المملكة النباتية والحيوانية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_04_lesson_01
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_01
source_markdown: grade_10/biology_10/semester_2/unit_04/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 1: تدفق الطاقة ودورات المواد في الأنظمة البيئية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_04_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_04/lesson_01.md`
- صفحات المصدر المسجلة: 56, 57, 58, 59, 60, 61, 62, 63, 64
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 1: تدفق الطاقة ودورات المواد في الأنظمة البيئية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_04_lesson_02
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_02
source_markdown: grade_10/biology_10/semester_2/unit_04/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس 2: الجماعات الحيوية والعوامل المؤثرة في نموها وكثافتها
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_04_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_04/lesson_02.md`
- صفحات المصدر المسجلة: 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس 2: الجماعات الحيوية والعوامل المؤثرة في نموها وكثافتها
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: biology_10_semester_2_unit_04_unit_review
grade_key: grade_10
subject_key: biology_10
semester_key: semester_2
unit_key: unit_04
lesson_key: unit_review
source_markdown: grade_10/biology_10/semester_2/unit_04/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الرابعة: البيئة والتنوع الحيوي
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: العلوم الحياتية
- هوية الدرس: `biology_10_semester_2_unit_04_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/biology_10/semester_2/unit_04/unit_review.md`
- صفحات المصدر المسجلة: 75, 76, 77
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الرابعة: البيئة والتنوع الحيوي
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** مجهر أو نظام حيوي متحرك يوضح البنية والعلاقة والعملية.
- **حلقة اللعب:** صنّف أو شخّص أو وازن النظام الحيوي.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_01_lesson_01
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_01
source_markdown: grade_10/chemistry_10/semester_1/unit_01/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: نظرية بور لذرة الهيدروجين والطيوف الذرية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_01_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_01/lesson_01.md`
- صفحات المصدر المسجلة: 8, 9, 10, 11, 12, 13, 14, 15, 16
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: نظرية بور لذرة الهيدروجين والطيوف الذرية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_01_lesson_02
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_02
source_markdown: grade_10/chemistry_10/semester_1/unit_01/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: النموذج الميكانيكي الموجي للذرة وأفلاك الطاقة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_01_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_01/lesson_02.md`
- صفحات المصدر المسجلة: 17, 18, 19, 20, 21, 22, 23, 24
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: النموذج الميكانيكي الموجي للذرة وأفلاك الطاقة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_01_unit_review
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_01
lesson_key: unit_review
source_markdown: grade_10/chemistry_10/semester_1/unit_01/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الأولى: بنية الذرة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_01_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_01/unit_review.md`
- صفحات المصدر المسجلة: 25, 26
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الأولى: بنية الذرة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_02_lesson_01
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_01
source_markdown: grade_10/chemistry_10/semester_1/unit_02/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: قواعد التوزيع الإلكتروني للذرات والأيونات
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_02_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_02/lesson_01.md`
- صفحات المصدر المسجلة: 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: قواعد التوزيع الإلكتروني للذرات والأيونات
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_02_lesson_02
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_02
source_markdown: grade_10/chemistry_10/semester_1/unit_02/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: الخصائص الدورية للعناصر (نصف القطر، طاقة التأين، الكهروسالبية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_02_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_02/lesson_02.md`
- صفحات المصدر المسجلة: 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: الخصائص الدورية للعناصر (نصف القطر، طاقة التأين، الكهروسالبية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_02_unit_review
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_02
lesson_key: unit_review
source_markdown: grade_10/chemistry_10/semester_1/unit_02/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الثانية: التوزيع الإلكتروني والدورية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_02_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_02/unit_review.md`
- صفحات المصدر المسجلة: 49, 50
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الثانية: التوزيع الإلكتروني والدورية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_03_lesson_01
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_01
source_markdown: grade_10/chemistry_10/semester_1/unit_03/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: الروابط الكيميائية وأنواعها (الأيونية، التساهمية، والفلزية)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_03_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_03/lesson_01.md`
- صفحات المصدر المسجلة: 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: الروابط الكيميائية وأنواعها (الأيونية، التساهمية، والفلزية)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_03_lesson_02
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_03
lesson_key: lesson_02
source_markdown: grade_10/chemistry_10/semester_1/unit_03/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: الصيغ الكيميائية وخصائص المركبات وقوى التجاذب بين الجزيئات
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_03_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_03/lesson_02.md`
- صفحات المصدر المسجلة: 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: الصيغ الكيميائية وخصائص المركبات وقوى التجاذب بين الجزيئات
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_1_unit_03_unit_review
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_1
unit_key: unit_03
lesson_key: unit_review
source_markdown: grade_10/chemistry_10/semester_1/unit_03/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الثالثة: الروابط والمركبات الكيميائية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_1_unit_03_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_1/unit_03/unit_review.md`
- صفحات المصدر المسجلة: 75, 76
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الثالثة: الروابط والمركبات الكيميائية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_04_lesson_01
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_01
source_markdown: grade_10/chemistry_10/semester_2/unit_04/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: التفاعلات الكيميائية وأنواعها وموازنة المعادلات
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_04_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_04/lesson_01.md`
- صفحات المصدر المسجلة: 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: التفاعلات الكيميائية وأنواعها وموازنة المعادلات
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_04_lesson_02
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_02
source_markdown: grade_10/chemistry_10/semester_2/unit_04/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: المول والكتلة المولية والكتلة الصيغية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_04_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_04/lesson_02.md`
- صفحات المصدر المسجلة: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: المول والكتلة المولية والكتلة الصيغية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_04_lesson_03
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_03
source_markdown: grade_10/chemistry_10/semester_2/unit_04/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: الحسابات الكيميائية المبنية على المعادلات والمردود المئوي
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_04_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_04/lesson_03.md`
- صفحات المصدر المسجلة: 29, 30, 31, 32, 33, 34, 35, 36, 37, 38
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: الحسابات الكيميائية المبنية على المعادلات والمردود المئوي
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_04_unit_review
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_04
lesson_key: unit_review
source_markdown: grade_10/chemistry_10/semester_2/unit_04/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الرابعة: التفاعلات والحسابات الكيميائية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_04_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_04/unit_review.md`
- صفحات المصدر المسجلة: 39, 40
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الرابعة: التفاعلات والحسابات الكيميائية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_05_lesson_01
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_05
lesson_key: lesson_01
source_markdown: grade_10/chemistry_10/semester_2/unit_05/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: تغيرات الطاقة في التفاعلات الكيميائية (الماصة والطاردة)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_05_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_05/lesson_01.md`
- صفحات المصدر المسجلة: 42, 43, 44, 45, 46, 47, 48, 49, 50
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: تغيرات الطاقة في التفاعلات الكيميائية (الماصة والطاردة)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_05_lesson_02
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_05
lesson_key: lesson_02
source_markdown: grade_10/chemistry_10/semester_2/unit_05/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: الطاقة الممتصة والطاقة المنبعثة من التفاعلات وقانون حفظ الطاقة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_05_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_05/lesson_02.md`
- صفحات المصدر المسجلة: 51, 52, 53, 54, 55, 56, 57, 58
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: الطاقة الممتصة والطاقة المنبعثة من التفاعلات وقانون حفظ الطاقة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_05_lesson_03
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_05
lesson_key: lesson_03
source_markdown: grade_10/chemistry_10/semester_2/unit_05/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: السعة الحرارية والحرارة النوعية وحساب كمية الحرارة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_05_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_05/lesson_03.md`
- صفحات المصدر المسجلة: 59, 60, 61, 62, 63, 64, 65, 66, 67, 68
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: السعة الحرارية والحرارة النوعية وحساب كمية الحرارة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,135 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: chemistry_10_semester_2_unit_05_unit_review
grade_key: grade_10
subject_key: chemistry_10
semester_key: semester_2
unit_key: unit_05
lesson_key: unit_review
source_markdown: grade_10/chemistry_10/semester_2/unit_05/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة واختبار الوحدة الخامسة: الطاقة الكيميائية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: الكيمياء
- هوية الدرس: `chemistry_10_semester_2_unit_05_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/chemistry_10/semester_2/unit_05/unit_review.md`
- صفحات المصدر المسجلة: 69, 70
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة واختبار الوحدة الخامسة: الطاقة الكيميائية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** منضدة جزيئية/ذرية متجهية تعرض البنية والتحول والقياسات.
- **حلقة اللعب:** ركّب النموذج الصحيح ضمن قيود الدرس.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_01_lesson_01
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_01
source_markdown: grade_10/civics_10/semester_1/unit_01/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: التربية الوطنية والمدنية: المفهوم والدلالات
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_01_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_01/lesson_01.md`
- صفحات المصدر المسجلة: 8, 9, 10, 11, 12
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: التربية الوطنية والمدنية: المفهوم والدلالات
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- اقتباس ملكي سامٍ
- أولاً: التربية الوطنية والمدنية (المفهوم والأهمية)
- المقارنة بين التربية الوطنية والتربية المدنية:
- أهمية التربية الوطنية والمدنية:
- ثانيًا: أهداف التربية الوطنية والمدنية (الشكل 1)
- نشاط: أتحقّق من تعلّمي (الصفحة 9)
- ثالثًا: دلالات التربية الوطنية والمدنية وممارساتها (الشكل 2)
- نشاط: أُبدي رأيي (الصفحة 10)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_01_lesson_02
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_02
source_markdown: grade_10/civics_10/semester_1/unit_01/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: هويتي الأردنية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_01_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_01/lesson_02.md`
- صفحات المصدر المسجلة: 13, 14, 15, 16, 17, 18
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: هويتي الأردنية
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- اقتباس ملكي سامٍ
- المبادئ التاريخية لتأسيس الأردن
- أولاً: أبعاد ومضامين أن أكونَ أردنيًا
- ثانياً: عناصر الهوية الأردنية وأثر التنوع
- عناصر وركائز الهوية الوطنية الأردنية:
- أثر التنوّع في المجتمع الأردني:
- ثالثاً: العيش المشترك والوحدة الوطنية
- أسس سياسة الدولة الأردنية في ترسيخ العيش المشترك:
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_01_lesson_03
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_03
source_markdown: grade_10/civics_10/semester_1/unit_01/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: المواطنة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_01_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_01/lesson_03.md`
- صفحات المصدر المسجلة: 19, 20, 21, 22, 23, 24, 25, 26
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: المواطنة
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- مقولة الدرس
- أولاً: العلاقة بين المواطن والدولة
- نشاط: الحقوق وما يقابلها من واجبات ومسؤوليات (صفحة 21)
- ثانياً: أبعاد المواطنة ومجالاتها
- 1. البُعد القانوني للمواطنة:
- 2. البُعد السياسي للمواطنة:
- 3. البُعد الاجتماعي للمواطنة:
- ثالثاً: قيم المواطنة الفاعلة (الشكل 3)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_01_lesson_04
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_04
source_markdown: grade_10/civics_10/semester_1/unit_01/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: الديمقراطية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_01_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_01/lesson_04.md`
- صفحات المصدر المسجلة: 27, 28, 29, 30, 31, 32
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: الديمقراطية
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- الموقف الدولي والديمقراطية (الأمم المتحدة)
- أولاً: مفهوم الديمقراطية وقواعد الأغلبية والأقلية
- أنواع الأغلبية في نظم التصويت الانتخابي:
- ثانياً: ممارسة الديمقراطية في الأسرة والمدرسة
- ثالثاً: السلطة التشريعية ومجلس النواب في الأردن
- مهام واختصاصات مجلس النواب:
- أهمية المشاركة الواعية في الاقتراع:
- رابعاً: الدستور الأردني والضمانات الديمقراطية
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_01_lesson_05
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_05
source_markdown: grade_10/civics_10/semester_1/unit_01/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: خدمة العلم
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_01_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_01/lesson_05.md`
- صفحات المصدر المسجلة: 33, 34, 35, 36, 37, 38, 39, 40, 41
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: خدمة العلم
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- اقتباس ملكي سامٍ
- أولاً: تطوّر القوات المسلحة الأردنية - الجيش العربي
- ثانياً: التطور التاريخي لتشريعات خدمة العلم في الأردن
- أسباب وقف التجنيد الإلزامي عام 1991م:
- ثالثاً: الرؤية الملكية الحديثة لبرنامج خدمة العلم الجديد (2025م - 2026م)
- الأهداف العشرة الرئيسة لبرنامج خدمة العلم:
- رابعاً: المسارات التنفيذية وإجراءات الالتحاق بالبرنامج
- مسارات البرنامج:
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,141 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_01_unit_review
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_01
lesson_key: unit_review
source_markdown: grade_10/civics_10/semester_1/unit_01/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة الوحدة الأولى: التربية الوطنية والمدنية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_01_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_01/unit_review.md`
- صفحات المصدر المسجلة: 42, 43
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة الوحدة الأولى: التربية الوطنية والمدنية
- بطاقة المراجعة
- 1. التفسير والتحليل (أفسّرُ كلًا ممّا يأتي)
- 2. المفاهيم والمصطلحات الأساسية للوحدة
- 3. أسئلة الاختيار من متعدد الرسمية (صفحة 42)
- 4. نشاط تطبيقي: كلمة في مؤتمر طلابي عن الهوية الأردنية
- 5. التقويم الذاتي للوحدة الأولى (صفحة 43)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_02_lesson_01
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_01
source_markdown: grade_10/civics_10/semester_1/unit_02/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: الدستور الأردني وسيادة القانون
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_02_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_02/lesson_01.md`
- صفحات المصدر المسجلة: 46, 47, 48, 49, 50, 51, 52, 53, 54
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: الدستور الأردني وسيادة القانون
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- مهارات التعلّم
- المرتكز الدستوري الأول
- أولاً: الدستور: المفهوم والأهمية
- 1. مفهوم الدستور
- 2. ظهور الدساتير وتوازن السلطات
- نشاط: أتحقّق من تعلّمي (الصفحة 46)
- ثانياً: حاجات المجتمع ودور الحكومات والسلطات (الصفحة 47)
- ماذا يحتاجُ الناسُ في أيةِ دولةٍ؟
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_02_lesson_02
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_02
source_markdown: grade_10/civics_10/semester_1/unit_02/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: المشاركة في الحياة العامة
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_02_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_02/lesson_02.md`
- صفحات المصدر المسجلة: 55, 56, 57, 58, 59
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: المشاركة في الحياة العامة
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- مهارات التعلّم
- أولاً: مفهوم المشاركة في الحياة العامة وأهميتها (الصفحة 55)
- ثانياً: مجالات المشاركة في الحياة العامة
- 1. المشاركة في البيئة المدرسية (الصفحة 55 - 56)
- 2. المجالس البرلمانية الطلابية (الصفحة 56)
- نشاط: أستنتج (الصفحة 56)
- قضية للمناقشة: تطوير أداء العمل المدرسي (الصفحة 56)
- ثالثاً: أشكال المشاركة في الحياة العامة والمجتمعية (الصفحة 57 - 58)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.
@@ -0,0 +1,145 @@
---
spec_type: curriculum_virtual_lab
spec_version: 1.0.0
status: draft_requires_academic_review
curriculum_version: jordan-grade10-2026-source-review
curriculum_lesson_id: civics_10_semester_1_unit_02_lesson_03
grade_key: grade_10
subject_key: civics_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_03
source_markdown: grade_10/civics_10/semester_1/unit_02/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: الانتخابات (أنا والصندوق)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التربية الوطنية والمدنية
- هوية الدرس: `civics_10_semester_1_unit_02_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/civics_10/semester_1/unit_02/lesson_03.md`
- صفحات المصدر المسجلة: 60, 61, 62, 63, 64, 65
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: الانتخابات (أنا والصندوق)
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- مهارات التعلّم
- أولاً: الانتخابات البرلمانية: المفهوم والأهمية (الصفحة 60)
- 1. الحق الدستوري في الانتخاب والترشح
- 2. أهمية الانتخابات في الحياة العامة:
- ثانياً: خطوات العملية الانتخابية الأربع (الصفحة 60 و62)
- ثالثاً: حوار حول ثقافة الانتخاب والمواطنة (الصفحة 61)
- رابعاً: المجالس البرلمانية الطلابية (الصفحة 62)
- نشاط: أتحقّق من تعلّمي وأفكّر (الصفحة 62)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 3. فكرة اللعبة التعليمية
- **الاستعارة البصرية:** محاكاة نظام مدني وميزان قرارات وأطراف ونتائج.
- **حلقة اللعب:** وازن الحقوق والمسؤوليات وفسّر قرارك.
- **المهمة الأولى — اكتشف:** يبدأ الطالب بمشهد واضح وتعليمة واحدة، ويتنبأ بما سيحدث قبل لمس التحكم.
- **المهمة الثانية — جرّب:** يغيّر متغيراً واحداً فقط، ويرى أثره فوراً في الرسم والقراءة والتفسير المختصر.
- **المهمة الثالثة — ابنِ:** يرتب العناصر أو يضبط القيم للوصول إلى حالة هدف مأخوذة من مفهوم الدرس.
- **المهمة الرابعة — فسّر:** يختار تفسيراً للدليل المرئي، لا تعريفاً محفوظاً.
- **المهمة الخامسة — انقل الفهم:** يواجه حالة جديدة بالقانون أو العلاقة نفسها مع قيم/سياق مختلفين.
لا توجد نقاط أو كؤوس لمجرد النقر. المكافأة البصرية تُمنح عند إظهار دليل فهم، ولا تعني إتقاناً معتمداً؛ الإتقان يُحتسب على الخادم وفق سياسة منفصلة.
## 4. المشهد المتحرك
- يرسم بالكامل عبر Flutter `CustomPainter` دون صور PNG/SVG/WebView.
- يحول كل محور في قسم «محاور الدرس» إلى طبقة مرئية قابلة للتشغيل والإيقاف.
- يعرض السبب والنتيجة في اللحظة نفسها: المتغير المتحكم، أثره في المشهد، والقراءة الرقمية بوحدتها إن وجدت.
- تبقى مساحة التجربة ظاهرة أثناء تعديل القيم. على العرض الواسع: كانفاس بمرونة 2 ولوحة تحكم 1 بعرض 320–360px. على الهاتف: كانفاس 300–340px ثم تحكم قابل للتمرير.
- الحركة مستمرة عند الحاجة فقط، ويفضل 60fps مع دعم شاشات 120Hz من دون ربط صحة الحساب بعدد الإطارات.
- عند تفعيل تقليل الحركة في النظام، تستبدل الحركة المستمرة بانتقالات قصيرة ولقطات حالة مفهومة.
## 5. نموذج الحالة والتحكم
ينشئ المطور بعد مراجعة المصدر جدول متغيرات صريحاً:
| المتغير | معناه في الدرس | النوع/الوحدة | المجال المسموح | القيمة الابتدائية | أثره المرئي |
|---|---|---|---|---|---|
| `focusParameter` | العامل الرئيس المثبت في المصدر | يحدد من الدرس | يحدد من أمثلة المصدر | حالة محايدة | يغير طبقة واحدة بوضوح |
| `comparisonParameter` | عامل المقارنة أو الحالة الثانية | يحدد من الدرس | يحدد من المصدر | مغلق | يظهر فرقاً قابلاً للتفسير |
| `timeOrStep` | الزمن أو ترتيب الخطوات عند انطباقه | ثانية/خطوة | بحسب الظاهرة | 0 | يحرك العملية دون تغيير النتيجة حسابياً |
لوحة التحكم لا تتجاوز ثلاثة عناصر أساسية في المهمة الواحدة. الخيارات المتقدمة تظهر تدريجياً بعد نجاح الطالب في اكتشاف العلاقة الأولى.
## 6. قواعد المحاكاة والدقة
- كل معادلة أو ترتيب أو علاقة سببية تُسجل هنا مع مرجع الصفحة/القسم قبل كتابتها في Dart.
- تفصل طبقة الحسابات عن `CustomPainter`، وتغطى باختبارات وحدات للقيم الحدية والحالات غير الصالحة.
- لا تستخدم عشوائية تؤثر في الإجابة إلا ببذرة محفوظة وقيم ضمن نطاق المصدر.
- لا تعرض قيماً علمية أو تاريخية أو لغوية تقريبية بوصفها دقيقة. عند غياب الدليل تعرض «يحتاج مراجعة» في بيئة التأليف فقط.
- النص والكانفاس ولوحة التحكم تتشارك الحالة نفسها؛ لا يجوز أن تخالف القراءة الرقمية الرسم.
## 7. محطات فحص الفهم
تنفذ عبر `LabCheckpointCallback` بعد ظهور الدليل للطالب، وبالترتيب التالي:
1. **توقّع:** ما الحالة المتوقعة قبل تشغيل التغيير؟ الخيارات تمثل أخطاء شائعة مثبتة أو يراجعها المعلم.
2. **استدلال:** أي دليل مرئي/عددي يثبت ما حدث؟ لا يُسأل الطالب قبل ظهور الدليل.
3. **تفسير:** لماذا تغيّرت النتيجة عند تغيير العامل المحدد؟
4. **نقل:** ماذا يحدث في حالة جديدة تستخدم المفهوم نفسه؟
لكل محطة يسجل المنفذ: `checkpoint_id`، المحور المنهجي، شرط الإطلاق، السؤال، الخيارات، الإجابة وتعليلها، مرجع الصفحة/القسم، والتلميح. لا تُرسل الإجابة الصحيحة مسبقاً إلى العميل عندما تدخل النتيجة في الإتقان.
## 8. التغذية الراجعة ومنع التخمين
- الإجابة الخاطئة لا تعيد المشهد عشوائياً؛ تضيء المتغير والدليل المرتبطين بالخطأ وتقدم تلميحاً واحداً.
- بعد محاولتين، تفكك المهمة إلى خطوة أصغر ثم تعيد حالة نقل مختلفة.
- يمنع زر «التالي» حتى يلمس الطالب المتغير المقصود ويرى الأثر، لكن يتوفر دائماً زر إعادة الضبط والخروج.
- لا تستخدم مؤثر نجاح مبالغاً فيه؛ اهتزاز خفيف وصوت اختياري وحركة قصيرة تكفي.
## 9. النظام البصري وإمكانية الوصول
- الخلفية `#07111F`، السطح `#0B1728`/`#102035`، الحدود `Colors.white10`، والتركيز الأساسي `#00F5D4` أو `#0071E3`.
- الخط من خط النظام SF Arabic/Geeza Pro؛ لا يعتمد المختبر على تنزيل خط خارجي.
- أقل هدف لمس 44×44، وتباين النص الأساسي 4.5:1، وتسمية دلالية لكل تحكم وقراءة.
- اللون ليس الدليل الوحيد: كل حالة لها شكل/رمز/نص، مع دعم RTL وترتيب قراءة صحيح لقارئ الشاشة.
- يوفر وصفاً نصياً متجدداً للمشهد للطالب الذي لا يرى الرسم، ويعلن التغيرات المهمة دون إغراق قارئ الشاشة.
## 10. بنية Flutter المطلوبة
- ملف مستقل باسم مشتق من هوية الدرس، وWidget من نوع `StatefulWidget`.
- يستخدم `SaqelLabScaffold` بعد تنقيحه ليحمل هوية الدرس وإصدار الحزمة، لا مساراً نصياً مختلقاً.
- `CustomPainter` للرسم، وطبقة domain مستقلة للحساب، وcontroller للحالة، واختبارات widget للمقاسين 390×844 و1024×768.
- التسجيل في `labs_registry.dart` يكون بمفتاح `curriculum_lesson_id` صريح وارد من الخادم فقط. ممنوع fallback حسب المبحث أو كلمات العنوان.
- المختبر غير المتاح في حزمة منشورة لا يظهر في تجربة الطالب؛ يمكن معاينته فقط في بيئة التأليف المعلّمة بوضوح.
## 11. سيناريوهات التحقق الإلزامية
- فتح الدرس الصحيح يعرض هذا المختبر فقط بعد تحقق الحزمة المنشورة والصلاحية.
- درس يحمل عنواناً مشابهاً وهوية مختلفة لا يفتح هذا المختبر.
- الهاتف واللوحي لا يعانيان overflow، والكانفاس يبقى مرئياً أثناء التحكم.
- إعادة الضبط تعيد كل المتغيرات والمؤقتات ومحطات الفهم إلى الحالة الابتدائية.
- كل حد أدنى/أقصى يعطي رسماً وقراءة متطابقين ولا ينتج NaN/Infinity.
- تقليل الحركة وقارئ الشاشة والتنقل بلوحة المفاتيح يعملون.
- لا توجد صور خارجية، بيانات ديمو، أرقام نجاح، أو ادعاء إتقان محلي.
## 12. تعريف الاكتمال
- [ ] راجع مختص المادة النتاجات والمحاور والمصطلحات والأمثلة.
- [ ] وثقت المعادلات/العلاقات مع الصفحات أو الأقسام.
- [ ] اعتمد سيناريو اللعب وأخطاء الطلاب الشائعة.
- [ ] نُفذت المحاكاة المتجهية والتحكم المتجاوب.
- [ ] نُفذت محطات الفهم بأدلة وتعليلات وتلميحات.
- [ ] نجحت اختبارات domain وwidget والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.

Some files were not shown because too many files have changed in this diff Show More