spec: 010 Task 11.1 — the glossary links, and the nine terms that had no entry - #106
Merged
Merged
Conversation
… 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>
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.
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 theirGlossary.mdentry. Every link carries an#anchor, which is the point of doing it this way — all 24 are now underlinkcheck.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:
Message Mappers→Message Mapper,Routing Key (Topic)→Routing Key,Service Activator→ServiceActivatorMiddlewareis 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-Replyin Patterns), in the house format, and checked against the Brighter source rather than paraphrased fromBasicConcepts.md:RejectMessageAction,DontAckActionandDeferMessageActionare three distinct dispositions inParamore.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.RequeueCountis checked atSubscription.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## Commandwould have becomeBasicConcepts.md's public description — Phase 10's platform-default duplication, arriving from the other direction.A third thing linkcheck walked past
BasicConcepts.mdcarried[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
.htmllinks 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-shape0;--check-redirects0 at 77 entries;--changed origin/master0 at 5 files, 36 hunks, 2 pages, 0 code blocks strict.🤖 Generated with Claude Code