words.py: a retired word's plural is the word #176

Merged
mesh-admin merged 2 commits from fix/words-match-plurals into main 2026-10-07 19:21:34 +00:00
Contributor

words.py built its pattern with (?![\w-]) straight after the retired word, so a plural passed: "alerts" and "rollouts" were fine while "alert" and "rollout" were retired (ADR 0244).

  • The pattern now accepts s or es on the last word of a retired word or identifier. The exemptions for code spans, quotations, struck-through text, link targets, comments and frontmatter are unchanged.
  • It failed on 15 uses in 10 documents, one of them found after rebasing onto main. All of them are reworded here, as wording only, and no decision record is touched:
    • "the hosts" for the node-engines in to-be 28. These were real finds.
    • "alerts" in the glossary and in to-be 06 and 49. In 49 the word is now quoted, because the sentence names it.
    • "rollouts" in to-be 45.
    • "a node hosts" (a verb) in as-is 01 and to-be 15, now "runs" or "holds".
    • "the hosts file" in to-be 08 and 36, now the hosts file.
  • 00-META/checks/README.md records the failure.

The checks have no test suite, so the failure is recorded in the README the way the other checks record theirs.

The catalogue's checks/words has the same flaw and gets its own PR, novox/mesh-catalog#112.

Checks: records.py, index.py, cycle.py and words.py pass, and so does sh merge-check.sh, after rebasing onto main.

`words.py` built its pattern with `(?![\w-])` straight after the retired word, so a plural passed: "alerts" and "rollouts" were fine while "alert" and "rollout" were retired (ADR 0244). - The pattern now accepts `s` or `es` on the last word of a retired word or identifier. The exemptions for code spans, quotations, struck-through text, link targets, comments and frontmatter are unchanged. - It failed on 15 uses in 10 documents, one of them found after rebasing onto main. All of them are reworded here, as wording only, and no decision record is touched: - "the hosts" for the node-engines in to-be 28. These were real finds. - "alerts" in the glossary and in to-be 06 and 49. In 49 the word is now quoted, because the sentence names it. - "rollouts" in to-be 45. - "a node hosts" (a verb) in as-is 01 and to-be 15, now "runs" or "holds". - "the hosts file" in to-be 08 and 36, now the `hosts` file. - `00-META/checks/README.md` records the failure. The checks have no test suite, so the failure is recorded in the README the way the other checks record theirs. The catalogue's `checks/words` has the same flaw and gets its own PR, novox/mesh-catalog#112. Checks: records.py, index.py, cycle.py and words.py pass, and so does `sh merge-check.sh`, after rebasing onto main.
Author
Contributor

Delivery novox/hq@4b36234c9b13 — delivered since 2026-10-07T19:21:44Z

Delivery plan — builds nothing: the change touches no module of the mesh's graph

Group fix/words-match-plurals, in order: novox/hq@4b36234c9b → novox/mesh-catalog@362974244e

  • composed together: pass — the change touches no module of the mesh's graph

Transitions

  • 2026-10-07 19:15 (new) → proposed (announced): novox/hq#176's head announced
  • 2026-10-07 19:15 proposed → checked (checked): the verdict names this commit
  • 2026-10-07 19:15 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail
  • 2026-10-07 19:21 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move
  • 2026-10-07 19:21 published → delivered (done): nothing for a walk to move

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/hq@4b36234c9b13` — **delivered** since 2026-10-07T19:21:44Z **Delivery plan** — builds nothing: the change touches no module of the mesh's graph **Group** `fix/words-match-plurals`, in order: novox/hq@4b36234c9b13 → novox/mesh-catalog@362974244ebc - composed together: pass — the change touches no module of the mesh's graph **Transitions** - 2026-10-07 19:15 (new) → proposed (announced): novox/hq#176's head announced - 2026-10-07 19:15 proposed → checked (checked): the verdict names this commit - 2026-10-07 19:15 checked → ready (accepted): the gate passed or warned, and the repository's own check did not fail - 2026-10-07 19:21 ready → published (merged): on the trunk its modules follow: merged there, and its walk opened — or nothing for a walk to move - 2026-10-07 19:21 published → delivered (done): nothing for a walk to move The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben added 2 commits 2026-10-07 19:14:44 +00:00
words.py matched a retired word only when nothing followed it, so the
plural of every retired word passed. The pattern now takes s or es on the
last word; 14 uses in 9 documents are reworded, two of them 'the hosts'
for the node-engines.
Reword the hosts file in to-be 36, found by the plural on the rebase onto main
mesh/merge-gate pass: the change touches no module of the mesh's graph
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group fix/words-match-plurals merged: every member is merged
4b36234c9b
jschoubben force-pushed fix/words-match-plurals from 25b313419b to 4b36234c9b 2026-10-07 19:14:44 +00:00 Compare
mesh-admin merged commit 3083283e17 into main 2026-10-07 19:21:34 +00:00
mesh-admin deleted branch fix/words-match-plurals 2026-10-07 19:21:35 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#176