Кодовый агент садится за работу, не помня ничего. Ты объясняешь ему проект, он делает хорошую работу, сессия кончается. Следующая начинается с нуля. Обычная заплатка тут — окно контекста побольше, но она просто отодвигает стену. Когда контекст заполняется, он сворачивается в саммари, а саммари держит решения и теряет причины. «Выбрали A» границу переживает. «Отвергли B, потому что померили и вышло хуже» не переживает. И следующая сессия предлагает B заново, а ты платишь за тот же эксперимент второй раз.

Вторую половину этой задачи я и попробовал закрыть. floppy — плагин для Claude Code и Cursor. Он даёт агенту две вещи: память, которая лежит в твоём репозитории, и два обряда, которые ею пользуются.

Почему репозиторий

Инструменты памяти обычно уносят её куда-то ещё: в векторную базу, в облачный сервис, в каталог домашней папки. Для всего, что описывает код, место выбрано неверно, и вот по каким причинам.

Она не ездит. Ни вторая машина, ни коллега, ни CI не получат её по git clone.

Её нельзя отревьюить. «Лимит ретраев равен трём, потому что апстрим режет на четырёх» — это утверждение о коде. Лежит вне репозитория, значит ни один пул-реквест не покажет, как оно менялось, и никто не заметит момент, когда оно перестало быть правдой.

Она протухает тихо. Код уезжает вперёд, память остаётся, и нет диффа, на котором расхождение стало бы видно.

Память floppy — это markdown-файлы. Git держит их рядом с кодом, который они описывают. Вторая машина забирает их одним клоном. Заметка соврала — правишь её обычным коммитом, как всё остальное.

Два обряда

start отвечает на вопрос «где мы остановились?». Он читает файл текущего состояния, индекс памяти и заметки по теме задачи, а потом смотрит на живой репозиторий и вслух говорит, если документы разошлись с реальностью. Последнее важнее, чем кажется: файл статуса переписывается на месте и никак не выдаёт свой возраст, поэтому протухший документ выглядит точно так же, как свежий.

wrap отвечает на вопрос «что мы узнали?». Записывает находки сессии в память и коммитит.

Ни тот, ни другой не просят агента быть внимательным. Это скрипты с проверками: проверка списка файлов, линтер памяти и лок сессии, чтобы две сессии не затёрли друг друга.

Чего он не делает

Умнее агент не станет, и читать за ним всё равно придётся. Память, которую никто не правит, вырождается в уверенный источник протухших фактов, а это хуже, чем никакой памяти: она звучит авторитетно.

Требования я держал маленькими нарочно: bash, git и git-репозиторий. Вне репозитория любая команда останавливается с ошибкой, а не пытается угадать. Ни демона, ни базы, ни сетевого вызова, который нельзя прочитать глазами в исходниках.

Попробовать так:

claude plugin marketplace add spscream/ai-floppy
claude plugin install floppy@floppy

Дальше — скилл init в том репозитории, который агент должен помнить.