К содержимому
МАТЕРИАЛЫ КУРСА
НАВИГАЦИЯ

Как оценивается работа

Два слоя проверки: агент считает баллы по критериям, человек ставит булевую приёмку

Оценивание устроено в два слоя, и они делают разное. Агент считает баллы по критериям — это публичная величина, видная всему потоку. Человек ставит приёмку — принято или нет, без полутонов.

Причина разделения простая: списать сгенерированное можно, защитить непонятое — нельзя. Агент не отличит понимание от пересказа. Человек отличает, но у него нет времени читать репозиторий целиком.

Слой 1: баллы от агента

Агент проверяет pull request и выставляет балл по каждому критерию лабы. Критерии известны заранее — они лежат на странице каждой лабы, и тот же список агент получает по API. Скрытого чек-листа нет.

У каждого критерия есть вес от 1 до 3. Вес не про трудоёмкость, а про то, насколько без этого артефакта разваливается остальное. Прод-URL весит 3, потому что без него не проверить ничего дальше; ретроспектива весит 1, потому что её отсутствие не ломает проект.

Проверка бывает шести видов:

ВидЧто делает агент
commandзапускает команду и смотрит код возврата
filesищет артефакт по смыслу, а не по пути
structureпроверяет, что внутри артефакта есть требуемое
httpдёргает публичный URL проекта
llmчитает документ и сравнивает с признаками «хорошо / плохо»
humanне проверяет — передаёт вопрос лаборанту

Почему в критериях нет путей к файлам

Агент читает репозиторий целиком и находит артефакт, как бы тот ни назывался. Где что лежит — решает команда, и это часть работы, а не деталь оформления. Жёсткий путь превратил бы требование к результату в инструкцию к исполнению.

Штрафы: от даты первого PR

Дедлайн на лабу один для всего потока. Опоздание умножает балл:

ОпозданиеМножитель
в срок×1.0
день×0.9
три дня×0.7
неделя×0.5
дальше×0.2

Две особенности, которые стоит понять до начала работы.

Штраф персональный. Артефакты привязаны к ролям, каждый сдаёт своё своим PR — значит опоздавший портит балл себе, а не команде. Вечный конфликт «мы сделали, а он тянул» здесь не возникает.

Считается дата первого PR, а не последнего коммита. Открыл работу в срок — дорабатывай сколько нужно, штрафа не будет. Правило поощряет раннюю сдачу и итеративную доработку вместо привычки собирать всё в последнюю ночь.

Открыть пустой PR в срок и делать всё потом не выйдет: агент читает диффы, и если по теме лабы в PR ничего нет, дата не засчитывается. Спорить с датой бессмысленно — она берётся из GitHub API.

Один PR на роль и лабу

Ветка своей роли

Каждый работает в своей ветке: lab3-ai, lab3-delivery. Один PR на роль и лабу — вся переписка по этой работе идёт в нём.

Комментарий агента

Агент оставляет в PR результат проверки: что зачтено, что нет, по каким признакам. Не согласны — дорабатываете и просите перепроверку в том же PR.

Приёмка на занятии

Лаборант задаёт вопросы по тем критериям, которые агент проверить не может, и ставит вердикт.

Комментарий системы при закрытии

В тот же PR приходит итог: балл, штраф, приёмка. Переоткрывать PR невыгодно — штраф считается от первой даты и только вырастет.

Слой 2: приёмка человеком

Финальный вердикт булевый: принято или нет. Торга за полбалла нет.

Лаборант не читает репозиторий целиком — это уже сделал агент. Он работает с карточкой занятия: тайминг на 15–20 минут, три вещи, на которые смотреть в первую очередь, и список случаев, где решать в одиночку не стоит.

Вопросы известны заранее — они лежат в тех же критериях. Вопросов на засыпку нет: если артефакт сделан руками команды, ответ очевиден.

Рядом с вопросом у лаборанта записан признак того, что артефакт есть, а понимания нет. Для гипотез это «условие опровержения сформулировано так, что не может наступить». Для разбора ошибок — «ошибки отсортированы по частоте, а не по тому, как они бьют по пользователю». Для burndown — «график нарисован ровной линией в последний день».

Как складывается итог

Оценка = баллы со штрафом, при условии что приёмка получена.

Приёмка — гейт, баллы — величина. Не принято — оценки нет, сколько бы баллов ни набралось. Принято — идёт балл, посчитанный машиной и объяснимый по пунктам.

Спорить в этой схеме не о чем: балл посчитан по критериям, штраф взят из даты в GitHub, приёмка — да или нет с комментарием. Все три вещи видны студенту в одном месте.

Чего в критериях не бывает

Формулировок вроде «соблюдены best practices» нет и не будет: непонятно, сколько за них давать и за что снимать. Нет и требований «не меньше N» — число подменяет суть, глоссарий добьют водой до пятнадцати терминов и формально будут правы. Если критерий нельзя проверить по существу — его не должно быть.

Что видно всем

Баллы публичны. Лидерборд потока показывает, какие лабы закрыты у каких команд — не рейтинг симпатий, а чек-лист, одинаковый для всех.

Критерий считается закрытым, когда агент выставил по нему полный балл. Лидерборд показывает состояние проектов, детали сдачи — оценку со всеми штрафами.

Если кто-то выбыл

Артефакты привязаны к ролям, поэтому выпадение человека не обваливает команду: его ветку просто никто дальше не сдаёт. Кто-то может взять его часть — тогда критерии закрываются, но штраф считается от даты его первого PR. Не взял никто — эти критерии остаются незакрытыми, и баллы за них не идут.