Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-24 08:57 UTC

KohmeBot / report

群日报

Go · HTMLKeine Lizenz erkannt★ 0 Sterne⑂ 0 Forksseit Mai 2026Auf GitHub ansehen ↗

KohmeBot/report erreicht einen Gesundheitsindex von 42 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei Vitality (75/100) ab, am schwächsten bei Community & Adoption (12/100). Zuletzt vor 3 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

42
gesamt / 100
Gefährdet

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

42
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

KohmeBotOrganisation
2 Follower17 öffentliche Reposseit Okt. 2024

Dieses Repository wird von einer Organisation getragen — geteilte, rechenschaftspflichtige Trägerschaft, die jeden einzelnen Maintainer überdauern kann.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
Gogithub.com/kohmebot/reportv0.1.22-73vor 3 Tagen

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

75Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 3 Tagen
5.5/36Commit-Rhythmus — 8/52 Wochen mit Commits
17/18Commit-Volumen — 78 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Verwendete Eingangsdaten
commits_last_year78
human_commit_share1
days_since_last_push3
active_weeks_last_year8

Release-Disziplin

100Exzellent
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 72 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 3 Tagen
27/27Release-Rhythmus — ein Release etwa alle 5,3 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count72
latest_release_tagv0.1.22
releases_from_tagsnein
days_since_latest_release3
mean_days_between_releases5,3
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

12Kritisch · 18 % des Gesamtindex
Wie die Bewertung erfolgt
0/60Stars — 0 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
0/22.5Lizenz — keine Lizenzdatei erkannt
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licensenein
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

35Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
0/38.3PR-Annahme — keine entschiedenen Pull Requests oder keine Daten
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote, PR-Annahme. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30Organisatorische Trägerschaft — im Besitz einer Organisation
0/20Verifizierte Domain
3.4/25Reichweite des Inhabers — 2 Follower von KohmeBot
12.7/25Kontohistorie — 17 öffentliche Repos, Kontoalter ca. 1 Jahre
Verwendete Eingangsdaten
followers2
owner_typeOrganization
is_verified
owner_loginKohmeBot
public_repos17
account_age_days645

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf go
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 3 Tagen
20/20Versionshistorie — 73 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesgithub.com/kohmebot/report
ecosystemsgo
any_deprecatednein
min_days_since_publish3

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

56Mittel · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 1 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30README
0/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirnein
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

26Kritisch · 16 % des Gesamtindex

Sicherheitslage

26Kritisch
Wie die Bewertung erfolgt
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 — keine Daten
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.5Lizenz — license file not detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — keine Daten
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 — keine Daten
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
6/7.5Vulnerabilities — 2 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate2,6
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, packaging, signed_releases. Die verbleibenden Gewichte wurden renormalisiert.

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

58Mittel · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 78 von 78 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — go.mod (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — Go (statisch typisiert)
10/10Reproduzierbare Umgebung — lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 78
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Go (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/16 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageGo
largest_source_bytes12.859
source_files_sampled16
oversized_source_files0

Eckdaten

0GitHub-Sterne
1Mitwirkende
78Commits, letzte 12 Monate
3Tage seit letztem Push
72Releases
1Bus-Faktor
0offene Issues
GoPaket-Ökosysteme

Warnungen zur Datenerhebung

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

Weitere Details

OpenSSF Scorecard 2.6 / 10
2.6Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).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
k. A.CI-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
k. A.Packagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
8Vulnerabilities2 existing vulnerabilities detected
Direkte Abhängigkeiten 8
RegistryPaketVersionsvorgabeManifest
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
Alle Abhängigkeiten nicht erhoben

Der aufgelöste Abhängigkeitssatz konnte für diesen Bericht nicht erhoben werden: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

JSON-Rohbericht maschinenlesbar
{
  "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
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenGo.