tmmot-albumlisted
Install: claude install-skill Magnussmari/TmMot2026-Skill
# tmmot-album — the album + story + keepsake layer
Takes the data layer from **`tmmot-results`** (Skill 1) and a shared photo album, and
produces two artifacts that share one `data.json`:
1. A **self-hosted, PIN-gated dashboard** (zero-dependency Node server).
2. A **light, print-ready PDF memory book** (Quarto + xelatex).
This is **Skill 2 of 2**.
## Pipeline
```
shared photo album (Google Photos link)
│ harvest-album.sh → headless Chrome (--headless=new) → originals + EXIF
▼
match-photos.py EXIF datetime → which game's time-window
▼
LOCAL vision model (e.g. Gemma 3 12B on your own hardware)
│ "looks at" each photo, writes metadata — NOTHING leaves the box
▼
editor.py owner picks COVER + GALLERY (local web picker)
▼
apply-selection.py → build-album.py → Quarto → light PDF + site gallery + deploy
```
## Two media, one identity (the load-bearing lesson)
- **Screen (website):** dark "broadcast night" with **liquid glass** — translucent
panels, `backdrop-filter: blur()`, gold. Great on a display.
- **Print (PDF book):** **LIGHT**. White paper, dark ink, gold used sparingly. Dark
full-bleed pages are wrong for print — ink-heavy and physically heavy ("þung").
Keep the SAME fonts + crest so the two read as one identity; never ship a dark
album to print.
## Tools
- `tools/harvest-album.sh <shared-link> <dest>` — robust headless-Chrome harvest.
- `tools/match-photos.py` — EXIF datetime → game window.