Поняття

Індекс здоров'я

Як inspect.software обчислює індекс здоров'я відкритого коду 1–100 — компоненти, метрики, зважені категорії та правила для відсутніх даних.

Методологія v2.10.0Оновлено 2026-08-04

Кожен репозиторій у публічному реєстрі має індекс здоров'я: єдине ціле число від 1 до 100, що підсумовує публічно видиму практику інженерії, супроводу, безпеки та врядування. Індекс існує для того, щоб бібліотеку можна було з одного погляду порівняти з альтернативами — але він є вершиною повністю прозорої ієрархії, а не чорною скринькою.

Сигнали, а не гарантії. Високий індекс відображає публічно видиму добру практику. Це не аудит коду й не гарантія безпеки — див. як читати результати.

Трирівнева ієрархія

Індекс згортається через три задокументовані рівні:

  1. Компоненти — окремі спостережувані факти (файл ліцензії існує, останній реліз вийшов 40 днів тому, бас-фактор дорівнює 3). Кожен компонент має фіксовану вагу всередині своєї метрики.
  2. Метрики — зважені суми компонентів, кожна — ціле число в діапазоні 1–100. Приклади: активність розробки, стійкість мейнтейнерів, стан безпеки.
  3. Категорії — зважені середні своїх метрик, також у діапазоні 1–100. Шість зважених категорій: Життєздатність, Спільнота та впровадження, Сталість та врядування, Інженерна якість, Безпека та — з навмисно малою вагою — Готовність до ШІ.

Загальний індекс здоров'я починається як зважене середнє доступних категорій:

Ефективна вага метрики в загальному індексі — це вага категорії × вага в межах категорії. Кожен звіт показує цю цифру на картці кожної метрики, і кожне опубліковане значення відповідає одному з семи діапазонів рейтингу.

Калібрування за публічним реєстром

Далі зважене середнє калібрується на опубліковану шкалу індексу через фіксовану монотонну криву, прив'язану до емпіричного розподілу публічного реєстру. Саме калібрування надає діапазонам перцентильного змісту — Винятковий справді є найвищим рівнем реєстру — і дозволяє індексу використовувати весь діапазон 1–100 замість тіснити половину реєстру у двадцять його балів. Угорі крива насичується: сире зважене середнє 91 і вище публікується як 100 — саме тому репозиторій без жодного сигналу Готовності до ШІ (4% сирої ваги) все одно може досягти 100/100. Сире зважене середнє залишається видимим у кожному звіті в overall.inputs.weighted_overall_raw, тож арифметика цілком придатна до аудиту. Значення категорій і метрик публікуються без калібрування — крива описує лише загальний індекс і допасована лише до нього.

Тривожні сигнали встановлюють стелю індексу

Чотири політики стоять поза зваженим середнім. Жодна з них не винагороджує чистий результат — репозиторій без знахідок просто зберігає свій калібрований індекс, — але підтверджена знахідка множить опубліковане значення і в найтяжчих випадках утримує його під оголошеною стелею:

ПолітикаДіє наСтеля
Шкідливі залежностістан безпеки та загальний індекс19 — вершина Критичного
Покинутістьзагальний індекс34 за ймовірної, 19 за заявленої
Пов’язаність із Юрисдикціями Високого Ризикустан безпеки та загальний індекс34 — вершина У зоні ризику
Автентичність ростукомпоненти зірок і форків у популярностінемає

Від методології v1.13.0 політики більше не накладаються одна на одну. Найсуворіша, що спрацювала, керує сама, а решта повідомляються, не зрушуючи значення вдруге: множник каже, наскільки серйозна знахідка, а значення, помножене двічі, — це число, якого не обирала жодна політика й жодна не може пояснити. Репозиторії, чиї свідчення не дають відповіді на питання політики, читаються як неперевірені й ніколи не караються за цю прогалину.

Відсутні дані — це ніколи не нуль

Якщо базові дані компонента недоступні — реєстр не публікує цифр завантажень, список контриб'юторів неможливо вибрати — компонент виключається, а ваги решти перенормовуються. Те саме правило діє рівнем вище: метрика без даних стає null, і її категорія перерозподіляє вагу; категорія без жодної оцінюваної метрики випадає із загального індексу.

Це правило є осердям справедливості. Проєкт вимірюється лише за тим, що справді можна спостерігати, а відсутність доказів звітується як відсутність — поле note метрики фіксує кожну перенормалізацію, тож читач завжди знає, що було виміряно, а що ні.

Як читати звіт

  • Читайте профіль, а не лише число. 74 на збалансованих категоріях — це інша пропозиція, ніж 74, що маскує значення Безпеки 25. Радарна діаграма звіту робить профілі з піками та проваллями видимими одразу.
  • Перевіряйте діапазони. Значення відповідають семи стандартизованим діапазонам від exceptional до critical; пороги діапазонів є частиною версіонованої методології.
  • Переобчислюйте будь-що. Кожна метрика відтворює у звіті свої вхідні дані та бали за компонентами, тож будь-яке опубліковане значення можна верифікувати вручну за розділом data JSON-звіту.
  • Читайте кандидатів один проти одного. Індекс має сенс лише поруч з альтернативами, які справді розглядаються. Подання порівняння ставить до шести записів на один набір осей — профіль категорій, траєкторію росту й кожну базову цифру, — тож розкид між ними видно, а не доводиться його виводити.

Версіонування

Формули, ваги та пороги діапазонів версіонуються як єдине ціле. Будь-яка зміна підвищує версію метрик, зафіксовану в кожному звіті, а повна історія публічна — див. версії методології. Частини методології можна вимикати для окремого сканування; звіт тоді документує, що саме було вимкнено — див. конфігурацію сканування.

Дивіться також: діапазони рейтингу · рівні сертифікації · класифікація ПЗ · сигнали, а не гарантії · версії методології