From 3fcb5b6aa8b024d0c0c644ea240d68df197e1737 Mon Sep 17 00:00:00 2001 From: Sergey <93754860+slaid098@users.noreply.github.com> Date: Thu, 23 Jul 2026 23:53:55 +0300 Subject: [PATCH] fix: skills minor cleanup batch (#26) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- .opencode/skills/add-skill/SKILL.md | 18 +++++++-------- .opencode/skills/branch/SKILL.md | 2 +- .opencode/skills/code-standards/SKILL.md | 3 ++- .opencode/skills/commit/SKILL.md | 9 ++++---- .opencode/skills/get-project-map/SKILL.md | 5 ++-- .opencode/skills/issue/SKILL.md | 2 +- .opencode/skills/memory/SKILL.md | 8 +++---- .opencode/skills/pipeline-driver/SKILL.md | 2 +- .opencode/skills/spec-driver/SKILL.md | 4 ++-- .../006-pr-26-skills-cleanup-batch.md | 14 +++++++++++ docs/handoff/pr-26-skills-cleanup-batch.md | 23 +++++++++++++++++++ 11 files changed, 65 insertions(+), 25 deletions(-) create mode 100644 docs/decisions/006-pr-26-skills-cleanup-batch.md create mode 100644 docs/handoff/pr-26-skills-cleanup-batch.md diff --git a/.opencode/skills/add-skill/SKILL.md b/.opencode/skills/add-skill/SKILL.md index 5c20d87..8582566 100644 --- a/.opencode/skills/add-skill/SKILL.md +++ b/.opencode/skills/add-skill/SKILL.md @@ -10,11 +10,11 @@ description: Use when creating a new opencode skill. Covers file location, front ## 1. Куда создавать ``` -config/skills//SKILL.md +.opencode/skills//SKILL.md ``` В корне текущего репо (`` = `git rev-parse --show-toplevel`), -в `config/skills/`. НЕ в `~/.config/opencode/` — эта папка синхронизируется из репо. +в `.opencode/skills/`. НЕ в `~/.config/opencode/` — эта папка синхронизируется из репо. ## 2. Формат SKILL.md @@ -39,7 +39,7 @@ description: <когда загружать. Триггеры на русско ### Примеры существующих скиллов ``` -config/skills/ +.opencode/skills/ ├── add-skill/SKILL.md ← этот скилл ├── branch/SKILL.md ├── code-standards/SKILL.md @@ -56,17 +56,17 @@ config/skills/ ## 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 cd "$(git rev-parse --show-toplevel)" -git add config/skills//SKILL.md +git add .opencode/skills//SKILL.md git commit -m "feat(skills): add skill for " git push ``` @@ -77,6 +77,6 @@ git push > Скилл создан и запушен. Чтобы он заработал: > 1. На хосте: `git pull` в репозитории opencode -> 2. Рестарт контейнера +> 2. Рестарт opencode > > После рестарта скилл появится в `available_skills` и будет загружаться по триггерам из `description`. diff --git a/.opencode/skills/branch/SKILL.md b/.opencode/skills/branch/SKILL.md index f043e97..51833de 100644 --- a/.opencode/skills/branch/SKILL.md +++ b/.opencode/skills/branch/SKILL.md @@ -20,7 +20,7 @@ refactor/db/simplify-queries ### 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**: - Confirm the branch name - Confirm the scope diff --git a/.opencode/skills/code-standards/SKILL.md b/.opencode/skills/code-standards/SKILL.md index e32c260..cb245a3 100644 --- a/.opencode/skills/code-standards/SKILL.md +++ b/.opencode/skills/code-standards/SKILL.md @@ -22,5 +22,6 @@ description: Универсальные правила разработки дл - Приватные функции/методы для внутренних деталей (с префиксом `_` или аналогом языка) ## 4. Документирование -- Google-style комментарии на английском для всех публичных API +- AGENTS.md правило «No comments unless requested» — это **default**: код без комментариев +- Этот skill описывает **исключение**: Google-style docstrings на английском для публичных API — когда контракт warrants (библиотечный API, public surface) - Описывай **зачем**, а не **что** — код и так говорит что делает diff --git a/.opencode/skills/commit/SKILL.md b/.opencode/skills/commit/SKILL.md index 84f3a36..0318a80 100644 --- a/.opencode/skills/commit/SKILL.md +++ b/.opencode/skills/commit/SKILL.md @@ -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. Если коммиты есть: - Извлечь все уникальные `type(scope):` паттерны - Составить список реальных scopes проекта @@ -14,9 +14,10 @@ description: Analyse git history of any project and suggest commit messages that - Базовый формат: `type(scope): description` - Типы: `feat | fix | chore | docs | refactor | test | style | perf` - Scope по умолчанию: спросить пользователя - - Description отвечает на **why** (не what) + - Description — что сделано (кратко), на английском - Без точки в конце - - Max ~72 символа + - Max ≤72 символа + - Язык: English only — type, scope, description всё на английском ## Type @@ -26,7 +27,7 @@ description: Analyse git history of any project and suggest commit messages that | `fix` | Bug fix | | `chore` | Maintenance, cleanup, dependencies, config | | `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 | | `style` | Formatting, linting, whitespace only | | `perf` | Performance improvements | diff --git a/.opencode/skills/get-project-map/SKILL.md b/.opencode/skills/get-project-map/SKILL.md index ad56d66..f17fcaa 100644 --- a/.opencode/skills/get-project-map/SKILL.md +++ b/.opencode/skills/get-project-map/SKILL.md @@ -11,6 +11,8 @@ description: Используй этот навык, когда тебе нуж Запусти в терминале следующую команду: `repomix --no-files --stdout` +> **Prerequisite:** `repomix` должен быть установлен (`npm i -g repomix` или через Dockerfile). Если не установлен — установи перед использованием. + ## Твои действия: 1. Запусти указанную команду в терминале. Она выведет дерево каталогов и список файлов с их размерами прямо в stdout. 2. Изучи полученную структуру воркспейсов, чтобы точно знать расположение файлов и пакетов. @@ -76,7 +78,6 @@ last_updated: --- pr: title: -merged: --- ## Что сделано @@ -97,7 +98,7 @@ merged: Архитектурные решения сохраняются в ADR (Architecture Decision Records). ### Структура -- `docs/decisions/-.md` — один файл на решение +- `docs/decisions/<NN>-pr-<N>-<slug>.md` — один файл на решение - Numbering: `001`, `002`, `003`, ... (zero-padded, sequential) ### Шаблон diff --git a/.opencode/skills/issue/SKILL.md b/.opencode/skills/issue/SKILL.md index 99f491e..f7ca7d2 100644 --- a/.opencode/skills/issue/SKILL.md +++ b/.opencode/skills/issue/SKILL.md @@ -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 diff --git a/.opencode/skills/memory/SKILL.md b/.opencode/skills/memory/SKILL.md index 19fc746..a199677 100644 --- a/.opencode/skills/memory/SKILL.md +++ b/.opencode/skills/memory/SKILL.md @@ -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 - -После 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`. +Используй один путь последовательно во всех примерах — default (`~/opencode-memory`) или override (`app_data/opencode-memory`), но не оба сразу. ### Формат записей diff --git a/.opencode/skills/pipeline-driver/SKILL.md b/.opencode/skills/pipeline-driver/SKILL.md index 35612d1..e0b7190 100644 --- a/.opencode/skills/pipeline-driver/SKILL.md +++ b/.opencode/skills/pipeline-driver/SKILL.md @@ -91,7 +91,7 @@ Review PR#M в текущем репо (pre-merge, режим docs). Review PR#M в текущем репо. 1. `gh pr view M --json headRefName,body,title`. 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>")`. 4. Проверь: code quality, architecture, error handling, security, testing, duplication, project-specific rules, PR hygiene, handoff/ADR (quick check). diff --git a/.opencode/skills/spec-driver/SKILL.md b/.opencode/skills/spec-driver/SKILL.md index 909e265..f884fc1 100644 --- a/.opencode/skills/spec-driver/SKILL.md +++ b/.opencode/skills/spec-driver/SKILL.md @@ -25,7 +25,7 @@ truth для порядка и действий — `spec_status` tool. На в - ЛЮБОЙ action БЕЗ предшествующего вызова `spec_status` = protocol violation. - Импровизировать порядок. Решать сам какую фазу выполнять — читай `NEXT:`. - Пропускать вызов `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). - Формулировать вопросы не из question templates ниже. - Предлагать стек вне hardcoded default stack по типу проекта. @@ -69,7 +69,7 @@ Prompt template A (см. ниже). Имя проекта (kebab-case): ___ Описание (1 строка): ___ -GitHub owner [slaid098]: ___ +GitHub owner: ___ ``` Prompt template B (см. ниже). diff --git a/docs/decisions/006-pr-26-skills-cleanup-batch.md b/docs/decisions/006-pr-26-skills-cleanup-batch.md new file mode 100644 index 0000000..acc3dae --- /dev/null +++ b/docs/decisions/006-pr-26-skills-cleanup-batch.md @@ -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) \ No newline at end of file diff --git a/docs/handoff/pr-26-skills-cleanup-batch.md b/docs/handoff/pr-26-skills-cleanup-batch.md new file mode 100644 index 0000000..e0f5a0e --- /dev/null +++ b/docs/handoff/pr-26-skills-cleanup-batch.md @@ -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 \ No newline at end of file