Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.26.0 · метрики 1.13.0 · 2026-07-22 08:02 UTC

llvm-hs / llvm-hs

Haskell bindings for LLVM

LLVMЛіцензію не виявлено★ 534 зірки⑂ 129 форківз січ. 2017 р.Переглянути на GitHub ↗

llvm-hs/llvm-hs має індекс здоров’я 24 зі 100, що відповідає смузі «Критичний». Найвищий показник — Sustainability & Governance (65/100), найнижчий — Vitality (17/100). Останнє оновлення було 733 дні тому. Більшість нещодавньої роботи виконують 2 учасники.

24
загалом / 100
Критичний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

24
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

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

Abandonment Policy applies a 60% multiplier to weighted overall health and gives it a ceiling of 49.

Власність

llvm-hsОрганізація
19 підписників8 публічних репозиторіївз січ. 2017 р.

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

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

17Критичний · 22% загального індексу
Як обчислюється оцінка
0/36Свіжість push — останній push 733 дн. тому
0/36Ритм комітів — 0/52 тижнів із комітами
0/18Обсяг комітів — 0 комітів за останній рік
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Використані вхідні дані
commits_last_year0
human_commit_share1
days_since_last_push733
active_weeks_last_year0

Дисципліна релізів

40У зоні ризику
Як обчислюється оцінка
16.2/27Випускає релізи — 5 тегів версій (без релізів GitHub)
0/36Свіжість релізів — останній реліз 3 059 дн. тому
19.8/27Ритм релізів — реліз кожні ~64,7 дн.
0/10OpenSSF Scorecard: Signed-Releases — немає даних
Використані вхідні дані
releases_count5
latest_release_tagv6.0.0
releases_from_tagsтак
days_since_latest_release3 059
mean_days_between_releases64,7
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Signed-Releases. Залишкові ваги перенормовано.

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

48У зоні ризику · 18% загального індексу
Як обчислюється оцінка
44.2/60Зірки — 534 зірок
17.6/25Форки — 129 форків
7.1/15Спостерігачі — 20 спостерігачів
Використані вхідні дані
forks129
stars534
watchers20
growth_stateorganic
growth_factor_pct100
Як обчислюється оцінка
22.5/22.5README
0/22.5Ліцензія — файлу ліцензії не виявлено
0/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseні
has_contributingні
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

65Помірний · 24% загального індексу
Як обчислюється оцінка
25.2/54Бас-фактор — на 2 контриб’ютор(ів) припадає половина всіх комітів
12.9/22.5Розподіл комітів — головний контриб’ютор — автор 43% комітів
13.5/13.5Широта контриб’юторів — 43 контриб’юторів
10/10OpenSSF Scorecard: Contributors — project has 31 contributing companies or organizations
Використані вхідні дані
bus_factor2
contributors_sampled43
top_contributor_share0,426
Як обчислюється оцінка
37.1/46.8Вирішення issue — закрито 79% issue
35/38.3Прийняття PR — злито 202/221 вирішених PR
4.5/15OpenSSF Scorecard: Code-Review — Found 4/11 approved changesets -- score normalized to 3
Використані вхідні дані
merged_prs202
open_issues40
closed_issues153
issue_closed_ratio0,793
closed_unmerged_prs19
Як обчислюється оцінка
30/30Підтримка власника — у власності організації
0/20Верифікований домен
9.4/25Охоплення власника — 19 підписників у llvm-hs
18.9/25Послужний список — 8 публічних репозиторіїв, вік облікового запису ~9 р.
Використані вхідні дані
followers19
owner_typeOrganization
is_verified
owner_loginllvm-hs
public_repos8
account_age_days3 481

Інженерна якість

Чи наявні базові інженерні практики та документація?

38У зоні ризику · 20% загального індексу
Як обчислюється оцінка
0/24Процеси CI
24/24Наявні тести
0/16Конфігурація лінтера
0/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — 0 out of 11 merged PRs checked by a CI test -- score normalized to 0
Використані вхідні дані
has_ciні
has_testsтак
has_editorconfigні
has_linter_configні
has_precommit_configні

Документація

60Помірний
Як обчислюється оцінка
30/30README
0/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
10/10Теми — 5 тем
10/10Wiki
Використані вхідні дані
topicsllvm, llvm-hs, haskell-bindings, code-generation, llvm-ir
has_wikiтак
homepage
has_readmeтак
has_docs_dirні
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

28Критичний · 16% загального індексу

Стан безпеки

28Критичний
Як обчислюється оцінка
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 0 out of 11 merged PRs checked by a CI test -- score normalized to 0
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
2.2/7.5Code-Review — Found 4/11 approved changesets -- score normalized to 3
2.5/2.5Contributors — project has 31 contributing companies or organizations
0/10Dangerous-Workflow — немає даних
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Ліцензія — license file not detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
0/5Packaging — немає даних
0/5Pinned-Dependencies — немає даних
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — немає даних
0/7.5Token-Permissions — немає даних
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated13
scorecard_versionv5.5.0
checks_inconclusive5
scorecard_aggregate2,8
Виключено з оцінювання (немає даних або не застосовно): dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Залишкові ваги перенормовано.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

35У зоні ризику · 0% загального індексу
Як обчислюється оцінка
0/45Інструкції для агентів — немає CLAUDE.md / AGENTS.md / правил редактора
0/15Машиночитана документація (llms.txt)
25.1/40Читабельна історія комітів — намір зазначено у 47 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,47
agent_instruction_files
agent_instruction_max_bytes
Як обчислюється оцінка
0/18Розгортання однією командою
22/22Автоматизовані тести
0/11Конфігурація лінтера / форматера
0/11Статична перевірка типів
10/10Відтворюване середовище — Nix
0/10Підтверджена практика роботи з агентами — серед останніх 100 комітів немає створених агентом
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — немає даних
Використані вхідні дані
has_nixтак
has_testsтак
lockfiles
has_dockerfileні
typed_languageні
bootstrap_files
has_devcontainerні
has_linter_configні
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: Pinned-Dependencies. Залишкові ваги перенормовано.
Як обчислюється оцінка
0/45Типізований код — LLVM без конфігурації перевірки типів
55/55Керовані розміри файлів — 0/42 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languageLLVM
largest_source_bytes28 897
source_files_sampled42
oversized_source_files0

Ключові факти

534зірок GitHub
43контриб'юторів
0комітів за останні 12 місяців
733днів від останнього пушу
5релізів
2бас-фактор
40відкритих issue
пакетних екосистем

Попередження щодо збору даних

  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Докладніше

Історія зірок і форків 534 ★ / 129 ⇿
534Зірки
129Форки
5Релізи

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

0100200300400500600532118222017-012021-102026-07
Мажорні 2Мінорні 2Патчі 1

Кожна точка охоплює 9 днів.

OpenSSF Scorecard 2.8 / 10
2.8сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).Scorecard v5.5.0 · 2026-07-22 08:02 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
0CI-Tests0 out of 11 merged PRs checked by a CI test -- score normalized to 0
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
3Code-ReviewFound 4/11 approved changesets -- score normalized to 3
10Contributorsproject has 31 contributing companies or organizations
н/дDangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
н/дPackagingpackaging workflow not detected
н/дPinned-Dependenciesno dependencies found
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
н/дSigned-Releasesno releases found
н/дToken-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
Усі залежності не зібрано

Не вдалося зібрати розв'язаний набір залежностей для цього звіту: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Звіт у форматі JSON машиночитний
{
  "data": {
    "repo": {
      "topics": [
        "llvm",
        "llvm-hs",
        "haskell-bindings",
        "code-generation",
        "llvm-ir"
      ],
      "is_fork": false,
      "size_kb": 27152,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C": 36593,
        "C++": 116255,
        "Nix": 1628,
        "LLVM": 76290454,
        "Haskell": 781785
      },
      "pushed_at": "2024-07-18T16:19:06Z",
      "created_at": "2017-01-06T19:25:26Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-18T20:32:38Z",
      "description": "Haskell bindings for LLVM",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "llvm-12",
      "license_spdx_raw": null,
      "primary_language": "LLVM",
      "significant_languages": [
        "LLVM"
      ]
    },
    "owner": {
      "blog": null,
      "name": "llvm-hs",
      "type": "Organization",
      "login": "llvm-hs",
      "company": null,
      "location": null,
      "followers": 19,
      "avatar_url": "https://avatars.githubusercontent.com/u/24985976?v=4",
      "created_at": "2017-01-08T08:26:04Z",
      "is_verified": null,
      "public_repos": 8,
      "account_age_days": 3481
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v6.0.0",
          "kind": "major",
          "published_at": "2018-03-06T13:36:01Z"
        },
        {
          "tag": "v5.1.1",
          "kind": "patch",
          "published_at": "2017-12-16T13:35:33Z"
        },
        {
          "tag": "v5.1.0",
          "kind": "minor",
          "published_at": "2017-10-12T09:21:46Z"
        },
        {
          "tag": "v5.0.0",
          "kind": "major",
          "published_at": "2017-09-07T20:14:09Z"
        },
        {
          "tag": "v4.2.0",
          "kind": "minor",
          "published_at": "2017-06-20T13:47:20Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "423220bffac4990d019fc088c46c5f25310d5a33",
          "body": "As far as I understand, it's the recommended implementation of the\nObjectLayer at the moment. RuntimeDyld was designed for MCJIT and is\nbeing phased out (I think).",
          "is_bot": false,
          "headline": "Add support for ObjectLinkingLayer",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2022-10-11T13:35:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d694c1a0d8941591dffb8c2f7877712e04ab3e7e",
          "body": null,
          "is_bot": false,
          "headline": "Add support for defining absolute symbols in JITDylibs",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2022-09-07T13:18:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "789e2b9e8b827d4c5e15b997f16e395fd2259c0f",
          "body": "Those are generally tiny functions that we should encourage GHC to\ninline. The same approach is taken e.g. by the transformers library.",
          "is_bot": false,
          "headline": "Add INLINE annotations to monadic typeclasses",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2022-03-16T11:41:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eda85a2bbe362a0b89df5adce0cb65e4e755eac5",
          "body": "`cxx-flags` aren't applied to `c-sources`, causing build errors on macOS.",
          "is_bot": false,
          "headline": "Use cxx-sources instead of c-sources in the Cabal file",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2022-02-04T21:13:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a1fa3a81b5b5f58852e7c502b84f22847f34a0d",
          "body": null,
          "is_bot": false,
          "headline": "Expose MustProgress function attribute in the AST (+ encode + decode)",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2022-02-04T21:13:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92d153600930ef23efa163c12655c4d119ace610",
          "body": null,
          "is_bot": false,
          "headline": "Add support for adding object files to a JITDylib.",
          "author_name": "Dougal",
          "author_login": "dougalm",
          "committed_at": "2022-01-31T18:05:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9db657851caf0aa7805b26bcedbd5f445b70f929",
          "body": "* IR-builder: use first terminator during codegen\r\n\r\nPreviously, the latest terminator instruction was always used (`br`,\r\n`condBr`, `ret`, ...). This limited composability when creating\r\ncombinators based on the IR builder.\r\n\r\nNow, we keep track of the first terminator which is more in line with\r\nh\n[…]\ny, this ret instruction would not be emitted!\r\n          ret (bit 0)\r\n\r\n      ret (bit 1)\r\n```\r\n\r\n* Add tests for emitting only first terminator\r\n\r\n* Update CHANGELOG\r\n\r\n* Add nested control flow test",
          "is_bot": false,
          "headline": "Better handling of terminators in IR builder (llvm-12) (#368)",
          "author_name": "Luc Tielen",
          "author_login": "luc-tielen",
          "committed_at": "2021-10-15T11:44:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b87bfaf729fdef9c6bcfaa69267ae4d553fdf658",
          "body": "Add int16 helper function",
          "is_bot": false,
          "headline": "Merge pull request #365 from luc-tielen/int16-helper-function",
          "author_name": "Luc Tielen",
          "author_login": "luc-tielen",
          "committed_at": "2021-10-13T06:44:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb81e470eefabf87b48915733f7a491a5a4b998c",
          "body": null,
          "is_bot": false,
          "headline": "Add int16 helper function",
          "author_name": "Luc Tielen",
          "author_login": "luc-tielen",
          "committed_at": "2021-09-23T14:31:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80e881257e356edea333b8da65eb46782a8d3b14",
          "body": "…resses #363)",
          "is_bot": false,
          "headline": "Eliminate use of Template Haskell from LLVM.Internal.FFI.Builder (add…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-09-02T13:52:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a64c808277a7475ff32b74d006d278b5e048ab6d",
          "body": "…I layer to make it easier to debug when things go wrong",
          "is_bot": false,
          "headline": "Begin to refactor away the horrendous macro metaprogramming in the FF…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-09-01T16:10:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "daa835b8c1bd5f48886e312f80755eb1b641d90c",
          "body": null,
          "is_bot": false,
          "headline": "Add note about implementation of new functionality to README",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-09-01T09:20:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "226dafdcf1356175237492d666a3e6fa584d9e94",
          "body": null,
          "is_bot": false,
          "headline": "Point to llvm-hs-examples in the README",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-09-01T09:17:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77704c8776b68ddb3b719b3e016bb45c833b5f59",
          "body": null,
          "is_bot": false,
          "headline": "Update README to explain a little more how the project is structured.",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-08-31T16:20:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc4a4ea3bb62747415f713b97691bbcb1b8e37a9",
          "body": "…e old, stale text, and encourage creation of issues for incomplete LLVM API coverage.",
          "is_bot": false,
          "headline": "More FFI gardening addressing #358, and update to the README to remov…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-08-31T15:19:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24deb7771914693cde4bc0ceb5421373cc118013",
          "body": "…diagnose what is causing the failures. Audit LLVM.Internal.FFI.Type for duplication of the LLVM C API and remove it (addresses #358).",
          "is_bot": false,
          "headline": "Turn off FNeg tests again so that we can work on making it easier to …",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-08-31T14:07:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bc0f8aa91935b4b7b628b05675441565fb97eaf",
          "body": null,
          "is_bot": false,
          "headline": "Add FNeg specific test case",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-08-31T13:28:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c8795a95a8001c424af81a05b8ffacd774e76bd",
          "body": null,
          "is_bot": false,
          "headline": "Remove 'flags' stanza from stack.yaml",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-16T07:16:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ef6876fc68b7e67c06930af1d53f3f67a418598",
          "body": "…strip off an index while processing 'NamedTypeReference's in constant expressions",
          "is_bot": false,
          "headline": "Fix bug in the type indexing logic in LLVM.AST.Typed: we erroneously …",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-15T16:09:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44926b5635f04deeefb60e73f478ac3d123ecf87",
          "body": null,
          "is_bot": false,
          "headline": "Apply 'typeOf' change in 'LLVM.IRBuilder.Instruction.fneg'",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-15T14:48:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d2025cf7a0bb3573c898edfa3b66fae8feeaaaf",
          "body": "…r'. Fixes #351.",
          "is_bot": false,
          "headline": "Deal with failure of type resolution as opposed to just calling 'erro…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-15T14:45:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5c566a2636ba1052fc143336ad5743f595d9fba",
          "body": null,
          "is_bot": false,
          "headline": "Fix warning",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-15T12:26:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b5a82872b5ca8e9cf7c4a0f672591c3ad18233c2",
          "body": null,
          "is_bot": false,
          "headline": "Restore 'ghc-options' in stack.yaml. Fixes #354",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-15T12:25:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e3235201018eecb5edf4e40e01de1b0bd7d31ec",
          "body": "…type of a getelementptr instruction, show the invalid index so the user has some chance of fixing the problem.",
          "is_bot": false,
          "headline": "When encountering an invalid struct index while computing the result …",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-15T12:04:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "351683ed1c2f6b329e62439d42a158b1d804b846",
          "body": "Fixes #354",
          "is_bot": false,
          "headline": "cabal: move ghc-options from stack.yaml to llvm-hs.cabal",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2021-07-08T09:54:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e52d884d44b7daaa4dc101f28903229c98f2999",
          "body": "…ith or without RTTI. Reinstate the unfortunately necessary  stanza in . Fixes #354.",
          "is_bot": false,
          "headline": "Add a user flag to control whether the build assumes LLVM was built w…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-07T17:37:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0011d78bc6b7c5adb92dfc1199016169f5b1fcea",
          "body": null,
          "is_bot": false,
          "headline": "Fix stale line in previous merge",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-07T16:38:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "227a33c183a4abc5dfbee50081ee793348e38355",
          "body": "* Build fix for GHC-9\r\n\r\nFixes #338\r\n\r\n* Build fix for GHC-8.6\r\n\r\n* Build fix for GHC>=8.10\r\n\r\nFixes #315 (properly)\r\n\r\nCo-authored-by: Andrew Anderson <aanderso@tcd.ie>",
          "is_bot": false,
          "headline": "Build fixes (#352)",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2021-07-07T16:27:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "132eb7cdf72305d8c62f976c26f2e5aec6bc5fa8",
          "body": "* Handle NamedTypeReference in typeOf\r\n\r\n* Fix warning due to unused captures\r\n\r\n* Add a test for the resolution of typedefs (i.e. NamedTypeReference) in constant expressions\r\n\r\n* Add support for more DWARF operators (partially addresses #306)\r\n\r\n* Print an explicit error message for unhandled top-l\n[…]\nhe LLVM tools with debug info emission turned on (for example, 'clang -g' will produce IR that crashes llvm-hs).\r\n\r\n* Fix two type signatures that got lost in the cherry-picking from the llvm-9 branch",
          "is_bot": false,
          "headline": "Cherry-pick fixes from the llvm-9 branch (#353)",
          "author_name": "Andrew Anderson",
          "author_login": "andrew-wja",
          "committed_at": "2021-07-07T16:21:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d8c71f10691c4f0f6a4df05c76add91d11427cdb",
          "body": null,
          "is_bot": false,
          "headline": "Clean up cc-options in llvm-hs/llvm-hs.cabal",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-05-24T09:21:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a4f74ece083bd5824d16f44582b8b9f07492a82",
          "body": null,
          "is_bot": false,
          "headline": "Rewrite some more of the OrcJIT tests for OrcJITv2 (#340)",
          "author_name": "Andrew Anderson",
          "author_login": "andrew-wja",
          "committed_at": "2021-05-21T11:03:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04a28862f717c8e54400cc390c1e3e295c770b06",
          "body": "* Apply fix for #315 and update C++ standard version (LLVM 12 uses C++14)\r\n\r\n* Update build options and README to address #315",
          "is_bot": false,
          "headline": "Fix #315 (#339)",
          "author_name": "Andrew Anderson",
          "author_login": "andrew-wja",
          "committed_at": "2021-05-20T10:40:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4aad4c4060a582c49116b70037d96eb863891e20",
          "body": "…ileUnit -- change it in llvm-hs also to avoid divergence",
          "is_bot": false,
          "headline": "Upstream changed the name of the debugBaseAddress parameter to DIComp…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T14:20:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be81b4c47ff479d0ecfcc9ae2ca71b76c58c9bed",
          "body": "…nings generated by code in the LLVM release/9.x branch",
          "is_bot": false,
          "headline": "Add -Wno-init-list-lifetime options to cc-options to silence many war…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T14:20:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "721727464bed33420a60e6ef44f77f326adc21c8",
          "body": null,
          "is_bot": false,
          "headline": "Add support for the FNeg instruction",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T08:14:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b0126bf17529666461ac13a3c939d0fc3e4fbd0f",
          "body": "…e getElementPtrType or getElementType",
          "is_bot": false,
          "headline": "Provide at least the bare minimum of help to the user when they misus…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T08:14:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57da69772c0231e0e0b346c05bedaedc92eaecc6",
          "body": null,
          "is_bot": false,
          "headline": "Depth 1 clone for llvm",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T08:14:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b1fe58a679298df4146faee874aff048d1d0bbf",
          "body": "…y LLVM components, remove hardcoded parallelism limits and let cmake figure things out automatically",
          "is_bot": false,
          "headline": "Update the CI configuration -- don't build or download any unnecessar…",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T08:14:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48cec38fbb4c9b5e3c045b2b59c613def4df38e0",
          "body": "The symbols they call in the LLVM C bindings are not resolved (as of 12 Apr 2021 and possibly before). (#322)\r\n\r\nIt seems reasonable to expect users of llvm-hs to be able to compose `writeFile stderr <$> ppLlvm <$> moduleAST`\r\n\r\nSince LLVM 12 changed the mask argument of `shufflevector` to a constant vector of `Int32`, `ppLlvm` requires a `Typed` instance for `[Int32]` for the above snippet to work properly.",
          "is_bot": false,
          "headline": "Remove dumpModule and dumpMetadata functions",
          "author_name": "Andrew Anderson",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T08:10:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe126832c25d3d9c95dfb78b3d946b5f383b6a96",
          "body": null,
          "is_bot": false,
          "headline": "Restore getSymbolAddressInProcess",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2021-04-28T08:09:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "285024daf27aaae9a3a1a2df3eccaf43d41bf3e3",
          "body": "https://github.com/llvm/llvm-project/commit/65fd034b95d69fa0e634861ee165b502ceb92a12",
          "is_bot": false,
          "headline": "Fix Optimization.hs test: willreturn attributes are now inferred.",
          "author_name": "Shaurya Gupta",
          "author_login": "sureyeaah",
          "committed_at": "2021-04-28T08:09:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac42828bf88ae206b5b0b59a64b719501ab44a46",
          "body": null,
          "is_bot": false,
          "headline": "Remove OrcJITv1, lots of cleanups and fixes.",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2021-04-28T08:08:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d8f7bb4a1bfadf9f7b5ec67cf8375466172a82c",
          "body": "Update llvm-hs from LLVM 9 to LLVM 12.\n\nList of changes:\n\n- Attributes\n  - Various minor changes, not listed in detail.\n- Debug information\n  - DIFlag: BlockByrefStruct and ArgumentNotModified removed.\n  - DISubrange\n    - New arguments: upperBound and stride.\n    - Arguments {lowerBound,upperBound,\n[…]\ncJIT v2.\n- Update installation instructions for llvm-hs@llvm-12.\n- Fix CI for llvm-hs@llvm-12.\n  - Vote for using GitHub Actions instead of Travis CI.\n\nCo-authored-by: Adam Paszke <apaszke@google.com>",
          "is_bot": false,
          "headline": "[WIP] Upgrade llvm-hs to LLVM 12.",
          "author_name": "Dan Zheng",
          "author_login": "dan-zheng",
          "committed_at": "2021-04-28T08:07:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e4631c091b31588f97e19c52ebba9902b369906f",
          "body": "* Add support for atomicrmw on floating point types\r\n\r\n* Generate rmw operation enum instead of defining separately",
          "is_bot": false,
          "headline": "Add support for atomicrmw on floating point types (#280)",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2021-04-28T08:05:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b2b4f9885e012b673a0c62de4c90dd9b6f2c7b1",
          "body": "This reverts commit 5eac40827f256f40fe5a13b70635ef1aff3f0f6f.\n\nThis functionality is not in LLVM 9 and so shouldn't be on this branch",
          "is_bot": false,
          "headline": "Revert \"Add support for atomicrmw on floating point types (#280)\"",
          "author_name": "Andrew",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-28T07:59:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc2d49c3c51b0e86e2f47b924bf486ff20bf1211",
          "body": "There is still a lot of stuff missing but given that the existing API\r\nis going to go away in the next major LLVM release, I’m going to merge\r\nthis in the current state so we have at least something after that.",
          "is_bot": false,
          "headline": "First bindings for OrcJIT V2 (#286)",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2021-04-24T10:44:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5add12cca9647cf432ef248e1391fe3a67b70a0b",
          "body": "\r\n- Fix all outstanding warnings when building against LLVM 9.0.1\r\n- Remove deprecated `ListT` instances\r\n- Remove redundant imports\r\n- Correct hard-coded assumption that size_t is 32 bits in `LLVM.AST.Constant`\r\n- Add a matching non-constant sizeof in `LLVM.IRBuilder.Instruction`\r\n- Update test for extractValue in `LLVM.Test.Constants` and add a link to the upstream bug filed on the LLVM bugzilla",
          "is_bot": false,
          "headline": "Gardening on the LLVM 9 branch (#325)",
          "author_name": "Andrew Anderson",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-23T10:16:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fb9b5006704404cb5768873f828ffa883873ef07",
          "body": "* Handle NamedTypeReference in extractValue\r\n\r\nextractValue would error if given an alias to a struct/array,\r\nsince it relied on extractValueType that doesn't know about\r\naliases.\r\n\r\nNow it calls out the same function gep uses for type resolution.\r\nBecause gep also accepts pointers and vector types,\n[…]\ned types were given\r\n\r\nFixes #295\r\n\r\n* Add missing HasCallStack for gep / extractValue\r\n\r\nErrors in `gep` would not show the call stack due to this\r\n\r\nCo-authored-by: Andrew Anderson <aanderso@tcd.ie>",
          "is_bot": false,
          "headline": "Handle NamedTypeReference in extractValue (#317)",
          "author_name": "Daniel Gorin",
          "author_login": "jcpetruzza",
          "committed_at": "2021-04-23T09:57:32Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c801232ad06c73b6c6d73cea820a00717263daaa",
          "body": "`extractValue` is modified so that it can reconstruct its return type even in\r\nthe presence of `NamedTypeReference`. This implies a MonadModuleBuilder dependency as in `gep` because named type references need to be looked up in the module builder state.\r\n\r\nCo-authored-by: Guerric Chupin <guerric@chnik.fr>\r\nCo-authored-by: Andrew Anderson <aanderso@tcd.ie>",
          "is_bot": false,
          "headline": "[IRBuilder] Perform named type lookup in extractValue",
          "author_name": "GuerricChupin",
          "author_login": "GuerricChupin",
          "committed_at": "2021-04-22T20:23:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "957b74b33d04b6d7ab883bbd9f4d13a16fcafab1",
          "body": "Fix typeOf const struct whose type is named. Previously, the explicit struct type was emitted instead of the associated type name, making the AST uneccesarily verbose.",
          "is_bot": false,
          "headline": "Merge pull request #319 from jcpetruzza/fix-typeof-const-struct",
          "author_name": "Andrew Anderson",
          "author_login": "andrew-wja",
          "committed_at": "2021-04-22T17:58:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9a10fd5f2e95058de5abf11d7d96d55240c4d8fb",
          "body": "For a constant structure `c`, `typeOf c` would always return\na structure type with the type of all the values. However,\nwhen the constant structure has a named type reference as\ntype, that should be used instead.\n\nThis issue manifests when using llvm-hs-pretty, that can then\nproduce invalid LLVM IR.\n[…]\nlobal { i32, %t } {i32 42, %t {i8 42}}\n```\n\nWhen pretty-printed we get:\n\n```\n%t = type { i8 }\n@g = global { i32, %t } {i32 42, {i8} {i8 42}}\n```\n\nwhich LLVM rejects due to the `%t` vs `{i8}` mismatch.",
          "is_bot": false,
          "headline": "Fix typeOf const struct whose type is named",
          "author_name": "Daniel Gorin",
          "author_login": "jcpetruzza",
          "committed_at": "2021-03-15T22:43:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "442bc488c39f0264930c95e2c98b5cf055d53e8e",
          "body": "…y (#314)\n\nThis is useful when the compilation process is driven from outside of\r\nHaskell, making it impossible to know the regions in which they are\r\nvalid ahead of time.",
          "is_bot": false,
          "headline": "Make it possible to manage Contexts and Modules in a non-bracketed wa…",
          "author_name": "Adam Paszke",
          "author_login": "apaszke",
          "committed_at": "2020-12-24T08:50:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a48170078dcf492860a00e70dedb65833f6aef54",
          "body": null,
          "is_bot": false,
          "headline": "Add call stacks to partial functions (#305)",
          "author_name": "Roman Cheplyaka",
          "author_login": "UnkindPartition",
          "committed_at": "2020-10-05T19:33:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8ef009876f6345cb066ab96330fee20578ba488c",
          "body": null,
          "is_bot": false,
          "headline": "Link to mcc blog series from README (#302)",
          "author_name": "Joseph Morag",
          "author_login": "jmorag",
          "committed_at": "2020-10-05T19:28:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4eb579a4cfc1e413dbc2eb232df07bf7e0126f77",
          "body": "…-initialization (addressing #262) (#297)\n\nAdd NamedTypeReference to the set of allowable types in constant zero-initialization (addressing #262)",
          "is_bot": false,
          "headline": "Add NamedTypeReference to the set of allowable types in constant zero…",
          "author_name": "andrew-wja",
          "author_login": "andrew-wja",
          "committed_at": "2020-05-03T15:09:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86fc9a2042bbf82e4f3273980add3273032b85d5",
          "body": null,
          "is_bot": false,
          "headline": "Fix CI (#300)",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2020-05-01T10:05:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3a6fd0a7308ebf5fd820bc53106c7d8e98ea472",
          "body": null,
          "is_bot": false,
          "headline": "Upgrade travis deps (#285)",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-11-16T09:45:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e3adea5a3e7da074274bd1181cdd4ca728df3cae",
          "body": "fixes #282",
          "is_bot": false,
          "headline": "Support NoFree attribute (#284)",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-11-16T06:39:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5eac40827f256f40fe5a13b70635ef1aff3f0f6f",
          "body": "* Add support for atomicrmw on floating point types\r\n\r\n* Generate rmw operation enum instead of defining separately",
          "is_bot": false,
          "headline": "Add support for atomicrmw on floating point types (#280)",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2019-09-30T18:37:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "496072bad0068e48734942821594fbd77d9cd18b",
          "body": null,
          "is_bot": false,
          "headline": "Update changelog for 9.0.1",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-09-28T14:07:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f2ea875b7dc243ee332d7b3a5304b941abcec94",
          "body": "* Update stack.yaml\r\n\r\n* Build fix for C++11 narrowing conversion",
          "is_bot": false,
          "headline": "Build fix for C++11 narrowing conversion (#279)",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2019-09-26T10:56:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0307ac4db95da30c10c98d20cdbde6744870eae3",
          "body": "* Expose LLVMOffsetOfElement",
          "is_bot": false,
          "headline": "Expose LLVMOffsetOfElement (#277)",
          "author_name": "Deian Stefan",
          "author_login": "deian",
          "committed_at": "2019-09-26T06:54:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ddd23bf0379c863cec4ac03f17e03f4654f7f8dc",
          "body": null,
          "is_bot": false,
          "headline": "Set changelog dates",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-09-06T05:44:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d08076125057e64702c5f4f189852ecae326cdd",
          "body": "* Upgrade to llvm 9\r\n\r\n* Fix GHC < 8.8\r\n\r\n* Update changelog",
          "is_bot": false,
          "headline": "Upgrade to llvm 9 (#275)",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-09-06T05:30:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1b75e71fcba09312662a61946ddf6b933d87cba",
          "body": "* Improve performance of fresh name generation\r\n\r\n* Make fresh name gen unambiguous\r\n\r\n* Fix failing tests due to change in fresh name gen",
          "is_bot": false,
          "headline": "Improve performance of fresh name generation (#271)",
          "author_name": "Luc Tielen",
          "author_login": "luc-tielen",
          "committed_at": "2019-07-24T18:44:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a82af1b8cb2480734c442286dccffbccc9464fc",
          "body": null,
          "is_bot": false,
          "headline": "Point to newer nixpkgs (#270)",
          "author_name": "Luc Tielen",
          "author_login": "luc-tielen",
          "committed_at": "2019-07-24T00:04:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da64b02bcca059686a98c3a6458c0314eb6be77d",
          "body": "Make withHostTargetMachine accept the code model, relocation model, and\r\noptimization level as arguments rather than assume the defaults.\r\n\r\nCloses #263.",
          "is_bot": false,
          "headline": "withHostTargetMachine: make some options configurable (#264)",
          "author_name": "Roman Cheplyaka",
          "author_login": "UnkindPartition",
          "committed_at": "2019-06-09T11:47:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2dd2ba135633ac1732d9f24827436088855693b9",
          "body": "…260)\n\nSee http://nondot.org/sabre/LLVMNotes/SizeOf-OffsetOf-VariableSizedStructs.txt",
          "is_bot": false,
          "headline": "Add platform independant sizeof primitive to IRBuilder.Instruction (#…",
          "author_name": "James Faure",
          "author_login": "jfaure",
          "committed_at": "2019-05-16T05:32:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0a62ed96bb3706ae5f15e98b866ddb2acc864a1",
          "body": null,
          "is_bot": false,
          "headline": "Add changelog entry for globalStringPtr change",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-05-15T17:39:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "07e9b5396dd09f8afab8fb66c36350126c05e521",
          "body": "…tant Gep instruction) (#258)",
          "is_bot": false,
          "headline": "globalStringPtr now returns returns a constant (changed to use a cons…",
          "author_name": "James Faure",
          "author_login": "jfaure",
          "committed_at": "2019-05-15T17:30:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de19e8cbe21c932c31d3f3bedd9ada6fccd2c2c2",
          "body": null,
          "is_bot": false,
          "headline": "Add changelog entry for IRBuilder.Constant change",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-04-14T16:15:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2b44bbe323af4b36847c8c0baaf96491922ba1e",
          "body": null,
          "is_bot": false,
          "headline": "No monadic context for IRBuilder.Constant convenience functions (#255)",
          "author_name": "James Faure",
          "author_login": "jfaure",
          "committed_at": "2019-04-14T16:11:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "debc885ac87d13036f92e3ed271a58997e93ea00",
          "body": "Fix installation instructions for macOS",
          "is_bot": false,
          "headline": "Merge pull request #251 from eugmes/macos-instructions-fix",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2019-03-29T14:56:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b6c35ac24ad5fcfbc8b9e6f301f1df4a3e65e88",
          "body": "The Homebrew formula is called llvm-8 and not llvm-8.0.",
          "is_bot": false,
          "headline": "Fix installation instructions for macOS",
          "author_name": "Eugeniy Meshcheryakov",
          "author_login": "eugmes",
          "committed_at": "2019-03-29T10:48:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3fa58aa5b0271d6dd565c7ffcc30c1de49b9d78c",
          "body": null,
          "is_bot": false,
          "headline": "Remove redundant import",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-03-10T15:00:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ceb9d7d2bb43b319c9a3cecc80bc699903507ac",
          "body": null,
          "is_bot": false,
          "headline": "Fix warnings in globalStringPtr",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-03-10T14:58:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68fe71f4c970a82453f85d50defe18f913ee3c1e",
          "body": null,
          "is_bot": false,
          "headline": "Update source repository branches",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-03-10T14:51:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b67f9bcc9ec472acc06da249fe8a4810b35c5464",
          "body": null,
          "is_bot": false,
          "headline": "Add release dates to changelog",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-03-10T14:46:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14cd8933c19edd7685af84fd3e7a5948f31a47a7",
          "body": "…… (#246)\n\n* Fixed globalStringPtr to emit a gep (rather than a bitcast), and moved it to IRBuilder/Instruction.hs\r\n\r\n* Add int8 to IRBuilder/Constant.hs",
          "is_bot": false,
          "headline": "Fixed globalStringPtr to emit a gep (rather than a bitcast), and move…",
          "author_name": "James Faure",
          "author_login": "jfaure",
          "committed_at": "2019-03-10T14:44:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "601443f123cb387ee0dc2279454abc9b8521a2b8",
          "body": "* Port to LLVM 8.0",
          "is_bot": false,
          "headline": "Port to LLVM 8.0 (#249)",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-03-10T14:41:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "530b2b82254e8474bce627ba0ebdebca041898bc",
          "body": null,
          "is_bot": false,
          "headline": "remove huge test",
          "author_name": "Deian Stefan",
          "author_login": "deian",
          "committed_at": "2019-03-07T19:08:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "898dbaf90d7004b88bb5d68b3db95e7cb0c28fb4",
          "body": null,
          "is_bot": false,
          "headline": "Support for UTF encoding",
          "author_name": "Deian Stefan",
          "author_login": "deian",
          "committed_at": "2019-03-07T19:08:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d51b39ba2d6f05cdfe760f8682f4790f6b7a32df",
          "body": "Fixes llvm-hs/llvm-hs#241",
          "is_bot": false,
          "headline": "update README.md",
          "author_name": "Trevor L. McDonell",
          "author_login": "tmcdonell",
          "committed_at": "2019-02-18T18:44:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d4ce40d793bfb5fa31f8c597b48241e7d1b140a7",
          "body": "fixes #242",
          "is_bot": false,
          "headline": "Make value field in DITemplateValueParameter optional",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2019-01-12T19:06:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4ece6be7c0fddab52a7b799d980757599860f5a",
          "body": null,
          "is_bot": false,
          "headline": "add support for mod dwarf op",
          "author_name": "Deian Stefan",
          "author_login": "deian",
          "committed_at": "2019-01-12T15:44:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b232a633a03049bec2571e6774648230efb99915",
          "body": null,
          "is_bot": false,
          "headline": "add not to pattern",
          "author_name": "Deian Stefan",
          "author_login": "deian",
          "committed_at": "2019-01-08T19:23:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b8b7e5059e4c01f8dd4f660ffd8f9a04023e64b1",
          "body": null,
          "is_bot": false,
          "headline": "Add support for additional DW_OPs",
          "author_name": "Deian Stefan",
          "author_login": "deian",
          "committed_at": "2019-01-08T19:23:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fc2a3e6fc3adba19399f388a7b753a1cba09a7ec",
          "body": "fixes #233",
          "is_bot": false,
          "headline": "Add regression test for metadata fixes",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-12-23T12:15:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8deed899c907e74d12e41eff0b38fc643e61f46e",
          "body": null,
          "is_bot": false,
          "headline": "Make type' field in DITemplateParameter optional",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-12-23T12:15:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a7e5183c37004a4b49b3b95d8369749efd0f37b",
          "body": null,
          "is_bot": false,
          "headline": "Make baseType field optional",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-12-23T12:15:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afeff2b5d99fb3a3a6fed22125e8f15e2d93d69b",
          "body": null,
          "is_bot": false,
          "headline": "Update shell.nix",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-12-23T12:15:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7361d8a8472a1e7590a83fe8ca922d414e717be7",
          "body": null,
          "is_bot": false,
          "headline": "use c++11 language",
          "author_name": "Csaba Hruska",
          "author_login": "csabahruska",
          "committed_at": "2018-12-17T19:55:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4cf8da9e29a4b5a8c1c3851dcf72d00fbce216e4",
          "body": null,
          "is_bot": false,
          "headline": "Add links to LLVM Reference in IRBuilder.Instruction",
          "author_name": "Ville Tirronen",
          "author_login": "aleator",
          "committed_at": "2018-12-06T06:23:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1b6bf6f3a731c924f3538ed8f3faebaf06ff152d",
          "body": null,
          "is_bot": false,
          "headline": "Fix documentation links for token and label types",
          "author_name": "Ievgenii Meshcheriakov",
          "author_login": null,
          "committed_at": "2018-11-30T17:25:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "85d82fa1db0c11f377616c0cebafc8299bde822b",
          "body": "Was casting from a charStar to a charStar instead of a *byteArray to a\ncharStar and causing an LLVM type error.",
          "is_bot": false,
          "headline": "Fix type error in globalStringPtr BitCast",
          "author_name": "Joseph Morag",
          "author_login": "jmorag",
          "committed_at": "2018-11-30T17:24:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe274ba407b6c094325e530438b7951af8ffa64d",
          "body": "fixes #230",
          "is_bot": false,
          "headline": "Do not throw due to name collisions if variables have empty names",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-10-30T16:57:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6c3e746c7643f39b00f0873fd97eacff79984c7",
          "body": null,
          "is_bot": false,
          "headline": "Bump pretty-show upper bound",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-10-30T16:43:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ecebd73760149fdecf05d1ba5047e94f0c48524c",
          "body": null,
          "is_bot": false,
          "headline": "Add missing srem instruction to IRBuilder.",
          "author_name": "Eric Walkingshaw",
          "author_login": "walkie",
          "committed_at": "2018-10-16T18:20:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98bdac30091ff51bf0c1778d88af9d789f63c3d9",
          "body": null,
          "is_bot": false,
          "headline": "Bump up the version from 6 to 7",
          "author_name": "Jaseem Abid",
          "author_login": "jaseemabid",
          "committed_at": "2018-10-15T09:03:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d85be6bd5a13b80d9d46743a183bdf915a2b7461",
          "body": null,
          "is_bot": false,
          "headline": "Support llvm-config executables named llvm-config-7",
          "author_name": "Moritz Kiefer",
          "author_login": "cocreature",
          "committed_at": "2018-09-29T08:06:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 5,
      "commits_last_year": 0,
      "latest_release_at": "2018-03-06T13:36:01Z",
      "latest_release_tag": "v6.0.0",
      "releases_from_tags": true,
      "days_since_last_push": 733,
      "active_weeks_last_year": 0,
      "days_since_latest_release": 3059,
      "mean_days_between_releases": 64.7
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 25,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 129,
      "stars": 534,
      "watchers": 20,
      "fork_history": {
        "days": [
          {
            "date": "2017-01-08",
            "count": 2
          },
          {
            "date": "2017-01-11",
            "count": 1
          },
          {
            "date": "2017-03-03",
            "count": 1
          },
          {
            "date": "2017-03-07",
            "count": 1
          },
          {
            "date": "2017-03-13",
            "count": 1
          },
          {
            "date": "2017-03-18",
            "count": 1
          },
          {
            "date": "2017-03-21",
            "count": 1
          },
          {
            "date": "2017-04-17",
            "count": 1
          },
          {
            "date": "2017-04-20",
            "count": 1
          },
          {
            "date": "2017-05-05",
            "count": 1
          },
          {
            "date": "2017-05-24",
            "count": 1
          },
          {
            "date": "2017-06-17",
            "count": 1
          },
          {
            "date": "2017-06-27",
            "count": 1
          },
          {
            "date": "2017-07-06",
            "count": 1
          },
          {
            "date": "2017-07-16",
            "count": 1
          },
          {
            "date": "2017-09-05",
            "count": 1
          },
          {
            "date": "2017-10-08",
            "count": 1
          },
          {
            "date": "2017-10-22",
            "count": 1
          },
          {
            "date": "2017-10-25",
            "count": 1
          },
          {
            "date": "2017-12-12",
            "count": 1
          },
          {
            "date": "2017-12-21",
            "count": 1
          },
          {
            "date": "2018-02-01",
            "count": 1
          },
          {
            "date": "2018-03-24",
            "count": 1
          },
          {
            "date": "2018-04-02",
            "count": 1
          },
          {
            "date": "2018-05-31",
            "count": 1
          },
          {
            "date": "2018-06-08",
            "count": 2
          },
          {
            "date": "2018-06-09",
            "count": 1
          },
          {
            "date": "2018-08-22",
            "count": 1
          },
          {
            "date": "2018-09-24",
            "count": 1
          },
          {
            "date": "2018-10-12",
            "count": 1
          },
          {
            "date": "2018-10-15",
            "count": 2
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2018-12-02",
            "count": 1
          },
          {
            "date": "2018-12-13",
            "count": 1
          },
          {
            "date": "2018-12-17",
            "count": 2
          },
          {
            "date": "2019-02-01",
            "count": 1
          },
          {
            "date": "2019-03-18",
            "count": 1
          },
          {
            "date": "2019-03-19",
            "count": 1
          },
          {
            "date": "2019-04-18",
            "count": 1
          },
          {
            "date": "2019-04-23",
            "count": 1
          },
          {
            "date": "2019-05-25",
            "count": 1
          },
          {
            "date": "2019-06-07",
            "count": 1
          },
          {
            "date": "2019-07-23",
            "count": 1
          },
          {
            "date": "2019-11-19",
            "count": 1
          },
          {
            "date": "2019-11-20",
            "count": 1
          },
          {
            "date": "2020-02-29",
            "count": 1
          },
          {
            "date": "2020-07-13",
            "count": 1
          },
          {
            "date": "2020-07-21",
            "count": 1
          },
          {
            "date": "2020-08-10",
            "count": 1
          },
          {
            "date": "2020-10-10",
            "count": 1
          },
          {
            "date": "2020-11-19",
            "count": 1
          },
          {
            "date": "2020-12-13",
            "count": 1
          },
          {
            "date": "2020-12-17",
            "count": 1
          },
          {
            "date": "2020-12-18",
            "count": 1
          },
          {
            "date": "2021-02-21",
            "count": 1
          },
          {
            "date": "2021-02-22",
            "count": 1
          },
          {
            "date": "2021-03-20",
            "count": 1
          },
          {
            "date": "2021-04-26",
            "count": 1
          },
          {
            "date": "2021-05-26",
            "count": 1
          },
          {
            "date": "2021-08-08",
            "count": 1
          },
          {
            "date": "2021-11-12",
            "count": 1
          },
          {
            "date": "2021-11-14",
            "count": 1
          },
          {
            "date": "2021-11-26",
            "count": 1
          },
          {
            "date": "2021-11-28",
            "count": 1
          },
          {
            "date": "2021-11-30",
            "count": 1
          },
          {
            "date": "2022-01-30",
            "count": 1
          },
          {
            "date": "2022-01-31",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-05-25",
            "count": 1
          },
          {
            "date": "2022-07-03",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-10-07",
            "count": 1
          },
          {
            "date": "2022-10-11",
            "count": 1
          },
          {
            "date": "2022-10-30",
            "count": 1
          },
          {
            "date": "2023-01-27",
            "count": 1
          },
          {
            "date": "2023-01-30",
            "count": 1
          },
          {
            "date": "2023-02-15",
            "count": 1
          },
          {
            "date": "2023-05-20",
            "count": 1
          },
          {
            "date": "2023-06-05",
            "count": 1
          },
          {
            "date": "2023-06-25",
            "count": 1
          },
          {
            "date": "2023-06-27",
            "count": 1
          },
          {
            "date": "2023-06-28",
            "count": 1
          },
          {
            "date": "2023-07-30",
            "count": 1
          },
          {
            "date": "2023-09-03",
            "count": 1
          },
          {
            "date": "2023-09-23",
            "count": 1
          },
          {
            "date": "2023-10-26",
            "count": 1
          },
          {
            "date": "2023-10-28",
            "count": 1
          },
          {
            "date": "2023-12-04",
            "count": 1
          },
          {
            "date": "2023-12-11",
            "count": 1
          },
          {
            "date": "2023-12-31",
            "count": 1
          },
          {
            "date": "2024-02-14",
            "count": 1
          },
          {
            "date": "2024-02-27",
            "count": 1
          },
          {
            "date": "2024-03-16",
            "count": 1
          },
          {
            "date": "2024-04-09",
            "count": 1
          },
          {
            "date": "2024-04-26",
            "count": 1
          },
          {
            "date": "2024-06-30",
            "count": 1
          },
          {
            "date": "2024-07-11",
            "count": 1
          },
          {
            "date": "2024-07-18",
            "count": 1
          },
          {
            "date": "2024-07-22",
            "count": 1
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-19",
            "count": 1
          },
          {
            "date": "2024-12-08",
            "count": 1
          },
          {
            "date": "2025-01-01",
            "count": 1
          },
          {
            "date": "2025-03-16",
            "count": 1
          },
          {
            "date": "2025-03-24",
            "count": 1
          },
          {
            "date": "2025-06-25",
            "count": 1
          },
          {
            "date": "2025-07-18",
            "count": 1
          },
          {
            "date": "2025-09-28",
            "count": 1
          },
          {
            "date": "2025-10-10",
            "count": 1
          },
          {
            "date": "2025-11-05",
            "count": 1
          },
          {
            "date": "2025-11-16",
            "count": 1
          },
          {
            "date": "2026-04-04",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 118,
        "total_forks": 129
      },
      "star_history": {
        "days": [
          {
            "date": "2017-01-08",
            "count": 6
          },
          {
            "date": "2017-01-09",
            "count": 1
          },
          {
            "date": "2017-01-11",
            "count": 3
          },
          {
            "date": "2017-01-15",
            "count": 1
          },
          {
            "date": "2017-01-19",
            "count": 2
          },
          {
            "date": "2017-01-20",
            "count": 2
          },
          {
            "date": "2017-01-21",
            "count": 1
          },
          {
            "date": "2017-01-24",
            "count": 1
          },
          {
            "date": "2017-01-27",
            "count": 1
          },
          {
            "date": "2017-02-10",
            "count": 1
          },
          {
            "date": "2017-02-24",
            "count": 1
          },
          {
            "date": "2017-02-26",
            "count": 1
          },
          {
            "date": "2017-03-12",
            "count": 1
          },
          {
            "date": "2017-03-16",
            "count": 2
          },
          {
            "date": "2017-03-19",
            "count": 11
          },
          {
            "date": "2017-03-20",
            "count": 8
          },
          {
            "date": "2017-03-21",
            "count": 2
          },
          {
            "date": "2017-03-22",
            "count": 3
          },
          {
            "date": "2017-03-23",
            "count": 5
          },
          {
            "date": "2017-03-24",
            "count": 1
          },
          {
            "date": "2017-03-25",
            "count": 1
          },
          {
            "date": "2017-03-27",
            "count": 1
          },
          {
            "date": "2017-03-28",
            "count": 2
          },
          {
            "date": "2017-03-31",
            "count": 1
          },
          {
            "date": "2017-04-09",
            "count": 1
          },
          {
            "date": "2017-04-11",
            "count": 1
          },
          {
            "date": "2017-04-12",
            "count": 1
          },
          {
            "date": "2017-04-13",
            "count": 1
          },
          {
            "date": "2017-04-17",
            "count": 5
          },
          {
            "date": "2017-04-18",
            "count": 1
          },
          {
            "date": "2017-04-19",
            "count": 4
          },
          {
            "date": "2017-04-22",
            "count": 1
          },
          {
            "date": "2017-04-23",
            "count": 2
          },
          {
            "date": "2017-04-26",
            "count": 2
          },
          {
            "date": "2017-04-29",
            "count": 1
          },
          {
            "date": "2017-05-02",
            "count": 1
          },
          {
            "date": "2017-05-04",
            "count": 2
          },
          {
            "date": "2017-05-08",
            "count": 1
          },
          {
            "date": "2017-05-15",
            "count": 1
          },
          {
            "date": "2017-05-29",
            "count": 1
          },
          {
            "date": "2017-06-03",
            "count": 1
          },
          {
            "date": "2017-06-05",
            "count": 1
          },
          {
            "date": "2017-06-09",
            "count": 1
          },
          {
            "date": "2017-06-17",
            "count": 1
          },
          {
            "date": "2017-06-25",
            "count": 2
          },
          {
            "date": "2017-06-26",
            "count": 1
          },
          {
            "date": "2017-06-27",
            "count": 1
          },
          {
            "date": "2017-06-28",
            "count": 1
          },
          {
            "date": "2017-06-29",
            "count": 1
          },
          {
            "date": "2017-07-07",
            "count": 1
          },
          {
            "date": "2017-07-13",
            "count": 1
          },
          {
            "date": "2017-07-26",
            "count": 2
          },
          {
            "date": "2017-07-27",
            "count": 2
          },
          {
            "date": "2017-07-28",
            "count": 1
          },
          {
            "date": "2017-07-30",
            "count": 1
          },
          {
            "date": "2017-08-29",
            "count": 1
          },
          {
            "date": "2017-09-05",
            "count": 1
          },
          {
            "date": "2017-09-07",
            "count": 2
          },
          {
            "date": "2017-09-08",
            "count": 3
          },
          {
            "date": "2017-09-09",
            "count": 1
          },
          {
            "date": "2017-09-18",
            "count": 1
          },
          {
            "date": "2017-09-20",
            "count": 1
          },
          {
            "date": "2017-10-04",
            "count": 1
          },
          {
            "date": "2017-10-06",
            "count": 1
          },
          {
            "date": "2017-10-12",
            "count": 1
          },
          {
            "date": "2017-10-14",
            "count": 2
          },
          {
            "date": "2017-10-20",
            "count": 2
          },
          {
            "date": "2017-10-31",
            "count": 1
          },
          {
            "date": "2017-11-25",
            "count": 2
          },
          {
            "date": "2017-11-29",
            "count": 1
          },
          {
            "date": "2017-12-04",
            "count": 1
          },
          {
            "date": "2017-12-12",
            "count": 1
          },
          {
            "date": "2017-12-13",
            "count": 1
          },
          {
            "date": "2017-12-25",
            "count": 1
          },
          {
            "date": "2017-12-27",
            "count": 1
          },
          {
            "date": "2017-12-29",
            "count": 1
          },
          {
            "date": "2018-01-02",
            "count": 1
          },
          {
            "date": "2018-01-05",
            "count": 3
          },
          {
            "date": "2018-01-06",
            "count": 1
          },
          {
            "date": "2018-01-08",
            "count": 2
          },
          {
            "date": "2018-01-20",
            "count": 1
          },
          {
            "date": "2018-01-24",
            "count": 2
          },
          {
            "date": "2018-02-02",
            "count": 1
          },
          {
            "date": "2018-02-06",
            "count": 1
          },
          {
            "date": "2018-02-09",
            "count": 1
          },
          {
            "date": "2018-02-13",
            "count": 1
          },
          {
            "date": "2018-02-14",
            "count": 2
          },
          {
            "date": "2018-03-02",
            "count": 1
          },
          {
            "date": "2018-03-06",
            "count": 2
          },
          {
            "date": "2018-03-13",
            "count": 1
          },
          {
            "date": "2018-03-17",
            "count": 1
          },
          {
            "date": "2018-03-18",
            "count": 1
          },
          {
            "date": "2018-03-23",
            "count": 1
          },
          {
            "date": "2018-03-26",
            "count": 1
          },
          {
            "date": "2018-04-02",
            "count": 1
          },
          {
            "date": "2018-04-09",
            "count": 3
          },
          {
            "date": "2018-04-17",
            "count": 1
          },
          {
            "date": "2018-04-22",
            "count": 1
          },
          {
            "date": "2018-04-29",
            "count": 1
          },
          {
            "date": "2018-04-30",
            "count": 1
          },
          {
            "date": "2018-05-05",
            "count": 1
          },
          {
            "date": "2018-05-08",
            "count": 1
          },
          {
            "date": "2018-05-16",
            "count": 1
          },
          {
            "date": "2018-05-25",
            "count": 1
          },
          {
            "date": "2018-05-31",
            "count": 1
          },
          {
            "date": "2018-06-03",
            "count": 1
          },
          {
            "date": "2018-06-08",
            "count": 2
          },
          {
            "date": "2018-06-09",
            "count": 3
          },
          {
            "date": "2018-06-14",
            "count": 1
          },
          {
            "date": "2018-07-06",
            "count": 1
          },
          {
            "date": "2018-07-08",
            "count": 1
          },
          {
            "date": "2018-07-09",
            "count": 1
          },
          {
            "date": "2018-07-10",
            "count": 1
          },
          {
            "date": "2018-07-19",
            "count": 1
          },
          {
            "date": "2018-08-07",
            "count": 1
          },
          {
            "date": "2018-08-18",
            "count": 1
          },
          {
            "date": "2018-08-23",
            "count": 1
          },
          {
            "date": "2018-08-26",
            "count": 2
          },
          {
            "date": "2018-08-27",
            "count": 3
          },
          {
            "date": "2018-09-14",
            "count": 1
          },
          {
            "date": "2018-09-16",
            "count": 1
          },
          {
            "date": "2018-09-18",
            "count": 1
          },
          {
            "date": "2018-09-22",
            "count": 1
          },
          {
            "date": "2018-09-29",
            "count": 1
          },
          {
            "date": "2018-09-30",
            "count": 1
          },
          {
            "date": "2018-10-03",
            "count": 1
          },
          {
            "date": "2018-10-09",
            "count": 1
          },
          {
            "date": "2018-10-11",
            "count": 1
          },
          {
            "date": "2018-10-15",
            "count": 2
          },
          {
            "date": "2018-10-18",
            "count": 1
          },
          {
            "date": "2018-10-22",
            "count": 1
          },
          {
            "date": "2018-11-08",
            "count": 1
          },
          {
            "date": "2018-11-13",
            "count": 1
          },
          {
            "date": "2018-11-15",
            "count": 1
          },
          {
            "date": "2018-11-18",
            "count": 1
          },
          {
            "date": "2018-11-23",
            "count": 1
          },
          {
            "date": "2018-11-27",
            "count": 2
          },
          {
            "date": "2018-11-30",
            "count": 1
          },
          {
            "date": "2018-12-08",
            "count": 1
          },
          {
            "date": "2018-12-11",
            "count": 1
          },
          {
            "date": "2018-12-13",
            "count": 1
          },
          {
            "date": "2018-12-17",
            "count": 1
          },
          {
            "date": "2018-12-29",
            "count": 1
          },
          {
            "date": "2019-01-03",
            "count": 1
          },
          {
            "date": "2019-01-06",
            "count": 1
          },
          {
            "date": "2019-01-17",
            "count": 1
          },
          {
            "date": "2019-01-30",
            "count": 3
          },
          {
            "date": "2019-02-13",
            "count": 1
          },
          {
            "date": "2019-02-21",
            "count": 1
          },
          {
            "date": "2019-02-22",
            "count": 1
          },
          {
            "date": "2019-03-09",
            "count": 1
          },
          {
            "date": "2019-03-10",
            "count": 1
          },
          {
            "date": "2019-03-11",
            "count": 1
          },
          {
            "date": "2019-03-18",
            "count": 1
          },
          {
            "date": "2019-03-26",
            "count": 2
          },
          {
            "date": "2019-03-27",
            "count": 1
          },
          {
            "date": "2019-04-10",
            "count": 1
          },
          {
            "date": "2019-04-11",
            "count": 1
          },
          {
            "date": "2019-04-14",
            "count": 1
          },
          {
            "date": "2019-04-15",
            "count": 1
          },
          {
            "date": "2019-04-22",
            "count": 1
          },
          {
            "date": "2019-04-25",
            "count": 1
          },
          {
            "date": "2019-04-29",
            "count": 1
          },
          {
            "date": "2019-05-02",
            "count": 1
          },
          {
            "date": "2019-05-03",
            "count": 1
          },
          {
            "date": "2019-05-06",
            "count": 1
          },
          {
            "date": "2019-05-09",
            "count": 1
          },
          {
            "date": "2019-05-10",
            "count": 1
          },
          {
            "date": "2019-05-15",
            "count": 1
          },
          {
            "date": "2019-06-11",
            "count": 1
          },
          {
            "date": "2019-06-22",
            "count": 1
          },
          {
            "date": "2019-06-23",
            "count": 1
          },
          {
            "date": "2019-06-24",
            "count": 1
          },
          {
            "date": "2019-07-11",
            "count": 2
          },
          {
            "date": "2019-07-13",
            "count": 1
          },
          {
            "date": "2019-07-17",
            "count": 1
          },
          {
            "date": "2019-08-03",
            "count": 1
          },
          {
            "date": "2019-08-04",
            "count": 1
          },
          {
            "date": "2019-08-13",
            "count": 1
          },
          {
            "date": "2019-08-19",
            "count": 2
          },
          {
            "date": "2019-08-30",
            "count": 2
          },
          {
            "date": "2019-09-04",
            "count": 1
          },
          {
            "date": "2019-09-06",
            "count": 3
          },
          {
            "date": "2019-09-08",
            "count": 1
          },
          {
            "date": "2019-09-10",
            "count": 2
          },
          {
            "date": "2019-09-18",
            "count": 1
          },
          {
            "date": "2019-09-19",
            "count": 1
          },
          {
            "date": "2019-09-20",
            "count": 1
          },
          {
            "date": "2019-09-30",
            "count": 1
          },
          {
            "date": "2019-10-07",
            "count": 1
          },
          {
            "date": "2019-10-10",
            "count": 1
          },
          {
            "date": "2019-10-16",
            "count": 1
          },
          {
            "date": "2019-10-22",
            "count": 1
          },
          {
            "date": "2019-10-24",
            "count": 1
          },
          {
            "date": "2019-10-28",
            "count": 1
          },
          {
            "date": "2019-11-23",
            "count": 1
          },
          {
            "date": "2019-11-28",
            "count": 1
          },
          {
            "date": "2019-12-03",
            "count": 2
          },
          {
            "date": "2019-12-20",
            "count": 2
          },
          {
            "date": "2019-12-30",
            "count": 1
          },
          {
            "date": "2020-01-04",
            "count": 1
          },
          {
            "date": "2020-01-08",
            "count": 2
          },
          {
            "date": "2020-01-14",
            "count": 1
          },
          {
            "date": "2020-01-20",
            "count": 1
          },
          {
            "date": "2020-02-09",
            "count": 1
          },
          {
            "date": "2020-02-11",
            "count": 1
          },
          {
            "date": "2020-02-28",
            "count": 1
          },
          {
            "date": "2020-03-05",
            "count": 1
          },
          {
            "date": "2020-03-07",
            "count": 2
          },
          {
            "date": "2020-03-08",
            "count": 1
          },
          {
            "date": "2020-03-18",
            "count": 1
          },
          {
            "date": "2020-03-21",
            "count": 1
          },
          {
            "date": "2020-04-05",
            "count": 1
          },
          {
            "date": "2020-04-07",
            "count": 1
          },
          {
            "date": "2020-04-14",
            "count": 3
          },
          {
            "date": "2020-04-16",
            "count": 1
          },
          {
            "date": "2020-04-17",
            "count": 1
          },
          {
            "date": "2020-04-18",
            "count": 1
          },
          {
            "date": "2020-04-19",
            "count": 2
          },
          {
            "date": "2020-04-23",
            "count": 1
          },
          {
            "date": "2020-05-01",
            "count": 1
          },
          {
            "date": "2020-05-05",
            "count": 3
          },
          {
            "date": "2020-05-06",
            "count": 2
          },
          {
            "date": "2020-05-09",
            "count": 1
          },
          {
            "date": "2020-05-10",
            "count": 1
          },
          {
            "date": "2020-05-11",
            "count": 1
          },
          {
            "date": "2020-05-14",
            "count": 1
          },
          {
            "date": "2020-05-15",
            "count": 1
          },
          {
            "date": "2020-05-24",
            "count": 1
          },
          {
            "date": "2020-05-26",
            "count": 1
          },
          {
            "date": "2020-05-28",
            "count": 1
          },
          {
            "date": "2020-06-18",
            "count": 1
          },
          {
            "date": "2020-06-26",
            "count": 1
          },
          {
            "date": "2020-07-11",
            "count": 1
          },
          {
            "date": "2020-07-24",
            "count": 1
          },
          {
            "date": "2020-07-27",
            "count": 1
          },
          {
            "date": "2020-07-28",
            "count": 1
          },
          {
            "date": "2020-07-31",
            "count": 1
          },
          {
            "date": "2020-08-05",
            "count": 1
          },
          {
            "date": "2020-09-12",
            "count": 1
          },
          {
            "date": "2020-09-23",
            "count": 1
          },
          {
            "date": "2020-09-26",
            "count": 1
          },
          {
            "date": "2020-09-28",
            "count": 1
          },
          {
            "date": "2020-09-30",
            "count": 1
          },
          {
            "date": "2020-10-19",
            "count": 1
          },
          {
            "date": "2020-11-08",
            "count": 1
          },
          {
            "date": "2020-11-10",
            "count": 1
          },
          {
            "date": "2020-12-05",
            "count": 1
          },
          {
            "date": "2020-12-14",
            "count": 1
          },
          {
            "date": "2020-12-17",
            "count": 2
          },
          {
            "date": "2021-01-06",
            "count": 1
          },
          {
            "date": "2021-01-12",
            "count": 1
          },
          {
            "date": "2021-01-30",
            "count": 1
          },
          {
            "date": "2021-02-02",
            "count": 2
          },
          {
            "date": "2021-02-19",
            "count": 2
          },
          {
            "date": "2021-02-21",
            "count": 1
          },
          {
            "date": "2021-03-10",
            "count": 1
          },
          {
            "date": "2021-03-18",
            "count": 1
          },
          {
            "date": "2021-03-20",
            "count": 1
          },
          {
            "date": "2021-03-24",
            "count": 1
          },
          {
            "date": "2021-03-30",
            "count": 1
          },
          {
            "date": "2021-04-03",
            "count": 1
          },
          {
            "date": "2021-04-07",
            "count": 1
          },
          {
            "date": "2021-04-08",
            "count": 1
          },
          {
            "date": "2021-04-14",
            "count": 4
          },
          {
            "date": "2021-04-18",
            "count": 1
          },
          {
            "date": "2021-04-21",
            "count": 1
          },
          {
            "date": "2021-04-28",
            "count": 1
          },
          {
            "date": "2021-05-01",
            "count": 1
          },
          {
            "date": "2021-05-15",
            "count": 2
          },
          {
            "date": "2021-05-22",
            "count": 1
          },
          {
            "date": "2021-05-26",
            "count": 2
          },
          {
            "date": "2021-06-08",
            "count": 1
          },
          {
            "date": "2021-06-13",
            "count": 1
          },
          {
            "date": "2021-06-20",
            "count": 1
          },
          {
            "date": "2021-07-07",
            "count": 1
          },
          {
            "date": "2021-07-08",
            "count": 1
          },
          {
            "date": "2021-07-13",
            "count": 1
          },
          {
            "date": "2021-07-14",
            "count": 1
          },
          {
            "date": "2021-07-27",
            "count": 1
          },
          {
            "date": "2021-07-29",
            "count": 1
          },
          {
            "date": "2021-08-07",
            "count": 1
          },
          {
            "date": "2021-08-11",
            "count": 1
          },
          {
            "date": "2021-08-24",
            "count": 1
          },
          {
            "date": "2021-09-02",
            "count": 1
          },
          {
            "date": "2021-09-04",
            "count": 1
          },
          {
            "date": "2021-09-05",
            "count": 1
          },
          {
            "date": "2021-09-14",
            "count": 1
          },
          {
            "date": "2021-09-23",
            "count": 1
          },
          {
            "date": "2021-09-28",
            "count": 1
          },
          {
            "date": "2021-10-11",
            "count": 1
          },
          {
            "date": "2021-10-12",
            "count": 1
          },
          {
            "date": "2021-10-16",
            "count": 1
          },
          {
            "date": "2021-10-18",
            "count": 1
          },
          {
            "date": "2021-10-19",
            "count": 1
          },
          {
            "date": "2021-10-25",
            "count": 1
          },
          {
            "date": "2021-11-14",
            "count": 1
          },
          {
            "date": "2021-11-16",
            "count": 1
          },
          {
            "date": "2021-11-20",
            "count": 1
          },
          {
            "date": "2021-11-24",
            "count": 1
          },
          {
            "date": "2021-11-30",
            "count": 1
          },
          {
            "date": "2021-12-07",
            "count": 2
          },
          {
            "date": "2021-12-17",
            "count": 1
          },
          {
            "date": "2021-12-25",
            "count": 1
          },
          {
            "date": "2022-01-05",
            "count": 1
          },
          {
            "date": "2022-01-10",
            "count": 1
          },
          {
            "date": "2022-01-14",
            "count": 1
          },
          {
            "date": "2022-01-17",
            "count": 1
          },
          {
            "date": "2022-02-05",
            "count": 1
          },
          {
            "date": "2022-02-10",
            "count": 1
          },
          {
            "date": "2022-02-18",
            "count": 1
          },
          {
            "date": "2022-02-25",
            "count": 1
          },
          {
            "date": "2022-03-06",
            "count": 1
          },
          {
            "date": "2022-03-17",
            "count": 1
          },
          {
            "date": "2022-04-14",
            "count": 1
          },
          {
            "date": "2022-04-17",
            "count": 2
          },
          {
            "date": "2022-04-19",
            "count": 1
          },
          {
            "date": "2022-05-04",
            "count": 2
          },
          {
            "date": "2022-05-06",
            "count": 1
          },
          {
            "date": "2022-05-09",
            "count": 1
          },
          {
            "date": "2022-05-17",
            "count": 1
          },
          {
            "date": "2022-05-27",
            "count": 1
          },
          {
            "date": "2022-05-29",
            "count": 1
          },
          {
            "date": "2022-06-09",
            "count": 1
          },
          {
            "date": "2022-06-11",
            "count": 1
          },
          {
            "date": "2022-06-16",
            "count": 1
          },
          {
            "date": "2022-07-20",
            "count": 1
          },
          {
            "date": "2022-08-03",
            "count": 1
          },
          {
            "date": "2022-08-30",
            "count": 1
          },
          {
            "date": "2022-09-09",
            "count": 1
          },
          {
            "date": "2022-09-11",
            "count": 1
          },
          {
            "date": "2022-09-14",
            "count": 1
          },
          {
            "date": "2022-09-26",
            "count": 1
          },
          {
            "date": "2022-10-02",
            "count": 2
          },
          {
            "date": "2022-11-02",
            "count": 1
          },
          {
            "date": "2022-11-08",
            "count": 1
          },
          {
            "date": "2022-11-09",
            "count": 2
          },
          {
            "date": "2022-11-10",
            "count": 1
          },
          {
            "date": "2022-11-11",
            "count": 1
          },
          {
            "date": "2022-11-15",
            "count": 1
          },
          {
            "date": "2022-11-20",
            "count": 1
          },
          {
            "date": "2022-11-26",
            "count": 1
          },
          {
            "date": "2023-01-04",
            "count": 1
          },
          {
            "date": "2023-01-05",
            "count": 1
          },
          {
            "date": "2023-01-16",
            "count": 1
          },
          {
            "date": "2023-02-03",
            "count": 1
          },
          {
            "date": "2023-02-10",
            "count": 1
          },
          {
            "date": "2023-02-12",
            "count": 1
          },
          {
            "date": "2023-02-13",
            "count": 1
          },
          {
            "date": "2023-02-17",
            "count": 1
          },
          {
            "date": "2023-02-26",
            "count": 2
          },
          {
            "date": "2023-02-28",
            "count": 1
          },
          {
            "date": "2023-03-08",
            "count": 1
          },
          {
            "date": "2023-03-25",
            "count": 1
          },
          {
            "date": "2023-04-07",
            "count": 1
          },
          {
            "date": "2023-04-12",
            "count": 1
          },
          {
            "date": "2023-04-19",
            "count": 1
          },
          {
            "date": "2023-05-20",
            "count": 1
          },
          {
            "date": "2023-05-23",
            "count": 2
          },
          {
            "date": "2023-05-25",
            "count": 1
          },
          {
            "date": "2023-06-05",
            "count": 1
          },
          {
            "date": "2023-06-28",
            "count": 1
          },
          {
            "date": "2023-07-01",
            "count": 1
          },
          {
            "date": "2023-07-09",
            "count": 1
          },
          {
            "date": "2023-07-25",
            "count": 1
          },
          {
            "date": "2023-08-03",
            "count": 1
          },
          {
            "date": "2023-08-10",
            "count": 1
          },
          {
            "date": "2023-08-25",
            "count": 1
          },
          {
            "date": "2023-09-04",
            "count": 1
          },
          {
            "date": "2023-09-19",
            "count": 1
          },
          {
            "date": "2023-10-30",
            "count": 1
          },
          {
            "date": "2023-11-01",
            "count": 1
          },
          {
            "date": "2023-11-25",
            "count": 1
          },
          {
            "date": "2023-12-14",
            "count": 1
          },
          {
            "date": "2023-12-15",
            "count": 1
          },
          {
            "date": "2024-02-07",
            "count": 1
          },
          {
            "date": "2024-02-23",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-04-16",
            "count": 1
          },
          {
            "date": "2024-04-19",
            "count": 1
          },
          {
            "date": "2024-04-23",
            "count": 1
          },
          {
            "date": "2024-05-04",
            "count": 1
          },
          {
            "date": "2024-05-10",
            "count": 1
          },
          {
            "date": "2024-06-01",
            "count": 1
          },
          {
            "date": "2024-06-11",
            "count": 1
          },
          {
            "date": "2024-06-30",
            "count": 1
          },
          {
            "date": "2024-08-11",
            "count": 1
          },
          {
            "date": "2024-08-13",
            "count": 1
          },
          {
            "date": "2024-08-24",
            "count": 1
          },
          {
            "date": "2024-08-30",
            "count": 1
          },
          {
            "date": "2024-09-02",
            "count": 1
          },
          {
            "date": "2024-10-10",
            "count": 1
          },
          {
            "date": "2024-10-29",
            "count": 1
          },
          {
            "date": "2024-11-04",
            "count": 1
          },
          {
            "date": "2024-11-09",
            "count": 4
          },
          {
            "date": "2024-11-10",
            "count": 3
          },
          {
            "date": "2024-11-11",
            "count": 2
          },
          {
            "date": "2024-12-17",
            "count": 1
          },
          {
            "date": "2024-12-23",
            "count": 1
          },
          {
            "date": "2025-02-08",
            "count": 1
          },
          {
            "date": "2025-02-21",
            "count": 1
          },
          {
            "date": "2025-03-09",
            "count": 1
          },
          {
            "date": "2025-03-13",
            "count": 1
          },
          {
            "date": "2025-05-17",
            "count": 1
          },
          {
            "date": "2025-05-25",
            "count": 1
          },
          {
            "date": "2025-06-05",
            "count": 1
          },
          {
            "date": "2025-07-12",
            "count": 1
          },
          {
            "date": "2025-09-09",
            "count": 1
          },
          {
            "date": "2025-09-15",
            "count": 1
          },
          {
            "date": "2025-10-13",
            "count": 1
          },
          {
            "date": "2025-11-04",
            "count": 1
          },
          {
            "date": "2025-11-26",
            "count": 1
          },
          {
            "date": "2025-12-30",
            "count": 1
          },
          {
            "date": "2026-01-08",
            "count": 1
          },
          {
            "date": "2026-01-21",
            "count": 1
          },
          {
            "date": "2026-03-24",
            "count": 1
          },
          {
            "date": "2026-03-26",
            "count": 1
          },
          {
            "date": "2026-05-03",
            "count": 1
          },
          {
            "date": "2026-05-20",
            "count": 3
          },
          {
            "date": "2026-07-18",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 532,
        "total_stars": 534
      },
      "open_issues_and_prs": 64
    },
    "ai_readiness": {
      "has_nix": true,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [],
      "largest_source_bytes": 28897,
      "source_files_sampled": 42,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 24,
        "merged_prs": 202,
        "open_issues": 40,
        "closed_ratio": 0.793,
        "closed_issues": 153,
        "closed_unmerged_prs": 19
      },
      "bus_factor": 2,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "cocreature",
          "commits": 374,
          "avatar_url": "https://avatars.githubusercontent.com/u/1313584?v=4"
        },
        {
          "type": "User",
          "login": "bscarlet",
          "commits": 279,
          "avatar_url": "https://avatars.githubusercontent.com/u/4196463?v=4"
        },
        {
          "type": "User",
          "login": "ollef",
          "commits": 39,
          "avatar_url": "https://avatars.githubusercontent.com/u/197549?v=4"
        },
        {
          "type": "User",
          "login": "sdiehl",
          "commits": 32,
          "avatar_url": "https://avatars.githubusercontent.com/u/236767?v=4"
        },
        {
          "type": "User",
          "login": "andrew-wja",
          "commits": 32,
          "avatar_url": "https://avatars.githubusercontent.com/u/27865123?v=4"
        },
        {
          "type": "User",
          "login": "tmcdonell",
          "commits": 19,
          "avatar_url": "https://avatars.githubusercontent.com/u/728113?v=4"
        },
        {
          "type": "User",
          "login": "minad",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/50754?v=4"
        },
        {
          "type": "User",
          "login": "apaszke",
          "commits": 8,
          "avatar_url": "https://avatars.githubusercontent.com/u/4583066?v=4"
        },
        {
          "type": "User",
          "login": "aherrmann",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/732652?v=4"
        },
        {
          "type": "User",
          "login": "deian",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/374012?v=4"
        }
      ],
      "contributors_sampled": 43,
      "top_contributor_share": 0.426
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 0,
            "reason": "0 out of 11 merged PRs checked by a CI test -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 3,
            "reason": "Found 4/11 approved changesets -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 31 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "no dependencies found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "423220bffac4990d019fc088c46c5f25310d5a33",
        "ran_at": "2026-07-22T08:02:07Z",
        "aggregate_score": 2.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": null,
      "oldest_open_prs": [
        {
          "number": 373,
          "created_at": "2021-11-12T11:21:07Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 376,
          "created_at": "2021-11-26T02:25:44Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 377,
          "created_at": "2021-11-30T16:43:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 378,
          "created_at": "2021-12-31T01:15:53Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 379,
          "created_at": "2021-12-31T03:58:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 380,
          "created_at": "2022-01-14T10:20:46Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 381,
          "created_at": "2022-01-14T10:49:15Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 389,
          "created_at": "2022-03-17T21:42:04Z",
          "last_comment_at": "2023-02-05T01:03:12Z",
          "last_comment_author": "Bodigrim"
        },
        {
          "number": 406,
          "created_at": "2022-09-21T16:23:15Z",
          "last_comment_at": "2022-10-19T21:30:20Z",
          "last_comment_author": "npatsakula"
        },
        {
          "number": 410,
          "created_at": "2022-11-05T18:16:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 418,
          "created_at": "2023-03-28T18:09:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 422,
          "created_at": "2023-06-25T15:55:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 423,
          "created_at": "2023-06-25T19:40:08Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 424,
          "created_at": "2023-06-25T20:52:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 425,
          "created_at": "2023-06-28T10:49:35Z",
          "last_comment_at": "2024-04-14T12:39:59Z",
          "last_comment_author": "tomsmeding"
        },
        {
          "number": 426,
          "created_at": "2023-07-30T07:59:57Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 429,
          "created_at": "2024-02-27T14:52:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 430,
          "created_at": "2024-03-29T19:53:38Z",
          "last_comment_at": "2025-03-25T23:17:49Z",
          "last_comment_author": "cassandracomar"
        },
        {
          "number": 431,
          "created_at": "2024-07-11T13:56:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 432,
          "created_at": "2024-07-18T13:28:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2023-03-03T11:29:26Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 4,
          "created_at": "2017-01-07T14:06:01Z",
          "last_comment_at": "2017-01-07T14:33:42Z",
          "last_comment_author": "cocreature"
        },
        {
          "number": 130,
          "created_at": "2017-08-20T10:11:10Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 148,
          "created_at": "2017-10-18T13:45:35Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 259,
          "created_at": "2019-05-13T21:50:04Z",
          "last_comment_at": "2019-05-15T17:34:03Z",
          "last_comment_author": "cocreature"
        },
        {
          "number": 268,
          "created_at": "2019-07-17T14:27:52Z",
          "last_comment_at": "2021-12-03T22:29:52Z",
          "last_comment_author": "aboeglin"
        },
        {
          "number": 276,
          "created_at": "2019-09-06T05:15:18Z",
          "last_comment_at": "2021-05-26T15:29:29Z",
          "last_comment_author": "cartazio"
        },
        {
          "number": 290,
          "created_at": "2020-02-13T10:02:02Z",
          "last_comment_at": "2021-05-10T10:57:42Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 299,
          "created_at": "2020-04-30T19:11:58Z",
          "last_comment_at": "2021-06-15T12:24:56Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 304,
          "created_at": "2020-06-18T22:56:35Z",
          "last_comment_at": "2020-07-02T10:50:23Z",
          "last_comment_author": "tmcdonell"
        },
        {
          "number": 306,
          "created_at": "2020-07-16T17:05:02Z",
          "last_comment_at": "2021-06-16T09:45:32Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 307,
          "created_at": "2020-07-20T15:25:49Z",
          "last_comment_at": "2021-06-17T15:48:54Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 309,
          "created_at": "2020-08-25T09:59:39Z",
          "last_comment_at": "2021-05-10T10:47:29Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 310,
          "created_at": "2020-09-03T02:31:13Z",
          "last_comment_at": "2020-10-12T20:39:21Z",
          "last_comment_author": "TravisWhitaker"
        },
        {
          "number": 311,
          "created_at": "2020-09-05T03:02:32Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 312,
          "created_at": "2020-09-17T17:00:01Z",
          "last_comment_at": "2021-05-10T15:18:24Z",
          "last_comment_author": "sfultong"
        },
        {
          "number": 329,
          "created_at": "2021-04-28T08:55:18Z",
          "last_comment_at": "2021-08-14T09:37:25Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 334,
          "created_at": "2021-05-06T08:36:05Z",
          "last_comment_at": "2021-05-10T10:11:40Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 341,
          "created_at": "2021-05-21T11:53:24Z",
          "last_comment_at": "2021-11-02T13:21:48Z",
          "last_comment_author": "UnkindPartition"
        },
        {
          "number": 345,
          "created_at": "2021-06-08T15:18:54Z",
          "last_comment_at": "2021-06-09T19:13:01Z",
          "last_comment_author": "andrew-wja"
        },
        {
          "number": 349,
          "created_at": "2021-06-17T16:09:00Z",
          "last_comment_at": "2023-06-07T07:31:02Z",
          "last_comment_author": "aboeglin"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/llvm-hs/llvm-hs",
    "host": "github.com",
    "name": "llvm-hs",
    "owner": "llvm-hs"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "critical",
      "name": "Overall health",
      "note": "Abandonment Policy applies a 60% multiplier to weighted overall health and gives it a ceiling of 49.",
      "notes": [
        {
          "code": "abandonment_overall_adjustment",
          "params": {
            "cap": 49,
            "pct": 60
          }
        }
      ],
      "value": 24,
      "inputs": {
        "security": 28,
        "vitality": 17,
        "community": 48,
        "governance": 65,
        "engineering": 38,
        "abandonment_cap": 49,
        "abandonment_state": "likely_abandoned",
        "abandonment_multiplier": 60,
        "weighted_overall_before_abandonment": 40,
        "overall_after_abandonment_multiplier": 24
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "critical",
        "name": "Vitality",
        "value": 17,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "critical",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "commits_last_year": 0,
              "human_commit_share": 1,
              "days_since_last_push": 733,
              "active_weeks_last_year": 0
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 733 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 733
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "0/52 weeks with commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "0 commits in the last year",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "at_risk",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 40,
            "inputs": {
              "releases_count": 5,
              "latest_release_tag": "v6.0.0",
              "releases_from_tags": true,
              "days_since_latest_release": 3059,
              "mean_days_between_releases": 64.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "5 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 3059 days ago",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 3059
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~64.7 days",
                "points": 19.8,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 64.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "moderate",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "cap": 49,
              "state": "likely_abandoned",
              "guards": [],
              "signals": [
                "unanswered_contributions",
                "issue_rot",
                "release_stall",
                "scorecard_unmaintained"
              ],
              "red_flag": true,
              "multiplier_pct": 60,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": 20,
              "unanswered_open_issues": 9,
              "days_since_last_merged_pr": 1236,
              "days_since_last_human_commit": 1379,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "no human commit for 1379 days; 4 unmet obligation(s): pull requests unanswered, issues unanswered, releases stalled, Scorecard reports it unmaintained",
                "points": 60,
                "status": "partial",
                "details": [
                  {
                    "code": "abandonment_flagged",
                    "params": {
                      "days": 1379,
                      "count": 4,
                      "signals": "pull requests unanswered, issues unanswered, releases stalled, Scorecard reports it unmaintained"
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 48,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 69,
            "inputs": {
              "forks": 129,
              "stars": 534,
              "watchers": 20,
              "growth_state": "organic",
              "growth_factor_pct": 100
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "534 stars",
                "points": 44.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 534
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "129 forks",
                "points": 17.6,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 129
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "20 watchers",
                "points": 7.1,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 20
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 65,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 43,
              "top_contributor_share": 0.426
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "2 contributor(s) cover half of all commits",
                "points": 25.2,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 43% of commits",
                "points": 12.9,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 43
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "43 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 43
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 31 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "merged_prs": 202,
              "open_issues": 40,
              "closed_issues": 153,
              "issue_closed_ratio": 0.793,
              "closed_unmerged_prs": 19
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "79% of issues closed",
                "points": 37.1,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 79
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "202/221 decided PRs merged",
                "points": 35,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 202,
                      "decided": 221
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 4/11 approved changesets -- score normalized to 3",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "followers": 19,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "llvm-hs",
              "public_repos": 8,
              "account_age_days": 3481
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "organization-owned",
                "points": 30,
                "status": "met",
                "details": [
                  {
                    "code": "owner_organization",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "19 followers of llvm-hs",
                "points": 9.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 19,
                      "login": "llvm-hs"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "8 public repos, account ~9 yr old",
                "points": 18.9,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 8
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 9
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "at_risk",
        "name": "Engineering Quality",
        "value": 38,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "critical",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 24,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "0 out of 11 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "topics": [
                "llvm",
                "llvm-hs",
                "haskell-bindings",
                "code-generation",
                "llvm-ir"
              ],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "5 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "critical",
        "name": "Security",
        "value": 28,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 28,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 13,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 5,
              "scorecard_aggregate": 2.8
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "0 out of 11 merged PRs checked by a CI test -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 4/11 approved changesets -- score normalized to 3",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 31 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 11
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "at_risk",
        "name": "AI Readiness",
        "value": 35,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "critical",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.47,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "47 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 25.1,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 47,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 36,
            "inputs": {
              "has_nix": true,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Nix",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Nix"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 100",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "LLVM",
              "largest_source_bytes": 28897,
              "source_files_sampled": 42,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "LLVM without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "LLVM"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/42 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 42,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-22T08:02:40.667066Z",
  "schema_version": "0.26.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/l/llvm-hs/llvm-hs.svg",
  "full_name": "llvm-hs/llvm-hs",
  "license_state": "absent",
  "license_spdx": null
}

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

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.26.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистика.