Одна рамка на пять комнат. Читается с экрана во время демо.
Что мы вообще меряем. Механический процент (66–90) считает, сколько признаков задачи видно в файлах по всем веткам всех форков. Это словарь задачи, а не работа: комната 2 идёт 96, а из сырого входа до готового ответа у неё проходит один пример из трёх. Оценка проводника (25–54) считает, что напечатал экран во время прогона. Расхождение между этими числами устойчиво и нормально. Решает прогон. Низкий механический процент уликой не является: у комнаты 5 он самый низкий из пяти, а инструмент у неё самый собранный.
| ось | вес | вопрос | 0 | 1 | 2 | 3 | откуда факт |
|---|---|---|---|---|---|---|---|
| прогон | 5 | проходит ли приёмочный пример целиком на глазах проводника | запускать нечего, есть узлы с тестами | путь идёт, ответ неверный, либо один пример и только у автора | часть примеров проходит целиком одной командой | все примеры проходят на чистой машине | экран во время прогона |
| боль | 5 | решает ли инструмент то, что назвал живой заказчик, его словами | формулировки заказчика нет, интервью пустое | боль записана, инструмент касается краем | боль закрыта, расходится форма выдачи | заказчик говорит «решило» и называет, что перестанет делать руками | слово заказчика в 13:45 |
| сведение | 3 | собрано в одну точку на main или лежит по веткам форков | в main только README и примеры | влит один узел, ключевое в PR | много вливаний, часть кода в открытых PR | всё рабочее на main, ветки свежие | зеркало репозитория |
| мера себя | 2 | печатает ли комната свою оценку машиной при всех | оценки нет, готовность словами | тесты зелёные, но не про задачу | счёт по приёмочным примерам сходится с деревом | счёт плюс опубликованный список своих дыр | запуск команды при всех |
| комната как машина | 2 | работала комната или один человек при зрителях | один автор держит 70%+, вливаний нет | пишут несколько, сборка на одном | несколько авторов вливаются регулярно | верхний автор меньше половины, живой разбор чужого кода | доска события, считается до блока |
Итог = сумма (уровень × вес) из 51, в процентах.
| время | что делаем |
|---|---|
| 13:05 | делим роли: первый смотрит только на экран, второй только в зеркало. Ось «комната как машина» проставлена заранее по доске, в блоке не пересчитываем. Механический процент комнатам не показываем |
| 13:10 | комната, 5 минут: 3 минуты прогон одного примера с сырого входа, 2 минуты вопросы. Слайдов нет, планов нет |
| в прогоне | первый ставит «прогон» по напечатанному. «На ветке это работает» уровень не поднимает |
| в прогоне | второй открывает main: что влито, сколько PR открыто, насколько ветки отстали. Ставит «сведение» |
| после прогона | один вопрос: «какой командой вы меряете себя». Команда запускается при всех, число идёт в «меру себя» |
| 13:45 | заказчик говорит одну из трёх фраз: «решило», «не решило», «решило не то». Пишем дословно, ставим «боль» |
| 13:52 | сводим пять чисел. Спор снимается фактом, при равном споре берём меньший уровень |
| 13:56 | голос зала объявляем и записываем отдельно. В оценку он не входит |
| 14:00 | каждой комнате отдаём её строку и одну фразу, что поднимет ближайшую ось на единицу |
Кто говорит последним. Работает или нет – экран, спор снимается повторным запуском. Решило или нет – только заказчик, за него не голосуем и его слова не улучшаем. Что считать сделанным – зеркало: влито в main сделано, лежит в PR показано, лежит в закрытом PR не существует. Итог – проводники вдвоём, при расхождении меньший уровень вслух. Победитель – зал, отдельно от оценки.
У комнаты 1 нет шести заказчиков из восьми, у комнаты 3 – трёх из пяти, у комнаты 4 – половины. Вслепую ось «боль» не ставим и средним не заполняем. Проводник берёт письменную формулировку заказчика из репозитория – заполненное интервью, expected.md, письменное ТЗ – читает её вслух как обвинение и спрашивает комнату: инструмент делает ровно это или нет. Если письменной формулировки нет, ось получает 0, а не среднее: сказать «решило» некому, значит не доказано. Тут же записываем один вопрос отсутствующему заказчику и отправляем его сегодня; ответ поднимет ось задним числом.
Ветка выдаётся за готовое (комната 4: парсер, время и реальные снимки в открытых PR, ветка отстала на 26 коммитов). Пустое интервью выглядит как работа (комната 1: оба файла – шаблоны с незаполненными ответами). Закрытый PR съедает лучший результат (комната 3: восемь тестов приёмки Григория закрыты без мержа, сам Григорий сегодня в комнате). Архитектура вместо способности (комната 1: граф на шесть типов узлов при том, что срок и слияние не начаты). Дублирование вслепую (комната 4: два движка диффа, авторы не знают друг о друге). Формат, которого заказчик не приносил (комната 5 работает по tensorzero.toml, вход Дениса – litellm-config.yaml; комната 4 выбрала веб-страницу вместо Excel по почте). Зелёные тесты не про задачу (комната 2: 19 из 19 проходят, но проверяют чужой черновик, а модуль не импортируется без необъявленной зависимости).
| к | итог | прогон | боль | сведение | мера | машина | чем сильна и чем слаба |
|---|---|---|---|---|---|---|---|
| 1 | 18 | 1 | 0 | 0 | 2 | 0 | разбор входящих и цитата-источник работают; срок, слияние и отмена не начаты, интервью пустые, весь код – одна ветка одного автора |
| 2 | 24 | 1 | 1 | 0 | 1 | 0 | расчёт КП сходится до рубля, регламент закодирован; черновика ответа нет, в main не влито ничего |
| 3 | 24 | 0 | 1 | 1 | 2 | 1 | детектор канона честно ловит весь пример 01; конвейер не выдаёт ни текста, ни рилза, ни дайджеста, приёмка закрыта без мержа |
| 4 | 67 | 2 | 2 | 2 | 1 | 3 | дифф, честность источников и пороги работают на main, комната обсуждает свою работу; парсер, время и данные висят в PR, канал выдачи против ТЗ |
| 5 | 71 | 2 | 1 | 3 | 3 | 3 | единый контракт, раннер по всем примерам, 11 вливаний; по главной боли ловит один дефект из шести, часть работы по формату, которого заказчик не приносил |
Порядок рамки расходится с оценками отдельных рубрик намеренно: рубрика мерила покрытие задачи, рамка мерит собранный инструмент. Комнаты 4 и 5 отрываются, потому что у обеих есть прогон на main и поток вливаний; комнаты 1 и 2 проседают, потому что работа держится на одном авторе и не сведена.