Bicycle/.claude/memory/feedback_no_unprompted_scope.md
2026-08-11 22:35:26 +03:00

3.9 KiB
Raw Permalink Blame History

name description metadata
feedback-no-unprompted-scope Не делать лишних действий сверх того, что попросили — не выносить абстракции "на будущее", не додумывать причины
type
feedback

Пользователь прямо указал: «ты делаешь много лишних действий которые тебя не просят». Конкретный кейс — при рефакторинге Controller::render()/renderContent() (см. project-bicycle-overview) я вынес расчёт каталога view в отдельный приватный метод contentDir() без реальной причины (вызывался из одного места) — просто рефлекс «похожая логика — надо вынести», а не ответ на реальную потребность. Пользователь спросил «мы где-то ещё будем использовать contentDir()?» не как команду переделать, а как проверочный вопрос — заподозрил лишнюю абстракцию и хотел понять мою логику.

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

How to apply: Не выносить код в отдельный метод/абстракцию, если на это нет явного запроса или явного текущего переиспользования (2+ реальных вызова прямо сейчас). Если сомневаюсь, нужна ли абстракция — оставлять код инлайн, как было. Это не противоречит feedback-less-confirmation: там речь про паузы-подтверждения на уже согласованных, обратимых шагах; здесь — про то, чтобы вообще не расширять объём работы (лишние методы, лишний рефакторинг, лишние файлы) сверх того, что запросили. Если вопрос пользователя похож на «а мы это ещё где-то используем/будем использовать?» — это, как правило, не команда действовать, а проверка моей логики; сначала ответить прямо, не хвататься за редактирование кода.

Второй кейс (2026-08-12, реализация логина/2FA): на шаге ввода кода из письма сам добавил кнопку «Назад ко входу» (плюс обработку back в LoginController) — этого никто не просил, ни в обсуждении 2FA, ни в макете дашборда. Пользователь: «просто убери эта кнопка не нужна, она же ни где не пишется ты сам это придумал?». Тот же паттерн, что и с contentDir(), но уже не про код-абстракцию, а про UI-элемент — вывод: правило касается не только рефакторинга/абстракций, а вообще любого добавления сверх того, что обсуждалось (лишняя кнопка/поле формы/пункт меню — тот же случай, что и лишний метод).