🔸 В первом посте говорил: harness (обвязка) — это всё вокруг модели, что заставляет её работать как инструмент, а не как чат. Сегодня — самое скучное и одновременно самое важное правило этой обвязки.
🔹 Walkinglabs формулируют так:
«Информации, которой нет в репозитории, для агента не существует»
> — walkinglabs, лекция 3. Внизу поста ссылка на материал
🔸 Это сильнее звучит, чем «должна быть в репозитории». Не «надо бы записать», а — для модели не существует.
Знание у тебя в голове? Для агента его нет.
В рабочем чате? Нет.
В комментариях к правке в код? Тоже нет.
🔸 Совсем недавно ForgePlan хранил знания в hindsight. Markdown-файлы были экспортом из неё. Звучало логично: база быстрая, поиск по смыслу шустрый, файлы — «для красоты и для людей».
🔸 Это была ошибка. И вот почему.
Агент открывает репозиторий в новом окружении. Видит markdown-файлы, пробует с ними работать. А состояния из базы данных у него под рукой нет — её нужно поднимать отдельно, синхронизировать, давать доступ. В одной сессии агент видит одно, в другой — другое. Решения «дрейфуют». Через неделю спорим с моделью о том, что обсудили месяц назад.
🔸 Затем инвертировали. Markdown стал источником правды, база — производным кэшем. Команда
forgeplan scan-import собирает базу из markdown. Если база упадёт — её восстановят из обычных текстовых файлов без потерь.🔸 Звучит как косметика. На деле — переход от «у нас где-то записаны решения» к «репозиторий — единый источник правды о проекте».
Разница огромная. В первой формулировке решения существуют, пока живёт инфраструктура. Во второй — пока живёт сам репозиторий. Сделал
git clone — забрал не только код, но и историю решений вместе с ним.🔸 После инверсии пришлось закрывать большой долг. Нашли 32 места в коде, где база писалась напрямую, минуя markdown. Четыре раунда жёсткого разбора, 56 найденных проблем. На уровне языка поставили блок: эти функции теперь приватные, никто посторонний их вызвать не сможет. Отдельный тест следит, чтобы блок не пропал.
🔸 Урок выходит за пределы ForgePlan. Если делаешь обвязку под AI-агента и думаешь «база, Slack, Notion удобнее, markdown как-нибудь потом» — ты строишь то, что в новой сессии перестаёт работать. Агент должен увидеть состояние проекта по одному
git clone. Иначе через две недели получишь три версии правды и спор с моделью на пустом месте.🔹 Это WalkingLabs, лекция 3 — со шрамами от четырёх раундов разбора.
https://walkinglabs.github.io/learn-harness-engineering/ru/
#harness #ai
