Фундаментальное различие между человеческими и ИИ-спецификациями
При работе с искусственным интеллектом для создания спецификаций продукта критически важно осознавать принципиальную разницу между тем, как мы коммуницируем с людьми, и как следует коммуницировать с ИИ. Эта разница фундаментальна и требует полного переосмысления подхода к написанию требований.
Денис и Алмас:
«ИИ не полностью понимает вас, и вам нужно давать ему четкие пошаговые инструкции, как будто он имбецил, но есть одно отличие – сколько это стоит – там 20 долларов в месяц, в отличие от ППШ за 5000 долларов в месяц».
Спецификации для человеческих команд
- Контекстуальность. Люди могут понимать неявный контекст, профессиональный жаргон и отраслевые стандарты, даже если они не указаны явно.
- Адаптивность. Человеческие команды могут адаптироваться к изменениям и интерпретировать неоднозначные инструкции на основе опыта.
- Проактивность. Опытные разработчики часто предвосхищают проблемы и предлагают решения, которых нет в спецификации.
- Коммуникация. Возможность задавать уточняющие вопросы в реальном времени и немедленно прояснять неоднозначности.
Спецификации для ИИ
- Буквальность. ИИ интерпретирует инструкции дословно, без понимания контекста.
- Детализация. Требуется максимально точное описание всех аспектов, исключающее двусмысленность.
- Структурированность. ИИ работает лучше с логически разбитой информацией.
- Полнота. Каждое требование должно быть прописано явно, без подразумеваемых вещей.
Денис и Алмас:
«Если вы даете слишком общие инструкции, типа "напиши мне клон Slack", это может повернуть не в ту сторону. Думаю, те из вас, кто пробовали Cursor или Level Zero, понимают, о чем я говорю – это может пойти в другом направлении от вашего исходного видения».
Пример различий в формулировке требований:
Для человека:
Реализовать страницу аутентификации с возможностью входа через социальные сети и восстановления пароля.
Для Искусственного Интеллекта
Создать страницу аутентификации со следующими элементами:
- Поле ввода email (обязательное, с валидацией формата email)
- Сообщение об ошибке при невалидном формате: "Пожалуйста, введите корректный email".
- Подсветка поля красной рамкой при ошибке.
- Автоматическое удаление пробелов в начале и конце.
- Поле ввода пароля (обязательное, минимум 8 символов)
- Тип поля: password (скрытые символы).
- Индикатор сложности пароля (слабый/средний/сильный).
- Кнопка переключения видимости пароля.
- Сообщение об ошибке при недостаточной длине: "Пароль должен содержать не менее 8 символов".
- Кнопка "Войти" (становится активной только при заполнении обоих полей)
- Неактивное состояние: серый цвет, не кликабельна.
- Активное состояние: синий цвет (#1E88E5), кликабельна.
- При нажатии: анимация загрузки, блокировка повторного нажатия.
- Ссылка "Забыли пароль?" (при клике перенаправляет на страницу восстановления пароля)
- Расположение: под кнопкой "Войти".
- URL страницы восстановления: /reset-password.
- Передаваемые параметры: email (если был введен).
- Кнопки входа через социальные сети:
- Facebook (синий цвет #4267B2, логотип Facebook).
- Google (белый цвет #FFFFFF с серой рамкой #E0E0E0, логотип Google).
- VK (голубой цвет #4C75A3, логотип VK).
- Расположение: под основной формой с отступом 24px.
- Размер кнопок: 44px в высоту, ширина 100%.
- При успешной аутентификации:
- Сохранять JWT токен в localStorage.
- Перенаправлять пользователя на главную страницу (/).
- Устанавливать куки с идентификатором сессии.
- При ошибке аутентификации:
- Показывать сообщение об ошибке под формой: "Неверный email или пароль".
- Сохранять введенный email в поле.
- Очищать поле пароля.
- Фокус на поле пароля.