{ "schema_name": "ai_task_queue_multisubject_modification_plan", "version": "1.0.0", "files_to_add_or_replace": [ "subjects_registry.json <- subjects_registry_v1_1_multitask.json", "ai_task_registry.json", "question_quality_policy.json" ], "python_files_to_modify": [ { "file": "ai_task_queue_manager.py", "changes": [ "استبدال normalize_subject() hardcoded بقراءة aliases من subjects_registry.json.", "تعميم scan_question_bank_for_audit(subject=None, grade=None, stage=None, skill_id=None).", "تعميم create_or_resume_question_quality_task(subject='all', grade=None, stage=None, skill_id=None, requested_by='admin').", "تغيير task_id من grade-only إلى task_name + subject + scope + scan_id.", "حفظ task_name وsubject وgrade/stage/skill_id داخل Snapshot وكل سجل عمل.", "إضافة create_or_resume_question_translation_task(...).", "إضافة run_question_translation_task(...).", "إضافة run_translated_question_concept_review(...).", "عدم إنشاء بنوك ترجمة منفصلة؛ الكتابة في نفس سجل السؤال مع translation_history.", "الإبقاء على ملفات approved/review/intermediate نفسها لجميع المواد.", "إزالة phi_status/qwen_status من العقد الجديد تدريجياً واستبدالهما role_status/task_phase مع إبقاء توافق القراءة للمهام القديمة.", "استدعاء AIManager.run_task(task_name=...) بدل أسماء النماذج." ] }, { "file": "ai_manager.py", "changes": [ "إضافة aliases للمهام الثلاث الجديدة إن لزم.", "تحديث embedded fallback official_task_names ليشمل question_quality وquestion_translation وtranslated_question_concept_review.", "لا يضاف أي اسم نموذج إلى callers؛ resolve_ai_role يقرأ ai_task_registry.json." ] }, { "file": "ai_models.py", "changes": [ "التأكد من وجود roles وظيفية: question_support_reviewer, question_translation, translated_question_concept_review.", "ربط كل role بالنموذج الحالي من الإعدادات فقط؛ لا hardcode في AITaskQueueManager." ] }, { "file": "admin_office_ui.py", "changes": [ "قائمة المادة تأتي من subjects_registry.json مع خيار كل المواد.", "إظهار task filter: تدقيق / ترجمة / مراجعة مفهوم الترجمة.", "grade/stage يظهران ديناميكياً حسب المادة.", "نفس تبويب المرفوضات والمعتمد لكل المواد مع فلتر subject." ] } ], "recommended_new_public_methods": [ "list_supported_subjects()", "scan_question_bank_for_audit(subject=None, grade=None, stage=None, skill_id=None)", "create_or_resume_question_quality_task(subject='all', grade=None, stage=None, skill_id=None, requested_by='admin')", "create_or_resume_question_translation_task(subject, source_language, target_language, grade=None, stage=None, skill_id=None, requested_by='admin')", "run_question_translation_task(task_id, max_items=0, max_retries=2)", "run_translated_question_concept_review(task_id, max_items=0, max_retries=2)", "question_task_progress(task_id)" ], "do_not_create": [ "question_translation_task_manager.py", "arabic_quality_bank.jsonl", "math_quality_bank.jsonl", "arabic_rejected.jsonl", "translation_bank_arabic.jsonl" ] }