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,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: history_10_semester_1_unit_01_lesson_01
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_01
source_markdown: grade_10/history_10/semester_1/unit_01/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: الإمبراطورية الفارسية: النشأة والتطور
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/lesson_01.md`
- صفحات المصدر المسجلة: 8, 9, 10, 11, 12, 13
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: الإمبراطورية الفارسية: النشأة والتطور
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: نشأة الإمبراطورية الفارسية
- قراءة في النص التاريخي: الأردن في العصر الفارسي
- ثانياً: التطور التاريخي للإمبراطورية الفارسية
- المرحلة الأولى: الدولة الأخمينية (560 - 312 ق.م)
- المرحلة الثانية: الغزو اليوناني واحتلال فارس (330 - 248 ق.م)
- المرحلة الثالثة: الدولة البارثية (الفرثية) (248 ق.م - 224 م)
- دراسة الخرائط والأشكال والتجارب
- مراجعة الدرس وأسئلة التقويم
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_1_unit_01_lesson_02
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_02
source_markdown: grade_10/history_10/semester_1/unit_01/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: الدولة الساسانية (226م - 651م)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/lesson_02.md`
- صفحات المصدر المسجلة: 14, 15, 16, 17
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: الدولة الساسانية (226م - 651م)
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: التسمية والتأسيس
- ثانياً: الموقع والامتداد الجغرافي
- أسباب اتخاذ الساسانيين المدائن عاصمة لهم:
- مراجعة الدرس وأسئلة التقويم
- 1. الفكرة الرئيسة:
- 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,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: history_10_semester_1_unit_01_lesson_03
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_03
source_markdown: grade_10/history_10/semester_1/unit_01/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: الحكم والمؤسسات في الدولة الساسانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/lesson_03.md`
- صفحات المصدر المسجلة: 18, 19, 20, 21
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: الحكم والمؤسسات في الدولة الساسانية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: نظام الحكم والإدارة
- ثانياً: الملوك الساسانيون وأبرز إنجازاتهم
- 1. الملك أردشير الأول (226 - 242م)
- 2. الملك شابور الأول (242 - 270م)
- 3. الملك كسرى الأول (أنو شيروان العادل) (531 - 579م)
- 4. الملكة بوران (630 - 631م)
- دراسة الخرائط والأشكال والتجارب
- مراجعة الدرس وأسئلة التقويم
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_1_unit_01_lesson_04
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_04
source_markdown: grade_10/history_10/semester_1/unit_01/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: الحياة العامة في الدولة الساسانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/lesson_04.md`
- صفحات المصدر المسجلة: 22, 23, 24, 25, 26, 27
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: الحياة العامة في الدولة الساسانية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: الحياة السياسية والعسكرية
- ثانياً: الحياة الاقتصادية
- 1. الزراعة
- 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,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: history_10_semester_1_unit_01_lesson_05
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_05
source_markdown: grade_10/history_10/semester_1/unit_01/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: علاقات الدولة الساسانية الخارجية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/lesson_05.md`
- صفحات المصدر المسجلة: 28, 29, 30, 31
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: علاقات الدولة الساسانية الخارجية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: العلاقات مع شبه الجزيرة العربية
- ثانياً: الصراع والتنافس مع الإمبراطورية البيزنطية (الرومانية الشرقية)
- ثالثاً: العلاقات مع الصين
- رابعاً: العلاقات مع الهند
- دراسة الخرائط والأشكال والتجارب
- مراجعة الدرس وأسئلة التقويم
- 1. الفكرة الرئيسة
- 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: history_10_semester_1_unit_01_lesson_06
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: lesson_06
source_markdown: grade_10/history_10/semester_1/unit_01/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: نهاية الدولة الساسانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/lesson_06.md`
- صفحات المصدر المسجلة: 32, 33, 34, 35
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: نهاية الدولة الساسانية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: العوامل الداخلية لضعف الدولة الساسانية
- ثانياً: العوامل الخارجية لانهيار الدولة الساسانية
- ثالثاً: معركة نهاوند (فتح الفتوح) (642م / 21هـ)
- رابعاً: استمرار الأثر الحضاري بعد السقوط السياسي
- دراسة الخرائط والأشكال والتجارب
- مراجعة الدرس وأسئلة التقويم
- 1. الفكرة الرئيسة
- 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,144 @@
---
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: history_10_semester_1_unit_01_unit_review
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_01
lesson_key: unit_review
source_markdown: grade_10/history_10/semester_1/unit_01/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة الوحدة الأولى: الإمبراطورية الفارسية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_01_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_01/unit_review.md`
- صفحات المصدر المسجلة: 36, 37
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة الوحدة الأولى: الإمبراطورية الفارسية
- بطاقة المراجعة
- أسئلة مراجعة الوحدة الشاملة والحلول النموذجية
- السؤال الأول: الفكرة الرئيسة (أذكر أسباب ما يأتي)
- السؤال الثاني: اختيار من متعدد (أختار الإجابة الصحيحة)
- السؤال الثالث: تصنيف إنجازات الملك أردشير الأول
- السؤال الرابع: جدول مقارنة المعارك الكبرى
- السؤال الخامس: التفكير الناقد
- السؤال السادس: تحليل الخريطة التاريخية (ص 37)
- المفردات والمصطلحات الشاملة للوحدة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_1_unit_02_lesson_01
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_01
source_markdown: grade_10/history_10/semester_1/unit_02/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: نشأة الدولة العثمانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/lesson_01.md`
- صفحات المصدر المسجلة: 40, 41, 42, 43, 44
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: نشأة الدولة العثمانية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: الأوضاع السياسية قُبيل قيام الدولة العثمانية
- ثانياً: الجذور التاريخية وهجرة قبيلة قايي التركية
- ثالثاً: عثمان بن أرطغرل (المؤسس الحقيقي للدولة العثمانية)
- رابعاً: أبرز سلاطين الدولة العثمانية الأوائل وإنجازاتهم
- 1. السلطان أورخان (1326 - 1360م)
- 2. السلطان مراد الأول (1360 - 1389م)
- 3. السلطان بايزيد الأول (1389 - 1402م)
- خامساً: نظام الجيش الانكشاري والدفشرمة
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_1_unit_02_lesson_02
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_02
source_markdown: grade_10/history_10/semester_1/unit_02/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: فتح القسطنطينية (إسطنبول)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/lesson_02.md`
- صفحات المصدر المسجلة: 45, 46, 47, 48
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: فتح القسطنطينية (إسطنبول)
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: محاولات المسلمين لفتح القسطنطينية
- ثانياً: دوافع فتح القسطنطينية
- ثالثاً: استعدادات وإجراءات السلطان محمد الفاتح للفتح
- رابعاً: نتائج فتح القسطنطينية وانعكاساتها العالمية
- 1. النتائج السياسية والعسكرية المباشرة:
- 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: history_10_semester_1_unit_02_lesson_03
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_03
source_markdown: grade_10/history_10/semester_1/unit_02/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: الحياة العامة في الدولة العثمانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/lesson_03.md`
- صفحات المصدر المسجلة: 49, 50, 51, 52, 53, 54, 55
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: الحياة العامة في الدولة العثمانية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- أولاً: الحياة السياسية والإدارية والعسكرية
- أركان المجلس الإداري المركزي:
- مرحلة التنظيمات والنظام البرلماني:
- ثانياً: المؤسسة العسكرية (الجيش والأسطول)
- ثالثاً: الحياة الاقتصادية
- 1. الزراعة:
- 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,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: history_10_semester_1_unit_02_lesson_04
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_04
source_markdown: grade_10/history_10/semester_1/unit_02/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: الوطن العربي في ظل الحكم العثماني
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/lesson_04.md`
- صفحات المصدر المسجلة: 56, 57, 58, 59, 60, 61
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: الوطن العربي في ظل الحكم العثماني
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- الفكرة الرئيسة
- نتاجات التعلم الخاصة
- المفاهيم والمصطلحات
- الشخصيات والأماكن
- أولاً: دوافع التوسع العثماني نحو الوطن العربي
- ثانياً: مراحل السيطرة العثمانية على الوطن العربي
- 1. الصراع مع الصفويين (معركة جالديران 1514م):
- 2. ضم بلاد الشام (معركة مرج دابق 1516م):
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_1_unit_02_lesson_05
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_05
source_markdown: grade_10/history_10/semester_1/unit_02/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: الأردن في ظل الحكم العثماني
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/lesson_05.md`
- صفحات المصدر المسجلة: 62, 63, 64, 65, 66
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: الأردن في ظل الحكم العثماني
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- الفكرة الرئيسة
- نتاجات التعلم الخاصة
- المفاهيم والمصطلحات
- الشخصيات والأماكن
- مقدمة تاريخية
- أولاً: سكة حديد الحجاز (Hejaz Railway)
- ثانياً: طريق الحج الشامي ومحطاته في الأردن
- الأهمية الاقتصادية والاجتماعية لطريق الحج لأهالي الأردن:
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_1_unit_02_lesson_06
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: lesson_06
source_markdown: grade_10/history_10/semester_1/unit_02/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: نهاية الدولة العثمانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/lesson_06.md`
- صفحات المصدر المسجلة: 67, 68, 69, 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,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: history_10_semester_1_unit_02_unit_review
grade_key: grade_10
subject_key: history_10
semester_key: semester_1
unit_key: unit_02
lesson_key: unit_review
source_markdown: grade_10/history_10/semester_1/unit_02/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة الوحدة الثانية: الدولة العثمانية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_1_unit_02_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_1/unit_02/unit_review.md`
- صفحات المصدر المسجلة: 74, 75, 76
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة الوحدة الثانية: الدولة العثمانية
- بطاقة الوحدة والمراجعة
- أسئلة مراجعة الوحدة والتقويم الختامي
- السؤال الأول: الفكرة الرئيسة (ص 74)
- السؤال الثاني: أسئلة الاختيار من متعدد (ص 74)
- السؤال الثالث: الخط الزمني لسلاطين الدولة العثمانية (ص 74)
- السؤال الرابع: مظاهر اهتمام العثمانيين بالأنشطة الاقتصادية (ص 74)
- السؤال الخامس: مطابقة المناصب مع المهمات (ص 75)
- السؤال السادس: تصنيف العوامل والنتائج (ص 75)
- السؤال السابع: التحديد على الخريطة ومسرد المفردات (ص 76)
- التحديد الجغرافي على الخريطة:
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_2_unit_03_lesson_01
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_01
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: الثورة الصناعية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_01.md`
- صفحات المصدر المسجلة: 8, 9, 10, 11, 12, 13, 14
- حالة مراجعة الاستخراج: `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: history_10_semester_2_unit_03_lesson_02
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_02
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: إنجازات الثورة الصناعية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_02.md`
- صفحات المصدر المسجلة: 15, 16, 17, 18, 19
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: إنجازات الثورة الصناعية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- الفكرة الرئيسة
- نتاجات التعلم الخاصة
- المفاهيم والمصطلحات
- الشخصيات
- أولاً: إنجازات وابتكارات الثورة الصناعية
- 1. قطاع الغزل والنسيج:
- 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,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: history_10_semester_2_unit_03_lesson_03
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_03
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: الثورة الأمريكية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_03.md`
- صفحات المصدر المسجلة: 20, 21, 22, 23, 24, 25, 26
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: الثورة الأمريكية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- الفكرة الرئيسة
- نتاجات التعلم الخاصة
- المفاهيم والمصطلحات
- الأماكن
- أولاً: نشأة المستعمرات البريطانية في أمريكا الشمالية
- ثانياً: دوافع الهجرة الأوروبية إلى أمريكا الشمالية (الشكل 9 ص 22)
- ثالثاً: عوامل قيام الثورة الأمريكية
- 1. حرب السنوات السبع (1756 - 1763م) وتداعياتها الاقتصادية:
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_2_unit_03_lesson_04
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_04
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_04.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الرابع: مراحل الثورة الأمريكية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_04`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_04.md`
- صفحات المصدر المسجلة: 27, 28, 29, 30, 31, 32
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الرابع: مراحل الثورة الأمريكية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- الفكرة الرئيسة
- نتاجات التعلم الخاصة
- المفاهيم والمصطلحات
- الشخصيات
- أولاً: مراحل الثورة الأمريكية
- 1. المرحلة السياسية الدبلوماسية (المؤتمرات القارية):
- جدول المقارنة بين المؤتمرين القاريين (ص 29)
- 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: history_10_semester_2_unit_03_lesson_05
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_05
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_05.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الخامس: الثورة الفرنسية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_05`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_05.md`
- صفحات المصدر المسجلة: 33, 34, 35, 36, 37, 38, 39
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الخامس: الثورة الفرنسية
- بطاقة الدرس
- الفكرة الرئيسة ومحاور التعلم
- الفكرة الرئيسة
- نتاجات التعلم الخاصة
- المفاهيم والمصطلحات
- الشخصيات والأماكن
- أولاً: الأوضاع العامة قبيل الثورة
- ثانياً: عوامل قيام الثورة الفرنسية
- 1. العوامل السياسية (الشكل 17 ص 34):
- 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: history_10_semester_2_unit_03_lesson_06
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_06
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_06.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السادس: نتائج الثورة الفرنسية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_06`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_06.md`
- صفحات المصدر المسجلة: 40, 41, 42, 43, 44
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السادس: نتائج الثورة الفرنسية
- مقدمة
- أولاً: النتائجُ السياسيةُ
- ثانياً: النتائجُ الاقتصاديةُ
- ثالثاً: النتائجُ الاجتماعيةُ
- الشكل (21): النتائجُ الاجتماعيةُ للثورةِ الفرنسيةِ
- أتحققُ من تعلّمي (صفحة 41)
- إعلانُ حقوقِ الإنسانِ عام 1789م
- وثيقة: إعلانُ حقوقِ الإنسانِ والمواطن
- أتحققُ من تعلّمي (صفحة 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: history_10_semester_2_unit_03_lesson_07
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_07
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_07.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس السابع: الثورة الروسية
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_07`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_07.md`
- صفحات المصدر المسجلة: 45, 46, 47, 48, 49, 50, 51
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس السابع: الثورة الروسية
- مقدمة
- أتحقّقُ من تعلّمي (صفحة 45)
- أولاً: عواملُ قيامِ الثورةِ الروسيةِ
- 1. العواملُ السياسيةُ
- 2. العواملُ الاقتصاديةُ والاجتماعيةُ (الشكل 23)
- 3. العواملُ الفكريةُ
- أتحقّقُ من تعلّمي (صفحة 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: history_10_semester_2_unit_03_lesson_08
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: lesson_08
source_markdown: grade_10/history_10/semester_2/unit_03/lesson_08.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثامن: العالم في القرن العشرين
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_lesson_08`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/lesson_08.md`
- صفحات المصدر المسجلة: 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثامن: العالم في القرن العشرين
- مقدمة
- أولاً: الحربُ العالميةُ الأولى (الحربُ العامّةُ) (1914- 1918م)
- 1. الأسبابُ غيرُ المباشرةِ
- 2. السببُ المباشرُ لقيامِ الحربِ العالميةِ الأولى (صفحة 53)
- أتحقّقُ من تعلّمي (صفحة 53)
- 3. أطرافُ الحربِ العالميةِ الأولى (الشكل 26)
- 4. نتائجُ الحربِ العالميةِ الأولى (صفحة 54)
- أتحقّقُ من تعلّمي (صفحة 55)
- ثانياً: الحربُ العالميةُ الثانيةُ (1939- 1945م) (صفحة 56)
- 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,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: history_10_semester_2_unit_03_unit_review
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_03
lesson_key: unit_review
source_markdown: grade_10/history_10/semester_2/unit_03/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة الوحدة الثالثة: ثورات غيرت العالم الحديث
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_03_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_03/unit_review.md`
- صفحات المصدر المسجلة: 64, 65, 66, 67
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة الوحدة الثالثة: ثورات غيرت العالم الحديث
- 1. المفرداتُ والمصطلحاتُ (صفحة 64)
- 2. الفكرةُ الرئيسةُ (صفحة 64)
- السؤالُ الأولُ: أذكرُ سببَ كلٍّ ممّا يأتي:
- السؤالُ الثاني: أختارُ الإجابةَ الصحيحةَ في كلٍّ ممّا يأتي:
- السؤالُ الثالثُ (صفحة 65)
- أ. أقارنُ بينَ الثوراتِ الآتيةِ من حيثُ: سنةُ حدوثِها، وأسبابُها، ونتائجُها:
- ب. أقارنُ بينَ الحربِ العالميةِ الأولى والحربِ العالميةِ الثانيةِ:
- السؤالُ الرابعُ: الجدول الزمني للأحداث (صفحة 65)
- السؤالُ الخامسُ: دورُ عربِ المشرقِ في الحربِ العالميةِ الأولى (1914- 1918م) (صفحة 65)
- 3. التفكيرُ الناقدُ (صفحة 66)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_2_unit_04_lesson_01
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_01
source_markdown: grade_10/history_10/semester_2/unit_04/lesson_01.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الأول: محمد علي باشا (1769م - 1849م)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_04_lesson_01`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_04/lesson_01.md`
- صفحات المصدر المسجلة: 70, 71, 72, 73, 74, 75, 76, 77, 78, 79
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الأول: محمد علي باشا (1769م - 1849م)
- أولاً: حياتُهُ ونشأتُهُ (صفحة 70)
- القضاء على المماليك والاستفراد بالسلطة (صفحة 71)
- أتحقّقُ من تعلّمي (السبب والنتيجة):
- ثانياً: بناءُ الدولةِ المصريةِ الحديثةِ (صفحة 71)
- 1. في الإدارةِ
- 2. في الاقتصادِ (صفحة 72)
- أ. الزراعةُ:
- ب. الصناعةُ:
- ج. التجارةُ:
- أتحقّقُ من تعلّمي (صفحة 73)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_2_unit_04_lesson_02
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_02
source_markdown: grade_10/history_10/semester_2/unit_04/lesson_02.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثاني: المهاتما غاندي (1869م - 1948م)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_04_lesson_02`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_04/lesson_02.md`
- صفحات المصدر المسجلة: 80, 81, 82, 83
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثاني: المهاتما غاندي (1869م - 1948م)
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- الشخصيات والأماكن
- مقولة تاريخية
- أولاً: حياتُهُ ونشأتُه
- الهند تحت الاحتلال البريطاني
- تأسيس حزب المؤتمر الوطني وجريدة "الهند الفتاة"
- نشاط: أتحقّق من تعلّمي
- مظاهر المقاومة السلمية (اللاعنف) وأساليبها (الشكل 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,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: history_10_semester_2_unit_04_lesson_03
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_04
lesson_key: lesson_03
source_markdown: grade_10/history_10/semester_2/unit_04/lesson_03.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — الدرس الثالث: زيغريد هونكه (1913م - 1999م)
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_04_lesson_03`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_04/lesson_03.md`
- صفحات المصدر المسجلة: 84, 85, 86, 87, 88, 89
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- الدرس الثالث: زيغريد هونكه (1913م - 1999م)
- بطاقة الدرس
- المصطلحات والمفاهيم الأساسية
- الشخصيات والأماكن
- أولاً: حياتُها ونشأتُها
- نشاط: أتحقّق من تعلّمي (الصفحة 85)
- ثانيًا: أبرزُ مؤلّفاتِها
- 1. كتاب «شمسُ العربِ تسطعُ على الغرب»
- 2. كتاب «الإبلُ على بلاطِ قيصر»
- 3. كتاب «التوجّهُ الأوروبيُّ إلى العربِ والإسلام»
- نشاط: أتحقّق من تعلّمي (الصفحة 87)
إذا كانت النتاجات أعلاه عامة أو ناقصة، يستخرج المراجع الأكاديمي نتاجات قابلة للقياس من الصفحات المشار إليها قبل البرمجة. لا يخترع المطور قانوناً أو تعريفاً أو ترجمة أو مثالاً غير مثبت في المصدر.
## 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: history_10_semester_2_unit_04_unit_review
grade_key: grade_10
subject_key: history_10
semester_key: semester_2
unit_key: unit_04
lesson_key: unit_review
source_markdown: grade_10/history_10/semester_2/unit_04/unit_review.md
source_extraction_review_status: needs_human_review
---
# مواصفة المختبر التفاعلي — مراجعة الوحدة الرابعة: شخصيات من التاريخ
> **حالة الملف:** مسودة هندسية مشتقة من ملف القبول المنهجي. لا تُعرض للطالب ولا تُسجّل كمختبر منشور قبل مراجعة المحتوى، وربطها بحزمة نشر خادمية معتمدة وإصدار أصل واضح.
## 1. بطاقة الارتباط المنهجي
- المبحث: التاريخ
- هوية الدرس: `history_10_semester_2_unit_04_unit_review`
- المصدر الوحيد لهذه المسودة: `grade_10/history_10/semester_2/unit_04/unit_review.md`
- صفحات المصدر المسجلة: 90, 91, 92, 93
- حالة مراجعة الاستخراج: `needs_human_review`
- يمنع الربط بعنوان الدرس أو `lesson_01` وحده؛ الربط التشغيلي يكون بهوية الدرس وإصدار الحزمة المنشورة.
## 2. ما الذي يجب أن يفهمه الطالب؟
### النتاجات المستخرجة
- يحددها المراجع الأكاديمي من المصدر قبل التنفيذ؛ لا تكفي صياغة عنوان الدرس.
### محاور الدرس التي يجب تمثيلها
- مراجعة الوحدة الرابعة: شخصيات من التاريخ
- بطاقة المراجعة
- 1. المفردات والمفاهيم
- 2. الفكرة الرئيسة
- السؤال الأول: أذكرُ سببَ كلٍّ ممّا يأتي:
- السؤال الثاني: أختارُ الإجابةَ الصحيحةَ في كلٍّ ممّا يأتي:
- السؤال الثالث:
- السؤال الرابع: الخط الزمني لمحمد علي باشا
- السؤال الخامس: مقارنة كتب زيغريد هونكه
- 3. التفكير الناقد والمهارات
- 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 والوصول والحالات الحدية.
- [ ] رُبط المختبر بحزمة خادم منشورة عبر هوية وإصدار صريحين.
- [ ] راجع الطالب/المعلم التجربة ولم تُسجل كمكتملة قبل الدليل.