Velocity Insights
Три ключевые метрики из research dossier (DORA / SPACE / DX Core 4) — Sessions-per-task, Active ratio, Rework cycles. Никаких новых интеграций: только данные, которые Controlum уже собирает.
Что считается#
1. Sessions per task#
Группирует сессии по ticket-id, который вытаскивается из branch'а regex'ом \b[A-Z][A-Z0-9]+-\d+\b. Покрывает Jira, Linear, Yandex Tracker и любую другую систему, использующую PREFIX-N в названиях веток. Отвечает на вопрос “сколько задач” без обращения к трекеру.
2. Session active ratio#
Доля времени сессии, когда между событиями был gap ≤ 60 секунд (всё что больше — классифицируется как “ждём ответа человека”). Operationalises SPACE “Flow Efficiency” на уровне сессии: если average ratio низкий, это значит AI догоняет ревьюера, а не наоборот.
3. Rework cycles#
Кластеризует сессии по одинаковому cwd внутри окна 24h. Когда ≥2 сессий открывают один и тот же репо за сутки — это сигнал rework. Operationalises Faros “5th DORA metric” (Rework Rate) на session grain.
Branch capture#
Daemon при каждом discover_session делает git symbolic-ref --short HEAD в cwd — best-effort, на detached HEAD или not-a-git-tree возвращает пустую строку. Сервер хранит в новом столбце sessions.branch (migration 0010). Ребейзы и переименования веток не ломают историю: уже посчитанные snapshot-row'ы лежат в plugin_velocity_metric_snapshots и не пересчитываются.
Endpoints#
GET /plugins/velocity-insights/metrics— fresh-compute всех трёх (или конкретной через?metric_key=) + запишет snapshotGET /plugins/velocity-insights/metrics/history— append-only история snapshot'ов для trend-чартовGET /plugins/velocity-insights/sessions/{id}/metrics— per-session breakdown (active_ratio + ticket_id)
Query parameters#
window_days— окно для Sessions-per-task / Active ratio (default 30)window_hours— окно для Rework cycles (default 24)min_sessions— минимум сессий в кластере чтобы он засчитался (default 2)