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.
Phase 7.3 — code exhibits
Six excerpts, 212 lines, spanning five eras. Evidence that the range behind the claims is real, in a form an engineer can read in two minutes.
The rules these follow
- Verbatim. Every file is a byte-for-byte copy from the private archive. Nothing is retyped, reformatted or tidied. A retyped excerpt proves nothing.
- Never linked. The archive is not referenced, linked or served from the public site. Provenance is recorded as "private archive" and the path is withheld from this repository so it cannot leak into a page or a build.
- Two sentences on why it is good code.
rationaleinmanifest.yaml. Not what the code does — that is what reading it is for. - Honest notes. Where the code is not good,
honest_notesays so. A 2012 procedural PHP script presented as elegant would undermine every other claim on the site.
The six
| # | Era | Language | Lines | What it demonstrates |
|---|---|---|---|---|
| 1 | Flash / ActionScript | AS3 | 36 | class, imports, encapsulation |
| 2 | jQuery + PHP | JavaScript | 42 | easing + timeline core |
| 3 | jQuery + PHP | PHP | 27 | one encode op + the FFmpeg piping |
| 4 | React + TypeScript | TypeScript | 37 | types, interfaces, service layer |
| 5 | Embedded C++ | C++ | 28 | interface split from implementation |
| 6 | Declarative infrastructure | Nix | 33 | a patch with its own removal condition |
Era 6 is the most modern and the least common. A short, correct, self-documenting derivation that says when to delete itself is a better infrastructure signal than a thousand lines of configuration.
Renderer requirements
- Syntax highlighting happens server-side (chroma), on the server, at build time. The client receives highlighted HTML. No browser-side highlighter.
- Line numbers are generated by the template, not embedded in the files.
- Files stay in
content/assets/code/as plain text. They are not inlined into a Go string, so the archive copy and the served copy cannot diverge silently. - Total weight: 7 KB of source, which compresses well because it is code.
Honest notes worth reading twice
- Exhibit 1 contains a latent typo, kept.
- Exhibit 3 is 27 lines out of a 3,400-line file, with one marked elision.
- Exhibit 4 shows the router rather than the schema it types against.
- Exhibit 5 is two files presented as one, because the point is the split.