Модуль 02 — Практика: контекст под контролем
Время: 160 минут · Артефакт: labs/02-context/ (AGENTS.md + отчёт)
Задание 1. Написать AGENTS.md (40 мин)
Возьмите свой учебный проект (или ~/edu/sandbox).
- Скопируйте шаблон:
templates/AGENTS.md→<проект>/AGENTS.md. - Заполните: стек, команды, конвенции, запреты.
- Проверьте, что каждая команда действительно работает:
pytest -q # или ваша команда тестов
ruff check .
Приёмка:
- Все команды из AGENTS.md запускаются без ошибок.
- В файле нет общих слов («пишите хороший код») — только проверяемые правила.
- Не больше 40 строк.
Задание 2. Эффект AGENTS.md (30 мин)
Выполните одну и ту же задачу дважды в новых сессиях:
A) без AGENTS.md (временно переименуйте файл)
B) с AGENTS.md
Задача:
Добавь функцию, которая считает сумму чисел из списка строк,
пропуская нечисловые значения. Напиши тесты.
Записать в отчёт: | | A (без) | B (с) | | --- | --- | --- | | стиль совпал с проектом | | | | использован правильный тест-фреймворк | | | | число итераций | | | | стоимость сессии | | |
Приёмка: есть вывод, в котором видна хотя бы одна разница.
Задание 3. Ссылки вместо пересказа (25 мин)
Найдите в проекте модуль на 200+ строк. Сравните два запроса:
Плохо: "У меня есть модуль платежей, он делает много всего,
там есть функции для расчёта, поправь округление"
Хорошо: "В src/payments/calc.py функция round_amount округляет
до 2 знаков. Нужно банковское округление (ROUND_HALF_EVEN). Поправь и добавь тест."
Записать: какой запрос дал более точный дифф, сколько токенов потрачено.
Задание 4. Деградация и восстановление (40 мин)
Проведите «грязную» сессию:
- Дайте 4 разные задачи подряд в одной сессии.
- После каждой — просите переделать «немного иначе».
- На 5-й задаче попросите «сделай то же, что в первой задаче, но для другого модуля».
Зафиксируйте результат (качество, стиль, ошибки).
Затем в новой сессии:
Контекст: в проекте есть модуль X, функция Y делает Z (файл src/...).
Задача: сделай то же для модуля A.
Критерий: тесты проходят, стиль как в Y.
Приёмка: в отчёте — сравнение «грязной» и «чистой» сессии по 3 признакам (стиль, точность, стоимость).
Задание 5. Вынести память в файл (25 мин)
Создайте в проекте docs/decisions.md и запишите туда 3 архитектурных решения:
## ADR-1: Тесты только через pytest
## ADR-2: Ошибки — через AppError
## ADR-3: Никаких ORM-магии, только явный SQL
Добавьте в AGENTS.md ссылку:
## Документация
- Решения: `docs/decisions.md` (читать перед архитектурными изменениями)
Проверьте: в новой сессии на вопрос «почему у нас AppError?» агент находит файл.
Критерии сдачи
AGENTS.mdсоздан, команды проверены, ≤ 40 строк.- Есть таблица A/B сравнения из задания 2.
- Есть сравнение «пересказ vs ссылка».
- Есть отчёт по деградации сессии с выводом.
docs/decisions.mdсоздан и подключён кAGENTS.md.