Compare commits

...
4 Commits
Author SHA1 Message Date
ddadminandClaude Opus 5.5 4f034ea840 docs(cross-review): проверка оснований находок и пересланных отзывов
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 18:00:40 +02:00
ddadminandClaude Opus 5.5 6d302deb76 docs(cross-review): границы в поручении и наследование режима в T3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 17:58:42 +02:00
ddadmin 761fd9978b refactor(opencode): минимальный шаблон конфига для 2.x
Конфиг переписан в каноническом виде OpenCode 2: права заданы
списком permissions, MCP-серверы — в mcp.servers. Убраны устаревшие
default_agent и выключенный playwright, а также комментарий про
снятый плагин. Пример возврата SearXNG в README поправлен под новую
схему. Лишний симлинк opencode/skills удалён: OpenCode сам читает
~/.agents/skills.
2026-10-17 17:16:41 +02:00
ddadmin 0ab5dbe182 chore(opencode): отключены MCP-серверы поиска duckduckgo и searxng
Встроенные websearch и webfetch дают более полную выдачу, поэтому
локальные MCP-серверы поиска больше не нужны. SearXNG оставлен
в docker/searxng как резерв: добавлен README с запуском и возвратом
MCP-сервера. Заодно поправлено описание OpenCode в AGENTS.md.
2026-10-17 17:11:31 +02:00
6 changed files with 84 additions and 70 deletions

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@ This repository contains personal dotfiles and configurations for a highly produ
* **Shared Skills:** Located in `agents/.agents/skills/`. This is the single source of truth for AI instructions.
* **Gemini CLI:** Configured via `gemini/.gemini/`.
* **Policies:** `readonly-commands.toml` allows critical commands like `git status`, `git diff`, and `git add` to run without confirmation.
* **Opencode:** MCP-based assistant configuration (`opencode.json`) with support for documentation, search, and web-reading.
* **Opencode:** MCP-based assistant configuration (`opencode.json`): Context7 для документации и встроенные `websearch`/`webfetch`. Локальный SearXNG в `docker/searxng` — резервный вариант, MCP-сервер отключён.
* **Skill Bridges:** Claude gets skills via the `~/.claude/skills` symlink; Opencode reads `~/.agents/skills` natively, no bridge needed.
## 🚀 Usage & Maintenance
+11 -2
View File
@@ -31,6 +31,9 @@ description: >-
- **постановка**: путь к задаче, спеке или критериям приёмки. Без неё линза
«по задаче» работает вслепую — так и напиши;
- **команды проверки** и ожидаемый результат (например, число тестов);
- **границы**, если они есть: куда не ходить (приватные данные, рабочие
серверы, боевые скрипты), какие проверки слишком дороги, что в этой среде
заведомо не находка;
- **места, где ты сам не уверен** — вопросами, без своих обоснований:
пересказ твоей логики лишает ревьюера независимости. То же с выводами
другого ревьюера, пока оба не закончили первый заход;
@@ -97,14 +100,20 @@ prompts/lens-….md > prompt.md`. Файлы `prompts/` лежат в катал
## Разбор находок
Разбирает находки автор: у тебя контекст кода и задачи. Пользователю нужен
итог в отчёте, а не участие в каждом споре.
итог в отчёте, а не участие в каждом споре. Так же разбирай и отзывы других
моделей, которые переслал пользователь.
По каждой находке проверь три вещи:
1. **Верна ли она фактически.** Воспроизведи сценарий, прочти код, запусти
тест. Ревьюеры ошибаются уверенно: выдумывают API, путают версии,
приписывают коду то, чего в нём нет, требуют защиты от невозможных
состояний. Уверенный тон — не доказательство.
состояний. Автору легко поверить хорошо изложенной находке, но уверенный
тон — не доказательство. Проверяй и то, на чём находка держится:
утверждения о прогонах, истории и прошлых решениях сверяй с источником
так же, как утверждения о коде. Дешёвая починка от проверки не
освобождает: ложная находка, закрытая одной строкой, всё равно добавляет
лишнее.
2. **Применима ли к этому проекту** — его контрактам, масштабу, угрозам.
3. **Соразмерна ли починка риску.** Предложенный способ — один из вариантов.
Подтверждённый дефект закрывай лучшим путём, какой видишь; отказ от
@@ -40,7 +40,9 @@
ревьюер не увидит.
- **`runtimeMode` не задавай.** Режимы с подтверждением остановят ревьюера
на первом же действии и будут ждать человека в его разговоре. Ограничения
задаёт мандат в поручении.
задаёт мандат в поручении. Режим наследуется от твоего разговора, а шире
своего задать нельзя: если ты сам работаешь с подтверждением, скажи
пользователю до запуска.
- После запуска заверши ход: уведомление о завершении придёт само.
`task_status` нужен, только если результат требуется посреди хода.
- Итоговое сообщение ревьюера приходит в `summary`; полный отчёт — в файле
+40
View File
@@ -0,0 +1,40 @@
# SearXNG — резервный поиск
Локальный SearXNG на `127.0.0.1:26745`. Постоянно не нужен: с 2026-10-17
основной поиск идёт через встроенные `websearch`/`webfetch` OpenCode, а
MCP-сервер `searxng` отключён в `opencode/.config/opencode/opencode.json`.
Стек оставлен как запасной вариант, если встроенный поиск недоступен
(например, кончилась подписка OpenCode Go) или нужен фильтр по времени.
## Запуск и остановка
```
docker compose up -d # поднять
docker compose down # погасить, кэш и настройки в томах сохранятся
docker logs --since 10m searxng-core
```
Проверка: `curl -s -H 'Accept: application/json' http://127.0.0.1:26745/config | head -c 200`
## Возврат MCP-сервера
Добавить в `mcp.servers` файла `opencode/.config/opencode/opencode.json`:
```json
"searxng": {
"type": "local",
"command": ["npx", "-y", "mcp-searxng"],
"environment": { "SEARXNG_URL": "http://localhost:26745" }
}
```
После правки — разложить конфиг установщиком (`./install.sh`) или скопировать
файл в `~/.config/opencode/opencode.json`, затем перезапустить OpenCode.
## Ограничения
- Настройки по умолчанию (`use_default_settings: true`), форматы `html` и `json`.
- С домашнего IP часть движков быстро упирается в лимиты: `brave` и `wikipedia`
отвечают `too many requests`, `duckduckgo` — CAPTCHA. Остаётся `google cse`,
то есть полноценной агрегации из многих движков ждать не стоит.
- Контейнер не обновляется сам: `docker compose pull && docker compose up -d`.
+29 -65
View File
@@ -1,70 +1,34 @@
{
"$schema": "https://opencode.ai/config.json",
// Плагин opencode-permission-reviewer снят (эксперимент 2026-10-11 признан
// неудачным — см. docs/research/). Блок сохранён для возврата:
// "plugins": [
// {
// "package": "opencode-permission-reviewer@^2.4.0",
// "options": {}
// }
// ],
"default_agent": "build",
"permission": {
// edit покрывает и запись, и патчи (write/patch в V2 устарели)
"edit": "ask",
"webfetch": "ask",
"task": "ask",
"bash": {
"*": "ask",
"*/.ssh/*": "deny",
"*id_rsa*": "deny",
"*id_ed25519*": "deny",
"*.pem": "deny",
"*.env": "deny",
"*.env.*": "deny",
"*.secrets*": "deny",
"*.netrc*": "deny",
"*.env.example": "allow"
}
},
// Минимальный шаблон для OpenCode 2.x. Файл раскладывается копией
// (install.sh → copy_managed_file), поэтому правки в репозитории
// попадают в ~/.config/opencode только после ./install.sh.
"share": "manual",
"permissions": [
// Порядок важен: побеждает последнее совпавшее правило.
{ "action": "edit", "resource": "*", "effect": "ask" },
{ "action": "webfetch", "resource": "*", "effect": "ask" },
{ "action": "subagent", "resource": "*", "effect": "ask" },
{ "action": "shell", "resource": "*", "effect": "ask" },
{ "action": "shell", "resource": "*/.ssh/*", "effect": "deny" },
{ "action": "shell", "resource": "*id_rsa*", "effect": "deny" },
{ "action": "shell", "resource": "*id_ed25519*", "effect": "deny" },
{ "action": "shell", "resource": "*.pem", "effect": "deny" },
{ "action": "shell", "resource": "*.env", "effect": "deny" },
{ "action": "shell", "resource": "*.env.*", "effect": "deny" },
{ "action": "shell", "resource": "*.secrets*", "effect": "deny" },
{ "action": "shell", "resource": "*.netrc*", "effect": "deny" },
{ "action": "shell", "resource": "*.env.example", "effect": "allow" }
],
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
},
"enabled": true
},
"searxng": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-searxng"
],
"environment": {
"SEARXNG_URL": "http://localhost:26745"
},
"enabled": true
},
"playwright": {
"type": "local",
"command": [
"npx",
"-y",
"@playwright/mcp@latest"
],
"enabled": false
},
"duckduckgo": {
"type": "local",
"command": [
"uvx",
"duckduckgo-mcp-server"
],
"enabled": true
"servers": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
},
"share": "manual"
}
}
-1
View File
@@ -1 +0,0 @@
../../../agents/.agents/skills