С чего все началось
Идея инструмента выросла из очень практичной проблемы: даже при использовании сильных моделей качество работы AI-агента сильно зависит не только от самой модели, но и от среды вокруг нее.
На практике быстро стало видно, что “голый” OpenCode и такие системы, как Windsurf/Cascade, дают заметно разный результат даже на одних и тех же моделях. Причина была не в магии и не в каком-то одном секретном промпте. Разница возникала из-за оркестрации:
- как агент исследует репозиторий;
- как он планирует работу;
- как он выбирает инструменты;
- как он проверяет себя после изменений;
- как он учитывает контекст проекта;
- как он накапливает знания о повторяющихся ошибках и правилах.
Именно из этого наблюдения и родился OpenCode Bootstrap: не как набор красивых промптов, а как попытка превратить OpenCode в более зрелый, предсказуемый и полезный инструмент для реальной разработки.
Какую проблему он решает
Обычный сценарий работы с AI-агентом часто выглядит так:
- в каждом новом проекте приходится заново объяснять стек и правила;
- агент иногда слишком рано начинает писать код без исследования;
- баги чинятся без нормального анализа логов и диагностики;
- сложные задачи распадаются на бессвязные шаги;
- полезные выводы из прошлых ошибок нигде не сохраняются;
- глобальные настройки быстро превращаются в свалку стековых правил.
OpenCode Bootstrap решает это через разделение на два слоя:
- глобальный слой усиливает OpenCode везде;
- проектный слой создается отдельно для каждого репозитория и хранит уже конкретные правила, стек, workflow и накопленные знания.
За счет этого получается сохранить универсальность и при этом не терять проектную точность.
Что в нем реально ценного
Главная практическая польза инструмента не в том, что он “делает OpenCode умнее вообще”, а в том, что он делает его полезнее в ежедневной разработке.
Он дает:
- более сильный глобальный baseline для работы с кодом;
- единые workflow-команды вместо ручной импровизации;
- project bootstrap, который создает проектную специфику из реального репозитория и короткого диалога;
- project-specific rules, которые сохраняются в файлах проекта, а не исчезают вместе с историей чата;
- bounded loop для сложных итеративных задач;
- learning loop, в котором фиксы превращаются в новые проектные правила.
Иными словами, инструмент помогает не просто “генерировать код”, а выстраивать нормальную рабочую систему вокруг AI-агента.
Что именно улучшает глобальный слой
Глобальный слой OpenCode Bootstrap усиливает поведение агента в целом:
- улучшает model routing;
- добавляет удобные primary и subagents;
- подключает ограниченный, но полезный набор MCP;
- добавляет команды для explore / grounded / plan / implement / verify / fix / evolve / loop;
- усиливает debugging discipline;
- добавляет полезные tools вроде
tail_logиclipboard_image.
Важно, что этот слой не пытается зашить в себя правила Laravel, WordPress, Symfony или любого другого стека. Он остается универсальным.
Почему проектные правила не живут глобально
Это одно из самых важных решений в архитектуре.
Если в глобальный bootstrap зашивать правила по языкам, фреймворкам, версиям, тестовым стекам и локальным конвенциям, очень быстро получится тяжелая и плохо поддерживаемая конструкция. Она начнет мешать одним проектам ради удобства других.
Поэтому в инструменте реализована другая идея:
- глобальный слой дает общую интеллектуальную инфраструктуру;
- проектный слой генерируется отдельно внутри конкретного репозитория.
Это и дает баланс между универсальностью и точностью.
Как это работает в проекте
После установки bootstrap пользователь заходит в конкретный проект и запускает:
/ocb-project-init
Дальше агент:
- определяет корень текущего репозитория;
- показывает его пользователю;
- просит явное подтверждение перед записью;
- анализирует структуру проекта;
- задает точечные уточняющие вопросы;
- генерирует project-specific overlay.
В результате в проекте появляются артефакты в .opencode/project/, например:
PROJECT_PROFILE.jsonPROJECT_RULES.generated.mdLEARNED_RULES.generated.mdPLAN.mdRESEARCH.mdVERIFY.mdpatches/evolutions/loops/
Это очень важный момент: знания о проекте остаются в проекте, а не теряются вместе с одной удачной сессией.
Что такое bounded loop и зачем он нужен
Для сложных задач иногда недостаточно одного прохода “сделал и пошел дальше”. Нужен режим, где агент работает итеративно, но не уходит в бесконечную автономию.
Именно для этого добавлен /ocb-loop.
Идея простая:
- есть задача;
- есть критерии успеха;
- есть лимит итераций;
- есть сохраненное состояние;
- есть stop conditions.
Такой loop особенно полезен для:
- сложных рефакторингов;
- генерации и доведения спецификаций;
- задач, где нужен цикл produce -> verify -> refine;
- ситуаций, где важно уметь остановиться, продолжить позже и не потерять контекст.
Это делает работу агента более управляемой и менее хаотичной.
Что такое learning loop
Еще одна сильная часть инструмента — это связка /ocb-fix и /ocb-evolve.
Обычный агент чинит баг, и через неделю этот опыт уже ни на что не влияет. Здесь подход другой:
- баг фиксится на основе evidence-first debugging;
- после этого создается patch artifact;
- затем накопленные patch artifacts можно прогнать через
/ocb-evolve; - из них появляются новые project-specific learned rules.
Это значит, что инструмент постепенно начинает учитывать реальные болевые точки конкретного проекта, а не только абстрактные best practices.
Как им пользоваться на практике
Базовый сценарий выглядит так.
Установка:
git clone git@github.com:tikhomirov/opencode-bootstrap.git
cd opencode-bootstrap
./bootstrap.sh
Дальше работа в проекте:
cd /path/to/project
opencode
И затем внутри OpenCode:
/ocb-project-init
После initial bootstrap можно использовать рабочий цикл:
/ocb-explore
/ocb-grounded
/ocb-plan
/ocb-implement
/ocb-verify
/ocb-fix
/ocb-evolve
/ocb-loop
Это дает понятный и повторяемый процесс вместо случайного ручного промптинга.
Реальный пример использования
Представим проект на:
- PHP 8.4;
- Laravel 11;
- Livewire 3;
- Pest 3;
- Alpine.js;
- GitHub Actions;
- Docker.
Пользователь запускает /ocb-project-init, и агент:
- видит
composer.json; - видит
package.json; - находит
pest.phpили соответствующую тестовую структуру; - замечает
.github/workflows/; - понимает, что проект не пустой и часть стека уже можно определить автоматически.
После этого он задает только уточняющие вопросы, например:
- какие версии PHP реально являются целевыми;
- насколько строгий verification нужен;
- какие команды считать каноническими;
- насколько обязательны docs и quality gates;
- как именно здесь принято искать и чинить баги.
По итогам он пишет проектные правила. В следующих задачах OpenCode уже работает не как “универсальный агент вообще”, а как агент, который знает особенности именно этого проекта.
Например, при новой фиче он уже может учитывать:
- что тесты пишутся через Pest;
- что важны команды Composer и artisan;
- что нужно учитывать Livewire и Alpine;
- что проверка должна включать логи, тесты и CI-ориентированный verify flow.
Разница ощущается очень быстро: становится меньше повторных объяснений, меньше неуместных решений и меньше “сбрасывания контекста” между задачами.
В чем реальная польза для разработчика
Если совсем по-честному, то главный эффект не в том, что AI начинает писать код на 30% красивее. Главный эффект в другом:
- снижается число повторных объяснений;
- уменьшается хаос в работе с агентом;
- появляется воспроизводимость;
- знания о проекте начинают жить в репозитории;
- сложные задачи становятся управляемее;
- багфиксы начинают приносить долгосрочную пользу.
Для разработчика это означает более спокойную и зрелую работу с AI: меньше “магии”, больше реального инженерного инструмента.
Почему этот инструмент вообще стоит использовать
Потому что сам по себе сильный AI-агент — это еще не система разработки. Нужны правила, артефакты, workflow, верификация, аккуратная работа с контекстом и механизмы накопления знаний.
OpenCode Bootstrap как раз и превращает OpenCode из просто хорошего инструмента в более цельную рабочую среду.
Если коротко, его смысл такой:
- глобально усилить OpenCode;
- проектно адаптировать его под конкретный репозиторий;
- сделать взаимодействие с агентами умнее, безопаснее и удобнее;
- дать разработчику не набор промптов, а рабочую систему.
Пока инструмент проходит обкатку, и возможны всякие баги. Но он уже покзаал свою пользу, так что рекомендую попробовать его в деле.