Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-29 12:32 UTC

VincentZyuApps / levilamina-plugin-serverinfo-rest

🌐 基于基岩版 Minecraft LeviLamina 服务端的 REST API 服务端插件:提供 HTTP 接口查询服务器状态与玩家信息。

C++ · PythonSin licencia detectada★ 4 estrellas⑂ 1 forkdesde feb 2026Ver en GitHub ↗

VincentZyuApps/levilamina-plugin-serverinfo-rest tiene un índice de salud de 42 sobre 100, lo que lo sitúa en la banda En riesgo. Su puntuación más alta es Vitality (74/100) y la más baja, Community & Adoption (16/100). Se actualizó por última vez hace 2 días. Una sola persona concentra la mayor parte del trabajo reciente.

42
global / 100
En riesgo

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

42
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

VincentZyuApps Organización
13 seguidores70 repositorios públicosdesde dic 2025

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?

74Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 2 días
2.8/36Cadencia de commits — 4/52 semanas con commits
13.9/18Volumen de commits — 34 commits en el último año
10/10OpenSSF Scorecard: Maintained — 29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Datos de entrada utilizados
commits_last_year34
human_commit_share1
days_since_last_push2
active_weeks_last_year4
Cómo se puntúa
27/27Publica versiones — 15 versiones publicadas
36/36Recencia de las versiones — última versión hace 2 días
27/27Cadencia de publicación — una versión cada ~0,5 días
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Datos de entrada utilizados
releases_count15
latest_release_tagv0.3.7-beta.9
releases_from_tagsno
days_since_latest_release2
mean_days_between_releases0,5

Comunidad y Adopción

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

16Crítico · 18% del índice global
Cómo se puntúa
7.7/60Estrellas — 4 estrellas
0/25Forks — 1 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks1
stars4
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Cómo se puntúa
22.5/22.5README
0/22.5Licencia — no se detectó ningún archivo de licencia
0/18Guía CONTRIBUTING
0/13.5Código de conducta
0/7.2Plantilla de issues
0/6.3Plantilla de PR
Datos de entrada utilizados
has_readme
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sostenibilidad y Gobernanza

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

24Crítico · 24% del índice global
Cómo se puntúa
9/54Factor bus — la mitad de los commits recae en 1 contribuyente(s)
0/22.5Distribución de commits — el principal contribuyente firma el 100% de los commits
1.4/13.5Amplitud de contribuyentes — 1 contribuyentes
10/10OpenSSF Scorecard: Contributors — project has 3 contributing companies or organizations -- score normalized to 10
Datos de entrada utilizados
bus_factor1
contributors_sampled1
top_contributor_share1
Cómo se puntúa
0/46.8Resolución de issues — sin issues o sin datos
0/38.3Aceptación de PR — sin PR decididos o sin datos
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Datos de entrada utilizados
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluidos de la puntuación (sin datos o no aplicable): Resolución de issues, Aceptación de PR. Los pesos restantes se han renormalizado.
Cómo se puntúa
30/30Respaldo de la propiedad — propiedad de una organización
0/20Dominio verificado
8.2/25Alcance del propietario — 13 seguidores de VincentZyuApps
14.2/25Trayectoria — 70 repos públicos, cuenta de ~0 años
Datos de entrada utilizados
followers13
owner_typeOrganization
is_verified
owner_loginVincentZyuApps
public_repos70
account_age_days222

Calidad de Ingeniería

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

56Moderado · 20% del índice global
Cómo se puntúa
24/24Flujos de trabajo de CI — 1 flujo(s) de trabajo
24/24Pruebas presentes
0/16Configuración de linter
0/9.6Hooks de pre-commit
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — sin datos
Datos de entrada utilizados
has_ci
has_tests
has_editorconfigno
has_linter_configno
has_precommit_configno
Excluidos de la puntuación (sin datos o no aplicable): OpenSSF Scorecard: CI-Tests. Los pesos restantes se han renormalizado.

Documentación

50Moderado
Cómo se puntúa
30/30README
0/25Directorio de documentación
0/15Sitio de documentación / página del proyecto
10/10Descripción del repositorio
0/10Topics
10/10Wiki
Datos de entrada utilizados
topics
has_wiki
homepage
has_readme
has_docs_dirno
has_description

Seguridad

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

36En riesgo · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — sin datos
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 3 contributing companies or organizations -- score normalized to 10
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Licencia — license file not detected
7.5/7.5Maintained — 29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — sin datos
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
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_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3,6
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, packaging. 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.

60Moderado · 0% del índice global
Cómo se puntúa
45/45Instrucciones para agentes — AGENTS.md
0/15Documentación legible por máquinas (llms.txt)
32.9/40Historial de commits legible — 21 de 34 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share0,618
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes1204
Cómo se puntúa
0/18Arranque con un solo comando
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — C++ (tipado estático)
0/10Entorno reproducible
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 34
0/8Mantenimiento automatizado — no se observan actualizaciones automáticas de dependencias
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Datos de entrada utilizados
has_nixno
has_tests
lockfiles
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifests
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — C++ (tipado estático)
52.7/55Tamaños de archivo manejables — 1/24 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageC++
largest_source_bytes79.640
source_files_sampled24
oversized_source_files1

Datos clave

4estrellas de GitHub
1contribuidores
34commits en los últimos 12 meses
2días desde el último push
15versiones publicadas
1factor bus
0issues 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

OpenSSF Scorecard 3.6 / 10
3.6agregado

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-29 12:32 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
n/dCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
10Contributorsproject has 3 contributing companies or organizations -- score normalized to 10
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
10Maintained29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
n/dPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
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": [],
      "is_fork": false,
      "size_kb": 135,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C++": 180486,
        "Xmake": 2510,
        "Python": 27684
      },
      "pushed_at": "2026-07-26T17:37:45Z",
      "created_at": "2026-02-01T21:56:33Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-26T17:34:56Z",
      "description": "🌐 基于基岩版 Minecraft LeviLamina 服务端的 REST API 服务端插件:提供 HTTP 接口查询服务器状态与玩家信息。",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "C++",
      "significant_languages": [
        "C++",
        "Python"
      ]
    },
    "owner": {
      "blog": "https://github.com/organizations/VincentZyuApps",
      "name": "VincentZyuApps ",
      "type": "Organization",
      "login": "VincentZyuApps",
      "company": null,
      "location": null,
      "followers": 13,
      "avatar_url": "https://avatars.githubusercontent.com/u/250448479?v=4",
      "created_at": "2025-12-19T01:26:20Z",
      "is_verified": null,
      "public_repos": 70,
      "account_age_days": 222
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.3.7-beta.9",
          "kind": "prerelease",
          "published_at": "2026-07-26T17:37:46Z"
        },
        {
          "tag": "v0.3.6-beta.8",
          "kind": "prerelease",
          "published_at": "2026-07-26T13:55:24Z"
        },
        {
          "tag": "v0.3.2-beta.2",
          "kind": "prerelease",
          "published_at": "2026-07-23T17:41:16Z"
        },
        {
          "tag": "v0.3.1-beta.1",
          "kind": "prerelease",
          "published_at": "2026-07-23T02:58:03Z"
        },
        {
          "tag": "v0.3.0-alpha.20",
          "kind": "prerelease",
          "published_at": "2026-07-23T00:08:19Z"
        },
        {
          "tag": "v0.3.0-alpha.19",
          "kind": "prerelease",
          "published_at": "2026-07-22T16:03:25Z"
        },
        {
          "tag": "v0.2.9-alpha.17",
          "kind": "prerelease",
          "published_at": "2026-07-22T01:49:22Z"
        },
        {
          "tag": "v0.2.8-alpha.16",
          "kind": "prerelease",
          "published_at": "2026-07-21T22:57:29Z"
        },
        {
          "tag": "v0.2.7-alpha.15",
          "kind": "prerelease",
          "published_at": "2026-07-21T21:27:43Z"
        },
        {
          "tag": "v0.2.6-alpha.14",
          "kind": "prerelease",
          "published_at": "2026-07-21T20:40:00Z"
        },
        {
          "tag": "v0.2.4-alpha.10",
          "kind": "prerelease",
          "published_at": "2026-07-21T16:08:56Z"
        },
        {
          "tag": "v0.2.2-alpha.5",
          "kind": "prerelease",
          "published_at": "2026-07-20T13:56:08Z"
        },
        {
          "tag": "v0.2.2-alpha.4+20260720",
          "kind": "prerelease",
          "published_at": "2026-07-20T13:13:58Z"
        },
        {
          "tag": "v0.2.2-alpha.3",
          "kind": "prerelease",
          "published_at": "2026-07-17T22:20:29Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-07-17T21:59:14Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "479b343017e0ee629141bb5ceca90ba0d9eb1129",
          "body": "- 将插件版本从 0.3.6-beta.8 升级至 0.3.7-beta.9\n- 同步更新 tooth.json 和 ServerInfoRestMod.cpp 中的运行时版本\n- 将 GitHub Release 压缩包统一命名为 serverinfo-rest-v0.3.7-beta.9-server-windows-x64.zip\n- 在构建工作流中同步版本化压缩包的生成名称和 Release 上传名称\n- 更新 tooth.json 的 Lip 资源 URL,使用 {{version}} 自动匹配对应版本制品\n- 更新 Release Notes 模板中的下载链接和手动安装文件名\n- \n[…]\nLip URL 版本变量展开结果与工作流生成、上传文件名一致\n- Release 模板版本替换结果验证通过\n- git diff --check 通过\n- 遵循仓库约束,未在本地运行 xmake\n- 提交推送后由 GitHub Actions 执行 C++ 构建、测试、Manifest 校验与 Release 发布\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "[build release] chore(release): 版本化发布资源并发布 v0.3.7-beta.9",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-26T17:34:39Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a30f2736a2e8c933e8f0dc45c4faff95c20ad219",
          "body": "- 新增 PlayerActivityStore,按上海时区将玩家活动持久化为每日 JSONL 文件\n\n- 每个自然分钟记录在线人数心跳,并记录包含 XUID 的玩家进入事件\n\n- 统计末次、峰值及平均在线人数、进入次数、独立玩家数和数据覆盖时间\n\n- 新增 GET /api/v2/players/activity-history 接口,支持默认今日和 yyyyMMdd 日期查询\n\n- 增加非法日期、未来日期、无数据及存储不可用响应处理\n\n- 新增 playerActivityHistoryRetentionDays 配置,默认保留 365 天,非正数永久保留\n\n- 将活动存储状态接入健康检查\n[…]\n证 JSONL 记录,并支持活动目录删除后的自动重建和跨日恢复\n\n- 补充时区边界、重复进入、心跳断点、损坏记录、保留期和恢复逻辑测试\n\n- 扩展 API 测试脚本、xmake 测试目标和 README 文档\n\n版本变更:0.3.2-beta.2 -> 0.3.6-beta.8\n\nCI: build release\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "feat(activity): 新增玩家活动趋势采集与查询 API",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-26T13:51:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "508b20109318c44bfcae2824dd286aae6c85405e",
          "body": "将玩家快照字段从 isInWater 调整为语义更准确的 isSwimming,并使用目标 SDK 已支持的 ActorFlags::Swimming 状态标记采集数据。\n\n同步更新 PlayerSnapshot 序列化、README 响应示例和单元测试,避免依赖 CI 预编译 SDK 未向 Player 暴露的 isInWater 成员。\n\n验证:Koishi 44 项 Vitest 测试、TypeScript 类型检查、标准构建及 git diff --check 均通过;推送后由 GitHub Actions 重新执行 C++ 构建与 Release 发布。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "[build release] fix(build): 兼容 LeviLamina 26.10.14 玩家游泳状态 API",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-23T17:37:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31b59f5b622518fd90a5bf4bf45ca3a883676947",
          "body": "将插件版本从 0.3.1-beta.1 升级至 0.3.2-beta.2。\n\n新增线程安全的在线玩家快照模型,由 BDS 主线程定时采集并供 HTTP 线程只读访问;扩展 GET /api/v2/player 响应,提供游戏模式、权限、生命值、动作状态、环境、位置、装备、设备平台和网络质量。\n\n从玩家详情响应中移除 IP、客户端 ID 和服务器地址等敏感连接信息;装备仅返回类型、显示名称、数量和附魔状态,不暴露完整物品 NBT。\n\n新增 PlayerSnapshot 单元测试并接入 xmake 测试目标。\n\n将配置格式从 version 6 升级至 version 7,不提供旧配置自动迁移;将\n[…]\n证:Koishi 配套客户端 44 项 Vitest 测试全部通过;Python API 测试脚本语法解析通过;git diff --check 通过;遵循仓库约束,未在本地安装或运行 xmake;推送后由 GitHub Actions 执行 C++ 构建、单元测试、Manifest 校验与 Release 发布。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "[build release] feat(api)!: 发布 v0.3.2-beta.2 并扩展玩家快照与白名单同步策略",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-23T16:11:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b03085cd4a57193d7101f427ee1a001daa97848c",
          "body": "- 将 LeviLamina 构建依赖从 26.10.* 收紧为精确版本 26.10.14\n- 确保 GitHub Actions 产物与目标 BDS 云服使用相同 SDK 和 ABI\n- 移除原生命令执行对 VanillaDimensions::Overworld 的外部符号依赖\n- 使用稳定的 DimensionType{0} 表示主世界命令来源\n- 避免模块加载阶段解析不存在的 Overworld 符号\n- 同步 ServerInfoRestMod 与 tooth.json 中的插件版本\n- 版本从 0.3.0-alpha.20 升级至 0.3.1-beta.1\n\n验证:\n- git diff --check\n- 对照云服确认运行时 LeviLamina 为 26.10.14\n- 遵循仓库约束,未在本地安装或运行 xmake\n- 推送后由 GitHub Actions 执行 C++ 构建、Manifest 校验与 Release 发布\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "fix(build): 锁定 LeviLamina 26.10.14 并修复维度符号 build release",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-23T02:54:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b91dd7ebf74c2bf393b09b5b4802218c31a6be5",
          "body": "将插件版本从 0.3.0-alpha.19 升级至 0.3.0-alpha.20,并同步更新 tooth.json 与 ServerInfoRestMod.cpp 中的运行时版本。\n\n调整 xmake 打包配置,从 tooth.json 读取完整语义化版本,并显式传递给 levibuildscript modpacker,避免无 Git 标签或浅克隆环境下将 manifest 版本回退为 0.0.0,同时保留完整的 alpha 预发布后缀。\n\n移除 GitHub Actions 手动触发时的版本覆盖入口,统一以 tooth.json 作为构建产物、Artifact、Release 标签和 ma\n[…]\n输出。\n\n同步更新构建工作流文档,明确手动构建与发布均使用 tooth.json 中的版本号。\n\n完善 Git 忽略规则,为分组注释增加 Emoji,并忽略 Python 缓存与 bin 构建产物。\n\n新增仓库智能体协作规范,约束 C++ 构建验证通过 GitHub Actions 执行,并保护工作区中的用户改动。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "fix(build): 修复 manifest 版本注入并发布 v0.3.0-alpha.20 build release",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-23T00:04:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9788fb6b9508fc4549f5159a7caa3c20588f66e4",
          "body": "发布版本由 0.2.9-alpha.17 升级至 0.3.0-alpha.19。\n\n将默认 API 前缀升级为 /api/v2,配置格式升级至 version 6,player-data.json 数据格式升级至 version 2,并删除 API v1、旧配置迁移和旧数据迁移逻辑。\n\n移除 adminWhitelist 与管理员直接授权模型,统一聊天账号和 Xbox 玩家一对一绑定;默认拒绝冲突,管理员可通过 force 原子替换用户侧与玩家侧冲突,并同步清理失去绑定玩家的 BDS allowlist 项目。\n\n新增 whitelist/state,重构 whitelist/add、whit\n[…]\n重写 Python API 测试以覆盖全部 17 条 API v2 路由,并同步更新 README 与 xmake 配置。\n\nBREAKING CHANGE: 删除 API v1 及旧配置和 player-data.json 的迁移兼容;升级时需要重新生成 version 6 配置和 version 2 玩家数据。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "feat(api)!: 升级 API v2 并统一玩家绑定模型 [build release]",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-22T15:59:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b0bfa99801ea96c23dde88d25031f05f0ec57e48",
          "body": "新增 POST /api/v1/players/stats/bound 接口,通过聊天平台、机器人和用户标识查询已绑定玩家的历史统计。\n\n扩展 PlayerDataStore 绑定查找能力,并区分未绑定与绑定玩家暂无统计数据两类错误,便于客户端给出准确提示。\n\n同步更新 API 文档、数据层测试和 Tooth 包版本;该查询独立于绑定接口与进服授权检查开关,不修改服务端白名单。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "release: 发布 v0.2.9-alpha.17 并支持绑定账号统计查询 build release",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-22T01:46:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "962d6ed3bf01ee4ab6a15c9a00b81dff6bb4a56a",
          "body": "将插件版本从 0.2.7-alpha.15 升级至 0.2.8-alpha.16,并同步更新 tooth.json 包版本与 ServerInfoRestMod.cpp 运行时版本。\n\n将服务端配置文件版本从 4 升级至 5。\n\n将 enableWhitelistBinding 重命名为 enableWhitelistBindingApiEndpoints,明确控制普通用户绑定与解绑接口。\n\n新增 enableWhitelistManagementApiEndpoints,独立控制管理员添加与移除白名单接口,并默认保持开启。\n\n将 enforceWhitelistBinding 重命名为 re\n[…]\n新增配置默认值、旧字段迁移、新字段优先级和版本边界测试,并接入 serverinfo-rest-tests 构建目标。\n\n更新 README v5 配置示例、配置项说明、升级迁移规则和无感测试方案。\n\n通过 build release 关键词触发 Windows 构建、C++ 测试和 GitHub Release。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "release: 发布 v0.2.8-alpha.16 并细化白名单授权开关 build release",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-21T22:54:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "27376a6f8d3367c5a349a321e2599475ba36ef58",
          "body": "- 将插件版本从 0.2.6-alpha.14 升级至 0.2.7-alpha.15\n\n- 将服务端配置文件版本从 3 升级至 4\n\n- 新增 tokenReceiveMode 和 adminTokenReceiveMode,支持 param、header、both 三种接收模式\n\n- 只读 token 默认接受 param 和 header,管理 token 默认仅接受 Bearer Header\n\n- 在 both 模式下检测 Header 与 URL token 冲突并拒绝歧义请求\n\n- 对无效模式安全回退到 header,并对管理 URL token 输出安全警告\n\n- 抽离 Toke\n[…]\nfo-rest-tests 构建目标\n\n- 为 Config.h 全部 20 个 _comment_* 配置说明增加 Emoji\n\n- 更新 README v4 配置示例、认证说明、QQ 群反馈与安全提示\n\n- 通过 build release 关键词触发 Windows 构建、测试和 GitHub Release\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "release: 发布 v0.2.7-alpha.15 并扩展 Token 认证模式 build release",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-21T21:24:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a9f2920190e4bcb2b59dbed954699c5ce2c43b3f",
          "body": "- 将插件版本从 0.2.4-alpha.10 升级至 0.2.6-alpha.14\n\n- 同步更新 tooth.json 包版本与 ServerInfoRestMod.cpp 运行时版本\n\n- 在 README 增加 Koishi Plugin 徽章和配套客户端 GitHub 入口\n\n- 说明客户端可用于查询服务器状态、玩家数据和管理白名单\n\n- 通过提交关键词触发 Windows 构建、测试与 GitHub Release 发布\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "release: 发布 v0.2.6-alpha.14 并触发 build release",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-21T20:36:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "185b7b430865945d6fbc797af2388d7d0d3220b6",
          "body": "- 将插件版本从 0.2.3-alpha.7 升级至 0.2.4-alpha.10\n- 同步 tooth.json 发布清单与 C++ PluginVersion 运行时常量\n- 将版本脚本的短 dry-run 参数由 -n 调整为 -d\n- 同时支持 --dryrun 与 --dry-run 两种长参数写法\n- 保持 dry-run 仅校验 tooth.json 和 C++ 版本常量且不写入文件\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "chore(release): 发布 v0.2.4-alpha.10 [build release]",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-21T16:05:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6aa9e11b631e8c92e7d3b9b09c8e5a3c1648b5a6",
          "body": "- 将配置格式升级至版本 3,并为配置项补充中文说明字段\n- 完善管理令牌、白名单绑定及配置迁移说明\n- 增加 HTTP 查询能力概览和远程 API 测试参数\n- 将版本同步脚本限定为 tooth.json 与 C++ 版本常量\n- 使用通用占位符替代 README 中的具体发布版本\n- 同步插件正式版本至 0.2.3-alpha.7\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. feat: 发布 v0.2.3-alpha.7 并完善配置与 API 文档",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-21T01:46:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "667590e585b5bceb227f4448a7604db7a707d46f",
          "body": "- 将发布版本从 v0.2.2-alpha.4+20260720 调整为 v0.2.2-alpha.5\n- 移除会触发 LIP SemVersionRange 元数据异常的加号版本后缀\n- 同步更新 tooth.json 中的包发布版本\n- 同步更新 ServerInfoRestMod.cpp 中的运行时版本常量\n- 同步更新 README.md 中根接口与状态接口的版本示例\n- 触发 CI 重新构建并发布兼容 LIP 的版本产物\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "chore(release): 发布 v0.2.2-alpha.5 并修正 LIP 兼容性 [build release]",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-20T13:53:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11b4a1e23b54c2a3f453cd25ef5cdb546191f3c1",
          "body": "- 将插件版本从 v0.2.2-alpha.3 升级至 v0.2.2-alpha.4+20260720\n- 同步更新 tooth.json 中的发布版本\n- 同步更新 ServerInfoRestMod.cpp 中的运行时版本常量\n- 同步更新 README.md 中根接口与状态接口的版本示例\n- 触发 CI 构建并发布对应版本产物\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "chore(release): 发布 v0.2.2-alpha.4+20260720 [build release]",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-20T13:10:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ad22ee263a9a75a64b205210c274b245a2cd247",
          "body": "将 tooth 包版本从 0.1.0 更新至 0.2.2-alpha.3\n同步 C++ PluginVersion,确保 REST API 返回正确插件版本\n更新 README 中根接口与状态接口的版本响应示例\n修正版本管理流程,直接通过 bump_version.py 同步版本\n将版本同步计数由 5 处修正为实际的 4 处\n使用 vX.Y.Z-word.W 展示通用预发布提交格式\n触发 GitHub Actions 完整构建与数据存储 GTest\n生成 Windows x64 插件制品并创建预发布版本 Release\n\n版本变化:0.1.0 -> 0.2.2-alpha.3\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "chore(release): 发布 v0.2.2-alpha.3 [build release]",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T22:17:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d311cd3f5a9f3376df876be6580caced7a626d1c",
          "body": "触发 GitHub Actions 完整构建、测试、制品打包与 v0.1.0 Release 发布流程。\n\n版本变化:0.1.0 -> 0.1.0(正式发布,版本保持不变)\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build release. chore: 发布 v0.1.0",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T21:54:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "014c5075b079a529f06ed00bdb3d8512a0fa8c82",
          "body": "显式初始化并运行 GTest,避免 MSVC 链接测试目标时无法解析 main 入口;同时移除不需要的预置 main 配置并修复局部变量遮蔽警告。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. fix: 为数据存储测试定义执行入口",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T21:39:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "178774ba91d3e2e8d2b845ee7c080766e6f7b791",
          "body": "为 serverinfo-rest-tests 显式添加 nlohmann_json 依赖,修复独立测试目标找不到 nlohmann/json.hpp 的编译错误。\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. fix: 补充数据存储测试 JSON 依赖",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T21:35:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36c5f485ee628beae4a9ee5746402f5c467a4687",
          "body": "使用临时文件校验和原子替换保存 player-data.json\n增加 .bak 备份恢复和损坏数据文件保留机制\n增加 fail-open、fail-closed 白名单数据故障策略\n默认关闭 OP 绕过绑定,并在启动时补齐有效 BDS 白名单\n拆分主线程命令执行入口,避免启动修复发生调度死锁\n在数据不可用时返回 degraded 健康状态和 503 响应\n增加玩家统计、绑定冲突、授权及备份恢复 GTest\n扩展 API 冒烟测试并保护管理接口测试开关\n在 GitHub Actions 构建流程中运行单元测试\n完善白名单语义、数据存储和故障恢复文档\n更新版本修改脚本,支持校验及 dry-run\n\n版本变化:0.1.0 -> 0.1.0(保持不变)\n\nCo-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. feat: 完善白名单数据可靠性与自动化测试",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T21:31:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1f6dc9b09ba789d3aaaafdd8c9d2e3626e756274",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. fix: preserve independent whitelist grants",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T15:04:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0e8fa713e8b4a9c494505f1d5fc12fa1acc8c606",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. fix: define mod lifetime out of line",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T14:10:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c47eb1c9c65e1b17a8c74dd92ec4a71e2c357baa",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. fix: call player disconnect overload",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T14:05:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "57381736224a7233b386769f77e855eebf07d4f6",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. feat: add player history and whitelist management",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T13:45:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20c0f22013493b6ef58d1fdb9b4805fed96e7af5",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. feat: add online status overview",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T07:38:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99f8cb1e1d0f8d87f62b761622891ac836a8228d",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. ci: build xmake dependencies from source",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T06:04:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "84fec146a072e55337d87c637e3fa38021f8615a",
          "body": "Co-authored-by: Codex <codex@openai.com>",
          "is_bot": false,
          "headline": "build action. ci: enable verbose xmake configure logs",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T05:22:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "23f565ded630a999b6c5448c7ec2c81dd6cf2fda",
          "body": null,
          "is_bot": false,
          "headline": "build action. chore: target LeviLamina 26.10",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-07-17T04:34:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22f557289e4fe3f2dc6d1f895fd726eb57e3fb5a",
          "body": "### README.md\n  - 重写 API 文档,修正与实际代码不一致的响应格式\n  - 新增 CI/CD、版本管理、测试脚本、技术栈、相关链接章节\n  - 添加 Socialify banner、9 个 badges、last commit + CI build badge\n### .github/workflows/build.yml / build.md\n  - 完全重构为 3 阶段 CI 流水线 (check → build → release)\n  - 新增 commit 关键词触发与 workflow_dispatch 手动触发\n### .github/scripts/gen\n[…]\np_version.py\n  - 新增版本号批量更新工具\n### tooth.json\n  - 重写为 variants + assets + placements 标准 lip v3 格式\n  - bump version: 0.1.0 → 1.0.0\n### src/mod/ServerInfoRestMod.cpp\n  - 同步版本号至 1.0.0\n### dev.md\n  - 移除冗余文档",
          "is_bot": false,
          "headline": "build release. docs: 重写 README 结构,新增 CI/CD 流水线与版本管理脚本",
          "author_name": "VincentZyu233",
          "author_login": "VincentZyu233",
          "committed_at": "2026-06-17T18:07:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "94140bad4c0ed0cd48cc9e1e0993bdd98f7cc1bc",
          "body": "…fixes and detailed debug messages",
          "is_bot": false,
          "headline": "build version 0.0.1-alpha.2+20260202 - feat: improve logging with pre…",
          "author_name": "VincentZyuwin11台式机",
          "author_login": null,
          "committed_at": "2026-02-02T05:23:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b2d3f600e2b45925c43b2fe9e7680b80117e317a",
          "body": null,
          "is_bot": false,
          "headline": "build version 0.0.1-alpha.2+20260202 - fix null pointer crash on load",
          "author_name": "VincentZyuwin11台式机",
          "author_login": null,
          "committed_at": "2026-02-01T22:43:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "290d94d38b0799938a15bc75835050ee887eb89d",
          "body": "….1+20260202.",
          "is_bot": false,
          "headline": "build version 0.0.2-alpha.1+20260202. feat: build version 0.0.1-alpha…",
          "author_name": "VincentZyuwin11台式机",
          "author_login": null,
          "committed_at": "2026-02-01T22:35:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e899360d31823464bda5a813a07ccb19c4546864",
          "body": "… cache",
          "is_bot": false,
          "headline": " build version 0.0.1-alpha.1+20260202. fix MemoryOperators and add CI…",
          "author_name": "VincentZyuwin11台式机",
          "author_login": null,
          "committed_at": "2026-02-01T22:10:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3717be4f6f34f78dfbdd8226259bca81149939e",
          "body": null,
          "is_bot": false,
          "headline": "build version 0.0.1-alpha.1+20260202 init",
          "author_name": "VincentZyuwin11台式机",
          "author_login": null,
          "committed_at": "2026-02-01T22:00:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 15,
      "commits_last_year": 34,
      "latest_release_at": "2026-07-26T17:37:46Z",
      "latest_release_tag": "v0.3.7-beta.9",
      "releases_from_tags": false,
      "days_since_last_push": 2,
      "active_weeks_last_year": 4,
      "days_since_latest_release": 2,
      "mean_days_between_releases": 0.5
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 25,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 1,
      "stars": 4,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-06-03",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "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": [],
      "largest_source_bytes": 79640,
      "source_files_sampled": 24,
      "oversized_source_files": 1,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 1204
    },
    "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": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "VincentZyu233",
          "commits": 29,
          "avatar_url": "https://avatars.githubusercontent.com/u/142771491?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "build.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": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "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": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 3 contributing companies or organizations -- score normalized to 10",
            "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": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 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": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "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": "479b343017e0ee629141bb5ceca90ba0d9eb1129",
        "ran_at": "2026-07-29T12:32:17Z",
        "aggregate_score": 3.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-26T17:37:48Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/VincentZyuApps/levilamina-plugin-serverinfo-rest",
    "host": "github.com",
    "name": "levilamina-plugin-serverinfo-rest",
    "owner": "VincentZyuApps"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 42,
      "inputs": {
        "security": 36,
        "vitality": 74,
        "community": 16,
        "governance": 24,
        "engineering": 56
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 74,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "commits_last_year": 34,
              "human_commit_share": 1,
              "days_since_last_push": 2,
              "active_weeks_last_year": 4
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "4/52 weeks with commits",
                "points": 2.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "34 commits in the last year",
                "points": 13.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 34
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 15,
              "latest_release_tag": "v0.3.7-beta.9",
              "releases_from_tags": false,
              "days_since_latest_release": 2,
              "mean_days_between_releases": 0.5
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "15 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 15
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 2 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 2
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0.5 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0.5
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 16,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 8,
            "inputs": {
              "forks": 1,
              "stars": 4,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "4 stars",
                "points": 7.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 4
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "critical",
        "name": "Sustainability & Governance",
        "value": 24,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 20,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 52,
            "inputs": {
              "followers": 13,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "VincentZyuApps",
              "public_repos": 70,
              "account_age_days": 222
            },
            "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": "13 followers of VincentZyuApps",
                "points": 8.2,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 13,
                      "login": "VincentZyuApps"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "70 public repos, account ~0 yr old",
                "points": 14.2,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 70
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 0
                    }
                  }
                ],
                "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": 56,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "1 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": false,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 36,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 36,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "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": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "29 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": 1
            },
            "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": "moderate",
        "name": "AI Readiness",
        "value": 60,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 78,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.618,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 1204
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "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": "21 of 34 human commits state their intent (structured subject or explanatory body)",
                "points": 32.9,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 21,
                      "sampled": 34
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "at_risk",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 33,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "C++ (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C++"
                    }
                  }
                ],
                "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": "no agent-authored commits among the last 34",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 34
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 98,
            "inputs": {
              "primary_language": "C++",
              "largest_source_bytes": 79640,
              "source_files_sampled": 24,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C++ (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C++"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/24 source files over 60KB",
                "points": 52.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 24,
                      "oversized": 1
                    }
                  }
                ],
                "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-29T12:32:27.322234Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/v/VincentZyuApps/levilamina-plugin-serverinfo-rest.svg",
  "full_name": "VincentZyuApps/levilamina-plugin-serverinfo-rest",
  "license_state": "absent",
  "license_spdx": null
}

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

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

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