opencode-config/.opencode/skills/repo-readme/SKILL.md
Sergey 464fa6ec83
feat(readme): new bilingual standard v2 with features table (#116)
* feat(readme): new bilingual standard v2 with features table

* docs(handoff): rename handoff and ADR to PR number convention

* docs(review): fix ADR-051 section name and add PR#116 refs

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-29 03:22:28 +03:00

171 lines
7.2 KiB
Markdown
Raw 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.

---
name: repo-readme
description: Use when creating or updating README.md for any slaid098 repository. Calls create-readme tool for deterministic structure with delimiter tags for slaid098.dev showcase. Also when user says "оформи README", "обнови описание репо", "readme template", "базовая структура readme".
---
# Repo README
Стандартизация `README.md` во всех репозиториях slaid098 через тулзу
`create-readme`. Тулза гарантирует структуру (разделители, Features table,
Support block, Quick Start, language switcher). Скилл даёт контекст: когда
вызывать тулзу и какие параметры передавать.
## 1. Когда использовать тулзу
- **Новый репо** → `create-readme` (mode: `create`) — генерирует
стандартизированный двуязычный README с нуля.
- **Проверка существующего README** → `create-readme` (mode: `validate`) —
проверяет, что структура соответствует стандарту витрины.
- **После ручных правок README** → всегда `validate`. Любая правка руками
агента (через Edit/Write) может нарушить разделители — после правок
обязательна валидация.
Не генерируй README вручную через Write — структура критична для парсинга
витриной. Только через тулзу `create-readme`.
## 2. GitHub metadata (отдельный шаг, НЕ в тулзе)
`create-readme` отвечает только за файл `README.md`. Метаданные репозитория
настраиваются отдельно через `gh repo edit` (это bash, не тулза):
- Описание: `gh repo edit --description "короткое описание"`
- Topics для поиска: `gh repo edit --add-topic topic1 --add-topic topic2`
- Social preview image — через настройки GitHub UI (не CLI).
Метаданные не дублируют README — они для карточки репо на GitHub и поиска.
## 3. Workflow
1. `create-readme` (mode: `create`) → генерирует README с гарантированной
структурой.
2. Ручные правки если нужно (агент редактирует файл напрямую через Edit) —
например, расширить `custom_sections`, поправить формулировки.
3. `create-readme` (mode: `validate`) → проверяет, что структура не нарушена.
4. Если `validate` fails → фикс нарушения → re-`validate`. Цикл пока не
пройдёт.
Локальный режим (по умолчанию): тулза пишет в `file_path` (default
`README.md`) через `fs.writeFileSync`. Удалённый режим: передай `repo`
(`owner/name`) — тулза сделает PUT через `gh api
repos/{owner}/{repo}/contents/README.md` с base64-контентом и SHA.
## 4. Зачем разделители (контекст для агента)
Витрина **slaid098.dev** скачивает raw `README.md` из каждого репо и
извлекает фрагменты между разделителями:
- `<!-- summary-en:start -->` ... `<!-- summary-en:end -->` — английский
блок Why/What для карточки.
- `<!-- features-en:start -->` ... `<!-- features-en:end -->` — английская
таблица фич.
- `<!-- summary-ru:start -->` ... `<!-- summary-ru:end -->` — русский блок
Зачем/Что.
- `<!-- features-ru:start -->` ... `<!-- features-ru:end -->` — русская
таблица фич.
Поэтому структура README **должна быть гарантирована тулзой**, а не агентом.
Агент может менять текст *внутри* разделителей, но не должен удалять/двигать
сами разделители. `validate` ловит такие нарушения.
## 5. Шаблон README (reference)
Тулза `create-readme` генерирует ровно эту структуру (параметры подставляются):
```markdown
# 🚀 {repo_name}
> {tagline}
[English](#-english) | [Русский](#-русская-версия)
---
## 🇬🇧 English
<!-- summary-en:start -->
### ❓ Why
{why_en}
### ✅ What
{what_en}
<!-- summary-en:end -->
<!-- features-en:start -->
### Features
| Feature | Description |
|---------|-------------|
| {emoji} {name} | {description} |
...
<!-- features-en:end -->
{custom_sections_en — доп. секции, если переданы}
### ⚡ Quick Start
\`\`\`bash
git clone https://github.com/slaid098/{repo_name}.git
{quick_start}
\`\`\`
---
## 🇷🇺 Русская версия
<!-- summary-ru:start -->
### ❓ Зачем
{why_ru}
### ✅ Что
{what_ru}
<!-- summary-ru:end -->
<!-- features-ru:start -->
### Фичи
| Фича | Описание |
|------|----------|
| {emoji} {name} | {description} |
...
<!-- features-ru:end -->
{custom_sections_ru — доп. секции, если переданы}
### ⚡ Быстрый старт
\`\`\`bash
git clone https://github.com/slaid098/{repo_name}.git
{quick_start}
\`\`\`
---
## 💬 Support and contacts / Поддержка и контакты
Have questions or want to support?
👉 **[slaid098.dev/support](https://slaid098.dev/support)**
{telegram строка, если передан}
```
`validate` проверяет: наличие всех 4 пар EN/RU разделителей (summary +
features), непустой контент между ними, ссылку `slaid098.dev/support`, секции
Quick Start (EN) и Быстрый старт (RU), language switcher `[English]` /
`[Русский]`.
## 6. Независимость от repo-init
- Скилл `repo-init` создаёт **пустой** `README.md` как часть инициализации
репо.
- `repo-readme` (через тулзу `create-readme`) **наполняет** его
стандартизированным контентом.
- Может применяться к существующим репо без `repo-init` — тулза перезапишет
`README.md` (локально) или обновит через GitHub API (с SHA).
## 7. Параметры тулзы (кратко)
`create-readme`:
- `mode``"create"` | `"validate"` (обязательный).
- `repo_name`, `tagline`, `why_en`, `what_en`, `why_ru`, `what_ru`,
`quick_start`, `features_en`, `features_ru` — обязательны для `create`.
- `features_en` / `features_ru` — массив `{ emoji, name, description }[]`.
- `custom_sections_en` / `custom_sections_ru` — массивы
`{ title, content }` (optional).
- `telegram` — username без `@` (optional).
- `repo``owner/name` для удалённой операции (optional).
- `file_path` — локальный путь (default `README.md`).