Техническое задание (ТЗ) — документ, в котором записано, что нужно сделать, в каких границах и как проверить, что работа готова. Ниже — шаблон ТЗ на разработку сайта, веб-сервиса или отдельной функции и пример его заполнения. Шаблон подходит и для исполнителя-человека, и для ИИ-агента вроде Cursor или Claude Code: и тем и другим нужны одни и те же вещи — цель, границы и проверяемый результат.
Если нужен процесс (с чего начать, какие вопросы задать заказчику, как проверить готовое ТЗ), читайте как написать ТЗ. Если ТЗ сразу пойдёт кодинг-агенту, есть короткая версия для нейросети.
Из чего состоит ТЗ на разработку#
| Раздел | На какой вопрос отвечает |
|---|---|
| 1. Общие сведения | Что за проект, кто заказчик, кто исполнитель, сроки |
| 2. Цель | Зачем это делаем и какую проблему решаем |
| 3. Пользователи и сценарии | Кто пользуется и что делает по шагам |
| 4. Функции: входит / не входит | Границы работы |
| 5. Данные | Какие сущности хранятся и откуда берутся |
| 6. Интерфейс | Какие экраны и что на каждом |
| 7. Технические требования | Стек, хостинг, интеграции, безопасность |
| 8. Этапы | В каком порядке делаем и что сдаём на каждом |
| 9. Критерии приёмки | Как проверить, что всё готово |
| 10. Открытые вопросы | Что ещё не решено |
Разделы 1 и 8 нужны в первую очередь людям: договориться о сроках и оплате. Разделы 4, 7 и 9 особенно важны для ИИ-агента: без них он додумывает сам.
Шаблон ТЗ: скопируйте и заполните#
В квадратных скобках — что заменить. Строки с > — подсказки, их можно удалить.
# Техническое задание: [название проекта]
## 1. Общие сведения
- Проект: [название, одна фраза о нём]
- Заказчик: [имя / компания]
- Исполнитель: [имя / студия / ИИ-агент под контролем разработчика]
- Версия ТЗ и дата: [1.0, дд.мм.гггг]
- Срок: [дата или «по этапам», см. раздел 8]
## 2. Цель
> Одна-три фразы. Что появится и что изменится для бизнеса или пользователя.
[...]
## 3. Пользователи и сценарии
> Роли и что каждая делает по шагам. Сценарий = действие → результат.
Роль [название]:
- [действие] → [что видит или получает]
## 4. Функции
Входит:
- [функция]
Не входит (в этой версии):
- [что не делаем, даже если кажется логичным]
## 5. Данные
- [Сущность]: [поля, обязательные отмечены *]
- Откуда берутся: [ввод пользователя / импорт / API]
- Где хранятся: [база, файл, сторонний сервис]
## 6. Интерфейс
> Экраны по порядку. Для каждого: содержимое, состояния (пусто, ошибка, загрузка), мобильная версия.
1. [Экран]: [содержимое]
## 7. Технические требования
- Стек: [язык, фреймворк, база]
- Хостинг и домен: [...]
- Интеграции: [платёжка, почта, мессенджер, CRM]
- Безопасность: [доступы, хранение паролей, ключи только в переменных окружения]
- Ограничения: [без новых зависимостей без согласования / бюджет на сервисы]
## 8. Этапы
| № | Этап | Результат этапа | Срок |
|---|---|---|---|
| 1 | [этап] | [что сдаётся] | [дата] |
## 9. Критерии приёмки
> Только проверяемое: сценарий, команда, видимый результат.
- [сценарий]: [ожидаемый результат]
## 10. Открытые вопросы
- [вопрос] — кто решает: [...], до: [дата]
Пример заполненного ТЗ#
Проект для примера: сервис онлайн-записи к одному мастеру (маникюр, барбер, репетитор). Имена, сроки и сервисы условные.
# Техническое задание: онлайн-запись к мастеру
## 1. Общие сведения
- Проект: страница, где клиент сам выбирает услугу и свободное время.
- Заказчик: частный мастер, работает один.
- Исполнитель: разработчик + кодинг-агент (Cursor).
- Версия ТЗ и дата: 1.0, 22.10.2026
- Срок: по этапам, см. раздел 8.
## 2. Цель
Клиенты записываются сами, без переписки в мессенджере. Мастер видит
все записи в одном списке и получает уведомление о новой.
## 3. Пользователи и сценарии
Клиент:
- открывает страницу → видит список услуг с ценой и длительностью;
- выбирает услугу → видит свободные слоты на 14 дней вперёд;
- выбирает слот, вводит имя и телефон → видит «Вы записаны на [дата, время]».
Мастер:
- входит по паролю → видит записи на неделю, может отменить запись;
- задаёт рабочие часы и выходные → слоты пересчитываются.
## 4. Функции
Входит:
- каталог услуг (название, цена, длительность);
- расчёт свободных слотов по рабочим часам и уже занятым записям;
- форма записи, уведомление мастеру в Telegram;
- кабинет мастера: список записей, отмена, рабочие часы.
Не входит (в этой версии):
- онлайн-оплата и предоплата;
- несколько мастеров и филиалы;
- SMS-напоминания клиентам;
- регистрация клиентов.
## 5. Данные
- Услуга: название*, цена*, длительность в минутах*.
- Запись: услуга*, дата и время начала*, имя*, телефон*, статус (активна / отменена).
- Рабочие часы: день недели, начало, конец; список выходных дат.
- Хранение: SQLite на сервере.
## 6. Интерфейс
1. Главная: имя мастера, фото, список услуг.
2. Выбор времени: календарь на 14 дней, слоты кнопками; если слотов нет —
«На эти дни всё занято».
3. Форма: имя, телефон, кнопка «Записаться»; ошибки под полями.
4. Подтверждение: дата, время, услуга, адрес.
5. Кабинет мастера: таблица записей, кнопка «Отменить», настройки часов.
Всё работает на телефоне от 360 px.
## 7. Технические требования
- Стек: Next.js, SQLite, без отдельного бэкенда.
- Хостинг: VPS заказчика.
- Интеграции: Telegram-бот для уведомлений, токен в переменной окружения.
- Безопасность: пароль мастера хранится в виде хеша; телефоны клиентов
не видны без входа.
- Ограничения: новые npm-пакеты — только после согласования.
## 8. Этапы
| № | Этап | Результат этапа | Срок |
|---|---|---|---|
| 1 | Услуги и слоты | Клиент видит услуги и свободное время | неделя 1 |
| 2 | Запись | Запись сохраняется, слот пропадает | неделя 1 |
| 3 | Уведомления | Мастер получает сообщение в Telegram | неделя 2 |
| 4 | Кабинет мастера | Список, отмена, рабочие часы | неделя 2 |
## 9. Критерии приёмки
- Два клиента не могут записаться на одно время: второй видит «Время уже занято».
- После отмены записи слот снова доступен.
- Слоты не выходят за рабочие часы и не попадают на выходные.
- Через минуту после записи в Telegram мастера приходит сообщение с услугой,
временем и телефоном.
- Сборка проходит без ошибок, в коде нет токенов и паролей.
## 10. Открытые вопросы
- Нужен ли перерыв между записями? — решает заказчик, до начала этапа 1.
Что стоит заметить в примере:
- «Не входит» заполнен конкретно. Онлайн-оплата и несколько мастеров — то, что исполнитель (и тем более агент) часто «добавляет по умолчанию».
- Критерии приёмки проверяются за минуты. Двойная запись, отмена, выходные — это сценарии, а не «удобно и надёжно».
- Открытые вопросы вынесены отдельно. Лучше честно записать, что не решено, чем оставить дыру, которую кто-то заполнит сам.
Короткие образцы под другие задачи#
Не каждой работе нужны все десять разделов. Для небольших задач достаточно четырёх-пяти.
Доработка существующего проекта:
# ТЗ: экспорт заказов в CSV
Цель: менеджер выгружает заказы за период в Excel.
Входит: кнопка «Экспорт» на странице заказов, выбор дат, файл CSV (UTF-8, разделитель «;»).
Не входит: другие форматы, экспорт по расписанию.
Затронуто: страница заказов, API заказов. Схему базы не меняем.
Приёмка: файл за октябрь открывается в Excel без «кракозябр», строк столько же, сколько заказов в списке.
Исправление ошибки:
# ТЗ: форма не отправляется на iPhone
Что происходит: в Safari на iOS кнопка «Отправить» не реагирует.
Ожидается: заявка уходит, как в Chrome.
Как воспроизвести: [шаги, версия iOS].
Не трогать: дизайн формы, другие страницы.
Приёмка: заявка из Safari на iOS приходит; в Chrome поведение не изменилось.
Готовые ТЗ под конкретные задачи — в разделе задачи: сайт и Telegram-бот.
Как использовать шаблон с ИИ-агентом#
- Сохраните ТЗ файлом в проект, например
docs/spec.md. Так его можно подключать в каждом новом чате (в Cursor — через@), и детали не теряются в длинной переписке. - Первым промтом попросите агента прочитать ТЗ, задать вопросы и предложить план — без кода. В Cursor и Claude Code для этого есть режим плана.
- Отдавайте этапы из раздела 8 по одному и после каждого проверяйте критерии из раздела 9.
Так же устроены спецификации в инструментах для разработки с ИИ: в Kiro у каждой спецификации есть файлы требований с критериями приёмки, дизайна и списка задач, в GitHub Spec Kit работа идёт от спецификации к плану и задачам. Разделы «функции», «технические требования» и «этапы» нашего шаблона примерно соответствуют этим трём шагам.
Не хотите заполнять вручную — генератор ТЗ соберёт документ по полям.
Частые ошибки в образцах ТЗ из интернета#
- Скопирован ГОСТ целиком для лендинга. Половина разделов пустая, а главного — критериев приёмки — нет.
- Требования без чисел. «Быстро загружается», «современный дизайн». Замените на проверяемое или уберите.
- Нет раздела «не входит». Споры о том, входила ли админка, начинаются именно здесь.
- ТЗ описывает решение, а не задачу. «Сделать таблицу на React» вместо «менеджер видит заказы за период». Решение пусть предлагает исполнитель, если стек не принципиален.
- ТЗ не обновляется. Договорились о новом в чате — внесите в документ и поднимите версию.