Repository navigation
docs: make the documentation say what the code actually does - #487
Merged
Merged
Conversation
An audit of every documentation surface — README, ROADMAP, the docs/ folder, the LaTeX manual in both languages, the website and the Docker Hub page — against the shipped code. Fourteen findings, all fixed here. **Contradictions and plain falsehoods.** ROADMAP's parking lot listed eleven issues as pending work; all eleven are closed, and the same file said two sections earlier that the backlog was empty. docs/ci-cd.md described a three-gate model that has had four gates since story 8-8, and told the reader to require exactly three checks on `main` — applied literally, that leaves the wizard lane non-blocking; it also ignored audit.yml and pages.yml, and still quoted the hardcoded `--test X` allowlist that #357 replaced with `--tests`. docs/route-role-matrix.md called itself authoritative while documenting 82 of 148 routes: the setup wizard, the HTTP API, the wishlist, saved searches, labels, API keys, the shelf audit and every modal were missing. The admin panel was described as having five tabs in four places; it has six. The README said there were two locale files; there are four, and a test enforces it. Docker Hub said every setting is an environment variable, which stopped being true when the settings table landed in story 8-5. **What the docs did not know had shipped.** K10plus — the leading contributor of bibliographic zones on this catalogue since v1.16.0 — appeared in no manual, in neither language, nor on the website or Docker Hub. The manual's audit section stated that "mybibli does not ship a dedicated audit mode" and walked the reader through a manual workaround, three releases after CR #237 shipped exactly that mode. The valuation pages and the /labels page existed only in the release-notes chapter, never in the reference chapters. Those three now have proper sections in chapters 3 and 5, EN and FR, and the PDFs are rebuilt. **Vocabulary.** "Labels" meant two things in one manual. Chapter 2 is now "spine labels" (the V-codes and L-codes you print and scan), the v1.18.0 feature is "management labels" everywhere, and each section says the other exists. **Repetition.** The release history was told five times and had already drifted — the README copy carried a stuttered clause. ROADMAP is now the canonical copy; its own "Now" section states the current release instead of reciting ten of them, and the README quotes the current release and points there. **Naming.** docs/architecture.md documented one subsystem under a title that promised the architecture; renamed to docs/permanent-delete-and-purge.md, with a scope line naming the two files that do hold the architecture. **Honesty.** docs/accessibility-audit.md now reads as the dated snapshot it is, and names the surfaces shipped since that have never been audited. Two behaviours are documented rather than changed, because changing them is not a documentation matter: `GET /wishlist/print` and `GET /wishlist/export.pdf` take no session and are readable by anyone who knows the URL, while `/wishlist` itself requires Librarian. The new route matrix records both, and an Anomalies section explains why. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D5cV9QRqQAFpiNKZwZfoNX
guycorbaz
marked this pull request as ready for review
September 11, 2026 09:02
11 of 12 tasks
guycorbaz
added a commit
that referenced
this pull request
Sep 11, 2026
Cut the v1.19.0 release documentation: version bump in Cargo.toml / Cargo.lock, and every version-bearing surface required by Foundation Rule 19 brought to 1.19.0. - Manual EN/FR: title-page version, install snippets, a "What's new in 1.19.0" section in chapter 8 (the Restore button that never worked, the seeded accounts leaving no trace, the bounded cover decode, and an explicit "nothing to do on upgrade"); the release-notes section now states that the PDFs are attached to the release rather than promising it once CI is wired. PDFs rebuilt. - README: status line, live-install label, image-size badge, current- release paragraph. - ROADMAP: current-stable header, a v1.19.0 shipped section, and the "merged but not released" block retired now that it has shipped. - docs/dockerhub-overview.md: tags list. - website/: index (nav badge, hero, JSON-LD softwareVersion, the hero paragraph rewritten around this release), about (nav badge), roadmap (meta descriptions, JSON-LD, nav badge, both narrative paragraphs), sitemap lastmod — stale since May, and the surface Rule 19 names as the easiest to forget. - sprint-status.yaml: last_updated header. No source change. The release carries #478, #480 and #479 (merged in #485, #484 and #486), the supply-chain CI work (#481), the network- posture documentation (#482), the community-health files (#477) and the documentation audit (#487). No migration. Claude-Session: https://claude.ai/code/session_01D5cV9QRqQAFpiNKZwZfoNX Co-authored-by: Claude Opus 5 (1M context) <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.
An audit of every documentation surface against the shipped code, and the fixes for what it found. Fourteen findings; each one is verifiable from the repository.
Contradictions and plain falsehoods
ROADMAP.mddocs/ci-cd.mdaudit.yml(shipped three weeks ago) andpages.ymlwere unmentioned, and thedb-integrationjob still quoted the hardcoded--test Xallowlist that #357 replaced with--tests.docs/route-role-matrix.mdsrc/routes/admin.rs,CLAUDE.mdadmin.rsmodule doc still described three of them as stubs for future Epic 8 stories.README.mdlocales/{en,fr}.yml". Four locales, andtests/locale_parity.rsenforces it — the exact trap that turned CI red on #478.docs/dockerhub-overview.mdREADME.mdWhat the documentation did not know had shipped
/auditin location → V-code order, press Checked./labelspage existed only as release-note entries in chapter 8. Both now have reference sections.docs/accessibility-audit.md, Docker Hub/labels,/wishlist,/stats/valueand/audithave never been through it. The file now says so; Docker Hub's "axe-core CI gate over every reachable surface" is corrected.docs/architecture.mddocs/permanent-delete-and-purge.md, with a scope line naming the two files that do hold the architecture.README.mdVocabulary (10)
"Labels" meant two things in one manual: the V-code/L-code stickers of chapter 2, and the management labels of v1.18.0. Chapter 2 is now spine labels, the feature is management labels throughout, and each section points at the other. No code or interface string changed.
Repetition (14)
The release history was told five times — ROADMAP's "Now" paragraph, ROADMAP's per-version sections, a README paragraph of comparable length, the website, and the manual's chapter 8 — and had already drifted (finding 7 is one symptom). ROADMAP is now the canonical copy. Its "Now" section states the current release, what sits merged-but-unreleased on
main, and that the tracker is empty, instead of reciting ten releases. The README quotes the current release and points there. The website and the manual keep their own telling: different audiences, and chapter 8 is the only copy that works offline.Two behaviours documented, not changed
Writing the route matrix surfaced this:
GET /wishlist/printandGET /wishlist/export.pdftake noSession, so the printable wish list is served to anyone who knows the URL, whileGET /wishlistrequires Librarian. That contradicts the matrix's own standing policy ("anonymous reach covers catalog browsing and detail pages only"). Both rows are recorded with the role they actually have, and an Anomalies section says why they are documented rather than quietly fixed — changing them changes behaviour, which belongs in its own PR. Worth an issue.Testing
cargo clippy --all-targets -- -D warnings— clean.cargo test --lib— 1175 passed (two Rust doc-comments changed, nothing else insrc/).docs/manual/build.sh enandfr— both PDFs rebuilt and committed, no undefined references.*.mdanddocs/*.mdresolves.src/routes/*.rs(route → handler →require_role/ApiKeyAuth) and the result checked by hand, including every row reading Anonymous.🤖 Generated with Claude Code
https://claude.ai/code/session_01D5cV9QRqQAFpiNKZwZfoNX