Семинар 3: «В лоб» не работает — от провала к системному подходу
Контекст
На предыдущем семинаре (С2) студенты получили задание: выбрать pet-проект, написать мини-спецификацию и попытаться реализовать MVP «в лоб» — одним промптом или минимальным диалогом. На Лекции 3 мы разобрали, почему это ломается (антипаттерны, 4 стратегии контекста, SDD). Сегодня соединяем теорию с практикой.
Формат: 70 минут, гибрид разбора провалов и live-демо
Часть 1: Разбор провалов (25 мин)
Показ результатов ДЗ (15 мин)
3-4 студента шарят экран и показывают:
- Свой исходный промпт (что просили)
- Что получилось (где сломалось)
- В какой момент модель потеряла контекст или ушла не туда
Вопросы для обсуждения каждого кейса:
- Какой антипаттерн из Л3 тут сработал? (Kitchen Sink? Implicit Requirements? Оверинжиниринг?)
- Что бы вы изменили, зная то, что знаете после Л3?
- Был ли м омент, когда можно было «спасти» сессию, или нужно было начинать заново?
Сбор антипаттернов (10 мин)
Преподаватель фиксирует на доске/экране общий список:
| Антипаттерн | Сколько студентов столкнулись | Пример |
|---|---|---|
| Монолитный промпт | ? | «Сделай мне todo-приложение с авторизацией, базой данных и деплоем» |
| Неявные требования | ? | «Не сказал про валидацию — модель её не сделала» |
| Prompt rot | ? | «Переключился на другую модель — всё сломалось» |
| Оверинжиниринг | ? | «Модель создала 15 файлов для hello world» |
| Потеря контекста | ? | «После 5-й итерации модель забыла начальные требования» |
Наивный подход ломается предсказуемо. Одни и те же антипаттерны повторяются у всех. Это значит, что их можно предотвратить системно.
Часть 2: Live-демо — тот же проект, но через GSD (30 мин)
Идея
Берём один из сломанных проектов студента (самый показательный провал из части 1) и реализуем его заново — но через системный подход с использованием GSD (Get Shit Done).
Почему GSD: это open-source инструмент, который реализует все концепции из Л3 — spec-driven development, context engineering (write/select/compress/isolate), wave-based параллелизм, атомарные коммиты. Студенты видят теорию в действии.
Ход демо
Шаг 1: Инициализация проекта (3 мин)
# Создаём новый проект через GSD
/gsd:new-project
GSD задаёт уточняющие вопросы (борьба с implicit requirements). Сравниваем: студент написал один промпт → GSD провёл 5-7 вопросов и получил полное понимание задачи.
Это итеративный бриф из блока 4. GSD автоматизирует то, что мы обсуждали как ручной процесс.
Шаг 2: Требования и роадмап (5 мин)
GSD генерирует:
PROJECT.md— видение проектаREQUIREMENTS.md— структурированные требования (v1/v2)ROADMAP.md— фазы реализации
Показываем файлы: вот ваша «спецификация», которая живёт в файловой системе, а не в голове. Это стратегия Write — знания записаны за пределами контекстного окна.
Шаг 3: Обсуждение фазы (3 мин)
/gsd:discuss-phase
GSD выявляет неочевидные решения до начала кодинга. Спрашиваем группу: «Какие из этих вопросов вы бы не подумали задать?»
Шаг 4: Планирование (5 мин)
/gsd:plan-phase
GSD запускает researcher → planner → checker. Показываем PLAN.md:
- Задачи в XML-формате с полями
<files>,<action>,<verify>,<done> - Зависимости между задачами
- Wave-группировка (независимые задачи параллельно)
Вертикальные слайсы + acceptance criteria (GIVEN/WHEN/THEN) — только автоматизированные. Каждая задача помещается в одно контекстное окно — «железное правило» GSD.
Шаг 5: Выполнение (10 мин)
/gsd:execute-phase
Наблюдаем:
- Субагенты запускаются с чистым контекстом (Isolate)
- Каждый получает только свою задачу + релевантный контекст (Select)
- Атомарные коммиты после каждой задачи
- Верификация (lint/test/build) после каждого шага
Ключевой момент: сравнить с наивным подходом. Студент потерял контекст через 5 итераций. GSD выполняет 10+ задач, и каждая начинается с чистого контекста.
Шаг 6: Результат (4 мин)
Показываем:
- Рабочий код (vs сломанный MVP из части 1)
- Чистая git-история с атомарными коммитами (vs один коммит «initial commit»)
- Файлы
.gsd/как документация проекта (PROJECT.md, REQUIREMENTS.md, PLAN.md)