freiherr and st are both titles and particles (TITLES ∩ particles_ambiguous). Where one stands second at the head, three places each decide where the name starts:
#614's index defect lived exactly there, and #620's review found a second case: a unit opened inside the titles whose words the read then takes, which the chain never builds (St St VI, fixed with a gate). Today:
| Input |
Today |
Freiherr St John Smith MA |
title 'Freiherr', family 'St John Smith', suffix 'MA', with a title-or-name report saying "read as a given name" about the family |
Freiherr St van Berg MA |
title 'Freiherr', family 'St van Berg', suffix 'MA' |
Dr. St John |
title 'Dr. St', family 'John' |
Proposal: decide the name start once, before the read, and have the read, the chain and assign take that one answer, so the gate in _chain_units (q > k + 1) and assign's re-read fallback can go.
Measure: grids with both title-particles in every head position (AGENTS.md's sweep paragraph); expect moves only in Freiherr/St heads.
freiherrandstare both titles and particles (TITLES ∩ particles_ambiguous). Where one stands second at the head, three places each decide where the name starts:leading_titles(the title run);_chain_units' unit opener inside the titles (Should S2's trailing read count the particle chain's units instead of merging a copy of them? #620);_group's chainleadingscan.#614's index defect lived exactly there, and #620's review found a second case: a unit opened inside the titles whose words the read then takes, which the chain never builds (
St St VI, fixed with a gate). Today:Freiherr St John Smith MAtitle-or-namereport saying "read as a given name" about the familyFreiherr St van Berg MADr. St JohnProposal: decide the name start once, before the read, and have the read, the chain and assign take that one answer, so the gate in
_chain_units(q > k + 1) and assign's re-read fallback can go.Measure: grids with both title-particles in every head position (AGENTS.md's sweep paragraph); expect moves only in Freiherr/St heads.