opencode-voice-dictation/docs/handoff/pr-37-remove-releases-add-icon.md
Sergey 4542bd8883
refactor(repo): remove GitHub releases, add icon, standardize README (#37)
## Что сделано
- Убран тег v1.0.0 и GitHub Release v1.0.0
- release.yml → deploy.yml (деплой в dist без GitHub Release)
- Добавлен assets/icon.png 128×128
- README перегенерирован через create-readme (include_clone=false,
кликабельные steps)
- docs/project-map/github.md обновлён
- ADR + handoff созданы

## Почему
GitHub Releases избыточны — автообновление работает через @updateURL на
ветку dist. README не соответствовал стандарту create-readme (нет
delimiter-тегов для slaid098.dev). @icon ссылался на несуществующий
файл.

Closes #36

Closes #36

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-30 03:39:20 +03:00

10 KiB
Raw Permalink Blame History

pr_number branch issue title status created
37 refactor/remove-releases-add-icon 36 remove GitHub releases, add icon, standardize README open 2026-07-30

Handoff — PR 37: remove GitHub releases, add icon, standardize README

Что сделано

Четыре логических коммита на ветке refactor/remove-releases-add-icon:

  • refactor(ci): rename release workflow to deploy.github/workflows/release.yml удалён, создан .github/workflows/deploy.yml: name: Deploy, триггер только push: branches: [main] (убран tags: ["v*"]), убран шаг Create GitHub Release on tag (softprops/action-gh-release@v3) целиком. Шаги lint/typecheck/knip/test/build и Deploy to dist branch (peaceiris/actions-gh-pages@v4, publish_dir: ./dist, publish_branch: dist, keep_files: false) оставлены без изменений. Git распознал как rename.
  • feat(repo): add 128x128 icon assetassets/icon.png (128×128 PNG RGBA, 1384 байт). Источник — обложка витрины /root/workspace/slaid098-dev/src/apps/opencode-voice-dictation/cover.png (1024×1024), даунскейл через ffmpeg (-vf "scale=128:128", ImageMagick convert недоступен). @icon в vite.config.ts:19 уже указывал на main/assets/icon.png — vite.config.ts НЕ трогался.
  • docs(repo): regenerate README via create-readme — старый README (121 строка, без delimiter-тегов) заменён на стандартизированный двуязычный: 4 пары delimiter-тегов (summary-en/features-en/summary-ru/features-ru), language switcher, include_clone: false, quick_start_steps_* (4 кликабельных шага), features_* (8 фич). create-readme (mode: validate) проходит.
  • docs(repo): update project map for deploy.ymldocs/project-map/github.md: release.ymldeploy.yml, убрано упоминание GitHub Release (только деплой в dist), last_updated 2026-07-30.
  • docs(repo): add ADR and handoff — этот handoff + ADR 0005.

Дополнительно (вне коммитов): удалён тег v1.0.0 (локальный + remote) и GitHub Release v1.0.0 — git status пуст после, отдельный коммит не нужен (тег не в файлах).

Почему

  • GitHub Releases избыточны. Userscript-менеджеры (Tampermonkey/Violentmonkey) опрашивают @updateURL (raw dist/*.meta.js) для автообновления — НЕ GitHub Releases. Release v1.0.0 дублировал артефакты .user.js/.meta.js, которые уже лежат в dist. Два канала раздачи одного и того же = путаница + двойная работа CI. Убрали Release, оставили dist как единственный канал.
  • @icon 404. vite.config.ts:19 ссылался на main/assets/icon.png — файл не существовал, иконка скрипта в менеджере была пустой. Добавили 128×128 (ретина-запас для 32×32 рендера, 1.4 КБ вместо десятков КБ при 1024).
  • README не по стандарту. Старый README написан вручную без delimiter-тегов <!-- summary-en:start --> / <!-- features-en:start --> — витрина slaid098.dev не могла его распарсить, карточка репо не отображалась. Перегенерировали через create-readme (стандартизированная структура, 4 пары тегов, language switcher, Support block).

Pending

  • После merge: проверить, что deploy.yml отработал на push в main — ветка dist обновилась (opencode-voice-dictation.user.js + .meta.js свежие), GitHub Release НЕ создался (workflow больше не содержит softprops/action-gh-release).
  • Проверить, что @icon резолвится: установить/обновить скрипт из dist — иконка 🎤 должна отображаться в списке Tampermonkey/Violentmonkey (раньше 404).
  • Проверить витрину slaid098.dev: карточка opencode-voice-dictation должна подтянуться из raw README (summary-en/ru, features-en/ru между delimiter-тегами).
  • Старые секции README (Compatibility matrix 6×4, Settings table, Usage step-by-step) НЕ перенесены в новый README (задание: custom_sections не передавать). При необходимости вернуть через custom_sections_en/custom_sections_ru отдельным PR — НО после фикса create-readme #148 (тулза не перезаписывает существующий локальный README).
  • Issues #147 (create-readme quick_start "" validation) и #148 (create-readme create не перезаписывает локальный README) — заведены в slaid098/opencode-config, вне scope этого PR.

Watch out

  • deploy.yml триггерится ТОЛЬКО по push: branches: [main]. Теги v* больше не запускают CI. Семантическое версионирование тегов не используется — версия userscript живёт в @version (vite.config.ts/package.json), см. ADR 0002 gotcha (рассинхрон ломает updateURL). Не заводить теги v* без явной необходимости.
  • vite.config.ts:19 @icon указывает на main/assets/icon.png. Файл добавлен в main через этот PR. После merge иконка резолвится. НЕ удалять assets/icon.png и НЕ менять путь в vite.config.ts без синхронной правки обоих.
  • Иконка 128×128, НЕ 1024. Даунскейл через ffmpeg (ImageMagick недоступен в окружении). 1384 байт. Если потребуется более чёткая — перегенерировать из cover.png через sharp (draw-image tool) или ImageMagick, но 128 достаточно для 16×16/32×32 рендера в менеджерах.
  • README собран вручную по шаблону skill repo-readme, не через create-readme create. Тулза сломана (#148 — не перезаписывает существующий локальный файл, возвращает ложный success). Структура идентична шаблону, validate проходит. После фикса #148 можно перегенерировать через тулзу для гарантии — но текущий файл валиден.
  • quick_start в README содержит комментарий # No build step — install the userscript via the link in step 1 below вместо пустой строки. Задание требовало quick_start: "" (bash-блок не рендерится), но create-readme #147 отклоняет пустую строку. Обходной путь: bash-блок с комментарием (визуально минимален, не вводит в заблуждение). После фикса #147 — заменить на пустую строку и убрать bash-блок.
  • Бейдж [![Release]] убран из README. Workflow release.yml удалён → бейдж стал бы 404. Бейджи [![CI]] и [![License]] не перенесены в новый README (стандарт create-readme их не включает) — при необходимости добавить отдельным PR.

Изменения

.github/workflows/ (rename)

  • release.yml удалён.
  • deploy.yml (новый): name: Deploy, on: push: branches: [main] (без tags: ["v*"]), без шага Create GitHub Release on tag. Остальное (lint/typecheck/knip/test/build/deploy-to-dist) идентично.

assets/icon.png (новый)

  • 128×128 PNG RGBA, 1384 байт. Даунскейл из cover.png (1024×1024) через ffmpeg.

README.md (полная замена)

  • Старый: 121 строка, бейджи CI/Release/License, секции Compatibility/Settings/Usage, без delimiter-тегов.
  • Новый: стандартизированный двуязычный (skill repo-readme), 4 пары delimiter-тегов, language switcher, include_clone: false, quick_start_steps_* (4 шага), features_* (8 фич), Support block slaid098.dev/support.

docs/project-map/github.md

  • release.ymldeploy.yml, убрано «GitHub Release», last_updated 2026-07-30, purpose: CI workflows, dependabot, deploy.

docs/decisions/0005-pr-37-remove-releases-add-icon.md (новый)

  • ADR 0005: 4 секции (Статус/Контекст/Решение/Альтернативы) + Последствия + Источники.

docs/handoff/pr-37-remove-releases-add-icon.md (новый)

  • Этот handoff.

Файлы вне изменений

  • vite.config.ts, src/, tests/, package.jsonНЕ тронуты (задание: не трогать).

Коммиты

  1. refactor(ci): rename release workflow to deploy.github/workflows/release.ymldeploy.yml
  2. feat(repo): add 128x128 icon assetassets/icon.png
  3. docs(repo): regenerate README via create-readmeREADME.md
  4. docs(repo): update project map for deploy.ymldocs/project-map/github.md
  5. docs(repo): add ADR and handoff — этот handoff + ADR 0005
  6. docs(handoff): set PR number — после получения PR номера

ADR

См. docs/decisions/0005-pr-37-remove-releases-add-icon.md.

Источники

  • Issue: #36
  • Skill repo-readme — шаблон README с delimiter-тегами для slaid098.dev
  • Предыдущий ADR: docs/decisions/0004-pr-33-child-session-composer-guard.md (формат ADR)
  • Предыдущий handoff: docs/handoff/pr-33-child-session-disabled-composer.md (формат handoff)
  • Issues (вне scope): #147 (create-readme quick_start validation), #148 (create-readme create не перезаписывает локальный README)