Одна сессия opencode в роли **Orchestrator** и три субагента — **Coder**, **Reviewer**, **Tester**, которых Orchestrator вызывает через Task tool. Роли лежат в [`.opencode/agent/`](./.opencode/agent/), Orchestrator назначен агентом по умолчанию в [`opencode.json`](./opencode.json).
## Запуск и работа
В корне репозитория запусти `opencode`. Каждая новая сессия стартует Orchestrator'ом: задачу пиши обычным сообщением. Он сам:
- декомпозирует задачу и отправляет её Coder'у через Task tool;
- после Coder'а запускает Reviewer (только чтение) и Tester (проверка без правок) параллельно;
- возвращает Coder'у actionable findings и повторяет цикл, пока Critical/Major не закрыты;
- когда Critical/Major закрыты и проверки зелёные — без вопроса деплоит на тестовый сервис (`docker compose up -d --build`, затем `curl http://localhost:8080/api/health`);
- отдаёт финальный отчёт уже после деплоя: что написано, просмотрено и протестировано, оставшиеся риски и просьба проверить в браузере с очисткой кэша (Ctrl+Shift+R).
- **Tester** (subagent, `edit: deny`) — прогоняет проверки; может создавать игнорируемые артефакты, но не меняет отслеживаемые файлы; отчитывается `TEST_DONE`.
## Файлы
-`.opencode/agent/*.md` — определения агентов команды;
-`opencode.json` — `default_agent: orchestrator`.
Конфиг и агенты читаются при старте opencode: после изменений перезапусти сессию.