- SUMMARY with coverage, deviations and verification - STATE, ROADMAP and REQUIREMENTS (DOCS-02, DOCS-04, DOCS-05, DOCS-08) - deferred items: README summary backticks in leads
17 KiB
phase, plan, subsystem, tags, requires, provides, affects, tech-stack, key-files, key-decisions, patterns-established, requirements-completed, estimate_ref, actuals, plan_head_before, plan_head_after, coverage, duration, completed, status
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | requirements-completed | estimate_ref | actuals | plan_head_before | plan_head_after | coverage | duration | completed | status | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11.1-summercms-documentation-for-humans-and-ai-agents | 02 | docs |
|
|
|
|
|
|
|
|
|
tokens 140000, tasks 3, confidence low |
|
9dcc101776 |
dd11bdb0c7 |
|
30min | 2026-09-30 | complete |
Phase 11.1 Plan 02: Docs accuracy gates, theme and docs:serve Summary
Every D-11/D-12 rule now fails go test and docs:build: stale identifiers, broken links and anchors, unknown commands, consuming-application names, go fences without src=, unknown callouts and non-plain headings. The site has the full UI-SPEC WinterCMS-style theme with chroma/v2 highlighting, client-side search, a three-way theme toggle and summer docs:serve, and scripts/check-phase11.1.sh checks all of it.
Performance
- Duration: about 30 min
- Started: 2026-09-30T19:29Z
- Completed: 2026-09-30T19:59Z
- Tasks: 3
- Files modified: 53 (38 without fonts and licences)
Accomplishments
check_identifiers.gousesgo/parserto index every package undermodules/, sub-packages included. It records funcs, types, consts, vars, methods (generic receivers stripped), fields, embedded types and interface methods, and resolves promoted members. On the real tree it checks 1,268 module spans across 24 pages and the root README with 0 misses.- Links and anchors are checked against the heading IDs the renderer produces. Command names come from
toolCommands()and the constructors the generated main calls (pluslagoon.KeyGenerateCommand,centrifugo.Commandsandflare.Commands). Examplebonfire.Commandliterals underdocs/examplesandexamplesare parsed, never imported. - Consuming-application names are rejected in page sources and in every text output. The problem line never repeats the matched word.
- Theme: header (wordmark, search trigger with
<kbd>, theme toggle, Menu), grouped sidebar with API items in DM Mono, TOC column andtoc-inline(only with 2 or more H2/H3), eyebrow/lead/page actions, callouts, heading permalinks, pager (first page Next only, last page Previous only, section line only across sections), footer with llms links,404.html, and 15 inline Lucide icons. DM Sans and DM Mono are vendored with their licences. Nothing loads from a third-party origin. highlight.gomaps chroma tokens onto the UI-SPEC classes. Shell fences gettok-promptfor$(excluded from copy) andtok-kwfor the command word.search.jsloadssearch-index.jsonon first open. It uses AND-token matching ranked title over heading over text, shows up to 20 rows built withcreateElement/textContentand<mark>elements, and implements every UI-SPEC state message and live-region count.summer docs:servebuilds into a temporary directory, serves on127.0.0.1:8088by default and refuses any non-loopback address without--allow-remote. It returns404.htmlwith status 404, never serves dot-files, and rebuilds on change while keeping the last good build.- The gate self-test plants 9 violations (identifier, missing README, drifted snippet, frontmatter typo, broken anchor, unknown command, forbidden name, go fence without
src=,[!DANGER]) and each one is refused under its own rule.
Task Commits
- Task 1: Identifier checker tracer through go test, docs:build and the gate:
f460529(feat) - Task 2: Links, commands, forbidden names, fence policy:
5d4c1e3(feat). The docs-rules change was committed separately asd89e18b(docs: CLAUDE.md and the wristband todo) - Task 3: Theme, chroma, search, dark mode, docs:serve:
dd11bdb(feat)
Plan metadata: the docs(11.1-02) commit that adds this file
Files Created/Modified
See key-files in the frontmatter. The main ones:
internal/docsite/check_*.go: the five checker filesinternal/docsite/highlight.go: the fence NodeRenderer and chroma mapping. It moved out of render.gointernal/docsite/render.go: heading permalinks, the callout transformer and renderer,parseRawinternal/docsite/emit.go: the page view (eyebrow, TOC, pager, edit and Markdown links) and404.htmlinternal/docsite/serve.go:Serve,Handlerand the loopback checkcmd/summer/docs.go:docsCommands()anddocs:serve
Decisions Made
See key-decisions in the frontmatter.
Deviations from Plan
Auto-fixed Issues
1. [Rule 1 - Bug] go doc does not resolve promoted members
- Found during: Task 1
- Issue: The plan relied on the
go docfallback to accept members promoted through embedding.go doc ./modules/x Bus.IDexits 1 for a field or method promoted from an embedded type. - Fix: The index records the embedded types of each type and follows them within the package.
go docremains the fallback for any other miss. - Files modified: internal/docsite/check_identifiers.go, internal/docsite/checks_test.go
- Commit:
f460529
2. [Rule 3 - Blocking] The exact UI-SPEC markers conflicted with the attributes they needed
- Found during: Task 3
- Issue:
aria-controls="sidebar"needs an element withid="sidebar",search.jsneeds the index URL, and the toggle shared anicon-buttonclass. Putting those attributes on the nav, the dialog and the toggle broke the exact markers<nav class="sidebar" aria-label="Documentation">,<dialog class="search" id="search">and<button class="theme-toggle". - Fix:
div.sidebar-panel#sidebarwraps the nav,data-indexsits on#search-results, and the toggle's class is exactlytheme-toggle(it shares the CSS rules). - Files modified: theme templates, site.css, search.js
- Commit:
dd11bdb
3. [Rule 3 - Blocking] Plan 11.1-01 tests asserted the old markup
- Found during: Task 3
- Issue:
TestReadmeIngestionexpected a bare<h2 id="usage">Usage</h2>.TestDocsAIOutputsInSyncrequired the set of.htmlfiles to equal the page URLs, and the new404.htmlbroke that. - Fix: The first now expects the permalink and the second ignores
404.html. Neither test is weakened. - Files modified: internal/docsite/docsite_test.go, cmd/summer/docs_test.go
- Commit:
dd11bdb
Notes
go.modgained exactlygithub.com/alecthomas/chroma/v2(direct) andgithub.com/dlclark/regexp2/v2(indirect).go.sumalso has hash lines for chroma's own test dependencies (alecthomas/assert/v2,alecthomas/repr,hexops/gotextdiff). They are not modules of this build, and--depspasses.scripts/check-phase11.sh --hygienestill passes.consolecounts as a shell fence language alongsidesh,shellandbash, both for command checks and for highlighting.- Another process edited
modules/lagoon/transaction*.go,scripts/check-phase10.sh,scripts/check-phase11.shand two Phase 11 review files during this run. None of them were staged or touched.11-REVIEW.mdwas left alone as instructed.
Total deviations: 3 auto-fixed (1 bug, 2 blocking). Impact: none on scope.
Issues Encountered
- Logged to
deferred-items.md: a module README summary containing inline code shows raw backticks in the page lead (plan 11.1-01'ssplitReadmebehaviour), andinternal/build/registry.gowas not gofmt-clean before this plan.
Verification
go vet ./...andgo test -short ./...are green.go test ./internal/docsite ./cmd/summer ./modules/... -count=1(Docker included) is green, and so isgo test -race ./internal/docsite.scripts/check-phase11.1.shreports--preconditions,--deps,--self-test,--docs,--forbiddenand--claudeall passed.go run ./cmd/summer docs:serve --addr 0.0.0.0:8088exits 1 with the refusal copy. Over HTTP on loopback,/, the pages, the assets and.mdreturn 200, and/nopeand/.summer-docsreturn 404 with the Page not found body. The temporary directory is removed on SIGTERM.- All plan acceptance greps match.
git diff 9033d81 -- modules/wristbandis empty.
Known Stubs
None.
User Setup Required
None.
Next Phase Readiness
Plans 11.1-03 to 11.1-05 now write content that is checked as it is written. A Go example in a docs page needs src=, identifiers and commands must exist, and links must resolve. summer docs:serve previews the site. The manual UAT rows (search interaction, theme flash, contrast, no-JS layout) remain for verification.
Self-Check: PASSED
All created files exist. Commits f460529, 5d4c1e3, d89e18b and dd11bdb are in the log.