opencode-config/docs/handoff/pr-181-agents-config-edits-rule.md
Sergey e954284ec3
docs(config): add Config Edits rule to AGENTS.md, expand configure-opencode (#181)
* docs(agents): add Config Edits rule linking configure-opencode skill

* docs(configure-opencode): expand scope rule to AGENTS, skills, agents, commands

* docs(handoff): scaffold handoff and ADR-078 for config-edits rule

* docs(handoff): set PR number 181 in handoff and ADR-078

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-31 22:01:56 +03:00

31 lines
No EOL
4.6 KiB
Markdown
Raw Permalink 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.

---
pr: <PR-NUMBER>
title: docs(config): add Config Edits rule to AGENTS.md, expand configure-opencode skill
---
## Что сделано
Реализован issue #170 — зафиксировано каноническое правило «куда писать конфиг opencode» на двух уровнях и обновлена устаревшая память:
1. **`AGENTS.md`** (корень репо): добавлен блок `## Config Edits` (после `## Code Style`) — 1 абзац. Правило: все правки конфига opencode (`opencode.json`, `AGENTS.md`, `skills/`, `agents/`, `commands/`) идут ТОЛЬКО в workspace clone `/root/workspace/opencode-config/`, НИКОГДА в `~/.config/opencode/` (bind-mount → bypass git → `git pull` конфликты на хосте). Ссылка на skill `configure-opencode` для полной sync-процедуры.
2. **`.opencode/skills/configure-opencode/SKILL.md`**: добавлен раздел `## 1.1. Scope правила «куда писать»` (после канонического правила, до «Применение изменений»). Расширяет scope правила с «только `opencode.json`» на `AGENTS.md`, `skills/`, `agents/`, `commands/`. Содержит пояснение bind-mount архитектуры (`~/.config/opencode/` = bind-mount из `/root/dockers/opencode-config/.opencode/`, global `AGENTS.md` = отдельный ro-mount из корня репо), описание почему правки в `~/.config/opencode/` bypass git и ломают `git pull` на хосте, и каноническую sync-процедуру (`git push` workspace → `git pull` host → `docker compose restart opencode`).
3. **Память `technical/opencode-config-global-vs-local.md`** (`~/.local/share/opencode/opencode-memory/`): обновлена устаревшая информация — репо `opencode``opencode-config`, layout `config/``.opencode/`, 14→17 skills, `.opencode/` git-tracked (105 файлов, не «empty/not git-tracked»), global `AGENTS.md` = ro-mount (отдельный bind-mount из корня репо), bind-mount source `/root/dockers/opencode-config/.opencode` (не `config`). Будет закоммичена и реиндексирована через `memory-save` после PR.
4. **Handoff + ADR**: созданы через `.opencode/scripts/scaffold-handoff.sh` (ADR-078, без коллизии нумерации).
## Почему
В контейнере `~/.config/opencode/` — bind-mount из хост-сорса. Глобальный `AGENTS.md` смонтирован read-only. Агенты редактирующие `~/.config/opencode/` напрямую меняют файлы на хосте в обход git → другой агент коммитит из workspace clone, пушит → на хосте `git pull` → конфликт. Skill `configure-opencode` фиксировал контракт только для `opencode.json`; `AGENTS.md`/`skills/`/`agents/`/`commands/` не покрывались, и явного запрета редактировать `~/.config/opencode/` не было. Память описывала старый layout (`config/`, репо `opencode`, 14 skills) и вводила новых агентов в заблуждение.
## Pending
- `memory-save` для коммита и реиндекса обновлённой памяти `opencode-config-global-vs-local.md` (выполнить после merge PR или по указанию).
- Подставить реальный PR-номер в handoff/ADR frontmatter (отдельный коммит после `create-pr`).
## Watch out
- **Спека issue #170 содержала неточные числа**: указано «18 skills» и «88 файлов», по факту 17 skills и 105 git-tracked файлов в `.opencode/`. Использованы актуальные числа из `ls`/`git ls-files`, а не числа из спеки.
- **ADR numbering collision (issue #176)**: `scaffold-handoff.sh` считает номер ADR как `ls | wc -l + 1`. В этом PR коллизии НЕ возникло (получил 078, max существующий = 077), но баг скрипта не фиксировал — вне scope. Issue #176 остаётся открытым.
- В `AGENTS.md` блока `## Config Edits` намеренно краткий (1 абзац) — полная процедура в skill `configure-opencode`, дублирование избегается.