Registro público
Informe de salud del softwareesquema 0.27.0 · métricas 1.13.0 · 2026-07-24 08:57 UTC

KohmeBot / report

群日报

Go · HTMLSin licencia detectada★ 0 estrellas⑂ 0 forksdesde may 2026Ver en GitHub ↗

KohmeBot/report 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 (75/100) y la más baja, Community & Adoption (12/100). Se actualizó por última vez hace 3 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

KohmeBotOrganización
2 seguidores17 repositorios públicosdesde oct 2024

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

Ecosistemas de paquetes

RegistroPaqueteVersiónDescargas / mesVersionesÚltima publicación
Gogithub.com/kohmebot/reportv0.1.22-73hace 3 días

Métricas por categoría

Vitalidad

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

75Bueno · 22% del índice global
Cómo se puntúa
36/36Recencia de push — último push hace 3 días
5.5/36Cadencia de commits — 8/52 semanas con commits
17/18Volumen de commits — 78 commits en el último año
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Datos de entrada utilizados
commits_last_year78
human_commit_share1
days_since_last_push3
active_weeks_last_year8
Cómo se puntúa
27/27Publica versiones — 72 versiones publicadas
36/36Recencia de las versiones — última versión hace 3 días
27/27Cadencia de publicación — una versión cada ~5,3 días
0/10OpenSSF Scorecard: Signed-Releases — sin datos
Datos de entrada utilizados
releases_count72
latest_release_tagv0.1.22
releases_from_tagsno
days_since_latest_release3
mean_days_between_releases5,3
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?

12Crítico · 18% del índice global
Cómo se puntúa
0/60Estrellas — 0 estrellas
0/25Forks — 0 forks
0/15Observadores — 0 observadores
Datos de entrada utilizados
forks0
stars0
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?

35En riesgo · 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
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
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
3.4/25Alcance del propietario — 2 seguidores de KohmeBot
12.7/25Trayectoria — 17 repos públicos, cuenta de ~1 años
Datos de entrada utilizados
followers2
owner_typeOrganization
is_verified
owner_loginKohmeBot
public_repos17
account_age_days645
Cómo se puntúa
25/25Publicado y resoluble — 1 paquete(s) en go
35/35Recencia de publicación — última publicación hace 3 días
20/20Historial de versiones — 73 versiones en el registro
20/20No obsoleto — activo, ni obsoleto ni retirado
Datos de entrada utilizados
packagesgithub.com/kohmebot/report
ecosystemsgo
any_deprecatedno
min_days_since_publish3

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?

26Crítico · 16% del índice global
Cómo se puntúa
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — 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
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
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
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
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 — sin datos
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
6/7.5Vulnerabilities — 2 existing vulnerabilities detected
Datos de entrada utilizados
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate2,6
Excluidos de la puntuación (sin datos o no aplicable): ci_tests, packaging, 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.

58Moderado · 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 — 78 de 78 commits humanos declaran su intención (asunto estructurado o cuerpo explicativo)
Datos de entrada utilizados
has_llms_txtno
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Cómo se puntúa
12.6/18Arranque con un solo comando — go.mod (convención del toolchain, sin ejecutor de tareas)
22/22Pruebas automatizadas
0/11Configuración de lint / formato
11/11Verificación estática de tipos — Go (tipado estático)
10/10Entorno reproducible — lockfile
0/10Práctica demostrada con agentes — ningún commit con autoría de agente entre los últimos 78
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
lockfilesgo.sum
has_dockerfileno
typed_language
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Cómo se puntúa
45/45Código verificable por tipos — Go (tipado estático)
55/55Tamaños de archivo manejables — 0/16 archivos fuente de más de 60 KB
Datos de entrada utilizados
primary_languageGo
largest_source_bytes12.859
source_files_sampled16
oversized_source_files0

Datos clave

0estrellas de GitHub
1contribuidores
78commits en los últimos 12 meses
3días desde el último push
72versiones publicadas
1factor bus
0issues abiertas
Goecosistemas de paquetes

Advertencias de recopilación de datos

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

Más detalle

OpenSSF Scorecard 2.6 / 10
2.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-24 08:57 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
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
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
n/dSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
8Vulnerabilities2 existing vulnerabilities detected
Dependencias directas 8
RegistroPaqueteRestricción de versiónManifiesto
Gogithub.com/chromedp/chromedpv0.15.1go.mod
Gogithub.com/fumiama/cronv1.3.0go.mod
Gogithub.com/kohmebot/chataiv0.4.18go.mod
Gogithub.com/kohmebot/plugin/v2v2.0.2go.mod
Gogithub.com/sirupsen/logrusv1.9.3go.mod
Gogithub.com/stretchr/testifyv1.11.1go.mod
Gogithub.com/wdvxdr1123/ZeroBotv1.8.2go.mod
Gogorm.io/gormv1.25.12go.mod
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": 291,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Go": 70334,
        "HTML": 58173
      },
      "pushed_at": "2026-07-21T07:04:47Z",
      "created_at": "2026-05-08T08:20:55Z",
      "owner_type": "Organization",
      "updated_at": "2026-07-21T07:04:34Z",
      "description": "群日报",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "dev",
      "license_spdx_raw": null,
      "primary_language": "Go",
      "significant_languages": [
        "Go",
        "HTML"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "Organization",
      "login": "KohmeBot",
      "company": null,
      "location": null,
      "followers": 2,
      "avatar_url": "https://avatars.githubusercontent.com/u/185313386?v=4",
      "created_at": "2024-10-17T02:19:22Z",
      "is_verified": null,
      "public_repos": 17,
      "account_age_days": 645
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.1.22",
          "kind": "patch",
          "published_at": "2026-07-21T07:04:48Z"
        },
        {
          "tag": "v0.1.21",
          "kind": "patch",
          "published_at": "2026-07-03T07:51:58Z"
        },
        {
          "tag": "v0.1.20",
          "kind": "patch",
          "published_at": "2026-06-18T07:45:00Z"
        },
        {
          "tag": "v0.1.19",
          "kind": "patch",
          "published_at": "2026-06-12T02:05:11Z"
        },
        {
          "tag": "v0.1.18",
          "kind": "patch",
          "published_at": "2026-06-11T08:50:52Z"
        },
        {
          "tag": "v0.1.17",
          "kind": "patch",
          "published_at": "2026-06-09T08:38:58Z"
        },
        {
          "tag": "v0.1.16",
          "kind": "patch",
          "published_at": "2026-06-05T10:22:59Z"
        },
        {
          "tag": "v0.1.15",
          "kind": "patch",
          "published_at": "2026-06-03T12:32:18Z"
        },
        {
          "tag": "v0.1.14",
          "kind": "patch",
          "published_at": "2026-06-03T10:49:52Z"
        },
        {
          "tag": "v0.1.13",
          "kind": "patch",
          "published_at": "2026-06-03T10:07:32Z"
        },
        {
          "tag": "v0.1.12",
          "kind": "patch",
          "published_at": "2026-06-03T08:24:19Z"
        },
        {
          "tag": "v0.1.11",
          "kind": "patch",
          "published_at": "2026-06-03T08:06:29Z"
        },
        {
          "tag": "v0.1.10",
          "kind": "patch",
          "published_at": "2026-06-03T07:09:24Z"
        },
        {
          "tag": "v0.1.9",
          "kind": "patch",
          "published_at": "2026-06-02T14:58:22Z"
        },
        {
          "tag": "v0.1.8",
          "kind": "patch",
          "published_at": "2026-06-02T14:34:23Z"
        },
        {
          "tag": "v0.1.7",
          "kind": "patch",
          "published_at": "2026-06-02T12:29:04Z"
        },
        {
          "tag": "v0.1.6",
          "kind": "patch",
          "published_at": "2026-06-02T10:41:11Z"
        },
        {
          "tag": "v0.1.5",
          "kind": "patch",
          "published_at": "2026-06-02T10:04:12Z"
        },
        {
          "tag": "v0.1.4",
          "kind": "patch",
          "published_at": "2026-06-02T09:48:02Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2026-06-02T08:43:57Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2026-06-02T08:36:03Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2026-06-02T08:30:39Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-06-02T08:16:35Z"
        },
        {
          "tag": "v0.0.2-alpha.49",
          "kind": "prerelease",
          "published_at": "2026-05-25T09:11:04Z"
        },
        {
          "tag": "v0.0.2-alpha.48",
          "kind": "prerelease",
          "published_at": "2026-05-25T08:30:19Z"
        },
        {
          "tag": "v0.0.2-alpha.47",
          "kind": "prerelease",
          "published_at": "2026-05-23T04:09:23Z"
        },
        {
          "tag": "v0.0.2-alpha.46",
          "kind": "prerelease",
          "published_at": "2026-05-22T07:45:47Z"
        },
        {
          "tag": "v0.0.2-alpha.45",
          "kind": "prerelease",
          "published_at": "2026-05-20T12:21:21Z"
        },
        {
          "tag": "v0.0.2-alpha.44",
          "kind": "prerelease",
          "published_at": "2026-05-20T11:59:36Z"
        },
        {
          "tag": "v0.0.2-alpha.43",
          "kind": "prerelease",
          "published_at": "2026-05-19T02:44:54Z"
        },
        {
          "tag": "v0.0.2-alpha.42",
          "kind": "prerelease",
          "published_at": "2026-05-18T09:51:01Z"
        },
        {
          "tag": "v0.0.2-alpha.41",
          "kind": "prerelease",
          "published_at": "2026-05-18T09:31:10Z"
        },
        {
          "tag": "v0.0.2-alpha.40",
          "kind": "prerelease",
          "published_at": "2026-05-18T08:56:20Z"
        },
        {
          "tag": "v0.0.2-alpha.39",
          "kind": "prerelease",
          "published_at": "2026-05-17T08:21:04Z"
        },
        {
          "tag": "v0.0.2-alpha.38",
          "kind": "prerelease",
          "published_at": "2026-05-17T08:14:12Z"
        },
        {
          "tag": "v0.0.2-alpha.37",
          "kind": "prerelease",
          "published_at": "2026-05-15T09:48:13Z"
        },
        {
          "tag": "v0.0.2-alpha.36",
          "kind": "prerelease",
          "published_at": "2026-05-15T08:55:53Z"
        },
        {
          "tag": "v0.0.2-alpha.35",
          "kind": "prerelease",
          "published_at": "2026-05-15T08:37:22Z"
        },
        {
          "tag": "v0.0.2-alpha.34",
          "kind": "prerelease",
          "published_at": "2026-05-15T04:11:55Z"
        },
        {
          "tag": "v0.0.2-alpha.33",
          "kind": "prerelease",
          "published_at": "2026-05-15T03:46:54Z"
        },
        {
          "tag": "v0.0.2-alpha.32",
          "kind": "prerelease",
          "published_at": "2026-05-14T10:33:09Z"
        },
        {
          "tag": "v0.0.2-alpha.31",
          "kind": "prerelease",
          "published_at": "2026-05-14T10:12:02Z"
        },
        {
          "tag": "v0.0.2-alpha.30",
          "kind": "prerelease",
          "published_at": "2026-05-14T09:25:59Z"
        },
        {
          "tag": "v0.0.2-alpha.29",
          "kind": "prerelease",
          "published_at": "2026-05-14T08:04:04Z"
        },
        {
          "tag": "v0.0.2-alpha.28",
          "kind": "prerelease",
          "published_at": "2026-05-14T07:41:52Z"
        },
        {
          "tag": "v0.0.2-alpha.27",
          "kind": "prerelease",
          "published_at": "2026-05-14T07:22:12Z"
        },
        {
          "tag": "v0.0.2-alpha.26",
          "kind": "prerelease",
          "published_at": "2026-05-14T07:10:10Z"
        },
        {
          "tag": "v0.0.2-alpha.25",
          "kind": "prerelease",
          "published_at": "2026-05-14T06:52:30Z"
        },
        {
          "tag": "v0.0.2-alpha.24",
          "kind": "prerelease",
          "published_at": "2026-05-14T06:44:43Z"
        },
        {
          "tag": "v0.0.2-alpha.23",
          "kind": "prerelease",
          "published_at": "2026-05-13T12:25:34Z"
        },
        {
          "tag": "v0.0.2-alpha.22",
          "kind": "prerelease",
          "published_at": "2026-05-13T12:13:03Z"
        },
        {
          "tag": "v0.0.2-alpha.21",
          "kind": "prerelease",
          "published_at": "2026-05-13T12:02:45Z"
        },
        {
          "tag": "v0.0.2-alpha.20",
          "kind": "prerelease",
          "published_at": "2026-05-13T10:55:36Z"
        },
        {
          "tag": "v0.0.1-alpha.19",
          "kind": "prerelease",
          "published_at": "2026-05-13T10:10:32Z"
        },
        {
          "tag": "v0.0.1-alpha.18",
          "kind": "prerelease",
          "published_at": "2026-05-13T09:48:54Z"
        },
        {
          "tag": "v0.0.1-alpha.17",
          "kind": "prerelease",
          "published_at": "2026-05-13T09:06:41Z"
        },
        {
          "tag": "v0.0.1-alpha.16",
          "kind": "prerelease",
          "published_at": "2026-05-13T08:59:20Z"
        },
        {
          "tag": "v0.0.1-alpha.15",
          "kind": "prerelease",
          "published_at": "2026-05-13T08:46:41Z"
        },
        {
          "tag": "v0.0.1-alpha.14",
          "kind": "prerelease",
          "published_at": "2026-05-13T08:10:24Z"
        },
        {
          "tag": "v0.0.1-alpha.13",
          "kind": "prerelease",
          "published_at": "2026-05-12T10:21:55Z"
        },
        {
          "tag": "v0.0.1-alpha.12",
          "kind": "prerelease",
          "published_at": "2026-05-12T02:57:13Z"
        },
        {
          "tag": "v0.0.1-alpha.11",
          "kind": "prerelease",
          "published_at": "2026-05-11T08:15:33Z"
        },
        {
          "tag": "v0.0.1-alpha.10",
          "kind": "prerelease",
          "published_at": "2026-05-09T18:06:32Z"
        },
        {
          "tag": "v0.0.1-alpha.9",
          "kind": "prerelease",
          "published_at": "2026-05-09T06:38:55Z"
        },
        {
          "tag": "v0.0.1-alpha.8",
          "kind": "prerelease",
          "published_at": "2026-05-09T04:08:52Z"
        },
        {
          "tag": "v0.0.1-alpha.7",
          "kind": "prerelease",
          "published_at": "2026-05-09T03:23:18Z"
        },
        {
          "tag": "v0.0.1-alpha.6",
          "kind": "prerelease",
          "published_at": "2026-05-09T03:02:03Z"
        },
        {
          "tag": "v0.0.1-alpha.5",
          "kind": "prerelease",
          "published_at": "2026-05-08T10:09:40Z"
        },
        {
          "tag": "v0.0.1-alpha.4",
          "kind": "prerelease",
          "published_at": "2026-05-08T09:47:55Z"
        },
        {
          "tag": "v0.0.1-alpha.3",
          "kind": "prerelease",
          "published_at": "2026-05-08T09:45:32Z"
        },
        {
          "tag": "v0.0.1-alpha.2",
          "kind": "prerelease",
          "published_at": "2026-05-08T08:55:32Z"
        },
        {
          "tag": "v0.0.1-alpha.1",
          "kind": "prerelease",
          "published_at": "2026-05-08T08:24:18Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "2a27eab740c9747f41d8bb3841f301f8324d5115",
          "body": "- 移除 Aggregator 构造函数中的多余参数\n- 添加 MessageCount 方法用于统计指定时间段内的消息数量\n- 在配置中添加 ReportMinMessageCount 字段用于设置最低消息数阈值\n- 在发送日报前检查群消息数量是否达到最低要求\n- 当消息数量不足时跳过日报发送并记录日志\n- 更新插件版本号至 v0.1.22",
          "is_bot": false,
          "headline": "feat(report): 添加消息数量检查功能以控制日报发送",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-07-21T07:01:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5ffa2688fedf6869822a4383657342d51a3f3271",
          "body": "- 在配置文件中新增 SendTime 字段用于设置每日发送时间,默认为 09:00\n- 实现定时发送逻辑,支持自定义发送时间而非固定 9 点\n- 添加时间解析和 cron 表达式生成功能\n- 升级插件版本号从 v0.1.20 到 v0.1.21",
          "is_bot": false,
          "headline": "feat(report): 添加日报定时发送时间配置功能",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-07-03T07:50:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3ded447b23c7411172a0bace3cda529d4be5e157",
          "body": null,
          "is_bot": false,
          "headline": "feat: config ui",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-18T07:42:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "faac4f26249cbbd7420865d453e5334ccbf3a5af",
          "body": "- 将插件版本从 v0.1.17 更新至 v0.1.18\n- 优化每日报告中称号原因的提示文案,增加字数限制说明",
          "is_bot": false,
          "headline": "chore(version): 更新插件版本并优化称号原因提示文案",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-12T02:03:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65f11f96cfe9e10afd155168da39822a5a344c72",
          "body": "- 将插件版本从 v0.1.17 更新至 v0.1.18\n- 优化每日报告中称号原因的提示文案,增加字数限制说明",
          "is_bot": false,
          "headline": "chore(version): 更新插件版本并优化称号原因提示文案",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-11T08:50:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a71191be5988eb62aac3336d26faeaddc948768",
          "body": "- 提取报告发送逻辑到独立的 sendReport 方法中\n- 添加对发送失败群组的收集和重试处理\n- 实现最多3次重试机制,每次间隔递增\n- 添加详细的错误日志记录\n- 更新插件版本号至 v0.1.17",
          "is_bot": false,
          "headline": "refactor(report): 重构报告发送逻辑并添加重试机制",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-09T08:35:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac0285ad06df65c8746959dadc6c118a1ab5cce7",
          "body": "- 移除footer中的装饰性心形符号元素\n- 在golden模板中对内容进行换行处理以支持多行显示\n- 将handler中的return改为continue以避免中断循环处理\n- 更新插件版本号从v0.1.15到v0.1.16\n- 优化quality模板中的缩进和样式对齐\n- 增加渲染上下文超时时间从5分钟到10分钟\n- 添加newline函数用于模板中换行符转换\n- 重构renderRefs函数统一处理用户引用替换逻辑\n- 优化CSS样式包括调整用户胶囊和气泡样式的对齐方式",
          "is_bot": false,
          "headline": "fix(report): 修复报告生成和模板渲染问题",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-05T10:21:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "297ef86be4a5e35453fbf03ae4cd9a4742e629d4",
          "body": "- 在base.html中添加JavaScript代码实现标题字符的随机旋转和位移效果\n- 修改style.html中的标题样式,移除原有的彩色高亮改为动态配色方案\n- 移除DailyReport结构体中的template.HTML类型依赖,统一使用string类型\n- 更新插件版本号从v0.1.14到v0.1.15\n- 优化标题渲染逻辑,支持每个字符独立的动态变换效果",
          "is_bot": false,
          "headline": "feat(report): 为日报标题添加动态文字效果",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-03T12:31:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "94628e525808edde8752e99762556d017c739bfe",
          "body": "- 修正金句数据结构,移除冗余的sender字段并改用UserID作为发送者标识\n- 更新提示词模板,删除过时的字段说明和身份对齐要求\n- 调整页脚样式,优化布局定位和版权信息展示\n- 修改页脚文案,将\"生成\"改为\"撰写\"以更准确描述内容创作过程\n- 添加设计署名信息和图标,增强视觉效果和版权归属标识",
          "is_bot": false,
          "headline": "fix(report): 修复日报生成中的数据映射和界面显示问题",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-06-03T10:49:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a63132e41e540bf4d6017642cda878d0441ddfb1",
          "body": "- 更新页脚生成时间显示样式,移除\"生成于\"前缀文字\n- 添加调色板变量和蜡笔抖动滤镜效果\n- 实现海量涂鸦背景和纸张颗粒纹理\n- 优化卡片、标签、头像等组件的视觉样式\n- 调整数据统计图表和活跃度图表的外观\n- 更新话题和群友画像模块的布局样式\n- 统一使用CSS变量替代硬编码颜色值\n- 添加SVG滤镜实现手绘风格边框效果",
          "is_bot": false,
          "headline": "style(report): 优化日报模板样式增强视觉效果",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-03T10:06:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "51d087417df041db33c48d30009255f68b72dd79",
          "body": "- 将 daily/generator.go 中的 commonHeader 替换为 header 变量\n- 更新 PluginReport 版本号从 v0.1.11 到 v0.1.12",
          "is_bot": false,
          "headline": "refactor(report): 统一报告生成器中的头部变量引用",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-03T08:23:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0b2c0d2274b69a2fc5a34955dc130828dd74de7",
          "body": "- 修改聊天记录格式从方括号标记改为尖括号和圆括号组合\n- 调整头像区域布局结构,重新排列标题和元数据位置\n- 优化CSS样式包括姓名显示、标签定位和响应式断字\n- 更新插件版本号从v0.1.10到v0.1.11\n- 调整头像标签的自对齐和间距设置",
          "is_bot": false,
          "headline": "style(report): 更新聊天记录格式和头像展示样式",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-03T08:05:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49c76c65e697a735979213402b1b3d236138ed3b",
          "body": "- 将Aggregate方法参数从字符串日期改为time.Time和duration\n- 移除User结构体及其相关方法,改为直接使用用户ID\n- 修改TopicItem、UserItem、GoldenItem等结构体使用int64类型的用户ID\n- 更新格式化消息时添加消息ID显示\n- 移除fullRenderUsers方法,改为按需获取用户数据\n- 重构InvokeAi方法返回单一AIResult结构体\n- 添加通用提示头部,改进AI提示词格式\n- 更新渲染器模板函数,支持动态获取用户头像和昵称\n- 优化消息去重逻辑,移除低信息量消息类型",
          "is_bot": false,
          "headline": "refactor(report): 重构日报聚合器和渲染器",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-03T07:08:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a3d9e0ede34216c24f5f62b50683947a2f87507",
          "body": null,
          "is_bot": false,
          "headline": "fix: reason",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T14:57:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59c1dedcf748c51c133f22135bad7f5e9b9598e0",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修改样式,支持金句reason显示头像",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T14:33:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4c9a331eabb23645f482a41451845b2a66b78005",
          "body": "- 修改模板中时间轴显示逻辑,使用动态标签替代固定数值\n- 将消息内容长度限制从30字符调整为100字符\n- 在消息压缩前过滤掉无内容的消息\n- 添加辅助函数用于生成时间轴标签\n- 实现内容消息过滤功能,排除空消息",
          "is_bot": false,
          "headline": "feat(report): 优化日报报告生成和展示功能",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T11:53:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b991d9c9eab8f41b1604aab295eeb8eca4559b5",
          "body": "- 修改calcTimeStats函数增加时间范围参数,补全缺失小时的数据\n- 修复时间格式化显示问题,使用15:04格式替代04:05格式\n- 将生成时间改为当前时间而非固定时间\n- 更新版本号从v0.1.5到v0.1.6\n- 调整称号命名,将\"表情包军火库\"改为\"梗图批发商\"\n- 优化AI锐评显示样式,移除多余的分隔符\n- 增加渲染超时时间从1分钟到5分钟\n- 调整消息采样限制,软限制从200提升到400,硬限制从400提升到600",
          "is_bot": false,
          "headline": "feat(report): 更新每日报告功能并优化数据统计",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T10:39:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f76268f2eb8babae3e886d03d15ca94cd2a3020",
          "body": "- 升级插件版本从v0.1.4到v0.1.5\n- 将群聊质量标题更改为群聊分析\n- 移除url包依赖并删除PathEscape调用\n- 使用page.SetDocumentContent替代data URL方式加载HTML内容\n- 优化chromedp截图流程,提高渲染稳定性",
          "is_bot": false,
          "headline": "fix(report): 修复HTML内容渲染和截图功能",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T10:03:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea766dd143b297ba618388fa9578b0a994f72a1b",
          "body": "- 引入html/template包并修改Title字段为template.HTML类型\n- 为User结构体添加空值检查方法IsEmpty\n- 重构Generator中的时间高亮显示逻辑到独立方法makeHighlightTime\n- 修改avatarColor, displayName, avatarHTML, userChipHTML函数接收指针参数\n- 更新话题参与者显示样式和标签\n- 优化统计信息中的图标和文字描述\n- 添加JSON字段跳过导出的功能\n- 将报告生成器版本从v0.1.3升级到v0.1.4",
          "is_bot": false,
          "headline": "feat(report): 更新日报功能以支持模板渲染和改进UI展示",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T09:47:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "34b7c934358b099aa947f2f754cf713d3b6db093",
          "body": "- 修复了 daily/generator.go 中 QualityPrompt 请求的指针传递错误\n- 将 report/plugin.go 中的插件版本从 v0.1.2 更新为 v0.1.3",
          "is_bot": false,
          "headline": "fix(report): 修复报告生成器中的指针传递错误并更新版本号",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T08:43:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b3928cac577f150376d5f04cfd9702d746967a63",
          "body": "- 将 IsEmpty 验证逻辑从 json.go 的 Validate 函数移动到 validateValue 函数\n- 在 validateValue 函数开头添加完整的验证实现\n- 更新 PluginReport 版本号从 v0.1.1 到 v0.1.2\n- 移除原 Validate 函数中的重复验证代码\n- 保持验证功能的完整性和一致性",
          "is_bot": false,
          "headline": "refactor(report): 重构验证逻辑并更新版本号",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T08:34:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "269475b1330e4794a71efcdeb96456c6137f9f10",
          "body": "- 移除了Config结构体中的RegenTheme字段\n- 为User结构体添加了IsEmpty方法用于检查是否为空\n- 重构了JSON反序列化验证逻辑,增加了对空值接口的检查\n- 在Invoker中实现了基于IsEmpty接口的空值验证\n- 更新插件版本号从v0.1.0到v0.1.1",
          "is_bot": false,
          "headline": "refactor(report): 移除配置中的主题重生成选项并优化JSON验证逻辑",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T08:29:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0135aed8afc97561377806b93132351689fd5951",
          "body": "- 重命名DailyReport为AggregateData,优化数据结构\n- 移除AI热点摘要功能,简化聚合逻辑\n- 添加新的HTML模板文件(base.html, activity.html, golden.html, footer.html)\n- 新增render包用于处理日报数据渲染\n- 实现24小时活跃轨迹图表展示\n- 添加字符数和表情包数量统计功能\n- 重构GenerateReport方法,支持在线搜索配置\n- 更新配置文件添加Online和Title字段\n- 优化消息格式化显示,使用用户ID替代昵称\n- 实现完整的日报页面布局和组件结构",
          "is_bot": false,
          "headline": "feat(report): 重构日报生成模块并新增HTML模板",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-06-02T08:14:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cb4ff07675e6a4404fe3deb73a020a05abed60b",
          "body": "- 在Aggregator结构体中添加thinking字段\n- 修改NewAggregator构造函数以接收thinking参数\n- 在conf.go中添加Thinking配置项用于控制深度思考模式\n- 在Generator中传递thinking参数到Aggregator\n- 更新所有Generator创建处以传入thinking配置\n- 修改AI调用时使用thinking参数控制深度思考\n- 将版本号从v0.0.2-alpha.48升级到v0.2-alpha.49",
          "is_bot": false,
          "headline": "feat(report): 添加深度思考配置选项以优化AI生成",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-25T09:10:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "106d9e996617fa1fbb1cc9278fb5a3d99e330407",
          "body": "- 修正了 JSON 反序列化中切片为空的判断条件,移除了对长度为 0 的检查\n- 更新插件报告版本从 v0.0.2-alpha.47 到 v0.0.2-alpha.48",
          "is_bot": false,
          "headline": "fix(report): 修复切片为空检查逻辑并更新版本号",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-25T08:28:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8509a096b0323dd7e73c189522c2a7cad4b2e3ad",
          "body": "- 添加了MsgTypeJson类型的处理逻辑,显示\"分享了一条内容(搬屎)\"\n- 将消息文本提取逻辑封装为独立的getText函数\n- 优化了消息内容获取方式,统一通过getText函数处理\n- 更新版本号从v0.0.2-alpha.46到v0.0.2-alpha.47",
          "is_bot": false,
          "headline": "feat(report): 添加JSON消息类型支持和优化消息提取",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-23T04:08:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3c4db9938e7ad50a2c7476290754b06956ce37f9",
          "body": "- 添加MsgTypeJson常量定义\n- 在HasMsgType函数中加入JSON消息类型验证\n- 为JSON消息类型添加中文显示名称\"分享内容(搬屎)\"\n- 更新插件版本号从v0.0.2-alpha.45到v0.0.2-alpha.46\n- 优化每日报告提示词中的MVP排名逻辑描述\n- 简化moment时段评论中的定性点评要求",
          "is_bot": false,
          "headline": "feat(report): 添加JSON消息类型支持并更新版本",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-22T07:44:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f89a2e9938169a9efca85bfdb78ca9521aa9fe71",
          "body": "- 注释掉主播直播话术参考选项\n- 将版本号从 v0.0.2-alpha.44 更新为 v0.0.2-alpha.45",
          "is_bot": false,
          "headline": "chore(report): 移除主播直播话术选项并更新版本号",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-20T12:20:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b0619ac68a92212bbce3fcd0b235a02ead92bde",
          "body": "- 在日报模型中新增 Roast 字段用于关键时刻点评\n- 修改 HTML 模板显示关键时刻吐槽内容\n- 更新日报生成逻辑支持吐槽内容输出\n- 调整数据展示方式,将时间与评论分行显示\n- 优化提示词引导更自然的行为描述\n- 升级插件版本至 v0.0.2-alpha.44",
          "is_bot": false,
          "headline": "feat(report): 添加关键时刻吐槽功能并优化日报输出格式",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-20T11:57:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cf2d4019cc96c6e02bf4575428224a8374eb3c0",
          "body": "- 移除主播直播话术中的V圈参考项\n- 将版本号从v0.0.2-alpha.42更新至v0.0.2-alpha.43\n- 在style字段中明确禁止使用具体口头禅或结尾句式示例\n- 添加禁止多条点评使用相同结尾句式的规则\n- 强调主题风格应通过世界观和专有名词体现,而非重复表达",
          "is_bot": false,
          "headline": "refactor(report): 更新版本号并优化提示词配置",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-19T02:43:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba0784649172c9a7fbeca0113617afa1f754fe5d",
          "body": "- 在UserStat结构体中添加FirstMessage和EndMessage字段存储首末消息\n- 移除旧的FirstTime和LastTime时间字段\n- 修改buildUserBlock函数以显示首末发言的具体内容\n- 更新buildUserBlock函数参数以传入用户映射表\n- 调整消息类型分布的分隔符从\"/\"改为\",\"\n- 更新插件版本号至v0.0.2-alpha.42",
          "is_bot": false,
          "headline": "feat(report): 更新日报统计功能以显示首末发言内容",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-18T09:49:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "95766d965c41478bfdd38731f764c5334d9b5bc0",
          "body": "- 在GenerateReport方法中增加groupName参数传递\n- 修改newReportTemplateData函数签名以接收群组名称\n- 更新HTML模板中角色显示为实际群组名称\n- 在多个调用点添加群组名称获取逻辑\n- 重构GetReport方法参数结构以包含群组名称",
          "is_bot": false,
          "headline": "feat(report): 添加群组名称参数支持报告生成",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-18T09:29:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbb77c2fa69f43631d388b0f9b154d7a1e400fce",
          "body": "- 在GenerateReport方法中增加groupName参数传递\n- 修改newReportTemplateData函数签名以接收群组名称\n- 更新HTML模板中角色显示为实际群组名称\n- 在多个调用点添加群组名称获取逻辑\n- 重构GetReport方法参数结构以包含群组名称",
          "is_bot": false,
          "headline": "feat(report): 添加群组名称参数支持报告生成",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-18T09:29:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c55f0b34328aae0261d80dae5a1930231454af00",
          "body": "- 修改findGroupRepeatMsg函数,传入用户映射参数并重构复读消息统计逻辑\n- 添加图片URL提取功能,增强消息数据完整性\n- 更新复读消息统计结构,包含发起人和时间信息\n- 重构主题选择逻辑,实现主题分类轮询机制\n- 优化日报主题提示词和格式化输出\n- 调整日报内容模板,改进复读消息展示格式\n- 完善数据块解析要求,提升日报生成准确性",
          "is_bot": false,
          "headline": "feat(report): 优化复读消息统计功能并完善日报生成",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-18T08:55:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abf49834f3a350961a108141b3edd364f17a0d27",
          "body": null,
          "is_bot": false,
          "headline": "fix: index",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-17T08:18:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5fea48b31457d2ba247a05124b08280c5cb0e9e",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增主题指定,复读最多的话",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-17T08:12:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0111ee22cdeb6211853ec86a959f66abcac84d1",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增json容错机制",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-15T09:47:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "053583771f4a67b8fc181c9ab850853c70c8b4f5",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复总结bug",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-15T08:54:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fedcf50907878aad829637d3681942456956e37f",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增第一条和最后一条消息的板块",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-15T08:35:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "def3872c40a4aa380480466f6b5054f28357682a",
          "body": null,
          "is_bot": false,
          "headline": "fix: 优化摘要生成",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-15T04:11:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fcc202d40a581e68cfd3cb792335b57281df9c8f",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增热点摘要",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-15T03:44:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a9f1f06427bdc2eef0777bbc00508ef1031dc0f1",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增热点摘要",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-15T03:41:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0de342e5a6a51cd7944e605d1d7a5bcce58ab0b",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增发言节奏,冷知识板块增加",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T10:31:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6e9ce2e8c2f510d6d82b282c1bfbdbc30ea71bd",
          "body": null,
          "is_bot": false,
          "headline": "refactor: 优prompt,开场白不随主题生成",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T10:11:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b101da2990e016a7e0bd05aef8e7079aa077f16",
          "body": null,
          "is_bot": false,
          "headline": "refactor: 优prompt,直接平铺数据,不要自己总结",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T09:24:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0666e776b86fd5f162ae24a61296e54da861dece",
          "body": null,
          "is_bot": false,
          "headline": "refactor: 优化互动关系的prompt",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T08:03:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1a586578a51ff5e2b7c2423a5014cda183482939",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复BeReplied构建逻辑",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T07:40:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba32769dc058162ae0b427e8b3a508c2709b8465",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复BeReplied构建逻辑",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T07:40:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7d50c88266b1e9b13ede9e0da33dd627a8d5dba0",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复时间段取值",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T07:21:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "78d8da749837beac72186827711991feefb92714",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复生成prompt时 时间的问题",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T07:09:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "584e16cb02786337fcf777e2fe6f954901052ae1",
          "body": null,
          "is_bot": false,
          "headline": "fix: select last",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T06:51:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac0f55fcc77d7630ef8cc5599b94f2eb0ad07669",
          "body": null,
          "is_bot": false,
          "headline": "fix: 增加过滤",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T06:42:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16e4561a0d6a46b49df7019c193d332f09ac2e05",
          "body": null,
          "is_bot": false,
          "headline": "refactor: 优化userPrompt的生成,日报从自然日改成4点-次日4点",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-14T06:23:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "348589a53e021fb1389c74f9fd6dfe1cdcea4a82",
          "body": "- 将用户点评格式更改为群友点评格式并添加说明\n- 更新插件版本号从 v0.0.2-alpha.22 到 v0.0.2-alpha.23",
          "is_bot": false,
          "headline": "fix(report): 更新每日报告模板和插件版本",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T12:24:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11fb620edd589b9b090ec1593c266a8c335455d3",
          "body": "- 在获取报告前添加2秒延迟避免频繁请求\n- 更新版本号至v0.0.2-alpha.22",
          "is_bot": false,
          "headline": "perf(report): 添加延迟优化报告生成性能",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T12:12:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24ffd61be2e491fa1e659dac81cf91e6c61a3739",
          "body": "- 将每日报告发送时间从早上8点调整为9点\n- 更新插件版本号从v0.0.2-alpha.20到v0.2-alpha.21\n- 优化日报主题选择提示词,支持更多热门IP和网络梗\n- 增加B站常用梗搜索功能,丰富主题选择范围",
          "is_bot": false,
          "headline": "fix: 修复定时任务时间配置并更新版本号",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T12:01:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "11b2542fbf2c2371d3aed29dd301444bf6b3ad75",
          "body": "- 使用时间范围查询替代DATE函数以提高准确性\n- 更新插件版本号至 v0.0.2-alpha.20",
          "is_bot": false,
          "headline": "fix(report): 修复日报生成中的日期查询逻辑",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T10:54:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "13f047582562f5c77dac2f0d7f9c3062da20d8df",
          "body": "- 使用时间范围查询替代DATE函数以提高准确性\n- 更新插件版本号至 v0.0.1-alpha.20",
          "is_bot": false,
          "headline": "fix(report): 修复日报生成中的日期查询逻辑",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T10:50:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f37aea52a232b5e88680c9bafb25277757df0102",
          "body": "- 移除 JSON 序列化方式,改为字符串模板格式化主题内容\n- 更新报告提示词格式,直接使用主题字符串替代分段参数\n- 增强点评内容要求,明确必须具体描述行为和数据\n- 添加更多写作约束条件,确保内容符合主题世界观\n- 更新插件版本号至 v0.0.1-alpha.19",
          "is_bot": false,
          "headline": "fix: 优化日报主题格式化和提示词结构",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T10:09:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ae66436de570422d860bdc2025716529a1d2e05d",
          "body": null,
          "is_bot": false,
          "headline": "fix: 调整html排版",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T09:48:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d010fdeeb629e50e156499da09170c6e64792eb",
          "body": "- 移除 base64 编码步骤,直接使用原始图片字节\n- 将图片长度检查从非空指针改为长度判断\n- 更新插件版本号至 v0.0.1-alpha.17",
          "is_bot": false,
          "headline": "refactor(report): 优化报告生成逻辑并移除不必要的依赖",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T09:05:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "173bf82dda90d0aebb929887f8ec78a6d01350c4",
          "body": "- 移除不必要的文件路径参数传递\n- 删除临时文件创建和删除逻辑\n- 使用URL编码直接传递HTML数据给chromedp\n- 更新插件版本号至v0.0.1-alpha.16",
          "is_bot": false,
          "headline": "refactor(report): 简化报告图片生成流程",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T08:58:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ed875bac2165c8098dc6715ff4ebb2e9c3b618c",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复emoji_decoration的prompt",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T08:44:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9c4894ccdde1694d5db25b5cff7cd1deba4fd073",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增图片渲染",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-13T08:08:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05742c17f032cb9586084f16f550043e1868ab24",
          "body": null,
          "is_bot": false,
          "headline": "fix: 优化关键字提取逻辑",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-12T10:20:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb10d17e848579237b402b030987061fb976fbf7",
          "body": null,
          "is_bot": false,
          "headline": "feat: 让prompt更有攻击性",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-12T02:56:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "60dee6ab0d36036638b6369b3d341e415783a846",
          "body": null,
          "is_bot": false,
          "headline": "feat: 避免AI使用重复的主题",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-11T08:14:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04049ebc54339fc1051673e42421caab2f512fd1",
          "body": null,
          "is_bot": false,
          "headline": "fix: yesterday的获取方式",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-09T18:05:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "389f41a25ee28b0283de841a02fd409461ad5d06",
          "body": null,
          "is_bot": false,
          "headline": "feat: 优化prompt,停用词",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-09T06:37:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3907d6a76bcd3b2b54aa3548b13c7e7aef719dd4",
          "body": null,
          "is_bot": false,
          "headline": "feat: 加入定时发送的配置,和收集隔离",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-09T04:06:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e250d2c6a66ca8fdc755b7b8f9d1ab00ba6e304",
          "body": null,
          "is_bot": false,
          "headline": "fix: 生成主题时,使用昨天的日期",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-09T03:21:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71565a2f89e163aa980eb313f9d8c6ecf12755e1",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增主题生成,修改标志性语句选取策略",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-09T02:58:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24e8c9447ca99b4a609e205c2f74e78339619e68",
          "body": null,
          "is_bot": false,
          "headline": "fix: targetID的获取方法",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-08T10:07:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "767da6bba9cfa3e518ec39909910472374f9a135",
          "body": null,
          "is_bot": false,
          "headline": "fix: AutoMigrate",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-08T09:47:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6ddc96a34197eca72b01de4dd818877d67fb823",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增更多的统计数据",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-08T09:44:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c97a4e7fa07cdc365caa77e173376c5bd0d40df4",
          "body": null,
          "is_bot": false,
          "headline": "feat: 启用定时发送,改用群名片",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-08T08:54:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb66250b4b5b664c5d25ccaff9b370ab6cb8c832",
          "body": null,
          "is_bot": false,
          "headline": "fix: for debug",
          "author_name": "be_xjh",
          "author_login": null,
          "committed_at": "2026-05-08T08:23:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "131007425a2a35d770a4a3941c48f1c646721147",
          "body": null,
          "is_bot": false,
          "headline": "feat: init",
          "author_name": "jhue",
          "author_login": "JHue58",
          "committed_at": "2026-05-08T08:20:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 72,
      "commits_last_year": 78,
      "latest_release_at": "2026-07-21T07:04:48Z",
      "latest_release_tag": "v0.1.22",
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 8,
      "days_since_latest_release": 3,
      "mean_days_between_releases": 5.3
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 37,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/kohmebot/report",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/kohmebot/report",
          "is_deprecated": false,
          "latest_version": "v0.1.22",
          "repository_url": "https://github.com/kohmebot/report",
          "versions_count": 73,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T07:01:28Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 3
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": 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": [
        "go.mod"
      ],
      "largest_source_bytes": 12859,
      "source_files_sampled": 16,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "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": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/chromedp/chromedp",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.15.1"
        },
        {
          "name": "github.com/fumiama/cron",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.3.0"
        },
        {
          "name": "github.com/kohmebot/chatai",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.4.18"
        },
        {
          "name": "github.com/kohmebot/plugin/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.0.2"
        },
        {
          "name": "github.com/sirupsen/logrus",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.9.3"
        },
        {
          "name": "github.com/stretchr/testify",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.11.1"
        },
        {
          "name": "github.com/wdvxdr1123/ZeroBot",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.8.2"
        },
        {
          "name": "gorm.io/gorm",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.25.12"
        }
      ],
      "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": "JHue58",
          "commits": 70,
          "avatar_url": "https://avatars.githubusercontent.com/u/46672817?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "kohme-plugin-ci.yml"
      ],
      "has_docs_dir": false,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "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": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "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": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "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": 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": 8,
            "reason": "2 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "2a27eab740c9747f41d8bb3841f301f8324d5115",
        "ran_at": "2026-07-24T08:57:17Z",
        "aggregate_score": 2.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-21T07:04:54Z",
      "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/KohmeBot/report",
    "host": "github.com",
    "name": "report",
    "owner": "KohmeBot"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 42,
      "inputs": {
        "security": 26,
        "vitality": 75,
        "community": 12,
        "governance": 35,
        "engineering": 56
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 75,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 58,
            "inputs": {
              "commits_last_year": 78,
              "human_commit_share": 1,
              "days_since_last_push": 3,
              "active_weeks_last_year": 8
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "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": "78 commits in the last year",
                "points": 17,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 78
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "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": 100,
            "inputs": {
              "releases_count": 72,
              "latest_release_tag": "v0.1.22",
              "releases_from_tags": false,
              "days_since_latest_release": 3,
              "mean_days_between_releases": 5.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "72 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 72
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~5.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 5.3
                    }
                  }
                ],
                "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": "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": 12,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Sustainability & Governance",
        "value": 35,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "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 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": "at_risk",
            "name": "Ownership & stewardship",
            "note": null,
            "notes": [],
            "value": 46,
            "inputs": {
              "followers": 2,
              "owner_type": "Organization",
              "is_verified": null,
              "owner_login": "KohmeBot",
              "public_repos": 17,
              "account_age_days": 645
            },
            "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": "2 followers of KohmeBot",
                "points": 3.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 2,
                      "login": "KohmeBot"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "17 public repos, account ~1 yr old",
                "points": 12.7,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 17
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 1
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/kohmebot/report"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 3
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 3 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "73 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 73
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "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": "critical",
        "name": "Security",
        "value": 26,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "packaging",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 26,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 2.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 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "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": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "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": "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": "2 existing vulnerabilities detected",
                "points": 6,
                "status": "partial",
                "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": 58,
        "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": 1,
              "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": "78 of 78 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 78,
                      "sampled": 78
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 56,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "go.mod"
                    }
                  }
                ],
                "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": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 78",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 78
                    }
                  }
                ],
                "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": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 12859,
              "source_files_sampled": 16,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/16 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 16,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-24T08:57:22.393919Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/k/KohmeBot/report.svg",
  "full_name": "KohmeBot/report",
  "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 agregadasGo.