From cdd8ba20e3bcb6ef5d5ff3de4b9a538cbd7c5cb7 Mon Sep 17 00:00:00 2001 From: Sergey <93754860+slaid098@users.noreply.github.com> Date: Sat, 1 Aug 2026 01:03:14 +0300 Subject: [PATCH] chore(assets): update cover without subtitle (#195) * chore(assets): update cover without subtitle * fix(assets): restore optional slots in cover template for engine tests * docs(handoff): add handoff + ADR for PR #195 cover update --------- Co-authored-by: opencode-agent --- .opencode/draw-image/templates/cover.svg | 4 +-- assets/cover.meta.json | 4 +-- assets/cover.png | Bin 25458 -> 18077 bytes ...86-pr-195-update-cover-without-subtitle.md | 21 +++++++++++++++ .../pr-195-update-cover-without-subtitle.md | 24 ++++++++++++++++++ 5 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 docs/decisions/086-pr-195-update-cover-without-subtitle.md create mode 100644 docs/handoff/pr-195-update-cover-without-subtitle.md diff --git a/.opencode/draw-image/templates/cover.svg b/.opencode/draw-image/templates/cover.svg index 3f6e2d7..8f206ee 100644 --- a/.opencode/draw-image/templates/cover.svg +++ b/.opencode/draw-image/templates/cover.svg @@ -1,8 +1,8 @@ - + - {{title}} + {{title}} {{subtitle}} \ No newline at end of file diff --git a/assets/cover.meta.json b/assets/cover.meta.json index 2c3121b..90fcd24 100644 --- a/assets/cover.meta.json +++ b/assets/cover.meta.json @@ -1,5 +1,5 @@ { - "hash": "de8036758f935399699ef01446e3b9c8d23d211863dae052932d0ffc1a298120", - "generatedAt": "2026-07-30T20:22:54.851Z", + "hash": "646197c49cf21f46fcaa8fef8d602dce5d35a51556d969c7e3977fa59486407f", + "generatedAt": "2026-07-31T21:56:42.585Z", "size": 1024 } diff --git a/assets/cover.png b/assets/cover.png index acd763f64d479ad959434ce5830f6c87af9765de..b9ca40320eb63640841811ebcd961c3ea6c70a0c 100644 GIT binary patch literal 18077 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 literal 25458 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 — ломает тесты `render.optional.test.ts` / `e2e.optional.test.ts` (PR#144), проверяющие conditional-удаление пустого subtitle. +- Увеличить icon + оставить subtitle-слот в шаблоне, рендерить PNG без subtitle-аргумента — conditional-логика `render.ts` (PR#144) удаляет `` строку при falsy `args.subtitle`, шаблон остаётся универсальным. + +## Решение +1. **icon-слот 400×400 → 520×520**, позиция x=312 → x=252 (центрирование: (1024−520)/2=252), y=180 без изменений. Нижний край иконки на y=700. +2. **title: lowercase `opencode config`**, font-size 72 → 80, позиция y=870 → y=830 (компенсация роста icon-слота, зазор ~130px до baseline). +3. **Опциональные слоты движка сохранены** в `cover.svg` (`sub-icon`, `badge`, `{{subtitle}}`) — шаблон остаётся переиспользуемым для других репо. Финальный `assets/cover.png` рендерится без subtitle-аргумента → conditional-regex `render.ts` (PR#144) удаляет `` строку с `{{subtitle}}` из финального SVG до рендера. Тесты PR#144 не затронуты. + +## Альтернативы +- **Удалить `` с `{{subtitle}}` из шаблона**: отвергнуто — ломает `render.optional.test.ts` / `e2e.optional.test.ts` (PR#144), которые проверяют, что пустой subtitle → нет `` элемента через conditional-regex. Удаление слота из шаблона делает эти тесты бессмысленными (regex нечего удалять). +- **Уменьшить icon вместо увеличения**: отвергнуто — мелкий логотип (400×400) терялся на 1024-канвасе, визуально слабый для showcase-карточки. +- **Title Case заголовок (`Opencode Config`)**: отвергнуто — lowercase выглядит чище и современнее для dev-tooling репозитория, соответствует brand-стилю slaid098. \ No newline at end of file diff --git a/docs/handoff/pr-195-update-cover-without-subtitle.md b/docs/handoff/pr-195-update-cover-without-subtitle.md new file mode 100644 index 0000000..afc91b7 --- /dev/null +++ b/docs/handoff/pr-195-update-cover-without-subtitle.md @@ -0,0 +1,24 @@ +--- +pr: 195 +title: "chore(assets): update cover without subtitle" +--- + +## Что сделано +Обновил обложку репозитория (issue #194) — три правки в существующих файлах, без структурных изменений: + +1. **`cover.svg` — увеличен icon-слот** — `.opencode/draw-image/templates/cover.svg`: слот `icon` 400×400 → 520×520, позиция x=312 → x=252 (центрирование по 1024-канвасу: (1024−520)/2=252). Заголовок `{{title}}` переведён в lowercase (`opencode config`), font-size 72 → 80, позиция y=870 → y=830 (компенсация роста icon-слота, чтобы title не налезал на логотип). +2. **Опциональные слоты движка сохранены** — `` с `{{subtitle}}` и слоты `sub-icon`/`badge` оставлены в шаблоне. Удаление `` сломало бы тесты `render.optional.test.ts` / `e2e.optional.test.ts` (PR#144), которые проверяют, что пустой subtitle → нет `` элемента. Финальный `assets/cover.png` отренерен БЕЗ subtitle-аргумента — `render.ts` conditional-regex (PR#144) удаляет `` строку с `{{subtitle}}` при falsy `args.subtitle`. +3. **Регенерация `assets/cover.png` + `cover.meta.json`** — перерендерено через `draw-image` CLI (template=cover, icon=opencode, title="opencode config", без subtitle). Новый хеш `646197c4…` (был `de803675…`), `generatedAt` 2026-07-31. Размер 1024×1024 сохранён (density:72, PR#161). + +Изменены 3 файла: `cover.svg`, `cover.png`, `cover.meta.json`. README, brand.json, тесты — не затронуты. + +## Почему +Финальный вариант обложки (без subtitle, с крупным логотипом 520×520 и lowercase-заголовком) выглядит чище и лучше подходит для showcase на slaid098.dev. Сохранение опциональных слотов движка (`sub-icon`/`badge`/`subtitle`) в шаблоне — сознательное решение: шаблон остаётся универсальным для других репо, а conditional-логика `render.ts` (PR#144) гарантирует, что незаполненные слоты не оставляют пустых элементов в финальном PNG. + +## Pending +— (после merge: при желании можно применить тот же шаблон к другим репо slaid098 через `draw-image` — отдельный шаг, как после PR#158) + +## Watch out +- **PR body vs фактический diff** — PR body утверждает «Убрал subtitle из шаблона», но `` с `{{subtitle}}` остался в `cover.svg`. Это не расхождение с intent: subtitle убран из финального PNG (через отсутствие аргумента), а не из шаблона. Шаблон сохраняет слот для переиспользования. +- **Хэш `cover.meta.json` изменился** — `computeHash` (sha256) зависит от SVG-контента и `generatedAt`. Все cached PNG будут перерендерены при следующем вызове CLI, если файл удалён (meta.json hash не меняется, но пиксели differ). +- **icon-слот 520×520 при x=252** — нижний край иконки на y=180+520=700, title на y=830 (font-size 80, baseline). Зазор ~130px — достаточно для Geist Sans. Если увеличить icon дальше (>560), title начнёт налезать. \ No newline at end of file