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

33 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: feedback-no-unprompted-scope
description: Не делать лишних действий сверх того, что попросили — не выносить абстракции "на будущее", не додумывать причины
metadata:
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-элемент — вывод: правило касается не только рефакторинга/абстракций, а вообще любого добавления
сверх того, что обсуждалось (лишняя кнопка/поле формы/пункт меню — тот же случай, что и лишний метод).