Метрики строительных сессий
Append-only. Заполняется в фазе 8 скилла
crewsforge-sessionкомандойnode tools/delivery-stats.mjs --unit <ID> --timing <журнал вех> --append. Чужие записи не правятся.
Зачем это нужно: по одной закрытой единице не видно, куда уходит время и какой ценой даётся результат. По двадцати — видно. Сводка отвечает на вопросы, которые иначе решаются на глаз: растёт ли доля правок чужого кода, не сползает ли покрытие тестами, сколько на самом деле стоит усиленное ревью и где сессия ждёт человека.
Что считается:
- Диф —
git diff --numstat <база>...HEADна момент закрытия, до слияния. - Строк в новых файлах — сколько написано с нуля, в отличие от правок существующего.
- Тесты к коду — строки
*.spec.tsпротив строк продуктового TypeScript и сидов. Метрика грубая (строка теста дешевле строки кода), но её падение — сигнал. - Время — активная работа сессии без перерывов, из журнала вех.
| Единица | Файлов | Диф | Строк с нуля | Тесты к коду | Активное время |
|---|---|---|---|---|---|
F1 | 48 | +3318 / −8 | 3273 | 0.8 : 1 | — |
F2 | 148 | +7818 / −2147 | 5190 | 1.9 : 1 | 2 ч 23 мин |
T1 | 95 | +7859 / −119 | 7484 | 1.7 : 1 | 1 ч 38 мин |
Диф: main...feat/f2-baseline-schema · 148 файлов · +7818 / −2147
Время: 2 ч 23 мин чистой работы (плюс 3 ч 11 мин перерывов)
| Категория | Файлов | + | − | Новых файлов | Строк в новых |
|---|---|---|---|---|---|
| Схема Prisma | 1 | 911 | 22 | 0 | 0 |
| Миграции (SQL) | 15 | 1485 | 870 | 1 | 1485 |
| Код (TypeScript) | 50 | 938 | 170 | 25 | 690 |
| Тесты | 37 | 2634 | 210 | 29 | 2236 |
| Сиды | 5 | 427 | 26 | 2 | 390 |
| Конфигурация | 22 | 263 | 21 | 8 | 142 |
| Документация | 18 | 1160 | 828 | 2 | 247 |
| Итого | 148 | 7818 | 2147 | 67 | 5190 |
| Файлов | Строк | |
|---|---|---|
| Новые файлы | 67 | 5190 |
| Правки существующих | 64 | +2628 / −1254 |
| Удалённые файлы | 17 | −893 |
Тесты к коду: 2634 строк тестов против 1365 строк продуктового кода — 1.9 : 1.
| Этап | Время | Доля активной работы |
|---|---|---|
| Осмотр контура и выбор единицы | 1 мин | 1% |
| Бизнес-бриф и гейт | 3 мин | 2% |
| Ожидание ответов Stark’а | 7 мин | 5% |
| Решения реализации и проверка оппонентом | 24 мин | 17% |
| Реализация | 1 ч 12 мин | 51% |
| Ревью | 10 мин | 7% |
| Разбор замечаний | 21 мин | 15% |
| Документация, журнал, PR | 5 мин | 4% |
| Перерывы (лимиты, ожидание) | 3 ч 11 мин | — |
Посчитано задним числом, при вводе метрик: единица закрывалась до появления этого файла. Хронометража по ней нет — журнал вех введён начиная с
F2.
Диф: 6ba3759^1...6ba3759^2 · 48 файлов · +3318 / −8
| Категория | Файлов | + | − | Новых файлов | Строк в новых |
|---|---|---|---|---|---|
| Код (TypeScript) | 12 | 493 | 0 | 12 | 493 |
| Тесты | 3 | 376 | 0 | 3 | 376 |
| Конфигурация | 19 | 205 | 1 | 18 | 201 |
| Документация | 13 | 2241 | 7 | 6 | 2203 |
| Прочее | 1 | 3 | 0 | 0 | 0 |
| Итого | 48 | 3318 | 8 | 39 | 3273 |
| Файлов | Строк | |
|---|---|---|
| Новые файлы | 39 | 3273 |
| Правки существующих | 9 | +45 / −8 |
| Удалённые файлы | 0 | −0 |
Тесты к коду: 376 строк тестов против 493 строк продуктового кода — 0.8 : 1.
Диф: main...HEAD · 95 файлов · +7859 / −119
Время: 1 ч 38 мин чистой работы
| Категория | Файлов | + | − | Новых файлов | Строк в новых |
|---|---|---|---|---|---|
| Код (TypeScript) | 44 | 2551 | 0 | 39 | 2537 |
| Тесты | 24 | 4298 | 0 | 24 | 4298 |
| Конфигурация | 20 | 268 | 8 | 15 | 243 |
| Документация | 7 | 742 | 111 | 4 | 406 |
| Итого | 95 | 7859 | 119 | 82 | 7484 |
| Файлов | Строк | |
|---|---|---|
| Новые файлы | 82 | 7484 |
| Правки существующих | 13 | +375 / −119 |
| Удалённые файлы | 0 | −0 |
Тесты к коду: 4298 строк тестов против 2551 строк продуктового кода — 1.7 : 1.
| Этап | Время | Доля активной работы |
|---|---|---|
| Осмотр контура и выбор единицы | 2 мин | 2% |
| Бизнес-бриф и гейт | 6 мин | 7% |
| Решения реализации и проверка оппонентом | 12 мин | 12% |
| План | 2 мин | 2% |
| Реализация | 46 мин | 47% |
| Ревью | 13 мин | 13% |
| Разбор замечаний | 17 мин | 17% |