Skip to Content

محرك حالة المهارة

محرك حالة المهارة (SSE) هو خط الأنابيب الحتمي الذي يُحوّل أدلة القياس الخام (صفوف θ من جلسات التشخيص واختبارات CBM وأنواع أدلة أخرى) إلى حالات قابلة للتفسير على ثلاثة مستويات: per-sub-skill وper-domain وper-macro-domain. تلك الحالات هي المدخل الرئيسي لـملفات الطلاب.

تُصدر جميع قواعد SSE بتعيين إصدار لها ثم تُجمَّد. لا يُعدَّل إصدار القاعدة المنشور أبداً؛ يُستعاض عنه فقط بإصدار جديد. هذا العقد (النشر ثم التجميد) هو ما يجعل إعادة التدقيق V-6 ممكنة: تُعيد جولة الإعادة تنفيذ إصدار القاعدة الذي كان فعّالاً حين اتُّخذ القرار الأصلي.

خط الأنابيب الخماسي الطبقات

يعالج SSE الأدلة عبر خمس طبقات متتالية. كل طبقة تقرأ فقط من مدخلاتها وتكتب فقط إلى مخرجاتها المخصصة. لا توجد قنوات خلفية بين الطبقات.

أدلة واردة │ ▼ [ADR] قواعد قرار التقييم (ADR-01..ADR-12) │ استجابة خام → Final_Status_Code ▼ [FSC] Final_Status_Code (12 كوداً) │ ▼ [PAC/CIS] التأكيد الواعي بالأنماط (PAC-01..PAC-13 + CIS-01..CIS-04) │ يؤكد أو يحجب FSC بناءً على أنماط متقاطعة ▼ [SSR] Skill_Status_Rules_v2 (SSR-01..SSR-12) │ → 9-قيم SkillStatus + confidence + decision_strength ▼ [DDR] Domain_Decision_Rules_v2 (DDR-01..DDR-10) │ → 9-قيم DomainStatus ▼ [DSM] Domain_Status_To_Macro_Map (DSM-01..DSM-09) │ → حالات الألواح للنطاق الكلي (DSM يُصدر مباشرةً 5؛ Severe عبر التصعيد) ▼ حالة مُخرجة → ملفات الطلاب

الطبقة 1: ADR (قواعد قرار التقييم)

تُصنّف القواعد ADR-01 إلى ADR-12 كل استجابة بخصائصها السلوكية. هي ميكانيكية بحتة: نظراً لسجل استجابة، تُخرج قاعدة ADR Final_Status_Code. لا تُطبَّق منطق النطاق أو سياق الأنماط في هذه الطبقة.

الطبقة 2: FSC (كود الحالة النهائية)

يوجد 12 كوداً للحالة النهائية. هي معرّفات داخلية، لا تُعرض في أي سطح موجّه للطالب أو الوالد.

الطبقة 3: PAC/CIS (التأكيد الواعي بالأنماط)

تفحص قواعد PAC (PAC-01..PAC-13) ما إذا كان FSC من الطبقة 2 متسقاً مع نمط الأدلة الأشمل للطالب والمهارة الفرعية. تتولى قواعد CIS (CIS-01..CIS-04) الفحوص الفرعية لاتساق البنود المتقاطعة. يمكن لقاعدة PAC أن تؤكد FSC أو تحجبه في انتظار مزيد من البيانات أو تُفعّل المشعر do_not_decide_yet.

الطبقة 4: SSR (قواعد حالة المهارة)

تُركّب SSR-01 إلى SSR-12 الحالة المؤكدة في SkillStatus ذات 9 قيم، مع تقييم confidence وdecision_strength. قيم SkillStatus التسع هي:

SkillStatusالمعنى
adequateالمهارة في المسار الصحيح
monitorالمهارة قيد المتابعة لكنها ليست مصدر قلق بعد
weak_isolatedضعف في هذه المهارة وحدها
monitor_gatewayمهارة بوابة قيد المراقبة
weak_gatewayمهارة البوابة ضعيفة
weak_domain_relatedضعف مرتبط بنمط النطاق
broad_weakness_relatedجزء من ضعف أشمل عبر النطاقات
cautionary_weakness_with_metadataضعف مُلاحظ مع سياق إضافي
contextual_reviewيتطلب مراجعة سياقية من المعلم

الطبقة 5: DDR وDSM

تجمع DDR-01 إلى DDR-10 حالات per-skill داخل نطاق في إحدى قيم DomainStatus التسع (نفس المفردات كـ SkillStatus). ثم تُربط DSM-01 إلى DSM-09 حالات النطاقات بحالات الألواح للنطاق الكلي. تُصدر DSM مباشرةً خمس قيم: Meets وApproaching وBelow وPartial وContextual. Severe ليست إصداراً مباشراً من DSM؛ تُنتَج فقط عبر مسارَي التصعيد في الطبقة الخامسة الموصوفَين أدناه. Not_Assessed هو القيمة الافتراضية للتجميع ولا تُصدَر أبداً من DSM.

كيف تُنتَج Severe

Severe ليست أبدًا إصدارًا مباشرًا من DSM. تُنتَج فقط عبر مسارَي تصعيد في الطبقة الخامسة (l5-dsm.ts)، وفق إجابات الشريك الرئيسية Q1/Q3 (2026-06-21):

  • المسار A — شدّة البوابة: شدّة بوابة ≥ DTH-SEV-01 على نطاق gateway_driven_domain_concern.
  • المسار B — العجز الموزون: weighted_deficit_rate الخام ≥ DTH-DEF-03 (50%) على نطاق متماسك أو واسع أو بوابة وله دليل صالح.

وهي صراحةً ليست قائمة على العدّ أبدًا ولا على المئينات أبدًا.

DDR-LC: تحسين متقاطع النطاقات لنطاق COMP (FR-SSE-21)

بعد تنفيذ DDR القياسي، يخضع نطاق COMP (فهم القراءة) لفحص إضافي متقاطع النطاقات مقارنةً بحالتَي نطاق LISTEN والنطاقات التأسيسية. تُصنّف أربع قواعد DDR-LC (DDR-LC-01..DDR-LC-04) نمط الفهم إلى إحدى قيم CompDiagnosticPattern الخمس:

النمطالمعنى
decoding_bottleneckفجوة الفهم مدفوعة أساساً بصعوبة فك التشفير
language_bottleneckفجوة الفهم مدفوعة أساساً بضعف لغوي
combined_dual_bottleneckكلٌّ من فك التشفير واللغة يُسهمان في الفجوة
text_strategy_bottleneckالأدلة تشير إلى فجوة في استراتيجية النص لا في الأساسيات
inconclusive_needs_more_dataالنمط متقاطع النطاقات غير واضح؛ مطلوب مزيد من الأدلة

تُرفق DDR-LC أيضاً compRoutingHint يقرأه موصي حزمة التدخل عند اختيار حزمة مجاورة لـ COMP. يظهر كلا الحقلَين في DTO حالة النطاق المُرجَعة بواسطة GET /api/sse/students/{id}/domain-status.

مشعر do_not_decide_yet

do_not_decide_yet هو إيقاف كامل. حين يُصدر SSE هذا المشعر لتركيبة طالب × مهارة فرعية، يجب على جميع المستهلكين اللاحقين التوقف فوراً. محرك الملف الشخصي وموصي حزم التدخل ولوحة معلومات المعلم وأي سطح تقارير يجب أن يعامل هذا الطالب على أنه “بيانات إضافية مطلوبة” لا كحالة بعينها.

لا يوجد مسار PATCH أو تجاوز لإلغاء do_not_decide_yet على مستوى API. يُلغى تلقائياً حين تتراكم أدلة كافية في نافذة تقييم لاحقة.

يُفعَّل المشعر بسبب:

  • أدلة مقارنة غير كافية (GSR-01: أقل من الحد الأدنى من البنود المتميزة المُسجَّلة)
  • تعارضات قاعدة التعادل حين يشير مصدرا أدلة بالوزن ذاته في اتجاهين متعاكسين دون إمكانية فضّ التعادل

عند وجود do_not_decide_yet تُرجع API قيمة nextRecommendedDataAction تصف جمع البيانات الذي سيُحل الإيقاف.

بيانات التعريف السلوكية للاستجابة (RBM)

يجمع SSE أيضاً بيانات التعريف السلوكية للاستجابة (RBM-00..RBM-11) جنباً إلى جنب مع كل جولة تسجيل. تُسجّل علامات RBM مجموعة من إشارات التطبيق (التخمين السريع، وتكرار اختيار الخيار نفسه، وملاحظات المعلم السياقية، وما شابه ذلك). تُفعَّل RBM-08 تحديداً حين يُسجّل المعلم علامة سياقية مضبوطة عبر قاموس علامات السياق (FR-SSE-20). جميع علامات RBM داخلية فقط: تُعلم مراجعة المعلم لكنها لا تُعدّل درجة أو حالة قط (scoreImpact: None مُفرض على كل صف RBM). لا تُعرض أبداً للطلاب أو الوالدين.

مهارات البوابة واستثناء الدقة العربية

يطبّق SSE تصنيف البوابة من تصنيف المهارات في طبقة DDR. يُصعّد weak_gateway أو monitor_gateway للـ SkillStatus نتيجة DDR للنطاق المحيط.

تُستثنى صراحةً مهارات المؤشر الفرعي للدقة العربية (الشدة، التنوين، المد، علامات الحركات القصيرة والسمات الإملائية المرتبطة) من مسارات التصعيد عبر البوابة، يُفرض هذا الاستثناء بـ FR-SSE-10. الضعف في إحدى هذه المهارات يُنتج المُعدِّل ARABIC_ACCURACY_ONLY_MONITOR على ملف الطالب بدلاً من تصعيد النطاق.

التعيين بإصدار والإعادة V-6

تُنشر القواعد برقم إصدار عبر نقطة نهاية الخلفية. يُجمَّد الإصدار المنشور فوراً؛ لا يُسمح بأي تعديلات. تصل القواعد الجديدة كإصدار جديد. تحمل جميع جداول قواعد SSE (skill_status_rules وdomain_decision_rules وdomain_status_macro_map) قيد version + @@unique([key, version]) بحيث تظل الإصدارات التاريخية قابلة للاستعلام.

تُطبع كل صف مُخرَج من SSE بـ ruleVersion الذي استخدمه. نقطة النهاية POST /api/sse/admin/dry-run-replay (مقيّدة بالخلفية، صلاحية RUN_BACKOFFICE) تقبل {studentId, evidenceWindow, proposedVersions?} وتُعيد اشتقاق حالات per-skill مقابل إصدارات القواعد المقترحة دون كتابة أي صفوف. في حال اختلاف الحالات المشتقة عن اللقطة المخزّنة، يُسجّل سجل التدقيق التناقض؛ هذا هو فحص النزاهة V-6.

كيف يرتبط SSE بملفات الطلاب

يكتب SSE صفوف حالة per-sub-skill وper-domain. تقرأ وحدة ملف الطالب تلك الصفوف وتقوم بما يلي:

  1. تطبيق قواعد منع التداخل (AO-01..AO-04) لاختيار ملف أساسي واحد تحديداً
  2. إرفاق الملفات المُعدِّلة (بما فيها ARABIC_ACCURACY_ONLY_MONITOR من الاستثناء)
  3. اشتقاق العلامات الفرعية (AR_MADD_FLAG وVOCAB_ALERT وغيرها)
  4. اختيار قالب سرد SPOT
  5. إرجاع الملف لمراجعة المعلم (الحالة الأولية pending_teacher_review، وفق V-12)

جسر القياس

التشخيص المُنتهي يُحفِّز projectBridge، الذي يُوزِّع recomputeForEvidence مرّةً لكل مهارة فرعية ثم يُشغِّل recomputeMacroForStudent مرّةً واحدة. ويعيش الكاتب الكلي (writeMacroSnapshot) في snapshot-writer.ts بهذه الوحدة، فيملك SSE الإسقاط الذي يملأ الألواح الكلية الستة وصف GLOBAL الميتا عند الانتهاء. ولسلسلة التحفيز وشكل evidence_row وعقد مفتاح المعرِّف والحتمية انظر دليل جسر القياس.

أبرز واجهات API

يعرض SSE 5 نقاط نهاية قراءة للمستهلكين (معلم أو مدير، VIEW_OWN_CLASSES OR RUN_BACKOFFICE) و2 نقطتَي نهاية للمدير فقط (RUN_BACKOFFICE). تُرجع أسطح القراءة للمستهلكين لقطات حالة المهارات المحلَّلة، ولقطات حالة النطاقات، وسجل تصنيف الأنماط، وسجلات السلوك، وطبقات قواعد الإعداد. تنشر نقاط نهاية المدير إصدارات قواعد جديدة وتُنفّذ عمليات إعادة تجريبية.

للاطلاع على قائمة نقاط النهاية الكاملة انظر مرجع API (tag skill-status-engine).

الأنظمة المرتبطة