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

4.6 KiB
Raw Permalink Blame History


pr: 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/): обновлена устаревшая информация — репо opencodeopencode-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, дублирование избегается.