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. Куда создавать
|
||||
|
||||
```
|
||||
config/skills/<skill-name>/SKILL.md
|
||||
.opencode/skills/<skill-name>/SKILL.md
|
||||
```
|
||||
|
||||
В корне текущего репо (`<repo-root>` = `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-name>/SKILL.md
|
||||
git add .opencode/skills/<skill-name>/SKILL.md
|
||||
git commit -m "feat(skills): add <skill-name> skill for <purpose>"
|
||||
git push
|
||||
```
|
||||
|
|
@ -77,6 +77,6 @@ git push
|
|||
|
||||
> Скилл создан и запушен. Чтобы он заработал:
|
||||
> 1. На хосте: `git pull` в репозитории opencode
|
||||
> 2. Рестарт контейнера
|
||||
> 2. Рестарт opencode
|
||||
>
|
||||
> После рестарта скилл появится в `available_skills` и будет загружаться по триггерам из `description`.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
- Описывай **зачем**, а не **что** — код и так говорит что делает
|
||||
|
|
|
|||
|
|
@ -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 |
|
||||
|
|
|
|||
|
|
@ -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: <YYYY-MM-DD>
|
|||
---
|
||||
pr: <N>
|
||||
title: <PR title>
|
||||
merged: <YYYY-MM-DD>
|
||||
---
|
||||
|
||||
## Что сделано
|
||||
|
|
@ -97,7 +98,7 @@ merged: <YYYY-MM-DD>
|
|||
Архитектурные решения сохраняются в ADR (Architecture Decision Records).
|
||||
|
||||
### Структура
|
||||
- `docs/decisions/<NN>-<title>.md` — один файл на решение
|
||||
- `docs/decisions/<NN>-pr-<N>-<slug>.md` — один файл на решение
|
||||
- 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
|
||||
|
||||
|
|
|
|||
|
|
@ -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`), но не оба сразу.
|
||||
|
||||
### Формат записей
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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 (см. ниже).
|
||||
|
|
|
|||
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