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:
parent
0d79fe142b
commit
3fcb5b6aa8
11 changed files with 65 additions and 25 deletions
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
- Описывай **зачем**, а не **что** — код и так говорит что делает
|
- Описывай **зачем**, а не **что** — код и так говорит что делает
|
||||||
|
|
|
||||||
|
|
@ -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 |
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
### Шаблон
|
### Шаблон
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
|
||||||
|
|
||||||
### Формат записей
|
### Формат записей
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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).
|
||||||
|
|
|
||||||
|
|
@ -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 (см. ниже).
|
||||||
|
|
|
||||||
14
docs/decisions/006-pr-26-skills-cleanup-batch.md
Normal file
14
docs/decisions/006-pr-26-skills-cleanup-batch.md
Normal 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)
|
||||||
23
docs/handoff/pr-26-skills-cleanup-batch.md
Normal file
23
docs/handoff/pr-26-skills-cleanup-batch.md
Normal 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
|
||||||
Loading…
Add table
Reference in a new issue