Перейти к основному содержимому

Студия автора

Локальное приложение, в котором собирается практика. Три обязательных шага, каждый заканчивается утверждением, и ничего не уезжает студентам, пока автор не согласился с результатом. Перед ними — необязательный шаг 0: разбор конспекта лекции, который заполняет форму первого шага.

запуск
TESTCONTAINERS_RYUK_DISABLED=true uv run gen studio --pack packs/spike --mock --port 8765
ФлагЧто делает
--packкаталог пака, с которого студия открывается; создаётся, если его нет
--packsкорень с практиками; по умолчанию — папка, в которой лежит --pack
--portпорт студии, по умолчанию 8765
--mockвместо вызовов LLM берёт заготовленные ответы из <пак>/mock_llm/

Живая генерация требует ключа в .env (OPENROUTER_API_KEY). Docker нужен всегда: проверки исполняются в эфемерном Postgres, который студия поднимает сама.

Несколько практик​

Практика — это папка в корне (packs/), и они ничего друг о друге не знают: новая никак не задевает прежние. Переключатель внизу полосы шагов показывает все практики корня и докуда доведена каждая; там же заводится новая — имя латиницей с дефисами, например sql-join-2026, потому что оно станет именем архива комплекта.

Открытая практика видна в адресе: http://localhost:8765/?pack=sql-join-2026. Поэтому две практики можно держать в соседних вкладках — генерация в одной не заденет другую. Новая вкладка без параметра открывает последнюю, с которой работали, а если студия запущена впервые — ту, что указана в --pack.

Раскладка​

Верхней шапки нет — по вертикали место дороже. Слева узкая полоса шагов, дальше содержимое шага, у третьего шага добавляется список заданий и инспектор справа.

Полоса шагов, список заданий с поиском и группами по темам, отчёт задания, инспектор.
шаг 3Полоса шагов, список заданий с поиском и группами по темам, отчёт задания, инспектор.

Полоса шагов показывает состояние каждого шага цветом точки и подписью:

СостояниеЧто значит
пустошаг ещё не проходили
черновикрезультат есть, но не утверждён
утвержденозафиксировано хэшем, можно идти дальше
устарелопредыдущий шаг изменился после утверждения этого

Внизу полосы — переключатель светлой и тёмной схемы и имя текущего пака.

Порядок шагов​

Лекция — необязательно

Конспект занятия текстом. Модель предлагает тему, предметную область, темы SQL с квотами и число заданий; предложение переносится в форму первого шага и там правится. Без лекции шаг просто пропускается. Подробно

Предметная область

Название занятия, про что база, темы SQL с квотами заданий. Генерируется описание базы и DDL, схема тут же проверяется на живом Postgres. Подробно

Задания

Формулировки по утверждённой области. Покрытие тем считается до утверждения: не хватает заданий по теме — студия покажет, по какой. Подробно

Решения и проверки

На каждое задание — эталонное решение, спека данных, варианты, набор проверок и негативные решения. Отчёт приёмки показывает всё это целиком. Подробно

Шаги с первого по третий строго последовательны: пока область не утверждена, второй шаг сообщит об этом вместо формы. Это не формальность — задания генерируются по DDL области, а проверки строятся по формулировкам заданий.

Что делать без API-ключа​

Любой шаг проходится вручную: студия отдаёт готовый промт, автор относит его в любую нейросеть и вставляет ответ обратно. Формат ответа тот же, что у API, поэтому дальше конвейер не различает, откуда пришёл JSON. Ручной режим

Что автор видит и чего не видит студент​

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

Открывайте студию на широком экране

С 1280 пикселей видны все три колонки. Ниже 1280 инспектор скрывается кнопкой «Показать инспектор», ниже 1024 список заданий превращается в выездной.