Repository navigation
Turn the pack-shaped exclusions into readings off by default (#753, 3c) - #946
Merged
Merged
Conversation
cs `ml`, hr, sk and sl `ml` and `st`, and fr `père` were exclusions whose reason opened "pack-shaped": right in their language, wrong as a default only because another language in Latin script collides. Each is now a `generation` reading written `default = false` in its own file, as cs `st` already was, so a language choice turns it on and the default compiles exactly as before (_compiled.py unchanged, snapshot byte-identical). Every other exclusion is untouched. Tests sweep every multi-letter generation reading off by default under its language and the default, and hold that no exclusion reads "pack-shaped" any more. decisions/vocabulary-model and generational-words record the split and what each choice moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e where exclusions are written Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… mark 3c in the RFC Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
3.0 sub-phase 3c of #753. Each
excludedentry whose reason opened "pack-shaped" is now agenerationreading writtendefault = falsein its language's file. Choosing that language throughLocale.languages(#945) turns it on. The default compile does not change.The split
Pack-shaped (converted here). These eight readings are right in their language. They are wrong as a default only because another language written in Latin script collides with them.
ml(mladší / mlađi / mlajši, the Younger)M. L.st(starší / stariji / starejši, the Elder)sthas beendefault = falsesince phase 2h)père(the Elder)A pack turns these on, but they convert in that pack's own PR, as the RFC's Phase 3 table assigns them:
pan,roz,nic,shri,sig,jaun,bt,bay,sb.Every other exclusion is wrong in every language and stays an exclusion (for example
duke,senior, theattachedrefusals).Default unchanged
tools/vocab/build.pyreports_compiled.pycurrent. Only_index.pygains the eight rows, taking the count of readings writtendefault = falsefrom 3 to 11.tests/v2/test_snapshot.pypasses without a re-record, so the snapshot is byte-identical.What each choice now moves
Measured 2026-10-29 with
snapshot.py --languages TAGonb27dadd5and on this branch. The figures count entries moved, with the names held only by CLDR in brackets.cssk,sl,hrfrpère)ml.as the suffix. They areJiří Dienstbier ml.and two CLDR renderings withml.before a comma of credentials.st. Under 3b's semantics, turning a reading on also prefers it, so the English and French Saint readings ofstleave. For exampleSt Clairreads givenStinstead of titleSt.csin 3b, and now reachessk,slandhrtoo. Whether Saint should survive a choice that holdsstas a generation word is left to 3f, which builds those packs. It is recorded in decisions/vocabulary-model.Tests
test_a_chosen_language_reads_its_off_generation_and_the_default_does_notparsesAnna Novak <word>andAnna Novak <word>.for every multi-letter generation reading off by default, under its own language and under the default.test_no_exclusion_is_pack_shaped_any_more: no vocab TOML contains "pack-shaped" (the RFC's recompute).cs,Novak, MLreads suffixMLwith nothing reported, while the default reads givenML.Novak, Anna ml.andNovak ml., Annaalso move. The initial pairsAnna M. L. NovakandAnna ML Novakdo not. Underfr,Jean Pèrereads suffixPèreand reportsGIVEN_OR_FAMILY. The silent comma case is recorded as an open question for 3f.hand deistay inert under their own language when written with a period (Juan Pérez H.,Wilhelm Karl I.).test_vocab's exclusion-refuses-another-file test now usesduke.test_parser's choice-that-changes-nothing test now usessv, sincefrnow changespère.Docs
duke. The README's Exclusions section andnameparser/vocab/AGENTS.mdstep 4 now state the rule: a reading wrong only as a default is writtendefault = false, not excluded.Locale.languagesbullet.ml.moves, the reason one-letter words are left out, the date for csst, and the rule's placement.No code changes. No
LexiconorParserfield is added.🤖 Generated with Claude Code