Skip to content

spec: 010 Task 11.1 — the glossary links, and the nine terms that had no entry - #106

Merged
iancooper merged 1 commit into
masterfrom
docs/spec-010-phase-11-glossary-links
Aug 22, 2026
Merged

spec: 010 Task 11.1 — the glossary links, and the nine terms that had no entry#106
iancooper merged 1 commit into
masterfrom
docs/spec-010-phase-11-glossary-links

Conversation

@iancooper

Copy link
Copy Markdown
Member

Spec 010, Phase 11, Task 11.1 (D8). Two published pages change; no URL moves.

All 24 of BasicConcepts.md's terms now link to their Glossary.md entry. Every link carries an #anchor, which is the point of doing it this way — all 24 are now under linkcheck.py's MISSING ANCHOR check.

The task presupposed a mapping that did not exist

"Each of the 24 linked to its matching anchor" reads as bookkeeping. It is a claim about the Glossary, and it was wrong for nine of them:

Terms
Matched exactly 12
Matched under a different spelling 3 — Message MappersMessage Mapper, Routing Key (Topic)Routing Key, Service ActivatorServiceActivator
No entry at all 9 — DLQ, CQS, Event Stream, MoM, Message Queue, Nack, Poison Message, Result, Request-Reply

Middleware is the near-miss worth naming. A loose match offers it for Message Oriented Middleware; the entry reads "a handler that wraps other handlers" — pipeline middleware, the opposite end of the system. A linker working from string distance would have pointed the reader at the wrong concept with every check still green.

The nine, written

Ruled by the maintainer. They are Brighter's own vocabulary — a messaging framework's glossary with no entry for dead letter queue, nack or poison message is missing the words a reader arrives with.

Placed in the categories that already existed (six in Messaging Terms, two in Core Concepts, Request-Reply in Patterns), in the house format, and checked against the Brighter source rather than paraphrased from BasicConcepts.md: RejectMessageAction, DontAckAction and DeferMessageAction are three distinct dispositions in Paramore.Brighter/Actions/, and their XML docs are where the DLQ entry's "when the requeue count is exceeded" and the Nack entry's per-transport list come from. RequeueCount is checked at Subscription.cs:109. 81 entries → 90.

Placement is load-bearing

The link line goes at the end of each section. A page's description: is derived from its opening sentence, so a pointer inserted under ## Command would have become BasicConcepts.md's public description — Phase 10's platform-default duplication, arriving from the other direction.

A third thing linkcheck walked past

BasicConcepts.md carried [query processor](#) — a link to nothing. It reaches a reader as a live link, and reached the checker as a same-page link with an empty anchor, so the anchor test skipped it for having nothing to look up. Now EMPTY TARGET, red on the untouched corpus at exactly one occurrence: the one on this page.

Same shape as the .html links and the wrapped links: not malformed, therefore not examined. The rule is worth more than the fix — an empty link is what a half-finished edit leaves behind, and nothing else here would notice.

Gates

linkcheck 144 files, clean; pagelint 0 errors / 791 warnings / 142 pages; --check-shape 0; --check-redirects 0 at 77 entries; --changed origin/master 0 at 5 files, 36 hunks, 2 pages, 0 code blocks strict.

🤖 Generated with Claude Code

… no entry

D8. All 24 of BasicConcepts.md's terms now link to their Glossary entry, each
with an #anchor, which is what puts them under linkcheck's MISSING ANCHOR check.

The task presupposed a mapping that did not exist. Mapped by slug, 12 of the 24
matched exactly and 3 more under a different spelling — Message Mappers/Message
Mapper, Routing Key (Topic)/Routing Key, Service Activator/ServiceActivator. The
remaining nine had no Glossary entry at all: DLQ, CQS, Event Stream, MoM, Message
Queue, Nack, Poison Message, Result and Request-Reply.

`Middleware` is the near-miss worth naming: a loose match offers it for Message
Oriented Middleware, and the entry is about handlers wrapping handlers — the
opposite end of the system. A slug that nearly matches is not a term that matches.

Ruled by the maintainer: write the nine. They are Brighter's own vocabulary, and
a messaging framework's glossary with no entry for dead letter queue, nack or
poison message is missing the words a reader arrives with. Written into the
categories that already existed, in the house format, and checked against the
Brighter source rather than paraphrased: RejectMessageAction, DontAckAction and
DeferMessageAction are three distinct dispositions in Paramore.Brighter/Actions/,
and RequeueCount is a Subscription property at Subscription.cs:109. 81 -> 90.

The link line goes at the end of each section, not under the heading: a page's
description is derived from its opening sentence, so a pointer inserted first
would have become the page's public description.

And a third thing linkcheck walked past, on the page this task was editing:
`[query processor](#)`, a link to nothing, which reached the checker as a
same-page link with no anchor to look up. Now EMPTY TARGET, red on the untouched
corpus at exactly one occurrence. Same shape as the other two — not malformed,
therefore not examined.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@iancooper
iancooper merged commit 45cd396 into master Aug 22, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant