---
title: "حزم التدخل"
url: https://docs.growamal.com/ar/guides/intervention-bundles/
language: ar
---

# حزم التدخل

عندما يكون للطالب ملف تعليمي نشط، تقوم وحدة `modules/bundle` بخطوة واحدة:
تبحث عن الملف في **خريطة حتمية من 21 صفًا** وتُعيد إمّا حزمة تدخل واحدة محدَّدة
بالاسم **أو** ناتج توجيه/إجراء من غير الحزم. وفق R12 Tier-D، فإن **7 من صفوف
الخريطة الـ 21** (MAP-000/001/002/003/018/019/020) تُحَلّ إلى كائن من غير الحزم
بقيمة `recommended_bundle_id = NULL` — عملية مراقبة، أو خيار صيانة/إثراء، أو
إجراء دعم خفيف، أو وحدة دعم، أو حارس توجيه، أو كائن غير نشط مستقبلًا. وحدها
صفوف MAP-004..017 تُعيد حزمة حقيقية تكتب `bundle_assignment`. ثم يقرر المعلم
ما إذا كان سيُفعِّلها. لا يصل شيء إلى الطالب حتى يتصرف المعلم (V-12).

## الكتالوج

كتالوج الحزم هو **14 حزمة تدخل + 7 كائنات مُعاد تصنيفها من غير الحزم = 23 صفًا
فعليًا** في `bundle_definition` (16 صفًا من نوع الحزمة — بما فيها صفوف متغيّرات
`VOCAB_SYNTAX_MORPH` الثلاثة — إضافةً إلى 7 كائنات من غير الحزم). يحمل كل صف
تعداد `BundleObjectType` (9 قيم)؛ وحدها صفوف `INTERVENTION_BUNDLE` /
`COMPOSITE_SEQUENCE_PLAN` / `COMPOSITE_INTERVENTION_BUNDLE` تكتب
`bundle_assignment` عند التفعيل. الحزم هي عناصر كتالوج مغلق محدَّدة
بـ `bundleId` نصي. فهي ليست مُولَّدة، وليست حرة الشكل، وليست خاصة بطالب.
ما يتغير لكل طالب هو **مستوى السقالة** المعيَّن لكل مهارة ضمن تلك الحزمة.

الكتالوج مُصدَر بإصدارات وفق مبدأ النشر ثم التجميد: بمجرد نشر إصدار الكتالوج
لا يُعدَّل أبدًا. نقطة نهاية إعادة التشغيل الجافة V-6 تتيح معاينة تأثير
تغيير الكتالوج على التوصيات الموجودة قبل النشر.

## من الملف إلى الحزمة: الخريطة

خريطة `profile_bundle_map` ذات الـ 21 صفًا مُفهرَسة على
`(primary_profile_code, access_driver | comprehension_subprofile | modifier_driver)`.
عمود المحرِّك الإضافي يُضيق الحزمة المختارة للملفات التي لها أنواع فرعية
تعليمية متمايزة.

الصف `MAP-000` هو حالة التوقف. صف الحزمة الحارسة `NO_BUNDLE_SYSTEM_GUARD`
**مُلغى** (D-015، GAP-021)؛ وقد صار `MAP-000` كائن `ROUTING_GUARD`. عندما لا
يكون للطالب ملف نشط، أو حالة حارس `DATA_INCOMPLETE`، أو مهارة محور بنتيجة
`do_not_decide_yet`، تُعيد الخريطة `recommended_bundle_id = NULL`،
و`object_type = ROUTING_GUARD`، و`routing_state = BLOCKED_MISSING_EVIDENCE`،
و`recommendation_status = blocked_insufficient_evidence`، مع
`next_recommended_data_action` يُسمِّي إجراء البيانات المطلوب تحديدًا. لا
تُوصى أي حزمة ولا يوجد مسار تجاوز.

> **تنبيه:** `MAP-000` هو توقف صارم. لم يعد صف حزمة بديلة، بل صار ناتج توجيه بحزمة قابلة
> للإبطال (NULL). يُظهر فقط الإجراء التالي للبيانات، وليس حزمة. لا يتجاوزه أي
> رمز تجاوز. إجراء المعلم هو إكمال خطوة جمع البيانات المحددة، وليس تفعيل خطة بديلة.

## نموذج المسار المترابط

كل حزمة موصى بها تتكون من ثلاثة أجزاء:

| الجزء | الدور | القاعدة |
|---|---|---|
| المحور | محور التركيز الأساسي للدورة | يعالج مجموعة المهارة الأساسية؛ دائمًا أكبر نطاق تخصيص |
| الخيوط الداعمة (1–2) | مرتبطة بالمحور | تعالج مهارات مرتبطة بالمحور؛ 2 كحد أقصى |
| جسر الأصول | جسر قائم على نقطة قوة | يبني على قوة موثَّقة؛ `not_enough_evidence` عند غياب بيانات الدعم |

> **ملاحظة:** **R12 Tier-D (D-003) — تغيّر نموذج الجرعة.** أُلغيت التقسيمات ذات النسب المئوية
> الثابتة لكل جلسة. صارت الجرعة تُعبَّر عنها بـ **نطاقات تخصيص تراكمية عبر الدورة**
> على امتداد دورة التدخل (وصفتان رئيسيتان في ورقة Q11 رقم 07)، وتُخزَّن عبر عمود
> `cycle_allocation_model` في `bundle_definition`. النسب الثابتة القديمة 40–60% /
> 25–35% / 10–15% هي **النموذج القديم — للتوضيح فقط**.

قيد CHECK القديم على `dosageSplit` JSONB (المجموع `== 100` + كون المحور الأكبر
صارمًا) في قاعدة البيانات **مُسقَط**. صار المحرك (`threaded-path.ts`) يتحقق من أن
*نطاق* المحور هو الأكبر (`dosageSplitWellFormed` القائم على النطاقات)، لا من قيد
CHECK يفرض أكبرية نسبة ثابتة. واختبار CI `test:ibc:weights` (= `test:qa:020`)
صار يتحقق من ثابت "نطاق المحور هو الأكبر تراكميًا عبر الدورة"، لا من المجموع
`== 100`.

## مستوى السقالة

يُعيَّن مستوى السقالة **لكل (طالب × مهارة × حزمة × نوع مهمة)**
وليس لكل طالب وليس لكل حزمة. قد يكون للطالب `Level_1_Foundation`
على مهارة واحدة ضمن حزمة و`Level_2_Targeted` على مهارة أخرى.

| المستوى | المعرِّف |
|---|---|
| أساسي | `Level_1_Foundation` |
| مستهدَف | `Level_2_Targeted` |
| استقلالية | `Level_3_Independence` |

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

تعديلات مستوى السقالة تستخدم قاعدة التجاوز `OVR_SCAFFOLD` مع `reasonCode`
من كتالوج الـ 9 رموز. مستوى RTI موجود في `forbidden_fields` لكل تجاوز ولا
يُكتب أبدًا من خلال أي نقطة نهاية للحزمة.

## دورة حياة تعيين الحزمة

يُكتب `bundle_assignment` **فقط** لأنواع كائنات الحزم
(`INTERVENTION_BUNDLE` / `COMPOSITE_SEQUENCE_PLAN` /
`COMPOSITE_INTERVENTION_BUNDLE` — MAP-004..017). أما أنواع النواتج الأربعة من
غير الحزم فتُسجِّلها وحدة TAW كرموز توجيه/إجراء دون كتابة أي صف
`bundle_assignment`.

بمجرد تفعيل المعلم للحزمة، يتبع التعيين **آلة حالات من 17 حالة (بما فيها
`paused` كحالة تعليق انتقالية)** تعكس حلقة المراقبة:

```
recommended → in_review → activated → monitoring
                                      ├─ paused
                                      ├─ reviewed → continued | adjusted | modified
                                      ├─ escalated → immediate_review
                                      ├─ data_completion_required
                                      ├─ met_criteria → exited
                                      ├─ teacher_modified
                                      ├─ regression_review
                                      └─ rescinded
```

القائمة التفصيلية لـ `BundleAssignmentStatus` هي المرجع القانوني المُعاد في
`ActivateBundleResponse` والمكشوف على نقطة نهاية توزيع ملفات الفصل.

## تعديلات المعلم (رموز التجاوز)

يُعدِّل المعلمون معاملات الحزمة (وضع التسليم، والجدول، وأعلام السياق)
من خلال عمليات تجاوز مضبوطة. كل تعديل يختار `reasonCode` من
`OverrideCodeCatalog` ذي الـ 9 رموز:

| الرمز | النطاق المنطبق |
|---|---|
| `Override_Contextual_01` | الكل |
| `Override_Procedural_02` | الكل |
| `Override_Scheduled_03` | الكل |
| `Override_DataGap_04` | الكل |
| `Gam_Award_Invalid_05` | إلغاء المكافأة فقط |
| `Bundle_Met_Criteria_06` | الخروج من الحزمة |
| `Bundle_Teacher_Modify_07` | الخروج من الحزمة |
| `Bundle_Acute_Regression_08` | الخروج من الحزمة |
| `Bundle_Data_Incomplete_09` | الخروج من الحزمة |

**لا توجد حقول سبب نصية حرة في أي مكان في وحدة الحزمة.** جميع نقاط نهاية
التعديل تقبل فقط `reasonCode` FK في هذا الكتالوج. يُطبَّق هذا على مستوى
فحص CI (`pnpm lint:bundle`).

أعلام السياق (مثل `CTX_SESSION_INTERRUPTED`) قد ترافق التعديل اختياريًا.
القيم الـ 7 المسموح بها لـ `ContextFlagId` هي الأعلام الوحيدة القابلة للتمثيل؛
الأعلام الـ 3 المحجوبة غير قابلة للبناء من خلال API.

## نقاط النهاية الرئيسية

| نقطة النهاية | الغرض |
|---|---|
| `POST /api/bundles/recommend` | احتساب وكتابة توصية حزمة للطالب |
| `GET /api/bundles/catalog` | جميع صفوف الكتالوج الـ 22 (14 حزمة تدخل + 7 كائنات من غير الحزم؛ 23 صفًا فعليًا في `bundle_definition`، والحارس الداخلي `NO_BUNDLE_SYSTEM_GUARD` مُستثنى من هذه الاستجابة) |
| `GET /api/bundles/:id/definition` | حزمة واحدة مع خيارات التسليم وقاعدة المجموعة |
| `GET /api/bundles/profile-map` | جميع صفوف الخريطة الـ 21 وقواعد التكامل |
| `POST /api/students/:id/activate-bundle` | تفعيل المعلم لتوصية |
| `PATCH /api/students/:id/scaffold-assignment` | تعديل OVR_SCAFFOLD |
| `PATCH /api/assignments/:id/delivery` | تعديل OVR_DELIVERY |
| `PATCH /api/assignments/:id/schedule` | تعديل OVR_SCHEDULE |
| `POST /api/assignments/:id/context-flag` | OVR_CONTEXT_FLAG (7 معرفات أعلام مسموح بها) |
| `POST /api/admin/bundle-config-sets` | نشر إصدار كتالوج جديد |
| `POST /api/admin/bundle-replay` | إعادة تشغيل جافة V-6؛ لا تكتب شيئًا |

نقاط نهاية المجموعة الذكية والتفعيل الجماعي موجودة في
[التجميع الذكي](https://docs.growamal.com/ar/guides/smart-clustering/).

## الارتباطات

- **المصدر:** [ملفات الطلاب](https://docs.growamal.com/ar/guides/student-profiles/): الملف النشط
  هو المدخل لخريطة الملف إلى الحزمة.
- **المصبّ:** [التجميع الذكي](https://docs.growamal.com/ar/guides/smart-clustering/): منطق المجموعة
  يُجمِّع الطلاب الذين يتشاركون الحزمة والمحور والمستوى ووضع التسليم.
- **المراقبة:** [مراقبة التقدم](https://docs.growamal.com/ar/guides/progress-monitoring/): قواعد سلامة
  GSR الـ 5 ومعايير النجاح الـ 19 لكل حزمة التي تحكم انتقالات الحزمة.
- **سير العمل:** [سير عمل تفعيل المعلم](https://docs.growamal.com/ar/guides/teacher-activation/): سير
  العمل المكوَّن من 17 خطوة الذي يُحرِّك تأكيد المعلم والتعديل والمراجعة.
- **تسليم المهام:** [تسليم المهام](https://docs.growamal.com/ar/guides/task-delivery/): بمجرد أن تكون
  الحزمة نشطة، يختار تسليم المهام ويُقدِّم عناصر مخزَّنة باستخدام مستوى السقالة.
