# Lab 04: Оценить глубину модуля

## Цель

Научиться просить AI-агента оценивать модуль не по красоте структуры, а по глубине: интерфейс, hidden knowledge,
deletion test, leverage и locality.

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

Слабая просьба:

```text
Посмотри, нормальный ли у нас сервис скидок.
```

Проблема: агент может ответить общими словами: “код выглядит чисто”, “можно разбить на функции”, “добавим абстракцию”.
Вам нужна проверка по конкретным признакам глубины.

## Задание

Выберите модуль или кусок приложения: скидки, профиль пользователя, загрузку файла, отправку письма, авторизацию,
работу с провайдером или похожую часть.

Попросите агента:

1. назвать интерфейс модуля;
2. перечислить, какое знание модуль скрывает;
3. выполнить deletion test;
4. найти pass-through слои;
5. оценить leverage для callers;
6. оценить locality будущих изменений;
7. предложить один маленький шаг углубления.

## Хороший запрос агенту

```text
Оцени глубину модуля расчёта скидки.

Не начинай с рефакторинга. Сначала опиши:
- какой у модуля публичный интерфейс;
- какие правила он скрывает внутри;
- что должны знать callers, чтобы пользоваться им правильно.

Сделай deletion test:
- если удалить модуль, какие правила расползутся по вызывающим местам;
- какие части исчезнут без потери смысла;
- есть ли pass-through методы или слои.

Оцени leverage и locality:
- что callers получают за малое знание интерфейса;
- какие будущие изменения скидок можно будет сделать в одном месте;
- какие изменения всё еще расползаются.

После анализа предложи один маленький шаг, который углубит модуль без большого рефакторинга.
Проверь результат через публичное поведение, а не через внутренние helper-функции.
```

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

- В запросе есть интерфейс, а не только имя файла.
- Есть вопрос “что модуль скрывает”.
- Есть deletion test.
- Есть проверка pass-through прослоек.
- Есть критерии leverage и locality.
- Есть маленький следующий шаг, а не большой абстрактный рефакторинг.
