* feat(create-readme): add cover image reference to template and validation * feat(repo-readme): extend skill with cover generation + add command * chore(assets): add opencode brand logo and cover.png * docs(handoff): scaffold cover-pipeline PR notes * docs(handoff): set PR number * docs(project-map): update after cover pipeline structural changes --------- Co-authored-by: opencode-agent <agent@opencode.local>
17 lines
No EOL
2.3 KiB
Markdown
17 lines
No EOL
2.3 KiB
Markdown
# ADR-067: Cover image reference в README validation
|
||
|
||
## Статус
|
||
Accepted (2026-07-30)
|
||
|
||
## Контекст
|
||
README стандартизируется тулзой `create-readme` (delimiter-теги для slaid098.dev). Cover image (`assets/cover.png`, рендерится `draw-image` template "cover") должен отображаться в начале README после H1. До этого PR cover не был частью стандарта — README мог существовать без cover, и validate не ловил его отсутствие.
|
||
|
||
## Решение
|
||
1. `generateReadme()` рендерит `` между H1 и tagline-разделителями — cover попадает в зону выше summary, видим на GitHub сразу под заголовком.
|
||
2. `validateReadme()` проверяет **substring** `assets/cover.png` (без проверки существования файла). Файл-чек не делается намеренно: validate работает и в remote-режиме (через gh api), где файловая система репо недоступна агенту. Substring-чек ловит забытое упоминание, реальный рендер cover — отдельный шаг `draw-image` в workflow скилла.
|
||
3. Workflow `repo-readme` скилла: `create-readme` → `draw-image` → `validate` → fix-цикл. Cover хранится в `assets/cover.png` (default `draw-image` out path), README ссылается именно на этот путь.
|
||
|
||
## Альтернативы
|
||
- **Проверять существование `assets/cover.png` файловой системой**: отвергнуто — ломает remote-режим validate (gh api, нет локального FS репо). Substring-чек унифицирует local и remote.
|
||
- **Встраивать cover как base64 в README**: отвергнуто — раздувает README, ломает delimiter-парсинг витриной, сложнее обновлять.
|
||
- **Отдельный validate-чек для cover на уровне draw-image**: отвергнуто — cover-pipeline должен ловиться на этапе README-валидации, т.к. README — источник правды для витрины. |