Как считается оценка
v1.4 · 18 октября 2026Оценка отвечает на один вопрос: можно ли положиться на этот проект. Одно число от 0 до 100 вместо получаса листания коммитов, README и задач.
- Складывается из шести категорий, у каждой свой вес.
- Пороги постоянные: оценка не зависит от того, что происходит в соседних репозиториях.
- Пустая категория не ставит ноль: она выходит из расчёта, её вес уходит собранным.
до 50низкая50–69удовлетворительно70–84хорошоот 85отлично
Шесть категорий, в сумме 100
Ширина — вес категории в итоге.
Больше всего весит Security: этот сигнал труднее всего подделать, и он прямо задевает тех, кто берёт проект к себе. Меньше всего Code health: число пометок TODO зависит от привычек команды и не должно решать итог.
Свой репозиторий
После входа и личного токена считаются все шесть категорий. Сумма весов 100.
Чужой открытый
SourceCraft показывает сканы AppSec и прогоны CI только участникам репозитория. Остаются четыре категории, сумма весов 55.
Делим не на 100, а на сумму весов тех категорий, по которым данные есть. Поэтому максимум остаётся 100, а не 55: вес Security и CI/CD расходится по оставшимся. В публичном итоге у активности, документации и issues получается по 15/55, то есть 27%, у Code health 10/55, то есть 18%.
Формула на живом примере
Оценку каждой категории умножаем на её вес, складываем и делим на сумму весов собранных категорий. Потом ограничения, потом округление до целого.
1. Метрика
Каждый факт переводится в баллы от 0 до 100 по постоянному порогу. Ответили на задачу за сутки: 100 баллов. Ответили за месяц: 25.
2. Категория
Среднее её метрик с учётом их весов. Считаются только метрики с данными. Если данных меньше половины веса, категории нет совсем.
3. Итог
Взвешенное среднее категорий, как в примере выше. В отчёте видно оба числа: итог и расчёт до ограничения.
Что меряем и как поднять
Главные метрики каждой категории с порогами. Полный список — по раскрытию.
Security
вес 25- Открытые уязвимости в зависимостяхпо критичности
- Находки SAST и секретыоткрытые
- Как закрывают находкиисправлены, а не скрыты
Как поднять
- Обновить уязвимые зависимости
- Разобрать находки SAST, не закрывая их как ложные
CI/CD
вес 20- Доля успешных прогоновпоследние 20
- Конфиг .sourcecraft/ci.yamlесть или нет
- Сборка и тесты в пайплайнезаглушка ≤ 75%
Как поднять
- Починить падающие шаги
- Добавить в пайплайн сборку и тесты
Активность
вес 15- Давность последнего коммита½ за 21 дн
- Регулярностьнедели с коммитом из 13
- Авторы за 90 днейпервый ≥ 80% → 20
- Релизыза 180 дн → 100
Все метрики (7)Скрыть остальные
- Merge requestsвлитые за 180 дн
- Contributors≥ 3 → 100
- Динамика за 30 днейне меньше половины
Как поднять
- Публиковать релизы с описанием
- Коммитить регулярно, а не рывками
Документация
вес 15- Полнота README7 проверок
- Инструкция запускавес 16
- История измененийCHANGELOG
- ЛицензияLICENSE в корне
Все метрики (8)Скрыть остальные
- Описание тестоввес 12
- Описание сборкивес 7
- Тесты в проектекаталог tests/
- CONTRIBUTING, CODEOWNERS, SECURITY.mdесть файл
Как поднять
- Описать в README запуск, сборку и тесты
- Добавить LICENSE и CHANGELOG
Issues
вес 15- Зависшие> 30 дн без обновлений
- Доля закрытыхmin(1, p / 0,7)
- Время до первого ответамедиана ≤ 24 ч → 100
- Время до закрытиямедиана ≤ 7 дн → 100
Все метрики (5)Скрыть остальные
- Создано и закрыто за 30 днейзакрыто ≥ создано → 100
Как поднять
- Разобрать зависшие issues
- Отвечать на новые в первые сутки
Code health
вес 10- TODO/FIXME на 1000 строк0 → 100 · 2 → 0
- Старые TODO на 1000 строкстарше 180 дн
- Наличие тестов≥ 10% файлов → 100
Все метрики (5)Скрыть остальные
- Динамика за 90 днейрост < 5 — норма
- FIXMEпо числу или на 1000 строк
Как поднять
- Превратить старые TODO в задачи
- Добавить тесты
Ограничения: когда итог срезается сверху
В среднем по категориям серьёзная проблема теряется: отличная документация перекрывает открытую дыру. Поэтому поверх расчёта есть два потолка. Срабатывает тот, что ниже, и только если расчёт вышел выше него.
не выше 65
Открыта critical-уязвимость или в коде найден секрет.
Как снять: исправить уязвимость, отозвать и убрать ключ из кода.
не выше 75
Последний запуск CI в SourceCraft закончился ошибкой.
Как снять: починить сборку.
В публичном рейтинге потолки не срабатывают: данных о CI и безопасности чужих проектов у нас нет.
Особые случаи
Поправки, которые защищают оценку от перекосов. Раскройте строку, чтобы прочитать правило.
Давность коммита≥ 20 после 90 дн
Балл уменьшается вдвое каждые 21 день: 100 · exp(−ln2 · дни / 21). Сегодняшний коммит даёт 100, недельный 79, трёхнедельный 50. После 90 дней балл не опускается ниже 20: заброшенный репозиторий не обнуляется одним этим числом.
Разработку ведут в другом месте10+ авторов
10 и больше авторов за 90 дней, но в SourceCraft нет ни merge requests за полгода, ни релизов, а участников не больше двух. Значит, код сюда синхронизируют. Contributors, merge requests и релизы для такого проекта не считаются, их вес уходит остальным метрикам.
Трекер задач пустой35 · 50 · ≤ 60
Небольшая живая команда до 6 человек, которая просто не ведёт задачи, получает 35. Зеркало и проект с разработкой вне площадки получают нейтральные 50. Если задач меньше 10, репозиторию нет 45 дней или почти вся работа уместилась в две недели, категория не поднимается выше 60: по трём задачам рано судить.
Кода слишком мало или он слишком молодой< 300 строк
Code health не считается, если исходного кода меньше 300 строк. Если репозиторию нет 45 дней или была вспышка коммитов, а пометок не больше пяти, категория тоже пропускается: долг ещё не успел накопиться. Вес уходит собранным категориям.
Плотность TODO и FIXME0 → 100 · 2 → 0
Считается не число пометок, а их плотность: 0 на 1000 строк даёт 100 баллов, 2 на 1000 даёт 0, между ними линейно. Поэтому крупный зрелый проект не наказан за размер. Пометкой считается TODO или FIXME в начале комментария; то же слово в обычном тексте не в счёт.
Накрутка не работаетпо дням, а не коммитам
Регулярность считается по дням и неделям с работой: сотня пустых коммитов за день даёт столько же, сколько один. Пайплайн, который в среднем идёт меньше 20 секунд, считается заглушкой и теряет четверть веса CI. Находки, массово закрытые как ложные, снижают оценку сильнее, чем честно исправленные.
Место в рейтинге
Место получает репозиторий, у которого выполнены три условия:
- оценка посчитана;
- собрано не меньше 60% данных по доступным категориям;
- проект самостоятельный: не форк, не зеркало, не шаблон и не копия без своей работы.
Место равно числу репозиториев с более высокой оценкой плюс один и считается по всему рейтингу, а не по текущему фильтру. При равной оценке место общее и показывается диапазоном: 5–7.
Остальные собраны на вкладке «Вне рейтинга» с указанной причиной: пустой, копия или форк, меньше 60% данных, ещё не проверен. Отчёт у них открыт, просто без места. Форки и зеркала называет сам SourceCraft; копии мы находим по одинаковому содержимому или общему первому коммиту. Как только автор начинает дорабатывать проект, он становится самостоятельным.
Схема, имена условные. Порядок внутри общего места задаёт сортировка, место от неё не зависит.
Что не влияет на оценку
- лайки и звёздыпо ним можно отсортировать таблицу, на место они не влияют
- внешний CI без конфига SourceCraftего запусков мы не видим
- число сопровождающихуказанных в профиле
- частота запусков CIсама по себе
- авторы коммитовотдельной строкой: они уже внутри «Активности»
Карточка «Если сделать» в отчёте считает обратную задачу: насколько вырастет итог, если довести одну метрику до 100, а остальное оставить как есть. Прирост считается той же формулой, что и сама оценка, поэтому обещание сходится с результатом.
Версии методики
- v1.418 октября 2026
Пустой трекер: 35 у небольших команд, 50 у зеркал и внешней разработки. Молодой трекер и вспышка коммитов — Issues не выше 60. Давность коммита не ниже 20 после 90 дней.
- v1.317 октября 2026
Code health с поправкой на размер кода: старые TODO на 1000 строк, FIXME лучшим из двух способов. Разработка вне площадки больше не снижает «Активность».
- Правила рейтинга28 сентября 2026
Форки, зеркала, шаблоны и копии без своей работы не получают места. Формула не менялась.
- v1.226 сентября 2026
CI/CD: доля успешных прогонов по последним 20, а не за 90 дней.
- v1.126 сентября 2026
Security учитывает находки, исчезнувшие из сканов основной ветки. TODO/FIXME считаются только как метки в комментариях.