Skip to content

spec: 010 Tasks 11.6 and 11.9 — the section with no file, the file with no rule - #108

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

spec: 010 Tasks 11.6 and 11.9 — the section with no file, the file with no rule#108
iancooper merged 1 commit into
masterfrom
docs/spec-010-phase-11-conventions

Conversation

@iancooper

Copy link
Copy Markdown
Member

Spec 010, Phase 11, Tasks 11.6 and 11.9. No page under contents/ changes; nothing published moves.

Two ends of the same defect. 11.6 is a convention describing a file this repository does not generate. 11.9 is a published file no rule reached.

Task 11.6 — the llms.txt section

Rewritten from a live measurement rather than from memory: 56,527 bytes, 201 entries, all 201 carrying a description — 143 from this space, 58 from v9 — plus a trailing Agent Instructions section GitBook appends, documenting a ?ask=<question> query endpoint nothing in this programme had recorded.

No type field, and none should be added. The banner carries the type and the .md variant prints it one line under the H1, so a prefix would spend the snippet repeating what the page is about to say. AC9 was narrowed for exactly this.

A third source, finally pinned down

A line is - [Title](url): description, and its three parts come from three different places:

Part Source How established
URL slug the filename Phase 10, the hard way — repointing an entry at a real file moved the URL
Title the SUMMARY.md entry text, not the H1 Measured here: 32 pages spell the two differently, and the index uses the SUMMARY.md text on all 32
description the page's front matter 201 of 201

Nobody had asked where the title came from, because on the other 110 pages the two agree and either answer looks right.

One draft claim was wrong, in the usual direction

The first draft said every v9 description opens with "Superseded". It is Brighter V9 (superseded)., and the example URL named a space root that does not exist — v9's pages publish under this space's path. Both were plausible reconstructions of a session's work. Checked against the bytes and corrected before the commit.

And that check found three v9 pages carrying the prefix and nothing elseDarkerBasicConfiguration.md, ImplementAQueryHandler.md, Logging.md, whose bodies are an H1 and, twice, the word TODO. Phase 10's sweep behaved correctly: there was no sentence to append. The empty description is the symptom; the empty page is the defect. Left for a ruling, with the precedent (Phase 10 removed six empty scheduler pages from v9's SUMMARY) recorded next to the way these three differ.

Task 11.9 — README.md takes rule 7

The boundary was never a policy. opening_sentence() skips the line after the H1, because on all 142 pages that line is the banner. On the README, that line is the opening sentence — so pointing the existing rule at the file unchanged would have summarised the site root with its second paragraph and then reported its correct front matter as a DESCRIPTION MISMATCH. A rule extended without being read would have failed loudly on a correct page.

Root pages take rule 7 and nothing else: no banner rules (they declare no page type), no heading qualification (attributing a chunk to the site root is circular), and they are excluded from the uniqueness corpus as well as its reporting, so no page can be reported as colliding with one that is exempt. --fix is narrowed the same way — all three repairs are no-ops on the README today, but by accident, and an accident is not a boundary.

Red-proof

The extractor was called directly first, because rule 7 has already been green on 142 pages while reading the wrong input on twenty of them.

Probe Result
extractor, called directly line 10, "Documentation for the Brighter and Darker projects." — the real sentence
baseline clean, exit 0
description drifted DESCRIPTION MISMATCH, exit 1
description unquoted DESCRIPTION UNREADABLE, exit 1
opening sentence deleted DESCRIPTION MISMATCH, exit 1

That last row is worth keeping: deleting the sentence does not give SUMMARY MISSING — the next paragraph becomes the summary and mismatches instead. The file was copied aside and restored byte-identically, asserted both ways.

pagelint.py's corpus is 143 pages from this commit. Every figure in the spec quoting 142 refers to contents/ alone; Task 11.4 counts both.

Gates

linkcheck 144 files, clean; pagelint 0 errors / 791 warnings / 143 pages; --check-shape 0; --check-redirects 0 at 77 entries; --changed origin/master 0 at 3 files, 20 hunks, 0 documentation pages, 0 code blocks strict.

🤖 Generated with Claude Code

…th no rule

Two ends of the same defect. 11.6 is a convention describing a file this repo
does not generate; 11.9 is a published file no rule reached.

The llms.txt section now describes what GitBook serves, measured live while
writing it: 56,527 bytes, 201 entries, 201 with a description — 143 here and 58
from v9 — plus an Agent Instructions section the platform appends, documenting a
?ask= query endpoint nothing in this programme had recorded. No type field, and
none should be added: the banner carries the type and the .md variant prints it.

Writing it pinned a third source down. A line's three parts come from three
places: the slug from the filename (Phase 10 learned that the hard way), the
description from front matter, and the title from the SUMMARY.md entry text —
not the H1. Measured: 32 pages spell the two differently and the index uses the
SUMMARY text on all 32. Nobody had asked, because on the other 110 they agree.

One claim in the first draft was wrong in this programme's usual direction: it
said every v9 description opens with "Superseded". The prefix is "Brighter V9
(superseded)." and the example URL named a space root that does not exist.
Checked against the bytes and corrected before the commit.

That check found three v9 pages carrying the prefix and nothing else —
DarkerBasicConfiguration, ImplementAQueryHandler and Logging, whose bodies are an
H1 and, twice, the word TODO. The empty description is the symptom; the empty
page is the defect. Left for a ruling, with the precedent recorded.

README.md now takes rule 7. The boundary was never a policy: opening_sentence()
skips the line after the H1 because on all 142 pages that line is the banner, and
on the README it is the sentence — so pointing the rule at the file unchanged
would have summarised the site root with its second paragraph and reported
correct front matter as a mismatch. Root pages take rule 7 and nothing else, and
are excluded from the uniqueness corpus as well as its reporting.

Red-proofed on four branches with the extractor called directly first, because
rule 7 has already been green while reading the wrong input. pagelint's corpus is
143 pages from this commit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@iancooper
iancooper merged commit 99dadf1 into master Aug 22, 2026
4 of 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