opencode-config/docs/handoff/pr-112-add-repo-readme-skill-and-tool.md
Sergey 7ea12b982d
feat(skills): add repo-readme skill and create-readme tool (#112)
* feat(tools): add create-readme tool

* feat(skills): add repo-readme skill

* docs(handoff): add handoff and ADR

* docs(handoff): set PR number

* docs(project-map): update after structural changes

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 01:04:51 +03:00

49 lines
3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
pr: 112
title: feat(skills): add repo-readme skill and create-readme tool
---
## Что сделано
Создана тулза `create-readme` (`.opencode/tools/create-readme.ts`, TS-плагин) с
двумя режимами:
- `create` — генерирует стандартизированный двуязычный README.md по шаблону с
разделителями `<!-- summary-en:start/end -->` и `<!-- summary-ru:start/end -->`,
Support & Contact блоком, Quick Start, language switcher. Поддерживает
`custom_sections_en/ru`, `tier` (flagship/utility), `demo_gif`, `telegram`.
Локальный режим (`fs.writeFileSync` в `file_path`) и удалённый (`gh api
repos/{owner}/{repo}/contents/README.md` PUT с base64 + SHA).
- `validate` — проверяет существующий README на 6 критериев: наличие обоих
EN/RU разделителей, непустой контент между ними, ссылку slaid098.dev/support,
секции Quick Start (EN) + Быстрый старт (RU), language switcher.
Создан скилл `repo-readme` (`.opencode/skills/repo-readme/SKILL.md`): когда
использовать create vs validate, tier system, GitHub metadata как отдельный
шаг, workflow (create → ручные правки → validate), зачем разделители (парсинг
витриной slaid098.dev), шаблон README как reference, независимость от
repo-init, краткий список параметров тулзы.
Проверки: `tsc --noEmit` чисто; `check-permissions.py` OK (тулза вызывает
`gh api` через `spawnSync` внутри плагина — не bash-команда агента, не требует
allow-rule).
## Почему
Структура README критична для витрины slaid098.dev — она скачивает raw
README и извлекает фрагмент между разделителями. Тулза обеспечивает
детерминированную генерацию структуры, скилл даёт контекст агенту (когда
вызывать, tier, metadata). Ручная генерация README агентом через Write
рискует нарушить разделители.
## Pending
## Watch out
Handoff/ADR файлы названы `pr-0-*` (placeholder) — номер PR подставится после
create-pr и отдельного коммита `docs(handoff): set PR number`. Тулза
регистрации в `opencode.json` не требует (плагины авто-дискаверятся из
`.opencode/tools/*.ts`, как `tunnel.ts`). `tier`/`file_path` реализованы через
`.optional()` + fallback в handler (не `.default()`), консистентно с
существующими тулзами (commit.ts, create-issue.ts не используют zod `.default()`).