## Что сделано - Убран тег 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>
10 KiB
10 KiB
| 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 asset—assets/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", ImageMagickconvertнедоступен).@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.yml—docs/project-map/github.md:release.yml→deploy.yml, убрано упоминание GitHub Release (только деплой в dist),last_updated2026-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(rawdist/*.meta.js) для автообновления — НЕ GitHub Releases. Release v1.0.0 дублировал артефакты.user.js/.meta.js, которые уже лежат вdist. Два канала раздачи одного и того же = путаница + двойная работа CI. Убрали Release, оставилиdistкак единственный канал. @icon404.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-readmequick_start""validation) и #148 (create-readmecreate не перезаписывает локальный 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-imagetool) или ImageMagick, но 128 достаточно для 16×16/32×32 рендера в менеджерах. - README собран вручную по шаблону skill
repo-readme, не черезcreate-readmecreate. Тулза сломана (#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. Workflowrelease.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 blockslaid098.dev/support.
docs/project-map/github.md
release.yml→deploy.yml, убрано «GitHub Release»,last_updated2026-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— НЕ тронуты (задание: не трогать).
Коммиты
refactor(ci): rename release workflow to deploy—.github/workflows/release.yml→deploy.ymlfeat(repo): add 128x128 icon asset—assets/icon.pngdocs(repo): regenerate README via create-readme—README.mddocs(repo): update project map for deploy.yml—docs/project-map/github.mddocs(repo): add ADR and handoff— этот handoff + ADR 0005docs(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-readmequick_start validation), #148 (create-readmecreate не перезаписывает локальный README)