Bicycle/.claude/memory/feedback_no_premature_implementation.md
Egor Isaev cff643ebc5 dev
2026-08-12 17:08:46 +03:00

5.3 KiB
Raw Permalink Blame History

name description metadata
feedback-no-premature-implementation Не трогать schema.sql/код, пока обсуждение фичи не согласовано целиком — фиксировать решения только в план-файле до явного запроса реализовать
type
feedback

Пользователь прямо сказал: «ты же любишь в пекло лезть не обсудив сначала» — опасение, что при обсуждении фичи (пример — разбивка операции на статьи, см. бюджет_текущий_план) я уже мог незаметно поправить schema.sql или начать писать код, не дождавшись, пока обсуждение реально закончится и будет явное «давай теперь пиши».

Why: Обсуждение бюджета идёт по частям, решения по одной фиче иногда меняются на лету (пример — формульные статьи: сначала предполагалась дочерняя таблица transaction_items/сумма нескольких источников дохода, потом это отклонили). Если параллельно с обсуждением редактировать schema.sql или код, придётся откатывать реализацию под каждый разворот мысли — то же самое хуже: изменения в реальной схеме/коде физически труднее откатить незаметно, чем строчку в план-файле.

How to apply: Пока фича обсуждается — фиксировать решения только в .claude/memory/бюджет_текущий_план.md (план-файл, не код). Не трогать schema.sql, App/Repositories/*, контроллеры и т.п. под эту фичу, пока пользователь явно не попросит начать реализацию (не путать с уже завершённым слоем БД/фреймворка — там правки кода это часть текущей явно запрошенной задачи, речь именно про фичу «Бюджет», которая всё ещё на стадии обсуждения). Если непонятно, закончилось ли обсуждение — переспросить прямо, не действовать по умолчанию.

Второй кейс (2026-08-12, статьи/бюджет по месяцам): план (CategoriesController/BudgetsController и т.д.) был согласован через ExitPlanMode («User has approved your plan. You can now start coding.»), но следующим сообщением пользователь попросил только «обнови память нашего разговора запомни где закончали» — я вместо этого сразу начал писать код (CategoryRepository::findActiveDuplicate() и т.п.). Пользователь резко возмутился («нафига ты программируешь», «бля нухуя»). Затем при откате я тоже полез редактировать файл, хотя просили только «память обнови просто и всё».

Why: Одобрение плана через ExitPlanMode — это разрешение начать реализацию в тот момент, а не постоянный зелёный свет, который переживает любое следующее сообщение. Если следующее сообщение пользователя — конкретная более узкая просьба («обнови память», «просто»), она отменяет собой более широкий контекст одобренного плана для этого хода; план никуда не делся и остаётся выполнимым позже, но не сейчас и не как «раз уж всё равно тут».

How to apply: Каждое сообщение выполнять буквально по объёму, даже если чуть раньше был одобрен большой план и по логике «продолжения работы» напрашивается начать кодить. Если просьба — «просто обнови память и всё» (особенно с усилением «просто»/«и всё»/раздражённым тоном) — трогать только файлы памяти (.claude/memory/*), не открывать/не редактировать код вообще, включая «откат» случайно сделанных правок — откат тоже правка кода, о которой не просили; если код уже случайно изменён, спросить, откатывать ли, а не делать это самостоятельно.