You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pin the interpunct behavior: case rows, corpus, differential guards (#298)
Five case rows land in tests/v2/cases.py, in the table's canonical
given/family/middle spelling:
- zh_interpunct_transcription_source_order: 威廉·莎士比亚 divides on
the B7 and keeps source order (fix(#298)).
- zh_interpunct_nakaguro_typed_stays_roster: the SAME transcription
typed with the Japanese nakaguro reads as a 姓・名 roster pair,
family-first (fix(#272)). A limitation row, chosen not accidental:
the design is codepoint-scoped (spec 2026-07-30 decision 5), so
cross-convention input reads by the convention of the codepoint it
was typed with -- only the Chinese B7 marks a transcription.
- ja_interpunct_b7_katakana: sloppy-IME B7 between katakana divides
like the nakaguro; order was already positional (fix(#298)).
- latin_punt_volat_is_name_interior: Gal·la Marcet, the flank guard's
reason -- Latin-flanked B7 is interior, never a divider (parity).
- zh_interpunct_suppresses_segmentation: 马丁·路德·金 under zh -- the
dot gates segmentation off, 马丁 stays whole (fix(#298)).
The differential CJK rule's character class gains U+00B7, the second
sanctioned extra beside U+FF65: both dots change parses without being
classified by any Script (B7 doubles as Catalan's punt volat).
test_differential_cjk_rule_matches_the_script_ranges pins the pair as
sanctioned_extras; the compound rule's lookahead copies classified
spans only and is untouched.
corpus_cjk.jsonl regenerates 31 -> 35: the four CJK-bearing rows enter
(Gal·la Marcet correctly does not -- no classified codepoint). Harness
hand-run: 689 names, 48 intentional diffs, zero unexplained; the CJK
rule classifies 27 including all the B7 names.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments