Преждевременная спецификация
Также известен как
Premature Specification, «решение вместо задачи».
Контекст
Вы сразу указываете функции, библиотеку и порядок вызовов, хотя ещё не объяснили цель задачи.
Проблема
Агент получает готовый план и начинает выполнять его. Без описания проблемы ему трудно оценить, решает ли выбранный механизм исходную задачу.
Почему так делают
- Подробная инструкция создаёт ощущение контроля над результатом.
- Продиктовать уже придуманный план кажется быстрее, чем объяснить цель.
- Вы переносите в запрос свой первый вариант решения без сравнения альтернатив.
Последствия
- ➖ Агенту труднее предложить более простой подход, если реализация уже предписана.
- ➖ Фиксируется преждевременное, часто неоптимальное решение; потом вы отлаживаете собственные ранние допущения.
- ➖ Агент улучшает указанный механизм, даже если исходная задача требует другого решения.
- ➖ Труднее заметить, что задача вообще сформулирована неверно.
Признаки
- В промпте больше «как», чем «что» и «зачем».
- Перечислены конкретные функции/библиотеки/шаги без обоснования.
- Названы приёмы реализации раньше, чем описан желаемый результат.
Как лучше
Сначала опишите цель, ограничения и критерии готовности. Попросите агента предложить подход. Конкретную реализацию задавайте там, где она следует из обязательного контракта или требования совместимости, и объясняйте это ограничение.
Пример
Было
Добавь дебаунс на 300 мс через
lodash.debounceв обработчикеonChangeполя поиска.
Стало
Поле поиска шлёт запрос на каждый символ и перегружает бэкенд. Нужно, чтобы запрос уходил, когда пользователь закончил печатать
Связанные паттерны и антипаттерны
- Четыре фазы позволяет исследовать задачу перед выбором реализации.