Как собрать курс#
Курс на платформе — релиз: один файл, в котором курс целиком — главы,
уроки, цели и их пункты, проверка знаний, домашние задания, документ курса и
указания агенту, который ведёт занятие. Релиз собирают из карты курса в
закрытом репозитории course-design и публикуют командой. Куратор работает с
картой вместе со своим агентом; писать код не нужно.
На платформе курс не правится по кусочкам: исправление — это новый релиз. Кураторский набор инструментов MCP и кабинет автора — для того, что происходит с курсом после публикации: посмотреть действующий релиз, открыть курс ученикам, разобрать заметки и репорты, увидеть, как ученики проходят уроки.
Страница описывает устройство платформы и порядок работы. Чему и как учить, платформа не предписывает: методика ваша.
Что нужно куратору#
Доступ к платформе. Роль куратора (Course Creator) выдаёт команда
платформы. Агента подключают к кураторскому адресу сервиса — /authoring: у
ученического адреса набор инструментов другой. Порядок работы агент получает
в prompt author, а инструкции сервера при подключении называют, какой
инструмент за что отвечает.
Доступ к course-design. Карта курса и команда публикации живут там. Ключ
публикации в репозиторий не попадает: он лежит в локальном файле настроек у
того, кто публикует, и его выдаёт команда платформы.
Место в списке кураторов курса. Карта курса называет кураторов — почты в
поле instructors. Публикация делает их инструкторами курса: они видят
прохождения учеников и получают сводку о домашках на проверку. Заметки,
репорты и просмотр релиза доступны любому куратору платформы.
Как курс попадает на платформу#
- Карта курса —
structure.yamlвcourse-design: главы, уроки, цели уроков и их пункты, вопросы квиза с верными вариантами, домашние задания, разделы документа, указания агенту, список кураторов. Формат описан в самом репозитории. - Сборка и публикация — команда конвейера
tools/publish_release.py. Она проверяет карту, собирает релиз, проверяет его и публикует на платформу вместе с коммитом git, из которого он собран. В выводе — версия релиза, её коммит, какие главы и уроки созданы, изменены или сняты из программы, и предупреждения: пустой текст для ученика, вопрос без пояснения. Любая беда — ненулевой код выхода. - Открытие —
publish_course. Новый курс после первого релиза — черновик, ученикам он не виден. Новый релиз уже открытого курса действует сразу, открывать курс заново не нужно.
Публикует ключ отдельного пользователя-публикатора с самой узкой авторской ролью. Инструктором курса он не становится: кураторы — те, кто назван в карте, и публикация каждый раз выставляет курсу ровно этот список. Списка в карте нет — инструкторы курса остаются прежними.
Тот же релиз, опубликованный ещё раз, новой версии не даёт и ничего не меняет: повтор после обрыва связи безопасен. Список кураторов при этом всё равно применяется — сменить кураторов можно без новой версии курса.
Анонс до первого релиза#
Курс можно показать в каталоге раньше, чем он готов. Ученик видит название, описание и цели курса и может попросить сообщить о выходе; записаться нельзя.
create_course— курс без уроков с названием и описанием; правитсяupdate_course.announce_courseс целями курса — их и увидят в каталоге.- Первый релиз публикуют с привязкой к этому курсу (
--courseу команды публикации): курс получает программу, а подписчики остаются. publish_courseоткрывает курс, и тем, кто просил сообщить о выходе, уходит письмо.
Анонсировать можно и курс из релиза, ещё не открытый ученикам: его цели в каталоге — названия глав действующего релиза.
Правка курса — новым релизом#
Курс правят в карте и выпускают заново. Ученики всегда на действующем релизе: новый релиз переносит их состояние — какие пункты разобраны, какие уроки пройдены — по ключам глав, уроков, целей и пунктов.
- Ключи стабильны. Переименовать ключ — то же, что удалить узел и завести новый: отметки учеников по старому ключу к новому не перейдут.
- Снятое из релиза уходит из программы. Урок или главу, по которым никто не занимался, публикация удаляет. Запись со следами учеников — занятиями, прохождениями, попытками квиза, сдачами домашки, репортами — остаётся вне программы: вернувшийся в следующем релизе ключ получает её, и прогресс учеников по нему возвращается.
- Релиз неизменяем. Откат — публикация прежнего коммита карты новой версией.
- Содержимое хранится только у действующей версии. От прежних остаётся
запись в «Истории» кабинета автора и в
course_releases: версия, кто и когда опубликовал, дайджест и коммит. Саму прежнюю версию смотрят в gitcourse-designпо коммиту; у версии, опубликованной без коммита, кандидата из истории карты проверяют по дайджесту. Не совпал дайджест ни у одного кандидата — восстановить такую версию нельзя. - Открытая попытка квиза переходит на новую версию, если квиз урока не изменился. Изменились вопросы, варианты, верный вариант или цели вопросов либо урок снят — попытка аннулируется: ученик начинает квиз заново, и прерванная попытка в счёт не идёт. Пояснения и порог в сравнение не входят: порог попытка берёт на старте.
Платформа не даёт править курс из релиза в обход релиза: Desk и редактор Learning откажут в правке его глав и уроков. Карточку курса — название, описание, обещание — тоже пишет релиз.
Проверка знаний#
Проверку знаний ведёт и оценивает сервер. Агент получает вопрос без верных вариантов, передаёт ответ ученика как есть и получает вердикт — подсказать он не может, даже если захочет. Верные варианты и пояснения лежат в релизе и не уходят ни в один ответ ученику и его агенту.
Вопрос — выбор из вариантов: минимум два, ровно один верный. Пояснение к вопросу ученик видит после ответа — это место для разбора ошибки, а не для подсказки. Если тема требует рассуждения, разложите её на проверяемые вопросы, а само рассуждение оставьте занятию — агент разберёт его в разговоре.
Квиз выдаётся, когда разобраны все обязательные пункты урока. Порог зачёта задаёт урок в релизе; число попыток и паузу между ними — настройки платформы, одни на всех. Вопросы стоит писать так, чтобы на них отвечал понявший, а не угадавший: при свободных попытках вариант можно подобрать перебором, и понимание проверяет разговор с агентом, а не квиз.
Домашние задания#
К уроку можно дать домашнее задание — одно и необязательное: что сделать на своём проекте до следующего занятия и что сдать — текстом, файлами или тем и другим. Задаётся оно в карте курса вместе с уроком. Срок — дни после закрытия урока; организация может заменить его своим в назначении курса.
Ученик получает задание, когда урок закрыт. Агент озвучивает его в конце занятия и начинает следующее с того, как оно сдано. На зачёт домашка не влияет и ничего не блокирует.
Проверка. Сданные домашки ждут в разделе «Домашние задания» платформы, на вкладке «Ждут проверки» — в той же очереди, что у руководителей организаций. Вы видите домашки всех курсов платформы, не только своих, — в том числе сданные в личном пространстве: принимаете, возвращаете на доработку с комментарием, отменяете ошибочный приём. Если ту же домашку проверяет руководитель, действует последнее решение, а журнал показывает, чьё оно. Проверить собственную домашку нельзя, даже с правом проверять: в очереди её нет, её проверяет другой руководитель или автор курса.
Сводка на почту. Раз в день, утром, — письмо: сколько домашек ждут проверки по курсам, где вы инструктор, и ссылка на очередь. Инструкторы курса — кураторы из карты курса. Нечего проверять — письма нет.
Кабинет автора#
Страница /author на сайте платформы показывает курсы так, как их видит
агент ученика; из desk она лежит в разделе «Обучение через агента».
- Курсы: версия и дата действующего релиза, открытые заметки и сколько из них ждут вас, число тестеров.
- Курс: вкладки «Релиз», «Заметки», «История» и «Тестеры». Релиз — действующий целиком: главы, уроки, цели и их пункты, вопросы квиза с верными вариантами, домашние задания, документ курса; пакет агента урока и рамка курса свёрнуты. История — версия, дата, кто опубликовал, какой действует. Заметки — очередь к курсу: что проверить, на что ответить, что ждёт агента. У курса без релиза — только карточка анонса.
Когда выходит новый релиз или агент отвечает на заметку, открытая страница об этом скажет — обновите её, чтобы увидеть новое. Курсы общие: все авторы видят все курсы и все заметки.
Заметки#
Вычитывая релиз в кабинете, вы ставите заметки прямо на место: курс, главу, урок, цель, пункт, вопрос квиза, раздел документа, указания агенту или узел карты курса. Заметка помнит версию релиза, к которой написана; место, которого в действующем релизе больше нет, помечается.
Агент берёт заметки инструментом course_notes,
правит карту курса, выпускает новый релиз и отмечает заметку сделанной —
resolve_note — с тем, что поменял и в какой версии.
Дальше решаете вы: принять правку или вернуть заметку с ответом. Если агенту
нужно ваше решение, он спрашивает в нити или ставит вопрос на место —
add_note; такие вопросы собраны на вкладке «Заметки»,
в разделе «Агент спрашивает».
Как курс проходят#
Репорты. Агент ученика сообщает авторам, когда курс мешает учиться:
материал неверен, вопрос двусмыслен, указание не подходит. Агент куратора
читает их course_reports — по уроку, по виду, по
статусу — и закрывает resolve_report, когда
правка вышла релизом. Ответ видит ученик, поэтому он о курсе, без оценок и
имён.
Прохождения. goal_runs показывает, как ученики
проходят уроки: какие пункты разобраны и на каком свидетельстве, где урок
застрял, что засчитано квизом. Видят их инструкторы курса — кураторы из
карты, — модераторы и администраторы платформы. Свидетельства — слова
учеников: они для улучшения курса и в ответы на репорты не переносятся.
Программы: курсы по порядку#
Несколько курсов можно связать в программу — например, «Где теряется работа между отделами» → «Как заметить проблему заранее». Программу заводят в интерфейсе Learning: раздел «Программы», курсы в нужном порядке, флажок порядка курсов («Enforce Course Order»), описание и публикация. Описание — одно-два предложения: для кого программа и что будет у ученика в конце; оно стоит на странице программы под названием.
У программы одна страница для всех: путь пронумерованными шагами — курс, его строка и статус («В разработке», «Доступен», «Идёт», «Пройден», «Откроется после курса N») — и одно действие: «Вступить в программу», после вступления «Продолжить: курс». Опубликованную программу видит и гость, в неё ученик вступает сам. Если первый курс ещё в разработке, вступление подписывает на письмо о его выходе.
- С флажком порядка участник программы не запишется на следующий курс и не начнёт по нему занятие, пока предыдущий не пройден целиком. Платформа проверяет это и на записи, и на занятии, а страница курса вместо записи ведёт к предыдущему курсу.
- Порядок — только для участников программы. Курс напрямую из каталога берётся без условий, назначения организаций порядок не затрагивают.
- На странице курса видно, какой он по счёту в программе, со ссылкой на неё.
- Агент о программах пока не знает: места курса в цепочке в его ответах
нет, запертый курс он узнаёт по отказу
program_order.
Снять курс#
Снять курс с публикации можно — unpublish_course;
анонс снимается так же. Прогресс учеников при этом сохраняется. Удаления
курсов на платформе нет.