Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-28 15:16 UTC

unoplatform / uno.fonts

Uno Platform Fonts

PowerShellLicencia propia★ 12 estrellas⑂ 7 forksdesde ago 2020Ver en GitHub ↗

unoplatform/uno.fonts tiene un índice de salud de 63 sobre 100, lo que lo sitúa en la banda Moderado. Su puntuación más alta es Sustainability & Governance (71/100) y la más baja, AI Readiness (25/100). Se actualizó por última vez hoy. 2 personas concentran la mayor parte del trabajo reciente.

63
global / 100
Moderado

Í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.

63
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.

Titularidad

Uno PlatformOrganización
694 seguidores100 repositorios públicosdesde jun 2019

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?

66Moderado · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 0 días
5.5/36Cadencia de commits — 8/52 semanas con commits
13/18Volumen de commits — 27 commits en el último año
8/10OpenSSF Scorecard: Maintained — 10 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8
Datos de entrada utilizados
commits_last_year27
human_commit_share1
days_since_last_push0
active_weeks_last_year8
Cómo se puntúa
16.2/27Publica versiones — 7 etiquetas de versión (sin releases de GitHub)
36/36Recencia de las versiones — última versión hace 0 días
12.6/27Cadencia de publicación — una versión cada ~214 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count7
latest_release_tag2.9.4
releases_from_tags
days_since_latest_release0
mean_days_between_releases214
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?

57Moderado · 18% del índice global
Cómo se puntúa
16.9/60Estrellas — 12 estrellas
6.5/25Forks — 7 forks
7.2/15Observadores — 21 observadores
Datos de entrada utilizados
forks7
stars12
watchers21
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
16.9/22.5Licencia — archivo de licencia presente, no es una licencia reconocida
18/18Guía CONTRIBUTING
13.5/13.5Código de conducta
0/7.2Plantilla de issues
6.3/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_license
has_contributing
has_issue_templateno
has_code_of_conduct
has_pull_request_template

Sostenibilidad y Gobernanza

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

71Bueno · 24% del índice global
Cómo se puntúa
25.2/54Factor bus — la mitad de los commits recae en 2 contribuyente(s)
15.6/22.5Distribución de commits — el principal contribuyente firma el 31% de los commits
13.5/13.5Amplitud de contribuyentes — 10 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 6 contributing companies or organizations
Datos de entrada utilizados
bus_factor2
contributors_sampled10
top_contributor_share0,308
Cómo se puntúa
24.7/46.8Resolución de issues — 53% de issues cerradas
36.8/38.3Aceptación de PR — 52/54 PR decididos fusionados
13.5/15OpenSSF Scorecard: Code-Review — Found 9/10 approved changesets -- score normalized to 9
Datos de entrada utilizados
merged_prs52
open_issues8
closed_issues9
issue_closed_ratio0,529
closed_unmerged_prs2
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
20.4/25Alcance del propietario — 694 seguidores de unoplatform
25/25Trayectoria — 100 repos públicos, cuenta de ~7 años
Datos de entrada utilizados
followers694
owner_typeOrganization
is_verified
owner_loginunoplatform
public_repos100
account_age_days2589

Calidad de Ingeniería

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

50Moderado · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 3 flujo(s) de trabajo
0/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
16/20OpenSSF Scorecard: CI-Tests — 8 out of 10 merged PRs checked by a CI test -- score normalized to 8
Datos de entrada utilizados
has_ci
has_testsno
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentación

65Moderado
Cómo se puntúa
30/30README
0/25Directorio de documentación
15/15Sitio de documentación / página del proyecto — https://platform.uno/
10/10Descripción del repositorio
10/10Topics — 9 topics
0/10Wiki
Datos de entrada utilizados
topicsuno, uno-platform, webassembly, wasm, uwp, mono, xamarin, csharp, first-timers-friendly
has_wikino
homepagehttps://platform.uno/
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?

67Moderado · 16% del índice global
Cómo se puntúa
6.8/7.5Binary-Artifacts — binaries present in source code
4.5/7.5Branch-Protection — branch protection is not maximal on development and all release branches
2/2.5CI-Tests — 8 out of 10 merged PRs checked by a CI test -- score normalized to 8
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
6.8/7.5Code-Review — Found 9/10 approved changesets -- score normalized to 9
2.5/2.5Contributors — project has 6 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.2/2.5Licencia — license file detected
6/7.5Maintained — 10 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
4.5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate6,7
Excluidos de la puntuación (sin datos o no aplicable): signed_releases. 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.

25Crítico · 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)
40/40Historial de commits legible — 95 de 100 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,95
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
12.6/18Arranque con un solo comando — nuget/Inter/Uno.Fonts.Inter/Uno.Fonts.Inter.csproj, nuget/OpenSans/Uno.Fonts.OpenSans/Uno.Fonts.OpenSans.csproj, nuget/Roboto/Uno.Fonts.Roboto/Uno.Fonts.Roboto.csproj (convención del toolchain, sin ejecutor de tareas)
0/22Pruebas automatizadas
0/11Configuración de lint / formato
0/11Verificación estática de tipos
0/10Entorno reproducible
4/10Práctica demostrada con agentes — 2 de los últimos 100 commits con autoría o crédito de agente
5/8Mantenimiento automatizado — automatización de dependencias configurada, no observada en los commits muestreados
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_testsno
lockfiles
has_dockerfileno
typed_languageno
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0,02
toolchain_manifestsnuget/Inter/Uno.Fonts.Inter/Uno.Fonts.Inter.csproj, nuget/OpenSans/Uno.Fonts.OpenSans/Uno.Fonts.OpenSans.csproj, nuget/Roboto/Uno.Fonts.Roboto/Uno.Fonts.Roboto.csproj
dependency_bot_commit_share0
Cómo se puntúa
0/45Código verificable por tipos — PowerShell sin configuración de verificación de tipos
0/55Tamaños de archivo manejables — no se detectaron archivos fuente
Datos de entrada utilizados
primary_languagePowerShell
largest_source_bytes
source_files_sampled0
oversized_source_files0
Excluidos de la puntuación (sin datos o no aplicable): Tamaños de archivo manejables. Los pesos restantes se han renormalizado.

Datos clave

12estrellas de GitHub
10contribuidores
27commits en los últimos 12 meses
0días desde el último push
7versiones publicadas
2factor bus
8issues abiertas
ecosistemas de paquetes

Advertencias de recopilación de datos

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Más detalle

Historial de estrellas y forks 0 ★ / 7 ⇿
0Estrellas
7Forks
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.

123456612022-092023-082024-07
Mayor 1Menor 4Parche 0

Cada punto abarca 2 días.

OpenSSF Scorecard 6.7 / 10
6.7agregado

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-28 15:15 UTC

9Binary-Artifactsbinaries present in source code
6Branch-Protectionbranch protection is not maximal on development and all release branches
8CI-Tests8 out of 10 merged PRs checked by a CI test -- score normalized to 8
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
9Code-ReviewFound 9/10 approved changesets -- score normalized to 9
10Contributorsproject has 6 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
9Licenselicense file detected
8Maintained10 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
9Security-Policysecurity policy file detected
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
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": [
        "uno",
        "uno-platform",
        "webassembly",
        "wasm",
        "uwp",
        "mono",
        "xamarin",
        "csharp",
        "first-timers-friendly"
      ],
      "is_fork": false,
      "size_kb": 10991,
      "has_wiki": false,
      "homepage": "https://platform.uno/",
      "languages": {
        "PowerShell": 8934
      },
      "pushed_at": "2026-07-28T13:26:25Z",
      "created_at": "2020-08-07T20:07:25Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-28T13:10:20Z",
      "description": "Uno Platform Fonts",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": "NOASSERTION",
      "primary_language": "PowerShell",
      "significant_languages": [
        "PowerShell"
      ]
    },
    "owner": {
      "blog": "https://platform.uno",
      "name": "Uno Platform",
      "type": "Organization",
      "login": "unoplatform",
      "company": null,
      "location": "Montreal, Canada",
      "followers": 694,
      "avatar_url": "https://avatars.githubusercontent.com/u/52228309?v=4",
      "created_at": "2019-06-26T03:34:32Z",
      "is_verified": null,
      "public_repos": 100,
      "account_age_days": 2589
    },
    "license": {
      "state": "custom",
      "spdx_id": null,
      "raw_spdx": "NOASSERTION",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "2.9.4",
          "kind": "patch",
          "published_at": "2026-07-28T13:11:29Z"
        },
        {
          "tag": "2.5.0",
          "kind": "minor",
          "published_at": "2025-01-15T17:19:13Z"
        },
        {
          "tag": "2.4.0",
          "kind": "minor",
          "published_at": "2024-07-10T03:17:10Z"
        },
        {
          "tag": "2.3.0",
          "kind": "minor",
          "published_at": "2023-09-01T14:14:22Z"
        },
        {
          "tag": "2.2.0",
          "kind": "minor",
          "published_at": "2023-03-28T18:34:13Z"
        },
        {
          "tag": "2.1.0",
          "kind": "minor",
          "published_at": "2023-02-09T13:48:40Z"
        },
        {
          "tag": "2.0.0",
          "kind": "major",
          "published_at": "2023-01-21T16:00:22Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "cd612796060508219044ee4dd18ef2ad043486ec",
          "body": "ci: Fix nbgv versioning broken by runner-image drift",
          "is_bot": false,
          "headline": "Merge pull request #73 from unoplatform/dev/agzi/fix-nbgv-ci-image-drift",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2026-07-28T13:04:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ad2b1b56f2a513a2b12e3b86e96f3097368eef2",
          "body": "Replace the five duplicated inline nbgv steps with a single local composite\naction (.github/actions/setup-nbgv) that each job references. Same behaviour\n(uninstall pre-installed nbgv, install pinned 3.6.139, expose SemVer2 output +\nNBGV_SemVer2 env) — centralized so the fix lives in one place.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: Extract nbgv setup into a reusable composite action",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2026-07-27T22:29:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a63b4646ac2c26055c6dfa779211111d3d7adb41",
          "body": "All font build jobs (and the tag step) failed at the `dotnet/nbgv` action:\nthe hosted runner now pre-installs nbgv 3.10.91 (targets .NET 10), the action's\n`dotnet tool update --version 3.6.139` won't downgrade, and the job only sets\nup .NET 9 — so nbgv fails to launch (\"You must install or update .N\n[…]\nth the `SemVer2` step output and the `NBGV_SemVer2` env var the pack/tag\nsteps consume. Robust against further runner-image drift.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: Fix nbgv versioning broken by runner-image drift",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2026-07-27T22:15:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "07cb46d33e12dc238b2863246045358d2be4e389",
          "body": "…r-2.9\n\nVersion bump after 2.9 release branch",
          "is_bot": false,
          "headline": "Merge pull request #72 from unoplatform/unobot/main/release-bump-afte…",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2026-07-27T21:47:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c2c75166a32e7ceeb44e22e52141565a67e36bd",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.9'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2026-07-27T21:47:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7db9c4546fb667c9e6db59c3f3603ad26dff3725",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/stable/2.9'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2026-07-27T21:47:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b37ca313217c0f32458727f7bd24d8a3d1714aaf",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.10-dev.{height}'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2026-07-27T21:47:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae06dc8d52ec90c4e050fd2f161711512deb0ba1",
          "body": "feat: add Uno.Fonts.Inter package with Inter 4.1 font files",
          "is_bot": false,
          "headline": "Merge pull request #71 from unoplatform/feat/add-inter-font",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2026-05-20T18:53:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd0645e198adaec45fbcdf4d583ea0742ae87d73",
          "body": null,
          "is_bot": false,
          "headline": "ci: add build_inter job for Uno.Fonts.Inter package",
          "author_name": "Kunal22shah",
          "author_login": "Kunal22shah",
          "committed_at": "2026-05-20T15:27:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b217035a62810e4220aa9e3a38ff9c3ea5dbe42e",
          "body": "Adds a new Uno.Fonts.Inter NuGet package containing the Inter 4.1 typeface\n(Regular, Medium, SemiBold, Bold) for use with Uno Platform applications.\n\nInter is the default font for the Uno Simple design system. Without this\npackage, apps using Uno.Simple fell back to the system font on platforms\nwher\n[…]\nContent items via GenerateLibraryLayout\n- Fonts packed at lib/netstandard2.0/Uno.Fonts.Inter/Fonts/\n- Empty .uprimarker file for Uno tooling\n\nInter 4.1 is licensed under the SIL Open Font License 1.1.",
          "is_bot": false,
          "headline": "feat: add Uno.Fonts.Inter package with Inter 4.1 font files",
          "author_name": "Kunal22shah",
          "author_login": "Kunal22shah",
          "committed_at": "2026-05-19T21:06:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "17a5625e75dc4a72eb410d23532171d5f085939d",
          "body": "…get-push",
          "is_bot": false,
          "headline": "Merge pull request #70 from unoplatform/dev/agzi/ci-skip-duplicate-nu…",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2026-03-18T14:53:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dd755091e2ae6ad68aeb82e0a321c6e484f82e35",
          "body": null,
          "is_bot": false,
          "headline": "chore(ci): Add --skip-duplicate to NuGet push for idempotent re-runs",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2026-03-17T20:55:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63d291564f01f3e4d623ef14f15d81b8dad50fff",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #69 from unoplatform/dev/agzi/uno.fonts-tag-release",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2026-02-06T17:40:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "77c0f9d87b4a8200ed02dfad48c49b6ce2863254",
          "body": null,
          "is_bot": false,
          "headline": "chore(ci): fix tag step issues",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2026-02-02T19:32:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e51594b6c535b8ba827a25de74cce29ecc117b7e",
          "body": null,
          "is_bot": false,
          "headline": "chore(ci): make tag step idempotent",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2026-02-02T17:04:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "210cbfe59303767c9fe9fd5820faf4a4edec91a6",
          "body": null,
          "is_bot": false,
          "headline": "chore(ci): add release tag step",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2026-02-02T16:23:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c557c354b150ac063b2b6c0bd4ec5e84ac06b14b",
          "body": "…r-2.8",
          "is_bot": false,
          "headline": "Merge pull request #68 from unoplatform/unobot/main/release-bump-afte…",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2025-11-08T15:49:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cceb7d2554c1526c58f6f2c653cea6972ad87dd",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/stable/2.8'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-11-08T15:49:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f053ca1e6fe945b8621fca9dd42700057294b96",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.9-dev.{height}'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-11-08T15:49:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8cc45f9901538563082b38de9b5eb2f413d083dd",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.8'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-11-08T15:49:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44db324ef65d096edc33d2436780a0e6576c8da0",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #67 from MartinZikmund/dev/mazi/oct-25",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2025-11-08T15:48:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c9e1e9e9186d38f6fe1eb46284136e612a420604",
          "body": null,
          "is_bot": false,
          "headline": "feat: Update Fluent Icons font (1405 glyphs)",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2025-10-16T12:05:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36475ad63b061187acf1c739a32e64acd9e9257e",
          "body": "ci: Split publish job into separate sign and publish jobs with distinct environments",
          "is_bot": false,
          "headline": "Merge pull request #66 from unoplatform/dev/agzi/AdjustCI",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2025-08-04T21:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "26ba5bcf225b1fa7f4bd3e22a046397627c421e3",
          "body": "…ct environments",
          "is_bot": false,
          "headline": "ci: Split publish job into separate sign and publish jobs with distin…",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2025-08-04T21:07:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "21bf32117b4eed7b0df830a0f362e9e529b0d526",
          "body": null,
          "is_bot": false,
          "headline": "ci: Adjust Sign artifacts",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2025-08-04T20:51:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba2ffbce8917d80dbad2a16a9f70d18e85eaa44f",
          "body": "ci: Move to dotnet-sign",
          "is_bot": false,
          "headline": "Merge pull request #65 from unoplatform/dev/agzi/AdjustSigning",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2025-08-04T20:43:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20f371d977ea7b9177d370963d8e5832c3b4283c",
          "body": null,
          "is_bot": false,
          "headline": "ci: Adjust sign artifacts pwsh path to match upload and push paths",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2025-08-04T20:42:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cde10266bc6f2319ab66c3acd1e45ae911eacb0",
          "body": null,
          "is_bot": false,
          "headline": "ci: Move to dotnet-sign",
          "author_name": "agneszitte",
          "author_login": "agneszitte",
          "committed_at": "2025-08-04T20:17:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90825c6a406b67c8007094a2c628bcc517ae0be9",
          "body": "…r-2.7\n\nVersion bump after 2.7 release branch",
          "is_bot": false,
          "headline": "Merge pull request #64 from unoplatform/unobot/main/release-bump-afte…",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2025-04-21T19:58:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "98696a6a2806fafd133256388bf71a39cca6c22d",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/stable/2.7'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-04-21T19:57:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "87603c0c9dca963beed217248deabc3c3c8ed1d5",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.8-dev.{height}'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-04-21T19:57:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61cd8a741c210fa690effd24a8eeeefce68e76f7",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.7'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-04-21T19:57:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ce8053360925d245dba107eeb29ba44f5f10b44",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #63 from MartinZikmund/dev/mazi/fonts-update",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2025-02-20T10:47:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7542fc8018b2af5e613f8443bed6f9c5c244ddd8",
          "body": null,
          "is_bot": false,
          "headline": "feat: Update Fluent Icons font",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2025-02-19T21:22:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "225edfacb0e3eaa3f16548eb8faabaec138a486c",
          "body": "…r-2.6\n\nVersion bump after 2.6 release branch",
          "is_bot": false,
          "headline": "Merge pull request #62 from unoplatform/unobot/main/release-bump-afte…",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2025-01-20T15:23:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dea398d0af96bb3ac1091b424614a066bc39e009",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'release/stable/2.6'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-01-20T15:10:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "707fabaffdc9b8bc5523ba0363afbee3f409204f",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.7-dev.{height}'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-01-20T15:10:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "257665e95a75fe43240f7bfdbe25260360682093",
          "body": null,
          "is_bot": false,
          "headline": "ci: Set version to '2.6'",
          "author_name": "unodevops",
          "author_login": "unodevops",
          "committed_at": "2025-01-20T15:10:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d012dfde11d1272abb815833c96901c21442c61",
          "body": "ci: Move to nbgv",
          "is_bot": false,
          "headline": "Merge pull request #61 from unoplatform/dev/jela/nbgv",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2025-01-16T21:30:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae8b13bd1ab91adafd8d0fec8a19d7358ea1d086",
          "body": null,
          "is_bot": false,
          "headline": "chore: Bump dotnet sdk",
          "author_name": "Jerome Laban",
          "author_login": "jeromelaban",
          "committed_at": "2025-01-16T21:24:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0cddda84ca0ad52654026aed2d5454cb1df219e",
          "body": null,
          "is_bot": false,
          "headline": "ci: Move to nbgv",
          "author_name": "Jerome Laban",
          "author_login": "jeromelaban",
          "committed_at": "2025-01-16T21:22:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "633bdca5c46ccb2420b74814d9efaf5ea2213125",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #60 from MartinZikmund/dev/mazi/symbols-update",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2025-01-15T17:19:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f1bcca517b2ccd7ba0bfde324d0699296e1924c",
          "body": null,
          "is_bot": false,
          "headline": "feat: Update icon font with new glyphs",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2025-01-15T17:14:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22ec2edd5b34d243657269c88539e64bf3c8c8e5",
          "body": "ci: Adjust SignClient after #52",
          "is_bot": false,
          "headline": "Merge pull request #53 from unoplatform/dev/agzi/AdjustSignClient",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2024-09-13T13:52:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28e5384f99a7421573f34cef2aacf54a49a06d14",
          "body": null,
          "is_bot": false,
          "headline": "ci: Adjust SignClient after #52",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2024-09-13T13:50:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33acb3dd708594c48c5d09412156f913b6a86482",
          "body": "…ication\n\nci: Fix artifact handling for GitHub Actions v4",
          "is_bot": false,
          "headline": "Merge pull request #52 from unoplatform/dev/agzi/FixNugetPackagesPubl…",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2024-09-13T00:41:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de17c3aa4ba24d52f6e9f7879615a7d5992ff9f4",
          "body": null,
          "is_bot": false,
          "headline": "ci: Adjust Nuget Push command",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2024-09-12T22:32:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28b88be8405a0ea80ebda7bf1f8b2e959744d0af",
          "body": "- Updated artifact upload steps to assign unique names (NuGet-Fluent, NuGet-Roboto, NuGet-OpenSans) to address changes introduced in actions/upload-artifact@v4.\r\n- Modified publish job to download artifacts by job-scoped names into separate directories (artifacts/fluent, artifacts/roboto, artifacts/opensans).\r\n- Adjusted signing and pushing steps to ensure consistent handling of artifacts across jobs and publishing.",
          "is_bot": false,
          "headline": "ci: Fix artifact handling for GitHub Actions v4",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2024-09-12T22:16:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "959676cabdac50d5310a5e201003aff3c6673315",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #51 from unoplatform/dev/youssef/update-gh-actions",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2024-09-11T11:12:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6607dd7bd2f75281caec8e423556e4b8d0fbd82",
          "body": null,
          "is_bot": false,
          "headline": "ci: Update download-artifact and upload-artifact to v4",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-09-11T07:43:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ae5e7b94607320df5a8b0aef6ca3f62c40885f3",
          "body": "feat: Update Uno Fluent Icons (1382 Glyphs)",
          "is_bot": false,
          "headline": "Merge pull request #50 from MartinZikmund/dev/mazi/september-font-update",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2024-09-10T18:40:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db31d720c4893563d76f5f056fbd54dcb456cf0a",
          "body": null,
          "is_bot": false,
          "headline": "feat: Update Uno Fluent Icons (1382 Glyphs)",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2024-09-10T07:24:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbb838712a299f9da4b424b9b5152cacccb15466",
          "body": "docs: Update README",
          "is_bot": false,
          "headline": "Merge pull request #46 from Youssef1313/patch-1",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2024-07-10T03:17:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1f238ac0f4d8cfdd2f246961db48bdf4be4706f",
          "body": null,
          "is_bot": false,
          "headline": "docs: Update README",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-07-10T03:13:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e09e5267c28fe0e02481cbc2b89521a1fd9bface",
          "body": "fix: Package manifest file",
          "is_bot": false,
          "headline": "Merge pull request #45 from Youssef1313/patch-1",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2024-07-09T12:16:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3513d149b2096666ac4ef7b762fd653070e52fba",
          "body": null,
          "is_bot": false,
          "headline": "fix: Package manifest file",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-07-09T09:11:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afec72cb71e33f736235a9b23eebeb736bfc56c4",
          "body": "fix: Fix OpenSans targets",
          "is_bot": false,
          "headline": "Merge pull request #44 from Youssef1313/patch-1",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2024-07-08T20:15:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "707280bea5949d7a699b2479e23548a036db695e",
          "body": null,
          "is_bot": false,
          "headline": "fix: Fix OpenSans targets",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-07-08T17:48:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fe3729921b1d96e464fce9ed2ec1d1f6698947d",
          "body": "feat: Add OpenSans font manifest",
          "is_bot": false,
          "headline": "Merge pull request #43 from Youssef1313/dev/youssef/opensans",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2024-07-05T13:09:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d70bffe954d03dccb14af2e514fced738d94459",
          "body": null,
          "is_bot": false,
          "headline": "chore: Add OpenSans.ttf",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-07-04T15:04:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80294cc3998c0bbff7dcfa1513a668f2bf5bf923",
          "body": null,
          "is_bot": false,
          "headline": "chore: Adjust",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-07-04T15:01:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "512b1a8e04223908ae449e6c72c7c28480f7b6f1",
          "body": null,
          "is_bot": false,
          "headline": "feat: Add OpenSans font manifest",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-06-21T03:40:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1d302b38b043c2c49b2030a90a82bd6da898ce5d",
          "body": "feat: Add Status circle exclamation for `InfoBar`",
          "is_bot": false,
          "headline": "Merge pull request #41 from MartinZikmund/dev/mazi/icon-font-update",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2024-05-14T11:30:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "35711463391bf9d4a46230b19fc836d50ccc951e",
          "body": null,
          "is_bot": false,
          "headline": "feat: Add Status circle exclamation for InfoBar",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2024-05-13T11:58:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f378401c3d15240c4815a9e4091cd4e775e0c155",
          "body": "feat: Uno.Fonts.OpenSans",
          "is_bot": false,
          "headline": "Merge pull request #39 from Youssef1313/opensans",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2024-03-20T11:55:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ceb1f0839dc9127dffc38b8b98c94d8d7541455",
          "body": null,
          "is_bot": false,
          "headline": "feat: Uno.Fonts.OpenSans",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2024-03-20T11:36:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b66008400098a5794ca681dcfe851dfa0c782bb9",
          "body": null,
          "is_bot": false,
          "headline": "Merge pull request #37 from unoplatform/dev/agzi/UpdateSwagFormLink",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2023-11-08T20:26:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd3bf6aaf7dee70ba6013bcc03e041568a782591",
          "body": null,
          "is_bot": false,
          "headline": "chore(welcome-bot): Update config.yml with new swag link",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2023-11-08T19:22:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5fb242f3438a6dbc017ef4c667b250a4c98eddc5",
          "body": "fix: update Informational icon",
          "is_bot": false,
          "headline": "Merge pull request #35 from Robert-Louis/dev/rlm/Informational-icon",
          "author_name": "Agnès ZITTE",
          "author_login": "agneszitte",
          "committed_at": "2023-09-01T14:14:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec2c861a1722f13182f92b3f80cdb9fb6838f7d2",
          "body": null,
          "is_bot": false,
          "headline": "fix: update Informational icon",
          "author_name": "Robert-Louis Milin",
          "author_login": "Robert-Louis",
          "committed_at": "2023-09-01T13:20:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22c6fd6ecb7d0f23eea532727c4367d5e4db597d",
          "body": "feat: Support for 1339 glyphs",
          "is_bot": false,
          "headline": "Merge pull request #34 from Youssef1313/glyphs",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-07-28T01:45:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24256bd76299a5b3a3b0befd41fde17e9e4af7f5",
          "body": null,
          "is_bot": false,
          "headline": "feat: Support for 1339 glyphs",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2023-07-27T19:47:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a5b47d2a7ee82a22a25af582e5b2d5e679fcc3c",
          "body": "ci: Adjust versioning",
          "is_bot": false,
          "headline": "Merge pull request #33 from unoplatform/dev/jela/gitversion",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-05-08T14:18:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6df0cbe0235910aa9a2678e2ced98e094307a9d3",
          "body": null,
          "is_bot": false,
          "headline": "ci: Adjust versioning",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-05-08T13:42:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bdf87be309fef599b370310064410809a363d7f4",
          "body": "Fix casing of uprimarker",
          "is_bot": false,
          "headline": "Merge pull request #31 from Youssef1313/patch-1",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-05-08T12:45:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2a2c4e2dd57cf761037f68855b21d4e1a00a0589",
          "body": null,
          "is_bot": false,
          "headline": "Fix casing of uprimarker",
          "author_name": "Youssef Victor",
          "author_login": "Youssef1313",
          "committed_at": "2023-05-05T20:06:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c77c9e1a597f7c4987a195b2f744f3cc116f0d96",
          "body": "feat: Support for 1070 glyphs",
          "is_bot": false,
          "headline": "Merge pull request #30 from MartinZikmund/dev/mazi/update-1070",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-03-28T18:34:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8342fb8a0fc8efea2205fb180f95abf388e1c9ca",
          "body": "Notable additions\n- FlipView arrows\n- MediaPlayer icons",
          "is_bot": false,
          "headline": "feat: Support for 1070 glyphs",
          "author_name": "Martin Zikmund",
          "author_login": "MartinZikmund",
          "committed_at": "2023-03-25T13:55:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abe094df411b404a8f4ece1d9392cf867e962011",
          "body": "fix: build Roboto in Release",
          "is_bot": false,
          "headline": "Merge pull request #29 from unoplatform/dev/sb/config",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-17T14:10:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e60ba7762ea3a63499ac67c1bc4220d45b7fdba2",
          "body": null,
          "is_bot": false,
          "headline": "fix: build Roboto in Release",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-17T03:18:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "92c719ba248410156786a8ed19ec873753bda443",
          "body": "fix: Add support for Windows Roboto",
          "is_bot": false,
          "headline": "Merge pull request #28 from unoplatform/dev/sb/roboto-win",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-16T12:51:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96332c427a79acbacdb351b00f1daf3947d6e152",
          "body": null,
          "is_bot": false,
          "headline": "fix: package icon",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-15T14:25:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a05ce74666c108de63b78e1bae66d684e184647d",
          "body": null,
          "is_bot": false,
          "headline": "fix: Add support for Windows Roboto",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-14T12:51:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c0839234283ad1a069db86863d672119a74d618",
          "body": "feat: add Roboto font",
          "is_bot": false,
          "headline": "Merge pull request #27 from unoplatform/dev/sb/roboto",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-02-09T13:48:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "640e9d267a27760e78954cf86adb1eb65c0e4a21",
          "body": null,
          "is_bot": false,
          "headline": "ci: Add deployment environment for nuget",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-02-09T13:43:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a315f490d1fe12af2ce20748b5f8ed45af80af30",
          "body": null,
          "is_bot": false,
          "headline": "docs: Update readme",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-08T19:36:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be8332ad4d90af3562ea54130d2c340ce7dda2da",
          "body": null,
          "is_bot": false,
          "headline": "feat: add Roboto font",
          "author_name": "Steve Bilogan",
          "author_login": "kazo0",
          "committed_at": "2023-02-08T14:16:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6ebf55a9c63164458fcd0ec70cb3b403c0c5c645",
          "body": "\r\nThis change is associated to https://github.com/unoplatform/uno/pull/11009, which restores the non-lowercased naming of the assembly defining transitive assets.",
          "is_bot": false,
          "headline": "fix: Use original assembly name casing",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-21T16:00:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "736a049aeea5c039d13aa831a850b58682aecbfb",
          "body": "\r\nUsing fonts provided in latest main uno repository with https://github.com/unoplatform/uno/commit/c412d01fe1ae0e1a9ecd26246e380016485801e9",
          "is_bot": false,
          "headline": "fix: Update to latest font update",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-20T12:47:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "44c5b9653e8e99f41f49cd666980e16a9327ff9e",
          "body": "fix: Remove unused class in marker assembly",
          "is_bot": false,
          "headline": "Merge pull request #25 from unoplatform/dev/jela/remove-unused-class",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-19T13:59:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a73c25ce646febc1d6099c017bee3944f1b696b6",
          "body": null,
          "is_bot": false,
          "headline": "fix: Remove unused class in marker assembly",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-19T13:39:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b7c1bb0cccb2e520fb607bd2bd60236c9369832",
          "body": "fix: Adjust for automatic symbols font for Uno 4.7",
          "is_bot": false,
          "headline": "Merge pull request #23 from unoplatform/dev/jela/ci",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-18T12:46:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee995e4f18c18b80d17e7f9b4a06f06f5d7b1f1f",
          "body": null,
          "is_bot": false,
          "headline": "fix: Adjust for automatic symbols font for Uno 4.7",
          "author_name": "Jerome Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-18T12:19:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f603ee345264000ca276d279e34eaffcad7ad521",
          "body": null,
          "is_bot": false,
          "headline": "fix: Adjust license",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-13T18:18:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd52e2a01d7f08ae442da4e624f3468b56153c90",
          "body": "ci: Publish signed package to artifacts",
          "is_bot": false,
          "headline": "Merge pull request #22 from unoplatform/dev/jela/signed-publish",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-13T17:02:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c573d5adedb6a543b036a8c6331827d7e20beaf",
          "body": null,
          "is_bot": false,
          "headline": "ci: Publish signed package to artifacts",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2023-01-13T17:02:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dfad90701ccda2f8c177cc570368b6145eb7fcca",
          "body": "Adjust version",
          "is_bot": false,
          "headline": "Merge pull request #21 from unoplatform/dev/jela/ci",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2022-12-21T18:02:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9648f16e0e884e46d4108a21d8311b94fad3352e",
          "body": null,
          "is_bot": false,
          "headline": "ci: Update version",
          "author_name": "Jerome Laban",
          "author_login": "jeromelaban",
          "committed_at": "2022-12-21T16:25:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a7658868817cfce9d985f0aeef4ca85c3a5aa16",
          "body": "* ci: Enable ci\r\n\r\n* chore: Setup nuget\r\n\r\n* ci: Adjust branches\r\n\r\n* chore: Adjust contentFiles path\r\n\r\n* chore: Adjust for Content in nuspec\r\n\r\n* ci: Adjust versioning",
          "is_bot": false,
          "headline": "ci: Enable ci (#20)",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2022-12-21T16:10:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb932003f8d070a6f2a5a47014a288abf0e19d4d",
          "body": null,
          "is_bot": false,
          "headline": "ci: Adjust mergify config",
          "author_name": "Jérôme Laban",
          "author_login": "jeromelaban",
          "committed_at": "2022-09-08T12:04:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 7,
      "commits_last_year": 27,
      "latest_release_at": "2026-07-28T13:11:29Z",
      "latest_release_tag": "2.9.4",
      "releases_from_tags": true,
      "days_since_last_push": 0,
      "active_weeks_last_year": 8,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 214
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 87,
      "has_issue_template": false,
      "has_code_of_conduct": true,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 7,
      "stars": 12,
      "watchers": 21,
      "fork_history": {
        "days": [
          {
            "date": "2022-09-07",
            "count": 1
          },
          {
            "date": "2023-01-19",
            "count": 1
          },
          {
            "date": "2023-09-01",
            "count": 1
          },
          {
            "date": "2024-03-29",
            "count": 1
          },
          {
            "date": "2024-05-21",
            "count": 1
          },
          {
            "date": "2024-07-27",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 6,
        "total_forks": 7
      },
      "star_history": null,
      "open_issues_and_prs": 11
    },
    "ai_readiness": {
      "has_nix": false,
      "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": [
        "nuget/Inter/Uno.Fonts.Inter/Uno.Fonts.Inter.csproj",
        "nuget/OpenSans/Uno.Fonts.OpenSans/Uno.Fonts.OpenSans.csproj",
        "nuget/Roboto/Uno.Fonts.Roboto/Uno.Fonts.Roboto.csproj"
      ],
      "largest_source_bytes": null,
      "source_files_sampled": 0,
      "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": 3,
        "merged_prs": 52,
        "open_issues": 8,
        "closed_ratio": 0.529,
        "closed_issues": 9,
        "closed_unmerged_prs": 2
      },
      "bus_factor": 2,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "jeromelaban",
          "commits": 33,
          "avatar_url": "https://avatars.githubusercontent.com/u/5839577?v=4"
        },
        {
          "type": "User",
          "login": "agneszitte",
          "commits": 24,
          "avatar_url": "https://avatars.githubusercontent.com/u/16295702?v=4"
        },
        {
          "type": "User",
          "login": "MartinZikmund",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/1075116?v=4"
        },
        {
          "type": "User",
          "login": "unodevops",
          "commits": 12,
          "avatar_url": "https://avatars.githubusercontent.com/u/102387794?v=4"
        },
        {
          "type": "User",
          "login": "Youssef1313",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/31348972?v=4"
        },
        {
          "type": "User",
          "login": "kazo0",
          "commits": 9,
          "avatar_url": "https://avatars.githubusercontent.com/u/4793020?v=4"
        },
        {
          "type": "User",
          "login": "alextrepa",
          "commits": 3,
          "avatar_url": "https://avatars.githubusercontent.com/u/32940568?v=4"
        },
        {
          "type": "User",
          "login": "Kunal22shah",
          "commits": 2,
          "avatar_url": "https://avatars.githubusercontent.com/u/37922021?v=4"
        },
        {
          "type": "User",
          "login": "Robert-Louis",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/16021239?v=4"
        },
        {
          "type": "User",
          "login": "Xiaoy312",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/2359550?v=4"
        }
      ],
      "contributors_sampled": 10,
      "top_contributor_share": 0.308
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": false,
      "ci_workflows": [
        "ci.yml",
        "conventional-commits.yml",
        "labeler.yml"
      ],
      "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": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 6,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 8,
            "reason": "8 out of 10 merged PRs checked by a CI test -- score normalized to 8",
            "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": 9,
            "reason": "Found 9/10 approved changesets -- score normalized to 9",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 6 contributing companies or organizations",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 10,
            "reason": "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": 9,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 8,
            "reason": "10 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "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": 9,
            "reason": "security policy file 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": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "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": "cd612796060508219044ee4dd18ef2ad043486ec",
        "ran_at": "2026-07-28T15:15:37Z",
        "aggregate_score": 6.7,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-28T13:11:38Z",
      "oldest_open_prs": [
        {
          "number": 17,
          "created_at": "2021-09-16T18:35:47Z",
          "last_comment_at": "2021-09-16T19:34:51Z",
          "last_comment_author": "robloo"
        },
        {
          "number": 26,
          "created_at": "2023-01-19T14:02:22Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 49,
          "created_at": "2024-09-10T07:19:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-28T13:11:30Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": [
        {
          "number": 5,
          "created_at": "2020-08-20T13:58:14Z",
          "last_comment_at": "2020-10-05T15:46:54Z",
          "last_comment_author": "StefanJanssen95"
        },
        {
          "number": 6,
          "created_at": "2020-10-05T15:54:43Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 8,
          "created_at": "2020-10-05T17:41:34Z",
          "last_comment_at": "2021-06-17T19:08:21Z",
          "last_comment_author": "davidjohnoliver"
        },
        {
          "number": 16,
          "created_at": "2021-09-15T02:50:39Z",
          "last_comment_at": "2021-09-17T17:57:35Z",
          "last_comment_author": "robloo"
        },
        {
          "number": 36,
          "created_at": "2023-09-21T14:01:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 38,
          "created_at": "2023-11-26T14:32:03Z",
          "last_comment_at": "2023-11-27T13:38:43Z",
          "last_comment_author": "DierkDroth"
        },
        {
          "number": 40,
          "created_at": "2024-03-20T11:27:17Z",
          "last_comment_at": "2024-03-21T15:12:50Z",
          "last_comment_author": "jeromelaban"
        },
        {
          "number": 59,
          "created_at": "2024-11-21T09:48:31Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/unoplatform/uno.fonts",
    "host": "github.com",
    "name": "uno.fonts",
    "owner": "unoplatform"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 63,
      "inputs": {
        "security": 67,
        "vitality": 66,
        "community": 57,
        "governance": 71,
        "engineering": 50
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 66,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 62,
            "inputs": {
              "commits_last_year": 27,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 8
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "8/52 weeks with commits",
                "points": 5.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 8
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "27 commits in the last year",
                "points": 13,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 27
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "10 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8",
                "points": 8,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "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": 72,
            "inputs": {
              "releases_count": 7,
              "latest_release_tag": "2.9.4",
              "releases_from_tags": true,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 214
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "7 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~214 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 214
                    }
                  }
                ],
                "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": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "moderate",
        "name": "Community & Adoption",
        "value": 57,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 31,
            "inputs": {
              "forks": 7,
              "stars": 12,
              "watchers": 21,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "12 stars",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "7 forks",
                "points": 6.5,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "21 watchers",
                "points": 7.2,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 21
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "excellent",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 86,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": true,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file present, not a recognized license",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "license_custom",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 13.5,
                "status": "met",
                "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": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "good",
        "name": "Sustainability & Governance",
        "value": 71,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "moderate",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "bus_factor": 2,
              "contributors_sampled": 10,
              "top_contributor_share": 0.308
            },
            "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 31% of commits",
                "points": 15.6,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 31
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "10 contributors",
                "points": 13.5,
                "status": "met",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 6 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "merged_prs": 52,
              "open_issues": 8,
              "closed_issues": 9,
              "issue_closed_ratio": 0.529,
              "closed_unmerged_prs": 2
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "53% of issues closed",
                "points": 24.7,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 53
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "52/54 decided PRs merged",
                "points": 36.8,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 52,
                      "decided": 54
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 9/10 approved changesets -- score normalized to 9",
                "points": 13.5,
                "status": "partial",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "good",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "followers": 694,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "unoplatform",
              "public_repos": 100,
              "account_age_days": 2589
            },
            "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": "694 followers of unoplatform",
                "points": 20.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 694,
                      "login": "unoplatform"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "100 public repos, account ~7 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 100
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 50,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_ci": true,
              "has_tests": false,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 0,
                "status": "missed",
                "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": "8 out of 10 merged PRs checked by a CI test -- score normalized to 8",
                "points": 16,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [
                "uno",
                "uno-platform",
                "webassembly",
                "wasm",
                "uwp",
                "mono",
                "xamarin",
                "csharp",
                "first-timers-friendly"
              ],
              "has_wiki": false,
              "homepage": "https://platform.uno/",
              "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": "https://platform.uno/",
                "points": 15,
                "status": "met",
                "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": "9 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 67,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 67,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 6.7
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection is not maximal on development and all release branches",
                "points": 4.5,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "8 out of 10 merged PRs checked by a CI test -- score normalized to 8",
                "points": 2,
                "status": "partial",
                "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 9/10 approved changesets -- score normalized to 9",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 6 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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 detected",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "10 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8",
                "points": 6,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "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 detected",
                "points": 4.5,
                "status": "partial",
                "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": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": 16
            },
            "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": "critical",
        "name": "AI Readiness",
        "value": 25,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.95,
              "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": "95 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 95,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "critical",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 22,
            "inputs": {
              "has_nix": false,
              "has_tests": false,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.02,
              "toolchain_manifests": [
                "nuget/Inter/Uno.Fonts.Inter/Uno.Fonts.Inter.csproj",
                "nuget/OpenSans/Uno.Fonts.OpenSans/Uno.Fonts.OpenSans.csproj",
                "nuget/Roboto/Uno.Fonts.Roboto/Uno.Fonts.Roboto.csproj"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "nuget/Inter/Uno.Fonts.Inter/Uno.Fonts.Inter.csproj, nuget/OpenSans/Uno.Fonts.OpenSans/Uno.Fonts.OpenSans.csproj, nuget/Roboto/Uno.Fonts.Roboto/Uno.Fonts.Roboto.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "nuget/Inter/Uno.Fonts.Inter/Uno.Fonts.Inter.csproj, nuget/OpenSans/Uno.Fonts.OpenSans/Uno.Fonts.OpenSans.csproj, nuget/Roboto/Uno.Fonts.Roboto/Uno.Fonts.Roboto.csproj"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 0,
                "status": "missed",
                "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": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "2 of the last 100 commits agent-authored or agent-credited",
                "points": 4,
                "status": "partial",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 2,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "critical",
            "name": "Code legibility for models",
            "note": "Excluded from scoring (no data or not applicable): Manageable file sizes. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "manageable_file_sizes"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "primary_language": "PowerShell",
              "largest_source_bytes": null,
              "source_files_sampled": 0,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "PowerShell without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "PowerShell"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "no source files detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_source_files",
                    "params": {}
                  }
                ],
                "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": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-28T15:16:00.525314Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/u/unoplatform/uno.fonts.svg",
  "full_name": "unoplatform/uno.fonts",
  "license_state": "custom",
  "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.27.0 — metodología completa · wiki de métricas.

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