* 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>
4.6 KiB
pr: title: docs(config): add Config Edits rule to AGENTS.md, expand configure-opencode skill
Что сделано
Реализован issue #170 — зафиксировано каноническое правило «куда писать конфиг opencode» на двух уровнях и обновлена устаревшая память:
-
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конфликты на хосте). Ссылка на skillconfigure-opencodeдля полной sync-процедуры. -
.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/, globalAGENTS.md= отдельный ro-mount из корня репо), описание почему правки в~/.config/opencode/bypass git и ломаютgit pullна хосте, и каноническую sync-процедуру (git pushworkspace →git pullhost →docker compose restart opencode). -
Память
technical/opencode-config-global-vs-local.md(~/.local/share/opencode/opencode-memory/): обновлена устаревшая информация — репоopencode→opencode-config, layoutconfig/→.opencode/, 14→17 skills,.opencode/git-tracked (105 файлов, не «empty/not git-tracked»), globalAGENTS.md= ro-mount (отдельный bind-mount из корня репо), bind-mount source/root/dockers/opencode-config/.opencode(неconfig). Будет закоммичена и реиндексирована черезmemory-saveпосле PR. -
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 абзац) — полная процедура в skillconfigure-opencode, дублирование избегается.