Антипаттерны запросов
семь способов потратить время впустую
Что это
Запросы, которые выглядят нормально и регулярно не работают. Каждый из них легко узнать по формулировке — и у каждого есть короткая замена.
Статья закрывает главу 3: если предыдущие пятнадцать говорили, как надо, то эта — как не надо, и почему именно.
Как выглядит в коде
1. «Сделай красиво»
Отрефактори этот модуль, сделай покрасивееКрасота не определена, поэтому ИИ подставит свою: другую архитектуру, другие имена, другой стиль. Дифф будет огромным, а поведение поедет.
Замена: назови конкретное изменение формы. «Разбей функцию на три»,
«вынеси повторяющийся блок», «переименуй d в user_data».
2. «Исправь всё»
Пройдись по файлу и исправь все проблемыПроблемы не названы, значит, ИИ будет их искать — и найдёт, даже если их нет (та же ловушка, что в ревью, статья 3.8). Получишь двадцать правок, из которых половина не нужна, а две что-то сломают.
Замена: сначала попроси список находок, прочитай его, выбери — и только потом правки.
3. «Ты ошибся»
Нет, ты ошибся. Исправь.Не сказано, в чём ошибка. ИИ согласится — он почти всегда соглашается — и изменит что-нибудь наугад. Иногда то, что работало.
Замена: факты вместо оценки. «Запустил, получил KeyError: main на строке
11. Ожидал ответ „Город не найден“».
4. «Почему не работает?»
Почему не работает?ИИ не видит ни запуска, ни ошибки, ни окружения. Он начнёт гадать и выдаст пять версий, из которых проверять придётся все.
Замена: шаблон из статьи 3.5 — что делал, что ожидал, что получил, трейсбек целиком.
5. Тот же запрос, но настойчивее
Я же сказал — БЕЗ внешних библиотек!!!Повтор с нажимом не добавляет информации. Если первый запрос был понят не так, второй такой же будет понят не так же.
Замена: переформулируй, а не повторяй. Назови конкретную библиотеку, которую он добавил, и чем её заменить. На длинной ветке — начни новую сессию (статья 5.4): иногда разговор уже «заражён» неверным контекстом, и чистый старт дешевле.
6. Задача из пяти задач
Добавь команду /stats, почини баг с часовыми поясами,
вынеси тексты в отдельный файл и напиши тестыЧетыре задачи в одном запросе дают один большой дифф, в котором не разобраться. Что-то сделано хорошо, что-то плохо, откатить по отдельности нельзя.
Замена: по одной. Принял — следующая. Это не медленнее: время уходит не на запросы, а на проверку, а проверять маленькими кусками быстрее.
7. Вежливость вместо содержания
Привет! Надеюсь, у тебя всё хорошо. Не мог бы ты, если тебе
не сложно, посмотреть мой код и, возможно, что-нибудь
подсказать? Буду очень благодарен!Вежливость не вредит, но и не помогает — а здесь она заняла место, где должны были быть файл, версия и вопрос. Та же беда с извинениями и долгими объяснениями, почему ты не разбираешься в теме.
Замена: сразу к делу. Общайся как хочешь, но следи, чтобы содержание в запросе всё-таки было.
Как сказать ИИ
Сводка: слева то, что хочется написать, справа — то, что работает.
| Антипаттерн | Замена |
|---|---|
| «сделай красиво» | назови конкретное изменение формы |
| «исправь всё» | сначала список находок, потом выбор |
| «ты ошибся» | факты: что запустил, что получил |
| «почему не работает?» | что делал · что ожидал · что получил |
| тот же запрос настойчивее | переформулируй или начни новую сессию |
| пять задач в одной | по одной, с проверкой между |
| вежливость вместо сути | файл, версия, вопрос |
Общее у всех семи одно: в запросе нет информации, которой у ИИ не было. Раздражение, повтор, вежливость и обобщения её не добавляют — добавляют только факты, имена файлов, версии, примеры и критерии.
На что смотреть
Разговор пошёл по кругу. Третья попытка объяснить одно и то же — сигнал остановиться. Либо задача сформулирована неясно, либо в контексте сессии накопилось лишнее. Новая сессия с нормально сформулированной задачей почти всегда быстрее.
Хочется поспорить. Спор с ИИ — потраченное время: он уступит, а решение от этого не улучшится. Вместо спора — факты и переформулировка.
Запрос длиннее, чем задача. Три абзаца на правку одной строки означают, что ты объясняешь не задачу, а своё отношение к ней.
Шпаргалка
«Сделай красиво», «исправь всё», «ты ошибся» — в запросе нет информации.
Согласие ИИ не означает, что ошибка была.
Повтор с нажимом не работает: переформулируй.
Пять задач в одном запросе дают один непроверяемый дифф.
Пошло по кругу на третьей попытке — начинай новую сессию.
Спорить бесполезно: он уступит, решение не улучшится.