Repository navigation
docs: reorganise by reader intent, and add a rendered site - #3
Merged
Merged
Conversation
Pure renames, no content changes. installation.md -> install/binary.md, docker.md -> install/docker.md, sso.md and transparent-relay.md -> guides/, providers-and-models.md and keys-and-usage.md -> guides/ (split in the following commits), configuration/api/openapi/performance -> reference/, architecture.md -> concepts/.
getting-started.md now starts from the release binary instead of git clone, with numbered steps and expected output at each one. install/binary.md keeps the release install, state layout, first login, the loopback guard (now stated once, here) and a step-by-step systemd setup. install/docker.md leads with the commands and moves the Dockerfile narration into a facts table; the two-stage build description is cut. install/upgrades.md is new: backup first, then stop-replace-start, with the migration transaction mechanics reduced to five bullets. Deleted: build-recipe listing in the tutorial, Dockerfile stage design, the loopback guard rationale in docker.md (now a link).
providers-and-models.md becomes providers.md (register, edit, rotate, TLS, overrides, disable, delete) and models.md (discover, bind, alias targets, edit, hide, resolve, delete), each opening with the task rather than the concept. keys-and-usage.md becomes api-keys.md, pricing.md and usage.md. sso.md leads with the config table and the walkthrough, and ends with an offboarding checklist. transparent-relay.md becomes claude-code.md, setup first. Deleted: the capability design rationale, the alias-as-promise passage, the cached-token normalisation treatise (a two-sentence definition remains, pointing at concepts/architecture.md), the relay-token justification, the UI feature inventory in the stats section. The admin audit trail and pagination sections move to reference/api.md in the next commit.
reference/configuration.md keeps the full variable table and trims the secret and admin-password sections to their operational consequences; the cryptography narration is gone. reference/api.md gains the pagination and audit-trail sections that used to live in providers-and-models.md. concepts/architecture.md gains a design rule for read-time usage normalisation, the load-bearing why cut from the usage guide. docs/README.md is now a goal router (Start here / Deploy / Operate / Look up / Understand) instead of a flat file list.
mkdocs.yml mirrors the docs tree in an explicit nav and maps every pre-reorganisation path to its new home with mkdocs-redirects, so links published against the old layout keep working on the site. .github/workflows/docs.yml runs 'mkdocs build --strict' on PRs touching docs/ and deploys to GitHub Pages on push to main. Versions are pinned, mkdocs included, because a 2.0 is announced that drops the plugin system. 'just docs' previews locally through uvx, so the repo gains no permanent Python dependency.
README.md's Documentation section becomes a journey table and links the rendered site. CONTRIBUTING.md gains a 'Writing documentation' section holding the writing rules the rewrite applied. CLAUDE.md gains a Documentation section so the layout survives future edits. SECURITY.md, the justfile comment and every 'docs/<file>.md' path are remapped.
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.
Why
Read as an integrator, the docs mixed implementation detail into task pages and buried the commands. Getting a provider registered meant reading about
schema_migrationtransaction bookkeeping, two-stage Dockerfile design, cookie signing and cached-token normalisation first. There was no goal-based entry point:docs/README.mdwas a flat file list, so "I want to deploy this for my team, where do I start" had no answer.What changed
Structure. 12 flat files become 16 organised by what the reader is doing:
The two 400+ line pages were split along their real seams.
keys-and-usage.md(446 lines, six topics) became three single-purpose pages;providers-and-models.md(421) became two.Language. The rules now live in CONTRIBUTING.md so future pages stay consistent:
concepts/architecture.md, stated once.concepts/.concepts/architecture.mdand the README keep the explanatory voice deliberately. That split is stated in CONTRIBUTING.md rather than left implicit, so nobody flattens them later.Load-bearing rationale moved rather than died. The cached-token normalisation treatise buried in the usage how-to is now a design rule in
concepts/architecture.md, with a two-sentence definition left where an operator actually hits it. The migration transaction mechanics became five bullets ininstall/upgrades.md. The admin audit trail and pagination sections moved from the providers page toreference/api.mdwhere they belong.Deduplication. The loopback guard was explained three times; it is now stated once in
install/binary.md, linked fromdocker.mdandconfiguration.md.Rendered site.
mkdocs.yml(Material) plus aDocsworkflow:mkdocs build --stricton every PR touchingdocs/, deploy to Pages on push to main. Every pre-reorganisation path redirects to its new home.just docspreviews locally throughuvx, so the repo gains no permanent Python dependency.Testing
mkdocs build --strictclean (fails on broken internal links).go test ./...passing.One prediction that did not hold
The plan expected total line count to drop noticeably. It rose 7% (2,457 → 2,639) while word count fell 4% (14,739 → 14,131), and that figure absorbs a wholly new page plus new sections in
architecture.mdandapi.md. Prose was cut, but numbered steps, expected-output blocks and tables each take more lines than the paragraphs they replaced. Scannability is the goal that was met; the line-count prediction was simply wrong.Two things needed from a maintainer
github.com/.../docs/installation.mdand friends have no redirect; the plugin only covers the rendered site. The repo went public recently so inbound links should be few, and stub files seemed worse than the breakage. Flagging it rather than hiding it.Note on pinning
The MkDocs toolchain now warns that a 2.0 is planned which drops the plugin system entirely.
mkdocsitself is pinned alongside the theme and redirects plugin in both CI and thejust docsrecipe, so that release cannot break the build unattended.