fix: skills minor cleanup batch (#26)

* fix(skills): cleanup batch — 7 skills minor fixes

* docs(handoff): add pr-26 handoff + ADR-006

* docs(handoff): fix ADR-026 typo to ADR-006

---------

Co-authored-by: opencode-agent <agent@slaid098.dev>
This commit is contained in:
Sergey 2026-07-23 23:53:55 +03:00 committed by GitHub
parent 0d79fe142b
commit 3fcb5b6aa8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 65 additions and 25 deletions

View file

@ -10,11 +10,11 @@ description: Use when creating a new opencode skill. Covers file location, front
## 1. Куда создавать ## 1. Куда создавать
``` ```
config/skills/<skill-name>/SKILL.md .opencode/skills/<skill-name>/SKILL.md
``` ```
В корне текущего репо (`<repo-root>` = `git rev-parse --show-toplevel`), В корне текущего репо (`<repo-root>` = `git rev-parse --show-toplevel`),
в `config/skills/`. НЕ в `~/.config/opencode/` — эта папка синхронизируется из репо. в `.opencode/skills/`. НЕ в `~/.config/opencode/` — эта папка синхронизируется из репо.
## 2. Формат SKILL.md ## 2. Формат SKILL.md
@ -39,7 +39,7 @@ description: <когда загружать. Триггеры на русско
### Примеры существующих скиллов ### Примеры существующих скиллов
``` ```
config/skills/ .opencode/skills/
├── add-skill/SKILL.md ← этот скилл ├── add-skill/SKILL.md ← этот скилл
├── branch/SKILL.md ├── branch/SKILL.md
├── code-standards/SKILL.md ├── code-standards/SKILL.md
@ -56,17 +56,17 @@ config/skills/
## 3. Скиллы авто-дискаверятся ## 3. Скиллы авто-дискаверятся
Opencode сканирует все под-директории `config/skills/` и подхватывает любой `SKILL.md`. Регистрировать ничего не нужно. Opencode сканирует все под-директории `.opencode/skills/` и подхватывает любой `SKILL.md`. Регистрировать ничего не нужно.
Список скиллов загружается **при старте контейнера**. Новый скилл станет доступен только после рестарта. Список скиллов загружается **при старте opencode**. Новый скилл станет доступен только после рестарта.
## 4. Commit и Push ## 4. Commit и Push (для implementing agent)
После создания файла — сразу коммит и пуш по правилам скилла `commit`: Implementing agent (subagent, которому делегировано создание) после создания файла — сразу коммит и пуш по правилам скилла `commit`:
```bash ```bash
cd "$(git rev-parse --show-toplevel)" cd "$(git rev-parse --show-toplevel)"
git add config/skills/<skill-name>/SKILL.md git add .opencode/skills/<skill-name>/SKILL.md
git commit -m "feat(skills): add <skill-name> skill for <purpose>" git commit -m "feat(skills): add <skill-name> skill for <purpose>"
git push git push
``` ```
@ -77,6 +77,6 @@ git push
> Скилл создан и запушен. Чтобы он заработал: > Скилл создан и запушен. Чтобы он заработал:
> 1. На хосте: `git pull` в репозитории opencode > 1. На хосте: `git pull` в репозитории opencode
> 2. Рестарт контейнера > 2. Рестарт opencode
> >
> После рестарта скилл появится в `available_skills` и будет загружаться по триггерам из `description`. > После рестарта скилл появится в `available_skills` и будет загружаться по триггерам из `description`.

View file

@ -20,7 +20,7 @@ refactor/db/simplify-queries
### Rules ### Rules
1. Always branch from `main` 1. Always branch from the default branch (verify `main`/`master`)
2. Before creating a branch, **discuss with the user**: 2. Before creating a branch, **discuss with the user**:
- Confirm the branch name - Confirm the branch name
- Confirm the scope - Confirm the scope

View file

@ -22,5 +22,6 @@ description: Универсальные правила разработки дл
- Приватные функции/методы для внутренних деталей (с префиксом `_` или аналогом языка) - Приватные функции/методы для внутренних деталей (с префиксом `_` или аналогом языка)
## 4. Документирование ## 4. Документирование
- Google-style комментарии на английском для всех публичных API - AGENTS.md правило «No comments unless requested» — это **default**: код без комментариев
- Этот skill описывает **исключение**: Google-style docstrings на английском для публичных API — когда контракт warrants (библиотечный API, public surface)
- Описывай **зачем**, а не **что** — код и так говорит что делает - Описывай **зачем**, а не **что** — код и так говорит что делает

View file

@ -5,7 +5,7 @@ description: Analyse git history of any project and suggest commit messages that
## Процесс ## Процесс
1. Запустить `git log --oneline -30` 1. Запустить `git log --oneline -20`
2. Если коммиты есть: 2. Если коммиты есть:
- Извлечь все уникальные `type(scope):` паттерны - Извлечь все уникальные `type(scope):` паттерны
- Составить список реальных scopes проекта - Составить список реальных scopes проекта
@ -14,9 +14,10 @@ description: Analyse git history of any project and suggest commit messages that
- Базовый формат: `type(scope): description` - Базовый формат: `type(scope): description`
- Типы: `feat | fix | chore | docs | refactor | test | style | perf` - Типы: `feat | fix | chore | docs | refactor | test | style | perf`
- Scope по умолчанию: спросить пользователя - Scope по умолчанию: спросить пользователя
- Description отвечает на **why** (не what) - Description — что сделано (кратко), на английском
- Без точки в конце - Без точки в конце
- Max ~72 символа - Max ≤72 символа
- Язык: English only — type, scope, description всё на английском
## Type ## Type
@ -26,7 +27,7 @@ description: Analyse git history of any project and suggest commit messages that
| `fix` | Bug fix | | `fix` | Bug fix |
| `chore` | Maintenance, cleanup, dependencies, config | | `chore` | Maintenance, cleanup, dependencies, config |
| `refactor` | Code restructuring, no behavior change | | `refactor` | Code restructuring, no behavior change |
| `docs` | AGENTS.md, SKILL.md, README only | | `docs` | Documentation files (AGENTS.md, SKILL.md, README, handoff, ADR, project-map, docs/) |
| `test` | Adding or fixing tests | | `test` | Adding or fixing tests |
| `style` | Formatting, linting, whitespace only | | `style` | Formatting, linting, whitespace only |
| `perf` | Performance improvements | | `perf` | Performance improvements |

View file

@ -11,6 +11,8 @@ description: Используй этот навык, когда тебе нуж
Запусти в терминале следующую команду: Запусти в терминале следующую команду:
`repomix --no-files --stdout` `repomix --no-files --stdout`
> **Prerequisite:** `repomix` должен быть установлен (`npm i -g repomix` или через Dockerfile). Если не установлен — установи перед использованием.
## Твои действия: ## Твои действия:
1. Запусти указанную команду в терминале. Она выведет дерево каталогов и список файлов с их размерами прямо в stdout. 1. Запусти указанную команду в терминале. Она выведет дерево каталогов и список файлов с их размерами прямо в stdout.
2. Изучи полученную структуру воркспейсов, чтобы точно знать расположение файлов и пакетов. 2. Изучи полученную структуру воркспейсов, чтобы точно знать расположение файлов и пакетов.
@ -76,7 +78,6 @@ last_updated: <YYYY-MM-DD>
--- ---
pr: <N> pr: <N>
title: <PR title> title: <PR title>
merged: <YYYY-MM-DD>
--- ---
## Что сделано ## Что сделано
@ -97,7 +98,7 @@ merged: <YYYY-MM-DD>
Архитектурные решения сохраняются в ADR (Architecture Decision Records). Архитектурные решения сохраняются в ADR (Architecture Decision Records).
### Структура ### Структура
- `docs/decisions/<NN>-<title>.md` — один файл на решение - `docs/decisions/<NN>-pr-<N>-<slug>.md` — один файл на решение
- Numbering: `001`, `002`, `003`, ... (zero-padded, sequential) - Numbering: `001`, `002`, `003`, ... (zero-padded, sequential)
### Шаблон ### Шаблон

View file

@ -108,7 +108,7 @@ gh issue create \
## Пути навыков ## Пути навыков
Навыки создаются в `config/skills/` в репозитории opencode. НЕ в `~/.config/opencode/skills/` — это маунт из репо. После изменения навыка нужен `git pull` на хосте + рестарт контейнера. Навыки создаются в `.opencode/skills/` в репозитории opencode. НЕ в `~/.config/opencode/skills/` — это маунт из репо. После изменения навыка нужен `git pull` на хосте + рестарт opencode.
## Полный workflow ## Полный workflow

View file

@ -61,13 +61,13 @@ related: [category/file.md]
## Путь для репозиториев ## Путь для репозиториев
Плагинный default: `~/opencode-memory` (переопределяется через `OPENCODE_MEMORY_DIR`, например `app_data/opencode-memory`).
``` ```
~/opencode-memory/repos/{host}/{org}/{repo}.md {memory-dir}/repos/{host}/{org}/{repo}.md
``` ```
## Дистилляция из handoff Используй один путь последовательно во всех примерах — default (`~/opencode-memory`) или override (`app_data/opencode-memory`), но не оба сразу.
После merge PR memory-syncer читает `docs/handoff/pr-<N>-<slug>.md` и дистиллирует durable-записи в `app_data/opencode-memory/repos/{host}/{org}/{repo}.md`. Путь выводится из `git remote get-url origin`.
### Формат записей ### Формат записей

View file

@ -91,7 +91,7 @@ Review PR#M в текущем репо (pre-merge, режим docs).
Review PR#M в текущем репо. Review PR#M в текущем репо.
1. `gh pr view M --json headRefName,body,title`. 1. `gh pr view M --json headRefName,body,title`.
2. `git diff origin/master...HEAD`. 2. `git diff origin/master...HEAD`.
3. Load project skills: `find config/skills/ -name "SKILL.md"`, грузи каждый 3. Load project skills: `find .opencode/skills/ -name "SKILL.md"`, грузи каждый
через `skill("<name>")`. через `skill("<name>")`.
4. Проверь: code quality, architecture, error handling, security, testing, 4. Проверь: code quality, architecture, error handling, security, testing,
duplication, project-specific rules, PR hygiene, handoff/ADR (quick check). duplication, project-specific rules, PR hygiene, handoff/ADR (quick check).

View file

@ -25,7 +25,7 @@ truth для порядка и действий — `spec_status` tool. На в
- ЛЮБОЙ action БЕЗ предшествующего вызова `spec_status` = protocol violation. - ЛЮБОЙ action БЕЗ предшествующего вызова `spec_status` = protocol violation.
- Импровизировать порядок. Решать сам какую фазу выполнять — читай `NEXT:`. - Импровизировать порядок. Решать сам какую фазу выполнять — читай `NEXT:`.
- Пропускать вызов `spec_status`, даже если «кажется, что фаза уже ✅» — скрипт решает. - Пропускать вызов `spec_status`, даже если «кажется, что фаза уже ✅» — скрипт решает.
- bash-запуск `python3 config/scripts/spec-status.py` — детерминированный deny-rule (см. ADR-NNN, аналог ADR-019). Только нативный tool `spec_status`. - bash-запуск `python3 config/scripts/spec-status.py` — детерминированный deny-rule (см. ADR-026, аналог ADR-019). Только нативный tool `spec_status`.
- Главному агенту: edit/write/read файлов (всё через subagent), memory_search (через subagent), gh issue create (через subagent). - Главному агенту: edit/write/read файлов (всё через subagent), memory_search (через subagent), gh issue create (через subagent).
- Формулировать вопросы не из question templates ниже. - Формулировать вопросы не из question templates ниже.
- Предлагать стек вне hardcoded default stack по типу проекта. - Предлагать стек вне hardcoded default stack по типу проекта.
@ -69,7 +69,7 @@ Prompt template A (см. ниже).
Имя проекта (kebab-case): ___ Имя проекта (kebab-case): ___
Описание (1 строка): ___ Описание (1 строка): ___
GitHub owner [slaid098]: ___ GitHub owner: ___
``` ```
Prompt template B (см. ниже). Prompt template B (см. ниже).

View file

@ -0,0 +1,14 @@
# ADR-006: Skills cleanup batch
## Статус
Accepted
## Контекст
После миграции skills из config/ → .opencode/ (#7), 7 skills содержали устаревшие пути, противоречия с AGENTS.md, stale templates.
## Решение
Atomic batch: 7 skills в одном PR. Minor fixes only (no rewrites). Rewrites вынесены в #12, #13.
## Альтернативы
- Отдельный PR на каждый skill — отклонено (7 PR для minor fixes = overhead)
- Полный rewrite всех skills — отклонено (scope creep, rewrites в #12/#13)

View file

@ -0,0 +1,23 @@
# PR: Skills minor cleanup batch
## Что сделано
- code-standards: comments rule clarified (no comments = default, public-API docstrings = exception)
- branch: "from main" → "from default branch"
- memory: path inconsistency fixed (plugin default + OPENCODE_MEMORY_DIR override)
- add-skill: config/skills → .opencode/skills, tunnel dropped, reframe for subagent
- get-project-map: removed merged: field, fixed ADR naming convention, repomix noted
- spec-driver: ADR-NNN → ADR-006, removed slaid098 default
- commit: docs scope expanded, removed "why не what", aligned git log -20, ≤72, English only
- issue + pipeline-driver: stale config/skills refs fixed (verification-required)
## Почему
После миграции #7 skills содержали устаревшие/противоречивые инструкции. Cleanup для консистентности.
## Pending
- opencode-config skill rewrite (#12) — canonical rule .opencode/
- issue + repo-init rewrite (#13)
## Watch out
- 9 skills modified в одном PR (7 named + 2 stale-ref cleanup for verification)
- code-standards comments rule: не удалили, уточнили (AGENTS.md = default, skill = exception)
- issue/pipeline-driver не входили в named scope, но verification grep требовала config/skills пусто → fixed