# alpha.4's documents and pages -- progress (kept current, one line per increment) Captain Bob, 2026-11-10: "Do it" -- the rest of alpha.4 that lives in the tree, after #92 (merged, #160). #133 and #134 are the server's (Captain Bob's). ## #138 -- The Book of Fabric - [x] `docs/book/fabric.tex`: the FABRIC record as one book -- Part I the living record (FABRIC-3), Part II the closed ones in order, Part III the forward-looking notes; title page with the version (`git describe --tags`) and the commit. The book's preamble moved into `docs/book/preamble.tex`, shared by both books (the book itself builds unchanged, 821 pages). - [x] `make fabric` -> `build/docs/BookOfFabric.pdf` (722 pages, 42 s). - [x] `scripts/nightly.sh docs` builds it (`$DOCS/fabric.pdf`); `publish` sends it as `org.starship:documentation:`, classifier `fabric`; `gitea-release` attaches every PDF in `$DOCS`, so the release carries it. ## #157 -- the dictionary of v4, and the .com's Documents page - [x] the live word list of the built system (318 words): `v4/tools/mkdictionary.py words` -- the hosted v4's `WORDS` (317) plus the kernel's `sk_v4_words[]` (`MINT-ZUSE`) - [x] the table in the tree, `docs/reference/v4-dictionary.tsv`: all 318 entries, written in three alphabetical batches against v4's own definitions (the source gave 54 stacks and 105 descriptions to start from); `check` passes - [x] the check: `mkdictionary.py check` -- every live word has a finished entry, every entry a live word; run by `make dictionary`, so a stale table fails the build and the nightly - [x] the PDF, alphabetical: `make dictionary` -> `build/docs/Dictionary.pdf` (20 pages; `docs/book/dictionary.tex`); the nightly's docs stage builds it, `publish` sends classifier `dictionary`, the release attaches it - [x] the Documents page: the canvas artboard (`project/Documents.dc.html`, canvas v17: the Book of Fabric and the Dictionary first, then the book, the volumes, the API; each with its SHA-256; the SSRN paper), then `site/com/canvas/Documents.dc.html` ## #126 -- the Downloads page live - [x] `site/com/build.py --release TAG --sums SHA256SUMS` builds Downloads and Documents: `[TAG]`, `[RELEASE]/` (the Gitea release's file), `[SHA:]`; a file not in SHA256SUMS fails the build. Without a release it builds the three pages as before, byte for byte, with no link to the two. `install.sh` installs them when they are built. The release's SHA256SUMS now covers every file it attaches (the images, the PDFs, the Root CA's certificate): `nightly.sh gitea-release` - [x] the nav links on Home, Try it, Inquiries (canvas v17; shown only when the two pages are built) **At the alpha.4 release** (after `gitea-release`): download the release's `SHA256SUMS`, then `python3 site/com/build.py --release v4.0.0-alpha.4 --sums SHA256SUMS` and `XWIKI_USER=rajames XWIKI_PASSWORD=... site/com/install.sh` (Captain Bob's; the .com's login).