commit 9260b003b3535d6cb9c29b04ebb1367d1ef14a9d
parent de476ce02f9103b49af12f2487f0f479e7a5ab5c
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Sat, 26 Sep 2026 03:22:09 -0400
plans: brand S4 review fixes — the Studio steps (Customization → Profile), the fontTools-pinned glyph parity, endCard null, the per-drawing mark cache, doctor's rsvg-convert; release-10 says S4 merges after the cut
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/plans/brand-and-themes.md b/plans/brand-and-themes.md
@@ -1309,8 +1309,8 @@ S4 ships after release 10's cut and is **not part of the site rollout**: it touc
- `banner-safe-1546x423.png`, the part every device shows.
It also writes `INDEX.html` (operator rule: handoffs are HTML), with a preview of each asset,
- its size, and the YouTube Studio upload steps: Customization → Branding → Picture / Banner
- image / Video watermark.
+ its size, and the YouTube Studio upload steps: Customization → Profile (formerly Branding) →
+ Picture / Banner image / Video watermark → Change (or Upload).
3. **The umtool report-to-video brand preset: opt-in, and nothing else moves.**
- **How it's enabled:** a manifest opts in (e.g. `render.brand: "archilyzer-media"`). The preset
sets `render.palette` (bg `#151b20`, fg `#e7edf1`, muted `#8496a2`, accent `#5fa8a0`, amber
@@ -1398,8 +1398,9 @@ rewrites `umtool/report-to-video/brands/archilyzer-media.json`). Rendered throug
| `banner-safe-1546x423.png` | 1546 × 423 | 33,534 |
plus `avatar.svg`, `watermark.svg`, `banner.svg`, `banner-safe.svg` (the same drawing with viewBox
-`507 508.5 1546 423`), `lockup.svg` and `INDEX.html` (previews, sizes, Customization → Branding →
-Picture / Banner image / Video watermark, then Publish). All four PNGs and the page were looked at.
+`507 508.5 1546 423`), `lockup.svg` and `INDEX.html` (previews, sizes, Customization → Profile
+(formerly Branding) → Picture / Banner image / Video watermark → Change, then Publish). All four PNGs
+and the page were looked at.
**The umtool preset** (`render.brand: "archilyzer-media"`; README "The Archilyzer Media preset").
- `brand.mjs`: `resolveBrandRender` (owns `palette` and `fontRegular` = vendored Plex Mono; resolves
@@ -1524,3 +1525,27 @@ glyph, so it is set from Plex Mono's 0.74 em ascender and 0.698 em cap height).
band reads it, and no Plex Mono bold is vendored.
- umtool's project page lists the raw timeline, so the appended end card is built and chaptered but
not listed there.
+
+**Review fixes** (verdict SHIP AFTER FIXES, `$T/s4-review.md`; the three rulings — automatic end card,
+rail/ledger/chart on Fira, no bold Plex Mono yet — stand).
+- `387a8233`, should-fix + nit 4:
+ - INDEX.html's Studio steps now say **Customization → Profile (formerly Branding)**, then the
+ asset's **Change** (Upload if it has none), linking YouTube Help "Manage your channel branding"
+ (answer 10456525): Branding was folded into Profile. The test pins the new words; this plan's
+ two mentions are corrected.
+ - `brandMediaGlyphs.ts` records the fontTools it was generated with (`4.65.0`); the parity test
+ skips, with the reason in the output, when another version is installed (checked with a fake
+ `python3` on PATH: `# SKIP fontTools 0.0-fake is installed; … generated with 4.65.0`).
+- `fde57d46`, nits 2, 3, 5:
+ - `endCardConfig(null)` is off, like `false`, so resolving a render block twice keeps an
+ ended-off card off (test +1);
+ - the header mark is `_mark-<size>-<sha256(kit svg)[:12]>.png`, so a regenerated kit is never
+ answered by a stale PNG (asserted in the guarded render test);
+ - `umtool doctor` lists `rsvg-convert` as needed by the brand preset too.
+- Nit 6: `release-10.md` says S4 *merges* after the cut.
+- Gates: tsc clean (49 s); common **1,923/1,923**, editor unit **79/79**, `test:scripts` **173 + 1
+ skip**, mcp **219/219**; `pnpm --filter umtool run build` ok. The identity diff re-run on the fixed
+ tree anyway (the non-brand path is untouched): **334 files, 201 raw + 133 date-chunk-only, 0
+ different**. The branded fixture rebuilt (same 3,631,785-byte cut). The real assets were
+ regenerated: every PNG and SVG byte-identical to the first run, only `INDEX.html` changed. No e2e:
+ the one umtool app line is a `neededBy` label no spec reads.
diff --git a/plans/release-10.md b/plans/release-10.md
@@ -151,7 +151,7 @@ which passed while S3 was unmerged), and every rollout script is fail-stop: no h
failed build, no hub step after a failed sites run, a skipped site named, no restart on the pre-brand
`BUILD_ID`. Details: `brand-and-themes.md`, S3 "Review fixes".
-**S4 — Archilyzer Media** (the YouTube channel's assets and umtool's opt-in `render.brand` preset) merged after the release-10 cut on `brand/media` and is **not part of the site rollout**: it touches only `common/lib` + `common/bin` and umtool; see `brand-and-themes.md`, "Slice S4, as shipped".
+**S4 — Archilyzer Media** (the YouTube channel's assets and umtool's opt-in `render.brand` preset) merges after the release-10 cut, from `brand/media`, and is **not part of the site rollout**: it touches only `common/lib` + `common/bin` and umtool; see `brand-and-themes.md`, "Slice S4, as shipped".
## Rollout