main-94e8955
·
8 commits
to main
since this release
docs: one folder per component, and a lint that keeps the links honest
Twenty-six documents sat loose at the root of docs/ next to thirteen folders
that already followed a one-folder-per-component rule. The SSH gateway -- six
documents including the operational guide -- had no folder at all; eight vhost
documents sat outside docs/vhost/ while three sat inside it.
They now follow the rule that was already there. Four folders are new because
the component had none: ssh-gateway/ (guide, jump host, ALPN demux, assessment,
bug hunt), install/, comparisons/ (frp, DERP), platform/ (Android, the macOS
distribution gate), plus project/ for the fork-state document. docs/ itself now
holds exactly one file: a README index that says what each folder is for and
where the truth lives -- the root README.md for HOW to use bore, CLAUDE.md for
the invariants, docs/ for WHY things are the way they are.
The honest number on links: 59 relative links in docs/ were ALREADY broken
before this change -- some for months, pointing at documents that had moved in
earlier reorganisations. This move broke 16 more. All 75 are now fixed, by
resolving each target against the repository rather than by hand, and the four
paths that remain unresolved are left alone on purpose: they are prose
intentions in plans ("update docs/CHANGELOG.md", "document in docs/TRANSFER.md")
for documents that were never written, and rewriting them would falsify the
plan.
That 59 is the argument for widening compiler 10 from the campaign folder to all
of docs/: 265 links, every one resolved on every run. A broken link in a
document is worse than a missing one -- it reads as if the reference had been
checked, and nobody re-checks 265 by hand twice. Red-checked both ways, and its
own two false positives fixed in the process: a grep pattern inside a code span
contains `](`, so the target regex now refuses whitespace and shell
metacharacters, which a real path never has.
Code changes are four doc comments and nothing else; cargo fmt and cargo check
are clean.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BqfehFhjLR3Yj1sgaf5KCi