Phase 7: authored assets (diagrams, code exhibits, client wall, budget)

Phase 7 is mostly authored assets. This commit is the asset half; the
template half is a Builder child issue because this phase must not write
application code.

DoD items satisfied or advanced:

- [x] Eight diagrams present, both themes, readable at 1x and on mobile
      8 SVGs, one byte-identical <style> block across all 8 (one visual
      language by construction). Light and dark resolve from a single file
      via prefers-color-scheme, verified per file in Chrome: 8/8 return two
      distinct palettes. Geometry verified with getBBox(), not estimated:
      0 findings after fixing 74 (text overflow, partial overlap, empty
      text, out-of-viewBox). Mobile type at the 900px minimum is 14.1/12.2px.

- [x] Six code exhibits with a two-sentence rationale each
      212 verbatim lines across five eras, copied with cp/sed from the
      read-only archive. Every rationale is exactly two sentences about why
      the code is good; every exhibit also carries an honest_note, and where
      the code is not good the note says so (the 3,400-line procedural PHP
      script is presented for its operational judgement, not its structure).

- [~] Every image optimised; total page weight budgeted and recorded
      BUDGET.md records measured raw and gzip weights for all 15 served
      files: 63,802 B raw / 13,220 B gzipped. Zero rasters by design. Page
      weight of a real page is not measurable until Phase 2 templates and
      Phase 3 serving exist, and is recorded as open rather than asserted.

- [x] Archive never linked or exposed
      No mount paths or volume names under content/. Provenance recorded as
      "private archive, path withheld".

- [ ] Client wall reads as deliberate  -> needs markup/CSS (Builder)
- [ ] Lighthouse held at >= 95/95      -> needs a served page (Phase 3)

Also: the client wall is authored as data (45 entries, 44 distinct names) with
the 45-vs-46 discrepancy and the Diajio -> Diageo correction recorded
rather than papered over. No commercial marks are enabled: that is a
permission decision for Sam, so availability is recorded and permission is not
implied.
This commit is contained in:
Documenter
2026-10-26 17:35:11 +11:00
parent b267e55f8c
commit da18ab2237
22 changed files with 1711 additions and 0 deletions

68
content/assets/BUDGET.md Normal file
View File

@@ -0,0 +1,68 @@
# Phase 7.4 — asset weight budget
Measured 2026-10-26 on `.13` with `stat -c%s` and `gzip -9`. Every number below
is a measurement of a file that is in this repository, not an estimate.
## What is in the assets directory
| Group | Files | Raw | Gzip (`-9`) |
|---|---|---|---|
| Diagrams (`diagrams/*.svg`) | 8 | 51,729 B | 8,943 B |
| Code exhibits (`code/*.as`, `.js`, `.php`, `.ts`, `.hpp`, `.nix`) | 6 | 8,161 B | 2,989 B |
| Client wall data (`logos/clients.yaml`) | 1 | 3,912 B | 1,288 B |
| **Served payload total** | **15** | **63,802 B** | **13,220 B** |
| Manifests and READMEs (build-time only, never served) | 5 | 15,955 B | — |
## Per-asset
| File | Raw | Gzip |
|---|---|---|
| `diagrams/01-homelab-topology.svg` | 7,079 | 2,169 |
| `diagrams/02-agent-architecture.svg` | 6,027 | 1,971 |
| `diagrams/03-rag-pipeline.svg` | 7,010 | 2,043 |
| `diagrams/04-edge-architecture.svg` | 6,896 | 2,163 |
| `diagrams/05-distributed-audio.svg` | 6,833 | 1,997 |
| `diagrams/06-media-pipeline.svg` | 5,694 | 1,718 |
| `diagrams/07-cost-resource-engineering.svg` | 6,151 | 2,023 |
| `diagrams/08-era-timeline.svg` | 6,039 | 1,930 |
| `code/01-actionscript-class.as` | 958 | 495 |
| `code/02-js-easing-core.js` | 1,848 | 584 |
| `code/03-php-encode-op.php` | 2,295 | 765 |
| `code/04-typescript-service-layer.ts` | 1,078 | 482 |
| `code/05-embedded-cpp-interface.hpp` | 788 | 419 |
| `code/06-nix-derivation.nix` | 1,194 | 724 |
Rasters: **zero.** There are no PNG, JPEG, WebP or font files in this phase.
That is a design outcome, not an oversight — every diagram is text-based SVG and
every code exhibit is text, so the "optimise every image" requirement has no
image to optimise yet. Phase 7.4 screenshots are deferred (see below).
## The budget
| Rule | Limit | Worst case today |
|---|---|---|
| Any single diagram | ≤ 7.5 KB raw / ≤ 2.5 KB gzip | 7,079 B / 2,169 B |
| Any single code exhibit | ≤ 3 KB raw / ≤ 1 KB gzip | 2,295 B / 765 B |
| Diagrams on one page | ≤ 2 | 2 (14.1 KB raw) |
| Asset payload per page, gzipped | ≤ 12 KB | 4.3 KB (two diagrams + one exhibit) |
| Web fonts | 0 | 0 — system font stack only |
| JS required by any asset | 0 | 0 — SVG carries its own palette |
Worst realistic page: an L2 page with two diagrams and one code exhibit is
14,089 B raw, about **4.3 KB over the wire** after gzip and before the HTML, CSS
and template overhead. The whole 15-file asset set is 13.2 KB gzipped, so even a
page that loaded every one of them would stay inside a single small image's
budget.
## What is not yet measured, and why
| Item | Status | Why |
|---|---|---|
| Full page weight (HTML + CSS + assets) | **not measured** | No page exists yet: Phase 2 owns the templates |
| Lighthouse ≥ 95 / 95 | **not measured** | Needs a rendered page (Phase 2) served behind the edge (Phase 3). Nothing in this phase can stand in for it |
| Screenshots and recordings (7.4) | **deferred** | The agent console is Phase 5 and the TUIOS fleet session has to be real work, not staged. Recording a console that does not exist would be a fabrication |
| Home Assistant / Snapcast stills | **deferred** | Same reason: needs a live system and a judgement about whether a still adds what diagram 4 and diagram 5 already show |
These are recorded as open rather than asserted. DoD items 4 and 5 cannot be
closed until Phase 2 and Phase 3 produce a page to measure, and the measurement
must be taken by whoever holds that page.