Files
ai-resume/content/assets/BUDGET.md
Documenter da18ab2237 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.
2026-10-26 17:35:15 +11:00

3.4 KiB

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.