---
title: "الإحماء الذهني"
url: https://docs.growamal.com/ar/guides/cognitive-warmup/
language: ar
---

# الإحماء الذهني

الإحماء الذهني هو نشاط قائم على قواعد محددة وحتمي النتائج تماماً، يمارسه الطالب لمدة **ثابتة قدرها 60 ثانية** في بداية جلسة **تدريب**. هدفه الوحيد هو تهيئة الانتباه والتحكم في الاندفاعية والتعرف على الأنماط والذاكرة العاملة، وهي الموارد المعرفية التي تعتمد عليها القراءة. لا يتصل الإحماء بأي شكل بقياس مهارات القراءة.

> **تنبيه:** **للتدريب فقط (R12 Q10، تغيير جذري).** لم يعد الإحماء بوابةً تسبق كل جلسة قراءة، وهو **ممنوع قبل أي تقييم** (BOY/MOY/EOY/الفحص/ORF/CBM/التأكيدي). لا يعمل إلا داخل جلسة `TRAINING` أو `INTERVENTION_PRACTICE`. تفشل دالة `createWarmupSession` بإغلاق آمن — يُعيد `POST /api/warmup/sessions` رمز `422` لأي `sessionType` آخر (`session_scope=TRAINING_SESSION_ONLY`، `assessment_allowed=false`). الوحدة ثابتة عند 60 ثانية؛ وقد طُويت خطة الـ3 إلى 5 دقائق متعددة المراحل السابقة.

## ما الإحماء وما ليس إحماءً

> **ملاحظة:** **الإحماء الذهني معزول تماماً عن حلقة القياس.** لا يحسب قيمة θ (تقدير قدرة الطالب) ولا يلمسها، ولا يُصدر حدث إتقان، ولا يمنح نقاط XP، ولا يكتب في أي جدول قياس أو قرار. هذه قاعدة معمارية صارمة (V-5 + G-ISO). يُسمح للإحماء بالظهور في تجربة الطالب تحديداً لأنه قائم على قواعد وحتمي النتائج؛ وهو الاستثناء الصريح من مبدأ "لا ذكاء اصطناعي توليدي في تجربة الطالب".

يرى الطالب **أشكالاً وألواناً ومسارات وأنماطاً**، ولا يرى أحرفاً أو كلمات أو أرقاماً قط. يتحقق اختبار `lint:no-llm-in-measurement` واختبار عزل الاستيراد `test:isolation:warmup` في بيئة CI من أنه لا يوجد أي مسار كودي من وحدة الإحماء يصل إلى جداول القياس.

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

## عشرة قوالب واثنان وثلاثون إعداداً للصف

يمتلك الإحماء طبقتين من الإعداد:

| الطبقة | المحتوى |
|---|---|
| **10 قوالب من المستوى الأول** (COG-01..COG-10) | مخططات تمارين عامة تُتحقَّق منها عبر JSON Schema 2020-12: مطابقة مكانية، وتسلسل ألوان، ومدى ذاكرة، وإكمال أنماط، وتتبع بصري، وغيرها |
| **32 إعداداً للصف من المستوى الثاني** (24 إعداداً أساسياً عبر 8 قوالب × الصفوف 1-4، بالإضافة إلى 8 إعدادات نهائية لـCOG-05/06 أضافها R12 Q10) | حدود الصعوبة ووسوم الأصول ومدة دورات الجلسة لكل صف: القيم التي تجعل تمرين COG-03 مناسباً لطالب الصف الأول مقارنةً بطالب الصف الرابع |

تُقرأ الإعدادات من قاعدة البيانات عند إنشاء الجلسة؛ المحرك نقي (لا وصول إلى قاعدة البيانات، لا ساعة، لا مصدر عشوائية سوى PRNG المُبذَّر). **جميع القوالب العشرة نشطة الآن.** أغلق R12 Q10 البند FU-41: سُلِّمت الإعدادات النهائية لكل صف لقالبَي COG-05 (المطابقة) وCOG-06 (التتبع البصري) — فأصبح كلا القالبين `isActive=true` مع إضافة 8 إعدادات صف جديدة (`COG-G{1..4}-MATCHING` / `-VISUAL-TRACKING`) تحمل أعداد العناصر القابلة للقراءة آلياً (`numberOfVisualElements`، `pairCount`، `movingObjectsCount`، `targetCount`، `distractorCount`، `pathNodesCount`، `crossingCount`، `occlusionCount`، `speedChangeCount`) وعقود القوالب `TPL-COG05-*` / `TPL-COG06-*`. يُبذِّر `catalog-seed.ts` الآن 10 قوالب + 32 إعداد صف نشط (24 سابقاً + 8 جديدة).

## الحتمية والبذرة

تحصل كل جلسة إحماء على عدد صحيح `seed` لحظة الإنشاء. هذه البذرة هي **مصدر العشوائية الوحيد** الذي يُمرَّر إلى المحرك. PRNG الداخلي (mulberry32) يُبذَّر بـ`mixSeed(seed, sequenceIndex)` بحيث:

- يُنتج نفس `(templateId, grade, difficulty, seed, sequenceIndex)` دائماً مخرجات متطابقة بايت بايت،
- يمكن لنقطة نهاية الإعادة (`POST /api/admin/warmup/dry-run-replay`) التحقق من هذه الخاصية عند الطلب (V-6).

لا يُستدعى `Date.now()` ولا `Math.random()` داخل المحرك إطلاقاً.

## دورة حياة الجلسة والقابلية للاستئناف

| الخطوة | نقطة النهاية | ما يحدث |
|---|---|---|
| **الفتح** | `POST /api/warmup/sessions` | إنشاء جلسة لـ`(studentId, sessionType, grade)`؛ يجب أن يكون `sessionType` إما `TRAINING \| INTERVENTION_PRACTICE` (إغلاق آمن R12 Q10 — وإلا `422`)؛ يُعيد أول نموذج تمرين و`stateToken` |
| **تسجيل حدث** | `POST /api/warmup/sessions/{id}/events` | تسجيل `started` / `submitted` / `advanced`؛ الخادم يُكمل الجلسة تلقائياً عند بلوغ حد الـ60 ثانية |
| **الاستئناف** | `GET /api/warmup/sessions/{id}/resume` | إعادة تمرين `sequenceIndex` المحفوظ حتمياً؛ يُعيد المحرك توليده من البذرة ذاتها، ولا تُعدَّل أي حالة (FR-WARM-6 / Q-SYNC-10) |
| **الإكمال** | `POST /api/warmup/sessions/{id}/complete` | الإغلاق بـ`completed` أو `skipped`؛ كتابة بيانات الجاهزية النهائية؛ إشارة `cacheClear: true` للواجهة |
| **قراءات مرجعية** | `GET /api/warmup/templates/{templateId}`، `GET /api/warmup/grade-configs?grade=` | قراءات كتالوج لعرض الواجهة |

### مرونة ذاكرة المتصفح

يُخزِّن `stateToken` (وهو رمز HMAC) في استجابة الجلسة في `localStorage` من قِبل الواجهة. إذا أعاد متصفح الطالب التحميل، أو تبدَّل التطبيق، أو قُفل الجهاز، يمكن للواجهة استدعاء `GET /api/warmup/sessions/{id}/resume` بالرمز المُخزَّن لإعادة توليد التمرين الدقيق عند `sequenceIndex` الحالي دون أي انتقال. يُنفِّذ هذا متطلب مرونة ذاكرة المتصفح Q-SYNC-10 لجميع تدفقات الطالب.

## حد الـ60 ثانية

`MAX_WARMUP_MS = 60_000 ms` (60 ثانية، R12 Q10). يُطبَّق هذا الحد **من جانب الخادم وبصمت**؛ لا يرى الطالب عداد تنازلياً. عند اكتشاف الخادم بلوغ الحد أثناء معالجة حدث `submitted`، يُكمِّل الجلسة تلقائياً. هذا هو السقف الصارم للوحدة غير اللغوية الواحدة — وقد طُويت خطة المراحل المتعددة السابقة (إحماء/أساسي/إعادة ضبط/إغلاق ذات الخمس دقائق) في هذا الحد الواحد عند 60 ثانية.

## التخطي مجاني دائماً من العقوبة

نتيجة `skipped` في `POST /api/warmup/sessions/{id}/complete` لا تكتب أي علامة تخلٍّ، ولا تُفعِّل متطلب إعادة محاولة، ولا تؤثر على أي شيء في قياس الطالب أو حالة التلعيب (FR-WARM-1).

## لا نص في بيانات التمرين

وحدة `no-text-guard` داخل المحرك تفحص كل سلسلة مُعرَّضة في حمولة `data` للتمرين. إذا ظهر أي حرف عربي أو لاتيني، أو أي رقم، يفشل الطلب بإغلاق (`500`) بدلاً من تقديم الحمولة الملوَّثة. بيانات التمرين تحمل **مراجع معرِّفات أصول فقط**؛ ملفات SVG/الصور الفعلية يُحلِّلها مُصيِّر الواجهة، لا الخادم.

## الإلحاق الحصري

صفوف `warmup_session_event` و`warmup_telemetry` للإنشاء فقط. رأس الجلسة (`warmup_session`) قابل للتعديل مع ظل تاريخي. يتبع هذا اتفاقية الإلحاق الحصري على مستوى المنصة التي يُطبِّقها `lint:no-update-on-audit-tables`.

## الصلاحيات

مسارات دورة الحياة (`create` / `resume` / `events` / `complete`) **يخدمها الطالب نفسه**: يحمل `STUDENT` صلاحية `USE_DIAGNOSTIC_ENGINE` ولا يجوز له تشغيل إلا إحماءه **هو فقط** (تقييد نطاق الطالب نفسه — `body.studentId === ctx.userId`). يحتفظ المعلمون والإداريون بنطاق `ClassTeacher` / `RUN_BACKOFFICE` (مثلاً جلسة يقودها المعلم أو تُنسَّق متزامنةً وتُعرَض على شاشة الطفل). أما القراءات المرجعية (`GET .../templates/{templateId}`، `GET .../grade-configs`) فتبقى للمعلم/الإداري فقط. تتطلب نقطة النهاية الإدارية `dry-run-replay` صلاحية `RUN_BACKOFFICE`. جميع المسارات مُقيَّدة بالمستأجر: تُعيد قراءات المنظمات الأخرى `404`.

## صفحات ذات صلة

- [التشخيص والتدريب](https://docs.growamal.com/ar/guides/diagnostic-and-practice/): تدفقات التدريب/التمرين التي يفتحها الإحماء (وليس تقييماً أبداً)
- [تسليم المهام](https://docs.growamal.com/ar/guides/task-delivery/): كيفية اختيار العناصر وتقديمها في جلسات القراءة
- [قواعد السلامة](https://docs.growamal.com/ar/how-it-works/safety/): القواعد الشاملة التي تتضمن حدود عزل القياس G-ISO
