Behavior
GIVEN_FIRST (unchanged) FAMILY_FIRST / FF_GIVEN_LAST
de Mesnil Juan family='de Mesnil Juan' family='de Mesnil' given='Juan'
de la Vega Juan family='de la Vega Juan' family='de la Vega' given='Juan'
de Mesnil Garcia family='de Mesnil Garcia' family='de Mesnil' given='Garcia'
The default order does not change. de Mesnil Juan reads exactly
like pennie von bergen wessels — the same shape, and #393's
discussion settled that the greedy reading is right there.
Why order decides it
Declaring a family-first order is precisely an assertion that what
follows the family is not more surname. A particle run's stopping
point is exactly the question of where surname material ends, so the
declaration is evidence about it.
Recorded at decisions.md#P1 (2026-08-17), which supersedes the
2026-08-16 sentence "no name_order moves that stopping point". The
grouping/assignment split stands everywhere else.
Accepted cost: de la Vega Juan under the default order stays wholly a
surname. A caller who means family de la Vega plus given Juan
writes the comma.
Carried forward from two failed attempts
#390 tried a position-only rule twice — PR #391 (claim in assign) and
PR #394 (claim in grouping). Both closed unmerged. What their reviews
established, all measured:
Traps that bit and will bite again
- A conjunction merge makes the leading piece span several tokens:
de and Mesnil is one piece headed by and, which carries no
particle tag. A guard testing only for the ABSENCE of
vocab:particle-ambiguous passes vacuously.
st, do and freiherr are in TITLES and the ambiguous half; a
guard keyed on the leading piece hands them the chain.
abdul is a P5 bound-given word; merging it into a particle group
kills the P5 join and splits the pair across two fields.
- A conjunction-joined run counts as ONE word.
de la Vega y Santos Juan → family='de la Vega y Santos' is
correct, not a defect. Stated as a clause on rules.md#P3.
Verification is structurally weak here — build the pins first
- The differential sees ONE corpus name (
de Mesnil Garcia), and under
this direction the default order does not move at all, so it may see
ZERO. Exit 0 will not be evidence.
- The two-leftover shape (
de Mesnil Juan Carlos), where the two
family-first orders diverge from each other, exists in no test, case
row or rule example.
tests/v2/pipeline/test_post_rules.py uses a reduced _LEX
(particles={"de","la","van"}, titles={"mr","sir"}). Three tests
have been silently inert because of it. Use Lexicon.default() for
anything about shipped vocabulary.
Docs that need amending with the change
rules.md#P2's "The final group reads as the family name" is false
for every name this moves, and P2 has no interacts: line.
rules.md#P1 and #P4 both say "one name word" where they mean one
UNIT — see the conjunction point above.
_post_rules.py carries a stale DEVIATION #364 comment.
Related
#365 is the same rule reached under FAMILY_FIRST and is still open.
#364 asked this question and was closed on an answer that has since
been superseded twice.
Behavior
The default order does not change.
de Mesnil Juanreads exactlylike
pennie von bergen wessels— the same shape, and #393'sdiscussion settled that the greedy reading is right there.
Why order decides it
Declaring a family-first order is precisely an assertion that what
follows the family is not more surname. A particle run's stopping
point is exactly the question of where surname material ends, so the
declaration is evidence about it.
Recorded at
decisions.md#P1(2026-08-17), which supersedes the2026-08-16 sentence "no name_order moves that stopping point". The
grouping/assignment split stands everywhere else.
Accepted cost:
de la Vega Juanunder the default order stays wholly asurname. A caller who means family
de la Vegaplus givenJuanwrites the comma.
Carried forward from two failed attempts
#390 tried a position-only rule twice — PR #391 (claim in
assign) andPR #394 (claim in grouping). Both closed unmerged. What their reviews
established, all measured:
Traps that bit and will bite again
de and Mesnilis one piece headed byand, which carries noparticle tag. A guard testing only for the ABSENCE of
vocab:particle-ambiguouspasses vacuously.st,doandfreiherrare in TITLES and the ambiguous half; aguard keyed on the leading piece hands them the chain.
abdulis a P5 bound-given word; merging it into a particle groupkills the P5 join and splits the pair across two fields.
de la Vega y Santos Juan→family='de la Vega y Santos'iscorrect, not a defect. Stated as a clause on
rules.md#P3.Verification is structurally weak here — build the pins first
de Mesnil Garcia), and underthis direction the default order does not move at all, so it may see
ZERO. Exit 0 will not be evidence.
de Mesnil Juan Carlos), where the twofamily-first orders diverge from each other, exists in no test, case
row or rule example.
tests/v2/pipeline/test_post_rules.pyuses a reduced_LEX(
particles={"de","la","van"},titles={"mr","sir"}). Three testshave been silently inert because of it. Use
Lexicon.default()foranything about shipped vocabulary.
Docs that need amending with the change
rules.md#P2's "The final group reads as the family name" is falsefor every name this moves, and P2 has no
interacts:line.rules.md#P1and#P4both say "one name word" where they mean oneUNIT — see the conjunction point above.
_post_rules.pycarries a staleDEVIATION #364comment.Related
#365 is the same rule reached under
FAMILY_FIRSTand is still open.#364 asked this question and was closed on an answer that has since
been superseded twice.