Repository navigation
Bring the user docs in line with 3.0's readings, views and language choices - #1146
Merged
Merged
Conversation
…hoices A fresh read of usage, customize, concepts and locales and the autodoc docstrings against what 3.0 shipped, every reading run on master. - usage: the attach table gains titles that are also particles (Freiherr, Graf, St, joining the surname inside a name) and the title-phrase limit on gated titles; the "other way round" paragraph names the glued honorifics beside the Korean surnames; a new "Inspecting the vocabulary" subsection pairs readings_of with Token.reading and shows a reading held off until its language is chosen (Lady under es); surname2 names the packs that fill it. - customize: drop the stale "there is no vn locale pack" and point at locales.VI (also for Nguyen Van Minh); open the vocabulary section with a language choice as the first lever, cross-linking plain and strict choices; state that no choice settles a word with a name reading, so the van/ma/dean/neto recipes stay; note the DO/do clash as a choice's job and the given-name readings a language turns on. - concepts: the Lexicon holds readings, not word lists; a paragraph on what a Locale and a choice of languages are. - locales: the surname views under es, cs and sk, and a label for the Vietnamese section. - docstrings: surname1's two-family example names its switch, initials() states its contract instead of v1 history, Token.reading mentions Reading.languages, ParsedName lists its derived views. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review of #1146 found claims broader than the tree: - A choice keeps every name reading, so it leaves a fork whose chosen file holds both readings (MA under en, van under nl) but ends one where it switches off another language's reading: DO under pt loses the English credential and reads as a name word, unreported. The customize paragraphs said no choice settles such a word, and that pt reads trailing DO as a particle; both are rewritten, with a doctest. - The attach table's row named the saint kind, whose words but St hold no title reading, and called every rank a title opening a name, which Freiherrin is not; the row is ranks, the prose names the exceptions and St. - Hon is a given name under a choice of zh, which the zh pack does not make; the sentence says so. - The vi pack keeps a named set of syllables, not every particle (Bin, De still join); name them. - Token.reading's languages are the files whose reading is on in the parse's lexicon; surname1_base gets a non-vacuous example and a :ref: to a new aggregate-views label; Token.reading's surname flags are named. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Second review of #1146's fix: a strict choice drops every reading of a word no chosen file holds, name readings too, so a strict nl choice reads JOHN SMITH MA family MA, unreported. customize's paragraph and locales' pre-existing "under any choice" now say plain choice and name the strict case. The vi syllable lists read as examples, since the pack keeps La, Du, Y and others too; Token.reading's first_surname flag is also set under middle_as_family. docs/AGENTS.md gains the check that would have caught both rounds: test a claim about a language choice on a word whose readings sit in different files, under a plain and a strict choice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Third review of #1146: the second fix scoped strict's effect to a word no chosen file holds, but a strict choice keeps only the readings its chosen files hold (beside the shared and native-script ones), so it also drops a name reading another file holds of a word the chosen file lists: strict pt reads Do Smith family Do Smith, unreported, where plain pt keeps Do given and reports it. customize, locales and docs/AGENTS.md now say a plain choice keeps every name reading and a strict one the chosen files' readings, with the Do case beside MA. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 8, 2026
derek73
added a commit
that referenced
this pull request
Nov 8, 2026
* Say what a strict choice keeps of a native-script word A strict choice keeps a native-script word's readings, name readings included, exactly as a plain choice of the same languages keeps them: a reading written default = false stays off unless its file is chosen (strict pt reads गुरु प्रसाद शर्मा title गुरु). Seven sites said "native-script vocabulary", leaving the name readings unsaid (Lexicon.strict, parser_for and its refusal, the UNCHOOSABLE comment, AGENTS.md, mechanisms.md, decisions/vocabulary-model's Standing summary, the RFC), and #1146/#1147's customize.rst and docs/AGENTS.md said a word in another script keeps "every file's" readings. Also from the post-merge review of af7431c: the README's first-build cost of a choice includes the reading index only unless a parse has already loaded it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Record the native-script clarification, and fix the review findings A dated decisions entry (2026-11-07 #1148) states what a strict choice keeps of a native-script word, with head notes on the 2026-10-30 file-strict and 2026-11-02 #1005 entries and the Standing lines pointing at it, so a Standing line no longer says what no entry says. The RFC's overview, its strict-hu and strict-ko sentences, its no-language refusal sentence and its operations-table row now say native-script words' readings; its File-strict paragraph's verb agrees again. The README's first-build sentence loads, not compiles, the reading index. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Write the native-script entry as a partial supersession decisions/README.md allows four kinds of edit to an entry, and "clarified by" is none of them; the 2026-10-30 entry's item 1 also says name readings leave. So the new entry SUPERSEDES both clauses in part, and the two heads say so in the sanctioned form. The entry names the filter as it was at 3j (strict_pool's) and since #1001 (strict_kept). The RFC's Status paragraph and phasing row get the same parenthetical as its overview, and strict hu's readings are the default's, a plain hu choice being refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Mark the 3j head's native-script wording superseded by #1148 too Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Restore the comma in the #1148 entry's SUPERSEDES list Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
A fresh read of the user docs (
usage,customize,concepts,locales,index,README.rst) and the autodoc docstrings against what 3.0 shipped. The pages had already dropped the compiled-constant names. What was left: one stale claim, the surname views missing from the locales page, and recipes that never said whether a language choice was the better lever. Every reading below was run on master (e793b1b).The finding that decides the recipes
A choice of languages keeps every name reading, and switches off other languages' vocabulary readings of a word its own language lists as vocabulary. So:
parser_for(nl, strict=True)still readsVan Burenas givenVanand reports it, and strictenstill reportsJOHN SMITH MA. TheLexiconrecipes forvan,ma,deanandnetostay the advice there.JOSE SILVA DOreportssuffix-or-nameby default; underlocales.PTthe English credential reading is off andDOis a family-name word, with nothing reported.The docs now recommend a choice first where the data's language is known: for those clashes, and for the conventions a pack carries (two family names, Vietnamese order, a given-name reading held off by default:
Ladyunderes,Honunder azhchoice,Guruunderne).(The first commit stated this too broadly, as "no choice settles a word with a name reading", and said
ptreads a trailingDOas a particle. The comment-analyzer review caught both; the fix commit corrects them.)Changes
usage.rst
Jan Freiherr von Berg→ familyFreiherr von Berg, whileFreiherr Hans von Bergis a title), with a doctest. Its Titles row now notes that a title which is also a given name is a title only inside a title phrase.words(kind="honorific", attached="after")) beside the Korean surnames.readings_of(what a word may be) besideToken.reading(what it was read as). It also notes that a lexicon answers only for readings it has on:Lady's given reading shows only onparser_for(locales.ES).lexicon.surname2names thees,es_ar,csandskpacks that fill it.Token.readingis described as having "the same parts" rather than "three".customize.rst
vnlocale pack" and pointed tolocales.VI(also forNguyen Van Minh, which VI reads as middleVan, givenMinh).strict=Truewas never mentioned on this page before.DO/doclash and for the given-name readings a language turns on.concepts.rst
Localeand a choice of languages are.locales.rst
surname1,surname2andsurname1_baseunderes, with a doctest. The Czech/Slovak section and the packs table name the views.vietnamese-nameslabel.Docstrings
surname1: its two-family example now names its switch. By defaultJuan de la Vega del Vallehas surname1del Valle.initials(): states whatspec,delimiterandseparatordo, instead of v1 history.Token.reading: mentionsReading.languages.ParsedName: lists its derived views.docs/AGENTS.md gains the language-choice check above.
No release-log bullet: these are doc corrections plus one new subsection.
Checks
sphinx-build -b doctestand-b htmlprint nothing.python -m doctest README.rstpasses.uv run pytest: 40,185 passed.ruff checkis clean.Reviews
Honunderzh, thevisentence, theToken.readingwording and a vacuoussurname1_baseexample were overbroad.Honunder thezhpack), both fixed in 6eea91f.nlchoice readsJOHN SMITH MAfamilyMA, unreported. The fix's paragraph and a pre-existing locales.rst sentence ("under any choice") now say plain choice. Thevisyllable lists read as complete and became examples;first_surnameis set undermiddle_as_familytoo. Fixed in 9205054.ptalso dropsDo's English given reading (Do Smith→ familyDo Smith, unreported). It is now stated reading by reading, in 9828fd1. Every example in that commit was run before it was pushed: strict enMAreported, strict nlMAfamily, strict ptDo Smithfamily, plain ptDogiven and reported.The trap that cost two rounds is recorded in
docs/AGENTS.md(Claims): test a claim about what a language choice settles on a word of each reading layout, under both a plain and a strict choice.(design-docs-reviewer is not needed: nothing under
docs/design/changes.)🤖 Generated with Claude Code