# Lab 02: Из тактической просьбы в стратегическую

## Цель

Научиться переписывать просьбу к AI-агенту так, чтобы она не только закрывала задачу, но и защищала дизайн.

## Мини-пример

Тактическая просьба:

```text
Добавь поле "роль пользователя" в профиль и почини всё, что сломается.
```

Проблема: агент может быстро раскидать `role` по форме, API, базе, проверкам и UI, но оставить знание о ролях размазанным по проекту.

## Задание

Перепишите просьбу так, чтобы агент:

1. нашёл, где сейчас живёт понятие пользователя;
2. предложил один модуль или интерфейс для работы с ролью;
3. спрятал детали хранения роли внутри реализации;
4. добавил критерии приёмки;
5. проверил поведение через публичный интерфейс.

## Хороший ответ

```text
Нужно добавить роль пользователя в профиль.

Сначала найди, где в проекте сейчас живёт понятие User и какие модули читают/меняют профиль.
Предложи минимальный интерфейс для работы с ролью пользователя: что внешний код должен знать,
какие значения роли допустимы, какие ошибки возможны.

Не размазывай проверки роли по UI/API/БД. Спрячь правила роли внутри одного модуля или явно объясни,
почему это невозможно в текущей структуре.

Критерии приёмки:
- профиль показывает роль пользователя;
- роль сохраняется и читается через один выбранный интерфейс;
- недопустимая роль возвращает понятную ошибку;
- существующее поведение профиля не ломается;
- тесты проверяют поведение через публичный интерфейс, а не внутренние функции.
```

## Самопроверка

- В просьбе есть цель, а не только команда "сделай".
- Есть вопрос о текущей структуре.
- Есть требование к интерфейсу.
- Есть требование спрятать правила.
- Есть критерии приёмки.
- Есть тестовая поверхность.

