docs(project-state): owner decided the hero stays textless; the round-7 'not done' report was a browser cache
Deploy / build (push) Successful in 18s

This commit is contained in:
hoelee committed 2026-10-19 13:10:29 +08:00
1 parent 1bdf456bb5
commit 0b23312948
1 file changed
+16 -1
+16 -1
View File
@@ -205,6 +205,21 @@ Final numbers, all measured on the delivered artifacts:
- The hero banner's dead black left half is fixed by the renderer's reframing (above); what remains is that a genuinely slender subject (a thin cylinder) still reads small — that is the base frame's composition, and widening the caption `bbox` was measured not to change it.
- Several frames are intentionally very dark; at full banner width the subject can read as small.
**Owner decisions after round 7 (asked and answered 2026-10-19, no re-render needed):**
- **The hero banner stays textless.** Asked point-blank whether the 1600×900 hero should carry the
headline (the base art's left 60 % reads like space reserved for text), the owner chose to keep it as
is: the title is the page's HTML `<h1>`, and the text lives on the two share cards (EN + ZH) only.
Do not burn a headline into the hero — baked-in text is unselectable, unindexable and needs a
re-render per language.
- **"This post was never re-done" was a browser cache, not a missing artifact.** The owner opened
`/posts/five-step-ai-roadmap-what-i-actually-run/` and reported it as not-done. Every artifact was
present and live: five files 200 and **byte-identical to disk** (sha256 same), banner measured
**47.5 % silhouette / 53.2 % centre**, `og:image` correct per language, both remotes at 0 unpushed.
v1 and v2 serve the **same URLs** for a slug, so the browser answered from its own cache — a hard
refresh showed the new art. Tell the owner to hard-refresh when reporting a restyle batch; if a swap
must stick for returning readers, change the filename or add a version query instead of overwriting
the path.
**Three decisions still open** (asked of the consultant in round 4 §二; the owner may simply pick the defaults):
1. English headline rag → **default: (C) shorten the card headline only**, via `ogTitle_en` in `art-meta.json` (article title untouched).
2. CJK headline length cap → **default: ≤30 characters incl. punctuation** (EN ≤65).
@@ -230,7 +245,7 @@ Final numbers, all measured on the delivered artifacts:
- After deploy: every `/og/<slug>.jpg`, `/og/zh-<slug>.jpg`, `/banners/<slug>.{webp,jpg}`, `-800.webp` returns 200 **with cache-busting** (Cloudflare caches a negative 404 for 16 days).
**Known gaps in the plan — updated 2026-10-19**
- ✅ The **OCR pseudo-text gate** promised to the consultant is **implemented**: `C:/AI/ideogram4/ocr_gate.py`, calibrated against the two accepted samples (`--baseline`). Judge legibility (glyph box ≥ 14 px on the 1360×768 frame), never raw hit count — the accepted reference has a readable phrase in it.
- ✅ The **OCR pseudo-text gate** promised to the consultant is **implemented**: `C:/AI/ideogram4/ocr_gate.py`, calibrated against the two accepted samples (`--baseline`). The consultant's bar (round 5) is **glyph box ≥ 12 px on the 1360×768 frame AND ≥ 2 consecutive alphanumeric/percent characters**; a single glyph (`O`, `T`, `门`) is exempt geometry noise. Judge legibility, never raw hit count — the accepted reference has a readable phrase in it, and passing `00%`@0.84 as noise is exactly what let `60 %`/`100 %` ship.
- ✅ `art-meta.json` now carries all 72 entries; `scripts/og-gen/build_art_meta.py` regenerates them and re-checks coverage against `src/content/posts/*.md` before the renderer runs.
- Extra thumbs: the renderer emits 400 px and 800 px; nothing else consumes them.