سير عمل تفعيل المعلم
سير عمل تفعيل المعلم (WP-TAW) هو آلة حالات من 17 خطوة موجَّهة تقود المعلم من رؤية توصية حزمة الدعم وصولاً إلى مراجعة الخطة والخروج منها. تمثّل هذه الوحدة طبقة تنسيق صرفة، لا تضيف أي منطق قرار جديد، بل تنسّق بين محركات الحزم والتجميع والمراقبة المبنية مسبقاً.
يتّبع سير العمل المبدأ المنصوص عليه في V-12: النظام يقترح، والمعلم يقرّر. كل إجراء جوهري يستلزم اختياراً صريحاً من المعلم.
الأسطح الستة المسمّاة للواجهة
| السطح | الغرض |
|---|---|
| لوحة التوصيات | تعرض توصيات حزمة الدعم النشطة للفصل (توصية واحدة لكل طالب) المستمَدّة من محرك الملفات الشخصية |
| لوحة التجميع الذكي | تعاين الطلاب الذين يمكن تجميعهم معاً (نفس الحزمة، والمهارة الأساسية، ومستوى الدعم، وأسلوب التقديم) |
| معاينة توزيع مستويات الدعم | يعرض توزيع المستوى_1 / المستوى_2 / المستوى_3 عبر المجموعة قبل أن يُقرّ المعلم التفعيل |
| مراجعة التفعيل | خطوة التأكيد لكل عضو؛ يمكن للمعلم تطبيق تعديلات لكل عضو (قواعد OVR_*) قبل الاعتماد النهائي |
| تأكيد التفعيل | الاعتماد النهائي؛ يُشغّل التفعيل الجماعي عبر مسار الكتابة الموجود في وحدة التجميع |
| مراجعة الخطة والخروج | السطح المستمر الذي يعود إليه المعلم لمتابعة حالة المراقبة وحل التنبيهات والاستمرار في الخطة أو الخروج منها |
آلة الحالات من 17 خطوة (TAW_01..TAW_17)
تكتسب مسارات الكتابة الفردية (المراجعة والخروج) قفلاً استشارياً لكل (org, bundleAssignment)؛ والتعيينات المستقلة لا تعطّل بعضها. أما مسار التفعيل الجماعي فيفوّض المعاملة الكاملة إلى كاتب المجموعة الذي يمتلك قفله الخاص لكل (org, class). تُنفَّذ كل خطوة عبر التفويض إلى الكاتب المنشور ذي الصلة. لا يُدخل هذا الوحدة أي مسار كتابة جديد، وتبقى قواعد الكشف عن مسار الكتابة الفردي الخمسة (bundle-assignment, cluster-result, monitoring, وما شابه) خضراء.
تجميع الخطوات (خريطة STEP_STAGE القانونية):
- مرحلة المراجعة (TAW_01..03): تحميل التوصيات، والتحقق من الضمانات، وعرض لوحة التوصيات.
- مرحلة التجميع (TAW_04..06): حساب المجموعات، وعرض معاينة توزيع مستويات الدعم، والسماح للمعلم بتعديل العضوية.
- مرحلة التفعيل (TAW_07..12): مراجعة التفعيل، وتأكيد OVR لكل عضو، ثم إمّا إقرار حزمة (TAW_11 جماعي / TAW_12 فردي) أو تسجيل توجيه من غير الحزم (TAW_12). راجع ناتجَي التفعيل أدناه.
- مرحلة المراقبة (TAW_13..14): قراءة حالة الخطة، وسطح التنبيه الحاد.
- مرحلة القرار (TAW_15..17): TAW_15 حل تنبيه الانتكاس الحاد، TAW_16 انتقال حالة الخطة، TAW_17 الخروج.
استمرارية المسودة
صف workflow_draft (واحد لكل (org, teacher, class)) هو الجدول المتغيّر الوحيد الذي تمتلكه وحدة
سير العمل. ولهذا الصف مهلة 7 أيام (انتهاء صلاحية ناعم عبر last_write_wins upsert). يقطن كل سجل
تدقيق في teacher_action_log وbundle_assignment_history.triggeringWorkflowStep، لا في المسودة قط.
تدفقات الضمانات الثلاثة
تُطبَّق هذه الضمانات عند حدود سير العمل ولا يمكن تجاوزها بأي رمز تجاوز.
| الضمانة | المشغِّل | استجابة النظام |
|---|---|---|
| أدلة غير كافية | تحمل توصية الطالب do_not_decide_yet | يُحظر التفعيل (409)؛ يُحوَّل الطالب إلى دلو “يحتاج مزيداً من البيانات” ويُستبعد من أي مجموعة |
| الانتكاس الحاد | يوجد acute_regression_alert مفتوح للطالب | يجب على المعلم حل التنبيه أولاً (/api/workflow/review): إما بالرفض مع علامة سياق، أو بالتصعيد لترشيح مراجعة المستوى. لا تُعدَّل حالة الخطة تلقائياً أبداً (GSR-02) |
| بيانات غير مكتملة | استثنى محرك التجميع الطالب عبر QA_003 | يُؤجَّل الطالب؛ يستمر التفعيل لبقية أعضاء المجموعة |
رموز التجاوز وعلامات السياق
عندما يُعدّل المعلم توصية ما، يجب أن يأتي السبب من 9 رموز في كتالوج التجاوز، ولا يُقبل النص
الحر أبداً. يُطبَّق النطاق المعمول به على مستوى واجهة برمجة التطبيقات (SCOPE_MISMATCH → 400 عند
استخدام رمز إنهاء الحزمة على مسار غير مناسب، وما إلى ذلك).
تستخدم علامات السياق قاموس ContextFlagId المغلق (7 رموز مسموح بها: CTX_SESSION_INTERRUPTED,
CTX_TECHNICAL_ISSUE, CTX_AUDIO_PROBLEM, CTX_GROUP_NOT_COMPLETED, CTX_STUDENT_ABSENT,
CTX_NEEDED_REPETITION, CTX_PAPER_CHECK_ADMIN). تُسجَّل علامة السياق في context_flag_log
فحسب، ولا تُخزَّن أبداً على صف التنبيه ذاته.
أي انحراف عن مستوى الدعم الموصى به يستلزم confirmed: true في جسم الطلب، وإلا أعاد الخادم 409
CONFIRMATION_REQUIRED.
ناتجا التفعيل (R12 Tier-D، D-015)
صار POST /api/workflow/activate يُحَلّ إلى أحد ناتجين بحسب نوع كائن التوصية.
وهذا يحلّ محلّ مسار NO_BUNDLE_SYSTEM_GUARD المُلغى: لم تعد التوصيات من غير
الحزم تُنشئ تعيينًا بديلًا.
| الناتج | متى | ما الذي يُكتب | شكل الاستجابة |
|---|---|---|---|
kind="activated" | التوصية حزمة حقيقية INTERVENTION / COMPOSITE (recommended_bundle_id غير فارغ) | صف bundle_assignment واحد + صفوف السقالة | bundleId + activated[]، وrouting: null |
kind="routed" | التوصية كائن من غير الحزم (recommended_bundle_id فارغ NULL) | لا يُكتب bundle_assignment، ولا سقالة؛ يُلحَق رمز التوجيه/الإجراء المضبوط بـ teacher_action_log (actionType='individual_routing'، وworkflowStep TAW_12) | routing: { studentId, objectType, routingOutcome }، وbundleId: null، وactivated: [] |
يُعيد كلا الناتجين رمز HTTP 200. ولا يحمل ناتج التوجيه إلا رموز
BundleObjectType ورموز توجيه/إجراء مضبوطة — لا نص حر أبدًا.
مستوى الاستجابة للتدخل التعليمي
وحدة سير العمل لا تكتب مستوى RTI أبداً. التصعيد / خفض المستوى مملوكان لوحدة RTI المستقلة. مسار
التصعيد في سير العمل يفتح ترشيح TeacherReviewRequest فحسب؛ أما TierReviewRequest الرسمي
وapplyDecision() فيقعان في محرك RTI.
نقاط نهاية واجهة برمجة التطبيقات (7)
جميع المسارات تستلزم مصادقة المعلم ونطاق ClassTeacher.
| الأسلوب | المسار | الغرض |
|---|---|---|
GET | /api/workflow/steps | تحميل تعريفات الخطوات الـ 17 (مثبّتة الإصدار) |
GET | /api/workflow/recommendations/:classId | جلب توصيات الفصل (مصدر بيانات لوحة التوصيات) |
GET | /api/workflow/draft/:teacherId/:classId | استئناف مسودة قيد التنفيذ |
POST | /api/workflow/save-draft | استمرار حالة المسودة (upsert بمهلة 7 أيام) |
POST | /api/workflow/activate | إقرار التفعيل — إمّا تعيين حزمة (kind="activated") أو تسجيل توجيه من غير الحزم (kind="routed")؛ راجع “ناتجا التفعيل” أعلاه |
POST | /api/workflow/review | حل تنبيه الانتكاس الحاد (رفض أو تصعيد) |
POST | /api/workflow/exit | إنهاء / إغلاق الخطة |
للاطلاع على أشكال الطلب والاستجابة الكاملة، راجع مرجع واجهة برمجة التطبيقات.
أدلة ذات صلة
- حزم التدخل: كيفية هيكلة الحزم (خيط أساسي + خيوط داعمة + جسر الأصول)
- التجميع الذكي: كيفية حساب هوية المجموعة بالمفاتيح الخمسة
- مراقبة التقدم: حالة المراقبة التي يقرأها سطح مراجعة الخطة
- سلامة اللغة: سبب استبدال علامات السياق بملاحظات المعلم الحرة