bayan-api / tests /phase11 /reports /adversarial_diagnostic.json
youssefreda9's picture
Phase 11.5: Adversarial diagnostic + 4 critical pipeline fixes
b33660c
Raw
History Blame Contribute Delete
89.5 kB
{
"timestamp": "2026-06-23T17:47:48Z",
"target": "https://bayan10-bayan-api.hf.space",
"total_vectors": 36,
"pass_rate": 83.3,
"by_verdict": {
"PASS": 30,
"FAIL_MODEL": 2,
"FAIL_FILTER": 4
},
"by_category": {
"offset_shift": {
"total": 5,
"pass": 5,
"fail": 0
},
"prefix_handling": {
"total": 10,
"pass": 8,
"fail": 2
},
"stagelocker": {
"total": 6,
"pass": 6,
"fail": 0
},
"overcorrection": {
"total": 10,
"pass": 6,
"fail": 4
},
"model_mismatch": {
"total": 5,
"pass": 5,
"fail": 0
}
},
"offset_issues": [],
"filter_issues": [
{
"vector_id": "OVR-002",
"category": "overcorrection",
"subcategory": "correct_grammar_unchanged",
"input_text": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد",
"expected_behavior": "Correct SV agreement + tanween — must not be modified",
"grammar_raw_output": "المهندسون يعملون في المصنع الكبير بجد واجتهاد",
"grammar_raw_ms": 4220,
"punctuation_raw_output": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد.",
"punctuation_raw_ms": 3964,
"pipeline_output": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد.",
"pipeline_corrected": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "واجتهاد.",
"end": 46,
"id": "2ee09f18-187f-42a4-83bc-e81d696ffa80",
"locked": true,
"original": "واجتهاد",
"priority": 2,
"start": 39,
"type": "punctuation"
}
],
"pipeline_ms": 10058,
"pipeline_timing": {
"grammar_ms": 948,
"punctuation_ms": 833,
"spelling_ms": 5345,
"total_ms": 7132
},
"verdict": "FAIL_FILTER",
"root_cause": "Correct text was modified: ['واجتهاد→واجتهاد.']",
"failure_detail": "All changes: ['واجتهاد→واجتهاد.']",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-007",
"category": "overcorrection",
"subcategory": "tanween_preservation",
"input_text": "قرأت كتاباً جميلاً عن التاريخ",
"expected_behavior": "Tanween (ً) must be preserved — grammar should not strip it",
"grammar_raw_output": "قرأت كتابا جميلا عن التاريخ",
"grammar_raw_ms": 5403,
"punctuation_raw_output": "قرأت كتاباً جميلاً عن التاريخ!",
"punctuation_raw_ms": 4864,
"pipeline_output": "قرأت كتاباً جميلاً عن التاريخ!",
"pipeline_corrected": "قرأت كتاباً جميلاً عن التاريخ!",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "التاريخ!",
"end": 29,
"id": "a516b100-8451-4611-a618-a3c914e05928",
"locked": true,
"original": "التاريخ",
"priority": 2,
"start": 22,
"type": "punctuation"
}
],
"pipeline_ms": 5350,
"pipeline_timing": {
"grammar_ms": 1185,
"punctuation_ms": 730,
"spelling_ms": 2609,
"total_ms": 4529
},
"verdict": "FAIL_FILTER",
"root_cause": "Correct text was modified: ['التاريخ→التاريخ!']",
"failure_detail": "All changes: ['التاريخ→التاريخ!']",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-008",
"category": "overcorrection",
"subcategory": "correct_feminine_form",
"input_text": "المعلمة الجديدة شرحت الدرس",
"expected_behavior": "Already correct — must NOT change المعلمة to المعلمه",
"grammar_raw_output": "المعلمة الجديدة شرحت الدرس",
"grammar_raw_ms": 4415,
"punctuation_raw_output": "المعلمة الجديدة شرحت الدرس.",
"punctuation_raw_ms": 1481,
"pipeline_output": "المعلمة الجديدة شرحت الدرس.",
"pipeline_corrected": "المعلمة الجديدة شرحت الدرس.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الدرس.",
"end": 26,
"id": "31693a38-f540-437b-977b-f541204fa564",
"locked": true,
"original": "الدرس",
"priority": 2,
"start": 21,
"type": "punctuation"
}
],
"pipeline_ms": 6679,
"pipeline_timing": {
"grammar_ms": 852,
"punctuation_ms": 643,
"spelling_ms": 1817,
"total_ms": 3314
},
"verdict": "FAIL_FILTER",
"root_cause": "Correct text was modified: ['الدرس→الدرس.']",
"failure_detail": "All changes: ['الدرس→الدرس.']",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-010",
"category": "overcorrection",
"subcategory": "digits_protection",
"input_text": "تأسست الشركة عام 2020 وبلغ عدد موظفيها 150 شخصاً",
"expected_behavior": "Digits must NOT be corrupted by grammar model",
"grammar_raw_output": "تأسست الشركة عام 2020 وبلغ عدد موظفيها 150 شخصا",
"grammar_raw_ms": 4709,
"punctuation_raw_output": "تأسست الشركة عام 2020 وبلغ عدد موظفيها 150 شخصاً.",
"punctuation_raw_ms": 1835,
"pipeline_output": "تأسست الشركة عام يناير وبلغ عدد موظفيها خمسين شخصاً.",
"pipeline_corrected": "تأسست الشركة عام يناير وبلغ عدد موظفيها خمسين شخصاً.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "شخصاً.",
"end": 48,
"id": "3905f603-2a35-4786-a1cd-8d44c1995ba9",
"locked": true,
"original": "شخصاً",
"priority": 2,
"start": 43,
"type": "punctuation"
},
{
"alternatives": [
"يناير",
"2020"
],
"confidence": 0.6,
"correction": "يناير",
"end": 21,
"id": "99bdcd3f-20bf-4319-be00-cf116e7163a6",
"locked": true,
"original": "2020",
"priority": 1,
"start": 17,
"type": "spelling"
},
{
"alternatives": [
"خمسين",
"150"
],
"confidence": 0.6,
"correction": "خمسين",
"end": 42,
"id": "91023a54-9a4f-415c-83cc-746e12f64dc3",
"locked": true,
"original": "150",
"priority": 1,
"start": 39,
"type": "spelling"
}
],
"pipeline_ms": 15379,
"pipeline_timing": {
"grammar_ms": 1106,
"punctuation_ms": 905,
"spelling_ms": 9998,
"total_ms": 12016
},
"verdict": "FAIL_FILTER",
"root_cause": "Digits were corrupted",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
}
],
"pipeline_issues": [],
"model_issues": [
{
"vector_id": "PFX-001",
"category": "prefix_handling",
"subcategory": "wa_prefix",
"input_text": "وبالمستشفيات الكبيره يعالجون المرضي",
"expected_behavior": "وبالمستشفيات should NOT be split or hallucinated — it's a valid prefixed word",
"grammar_raw_output": "وبالمستشفيات الكبيرة يعالج المرضي",
"grammar_raw_ms": 2971,
"punctuation_raw_output": "وبالمستشفيات الكبيره يعالجون المرضي.",
"punctuation_raw_ms": 3292,
"pipeline_output": "والمستشفيات الكبيرة تعالج المرضى",
"pipeline_corrected": "والمستشفيات الكبيرة تعالج المرضى",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 1.0,
"correction": "الكبيرة تعالج المرضى",
"end": 35,
"id": "864ec032-739e-4cdd-8c0e-ddaba704a15d",
"locked": true,
"original": "الكبيره يعالجون المرضي",
"priority": 3,
"start": 13,
"type": "grammar"
},
{
"alternatives": [
"والمستشفيات",
"بالمستشفيات",
"وبالمستشفيات"
],
"confidence": 0.7,
"correction": "والمستشفيات",
"end": 12,
"id": "f22611a6-17ce-49d8-a3e1-fe5f182496f2",
"locked": true,
"original": "وبالمستشفيات",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 8651,
"pipeline_timing": {
"grammar_ms": 900,
"punctuation_ms": 670,
"spelling_ms": 3928,
"total_ms": 5504
},
"verdict": "FAIL_MODEL",
"root_cause": "Prefix word was split, hallucinated, or destroyed",
"failure_detail": "Input had prefixed words that were corrupted in output",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-005",
"category": "prefix_handling",
"subcategory": "fa_prefix",
"input_text": "فبالتالي يجب ان نعمل بجد",
"expected_behavior": "فبالتالي is valid, should not be split or changed",
"grammar_raw_output": "فبالتالي يجب ان نعمل بجد",
"grammar_raw_ms": 4139,
"punctuation_raw_output": "فبالتالي يجب ان نعمل بجد.",
"punctuation_raw_ms": 3775,
"pipeline_output": "وبالتالي يجب أن نعمل بجد",
"pipeline_corrected": "وبالتالي يجب أن نعمل بجد",
"pipeline_suggestions": [
{
"alternatives": [
"أن",
"ال",
"من",
"ان"
],
"confidence": 0.9,
"correction": "أن",
"end": 15,
"id": "6bad78e5-9590-4425-9f0d-a206aa9e494f",
"locked": true,
"original": "ان",
"priority": 1,
"start": 13,
"type": "spelling"
},
{
"alternatives": [
"وبالتالي",
"فبالتالي"
],
"confidence": 0.6,
"correction": "وبالتالي",
"end": 8,
"id": "07473106-3459-4551-8c57-649eb7055f5d",
"locked": true,
"original": "فبالتالي",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 8459,
"pipeline_timing": {
"grammar_ms": 747,
"punctuation_ms": 452,
"spelling_ms": 4087,
"total_ms": 5292
},
"verdict": "FAIL_MODEL",
"root_cause": "Prefix word was split, hallucinated, or destroyed",
"failure_detail": "Input had prefixed words that were corrupted in output",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
}
],
"results": [
{
"vector_id": "OFS-001",
"category": "offset_shift",
"subcategory": "punct_after_spelling_fix",
"input_text": "ذهبت الي المدرسه وقابلت صديقتي وتحدثنا كثيرا",
"expected_behavior": "Punct marks should align with corrected text, not shift 1-2 words",
"grammar_raw_output": "ذهبت إلى المدرسة وقابلت صديقتي وتحدثنا كثيرا",
"grammar_raw_ms": 2192,
"punctuation_raw_output": "ذهبت الي المدرسه وقابلت صديقتي وتحدثنا. كثيرا",
"punctuation_raw_ms": 4539,
"pipeline_output": "ذهبت إلى المدرسة وقابلت صديقتي وتحدثنا كثيرا.",
"pipeline_corrected": "ذهبت إلى المدرسة وقابلت صديقتي وتحدثنا كثيرا.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "كثيرا.",
"end": 44,
"id": "a75e719f-d731-4b6b-a818-c6677d86e805",
"locked": true,
"original": "كثيرا",
"priority": 2,
"start": 39,
"type": "punctuation"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 8,
"id": "16414133-769e-4d51-97a4-99a08f72cfee",
"locked": true,
"original": "الي",
"priority": 1,
"start": 5,
"type": "spelling"
},
{
"alternatives": [
"المدرسة",
"المدرسي",
"المدرس",
"المدرسه"
],
"confidence": 0.9,
"correction": "المدرسة",
"end": 16,
"id": "b07eb52f-656d-48de-b10e-fc1ad7ab3ba3",
"locked": true,
"original": "المدرسه",
"priority": 1,
"start": 9,
"type": "spelling"
}
],
"pipeline_ms": 15129,
"pipeline_timing": {
"grammar_ms": 1100,
"punctuation_ms": 1028,
"spelling_ms": 12751,
"total_ms": 14915
},
"verdict": "PASS",
"root_cause": "Spans aligned correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OFS-002",
"category": "offset_shift",
"subcategory": "punct_after_multi_word_fix",
"input_text": "الطلاب ذهبو الي المكتبه لقراءة الكتب",
"expected_behavior": "Punctuation positions should not drift after spelling corrects الي→إلى and المكتبه→المكتبة",
"grammar_raw_output": "الطلاب ذهبوا إلى المكتبة لقراءة الكتب",
"grammar_raw_ms": 3641,
"punctuation_raw_output": "الطلاب ذهبو الي المكتبه لقراءة الكتب.",
"punctuation_raw_ms": 5669,
"pipeline_output": "الطلاب ذهبوا إلى المكتبة لقراءة الكتب.",
"pipeline_corrected": "الطلاب ذهبوا إلى المكتبة لقراءة الكتب.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الكتب.",
"end": 36,
"id": "70e059c6-dc53-4d2a-8264-1d30b38dd374",
"locked": true,
"original": "الكتب",
"priority": 2,
"start": 31,
"type": "punctuation"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 15,
"id": "f3a2de67-9b80-48a5-bfe2-630f4a974d47",
"locked": true,
"original": "الي",
"priority": 1,
"start": 12,
"type": "spelling"
},
{
"alternatives": [
"المكتبة",
"المكتب",
"المشتبه",
"المكتبه"
],
"confidence": 0.9,
"correction": "المكتبة",
"end": 23,
"id": "21cdcf2c-a116-4ad9-b4a2-408ffdc944d3",
"locked": true,
"original": "المكتبه",
"priority": 1,
"start": 16,
"type": "spelling"
},
{
"alternatives": [
"ذهبوا",
"ذهب",
"ذهبت",
"ذهبو"
],
"confidence": 0.7,
"correction": "ذهبوا",
"end": 11,
"id": "b6a655e2-0947-424b-8583-18fa28425ed6",
"locked": true,
"original": "ذهبو",
"priority": 1,
"start": 7,
"type": "spelling"
}
],
"pipeline_ms": 12183,
"pipeline_timing": {
"grammar_ms": 894,
"punctuation_ms": 861,
"spelling_ms": 5803,
"total_ms": 7565
},
"verdict": "PASS",
"root_cause": "Spans aligned correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OFS-003",
"category": "offset_shift",
"subcategory": "length_changing_fix",
"input_text": "انا احب القراءه كثيرا وخصوصا الكتب العلميه",
"expected_behavior": "أنا → 3 chars vs انا → 3 chars (same length), but القراءه→القراءة changes char positions",
"grammar_raw_output": "أنا أحب القراءة كثيرا وخصوصا الكتب العلمية",
"grammar_raw_ms": 5069,
"punctuation_raw_output": "انا احب القراءه كثيرا وخصوصا الكتب العلميه.",
"punctuation_raw_ms": 3695,
"pipeline_output": "أنا أحب القراءة كثيرا وخصوصا الكتب العلمية.",
"pipeline_corrected": "أنا أحب القراءة كثيرا وخصوصا الكتب العلمية.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "العلمية.",
"end": 42,
"id": "d425111e-86bd-408c-a730-abbf9b16d0d3",
"locked": true,
"original": "العلميه",
"priority": 2,
"start": 35,
"type": "punctuation"
},
{
"alternatives": [],
"confidence": 1.0,
"correction": "القراءة",
"end": 15,
"id": "1f15dcfb-98ee-4595-b9e4-5ff1ac1798b2",
"locked": true,
"original": "القراءه",
"priority": 1,
"start": 8,
"type": "spelling"
},
{
"alternatives": [
"أنا",
"الا",
"ان",
"انا"
],
"confidence": 0.9,
"correction": "أنا",
"end": 3,
"id": "024c3155-f0b1-44eb-a893-1323375f3ca8",
"locked": true,
"original": "انا",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"أحب",
"الب",
"احت",
"احب"
],
"confidence": 0.9,
"correction": "أحب",
"end": 7,
"id": "4617eaa9-d3ac-49d8-a6ed-44fe9399ae6b",
"locked": true,
"original": "احب",
"priority": 1,
"start": 4,
"type": "spelling"
}
],
"pipeline_ms": 11427,
"pipeline_timing": {
"grammar_ms": 865,
"punctuation_ms": 859,
"spelling_ms": 5156,
"total_ms": 6892
},
"verdict": "PASS",
"root_cause": "Spans aligned correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OFS-004",
"category": "offset_shift",
"subcategory": "insertion_diffs",
"input_text": "كتبت رساله لصديقي واخبرته بالاخبار",
"expected_behavior": "When spelling inserts أ (اخبرته→أخبرته), downstream coords must shift +1",
"grammar_raw_output": "كتبت رسالة لصديقي وأخبرته بالأخبار",
"grammar_raw_ms": 5247,
"punctuation_raw_output": "كتبت رساله لصديقي واخبرته بالاخبار.",
"punctuation_raw_ms": 4047,
"pipeline_output": "كتبت رسالة لصديقي واخبرته بالاخبار.",
"pipeline_corrected": "كتبت رسالة لصديقي واخبرته بالاخبار.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "بالاخبار.",
"end": 34,
"id": "cf599833-50ed-4e29-a29a-e34015bc5c06",
"locked": true,
"original": "بالاخبار",
"priority": 2,
"start": 26,
"type": "punctuation"
},
{
"alternatives": [
"رسالة",
"رسالته",
"رسالت",
"رساله"
],
"confidence": 0.9,
"correction": "رسالة",
"end": 10,
"id": "17395e5a-34d1-4900-8dda-d17334fc7232",
"locked": true,
"original": "رساله",
"priority": 1,
"start": 5,
"type": "spelling"
}
],
"pipeline_ms": 10598,
"pipeline_timing": {
"grammar_ms": 954,
"punctuation_ms": 845,
"spelling_ms": 5722,
"total_ms": 7525
},
"verdict": "PASS",
"root_cause": "Spans aligned correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OFS-005",
"category": "offset_shift",
"subcategory": "multi_stage_coord_chain",
"input_text": "المهندسون ذهبو الي الموقعو وبدأو العمل",
"expected_behavior": "3+ fixes in same sentence: verify offset chain doesn't accumulate drift",
"grammar_raw_output": "المهندسون ذهبو إلى الموقع وبدأو العمل",
"grammar_raw_ms": 4050,
"punctuation_raw_output": "المهندسون ذهبو الي الموقعو وبدأو العمل.",
"punctuation_raw_ms": 3819,
"pipeline_output": "المهندسون ذهبوا إلى الموقع وبدأوا العمل.",
"pipeline_corrected": "المهندسون ذهبوا إلى الموقع وبدأوا العمل.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "العمل.",
"end": 38,
"id": "64709109-bee3-4899-9f03-c1518bea5c98",
"locked": true,
"original": "العمل",
"priority": 2,
"start": 33,
"type": "punctuation"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 18,
"id": "1ea64620-098c-43f1-b3ee-7697cc122318",
"locked": true,
"original": "الي",
"priority": 1,
"start": 15,
"type": "spelling"
},
{
"alternatives": [
"ذهبوا",
"ذهب",
"ذهبت",
"ذهبو"
],
"confidence": 0.7,
"correction": "ذهبوا",
"end": 14,
"id": "6f7ea270-b62f-41f1-958d-329c34880996",
"locked": true,
"original": "ذهبو",
"priority": 1,
"start": 10,
"type": "spelling"
},
{
"alternatives": [
"الموقع",
"الموقعة",
"الموقعو"
],
"confidence": 0.7,
"correction": "الموقع",
"end": 26,
"id": "7aca1cd0-c410-4dd0-bb2d-f6f862de374b",
"locked": true,
"original": "الموقعو",
"priority": 1,
"start": 19,
"type": "spelling"
},
{
"alternatives": [
"وبدأوا",
"وبدأ",
"وبدأت",
"وبدأو"
],
"confidence": 0.7,
"correction": "وبدأوا",
"end": 32,
"id": "7b93e1e9-89c4-40a9-ac80-f23d0a938529",
"locked": true,
"original": "وبدأو",
"priority": 1,
"start": 27,
"type": "spelling"
}
],
"pipeline_ms": 10684,
"pipeline_timing": {
"grammar_ms": 1091,
"punctuation_ms": 953,
"spelling_ms": 4027,
"total_ms": 6078
},
"verdict": "PASS",
"root_cause": "Spans aligned correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-001",
"category": "prefix_handling",
"subcategory": "wa_prefix",
"input_text": "وبالمستشفيات الكبيره يعالجون المرضي",
"expected_behavior": "وبالمستشفيات should NOT be split or hallucinated — it's a valid prefixed word",
"grammar_raw_output": "وبالمستشفيات الكبيرة يعالج المرضي",
"grammar_raw_ms": 2971,
"punctuation_raw_output": "وبالمستشفيات الكبيره يعالجون المرضي.",
"punctuation_raw_ms": 3292,
"pipeline_output": "والمستشفيات الكبيرة تعالج المرضى",
"pipeline_corrected": "والمستشفيات الكبيرة تعالج المرضى",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 1.0,
"correction": "الكبيرة تعالج المرضى",
"end": 35,
"id": "864ec032-739e-4cdd-8c0e-ddaba704a15d",
"locked": true,
"original": "الكبيره يعالجون المرضي",
"priority": 3,
"start": 13,
"type": "grammar"
},
{
"alternatives": [
"والمستشفيات",
"بالمستشفيات",
"وبالمستشفيات"
],
"confidence": 0.7,
"correction": "والمستشفيات",
"end": 12,
"id": "f22611a6-17ce-49d8-a3e1-fe5f182496f2",
"locked": true,
"original": "وبالمستشفيات",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 8651,
"pipeline_timing": {
"grammar_ms": 900,
"punctuation_ms": 670,
"spelling_ms": 3928,
"total_ms": 5504
},
"verdict": "FAIL_MODEL",
"root_cause": "Prefix word was split, hallucinated, or destroyed",
"failure_detail": "Input had prefixed words that were corrupted in output",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-002",
"category": "prefix_handling",
"subcategory": "ba_prefix",
"input_text": "بالمدرسه الجديده تعلمت كثيرا",
"expected_behavior": "بالمدرسه → بالمدرسة (only ه→ة fix, keep ب prefix)",
"grammar_raw_output": "بالمدرسة الجديدة تعلمت كثيرا",
"grammar_raw_ms": 4857,
"punctuation_raw_output": "بالمدرسه الجديده تعلمت كثيرا!",
"punctuation_raw_ms": 3498,
"pipeline_output": "بالمدرسة الجديدة تعلمت كثيرا!",
"pipeline_corrected": "بالمدرسة الجديدة تعلمت كثيرا!",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "كثيرا!",
"end": 28,
"id": "2ed528c2-3c7d-4e79-a44a-7403baea2498",
"locked": true,
"original": "كثيرا",
"priority": 2,
"start": 23,
"type": "punctuation"
},
{
"alternatives": [
"بالمدرسة",
"بالمدرسه"
],
"confidence": 0.9,
"correction": "بالمدرسة",
"end": 8,
"id": "eb76dee8-b0a1-4229-a8c8-396b00503632",
"locked": true,
"original": "بالمدرسه",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"الجديدة",
"الجديد",
"الجديده"
],
"confidence": 0.9,
"correction": "الجديدة",
"end": 16,
"id": "d0406447-2aab-40a8-8e67-f1be08eb147c",
"locked": true,
"original": "الجديده",
"priority": 1,
"start": 9,
"type": "spelling"
}
],
"pipeline_ms": 6854,
"pipeline_timing": {
"grammar_ms": 683,
"punctuation_ms": 695,
"spelling_ms": 2462,
"total_ms": 3844
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-003",
"category": "prefix_handling",
"subcategory": "li_prefix",
"input_text": "للطالبات المجتهدات جوائز قيمه",
"expected_behavior": "للطالبات should be preserved intact",
"grammar_raw_output": "للطالبات المجتهدات جوائز قيمة",
"grammar_raw_ms": 3639,
"punctuation_raw_output": "للطالبات المجتهدات جوائز قيمه.",
"punctuation_raw_ms": 4755,
"pipeline_output": "للطالبات المجتهدات جوائز قيمة.",
"pipeline_corrected": "للطالبات المجتهدات جوائز قيمة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "قيمة.",
"end": 29,
"id": "775e81e6-24fb-4e63-87e5-e24b05a6667d",
"locked": true,
"original": "قيمه",
"priority": 2,
"start": 25,
"type": "punctuation"
}
],
"pipeline_ms": 7291,
"pipeline_timing": {
"grammar_ms": 695,
"punctuation_ms": 703,
"spelling_ms": 3010,
"total_ms": 4412
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-004",
"category": "prefix_handling",
"subcategory": "ka_prefix",
"input_text": "كالعاده ذهبت الي العمل",
"expected_behavior": "كالعادة — ه→ة fix should work through ك+ال prefix",
"grammar_raw_output": "كالعادة ذهبت إلى العمل",
"grammar_raw_ms": 3487,
"punctuation_raw_output": "كالعاده ذهبت الي. العمل",
"punctuation_raw_ms": 3577,
"pipeline_output": "كالعادة ذهبت إلى العمل.",
"pipeline_corrected": "كالعادة ذهبت إلى العمل.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "العمل.",
"end": 22,
"id": "2dec32ad-860f-4839-93d9-fe92a7089654",
"locked": true,
"original": "العمل",
"priority": 2,
"start": 17,
"type": "punctuation"
},
{
"alternatives": [
"كالعادة",
"كالعاده"
],
"confidence": 0.9,
"correction": "كالعادة",
"end": 7,
"id": "fb09c4e9-3766-4db1-b859-43ceb3c8d25c",
"locked": true,
"original": "كالعاده",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 16,
"id": "4969eaee-2579-4a12-a8e0-eb87c6996647",
"locked": true,
"original": "الي",
"priority": 1,
"start": 13,
"type": "spelling"
}
],
"pipeline_ms": 7188,
"pipeline_timing": {
"grammar_ms": 646,
"punctuation_ms": 529,
"spelling_ms": 2683,
"total_ms": 3863
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-005",
"category": "prefix_handling",
"subcategory": "fa_prefix",
"input_text": "فبالتالي يجب ان نعمل بجد",
"expected_behavior": "فبالتالي is valid, should not be split or changed",
"grammar_raw_output": "فبالتالي يجب ان نعمل بجد",
"grammar_raw_ms": 4139,
"punctuation_raw_output": "فبالتالي يجب ان نعمل بجد.",
"punctuation_raw_ms": 3775,
"pipeline_output": "وبالتالي يجب أن نعمل بجد",
"pipeline_corrected": "وبالتالي يجب أن نعمل بجد",
"pipeline_suggestions": [
{
"alternatives": [
"أن",
"ال",
"من",
"ان"
],
"confidence": 0.9,
"correction": "أن",
"end": 15,
"id": "6bad78e5-9590-4425-9f0d-a206aa9e494f",
"locked": true,
"original": "ان",
"priority": 1,
"start": 13,
"type": "spelling"
},
{
"alternatives": [
"وبالتالي",
"فبالتالي"
],
"confidence": 0.6,
"correction": "وبالتالي",
"end": 8,
"id": "07473106-3459-4551-8c57-649eb7055f5d",
"locked": true,
"original": "فبالتالي",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 8459,
"pipeline_timing": {
"grammar_ms": 747,
"punctuation_ms": 452,
"spelling_ms": 4087,
"total_ms": 5292
},
"verdict": "FAIL_MODEL",
"root_cause": "Prefix word was split, hallucinated, or destroyed",
"failure_detail": "Input had prefixed words that were corrupted in output",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-006",
"category": "prefix_handling",
"subcategory": "complex_prefix_chain",
"input_text": "وبالاضافه الي ذلك فان المشكله كبيره",
"expected_behavior": "وبالإضافة إلى — hamza fix through وب prefix, plus ه→ة fixes",
"grammar_raw_output": "بالإضافة إلى ذلك فإن المشكلة كبيرة",
"grammar_raw_ms": 5673,
"punctuation_raw_output": "وبالاضافه الي ذلك فان المشكله كبيره",
"punctuation_raw_ms": 5848,
"pipeline_output": "وبالاضافة إلى ذلك فأن المشكلة كبيرة",
"pipeline_corrected": "وبالاضافة إلى ذلك فأن المشكلة كبيرة",
"pipeline_suggestions": [
{
"alternatives": [
"وبالاضافة",
"وبالاضافه"
],
"confidence": 0.9,
"correction": "وبالاضافة",
"end": 9,
"id": "0e73b0d4-951b-4080-8ad0-0a676b744ff6",
"locked": true,
"original": "وبالاضافه",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 13,
"id": "fc987f49-e21f-47e8-9982-da87eaba7719",
"locked": true,
"original": "الي",
"priority": 1,
"start": 10,
"type": "spelling"
},
{
"alternatives": [
"فأن",
"ان",
"كان",
"فان"
],
"confidence": 0.9,
"correction": "فأن",
"end": 21,
"id": "ef5eb7fb-d623-4a3c-aa72-22785ca8d920",
"locked": true,
"original": "فان",
"priority": 1,
"start": 18,
"type": "spelling"
},
{
"alternatives": [
"المشكلة",
"المشكل",
"المشكله"
],
"confidence": 0.9,
"correction": "المشكلة",
"end": 29,
"id": "a2c44be1-a574-422a-8a08-253daa04072b",
"locked": true,
"original": "المشكله",
"priority": 1,
"start": 22,
"type": "spelling"
},
{
"alternatives": [
"كبيرة",
"كبير",
"كبيرا",
"كبيره"
],
"confidence": 0.9,
"correction": "كبيرة",
"end": 35,
"id": "6d53838b-635c-41a8-933f-5de600b28494",
"locked": true,
"original": "كبيره",
"priority": 1,
"start": 30,
"type": "spelling"
}
],
"pipeline_ms": 8512,
"pipeline_timing": {
"grammar_ms": 795,
"punctuation_ms": 664,
"spelling_ms": 4027,
"total_ms": 5496
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-007",
"category": "prefix_handling",
"subcategory": "wa_attached_to_error",
"input_text": "والمهندسين بنو المبني بسرعه",
"expected_behavior": "والمهندسين should stay, بنو→بنوا (grammar), المبني→المبنى, بسرعه→بسرعة",
"grammar_raw_output": "والمهندسين بنو المبنى بسرعة",
"grammar_raw_ms": 3892,
"punctuation_raw_output": "والمهندسين بنو المبني بسرعه",
"punctuation_raw_ms": 5865,
"pipeline_output": "والمهندسين بنو المبنى بسرعة",
"pipeline_corrected": "والمهندسين بنو المبنى بسرعة",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 1.0,
"correction": "المبنى",
"end": 21,
"id": "9525df7d-619d-4b89-9eef-52e2cfa11c27",
"locked": true,
"original": "المبني",
"priority": 1,
"start": 15,
"type": "spelling"
},
{
"alternatives": [
"بسرعة",
"بسرعه"
],
"confidence": 0.9,
"correction": "بسرعة",
"end": 27,
"id": "07f7347d-07ae-42fb-9bd3-7366b4df58e4",
"locked": true,
"original": "بسرعه",
"priority": 1,
"start": 22,
"type": "spelling"
}
],
"pipeline_ms": 7327,
"pipeline_timing": {
"grammar_ms": 741,
"punctuation_ms": 720,
"spelling_ms": 2257,
"total_ms": 3723
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": true,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-008",
"category": "prefix_handling",
"subcategory": "attached_pronoun",
"input_text": "كتابه قديم وصفحاته ممزقه",
"expected_behavior": "كتابه (his book) — ه is pronoun, NOT ta marbuta. Must NOT become كتابة",
"grammar_raw_output": "كتابه قديم وصفحاته ممزقه",
"grammar_raw_ms": 3990,
"punctuation_raw_output": "كتابه قديم وصفحاته ممزقه.",
"punctuation_raw_ms": 4414,
"pipeline_output": "كتابه قديم وصفحاته ممزقة.",
"pipeline_corrected": "كتابه قديم وصفحاته ممزقة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "ممزقة.",
"end": 24,
"id": "e043a926-dd17-4d48-a5c9-629f3e23c421",
"locked": true,
"original": "ممزقه",
"priority": 2,
"start": 19,
"type": "punctuation"
}
],
"pipeline_ms": 8659,
"pipeline_timing": {
"grammar_ms": 898,
"punctuation_ms": 569,
"spelling_ms": 2573,
"total_ms": 4043
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-009",
"category": "prefix_handling",
"subcategory": "pronoun_vs_tamarbuta",
"input_text": "قرأته بعنايه فتأملته جيدا",
"expected_behavior": "قرأته and فتأملته — ته is pronoun suffix, NOT ta marbuta",
"grammar_raw_output": "قرأته بعناية فتأملته جيدا",
"grammar_raw_ms": 5216,
"punctuation_raw_output": "قرأته بعنايه فتأملته جيدا.",
"punctuation_raw_ms": 4752,
"pipeline_output": "قرأته بعناية فتأملته جيدا",
"pipeline_corrected": "قرأته بعناية فتأملته جيدا",
"pipeline_suggestions": [
{
"alternatives": [
"بعناية",
"بعنايه"
],
"confidence": 0.9,
"correction": "بعناية",
"end": 12,
"id": "e54cb82b-c7c6-46da-af00-c32a1e6e0ec0",
"locked": true,
"original": "بعنايه",
"priority": 1,
"start": 6,
"type": "spelling"
}
],
"pipeline_ms": 9512,
"pipeline_timing": {
"grammar_ms": 886,
"punctuation_ms": 680,
"spelling_ms": 4227,
"total_ms": 5796
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": true,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "PFX-010",
"category": "prefix_handling",
"subcategory": "merged_preposition",
"input_text": "ذهبتللمدرسه صباحا",
"expected_behavior": "Missing space: ذهبت+ل+المدرسه — should split and fix",
"grammar_raw_output": "ذهبت للمدرسة صباحا",
"grammar_raw_ms": 4748,
"punctuation_raw_output": "ذهبتللمدرسه صباحا.",
"punctuation_raw_ms": 4569,
"pipeline_output": "ذهبتللمدرسة صباحا",
"pipeline_corrected": "ذهبتللمدرسة صباحا",
"pipeline_suggestions": [
{
"alternatives": [
"ذهبتللمدرسة",
"ذهبتللمدرسه"
],
"confidence": 0.9,
"correction": "ذهبتللمدرسة",
"end": 11,
"id": "89bbf955-1553-406d-be97-c419f91dd608",
"locked": true,
"original": "ذهبتللمدرسه",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 7768,
"pipeline_timing": {
"grammar_ms": 737,
"punctuation_ms": 473,
"spelling_ms": 3234,
"total_ms": 4448
},
"verdict": "PASS",
"root_cause": "Prefixed words handled correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "SLK-001",
"category": "stagelocker",
"subcategory": "spelling_lock_grammar_override",
"input_text": "السياره جميل جدا",
"expected_behavior": "Spelling fixes السياره→السيارة, Grammar should still fix جميل→جميلة (Phase 11 hierarchical)",
"grammar_raw_output": "السيارة جميلة جدا",
"grammar_raw_ms": 4482,
"punctuation_raw_output": "السياره جميل جدا.",
"punctuation_raw_ms": 4206,
"pipeline_output": "السيارة جميلة جدا.",
"pipeline_corrected": "السيارة جميلة جدا.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 1.0,
"correction": "جميلة",
"end": 12,
"id": "577256fe-dbe7-48dd-b5de-0eb174522356",
"locked": true,
"original": "جميل",
"priority": 3,
"start": 8,
"type": "grammar"
},
{
"alternatives": [],
"confidence": 0.8,
"correction": "جدا.",
"end": 16,
"id": "f3f98848-5d81-4253-920c-5c8637f41976",
"locked": true,
"original": "جدا",
"priority": 2,
"start": 13,
"type": "punctuation"
},
{
"alternatives": [
"السيارة",
"السياره"
],
"confidence": 0.9,
"correction": "السيارة",
"end": 7,
"id": "64185d2f-cb8c-4fae-85b1-d8da8217ec7a",
"locked": true,
"original": "السياره",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 7050,
"pipeline_timing": {
"grammar_ms": 534,
"punctuation_ms": 397,
"spelling_ms": 2028,
"total_ms": 2964
},
"verdict": "PASS",
"root_cause": "Grammar successfully overrode spelling lock",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "SLK-002",
"category": "stagelocker",
"subcategory": "grammar_not_overwrite_spelling",
"input_text": "المدرسه كبير وجميل",
"expected_behavior": "Spelling: المدرسه→المدرسة. Grammar should NOT revert to المدرسه. Should add ة to كبير/جميل",
"grammar_raw_output": "المدرسة كبيرة وجميلة",
"grammar_raw_ms": 3443,
"punctuation_raw_output": "المدرسه كبير وجميل.",
"punctuation_raw_ms": 2430,
"pipeline_output": "المدرسة كبيرة وجميلة",
"pipeline_corrected": "المدرسة كبيرة وجميلة",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 1.0,
"correction": "كبيرة وجميلة",
"end": 18,
"id": "992518de-2c09-4969-b6a1-6b04791b8f62",
"locked": true,
"original": "كبير وجميل",
"priority": 3,
"start": 8,
"type": "grammar"
},
{
"alternatives": [
"المدرسة",
"المدرسي",
"المدرس",
"المدرسه"
],
"confidence": 0.9,
"correction": "المدرسة",
"end": 7,
"id": "8eedd2a1-d3fb-4709-80c0-36a959b440c2",
"locked": true,
"original": "المدرسه",
"priority": 1,
"start": 0,
"type": "spelling"
}
],
"pipeline_ms": 6426,
"pipeline_timing": {
"grammar_ms": 597,
"punctuation_ms": 546,
"spelling_ms": 2681,
"total_ms": 3828
},
"verdict": "PASS",
"root_cause": "StageLocker operating correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": true,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "SLK-003",
"category": "stagelocker",
"subcategory": "punct_respects_grammar_lock",
"input_text": "الطلاب ذهبوا الى المكتبة لقراءة الكتب الجديدة",
"expected_behavior": "Grammar unchanged (correct text). Punctuation should NOT move/corrupt words",
"grammar_raw_output": "الطلاب ذهبوا الى المكتبة لقراءة الكتب الجديدة",
"grammar_raw_ms": 3155,
"punctuation_raw_output": "الطلاب ذهبوا الى المكتبة لقراءة الكتب الجديدة!",
"punctuation_raw_ms": 3522,
"pipeline_output": "الطلاب ذهبوا إلى المكتبة لقراءة الكتب الجديدة.",
"pipeline_corrected": "الطلاب ذهبوا إلى المكتبة لقراءة الكتب الجديدة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الجديدة.",
"end": 45,
"id": "3893b371-9b48-47db-b594-af7c91784cf0",
"locked": true,
"original": "الجديدة",
"priority": 2,
"start": 38,
"type": "punctuation"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الى"
],
"confidence": 0.9,
"correction": "إلى",
"end": 16,
"id": "59e00d41-8699-4ae1-bc78-ac1d9af75ad7",
"locked": true,
"original": "الى",
"priority": 1,
"start": 13,
"type": "spelling"
}
],
"pipeline_ms": 7703,
"pipeline_timing": {
"grammar_ms": 944,
"punctuation_ms": 888,
"spelling_ms": 2923,
"total_ms": 4764
},
"verdict": "PASS",
"root_cause": "StageLocker operating correctly",
"failure_detail": "",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "SLK-004",
"category": "stagelocker",
"subcategory": "overlapping_patches",
"input_text": "الاطفال يلعبون بالكره في الحديقه الكبيره",
"expected_behavior": "Spelling: الاطفال→الأطفال, بالكره→بالكرة, الحديقه→الحديقة, الكبيره→الكبيرة — multiple overlapping spans",
"grammar_raw_output": "الأطفال يلعبون بالكرة في الحديقة الكبيرة",
"grammar_raw_ms": 3386,
"punctuation_raw_output": "الاطفال يلعبون بالكره في الحديقه الكبيره!",
"punctuation_raw_ms": 3407,
"pipeline_output": "الأطفال يلعبون بالكرة في الحديقة الكبيرة.",
"pipeline_corrected": "الأطفال يلعبون بالكرة في الحديقة الكبيرة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الكبيرة.",
"end": 40,
"id": "3aa85f52-d09d-4b37-b09b-22b62182b700",
"locked": true,
"original": "الكبيره",
"priority": 2,
"start": 33,
"type": "punctuation"
},
{
"alternatives": [
"الأطفال",
"للاطفال",
"الاطفاء",
"الاطفال"
],
"confidence": 0.9,
"correction": "الأطفال",
"end": 7,
"id": "303beeea-6796-4336-a28b-d2d5765bbe38",
"locked": true,
"original": "الاطفال",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"بالكرة",
"بالكر",
"الكره",
"بالكره"
],
"confidence": 0.9,
"correction": "بالكرة",
"end": 21,
"id": "cca7efd9-8123-4380-a468-3d0faa4dec13",
"locked": true,
"original": "بالكره",
"priority": 1,
"start": 15,
"type": "spelling"
},
{
"alternatives": [
"الحديقة",
"الحديقه"
],
"confidence": 0.9,
"correction": "الحديقة",
"end": 32,
"id": "b9274c96-4e7e-4c45-8ed3-95d5fe5cd88b",
"locked": true,
"original": "الحديقه",
"priority": 1,
"start": 25,
"type": "spelling"
}
],
"pipeline_ms": 8575,
"pipeline_timing": {
"grammar_ms": 893,
"punctuation_ms": 860,
"spelling_ms": 4372,
"total_ms": 6132
},
"verdict": "PASS",
"root_cause": "StageLocker operating correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "SLK-005",
"category": "stagelocker",
"subcategory": "backward_overwrite",
"input_text": "هذه المدينه جميله وهادئه",
"expected_behavior": "Three ه→ة fixes. Grammar must NOT overwrite any of them back to ه",
"grammar_raw_output": "هذه المدينة جميلة وهادئة",
"grammar_raw_ms": 4014,
"punctuation_raw_output": "هذه المدينه جميله وهادئه!",
"punctuation_raw_ms": 3050,
"pipeline_output": "هذه المدينة جميلة وهادئة!",
"pipeline_corrected": "هذه المدينة جميلة وهادئة!",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "وهادئة!",
"end": 24,
"id": "5171793c-ef57-4d42-8bf0-44bb0c4c3472",
"locked": true,
"original": "وهادئه",
"priority": 2,
"start": 18,
"type": "punctuation"
},
{
"alternatives": [
"المدينة",
"المدين",
"المدينه"
],
"confidence": 0.9,
"correction": "المدينة",
"end": 11,
"id": "76b1dbc3-590d-4db0-a353-ba2eb0e7fa76",
"locked": true,
"original": "المدينه",
"priority": 1,
"start": 4,
"type": "spelling"
},
{
"alternatives": [
"جميلة",
"جميل",
"زميله",
"جميله"
],
"confidence": 0.9,
"correction": "جميلة",
"end": 17,
"id": "7834d0e8-f4d2-421d-8b46-4199afe493b9",
"locked": true,
"original": "جميله",
"priority": 1,
"start": 12,
"type": "spelling"
}
],
"pipeline_ms": 6328,
"pipeline_timing": {
"grammar_ms": 711,
"punctuation_ms": 503,
"spelling_ms": 2463,
"total_ms": 3682
},
"verdict": "PASS",
"root_cause": "No backward overwrite detected",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "SLK-006",
"category": "stagelocker",
"subcategory": "grammar_overrides_spelling_adjacent",
"input_text": "الطالبه ذكي في المدرسه",
"expected_behavior": "Spelling fixes ه→ة, Grammar must fix gender (ذكي→ذكية) on ADJACENT word",
"grammar_raw_output": "الطالبة ذكية في المدرسة",
"grammar_raw_ms": 3893,
"punctuation_raw_output": "الطالبه ذكي في المدرسه.",
"punctuation_raw_ms": 3501,
"pipeline_output": "الطالبة ذكية في المدرسة.",
"pipeline_corrected": "الطالبة ذكية في المدرسة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 1.0,
"correction": "الطالبة ذكية",
"end": 11,
"id": "d34734eb-f09f-47c4-9ee5-f16e474df973",
"locked": true,
"original": "الطالبه ذكي",
"priority": 3,
"start": 0,
"type": "grammar"
},
{
"alternatives": [],
"confidence": 0.8,
"correction": "المدرسة.",
"end": 22,
"id": "483c3a0a-1ac6-4c97-bfee-a7a514aef898",
"locked": true,
"original": "المدرسه",
"priority": 2,
"start": 15,
"type": "punctuation"
}
],
"pipeline_ms": 7047,
"pipeline_timing": {
"grammar_ms": 646,
"punctuation_ms": 555,
"spelling_ms": 2952,
"total_ms": 4157
},
"verdict": "PASS",
"root_cause": "StageLocker operating correctly",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-001",
"category": "overcorrection",
"subcategory": "correct_text_unchanged",
"input_text": "ذهب الطالب إلى المكتبة وقرأ كتاباً مفيداً",
"expected_behavior": "Perfectly correct text — should return UNCHANGED",
"grammar_raw_output": "ذهب الطالب إلى المكتبة وقرأ كتابا مفيدا",
"grammar_raw_ms": 3996,
"punctuation_raw_output": "ذهب الطالب إلى المكتبة وقرأ، كتاباً مفيداً",
"punctuation_raw_ms": 4282,
"pipeline_output": "ذهب الطالب إلى المكتبة وقرأ كتاباً مفيداً",
"pipeline_corrected": "ذهب الطالب إلى المكتبة وقرأ كتاباً مفيداً",
"pipeline_suggestions": [],
"pipeline_ms": 10781,
"pipeline_timing": {
"grammar_ms": 1207,
"punctuation_ms": 799,
"spelling_ms": 4593,
"total_ms": 6605
},
"verdict": "PASS",
"root_cause": "Correct text preserved",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": false,
"raw_vs_pipeline_match": true,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-002",
"category": "overcorrection",
"subcategory": "correct_grammar_unchanged",
"input_text": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد",
"expected_behavior": "Correct SV agreement + tanween — must not be modified",
"grammar_raw_output": "المهندسون يعملون في المصنع الكبير بجد واجتهاد",
"grammar_raw_ms": 4220,
"punctuation_raw_output": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد.",
"punctuation_raw_ms": 3964,
"pipeline_output": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد.",
"pipeline_corrected": "المهندسون يعملون في المصنع الكبير بجدٍ واجتهاد.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "واجتهاد.",
"end": 46,
"id": "2ee09f18-187f-42a4-83bc-e81d696ffa80",
"locked": true,
"original": "واجتهاد",
"priority": 2,
"start": 39,
"type": "punctuation"
}
],
"pipeline_ms": 10058,
"pipeline_timing": {
"grammar_ms": 948,
"punctuation_ms": 833,
"spelling_ms": 5345,
"total_ms": 7132
},
"verdict": "FAIL_FILTER",
"root_cause": "Correct text was modified: ['واجتهاد→واجتهاد.']",
"failure_detail": "All changes: ['واجتهاد→واجتهاد.']",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-003",
"category": "overcorrection",
"subcategory": "jaccard_threshold_test",
"input_text": "جالس في البيت يقرأ الصحيفة",
"expected_behavior": "Correct text. Grammar should not hallucinate جالس→جاكسون (Jaccard < 0.3)",
"grammar_raw_output": "جالس في البيت يقرأ الصحيفة",
"grammar_raw_ms": 4351,
"punctuation_raw_output": "جالس في البيت يقرأ الصحيفة.",
"punctuation_raw_ms": 5021,
"pipeline_output": "جالس في البيت يقرأ الصحيفة.",
"pipeline_corrected": "جالس في البيت يقرأ الصحيفة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الصحيفة.",
"end": 26,
"id": "ec5b7d9a-fda2-4d2e-ab19-ffc202ef15f2",
"locked": true,
"original": "الصحيفة",
"priority": 2,
"start": 19,
"type": "punctuation"
}
],
"pipeline_ms": 8821,
"pipeline_timing": {
"grammar_ms": 789,
"punctuation_ms": 548,
"spelling_ms": 3544,
"total_ms": 4887
},
"verdict": "PASS",
"root_cause": "No overcorrection detected",
"failure_detail": "",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-004",
"category": "overcorrection",
"subcategory": "meaning_change_block",
"input_text": "وكان الجو صحواً اليوم",
"expected_behavior": "وكان must NOT become وكأن (directional block). Correct as-is",
"grammar_raw_output": "وكان الجو صحوا اليوم",
"grammar_raw_ms": 5367,
"punctuation_raw_output": "وكان الجو صحواً اليوم.",
"punctuation_raw_ms": 3066,
"pipeline_output": "وكان الجو صحواً اليوم.",
"pipeline_corrected": "وكان الجو صحواً اليوم.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "اليوم.",
"end": 21,
"id": "e02e158e-9dc7-4876-9d9b-d618eb58ab9f",
"locked": true,
"original": "اليوم",
"priority": 2,
"start": 16,
"type": "punctuation"
}
],
"pipeline_ms": 6751,
"pipeline_timing": {
"grammar_ms": 788,
"punctuation_ms": 513,
"spelling_ms": 2977,
"total_ms": 4281
},
"verdict": "PASS",
"root_cause": "Meaning preserved",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-005",
"category": "overcorrection",
"subcategory": "rare_word_dampening",
"input_text": "الفيلسوف سقراط تأمل الحقيقة",
"expected_behavior": "سقراط is a rare valid name — spelling should not 'correct' it",
"grammar_raw_output": "الفيلسوف سقراط تأمل الحقيقة",
"grammar_raw_ms": 6077,
"punctuation_raw_output": "الفيلسوف سقراط تأمل الحقيقة.",
"punctuation_raw_ms": 4019,
"pipeline_output": "الفيلسوف سقراط تأمل الحقيقة.",
"pipeline_corrected": "الفيلسوف سقراط تأمل الحقيقة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الحقيقة.",
"end": 27,
"id": "509344fd-27fc-4476-9f09-7eb0ac1a87da",
"locked": true,
"original": "الحقيقة",
"priority": 2,
"start": 20,
"type": "punctuation"
}
],
"pipeline_ms": 7657,
"pipeline_timing": {
"grammar_ms": 597,
"punctuation_ms": 580,
"spelling_ms": 2414,
"total_ms": 3593
},
"verdict": "PASS",
"root_cause": "No overcorrection detected",
"failure_detail": "",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-006",
"category": "overcorrection",
"subcategory": "filter_over_blocking",
"input_text": "انا ذاهب الي المدرسه",
"expected_behavior": "IV-IV guard should NOT block انا→أنا or الي→إلى (these are whitelist entries)",
"grammar_raw_output": "أنا ذاهب إلى المدرسة",
"grammar_raw_ms": 5475,
"punctuation_raw_output": "انا ذاهب الي المدرسه.",
"punctuation_raw_ms": 4105,
"pipeline_output": "أنا ذاهب إلى المدرسة.",
"pipeline_corrected": "أنا ذاهب إلى المدرسة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "المدرسة.",
"end": 20,
"id": "2c36a146-f2c7-4788-906e-5ccb09de7725",
"locked": true,
"original": "المدرسه",
"priority": 2,
"start": 13,
"type": "punctuation"
},
{
"alternatives": [
"أنا",
"الا",
"ان",
"انا"
],
"confidence": 0.9,
"correction": "أنا",
"end": 3,
"id": "1d5583a7-6781-4d91-a8d4-1c30d498ad40",
"locked": true,
"original": "انا",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 12,
"id": "1ad036d9-d9de-489f-8664-f2b365602c1d",
"locked": true,
"original": "الي",
"priority": 1,
"start": 9,
"type": "spelling"
}
],
"pipeline_ms": 8499,
"pipeline_timing": {
"grammar_ms": 638,
"punctuation_ms": 399,
"spelling_ms": 3465,
"total_ms": 4506
},
"verdict": "PASS",
"root_cause": "No overcorrection detected",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-007",
"category": "overcorrection",
"subcategory": "tanween_preservation",
"input_text": "قرأت كتاباً جميلاً عن التاريخ",
"expected_behavior": "Tanween (ً) must be preserved — grammar should not strip it",
"grammar_raw_output": "قرأت كتابا جميلا عن التاريخ",
"grammar_raw_ms": 5403,
"punctuation_raw_output": "قرأت كتاباً جميلاً عن التاريخ!",
"punctuation_raw_ms": 4864,
"pipeline_output": "قرأت كتاباً جميلاً عن التاريخ!",
"pipeline_corrected": "قرأت كتاباً جميلاً عن التاريخ!",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "التاريخ!",
"end": 29,
"id": "a516b100-8451-4611-a618-a3c914e05928",
"locked": true,
"original": "التاريخ",
"priority": 2,
"start": 22,
"type": "punctuation"
}
],
"pipeline_ms": 5350,
"pipeline_timing": {
"grammar_ms": 1185,
"punctuation_ms": 730,
"spelling_ms": 2609,
"total_ms": 4529
},
"verdict": "FAIL_FILTER",
"root_cause": "Correct text was modified: ['التاريخ→التاريخ!']",
"failure_detail": "All changes: ['التاريخ→التاريخ!']",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-008",
"category": "overcorrection",
"subcategory": "correct_feminine_form",
"input_text": "المعلمة الجديدة شرحت الدرس",
"expected_behavior": "Already correct — must NOT change المعلمة to المعلمه",
"grammar_raw_output": "المعلمة الجديدة شرحت الدرس",
"grammar_raw_ms": 4415,
"punctuation_raw_output": "المعلمة الجديدة شرحت الدرس.",
"punctuation_raw_ms": 1481,
"pipeline_output": "المعلمة الجديدة شرحت الدرس.",
"pipeline_corrected": "المعلمة الجديدة شرحت الدرس.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "الدرس.",
"end": 26,
"id": "31693a38-f540-437b-977b-f541204fa564",
"locked": true,
"original": "الدرس",
"priority": 2,
"start": 21,
"type": "punctuation"
}
],
"pipeline_ms": 6679,
"pipeline_timing": {
"grammar_ms": 852,
"punctuation_ms": 643,
"spelling_ms": 1817,
"total_ms": 3314
},
"verdict": "FAIL_FILTER",
"root_cause": "Correct text was modified: ['الدرس→الدرس.']",
"failure_detail": "All changes: ['الدرس→الدرس.']",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-009",
"category": "overcorrection",
"subcategory": "brackets_protection",
"input_text": "الفصل الأول (المقدمة) يتناول الموضوع",
"expected_behavior": "Brackets must be preserved. Grammar should not unbalance them",
"grammar_raw_output": "الفصل الأول لمقدمة يتناول الموضوع",
"grammar_raw_ms": 1685,
"punctuation_raw_output": "الفصل الأول (المقدمة): يتناول الموضوع؛",
"punctuation_raw_ms": 4323,
"pipeline_output": "الفصل الأول (المقدمة) يتناول الموضوع",
"pipeline_corrected": "الفصل الأول (المقدمة) يتناول الموضوع",
"pipeline_suggestions": [],
"pipeline_ms": 7948,
"pipeline_timing": {
"grammar_ms": 924,
"punctuation_ms": 1380,
"spelling_ms": 4723,
"total_ms": 7030
},
"verdict": "PASS",
"root_cause": "Brackets preserved",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": false,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "OVR-010",
"category": "overcorrection",
"subcategory": "digits_protection",
"input_text": "تأسست الشركة عام 2020 وبلغ عدد موظفيها 150 شخصاً",
"expected_behavior": "Digits must NOT be corrupted by grammar model",
"grammar_raw_output": "تأسست الشركة عام 2020 وبلغ عدد موظفيها 150 شخصا",
"grammar_raw_ms": 4709,
"punctuation_raw_output": "تأسست الشركة عام 2020 وبلغ عدد موظفيها 150 شخصاً.",
"punctuation_raw_ms": 1835,
"pipeline_output": "تأسست الشركة عام يناير وبلغ عدد موظفيها خمسين شخصاً.",
"pipeline_corrected": "تأسست الشركة عام يناير وبلغ عدد موظفيها خمسين شخصاً.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "شخصاً.",
"end": 48,
"id": "3905f603-2a35-4786-a1cd-8d44c1995ba9",
"locked": true,
"original": "شخصاً",
"priority": 2,
"start": 43,
"type": "punctuation"
},
{
"alternatives": [
"يناير",
"2020"
],
"confidence": 0.6,
"correction": "يناير",
"end": 21,
"id": "99bdcd3f-20bf-4319-be00-cf116e7163a6",
"locked": true,
"original": "2020",
"priority": 1,
"start": 17,
"type": "spelling"
},
{
"alternatives": [
"خمسين",
"150"
],
"confidence": 0.6,
"correction": "خمسين",
"end": 42,
"id": "91023a54-9a4f-415c-83cc-746e12f64dc3",
"locked": true,
"original": "150",
"priority": 1,
"start": 39,
"type": "spelling"
}
],
"pipeline_ms": 15379,
"pipeline_timing": {
"grammar_ms": 1106,
"punctuation_ms": 905,
"spelling_ms": 9998,
"total_ms": 12016
},
"verdict": "FAIL_FILTER",
"root_cause": "Digits were corrupted",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "MIS-001",
"category": "model_mismatch",
"subcategory": "spelling_output_breaks_grammar",
"input_text": "الطالبه المجتهده حصلت علي درجات عاليه",
"expected_behavior": "Spelling: 4x ه→ة. Grammar should NOT break on the corrected output",
"grammar_raw_output": "الطالبة المجتهدة حصلت على درجات عالية",
"grammar_raw_ms": 1693,
"punctuation_raw_output": "الطالبه المجتهده حصلت علي درجات عاليه.",
"punctuation_raw_ms": 4126,
"pipeline_output": "الطالبة المجتهدة حصلت علي درجات عالية.",
"pipeline_corrected": "الطالبة المجتهدة حصلت علي درجات عالية.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "عالية.",
"end": 37,
"id": "0405a474-1ea1-4d28-bca2-c3b8fc393b13",
"locked": true,
"original": "عاليه",
"priority": 2,
"start": 32,
"type": "punctuation"
},
{
"alternatives": [
"الطالبة",
"الطالب",
"الطالبه"
],
"confidence": 0.9,
"correction": "الطالبة",
"end": 7,
"id": "64cd41c7-89da-46b2-b750-5555fdb7def0",
"locked": true,
"original": "الطالبه",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"المجتهدة",
"المجتهد",
"المجتهده"
],
"confidence": 0.9,
"correction": "المجتهدة",
"end": 16,
"id": "c3b7cd46-ba07-4d6f-942e-fe1425e2b195",
"locked": true,
"original": "المجتهده",
"priority": 1,
"start": 8,
"type": "spelling"
}
],
"pipeline_ms": 6675,
"pipeline_timing": {
"grammar_ms": 904,
"punctuation_ms": 859,
"spelling_ms": 4231,
"total_ms": 6003
},
"verdict": "PASS",
"root_cause": "Grammar handled spelling-corrected input",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "MIS-002",
"category": "model_mismatch",
"subcategory": "grammar_undoes_spelling",
"input_text": "ذهبنا الي المكتبه القريبه",
"expected_behavior": "Spelling fixes الي→إلى, المكتبه→المكتبة. Grammar must NOT revert these",
"grammar_raw_output": "ذهبنا إلى المكتبة القريبة",
"grammar_raw_ms": 3975,
"punctuation_raw_output": "ذهبنا الي المكتبه القريبه.",
"punctuation_raw_ms": 1300,
"pipeline_output": "ذهبنا إلى المكتبة القريبة.",
"pipeline_corrected": "ذهبنا إلى المكتبة القريبة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "القريبة.",
"end": 25,
"id": "bc5dd39c-d7b1-4b9a-b7bd-f62a6d5d3f3d",
"locked": true,
"original": "القريبه",
"priority": 2,
"start": 18,
"type": "punctuation"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 9,
"id": "076de2fe-4498-42bb-b3c8-4ace6cf17958",
"locked": true,
"original": "الي",
"priority": 1,
"start": 6,
"type": "spelling"
},
{
"alternatives": [
"المكتبة",
"المكتب",
"المشتبه",
"المكتبه"
],
"confidence": 0.9,
"correction": "المكتبة",
"end": 17,
"id": "6a5d280b-17d1-4122-aa8a-71371c304412",
"locked": true,
"original": "المكتبه",
"priority": 1,
"start": 10,
"type": "spelling"
}
],
"pipeline_ms": 6505,
"pipeline_timing": {
"grammar_ms": 698,
"punctuation_ms": 523,
"spelling_ms": 2621,
"total_ms": 3850
},
"verdict": "PASS",
"root_cause": "Spelling corrections preserved through grammar",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "MIS-003",
"category": "model_mismatch",
"subcategory": "cascading_length_change",
"input_text": "اريد ان اذهب الي المدرسه لانني احب القراءه",
"expected_behavior": "Many hamza + ه→ة fixes. Total text length changes significantly — grammar must handle shifted text",
"grammar_raw_output": "أريد أن أذهب إلى المدرسة لأنني أحب القراءة",
"grammar_raw_ms": 1581,
"punctuation_raw_output": "اريد ان اذهب الي المدرسه لانني؛ احب القراءه",
"punctuation_raw_ms": 3600,
"pipeline_output": "أريد أن أذهب إلى المدرسة لأنني أحب القراءة.",
"pipeline_corrected": "أريد أن أذهب إلى المدرسة لأنني أحب القراءة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "القراءة.",
"end": 42,
"id": "d2e08076-8ac6-4e91-8fc0-0eb1d7e7577a",
"locked": true,
"original": "القراءه",
"priority": 2,
"start": 35,
"type": "punctuation"
},
{
"alternatives": [],
"confidence": 1.0,
"correction": "لأنني",
"end": 30,
"id": "c15ca269-0b85-4795-880a-ddf56a205817",
"locked": true,
"original": "لانني",
"priority": 1,
"start": 25,
"type": "spelling"
},
{
"alternatives": [
"أريد",
"يريد",
"تريد",
"اريد"
],
"confidence": 0.9,
"correction": "أريد",
"end": 4,
"id": "b97dcb5a-12cf-464e-99e2-85de15de80cf",
"locked": true,
"original": "اريد",
"priority": 1,
"start": 0,
"type": "spelling"
},
{
"alternatives": [
"أن",
"ال",
"من",
"ان"
],
"confidence": 0.9,
"correction": "أن",
"end": 7,
"id": "9e37bf45-10d4-4114-b31f-011110310241",
"locked": true,
"original": "ان",
"priority": 1,
"start": 5,
"type": "spelling"
},
{
"alternatives": [
"أذهب",
"الذهب",
"ذهب",
"اذهب"
],
"confidence": 0.9,
"correction": "أذهب",
"end": 12,
"id": "0952785f-40cb-4860-82ef-18b3cf85f53f",
"locked": true,
"original": "اذهب",
"priority": 1,
"start": 8,
"type": "spelling"
},
{
"alternatives": [
"إلى",
"ال",
"الم",
"الي"
],
"confidence": 0.9,
"correction": "إلى",
"end": 16,
"id": "92973715-dfca-4a84-bf9a-2903b53478b2",
"locked": true,
"original": "الي",
"priority": 1,
"start": 13,
"type": "spelling"
},
{
"alternatives": [
"المدرسة",
"المدرسي",
"المدرس",
"المدرسه"
],
"confidence": 0.9,
"correction": "المدرسة",
"end": 24,
"id": "8cc179c2-89ea-4235-b0a3-05e00e1e6482",
"locked": true,
"original": "المدرسه",
"priority": 1,
"start": 17,
"type": "spelling"
},
{
"alternatives": [
"أحب",
"الب",
"احت",
"احب"
],
"confidence": 0.9,
"correction": "أحب",
"end": 34,
"id": "b0432045-ba7a-45fb-b538-efe62ff83026",
"locked": true,
"original": "احب",
"priority": 1,
"start": 31,
"type": "spelling"
}
],
"pipeline_ms": 13520,
"pipeline_timing": {
"grammar_ms": 1105,
"punctuation_ms": 836,
"spelling_ms": 10929,
"total_ms": 12888
},
"verdict": "PASS",
"root_cause": "No model mismatch detected",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "MIS-004",
"category": "model_mismatch",
"subcategory": "grammar_hallucination_on_corrected",
"input_text": "الاولاد يلعبون والبنات يذهبن",
"expected_behavior": "Spelling: الاولاد→الأولاد. Grammar should NOT hallucinate on already-correct يلعبون/يذهبن",
"grammar_raw_output": "الاولاد يلعبون والبنات يذهبن",
"grammar_raw_ms": 4826,
"punctuation_raw_output": "الاولاد يلعبون والبنات يذهبن.",
"punctuation_raw_ms": 1438,
"pipeline_output": "الاولاد يلعبون والبنات يذهبن.",
"pipeline_corrected": "الاولاد يلعبون والبنات يذهبن.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "يذهبن.",
"end": 28,
"id": "1b722906-7c41-4041-966b-405f03698d6c",
"locked": true,
"original": "يذهبن",
"priority": 2,
"start": 23,
"type": "punctuation"
}
],
"pipeline_ms": 6558,
"pipeline_timing": {
"grammar_ms": 683,
"punctuation_ms": 632,
"spelling_ms": 2822,
"total_ms": 4140
},
"verdict": "PASS",
"root_cause": "No model mismatch detected",
"failure_detail": "",
"grammar_raw_changed": false,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
},
{
"vector_id": "MIS-005",
"category": "model_mismatch",
"subcategory": "punc_on_grammar_corrected",
"input_text": "السيارات سريعة والطرق واسعه",
"expected_behavior": "After spelling (واسعه→واسعة), punctuation should add period at end, not corrupt words",
"grammar_raw_output": "السيارات سريعة والطرق واسعة",
"grammar_raw_ms": 1454,
"punctuation_raw_output": "السيارات سريعة والطرق واسعه.",
"punctuation_raw_ms": 3587,
"pipeline_output": "السيارات سريعة والطرق واسعة.",
"pipeline_corrected": "السيارات سريعة والطرق واسعة.",
"pipeline_suggestions": [
{
"alternatives": [],
"confidence": 0.8,
"correction": "واسعة.",
"end": 27,
"id": "9780815c-9786-43c9-a81a-75437a0a9313",
"locked": true,
"original": "واسعه",
"priority": 2,
"start": 22,
"type": "punctuation"
}
],
"pipeline_ms": 4889,
"pipeline_timing": {
"grammar_ms": 554,
"punctuation_ms": 668,
"spelling_ms": 2875,
"total_ms": 4103
},
"verdict": "PASS",
"root_cause": "No model mismatch detected",
"failure_detail": "",
"grammar_raw_changed": true,
"pipeline_changed": true,
"raw_vs_pipeline_match": false,
"span_errors": [],
"offset_drift": 0
}
]
}