Documentation development¶
The documentation is a tested product surface. Maintained Markdown spans the MkDocs site, repository entry points, first-party add-in READMEs, public evidence guidance, scripts, examples, tests, and GitHub contribution templates.
Reference
- Surface: Local docs build, lint, spelling, navigation, links, and rendered-math behavior
- Stability: Make targets are maintained contributor interfaces; visual theme internals may evolve
- Use this page when: Editing documentation, reviewing a docs-only change, or reproducing the documentation CI gate
Authoritative commands¶
| Command | Purpose | Network requirement |
|---|---|---|
make docs-check |
Markdown lint, spelling, and strict MkDocs build | None after repository dependencies are installed |
make docs |
Strict static-site build | None after dependencies are installed |
make docs-serve |
Local server on 127.0.0.1:8000 |
None for local navigation |
make docs-live-fast |
CLI surface smoke plus the documentation gate | None after dependencies are installed |
make docs-live |
Maintained full documentation alias | Same as docs-live-fast |
docs-check validates every maintained repository Markdown file selected by
the Makefile, not only docs/**/*.md. Generated, cached, vendored, dependency,
and temporary-run trees are deliberately excluded.
Offline build versus browser rendering¶
MkDocs builds the site without fetching remote content. The generated pages reference MathJax from jsDelivr for browser-side equation rendering. Therefore:
- prose, code, navigation, tables, images, and raw TeX remain available in a fully offline browser;
- equations render typographically only when the browser can load that pinned MathJax URL or an operator supplies an approved local mirror; and
- a successful offline build does not prove that a deployed browser may reach the CDN.
Do not weaken content-security policy or grant broad network access merely to render equations. Deployments requiring fully offline mathematical rendering should mirror the pinned asset and review the resulting site change.
Page-type contracts¶
Every MkDocs page under a typed section declares its reader contract near the top:
| Directory | Required opener |
|---|---|
user-guide/ |
Outcome, audience, prerequisites |
assurance/ |
In plain language, question, decision use, evidence |
reference/ |
Surface, stability, use-this-page-when |
security/ |
In plain language, objective, assets or boundary, use-this-page-when |
The opener does not replace the page body. A user guide must complete and validate a task; reference must enumerate exact syntax and failure behavior; assurance must connect claims to observable evidence and limits; security must name adversaries, controls, residual risks, and response.
Links and versioned contracts¶
- Prefer relative links for pages and repository-owned assets in the same source tree.
- Link public standards and upstream runtime documentation directly.
- Treat links to mutable repository branches as source navigation, not a version guarantee. Installed contract copies and the selected release source remain authoritative.
- Keep diagrams accessible with
<title>,<desc>, and meaningful surrounding alt text. - When a command contains placeholders, label them and state what authority supplies the real value.
Review checklist¶
Before accepting a documentation change:
- compare every command and option with current
--helpor the public API; - verify fields against package-owned schemas and implementation replay;
- run at least one literal user journey affected by the change;
- check failure and recovery behavior, not only the successful path;
- confirm all new pages are present in navigation;
- inspect desktop and narrow layouts when visual structure changes; and
- run
make docs-checkfrom a clean source tree.
A green build proves syntax and internal site consistency. It does not by itself prove that claims match code; maintainers still need code-to-document traceability and a behavior check.