Skip to content

Decline a title word a trailing rule reads, in the bound join (#637, #640) - #643

Merged
derek73 merged 3 commits into
masterfrom
feat/issue-637-640-bound-join-title
Oct 11, 2026
Merged

derek73 merged 3 commits into
masterfrom
feat/issue-637-640-bound-join-title

Conversation

@derek73

@derek73 derek73 commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

P5's bound given-name join takes the word after abdul. It already declined a maiden marker and a suffix piece, but it took a title word even where a trailing rule would have read that word as a title. The joined piece was then no title word to read:

Input Before Now
Berg, abdul Prof. (#637) given 'abdul Prof.' title 'Prof.', given 'abdul'
John Smith, Jr., abdul Dr. Smith (#640) suffix 'Jr., abdul Dr. Smith' title 'Dr.', suffix 'Jr., abdul Smith'
Berg, abdul Prof. Ali given 'abdul Prof.' unchanged: the title stands inside the name
abdul Sir Smith Berg given 'abdul Sir' unchanged

The join now declines a title word that a trailing rule reads as a title:

Decided (Derek): this narrower clause (a′), not declining every title word (a). P5 states that a title word standing in the name is a name word and joins like one (H3), and (a) undid that:

  • six tests failed against master's suite, including a P5 rules example and the two tests named for that clause;
  • 4,044 bound-given grid parses moved, 3,000 of them joins split with no title read ((Bob), Abu Bishop → given 'Abu', middle 'Bishop').

Measured (against 4455962, py3.11, import asserted on each side; recipes in decisions.md#P5)

Tests

  • title_word_trailing_behind_a_bound_pair_after_a_comma (Berg, abdul Prof.) used to pin the gap as a non-normative row. It now pins the title, as fix(#637).
  • New row a_bound_join_declines_a_title_past_the_second_comma, fix(#640).
  • rules.md#P5 examples: three new ones, including the Berg, abdul Prof. Ali boundary. rules.md#H5's gap paragraph becomes an example.
  • New rows from the review:
    • John Smith, Jr., abdul Sir Smith (fix(#640)): the bare-title half.
    • Berg, abdul Prof. Dr. (fix(#637)): the whole trailing run rather than the last word.
  • Negative controls:
    • With no title declined, 11 tests fail.
    • With the past-the-second-comma half alone removed, 5 tests fail.

Review

Recorded, not narrowed. After a family comma, the decline asks how the comma-less name would read H5's run, and the given part's own reading differs on some shapes. There the join is declined and no title is read:

  • a numeral VI to X (Smith, abdul Prof. VI → middle 'Prof. VI')
  • V before a third comma part
  • a dotted title-particle, which P6 attaches (Smith, abdul St. → family 'St. Smith')

A bound word that is also a particle, before a dotted title-particle, goes the other way: the title is read where an ordinary given word doesn't read it (Smith, Abu St. → title 'St.'; Smith, Zed St. → family 'St. Smith').

All of these are garbage input, recorded the same way as #623's disagreement, and rules.md#P5 states them in an Accepted clause. The sweep found nothing reading worse than master on a real name, and no comma-less name moved.

Fix commit:

Second fix commit: H5's Accepted paragraph now excepts the shapes P5 records, and the frames sentence gains the family-comma case.

Docs

Closes #637
Closes #640

🤖 Generated with Claude Code

…640)

P5's bound given-name join took the word after `abdul` even where a
trailing rule would read it as a title, so the joined piece was no
title word: `Berg, abdul Prof.` read given 'abdul Prof.' where `Berg,
John Prof.` reads title 'Prof.' (#637), and `John Smith, Jr., abdul Dr.
Smith` read suffix 'Jr., abdul Dr. Smith' (#640). The join now declines
such a word: after a family comma one H5's trailing run takes from the
given part, and in a part past the second comma any title word, which
C2 reads. A title word standing in the name still joins (`abdul Sir
Smith Berg`), as P5 states. Decided (Derek): this narrower clause over
declining every title word, which split real joins.

Measured against 4455962: 1,044 of 15,552 bound-given grid parses move,
each a title word into the title field; 280 of #623's given-part grid,
the same class; among corpus names and case texts only the row that
pinned the gap. Five gates exit 0.

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 (4455962) to head (baa310c).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #643   +/-   ##
=======================================
  Coverage   99.02%   99.02%           
=======================================
  Files          46       46           
  Lines        4512     4513    +1     
=======================================
+ Hits         4468     4469    +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 04:05
The decline after a family comma asks H5's run as the comma-less name
reads it, and the given part's walk reads some words behind a title
otherwise (a numeral VI to X, V before a third part, a title-particle
P6 attaches): there the join is declined and no title is read. Garbage
shapes, recorded rather than narrowed as #623's disagreement was, and
stated in an Accepted clause of rules.md#P5; the entry no longer says
every move gains a title, and its #623-grid count names the 20 that
do not. Rows pin the bare-title half past the second comma and the
whole trailing run after a family comma, which no test held.

Corrected: option (a)'s count (3,000 joins split, not 1,944), the
negative controls (11 and 5), a row note's history (#603), a ledger
note naming the wrong rule, the entry's place in the P5 section, notes
on the #623 and #614 entries, P5/C2 interacts, two release sentences.
The site is asked before the title test, so a comma-less bound name
pays no frame for it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
rules.md#H5's Accepted paragraph said the title is read after a family
comma, which P5's new Accepted clause now excepts; the frames sentence
gains the family-comma bound name with no title behind it.

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

Projects

None yet

1 participant