refactor(opencode): удалены устаревшие профили safe-build/safe-plan

Профили дублировали работу permission-reviewer статическими списками:
их deny обходили ревьюер и давали отказы без причины (git push). Теперь
решения об ask принимает плагин; статикой оставлены только deny на чтение
секретов - детерминированная гарантия, LLM-ревьюеру не доверяем.

- opencode.json: default_agent -> build, убраны статические списки
  и deny на git push (решение за ревьюером)
- permission-reviewer.jsonc: actorProfiles переключены на встроенные
  build/plan
- install.sh: блок линковки agents заменён чисткой старого симлинка;
  добавлено копирование permission-reviewer.jsonc в ~/.config/opencode
  (плагин читает его только оттуда - раньше тюнинг не применялся)
- тесты: проверка чистки симлинка и копирования конфига ревьюера
This commit is contained in:
Dmitry Dementiev committed 2026-10-10 17:32:34 +02:00
1 parent c3efe60a00
commit 32cd7097e6
6 files changed
+34 -212

No files matched your search

+16 -2
View File
@@ -437,11 +437,19 @@ SKILLS_SRC="$DOTFILES_DIR/agents/.agents/skills"
OPENCODE_DIR="$HOME/.config/opencode"
OPENCODE_SRC_DIR="$DOTFILES_DIR/opencode/.config/opencode"
OPENCODE_JSON_SRC="$OPENCODE_SRC_DIR/opencode.json"
OPENCODE_REVIEWER_SRC="$OPENCODE_SRC_DIR/permission-reviewer.jsonc"
mkdir -p "$OPENCODE_DIR"
if [ -d "$OPENCODE_SRC_DIR/agents" ]; then
ensure_symlink "$OPENCODE_SRC_DIR/agents" "$OPENCODE_DIR/agents"
# Профили safe-build/safe-plan удалены: агенты встроенные (build/plan),
# решения об "ask" принимает permission-reviewer. Старый симлинк чистим.
if [ -L "$OPENCODE_DIR/agents" ]; then
case "$(readlink "$OPENCODE_DIR/agents" 2>/dev/null || true)" in
"$OPENCODE_SRC_DIR"*)
rm "$OPENCODE_DIR/agents"
info "Удалён устаревший симлинк ~/.config/opencode/agents"
;;
esac
fi
if [ -d "$SKILLS_SRC" ]; then
@@ -452,6 +460,12 @@ if [ -f "$OPENCODE_JSON_SRC" ]; then
copy_managed_file "$OPENCODE_JSON_SRC" "$OPENCODE_DIR/opencode.json" "opencode.json"
fi
# Настройки permission-reviewer: плагин читает их только из глобального
# ~/.config/opencode, из репозитория они не подхватываются — копируем.
if [ -f "$OPENCODE_REVIEWER_SRC" ]; then
copy_managed_file "$OPENCODE_REVIEWER_SRC" "$OPENCODE_DIR/permission-reviewer.jsonc" "permission-reviewer.jsonc"
fi
# ── Claude Code ──────────────────────────────────────────────────────
# Из репозитория линкуются только skills. Настройки (settings.json,
# settings.local.json) принадлежат Claude Code и живут только на машине.