
Пять промтов, которые я держу под рукой в каждом проекте. Без них ИИ-ассистент стабильно спотыкается на одних и тех же местах: чинит то, что не сломано, и пишет код раньше, чем понял задачу. Забирайте бесплатно, каждый промт в блоке с кнопкой «Скопировать».
Это пять промтов, которые я прогоняю в каждом проекте. Они не про то, как написать функцию, — они про дисциплину вокруг кода: не чинить недоказанный баг, не говорить «готово» без проверки, не заканчивать ход без честной рефлексии, не писать код, не продумав края, и не выпускать текст без вычитки.
Каждый промт лежит в чёрном блоке ниже — кнопка «Скопировать» в правом верхнем углу берёт его целиком. Подставляйте свою задачу и отдавайте модели.
Зачем: Самые дорогие правки — по ненайденному багу: меняешь код под догадку, симптом остаётся, появляется новый. Промт заставляет сначала доказать, что баг есть.
Прежде чем чинить баг, докажи что он существует. Сформулируй: конкретный вход → ожидаемое поведение → реально наблюдаемое поведение. Воспроизведи (тест, лог, шаги в браузере, реальный вызов). Без воспроизведения это не баг, а гипотеза — её сначала проверяют, а не «исправляют». Запрещено: менять код под догадку о причине, не подтвердив симптом. После фикса — то же воспроизведение должно показать, что симптом ушёл, и что не появился новый.
Зачем: «Скомпилировалось» — не «работает». Промт прогоняет результат через гейт: регрессия, реальный smoke, обратная совместимость, без заглушек вместо данных.
Перед тем как сказать «готово», пройди гейт и зафиксируй результат каждого пункта с файл:строка: Регрессия: не сломал ли существующее поведение и контракты (входы/выходы потребителей)? Live-smoke: typecheck и unit — НЕ доказательство. UI — клик в браузере; mutation — реальный API-вызов; миграция — migrate + DESCRIBE; интеграция — реальный send/receive. Side effects, обратная совместимость (миграции/flags), mock-audit (не осталось ли заглушек вместо реальных данных). Если live-smoke физически не сделать — скажи об этом ЯВНО, не выдавай «должно работать» за «работает».
Зачем: Без обратной связи модель повторяет ошибки. Промт требует честного разбора: что стало лучше, не взято ли первое попавшееся, что осталось незакрытым.
В каждом ответе с реальной работой заверши рефлексией (4–7 строк), честно: Что делал и как было → как стало. Точно ли это наилучшее из известных решений, или взял первое пришедшее? Был ли «код ради кода» / drive-by, который надо откатить? Решена ли исходная проблема целиком, или осталось незакрытое (тогда — строка в backlog с якорем). Что из этого — новое правило/урок? Если да — обнови нужный .md и журнал. Рефлексия без самокритики бессмысленна. Если всё «идеально» — ты её не сделал.
Зачем: Большая часть переделок — это края, о которых не подумали заранее. Найти их в тексте дешевле, чем в проде. Промт проходит по краям до кода.
До первой строки кода прогони задачу по списку и ответь по каждому пункту конкретно, не «учтём»: Пустые и отсутствующие данные: null, пустой список, не пришёл ответ. Объём ×100: что с памятью, запросами, временем при росте входа в сто раз. Гонки и параллельные вызовы: что если та же операция придёт дважды одновременно. Частичный сбой на середине: половина записалась, внешний вызов упал — что с консистентностью. Обратная совместимость: старые данные, старые клиенты, уже выданные ссылки. Где решение неочевидно — скажи прямо и предложи варианты, не выдумывай уверенность.
Зачем: Текст, который видит пользователь, выдаёт происхождение хуже всего. Промт делает вычитку отдельным шагом, а не «заодно».
Любой текст, который увидит конечный пользователь (лендинг, тарифы, юр-разделы, письма, уведомления, тосты, ошибки, мета-теги), перед прод проходит ручную вычитку — отдельным явным шагом, не «заодно»: Язык по умолчанию — русский. Английский только для технических токенов (имена файлов, GraphQL-поля, env, HTTP-методы). Убрать AI-штампы («в современном мире», «инновационный», «не только…, но и…»), маркетинговые клише, симметричные перечисления, эмодзи-украшения, лишние усложнения. Никаких стартер-плейсхолдеров (Submit, Loading..., Lorem ipsum, John Doe) — заменить при первом касании. Сверить с инженерным голосом владельца: сухо, по делу, без пафоса. Без явного «прошёл вычитку» текст в прод не уходит.
Связка даёт цепочку: доказанный баг → проверенное «готово» → честная рефлексия → продуманные края → вычитанный текст. Каждый промт закрывает конкретный способ потерять время — поэтому я и держу их под рукой.
— Дмитрий Фоменко