spec: 009 Phase 2 — the four glossary terms, and the fifth that was already there - #115
Merged
Merged
Conversation
…dy there D12 was specified as five missing terms. Four were missing. Box Provisioning has been in Glossary.md since Spec 005, as ### BoxProvisioning under ## Database Provisioning, with a fuller definition than this phase would have written and four inbound links already pointing at #boxprovisioning. Adding a second entry would have recreated the Dispatcher-defined-twice defect Spec 011 spent a task merging. Nothing was added; every link to the term is the closed form, and design's D12 table, its D3 glossary list and Task 8.1 all carry the correction. How the errata got it wrong is the part worth keeping. §2.2 resolved five ANCHORS through linkcheck's own slug() and reported all five absent — and all five are absent. Nothing asked whether the TERM was absent, and a slug lookup cannot answer that: Box Provisioning and BoxProvisioning are the same term and different slugs. The tell was `grep -i box Glossary.md`. Added, all under ## Messaging Terms where the neighbouring entries already use them in prose: At-Least-Once after Message Oriented Middleware, and Partition / Consumer Group / Offset after Event Stream. Offset names CommitBatchSize's default of 10, verified at KafkaMessageConsumer.cs:122 and KafkaSubscription.cs:203 — no line number reaches the page, since that tree is 140 commits past the release. Anchors proved end-to-end rather than by the slug function that would only have agreed with itself: six probe links appended to FAQ.md, mutation asserted to have landed, linkcheck run — exactly one MISSING ANCHOR, the #box-provisioning control. FAQ.md restored from a copy and asserted byte-identical. The twelve anchors of §2.2 all still resolve and four moved line, so §2.2's own line numbers are now stale one phase after it told the reader not to trust design's. Cite anchors. 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 009 Phase 2 lands D12, the deliverable that gates rungs 3 and 4. The ladder names concepts and links them out rather than explaining them inline, which only works if the targets exist.
This changes a published page —
contents/Glossary.md, 678 → 722 lines.D12 was specified as five terms. Four were missing.
Box Provisioninghas been in the glossary since Spec 005, as### BoxProvisioningunder## Database Provisioning, with a fuller definition than this phase would have written — and four inbound links across two pages already point at#boxprovisioning(BoxProvisioning.md:12,:196,BoxProvisioningUpgrade.md:222). Spec 005's task list names that anchor spelling as a decision, not an accident.Adding a second entry would have recreated the
Dispatcher-defined-twice defect Spec 011 had to spend a task merging. So nothing was added, and every link to the term isGlossary.md#boxprovisioning. Design's D12 table, its D3 glossary list and Task 8.1 all carry the dated correction.How the errata got it wrong
§2.2 is not careless — it is exactly right about what it measured. It resolved five anchors through
linkcheck.py's ownslug()and reported all five absent, and all five are absent.#box-provisioninggenuinely does not resolve.What no query asked is whether the term was absent, and a slug lookup cannot answer that:
Box ProvisioningandBoxProvisioningare the same term and different slugs, so the one instrument in use was constitutionally unable to see the entry sitting there. This programme already knew to ask what a figure counted rather than whether it is right; the new face is that a lookup counts too. The tell was free:grep -i box contents/Glossary.md.What ships
All four go under
## Messaging Terms, beside entries that already use them in prose:At-Least-OnceMessage Oriented Middleware (MoM)BrighterInboxSupport.md:14says so in as many wordsPartitionEvent StreamConsumer GroupPartitionOffsetConsumer GroupPartitionsays how it relates to the existingPartition Key: the key chooses, the partition is what it chooses.OffsetnamesCommitBatchSize's default of 10, verified atKafkaMessageConsumer.cs:122andKafkaSubscription.cs:203, with the XML doc at:92saying in its own words that a crash means the group processes those records again. No line number reaches the page — that tree is 140 commits past the release and a cited line would be stale immediately.Verification
The task warned that "
linkcheck.pycatches nothing about a heading nobody links yet", and resolving slugs with the sameslug()the checker imports would only have asked whether the arithmetic agrees with itself. So the anchors were proved end-to-end: six probe links appended toFAQ.md, the mutation asserted to have landed,linkcheck.pyrun.Exactly one — the control. The four new anchors and
#boxprovisioningpassed as real link targets.FAQ.mdwas restored from a copy taken beforehand and asserted byte-identical, nevergit checkout --.Glossary.mdis 722 lines, 114 headings, 114 distinct slugs, no collisions, so rule 3b holds by enumeration as well as by the linter. The twelve anchors of §2.2 all still resolve — and four moved line, so §2.2's own line numbers are stale one phase after it told the reader not to trust design's.Gates
The using-directive debt is unmoved at 790, as it must be: a glossary entry carries no C# block. The
--changedrun reaching 0 code blocks is the honest result for prose, not a pass to lean on.Next: Phase 3, rung 1 — and the corpus's first
Tutorial-typed page.🤖 Generated with Claude Code