45 lines
5.3 KiB
Markdown
45 lines
5.3 KiB
Markdown
---
|
||
name: feedback-no-premature-implementation
|
||
description: Не трогать schema.sql/код, пока обсуждение фичи не согласовано целиком — фиксировать решения только в план-файле до явного запроса реализовать
|
||
metadata:
|
||
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/*`), не открывать/не редактировать код вообще, включая «откат»
|
||
случайно сделанных правок — откат тоже правка кода, о которой не просили; если код уже случайно
|
||
изменён, спросить, откатывать ли, а не делать это самостоятельно.
|