* refactor: rename opencode-config to configure-opencode
- command: .opencode/commands/opencode-config.md -> configure-opencode.md
- skill dir: .opencode/skills/opencode-config/ -> configure-opencode/
- command body: skill({name: "opencode-config"}) -> skill({name: "configure-opencode"})
- project-map/README.md: update command+skill entries
* refactor: rewrite configure-opencode skill for .opencode/ auto-discovery
- flip canonical rule: config/opencode.json + bind-mount -> .opencode/opencode.json (project-local, auto-discovered, zero env var)
- repo is the template users clone (git clone && opencode)
- drop: bind-mount as primary (-> optional Docker), OPENCODE_CONFIG_DIR as required (-> power-user/Docker), Windows/ADR-009, internal env vars (ANTIDETECT/CONTEX7/CLOUDFLARE -> generic {env:MY_API_KEY})
- rename paths: config/ -> .opencode/, slaid098/opencode -> slaid098/opencode-config
- preserve: MCP/provider/permission formats, top-level keys, findLast semantic, check-permissions.py guard
- project-map: update entry descriptions for renamed command+skill
* docs(handoff): add pr-12 handoff + ADR-007
* docs(handoff): rename pr-12 handoff/ADR to pr-27 (actual PR number)
---------
Co-authored-by: opencode-agent <agent@slaid098.dev>
2.8 KiB
2.8 KiB
ADR-007: opencode-config skill rewrite for .opencode/ auto-discovery
Статус
Accepted
Контекст
configure-opencode skill (ранее opencode-config, создан в приватном репо) описывал старую архитектуру: config/opencode.json + bind-mount + OPENCODE_CONFIG_DIR + Windows bare-metal (windows/start.bat, LSP-конфликт pyproject.toml на Windows — не релевантен публичному Linux-шаблону). Новый репо slaid098/opencode-config использует .opencode/ auto-discovery (project-local, zero env var) — см. ADR-002 (миграция config/ → .opencode/). Skill противоречил ADR-002 и вводил в заблуждение пользователей публичного шаблона.
Решение
- Flip canonical rule (§1, §9):
.opencode/opencode.json(project-local, auto-discovered) вместоconfig/opencode.json+ bind-mount. Репо сам — шаблон, который клонируют (git clone … && opencode). - Drop: bind-mount как primary механизм (→ optional Docker path),
OPENCODE_CONFIG_DIRкак required concept (→ power-user/Docker env var only), Windows bare-metal / LSP-конфликтpyproject.toml(не мигрировал в публичный репо), internal env vars (ANTIDETECT_BROWSER_MCP_URL,CONTEX7_API_KEY,CLOUDFLARE_TUNNEL_TOKEN) → generic{env:MY_API_KEY}. - Rename paths:
config/...→.opencode/...,slaid098/opencode→slaid098/opencode-config(кромеopencode-memory). - Rename command + skill:
/opencode-config→/configure-opencode(command file, skill dir,skill({name: ...})ref, frontmattername). - Preserve: форматы MCP/provider/permission (архитектурно-агностичны), top-level keys reference,
findLastsemantic,check-permissions.pyguard, ADR-005/ADR-006 refs.
Альтернативы
- Drop skill entirely — отклонено: форматы MCP/provider/permission не очевидны из официальных доков opencode;
findLastsemantic иcheck-permissions.pyguard — repo-specific знания, которые нужно сохранить. - Keep old skill — отклонено: противоречит ADR-002 (
.opencode/architecture), вводит в заблуждение пользователей публичного шаблона (они не используют bind-mount). - Rewrite без rename — отклонено: rename
/opencode-config→/configure-opencodeустраняет коллизию имени с репоslaid098/opencode-configи лучше отражает action-verb naming остальных commands (/pipeline-driver,/spec-driver).