Replace Vite/React scaffold with Go build spec

- AGENTS.md: build spec for Paperclip (constraints, conventions, 7 phases)
- docs/phase-1..7: per-phase work, DoD, out-of-scope, risks
- reference/: frozen decisions, stack+ports+budgets, content map, acceptance tests
- agents/: persona and security policy drafts
- Retires the React scaffold; history retained as record of the false start
This commit is contained in:
Sam Rolfe
2026-10-26 16:02:35 +11:00
parent 35a3097042
commit b267e55f8c
33 changed files with 1270 additions and 1223 deletions

74
docs/phase-7-polish.md Normal file
View File

@@ -0,0 +1,74 @@
# Phase 7 — Polish
**Goal:** make it look like it was made by someone with a design degree. Nothing here blocks launch.
**Depends on:** Phase 3. Can run in parallel with 4–6.
---
## Work
### 7.1 Logos — wordmark wall, not a logo collage
Audit result (tested against Simple Icons):
**Available:** McDonald's · Accenture · Bank of America · PlayStation · HSBC · DHL · Shell · Channel 4 · Autodesk (AutoCAD) · Pearson
**Not available, and won't be:** BBC · Reuters · KPMG · Ogilvy · Diageo · Volvic · Penguin · Stella Artois · Baileys · Carlton Draught · Cottees · Parkgate Homes · all agencies. **AWS and OpenAI have been removed from Simple Icons** (trademark policy).
**Decision:** render the 46 client names as a **typographic wall** — same typeface, same size, even grid — with real SVG marks only where they exist. It looks deliberate rather than broken, and it sets cleanly beside a technical site.
**Own brands** (Audas Media, Where-Woof, WebsiteBuilder) need their own marks — ask Sam whether they exist before inventing any.
### 7.2 Diagrams
Eight, one visual language, light and dark variants, SVG:
1. Homelab topology — hosts, roles, trust boundaries
2. Agent architecture — Hub, OmniRoute, Paperclip, peers, `/ask`
3. RAG pipeline — ingest and query side by side
4. Edge architecture — devices → MQTT → automation → actuation
5. Distributed audio — sources → Snapcast → endpoints → voice injection
6. Media pipeline — download → fingerprint → audit → review → library
7. Cost/resource engineering — the memory budget, measured
8. Era timeline — Flash → PHP → React → server-driven → AI (2000–2026)
### 7.3 Code exhibits — six, ~40 lines each
| # | Era | Source | Shows |
|---|---|---|---|
| 1 | AS3 OO | `Carlton_Draught/src/thebeer/` or Brief Case Builder | class, imports, encapsulation |
| 2 | Custom JS engine | `text_effects.js` (2,156 lines) | easing + timeline core |
| 3 | PHP media pipeline | `setMediaEncoder.php` (3,402 lines) | one encode op + FFmpeg piping |
| 4 | TypeScript | `CAR_GPS_REACT` Prisma + tRPC router | types, interfaces, service layer |
| 5 | Embedded C++ | `WiFiMgr.hpp` / `.cpp` | interface vs implementation |
| 6 | Declarative infra | `/etc/nixos/pkgs/tuios.nix` (25 lines) | whole file: fetchurl + hash, override rationale, removal condition |
Source files live in the archive — read-only, copy excerpts into `content/assets/code/`, never link to the archive.
Each exhibit gets two sentences on **why it is good code**, not what it does.
### 7.4 Screenshots and recordings
- TUIOS fleet running the actual build — 30–60 s, real work, not staged.
- The agent console in operation.
- Home Assistant and Snapcast, if a still adds something a diagram doesn't.
### 7.5 Optional: voice input
Whisper STT already runs on `.13`. Microphone button → transcription → normal query path. **Voice input is untrusted input** and passes through the same guard unchanged. Voice *output* is out of scope.
---
## Definition of Done
- [ ] Client wall reads as deliberate: consistent grid, no broken images, no empty placeholders.
- [ ] Eight diagrams present, both themes, readable at 1× and on mobile.
- [ ] Six code exhibits with a two-sentence rationale each.
- [ ] Every image optimised; total page weight budgeted and recorded.
- [ ] Lighthouse scores held at ≥ 95 / ≥ 95 after assets are added.
- [ ] Archive never linked or exposed from the public site.
---
## Out of scope
- Any change to a running system.
- Video production beyond screen recordings.