Skip to content

Make no particle chain in a part that holds no name word (#636) - #639

Merged
derek73 merged 3 commits into
masterfrom
feat/issue-636-tail-part-title
Oct 11, 2026
Merged

derek73 merged 3 commits into
masterfrom
feat/issue-636-tail-part-title

Conversation

@derek73

@derek73 derek73 commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

A part past the second comma, after either comma, is read entirely as suffixes, with its title words read as titles (C2, #603). Group still ran the particle chain over it, which builds a name unit no reading uses. A particle past the part's first word took the words behind it, including any title word among them.

The part after a suffix comma, which C2 also covers, has reached no chain since #613: _comma.decide binds it and empties its segment before any join. A suffix-comma grid of 606,216 parses moves nothing here (recipe in the decisions entry).

Input Before Now
John Smith, Jr., van der Berg Prof. suffix 'Jr., van der Berg Prof.' title 'Prof.', suffix 'Jr., van der Berg'
John Smith, Jr., van der Prof. Berg suffix 'Jr., van der Prof. Berg' title 'Prof.', suffix 'Jr., van der Berg'
John Smith, Jr., van Berg Prof. title 'Prof.' (the leading van chains nothing, P4) unchanged
John Smith, Jr., Prof. title 'Prof.' unchanged

Group now makes no chain in such a part and asks for no chain bound there. C2 then reads every title word in the part, whether bare (Prof) or mid-part.

Decided (Derek): this approach, rather than the issue's proposal of #623's trailing_run_start bound at this site. That bound reads trailing titles only (H5), which is narrower than C2's rule, and it adds a call where removing the chain takes one away. The chain's two report emitters were already handed no report list in these parts, for the same reason. With no chain there, there is nothing to suppress.

Measured (against 3b2b6f0, py3.11, import asserted on each side; grid recipe in decisions.md#P2's 2026-10-10 #624 entry)

Tests

  • New row a_title_behind_a_particle_run_past_the_second_comma, labelled fix(#636). 1.4.0 and 2.3.0 read suffix 'Jr., van der Berg Prof.'.

  • Two new rules.md#C2 examples.

  • New rows from the review: Smith, John, van der Berg Prof. and ,, van der Berg Prof. (both fix(#636)). A chain kept after a family comma alone had passed every other test while reverting these readings.

  • Negative control: with the chain run in these parts again, 9 tests fail.

    • The three fix(#636) rows, on both surfaces.
    • The two new C2 examples.
    • a_part_past_the_second_reports_no_particle_fork: the handoff no longer suppresses its chain report, so that row now guards the change too.

    With the chain run only after a family comma, the two review rows fail on both surfaces.

Review

Fix commit:

  • pins the family-comma and empty-head tails;
  • corrects the suffix-comma mechanism claim in the entry, a code comment and a case note;
  • removes the now-dead tail half of group's report handoff (nothing moves);
  • narrows C2's Accepted paragraph to its report half.

The grid sweep ran under 13 configurations, comparing fields, reports, initials(), capitalized() and the facade's views, and found no reading made worse.

Two gaps were already on master and are recorded in the entry:

Second fix commit:

Docs

Closes #636

🤖 Generated with Claude Code

A part past the second comma, and the part after a suffix comma, read
wholly as suffixes with their title words as titles (C2), but group
still ran the particle chain over them, building a name unit no reading
uses: `John Smith, Jr., van der Berg Prof.` read suffix 'Jr., van der
Berg Prof.' where `John Smith, Jr., Prof.` reads title 'Prof.'. Group
now makes no chain there and asks no bound for one, so C2 reads every
title word in the part, bare or mid-part. Narrower and cheaper than the
#623 bound the issue proposed, which reads trailing titles only.

Measured against 3b2b6f0: 18,318 of #624's comma-tail grid parses move,
15,330 a title word into the title field and 2,988 a particle back out
of a title the chain had joined; no corpus name, case text or other
grid moves. Five gates exit 0. Tail parts cost fewer frames.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@derek73 derek73 self-assigned this Oct 11, 2026
@codecov

codecov Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.02%. Comparing base (3b2b6f0) to head (aa081f7).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #639   +/-   ##
=======================================
  Coverage   99.02%   99.02%           
=======================================
  Files          46       46           
  Lines        4511     4512    +1     
=======================================
+ Hits         4467     4468    +1     
  Misses         44       44           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

derek73 and others added 2 commits October 11, 2026 02:35
A chain kept in a part past the second comma after a FAMILY comma alone
passed every test, though it reverts readings; rows for `Smith, John,
van der Berg Prof.` and the empty head `,, van der Berg Prof.` hold it.

The part after a suffix comma has reached no chain since #613, decide
binding it and emptying its segment before any join, so #636 changes
only parts past the second comma: the entry, the code comment and a
case note said otherwise and are corrected. The tail half of group's
report handoff is dead with no chain there and is removed (nothing
moves). C2's Accepted paragraph is narrowed to its report half, and the
entry names its population against 3b2b6f0 and records the review's
measurements and two gaps already on master.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
With the report handoff's tail half gone, the full-revival negative
control fails 9 tests, the existing report row among them, not 4. The
suffix-comma grid and the handoff's measurement now give their recipes,
the review's unrecorded sweep quotes no count, #544's entry marks its
mechanism superseded, and the entry opens #640 and #641.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@derek73
derek73 merged commit 4455962 into master Oct 11, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Should John Smith, Jr., van der Berg Prof. read title 'Prof.' as John Smith, Jr., Prof. does?

1 participant