spec: 010 Task 11.8 — the second H1, and the rule that could not see it - #107
Merged
Conversation
BuildingAnAsyncPipeline.md carried two H1s, lines 1 and 8. NO H1 fires only on
none and rule 3b starts at `##`, so nothing checked it.
The demotion is its own argument for the rule. What a second H1 buys its author
is exemption from every rule a section heading obeys: as `# Implementing a
Pipeline` it was fine, and as `## Implementing a Pipeline` it collides with
BuildingAPipeline.md:52, which carries that heading already. It is now
`## Implementing an Async Pipeline`, unique and qualified. Nothing linked the old
anchor, checked before the edit.
EXTRA H1 is an error repo-wide from this commit, which the corpus permits: one
page had it and it is fixed here, so the rule lands at zero — the same shape as
rule 4 after Task 7.2 cleared its debt. CLAUDE.md's ledger gains the row in the
same commit.
Enumerating the ledger for that row found the gap it exists to prevent, for the
third time and in the third direction. Spec 011 found NO H1 in the linter and not
in CLAUDE.md; Phase 10 found it in CLAUDE.md and not in the linter's docstring,
and wrote "enumerate both directions". SUMMARY NOT A SENTENCE was in neither —
added by that same session's sweep and never written down. Both places fixed.
And the last of the 2022 rst conversion: a `{.title-ref}` artefact that a reader
sees verbatim where a link should be. linkcheck cannot fail it because it is not
a link — the third time that sentence applies in this phase. Repaired to the form
the preceding line already uses, target confirmed in the Brighter source. No rule
added: it occurs once, nothing here can produce another, and a rule guarding a
door nobody can open is one the next reader must understand before ignoring.
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.8. One published page changes; no URL moves.
BuildingAnAsyncPipeline.mdcarried two H1s, lines 1 and 8.NO H1fires only on none and rule 3b starts at##, so nothing checked it.The demotion is its own argument for the rule
What a second H1 buys its author is exemption from every rule a section heading obeys. As
# Implementing a Pipelineit was fine. As## Implementing a Pipelineit collides withBuildingAPipeline.md:52, which carries that heading already — the page had been escaping rule 3a by claiming to be a title.It is now
## Implementing an Async Pipeline, unique and qualified. Nothing linked the old anchor; checked before the edit.EXTRA H1is an error repo-wide from this commit, which the corpus permits: one page had the defect, it is fixed here, so the rule lands at zero — the same shape as rule 4 after Task 7.2 cleared its debt.CLAUDE.md's ledger gains the row in the same commit.Enumerating the ledger found the gap it exists to prevent — third time, third direction
CLAUDE.mdNO H1✅NO H1✅SUMMARY NOT A SENTENCE✅Phase 10's write-up says "enumerate both directions".
SUMMARY NOT A SENTENCEwas added to the code by that very session's sweep, four defects deep in a list, and written down nowhere else. The session that drew the lesson broke it again, in the same file, within the same phase. Both places fixed.A parity check is only true of the moment it ran. What makes it hold is running it whenever a label is added — now Task 11.4's job, and this row's precedent.
The last of the 2022 conversion
reStructuredText
pandocnever finished converting, which a reader sees verbatim — braces, backslashes and all — where a link should be.linkcheck.pycannot fail it because it is not a link: the same sentence as the.htmlfinding and the(#)one, for the third time in this phase. Repaired to the form the preceding line already uses, target confirmed againstBrighter/src/Paramore.Brighter/RequestHandlerAsync.cs.No rule added, deliberately.
{.title-ref}occurs once in 142 pages, the conversion that produced it happened once in 2022, and nothing here can produce another. A rule guarding a door nobody can open is a rule the next reader must understand before they may ignore it. The.htmllinks earned one because 23 survived; this earned a fix.Gates
linkcheck 144 files, clean; pagelint 0 errors / 791 warnings / 142 pages;
--check-shape0;--check-redirects0 at 77 entries;--changed origin/master0 at 4 files, 14 hunks, 1 page, 0 code blocks strict.🤖 Generated with Claude Code