fix(#562): a particle chain unsettles a comma credential run - #569
Merged
Merged
Conversation
C1's run test left a run whose every member is listed and written in
capitals in a mixed-case name to the family-comma path, on the promise
that path reads it wholly as credentials. Two particles side by side
break that promise: group chains them into one particle run, assign
reads the part as name text, and P6 attaches the chain to the family.
'John Smith, PhD DO DO' read given 'PhD', family 'DO DO John Smith';
'John Smith, DO DO DO' given 'DO', middle 'DO DO'. rules.md#S2 already
said the capitals do not decide a chained member.
The settled check now gives way when two particles stand next to each
other in the part (classify's own particle test, asked only while the
run is still settled), so the count reads the run: two name words
before the comma flip it to the credential run, reported. That covers
a non-member particle too ('John Smith, PhD vd DO'). 1.4.0 read every
one of these names this way.
rules.md#C1 states the exception with examples; decisions.md records
the choice of #562's fix 1 over fix 2, the measurement and the two
neighbours left open. The four 2.x ledgers gain a fix(#562) rule, the
settled-grid pin and its two negative controls are re-measured, and
the ten #562 exceptions come out of it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…laims
The docs review found the C1 clause crediting S2 with a join that is
P2's (P2 joins C1's interacts:), and the release bullet wrong twice:
'John Smith, MD DO DO' read title 'MD', first 'DO', middle 'DO' at
2.3, not correctly, and DO is not the only credential that is also a
particle -- MC and VD are too. The 'no two particles side by side'
insert in C1's silence sentence is reverted: that sentence is about
runs the count leaves in the listing form, which a particle pair no
longer is.
The code review found the check reaching runs the family-comma path
did read whole ('John Smith, vd DO', 'VD DO', 'MD DO DO'): those flip
to the same fields and gain the flip's report. Accepted as C1's own
"a decision either way at this comma is reported", recorded in the
decisions entry and pinned by a case row; the segment comment no
longer claims every chain was misread. The S2 #544 entry's boundary
(5) points forward to the narrowing, and the settled test's docstring
states the old controls' exception counts exactly.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nsus The second review found 'Esq. DO DO', 'Jr. DO DO' and 'PhD. DO DO' keeping their fields and gaining the report too -- a credential closed by a period in front, which neither named kind covers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #569 +/- ##
=======================================
Coverage 98.87% 98.87%
=======================================
Files 45 45
Lines 3985 3990 +5
=======================================
+ Hits 3940 3945 +5
Misses 45 45 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
Closes #562.
What changes
C1's run test had a shortcut. When every ambiguous-class member of the part after the comma is listed and written in capitals in a mixed-case name, it skipped the flip and left the part to the family-comma path, which promised to read it as a credential run. That promise fails when two particles stand next to each other. Group chains them into one particle run, assign reads the part as name text, and P6 attaches the chain to the family.
John Smith, PhD DO DOPhD, familyDO DO John SmithJohn, familySmith, suffixPhD DO DO, reportedJohn Smith, DO DO DODO, middleDO DODO DO DOJohn Smith, PhD vd DOPhD, familyvd DO John SmithPhD vd DOJohn Smith, PhD DOPhD, familyDO John SmithPhD DO, silent1.4.0 reads every one of these the way this PR does.
This is #562's fix 1. The settled check gives way when two particles stand side by side, and the count of name words before the comma reads the run instead. rules.md#S2 already says the capitals don't decide a chained member, so S2 stays as written. Fix 2 would have needed S2 amended.
The check is any two adjacent particles, not only a class member behind one.
vdis a particle and an unambiguous suffix word, soPhD vd DOandMA vd vdmisread the same way. Segment runs before classify, so the check uses classify's own particle test (_normalize(text) in lexicon.particles). It is asked only while the run is still settled, so other comma names pay no extra frame.Measured (against master 0eadede, details in the decisions.md entry)
fix(#562)rule in the four 2.x ledgers.test_properties.py, 5,580 texts): 15 move, 10 of them role moves. The pinned_SETTLED_EXCEPTIONSare gone, and the count and both recorded negative controls are re-measured.John, familySmith, with the part as suffix.Decided in review (Derek, 2026-10-01)
John Smith, vd DO,MD DO DOandEsq. DO DO. These aren't names anyone writes on purpose, so a report is the right signal. Recorded in the decisions.md entry and pinned by a case row.John Smith, PhD DO. DOorPhD DO y DO, so this PR leaves them as they are.John Smith, MA MAreporting is wanted, because nobody repeatsMAat the end of their name on purpose. rules.md#C1's sentence that such a run "reads whole in silence" is therefore the inaccurate part, not the behavior. That sentence predates Why doesJohn Smith, PhD DO DOread given 'PhD' and family 'DO DO John Smith'? #562, so it gets its own docs PR rather than this one.John Smith, PhD DO DOread given 'PhD' and family 'DO DO John Smith'? #562 asked:Smith, PhD DO DOhas one name word before the comma, so it stays in listing form: givenPhD, familyDO DO Smith.John Smith, PhD van deruses non-member particles, which never reach the run test.Review
interacts:.🤖 Generated with Claude Code