Registro público
Informe de salud del softwareesquema 0.26.0 · métricas 1.13.0 · 2026-07-22 08:02 UTC

llvm-hs / llvm-hs

Haskell bindings for LLVM

LLVMSin licencia detectada★ 534 estrellas⑂ 129 forksdesde ene 2017Ver en GitHub ↗

llvm-hs/llvm-hs tiene un índice de salud de 24 sobre 100, lo que lo sitúa en la banda Crítico. Su puntuación más alta es Sustainability & Governance (65/100) y la más baja, Vitality (17/100). Se actualizó por última vez hace 733 días. 2 personas concentran la mayor parte del trabajo reciente.

24
global / 100
Crítico

Índice de salud del software

Las métricas se agrupan en categorías ponderadas sobre una escala de 1 a 100. El resultado global parte de su media; cuando la evidencia pública activa la Política de Jurisdicciones de Alto Riesgo, la calificación se ajusta y recibe el límite 49 (En riesgo). Preparación para IA queda fuera.

24
Excelente85-100Ejemplar; cumple prácticamente todos los criterios evaluados
Bueno70-84Saludable; carencias menores
Moderado50-69Aceptable con carencias notables; se recomienda revisión
En riesgo30-49Debilidades significativas; su adopción exige cautela
Crítico1-29Problemas graves (proyecto abandonado, un solo mantenedor, sin higiene)
VitalidadComunidad yAdopciónSostenibilidady GobernanzaCalidad deIngenieríaSeguridadPreparaciónpara IA

Perfil de puntuación

Cada eje es una categoría. La forma importa más que la media: un proyecto sano llena toda la figura, mientras que un perfil de picos y cráteres indica que la fortaleza en una dimensión enmascara el riesgo en otra.

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

Titularidad

llvm-hsOrganización
19 seguidores8 repositorios públicosdesde ene 2017

Este repositorio está respaldado por una organización: una custodia compartida y responsable que puede sobrevivir a cualquier mantenedor individual.

Métricas por categoría

Vitalidad

¿Está vivo el proyecto: se escribe código y se publican versiones?

17Crítico · 22% del índice global
Cómo se puntúa
0/36Recencia de push — último push hace 733 días
0/36Cadencia de commits — 0/52 semanas con commits
0/18Volumen de commits — 0 commits en el último año
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Datos de entrada utilizados
commits_last_year0
human_commit_share1
days_since_last_push733
active_weeks_last_year0
Cómo se puntúa
16.2/27Publica versiones — 5 etiquetas de versión (sin releases de GitHub)
0/36Recencia de las versiones — última versión hace 3059 días
19.8/27Cadencia de publicación — una versión cada ~64,7 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count5
latest_release_tagv6.0.0
releases_from_tags
days_since_latest_release3059
mean_days_between_releases64,7
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Signed-Releases. Los pesos restantes se han renormalizado.

Comunidad y Adopción

¿Tiene el proyecto usuarios, descargas, atención y unas condiciones acogedoras para quienes contribuyen?

48En riesgo · 18% del índice global
Cómo se puntúa
44.2/60Estrellas — 534 estrellas
17.6/25Forks — 129 forks
7.1/15Observadores — 20 observadores
Datos de entrada utilizados
forks129
stars534
watchers20
growth_stateorganic
growth_factor_pct100
Cómo se puntúa
22.5/22.5README
0/22.5Licencia — no se detectó ningún archivo de licencia
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sostenibilidad y Gobernanza

¿Sobrevivirá el proyecto a sus personas: factor bus, capacidad de respuesta, quién lo respalda y mantenimiento del paquete?

65Moderado · 24% del índice global
Cómo se puntúa
25.2/54Factor bus — la mitad de los commits recae en 2 contribuyente(s)
12.9/22.5Distribución de commits — el principal contribuyente firma el 43% de los commits
13.5/13.5Amplitud de contribuyentes — 43 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 31 contributing companies or organizations
Datos de entrada utilizados
bus_factor2
contributors_sampled43
top_contributor_share0,426
Cómo se puntúa
37.1/46.8Resolución de issues — 79% de issues cerradas
35/38.3Aceptación de PR — 202/221 PR decididos fusionados
4.5/15OpenSSF Scorecard: Code-Review — Found 4/11 approved changesets -- score normalized to 3
Datos de entrada utilizados
merged_prs202
open_issues40
closed_issues153
issue_closed_ratio0,793
closed_unmerged_prs19
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
9.4/25Alcance del propietario — 19 seguidores de llvm-hs
18.9/25Trayectoria — 8 repos públicos, cuenta de ~9 años
Datos de entrada utilizados
followers19
owner_typeOrganization
is_verified
owner_loginllvm-hs
public_repos8
account_age_days3481

Calidad de Ingeniería

¿Existen unas prácticas mínimas de ingeniería y documentación?

38En riesgo · 20% del índice global
Cómo se puntúa
0/24Flujos de trabajo de CI
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-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
Datos de entrada utilizados
has_cino
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentación

60Moderado
Cómo se puntúa
30/30README
0/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
10/10Topics — 5 topics
10/10Wiki
Datos de entrada utilizados
topicsllvm, llvm-hs, haskell-bindings, code-generation, llvm-ir
has_wiki
homepage
has_readme
has_docs_dirno
has_description

Seguridad

¿Son sólidas las prácticas visibles de seguridad y de cadena de suministro, sin exposición jurisdiccional de alto riesgo sin resolver?

28Crítico · 16% del índice global
Cómo se puntúa
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 — sin datos
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Licencia — 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 — sin datos
0/5Pinned-Dependencies — sin datos
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 — sin datos
0/7.5Token-Permissions — sin datos
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated13
scorecard_versionv5.5.0
checks_inconclusive5
scorecard_aggregate2,8
Excluidos de la puntuación (sin datos o no aplicable): dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Los pesos restantes se han renormalizado.

Preparación para IA

¿Hasta qué punto está el repositorio preparado para desarrollarse y mantenerse con agentes de codificación de IA? Es una insignia independiente y experimental — peso 0,0, de modo que se presenta por separado y no afecta a la puntuación de salud global.

35En riesgo · 0% del índice global
Cómo se puntúa
0/45Instrucciones para agentes — sin CLAUDE.md / AGENTS.md / reglas de editor
0/15Documentación legible por máquinas (llms.txt)
25.1/40Historial de commits legible — 47 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,47
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
0/11Configuración de lint / formato
0/11Verificación estática de tipos
10/10Entorno reproducible — Nix
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 100
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — sin datos
Datos de entrada utilizados
has_nix
has_tests
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: Pinned-Dependencies. Los pesos restantes se han renormalizado.
Cómo se puntúa
0/45Código verificable por tipos — LLVM sin configuración de verificación de tipos
55/55Tamaños de archivo manejables — 0/42 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageLLVM
largest_source_bytes28.897
source_files_sampled42
oversized_source_files0

Datos clave

534estrellas de GitHub
43contribuidores
0commits en los últimos 12 meses
733días desde el último push
5versiones publicadas
2factor bus
40issues abiertas
ecosistemas de paquetes

Advertencias de recopilación de datos

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

Más detalle

Historial de estrellas y forks 534 ★ / 129 ⇿
534Estrellas
129Forks
5Versiones

Cuándo se añadió cada estrella y fork, recopilado de GitHub y agrupado por día. El crecimiento acumulado se sitúa justo encima de las adiciones diarias que lo componen, de modo que ambos se leen en conjunto: la acumulación orgánica sostenida no se parece en nada a un pico abrupto y efímero. Cuando esa diferencia es medible, se informa como autenticidad del crecimiento.

0100200300400500600532118222017-012021-102026-07
Mayor 2Menor 2Parche 1

Cada punto abarca 9 días.

OpenSSF Scorecard 2.8 / 10
2.8agregado

Evaluación de seguridad independiente y agnóstica en cuanto a herramientas, procedente del proyecto de código abierto OpenSSF Scorecard. Cada comprobación premia una práctica de seguridad, no la herramienta de un proveedor concreto. Las comprobaciones que Scorecard no pudo determinar se marcan como n/d y se excluyen de la puntuación de seguridad (nunca se cuentan como cero).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
n/dDangerous-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
n/dPackagingpackaging workflow not detected
n/dPinned-Dependenciesno dependencies found
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
n/dSigned-Releasesno releases found
n/dToken-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
Todas las dependencias no recopilado

No fue posible recopilar el conjunto de dependencias resuelto para este informe: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Informe JSON sin procesar legible por máquina
{
  "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
}

Las puntuaciones son señales, no garantías. Reflejan prácticas públicamente visibles en GitHub; no son una auditoría de código ni una garantía de seguridad.

Los datos ausentes se excluyen y los pesos se renormalizan; nunca se puntúan como cero. La metodología es versionada y abierta: métricas v1.13.0, esquema v0.26.0 — metodología completa · wiki de métricas.

Cómo se sitúa un resultado dentro del registro general: estadísticas agregadas.