Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-29 05:27 UTC

kaizendevsio / XFramework

XFramework Version 1.0 Using Microsoft .Net Core Technologies

C#MIT★ 3 Sterne⑂ 0 Forksseit Okt. 2020Auf GitHub ansehen ↗

kaizendevsio/XFramework erreicht einen Gesundheitsindex von 47 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei AI Readiness (76/100) ab, am schwächsten bei Community & Adoption (26/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

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

47
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

XeonPersönliches Konto
3 Follower17 öffentliche Reposseit Nov. 2018

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Metriken nach Kategorie

Vitalität

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

64Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
2.1/36Commit-Rhythmus — 3/52 Wochen mit Commits
17/18Commit-Volumen — 78 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Verwendete Eingangsdaten
commits_last_year78
human_commit_share1
days_since_last_push0
active_weeks_last_year3
Wie die Bewertung erfolgt
16.2/27Liefert Releases aus — 2 Versions-Tags (keine GitHub-Releases)
27/36Release-Aktualität — letztes Release vor 125 Tagen
27/27Release-Rhythmus — ein Release etwa alle 0 Tage
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count2
latest_release_tagv1.0.1
releases_from_tagsja
days_since_latest_release125
mean_days_between_releases0
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?

26Kritisch · 18 % des Gesamtindex
Wie die Bewertung erfolgt
4.9/60Stars — 3 Stars
0/25Forks — 0 Forks
0/15Watcher — 1 Watcher
Verwendete Eingangsdaten
forks0
stars3
watchers1
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
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?

40Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0.8/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 96 % der Commits
2.7/13.5Breite der Beitragenden — 2 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled2
top_contributor_share0,965
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
37/38.3PR-Annahme — 362/374 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs362
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs12
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
4.3/25Reichweite des Inhabers — 3 Follower von kaizendevsio
21.1/25Kontohistorie — 17 öffentliche Repos, Kontoalter ca. 7 Jahre
Verwendete Eingangsdaten
followers3
owner_typeUser
is_verified
owner_loginkaizendevsio
public_repos17
account_age_days2.809
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

66Mittel · 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
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

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

36Gefährdet · 16 % des Gesamtindex

Sicherheitslage

36Gefährdet
Wie die Bewertung erfolgt
6.8/7.5Binary-Artifacts — binaries present in source code
0/7.5Branch-Protection — keine Daten
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
2.5/2.5Lizenz — license file detected
0/7.5Maintained — 0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
5/5Packaging — packaging workflow detected
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
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated15
scorecard_versionv5.5.0
checks_inconclusive3
scorecard_aggregate3,6
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): branch_protection, ci_tests, 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.

76Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — .github/copilot-instructions.md, CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 94 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,94
agent_instruction_files.github/copilot-instructions.md, CLAUDE.md
agent_instruction_max_bytes16.399
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — src/Infrastructure/XFramework.Integration/XFramework.Integration.csproj, src/Kernel/XFramework.Core/XFramework.Core.csproj, src/Kernel/XFramework.Domain/XFramework.Domain.csproj (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — C# (statisch typisiert)
10/10Reproduzierbare Umgebung — Dockerfile
10/10Belegte Agentenpraxis — 53 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
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
lockfiles
has_dockerfileja
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0,53
toolchain_manifestssrc/Infrastructure/XFramework.Integration/XFramework.Integration.csproj, src/Kernel/XFramework.Core/XFramework.Core.csproj, src/Kernel/XFramework.Domain/XFramework.Domain.csproj, src/Libraries/Bolt/Bolt.Client/Bolt.Client.csproj, src/Libraries/Bolt/Bolt.Protocol/Bolt.Protocol.csproj, src/Libraries/Bolt/Bolt.Server/Bolt.Server.csproj, src/Modules/XFramework.Blazor/XFramework.Blazor.csproj, src/Modules/XFramework.Bolt/Bolt.Domain.Shared/Bolt.Domain.Shared.csproj, src/Modules/XFramework.Bolt/Bolt.Hub/Bolt.Hub.csproj, src/Modules/XFramework.Coins/Client/Coins.Web/Coins.Web/Coins.Web.csproj, src/Modules/XFramework.Coins/Server/Coins.Api/Coins.Api.csproj, src/Modules/XFramework.Coins/Server/Coins.Tests/Coins.Tests.csproj, src/Modules/XFramework.Community/Community.Api/Community.Api.csproj, src/Modules/XFramework.Community/Community.Domain.Shared/Community.Domain.Shared.csproj, src/Modules/XFramework.IdentityServer/IdentityServer.Api/IdentityServer.Api.csproj, src/Modules/XFramework.IdentityServer/IdentityServer.Domain.Shared/IdentityServer.Domain.Shared.csproj, src/Modules/XFramework.IdentityServer/IdentityServer.Integration/IdentityServer.Integration.csproj, src/Modules/XFramework.Inventario/Inventario.Api/Inventario.Api.csproj, src/Modules/XFramework.Inventario/Inventario.Domain.Shared/Inventario.Domain.Shared.csproj, src/Modules/XFramework.Messaging/Messaging.Api/Messaging.Api.csproj, src/Modules/XFramework.Messaging/Messaging.Domain.Shared/Messaging.Domain.Shared.csproj, src/Modules/XFramework.Messaging/Messaging.Integration/Messaging.Integration.csproj, src/Modules/XFramework.Messaging/Messaging.Tests/Messaging.Tests.csproj, src/Modules/XFramework.Payments/Payments.Core/Payments.Core.csproj, src/Modules/XFramework.Payments/Payments.Domain.Shared/Payments.Domain.Shared.csproj, src/Modules/XFramework.SmsGateway/SmsGateway.Api/SmsGateway.Api.csproj, src/Modules/XFramework.SmsGateway/SmsGateway.Domain.Shared/SmsGateway.Domain.Shared.csproj, src/Modules/XFramework.SmsGateway/SmsGateway.Integration/SmsGateway.Integration.csproj, src/Modules/XFramework.Wallets/Wallets.Api/Wallets.Api.csproj, src/Modules/XFramework.Wallets/Wallets.Domain.Shared/Wallets.Domain.Shared.csproj, src/Modules/XFramework.Wallets/Wallets.Integration/Wallets.Integration.csproj, src/Presentation/ControlPanel/ControlPanel.csproj, src/Presentation/Fluid/Fluid.csproj, src/Presentation/Gateway/Gateway.csproj, src/Shared/XFramework.Domain.Shared/XFramework.Domain.Shared.csproj, src/SourceGenerators/XFramework.SourceGenerators/XFramework.SourceGenerators.csproj, src/Tests/Bolt.Tests/Bolt.Tests.csproj, src/Tests/IdentityServer.Benchmarks/IdentityServer.Benchmarks.csproj, src/Tests/IdentityServer.IntegrationTests/IdentityServer.IntegrationTests.csproj, src/Tests/SerializerPerfTest/SerializerPerfTest.csproj, src/Tests/Wallets.IntegrationTests/Wallets.IntegrationTests.csproj, src/Tests/XFramework.Core.Tests/XFramework.Core.Tests.csproj, src/Tests/XFramework.TestInfrastructure/XFramework.TestInfrastructure.csproj, src/Tools/XFramework.MigrationRunner/XFramework.MigrationRunner.csproj
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — C# (statisch typisiert)
54.7/55Handhabbare Dateigrößen — 5/866 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageC#
largest_source_bytes245.632
source_files_sampled866
oversized_source_files5
Wie die Bewertung erfolgt
40/40API-Schema (OpenAPI/GraphQL/proto) — src/Tests/Bolt.Tests/Protos/hello.proto, src/Tests/IdentityServer.Benchmarks/Protos/health.proto
20/20MCP-Server
0/40Lauffähige Beispiele
Verwendete Eingangsdaten
example_dirs
has_mcp_signalja
api_schema_filessrc/Tests/Bolt.Tests/Protos/hello.proto, src/Tests/IdentityServer.Benchmarks/Protos/health.proto

Eckdaten

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

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • No resolved dependencies carried a version and a supported ecosystem

Weitere Details

OpenSSF Scorecard 3.6 / 10
3.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-29 05:27 UTC

9Binary-Artifactsbinaries present in source code
k. A.Branch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
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
10Licenselicense file detected
0Maintained0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
10Packagingpackaging workflow 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
10Vulnerabilities0 existing vulnerabilities detected
Alle Abhängigkeiten 103

Vollständig aufgelöster Abhängigkeitssatz aus dem GitHub-Abhängigkeitsgraphen: 0 direkte und 103 indirekte (transitive) Pakete. Die transitive Hülle ist vollständig, wenn das Repository eine Lockfile eincheckt.

RegistryPaketVersionBeziehung
NuGetAsp.Versioning.Httpindirekt
NuGetAspNetCore.HealthChecks.Redisindirekt
NuGetAspNetCore.HealthChecks.UIindirekt
NuGetAspNetCore.HealthChecks.UI.Clientindirekt
NuGetAspNetCore.HealthChecks.UI.InMemory.Storageindirekt
NuGetAzure.Storage.Blobsindirekt
NuGetBCrypt.Net-Nextindirekt
NuGetBenchmarkDotNetindirekt
NuGetBinaryPackindirekt
NuGetBlazor-Stateindirekt
NuGetBlazorDownloadFileindirekt
NuGetBlazored.LocalStorageindirekt
NuGetBlazored.SessionStorageindirekt
NuGetBlazorTransitionableRouteindirekt
NuGetBogusindirekt
NuGetByteSizeindirekt
NuGetcoverlet.collectorindirekt
NuGetCurrieTechnologies.Razor.SweetAlert2indirekt
NuGetFluentAssertionsindirekt
NuGetFluentValidationindirekt
NuGetFluentValidation.DependencyInjectionExtensionsindirekt
NuGetGoogle.Protobufindirekt
NuGetGrpc.AspNetCoreindirekt
NuGetGrpc.Net.Clientindirekt
NuGetGrpc.Toolsindirekt
NuGetHashids.netindirekt
NuGetHumanizer.Coreindirekt
NuGetLigerShark.WebOptimizer.Coreindirekt
NuGetMapsterindirekt
NuGetMemoryPackindirekt
NuGetMessagePackindirekt
NuGetMessagePack.Annotationsindirekt
NuGetMicrosoft.AspNetCore.Authentication.JwtBearerindirekt
NuGetMicrosoft.AspNetCore.Authentication.OpenIdConnectindirekt
NuGetMicrosoft.AspNetCore.Components.Analyzersindirekt
NuGetMicrosoft.AspNetCore.Components.WebAssemblyindirekt
NuGetMicrosoft.AspNetCore.Components.WebAssembly.DevServerindirekt
NuGetMicrosoft.AspNetCore.Mvc.Testingindirekt
NuGetMicrosoft.AspNetCore.ODataindirekt
NuGetMicrosoft.AspNetCore.OpenApiindirekt
NuGetMicrosoft.AspNetCore.SignalR.Clientindirekt
NuGetMicrosoft.AspNetCore.SignalR.Protocols.MessagePackindirekt
NuGetMicrosoft.CodeAnalysis.Analyzersindirekt
NuGetMicrosoft.CodeAnalysis.CSharpindirekt
NuGetMicrosoft.EntityFrameworkCoreindirekt
NuGetMicrosoft.EntityFrameworkCore.Designindirekt
NuGetMicrosoft.EntityFrameworkCore.Proxiesindirekt
NuGetMicrosoft.EntityFrameworkCore.Relationalindirekt
NuGetMicrosoft.EntityFrameworkCore.Sqliteindirekt
NuGetMicrosoft.EntityFrameworkCore.Toolsindirekt
NuGetMicrosoft.Extensions.Caching.Abstractionsindirekt
NuGetMicrosoft.Extensions.Caching.Memoryindirekt
NuGetMicrosoft.Extensions.Caching.StackExchangeRedisindirekt
NuGetMicrosoft.Extensions.Configurationindirekt
NuGetMicrosoft.Extensions.Configuration.Abstractionsindirekt
NuGetMicrosoft.Extensions.Configuration.Binderindirekt
NuGetMicrosoft.Extensions.DependencyInjectionindirekt
NuGetMicrosoft.Extensions.DependencyInjection.Abstractionsindirekt
NuGetMicrosoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCoreindirekt
NuGetMicrosoft.Extensions.Hosting.Abstractionsindirekt
NuGetMicrosoft.Extensions.Logging.Abstractionsindirekt
NuGetMicrosoft.Extensions.ObjectPoolindirekt
NuGetMicrosoft.Extensions.Optionsindirekt
NuGetMicrosoft.NET.Test.Sdkindirekt
NuGetMoqindirekt
NuGetMSTest.TestAdapterindirekt
NuGetMSTest.TestFrameworkindirekt
NuGetMudBlazorindirekt
NuGetNewtonsoft.Jsonindirekt
NuGetNpgsql.EntityFrameworkCore.PostgreSQLindirekt
NuGetNUnitindirekt
NuGetNUnit3TestAdapterindirekt
NuGetOpenTelemetryindirekt
NuGetOpenTelemetry.Exporter.Consoleindirekt
NuGetOpenTelemetry.Exporter.OpenTelemetryProtocolindirekt
NuGetOpenTelemetry.Extensions.Hostingindirekt
NuGetOpenTelemetry.Instrumentation.AspNetCoreindirekt
NuGetOpenTelemetry.Instrumentation.EntityFrameworkCoreindirekt
NuGetOpenTelemetry.Instrumentation.Httpindirekt
NuGetOpenTelemetry.Instrumentation.StackExchangeRedisindirekt
NuGetPPioli.FluentValidation.Blazorindirekt
NuGetReshiru.Blazor.IndexedDB.Frameworkindirekt
NuGetScalar.AspNetCoreindirekt
NuGetScrutorindirekt
NuGetSentryindirekt
NuGetSentry.Extensions.Loggingindirekt
NuGetSerilogindirekt
NuGetSerilog.AspNetCoreindirekt
NuGetSerilog.Enrichers.Spanindirekt
NuGetSerilog.Extensions.Loggingindirekt
NuGetSerilog.Sinks.Asyncindirekt
NuGetSerilog.Sinks.BrowserHttpindirekt
NuGetSerilog.Sinks.Consoleindirekt
NuGetSerilog.Sinks.Seqindirekt
NuGetSimdLinqindirekt
NuGetStackExchange.Redisindirekt
NuGetSystem.IdentityModel.Tokens.Jwtindirekt
NuGetSystem.Net.Http.Jsonindirekt
NuGetTestcontainers.PostgreSqlindirekt
NuGetTG.Blazor.IndexedDBindirekt
NuGetToolbelt.Blazor.ViewTransitionindirekt
NuGetTypeSupportindirekt
NuGetUnitsNetindirekt
Abhängigkeits-Advisories nicht bewertet

Der Advisory-Abgleich konnte für diesen Bericht nicht ausgeführt werden: No resolved dependencies carried a version and a supported ecosystem

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 9748,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C#": 2387417,
        "CSS": 16202,
        "HTML": 74685,
        "Shell": 14681,
        "Dockerfile": 1124,
        "JavaScript": 8521,
        "PowerShell": 4715
      },
      "pushed_at": "2026-07-29T05:17:31Z",
      "created_at": "2020-10-01T07:17:54Z",
      "owner_type": "User",
      "updated_at": "2026-03-25T15:40:02Z",
      "description": "XFramework Version 1.0 Using Microsoft .Net Core Technologies",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Xeon",
      "type": "User",
      "login": "kaizendevsio",
      "company": null,
      "location": null,
      "followers": 3,
      "avatar_url": "https://avatars.githubusercontent.com/u/45159086?v=4",
      "created_at": "2018-11-19T05:10:40Z",
      "is_verified": null,
      "public_repos": 17,
      "account_age_days": 2809
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v1.0.1",
          "kind": "patch",
          "published_at": "2026-03-25T15:33:32Z"
        },
        {
          "tag": "v1.0.0",
          "kind": "major",
          "published_at": "2026-03-25T15:18:57Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "669775fe7fdb1000203d61e47c8785624dff0087",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'feature/vsa-migration' into Main",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T15:33:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8226bb4b2c3e847b908e90f7bb7c025b67ecea5b",
          "body": "Renamed module packages for consistent branding:\n- IdentityServer.* → XFramework.IdentityServer.*\n- Wallets.* → XFramework.Wallets.*\n- Messaging.* → XFramework.Messaging.*\n- Community.* → XFramework.Community.*\n- SmsGateway.* → XFramework.SmsGateway.*\n- Inventario.* → XFramework.Inventario.*\n- Payments.* → XFramework.Payments.*\n\nBumped XFrameworkVersion to 1.0.1 (new PackageIds, can't reuse 1.0.0).\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Add XFramework. prefix to all module NuGet PackageIds",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T15:33:32Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a17e85e595ead44d481ff14cd8931379a0059209",
          "body": "Pre-existing unit test failures (caching sliding expiration assertions)\nshould not block NuGet package publishing. Added continue-on-error.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Allow test step to fail in publish workflow",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T15:18:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "52f4b5961667c87e380a4f766d15fd2c6bcaa3e8",
          "body": "Integration tests require Docker/Testcontainers and have pending\nmigration warnings from the DbContext decomposition. Exclude them\nfrom the NuGet publish pipeline.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Run only unit tests in publish workflow",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T15:15:29Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "71acb60b4ce6afd3fc8767732eeb38f4aa608e0f",
          "body": "- Directory.Build.props: shared NuGet metadata (Authors, License, Repo)\n- Version.props: centralized XFrameworkVersion + BoltVersion\n- PackageId + Version added to all 19 publishable projects\n- scripts/pack-all.sh: packs all packages in dependency order\n- .github/workflows/publish.yml: CI/CD pipelin\n[…]\nk.* (5), IdentityServer.* (2),\nWallets.* (2), Messaging.* (2), Community.* (1), SmsGateway.* (2),\nInventario.* (1), Payments.* (1)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: NuGet monorepo packaging — 19 packages with centralized versioning",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T14:20:37Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6275fbd601713ef5715f808a19e8671068da8fd5",
          "body": "…figuration\n\nAppDbContext reduced from 2,056 lines to ~80 lines. Entity configurations\nextracted into 76 IEntityTypeConfiguration<T> classes across 5 modules:\n- XFramework.Domain/Configurations/ (15 files: MetaData, PaymentGateway, StorageFile)\n- IdentityServer.Domain.Shared/Configurations/ (27 file\n[…]\nntext.OnModelCreating uses ApplyConfigurationsFromAssembly() to auto-discover\nconfigs from whatever modules are loaded at runtime.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: P1 — Decompose God DbContext into per-module IEntityTypeCon…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T14:13:05Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "396ced06648958a9aec6b43757b0304a14b87d99",
          "body": "P2: Remove XFramework.Integration → IdentityServer.Domain.Shared dependency\n    (unused imports in IJwtService, JwtService, SignalRService)\nP3: Create SmsGateway.Integration, move service wrapper from Domain.Shared\n    (Domain.Shared now only references other Domain.Shared projects)\nP4: Delete empty XFramework.Utilities project\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: NuGet prerequisites P2-P4",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-25T13:57:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bba63a649f05fc760d37f03a23044bda77aaaa0e",
          "body": "Complete rename of the StreamFlow module and all references to Bolt:\n- XFramework.StreamFlow/ → XFramework.Bolt/ (Bolt.Domain.Shared + Bolt.Hub)\n- All types: StreamFlowMessage → BoltMessage, StreamFlowConfiguration → BoltConfiguration, etc.\n- All namespaces: StreamFlow.Domain.Shared → Bolt.Domain.Sh\n[…]\noltConfiguration\n- Solution folder: /Services/StreamFlow/ → /Services/Bolt/\n- Bolt.Tests moved to /Libraries/Bolt/ solution folder\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Rename StreamFlow to Bolt across entire codebase",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T12:14:03Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "564396588564d05768aae960b6db466632bb7b5e",
          "body": "Bolt is an independent NuGet package with zero XFramework dependencies.\nMoved from src/Bolt/ to src/Libraries/Bolt/ and organized solution folders:\n- /Libraries/Bolt/ for Bolt.Protocol, Bolt.Server, Bolt.Client\n- Bolt.Tests moved into /Tests/ with other test projects\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: Move Bolt to src/Libraries/ for standalone library organization",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T12:02:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "28bf726b9200038d08319a381ea5188d6c72714a",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: Publish Bolt.Net v1.0.0 stable to NuGet",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T11:30:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "3437f0b753278ba61cec8d899c7b01c83f4a9328",
          "body": "Package metadata added to all three projects:\n- Bolt.Net.Protocol (1.0.0-preview.1) — shared wire format\n- Bolt.Net.Server (1.0.0-preview.1) — ASP.NET Core hub middleware\n- Bolt.Net.Client (1.0.0-preview.1) — RPC + streaming client\n\nInstall:\n  dotnet add package Bolt.Net.Server\n  dotnet add package \n[…]\nocol\n                https://www.nuget.org/packages/Bolt.Net.Server\n                https://www.nuget.org/packages/Bolt.Net.Client\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Publish Bolt as NuGet packages (Bolt.Net.*)",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T11:29:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2d8b93b44a720a3e479d25b6180794a3c5b2a117",
          "body": "New typed overloads that auto-serialize/deserialize with MemoryPack:\n\n  // Typed request + response\n  var response = await client.SendAsync<MyRequest, MyResponse>(\n      \"service\", \"command\", request);\n\n  // Command (no response body)\n  var status = await client.SendAsync(\"service\", \"command\", reque\n[…]\nc(\"service\", \"cmd\", bytes);\n\nUpdates BOLT.md to use typed API throughout all examples:\nQuick Start, DI setup, Blazor, Direct Mode.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add typed SendAsync<TRequest, TResponse> to BoltClient",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T11:15:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "270b36659ef9eea51139baf25cba69b9280ee7b8",
          "body": "Replaces manual setup with fluent AddBoltServer/AddBoltClient API.\nAdds examples for: DI registration, manual client, direct mode,\nBlazor Server/WASM integration with component injection.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: Update BOLT.md with fluent DI API and usage examples",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T10:59:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f8748c32c1cf57df3ed62fddc018021149b579ed",
          "body": "Bolt.Server:\n  builder.Services.AddBoltServer();\n  builder.Services.AddBoltServer(o => o.InvocationTimeoutMs = 60000);\n  app.UseWebSockets();\n  app.MapBolt(\"/bolt\");\n\nBolt.Client (with auto-connect hosted service):\n  builder.Services.AddBoltClient(bolt => bolt\n      .WithServer(\"ws://localhost:5000/\n[…]\ny\nand disconnects on shutdown. Disable with .DisableAutoConnect().\n\nWorks for Blazor Server, WASM, console apps, or any .NET host.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add fluent DI extensions for Bolt server and client",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T10:37:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a54e38b2e446a23639c41e1a358fbf0a31b83368",
          "body": "Covers:\n- Performance comparison vs gRPC, SignalR across all benchmark types\n  (sequential, concurrent, throughput, scalability)\n- Head-to-head table: Bolt vs gRPC on every metric\n- Wire protocol format for all 8 frame types\n- Architecture diagrams (hub mode and direct mode)\n- Why Bolt beats gRPC (H\n[…]\non pooling, direct mode\n- Package structure (Bolt.Protocol, Bolt.Server, Bolt.Client)\n- Quick start examples for server and client\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: Add BOLT.md — comprehensive protocol documentation",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T09:31:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ca96424d220a51ec6fd925d82e721e43388eaccd",
          "body": "…ooling\n\nTests how Bolt and gRPC handle many concurrent clients.\nBolt: each client has 2 WebSocket connections (200 total at 100 clients).\ngRPC: each client has 1 HTTP/2 channel.\n\nResults — Bolt scales better in every dimension:\n\n10 clients (Bolt: 22 connections, gRPC: 10 channels):\n- Bolt:   425μs \n[…]\nons uses 126 KB total.\ngRPC with 100 HTTP/2 channels uses 2,001 KB total.\nMultiple WebSocket connections are NOT a memory concern.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add scalability benchmark — 10/50/100 clients with connection p…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T09:02:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3cd5c364a8a6aa3d5f2ffc35c685559fe220233d",
          "body": "Both caller and service now use MinConnections=4, MaxConnections=8.\nHub round-robins across all connections per client, distributing\nconcurrent sends to eliminate single-WebSocket bottleneck.\n\nResults — Bolt Hub now BEATS gRPC Hub across ALL metrics:\n\nSequential (1 concurrent):\n- Bolt Direct:   71μs\n[…]\n89 ops/s  5956 B\n\nBolt Hub is now 20% faster than gRPC Hub at 64 concurrent\nand 4% faster at max throughput, with 93% less memory.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf: Enable multi-connection pooling in Bolt Hub benchmarks",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T08:13:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5ba96cc9efd8374a7dda7fe592b60541e7113d77",
          "body": "BoltHubConnection.SendAsync: fast-path using SemaphoreSlim.Wait(0)\navoids async state machine when lock is uncontended.\n\nHub ProcessFrameAsync: request handling now inline (was Task.Run +\nToArray copy). Hub work is just header parse + forward to channel,\nfast enough to not block the receive loop.\n\nR\n[…]\nurrent.\n\nHowever Bolt Hub still wins on memory (80 KB vs 1307 KB) and\nthroughput (40,141 ops/s vs 47,669 ops/s — closing the gap).\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf: Optimize Bolt hub — fast-path ValueTask send + inline dispatch",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T07:34:04Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c2fa283dbcbf657d49afb63c1483a4d06324938b",
          "body": "Standalone Bolt benchmarks (no DB required) and XFramework integrated\nbenchmarks (requires Docker). Includes filter examples for individual\ntransports.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: Add benchmark run instructions to README",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T06:26:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cd269c3ed5598ed29f6117b1771e428c66c61916",
          "body": "Adds gRPC Direct (client → server, no hub) alongside gRPC Hub,\nmatching the Bolt Direct vs Bolt Hub comparison.\n\nSequential (1 concurrent):\n- Bolt Direct:    67μs  14,877 ops/s   1.31 KB\n- Bolt Hub:      116μs   8,655 ops/s   1.51 KB\n- gRPC Direct:   120μs   8,368 ops/s   8.64 KB\n- SignalR Hub:   15\n[…]\nDirect:  18.6μs  53,703 ops/s  9.05 KB\n- Bolt Hub:     24.9μs  40,241 ops/s  1.22 KB\n- SignalR Hub:  77.2μs  12,955 ops/s  5.82 KB\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add gRPC Direct benchmark for fair comparison",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T06:17:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6fb4706f176775645168f5411535e4a19155a844",
          "body": "BoltThroughputBenchmarks: 100 concurrent requests via Task.WhenAll,\nOperationsPerInvoke=100 for per-op metrics. All transports with hub.\n\nMax throughput results (per-op latency / peak ops/s / memory):\n- Bolt Direct:  18.5μs  54,140 ops/s  1.03 KB\n- Bolt Hub:     24.1μs  41,552 ops/s  1.22 KB\n- gRPC \n[…]\nolt Direct and gRPC are neck-and-neck on throughput, but Bolt uses\n95% less memory (1 KB vs 20 KB per op). SignalR is 3.6x slower.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add max throughput benchmark to Bolt.Tests",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T06:00:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "91d93865fe00b9febc022d37b6297598bc4cab1a",
          "body": "Previously SignalR handled requests in-process (no routing hop), while\nBolt and gRPC both routed through a hub. Now SignalR also routes:\nClient → SignalR Hub (router) → SignalR Backend → Hub → Client\n\nFair comparison results — all with hub routing:\n\nSequential (1 concurrent):\n- Bolt Direct:   64μs  \n[…]\ns memory.\nBolt Direct is 51% faster than SignalR with 78% less memory.\nSignalR collapses at 64 concurrent (4.4ms vs Bolt's 1.9ms).\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Make SignalR benchmark fair — route through hub like all others",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T05:30:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f1ca0b268ed559a6f3ef86ee2dc6779747e32463",
          "body": "Pure \"Hello World\" benchmark with no XFramework dependencies.\nAll return a simple \"Hello {name}\" string.\n\nTransport setups (fair comparison — all with hub except Bolt Direct):\n- Bolt Hub:    Client → BoltServer(hub) → BoltClient(service) → hub → Client\n- Bolt Direct: Client → BoltServer(direct handl\n[…]\n Bolt Direct is fastest sequential. Bolt uses 51-55% less memory\nthan SignalR and 93-95% less than gRPC at all concurrency levels.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add 4-way standalone benchmark — Bolt vs gRPC vs SignalR",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T04:12:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "879fa4a93409750eafed2e22524a6b7b66ccec23",
          "body": "New standalone Bolt test project (no XFramework dependencies).\nTests hub mode vs direct client-to-server mode.\n\nBoltServer.RegisterHandler: enables direct mode where server handles\nrequests locally instead of routing to another client.\n\nResults (pure Bolt, no XFramework overhead):\n\nSequential (1 con\n[…]\n KB  ← 24% faster\n\nDirect mode eliminates the hub hop, reducing latency by 39% for\nsequential calls and 24% under concurrent load.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add Bolt.Tests project with hub vs direct benchmarks",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T04:01:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "176b53165b41fc15452422528a7f3c8c5bc6b701",
          "body": "…ctly\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: Remove BoltRpcClient alias, use Bolt.Client.BoltClient dire…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T03:46:33Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f4ba6d7929b027c1e339524339ab533cbfbe5aee",
          "body": "Creates three independent projects under src/Bolt/:\n\n- Bolt.Protocol: shared wire protocol (FrameType, BoltCodec, RentedBufferWriter)\n  Zero dependencies. Referenced by both Server and Client.\n\n- Bolt.Server: WebSocket hub middleware for ASP.NET Core\n  app.UseWebSockets(); app.MapBolt(\"/bolt\");\n  De\n[…]\nBoltDriver stays in XFramework.Integration as the IMessageBusWrapper adapter\n\nAll 63 integration tests pass. Benchmarks unchanged.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Extract Bolt into standalone projects for NuGet packaging",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-24T03:40:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "74a29fd2f6dc8d498f772f77a1f08d1df8d4df89",
          "body": "- ThinStreamFlowClient → BoltClient\n- ThinStreamFlowServer → BoltServer\n- ThinStreamFlowDriver → BoltDriver\n- ThinStreamFlowMiddleware → BoltMiddleware\n- ThinConnection → BoltHubConnection\n- MapThinStreamFlow → MapBolt\n\nAll file names and class references updated. No functional changes.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: Rename ThinStreamFlow* to Bolt* across entire codebase",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T18:21:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "46504dc89eeb70882c6077e0230946756346bb1b",
          "body": "Adds Bolt protocol overview section with:\n- Feature table (RPC, streaming, hub routing, connection pooling, etc.)\n- Wire protocol format for all 8 frame types\n- Three streaming patterns: raw bytes, typed objects, IAsyncEnumerable pipe\n- Code examples for sender and receiver streaming\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: Update README with Bolt streaming features and wire protocol",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T18:19:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a5c2d91483b8ddd81057c73ef3a3438bf27a831a",
          "body": "BoltStream now supports three streaming patterns:\n\n1. Raw bytes:\n   await stream.SendAsync(rawBytes);\n   await foreach (var chunk in stream.ReadAllAsync()) { }\n\n2. Typed objects (auto MemoryPack serialization):\n   await stream.SendAsync<VideoFrame>(frame);\n   await foreach (var frame in stream.ReadA\n[…]\nes\n- RegisterStreamHandler<T>(command, (IAsyncEnumerable<T>, BoltStream) => Task)\n  Typed handler that receives deserialized items\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add typed IAsyncEnumerable streaming to Bolt protocol",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T18:17:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dbedbafa6b25040957686a6f9529fed1dd040699",
          "body": "New frame types for continuous streaming:\n- StreamOpen (0x10): opens a bidirectional stream to a recipient\n- StreamData (0x11): sends a data chunk on an open stream\n- StreamClose (0x12): closes a stream gracefully\n\nStreamFlowCodec: encode/decode methods for all stream frames,\nplus ReadStreamId helpe\n[…]\n\n\nSupports streaming any binary data: video, audio, files, sensor\ndata, etc. Same hub routing as RPC — just different frame types.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add bidirectional byte streaming to Bolt protocol",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T18:12:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ce350e18d9855704426960e37e0758699cbba88a",
          "body": "Adds max throughput results (40,412 ops/s peak) and head-to-head\nBolt vs gRPC comparison table. All three benchmark categories covered:\nsequential, concurrent, and max throughput.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: Update README with final Bolt benchmark results",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T17:53:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ed8ca57c2c7715f5ecb52f85999d326f77a61d7c",
          "body": "…ng dispatch\n\nThroughput benchmark:\n- 100 concurrent requests via Task.WhenAll, OperationsPerInvoke=100\n- Measures peak ops/sec under full saturation\n\nBolt client improvements:\n- Connection pooling: BoltConnection class with per-connection send lock\n- Round-robin request distribution across connecti\n[…]\nμs/op   40,412 ops/s    2.12 KB\n\nBolt wins on both throughput AND memory at max load.\n\nAlso updates README with benchmark results.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Max throughput benchmark + Bolt connection pooling + non-blocki…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T17:32:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4b91c0fd9bebe7b62c03704703cd50fd0f7a0d27",
          "body": "Previously gRPC was direct (Client → Service) while Bolt went through\na hub (Client → Hub → Service → Hub → Client). This made gRPC appear\nfaster due to fewer network hops.\n\nNow both go through a hub:\n- gRPC: Client → gRPC Hub → gRPC Backend → Hub → Client\n- Bolt: Client → Bolt Hub → Bolt Service → \n[…]\n     133.7μs  7,481 ops/s   2.20 KB\n\nBolt beats gRPC by 47% on latency and 89% on memory when both\nhave the same hub architecture.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "bench: Fair gRPC comparison — add gRPC hub for equal hop count",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T16:28:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6edb1a912db2cd1e77bd2cb1d5533355589b3a6d",
          "body": "…INQ removal\n\nZero-copy frame decode:\n- RequestFrame/ResponseFrame now use offset+length into source buffer\n- Added TryReadRequestHeader/TryReadResponseHeader for server routing\n  (reads only 29/23-byte header, never touches payload)\n- Server routes raw bytes without any decode — pure forwarding\n\nHa\n[…]\nrequest\n- After:  2.21 KB per request (-20%)\n\nMemory results (64 concurrent):\n- Before: 157 KB total\n- After:  124 KB total (-21%)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf: Bolt protocol optimizations — zero-copy decode, hash caching, L…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T13:51:36Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d254ec3bca06bf0914be00ebb715b1dd41a49ad7",
          "body": "Adds ConcurrentBenchmarks class testing all 5 transports under parallel load\n(1, 16, 64 concurrent calls). Results show:\n\n- Thin Protocol: best sequential perf (122μs, 8,175 ops/s) + lowest memory at all levels\n- QUIC: wins at 16 concurrent (629μs) due to stream multiplexing\n- gRPC: wins at 64 concu\n[…]\nhin Protocol: 95% less memory than HTTP across all concurrency levels\n\nProgram.cs updated to BenchmarkSwitcher for selective runs.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add concurrent load benchmarks + BenchmarkSwitcher",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T11:42:46Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d9e492ba3faf8387de7d76702866cf91cd771a2a",
          "body": "Phase 1: Low-hanging fruit\n- Dynamic connection pooling (ConnectionPool.cs) with auto-scale/cool-down\n- Object pooling: ThreadStatic RentedBufferWriter for zero-copy serialization\n- ConcurrentDictionary caching for GetTypeFullName() and TypeFriendlyNameCache\n\nPhase 2: Buffer optimization\n- RentedBuf\n[…]\nProtocol:  106μs  9,457 ops/s   2.8 KB  ← 95% less memory than HTTP\n\nAlso adds gRPC benchmark endpoint (POC-only, not propagated).\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: StreamFlow performance optimization — Phases 1-4",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-23T11:27:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4ca5a5e3c5ad277977523689e91d1bc489d3ea8f",
          "body": "…auto-discovers from [GenerateEndpoints]\n\n- Migrated ServiceWrapperGenerator from ISourceGenerator to IIncrementalGenerator\n- Generator auto-discovers entities from [GenerateEndpoints] in referenced assemblies\n- Deleted ALL HandlerGenerator.cs files (IdentityServer, Wallets, Community)\n- Re-enabled \n[…]\nces, AddAddressWrapperServices, etc.)\n- Single source of truth: [GenerateEndpoints] on entity = server endpoints + client wrappers\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Remove [StreamFlowWrapper] — ServiceWrapperGenerator now fully …",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T19:07:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f1b2b4eb94e1b5eacaaade7f7e8c7ead9c13be4f",
          "body": "- AddSessionAndWalletStatus migration adds integer Status column to both tables\n- Session.Status defaults to Active (1), Wallet.Status defaults to Active (0)\n- All 63 integration tests pass (46+2skipped IdentityServer, 17 Wallets)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add EF migration for Session.Status and Wallet.Status columns",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T18:25:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b64b38e882278816c67e1da7540e331862cc016d",
          "body": "- Remove rogue /src/ and /src/Tests/ solution folders\n- Move all test projects to /Tests/ folder (IdentityServer.IntegrationTests, Benchmarks, Wallets.IntegrationTests, TestInfrastructure)\n- Move Blazor from /Shared/ to /Presentation/\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: Fix solution directory structure",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T18:21:30Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "afac8e3d881a5649f4fccf0905381acc54db1466",
          "body": "…n generators\n\n- Add [GenerateEndpoints] to 35 entities across IdentityServer (24), Community (11), and Storage (2)\n- Request DTOs (Create/Update/GetList) added alongside domain entities\n- EntityServiceGenerator now uses Mapster Adapt<T>() for Create/Update mapping (zero boilerplate)\n- Removed ALL m\n[…]\nlicts: Tenant (ITenantService), CommunityConnection (manual endpoints)\n- Deleted Inventario mapping files (also now using Mapster)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add [GenerateEndpoints] to all modules + Mapster auto-mapping i…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T17:33:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b76a71685f9971aba5338c3f4066232cd269a545",
          "body": "…ints] entities\n\n- Modified ServiceWrapperGenerator to discover entities with [GenerateEndpoints] from\n  referenced assemblies, supplementing the explicit [StreamFlowWrapper] entity list\n- Generator filters by module prefix (same pattern as EntityService/EndpointGenerators)\n- Auto-discovery works al\n[…]\nSourceGenerator API timing limitations)\n- Future: migrate ServiceWrapperGenerator to IIncrementalGenerator for full auto-discovery\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Phase 3 — ServiceWrapperGenerator auto-discovers [GenerateEndpo…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T16:50:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "712f31bd15f99dd76e16258e572d8c7300ad3016",
          "body": "…ication\n\n- Add Logout and RefreshToken endpoints to IdentityServer (Session status tracking, JWT refresh flow)\n- Add Transaction Reversal, Wallet Freeze/Unfreeze to Wallets (with status guards on all operations)\n- Migrate ~50 domain entities from XFramework.Domain.Shared to per-module Domain.Shared\n[…]\nts] now on domain entities\n- Add [GenerateEndpoints] attribute to XFramework.Domain.Shared.Attributes for cross-project visibility\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add business logic features + entity migration + generator unif…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T16:46:00Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "dc24c65b9bca4f3e555e0b6deb419a9971f6b77f",
          "body": "Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: Remove Inventario integration tests — module not yet complete",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T12:10:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b2ddc0230a144a9347b30a5f970eb13f0bba44be",
          "body": "SmsGateway operates on in-memory ConcurrentDictionary caches with no DB.\nCross-request cache sharing issues make integration tests unreliable.\nUnit tests would be more appropriate for this module.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: Remove SmsGateway integration tests",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T12:05:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2f04af8a34091fee8b79bcec21b9f6e7eb6c6360",
          "body": "Inventario: ProductCategory entity not in AppDbContext model — needs\nIDataContext or raw SQL seeding. Validator requires valid CategoryId.\n\nSmsGateway: 5/8 pass (POST + empty GET). Cross-request cache sharing\nissue on 3 tests that POST then GET data.\n\nMigration to shared TestSeedData verified for IdentityServer (16/16)\nand Wallets (17/17).\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "wip: Debug Inventario and SmsGateway test infrastructure",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T11:48:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "fc2e46174b05b5dd111c672ea631e19b5cb759c4",
          "body": "Replace inline MigrateAndSeed() in IdentityServer and Wallets fixtures\nwith shared TestSeedData.SeedAll(). All test data constants now come from\nTestConstants. All entity seeding helpers in TestHelpers.\n\nVerified: IdentityServer 16/16, Wallets 17/17 — no regressions.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor: Migrate test projects to shared XFramework.TestInfrastructure",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T11:44:23Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "aebe6133f58fab878c45ace7f0b8890cf49790ee",
          "body": "Centralized test data and helpers for all integration test projects:\n- TestConstants: shared GUIDs for tenant, role types, wallet types, ports\n- TestSeedData: one-time DB seeding (tenant, roles, registry config, wallet types, session types)\n- TestHelpers: reusable entity seeding (credentials, wallet\n[…]\nWallets, SmsGateway, and Inventario test projects.\n\nAlso fixes StreamFlowHandlerGenerator [AsParameters] for GET/DELETE endpoints.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add XFramework.TestInfrastructure shared test library",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T11:41:06Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9efac5286fc86dfd8cb6528f4f9d4f020b68dcb6",
          "body": "…y tests\n\nSource generator fix:\n- StreamFlowHandlerGenerator now emits [AsParameters] for GET and DELETE\n  endpoint adapters, fixing \"body inferred on bodyless method\" runtime error\n- POST/PUT/PATCH continue using body binding as before\n\nTest results:\n- SmsGateway: 5 pass, 3 skipped (singleton cache\n[…]\nds deeper investigation)\n- IdentityServer: 16/16 pass (verified no regression)\n- Wallets: 17/17 pass (verified in previous commit)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Add [AsParameters] to generated GET/DELETE endpoints + SmsGatewa…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T11:16:38Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5f3c00cfabd50d65542b65a67049a3028ed602bb",
          "body": "Root cause identified: source-generated GET endpoint adapters infer body\nparameters for complex request types, but GET doesn't allow body. This is\na StreamFlowHandlerGenerator issue — GET endpoints need [AsParameters]\nbinding instead of body inference.\n\nAffected: Inventario (all 11 tests), SmsGateway (6/8 GET tests)\nWorking: SmsGateway POST tests (Create, CreateReceived) pass fine\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "wip: Debug Inventario and SmsGateway test startup issues",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T11:05:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "253baff298a2ecac5a27d7dd80ffe7bd0d0954d4",
          "body": "Test infrastructure created for Inventario (11 product CRUD tests) and\nSmsGateway (8 SMS operation tests). Both need startup debugging:\n- Inventario: app fails to start (IDataContext/caching setup mismatch)\n- SmsGateway: GET endpoints return 400 (parameter binding issues)\n\nWallets tests (17/17) confirmed passing in previous commit.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "wip: Add Inventario and SmsGateway test projects (not yet passing)",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T10:59:07Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "530fa3563ee27bb44269fc499ca74ee45c0aed1e",
          "body": "Full coverage for wallet operations:\n- Create wallet (2 tests)\n- Get wallet by ID and by credential (4 tests)\n- AddFunds/Increment (2 tests: valid + zero amount)\n- WithdrawFunds/Decrement (2 tests: valid + insufficient balance)\n- Transfer (3 tests: valid + insufficient + StreamFlow)\n- Convert (1 tes\n[…]\nreamFlow hub + Wallets API + TestClient)\nwith Testcontainers PostgreSQL, StreamFlow handler registration, and wallet type seeding.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test: Add Wallets integration tests — 17 tests (HTTP + StreamFlow)",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T10:52:52Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7b6f5ea963448f13ef1bde9c94cbbb7f98034a5d",
          "body": "…2 skipped)\n\nEnable StreamFlow transport tests for PasswordTests and VerificationTests\nby replacing Assert.Ignore() stubs with real ServiceWrapper calls.\n\nFix test failures:\n- ChangePassword: set RequireVerificationId = false (default is true)\n- VerificationTests: seed IdentityContactGroup FK, fix e\n[…]\nreamFlow response validation and latency checks.\n\nCoverage: Auth (16), Password (16), Credential (4), Verification (8), Health (4)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "test: Complete IdentityServer integration tests — 48 tests (46 pass, …",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T10:02:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "e44d211af3766a57584f94eafb87a2a01f2bdd70",
          "body": "Comprehensive reference covering VSA endpoint patterns, StreamFlow transport,\nsource generators, integration test setup, benchmarks, and conventions.\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: Add CLAUDE.md knowledge base for AI agents",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T09:34:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "dd3947433e972577975fae619ac27e421e897bad",
          "body": "…enchmarks\n\nStreamFlow now outperforms HTTP: 6,441 vs 5,921 ops/sec with 56% less memory.\n\nTransport optimizations:\n- Switch RPC from Push-based to Invoke/InvokeResponse pattern, eliminating\n  full routing on response path (dedup, client lookup, HandleDirectMessageAsync)\n- Fix MessagePack protocol m\n[…]\nrators: StreamFlowHandlerGenerator + endpoint mapping\n- Add integration tests for IdentityServer (16 tests: 8 HTTP + 8 StreamFlow)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Optimize StreamFlow transport — Invoke pattern, O(1) lookups, b…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-22T06:55:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3dfbda60c4fc83861f58836c10acaae712b7a170",
          "body": "- Add MapApiDocumentation() extension for OpenAPI + Scalar UI registration\n- Fix Scalar UI not loading in Docker (endpoint mapping order issue)\n- Workaround dotnet/aspnetcore#63857: exclude endpoints with circular\n  navigation properties from OpenAPI schema generation\n- Source-generated entity CRUD \n[…]\nix\n- Configure ReferenceHandler.IgnoreCycles for JSON serialization\n- Add Docker remote host setup script (scripts/setup-remote-docker.sh)\n- Add InterceptorsNamespaces to IdentityServer/Wallets csproj",
          "is_bot": false,
          "headline": "feat: Add Scalar UI + OpenAPI support, Docker remote host setup",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2026-03-21T06:36:50Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7ac1dea077125ef939296bd9c16479d24529ddda",
          "body": null,
          "is_bot": false,
          "headline": "docs: Add comprehensive Central Package Management guide",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T17:50:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cee2c45576e185507756d0648a8595588a90b9e",
          "body": null,
          "is_bot": false,
          "headline": "feat: Implement Central Package Management (CPM) for XFramework",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T17:48:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e11737e450f04eef76415e0745143b4f896f9be",
          "body": "Complete comprehensive upgrade from .NET 9/C# 13 to .NET 10/C# 14 across entire XFramework solution.\n\nChanges:\n\n- Updated global.json SDK version: 9.0.0 → 10.0.0\n\n- Updated 50 project files: TargetFramework net9.0 → net10.0\n\n- Updated 50 project files: LangVersion 13 → 14\n\n- Verified build: 0 errors\n[…]\nes now available\n\n- Security updates and bug fixes\n\n- Validated excellent code quality\n\nBreaking Changes: None (backward compatible)\n\nTime: ~2 hours (validation complete)\n\nStatus: Ready for production",
          "is_bot": false,
          "headline": "chore: Upgrade to .NET 10 and C# 14",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T16:58:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "37e00c4419c89940b773e669f6e24032464712c7",
          "body": null,
          "is_bot": false,
          "headline": "chore(telemetry): Disable OpenTelemetry console metrics by default",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T15:10:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4267dab26890b3aba5ad6d23f685b30626368440",
          "body": "…StatusCode)",
          "is_bot": false,
          "headline": "fix(signalr): Configure MessagePack to handle enum return types (Http…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T07:17:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4f7d9968234383c486656b9e0fa2d167f7a2cc5",
          "body": "…ation",
          "is_bot": false,
          "headline": "fix(signalr): Add MessagePack serialization attributes to fix registr…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T07:09:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1ce0074356863bdd98bab1ea1565f92f5e736b3",
          "body": "…gistration",
          "is_bot": false,
          "headline": "fix(signalr): Initialize Queue property in StreamFlowClient to fix re…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T05:04:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2997de9867922d956f25805a028aab4bc31894f9",
          "body": "…lementation",
          "is_bot": false,
          "headline": "fix(signalr): Fix IStreamFlow interface return types to match hub imp…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T04:45:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3d40d337013a63ca41136a75b41a4ac5ec43f915",
          "body": "…low interface",
          "is_bot": false,
          "headline": "fix(signalr): Fix SignalR registration type binding error in IStreamF…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T02:48:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a88b3b185025de18282c842b1c5bf5fed35d3642",
          "body": null,
          "is_bot": false,
          "headline": "feat: Complete XFramework VSA Migration - All Phases 1-7",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-21T01:26:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7f95ccdf5202987187141884e518f3c107211e42",
          "body": null,
          "is_bot": false,
          "headline": "feat: Phase 6.2 - OpenTelemetry Distributed Tracing & Metrics",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T10:23:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f6c139206460b5a6f05ac07896dd049071a7277",
          "body": "…tors",
          "is_bot": false,
          "headline": "feat: Phase 6.1 - Structured Logging with LoggerMessage Source Genera…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T08:51:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d46ee20ee64aabb7e45e406ab4c97b0c5d1cd409",
          "body": "…Reflection)",
          "is_bot": false,
          "headline": "feat: Phase 5.4 - Auto-Discovery & Registration (Assembly Scanning + …",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T08:12:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba6ba17d7e2766e36d37ecec0444407dcca96f8c",
          "body": "…imal API endpoints)",
          "is_bot": false,
          "headline": "feat: Phase 5.3 - Endpoint Generator (Roslyn source generator for min…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T07:53:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cabc792cc2e07fee552c2d8a2ea7534998c93c87",
          "body": null,
          "is_bot": false,
          "headline": "wip: Phase 5.2 - Entity Service Generator (Roslyn) - Needs Debugging",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T07:39:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "58fc93c8df291ba393b679609bbeb46be1e884dc",
          "body": null,
          "is_bot": false,
          "headline": "feat: Phase 5.1 - Define Source Generator Attributes",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T07:17:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "16321d76f8f4cd52ac7bb6ed76e07b37e312d5a2",
          "body": null,
          "is_bot": false,
          "headline": "feat: Complete Phase 4 - VSA Migration for All 7 Backend Modules",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T06:57:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f1f0e30973bafae6890685368d680cd6acef682a",
          "body": "…Channels for 20-30% throughput improvement",
          "is_bot": false,
          "headline": "feat(StreamFlow): Phase 3.3 - Replace ConcurrentDictionary with .NET …",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-20T01:02:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b037a259a9c559950d6962c95994d13bd735ac68",
          "body": "…f Concept)",
          "is_bot": false,
          "headline": "feat(inventario): Phase 2 - Migrate Inventario module to VSA (Proof o…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-19T15:59:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d0bf26e086e0823d3a9db5857132afff154109a",
          "body": "…uditInterceptor)",
          "is_bot": false,
          "headline": "Phase 1.5: Implement EF Core Optimizations (NoTracking, SplitQuery, A…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-19T15:28:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2609973b7745f2a91fcb296872b067a4cdc9ceb6",
          "body": "…health checks)",
          "is_bot": false,
          "headline": "feat: Phase 1.4 - Configure middleware (output caching, compression, …",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-19T12:36:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "59acdd2e9be402e759e8218523e479c786fbe6fa",
          "body": null,
          "is_bot": false,
          "headline": "feat(caching): Implement hybrid caching infrastructure (Phase 1.3)",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-19T12:07:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5bf4b49ea58b4ebcb27b4d43d64b1395b3a697a4",
          "body": null,
          "is_bot": false,
          "headline": "Phase 1.1 & 1.2: VSA Foundation - Project Structure and Result Pattern",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-11-19T11:52:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6687fb8e2e888358ea2c759722c09b7237d83020",
          "body": "• Add App Service deployment stage to various CI/CD pipelines",
          "is_bot": false,
          "headline": "Merge pull request #186 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-30T06:58:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43832637a629383bc747ae1f448ceb7bc34d6720",
          "body": "  - Included `DeployToProductionAppSvc` in `messaging`, `gateway`, `smsGateway`, `community`, `wallets`, and `identity` workflows.\n  - Added parameters for `AzureWebApp@1` task: `runtimeStack`, `appType`, `startUpCommand`.\n  - Enabled deployment to Azure App Services for `.NET Core 9.0`.\n• Use `.NET\n[…]\nr all affected workflows.\n• Introduced `deployToProdOnPrem` parameter for conditional on-premises production deployment.\n• Removed redundant Kestrel endpoint configuration in `StreamFlow` appsettings.",
          "is_bot": false,
          "headline": "• Add App Service deployment stage to various CI/CD pipelines",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-30T06:57:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e94fea688551fa83969210b73d30c9fb516b4d63",
          "body": "• Add `pool` definition for production deployment in `streamflow.serv…",
          "is_bot": false,
          "headline": "Merge pull request #185 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-30T04:42:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "36fa658e5fcaf5a1274797764ae3f021fa567e85",
          "body": "…ice.yaml`\n\n  - Specify `pool: { name: Default-Linux }` for `DeployProdAppSvc` job.",
          "is_bot": false,
          "headline": "• Add `pool` definition for production deployment in `streamflow.serv…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-30T04:41:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1adf717637a00018695f4118d1dcc48fede23b8",
          "body": "• Simplify production deployment environment in `streamflow.service.y…",
          "is_bot": false,
          "headline": "Merge pull request #184 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-30T04:03:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "15402f14c2fe87312d8b36510584f6e627fc62f5",
          "body": "…aml`\n\n  - Replaced `name`, `resourceType`, and `resourceName` parameters with `Production`.",
          "is_bot": false,
          "headline": "• Simplify production deployment environment in `streamflow.service.y…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-30T03:56:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a22f91732c536574eab0c6413996e5f506246458",
          "body": "Ci updates",
          "is_bot": false,
          "headline": "Merge pull request #183 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-30T03:29:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e1f626fabdb8bd8f65051864e452ac55e02ab60",
          "body": "…configuration\n\n• Maintain consistent formatting in deployment parameters",
          "is_bot": false,
          "headline": "• Remove redundant comments in `streamflow.service.yaml` for cleaner …",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-30T03:21:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "76905baa8e1c04f52d56233aa6a90ab00d59619c",
          "body": "….yaml`\n\n  - Update `resourceType` to `AzureWebApp` for production environment.\n  - Replace `AzureRmWebAppDeployment@2` with `AzureWebApp@1` task for deployment.\n  - Add parameters: `runtimeStack`, `appType`, and `startUpCommand` for `.NET Core 9.0`.\n  - Improve formatting and consistency in deployment stage definitions.",
          "is_bot": false,
          "headline": "• Refactor production deployment configuration in `streamflow.service…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-30T03:21:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "089d4192dfcefc58cdd7f4c71e164a1448be1ccf",
          "body": "• Update production deployment environment configuration in `streamfl…",
          "is_bot": false,
          "headline": "Merge pull request #182 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-30T03:04:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b30dd78642d0a61533ab04da58e884a79311c4e",
          "body": "…ow.service.yaml`.\n\n  - Changed `environment.name` to `Production-AppService`.\n  - Added `resourceName` parameter with `$(AppServiceName)` value.\n  - Removed redundant `tags` parameter.",
          "is_bot": false,
          "headline": "• Update production deployment environment configuration in `streamfl…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-30T03:04:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d097dd34c2d3e2b1690c336cae5c7f6a2d8e29ba",
          "body": "• Remove redundant `tags` parameter value from production environment…",
          "is_bot": false,
          "headline": "Merge pull request #181 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-29T11:14:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "637e47d69e5487f9d6727cca90278537700d0f89",
          "body": "… in `streamflow.service.yaml`.",
          "is_bot": false,
          "headline": "• Remove redundant `tags` parameter value from production environment…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-29T11:11:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e94df08f01098c54757e209d4f64ed0392bd659",
          "body": "• Add new parameters to `Publish Project` task in `streamflow.service…",
          "is_bot": false,
          "headline": "Merge pull request #180 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-29T10:26:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a5735ee4824a5f31ba188ee453a7a0070c1b1b6",
          "body": "….yaml`: `publishWebProjects`, `zipAfterPublish`, and `modifyOutputPath`.",
          "is_bot": false,
          "headline": "• Add new parameters to `Publish Project` task in `streamflow.service…",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-29T10:26:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b73a35739e6bb0c0c12157276055ddfc61353614",
          "body": "• Refactor deployment parameters in `streamflow.service.yaml`",
          "is_bot": false,
          "headline": "Merge pull request #179 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-29T10:21:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71524cb4847413125f65212d687a608a8696c71f",
          "body": "• Renamed `deployToVm` to `deployToProdOnPrem` for clarity\n• Removed redundant `deployToAppService` parameter\n• Simplified deployment conditions for staging and production stages",
          "is_bot": false,
          "headline": "• Refactor deployment parameters in `streamflow.service.yaml`",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-29T10:20:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f620c55a686a453ef0d8d263b8552e7e5899f151",
          "body": "- **Update Workflow Dependency for Production Deployment**",
          "is_bot": false,
          "headline": "Merge pull request #178 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-29T10:07:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ddad6f2c0f85805f4b5120f2d92a4e89c534e1e",
          "body": "  - Adjusted `dependsOn` in `DeployToProductionAppSvc` to use `DeployToStaging` instead of `DeployToStagingAppSvc` in `streamflow.service.yaml`.",
          "is_bot": false,
          "headline": "- **Update Workflow Dependency for Production Deployment**",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-29T10:07:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83c1bb18f2b2ff3ae69c8e1efbf1aed9cebd0758",
          "body": "- **Update Production Environment Configuration**",
          "is_bot": false,
          "headline": "Merge pull request #177 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-29T10:04:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1c889790deea84e2c78da8d8b6e8f17e96843eb",
          "body": "  - Added `resourceType: 'Azure Web App'` to the production deployment environment in `streamflow.service.yaml`.",
          "is_bot": false,
          "headline": "- **Update Production Environment Configuration**",
          "author_name": "Xeon",
          "author_login": null,
          "committed_at": "2025-06-29T10:03:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7ec7eaeb11fdcfbe74d116bacb1d69bb575be4a",
          "body": "- **Remove Staging Deployment Stage from CI/CD Workflow**",
          "is_bot": false,
          "headline": "Merge pull request #176 from kaizendevsio/ci-updates",
          "author_name": "Xeon",
          "author_login": "kaizendevsio",
          "committed_at": "2025-06-29T09:59:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 2,
      "commits_last_year": 78,
      "latest_release_at": "2026-03-25T15:33:32Z",
      "latest_release_tag": "v1.0.1",
      "releases_from_tags": true,
      "days_since_last_push": 0,
      "active_weeks_last_year": 3,
      "days_since_latest_release": 125,
      "mean_days_between_releases": 0
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 0,
      "stars": 3,
      "watchers": 1,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": true,
      "bootstrap_files": [],
      "api_schema_files": [
        "src/Tests/Bolt.Tests/Protos/hello.proto",
        "src/Tests/IdentityServer.Benchmarks/Protos/health.proto"
      ],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "src/Infrastructure/XFramework.Integration/XFramework.Integration.csproj",
        "src/Kernel/XFramework.Core/XFramework.Core.csproj",
        "src/Kernel/XFramework.Domain/XFramework.Domain.csproj",
        "src/Libraries/Bolt/Bolt.Client/Bolt.Client.csproj",
        "src/Libraries/Bolt/Bolt.Protocol/Bolt.Protocol.csproj",
        "src/Libraries/Bolt/Bolt.Server/Bolt.Server.csproj",
        "src/Modules/XFramework.Blazor/XFramework.Blazor.csproj",
        "src/Modules/XFramework.Bolt/Bolt.Domain.Shared/Bolt.Domain.Shared.csproj",
        "src/Modules/XFramework.Bolt/Bolt.Hub/Bolt.Hub.csproj",
        "src/Modules/XFramework.Coins/Client/Coins.Web/Coins.Web/Coins.Web.csproj",
        "src/Modules/XFramework.Coins/Server/Coins.Api/Coins.Api.csproj",
        "src/Modules/XFramework.Coins/Server/Coins.Tests/Coins.Tests.csproj",
        "src/Modules/XFramework.Community/Community.Api/Community.Api.csproj",
        "src/Modules/XFramework.Community/Community.Domain.Shared/Community.Domain.Shared.csproj",
        "src/Modules/XFramework.IdentityServer/IdentityServer.Api/IdentityServer.Api.csproj",
        "src/Modules/XFramework.IdentityServer/IdentityServer.Domain.Shared/IdentityServer.Domain.Shared.csproj",
        "src/Modules/XFramework.IdentityServer/IdentityServer.Integration/IdentityServer.Integration.csproj",
        "src/Modules/XFramework.Inventario/Inventario.Api/Inventario.Api.csproj",
        "src/Modules/XFramework.Inventario/Inventario.Domain.Shared/Inventario.Domain.Shared.csproj",
        "src/Modules/XFramework.Messaging/Messaging.Api/Messaging.Api.csproj",
        "src/Modules/XFramework.Messaging/Messaging.Domain.Shared/Messaging.Domain.Shared.csproj",
        "src/Modules/XFramework.Messaging/Messaging.Integration/Messaging.Integration.csproj",
        "src/Modules/XFramework.Messaging/Messaging.Tests/Messaging.Tests.csproj",
        "src/Modules/XFramework.Payments/Payments.Core/Payments.Core.csproj",
        "src/Modules/XFramework.Payments/Payments.Domain.Shared/Payments.Domain.Shared.csproj",
        "src/Modules/XFramework.SmsGateway/SmsGateway.Api/SmsGateway.Api.csproj",
        "src/Modules/XFramework.SmsGateway/SmsGateway.Domain.Shared/SmsGateway.Domain.Shared.csproj",
        "src/Modules/XFramework.SmsGateway/SmsGateway.Integration/SmsGateway.Integration.csproj",
        "src/Modules/XFramework.Wallets/Wallets.Api/Wallets.Api.csproj",
        "src/Modules/XFramework.Wallets/Wallets.Domain.Shared/Wallets.Domain.Shared.csproj",
        "src/Modules/XFramework.Wallets/Wallets.Integration/Wallets.Integration.csproj",
        "src/Presentation/ControlPanel/ControlPanel.csproj",
        "src/Presentation/Fluid/Fluid.csproj",
        "src/Presentation/Gateway/Gateway.csproj",
        "src/Shared/XFramework.Domain.Shared/XFramework.Domain.Shared.csproj",
        "src/SourceGenerators/XFramework.SourceGenerators/XFramework.SourceGenerators.csproj",
        "src/Tests/Bolt.Tests/Bolt.Tests.csproj",
        "src/Tests/IdentityServer.Benchmarks/IdentityServer.Benchmarks.csproj",
        "src/Tests/IdentityServer.IntegrationTests/IdentityServer.IntegrationTests.csproj",
        "src/Tests/SerializerPerfTest/SerializerPerfTest.csproj",
        "src/Tests/Wallets.IntegrationTests/Wallets.IntegrationTests.csproj",
        "src/Tests/XFramework.Core.Tests/XFramework.Core.Tests.csproj",
        "src/Tests/XFramework.TestInfrastructure/XFramework.TestInfrastructure.csproj",
        "src/Tools/XFramework.MigrationRunner/XFramework.MigrationRunner.csproj"
      ],
      "largest_source_bytes": 245632,
      "source_files_sampled": 866,
      "oversized_source_files": 5,
      "agent_instruction_files": [
        ".github/copilot-instructions.md",
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 16399
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "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": 103,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "Asp.Versioning.Http",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AspNetCore.HealthChecks.Redis",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AspNetCore.HealthChecks.UI",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AspNetCore.HealthChecks.UI.Client",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "AspNetCore.HealthChecks.UI.InMemory.Storage",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Azure.Storage.Blobs",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BCrypt.Net-Next",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BenchmarkDotNet",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BinaryPack",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Blazor-State",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BlazorDownloadFile",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Blazored.LocalStorage",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Blazored.SessionStorage",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "BlazorTransitionableRoute",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Bogus",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "ByteSize",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "coverlet.collector",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "CurrieTechnologies.Razor.SweetAlert2",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "FluentAssertions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "FluentValidation",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "FluentValidation.DependencyInjectionExtensions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Google.Protobuf",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Grpc.AspNetCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Grpc.Net.Client",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Grpc.Tools",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Hashids.net",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Humanizer.Core",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "LigerShark.WebOptimizer.Core",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Mapster",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MemoryPack",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MessagePack",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MessagePack.Annotations",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Authentication.JwtBearer",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Authentication.OpenIdConnect",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Components.Analyzers",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Components.WebAssembly",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Components.WebAssembly.DevServer",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.Mvc.Testing",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.OData",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.OpenApi",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.SignalR.Client",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.AspNetCore.SignalR.Protocols.MessagePack",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.Analyzers",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.CodeAnalysis.CSharp",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Design",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Proxies",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Relational",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Sqlite",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.EntityFrameworkCore.Tools",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Caching.Abstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Caching.Memory",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Caching.StackExchangeRedis",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration.Abstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Configuration.Binder",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.DependencyInjection",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.DependencyInjection.Abstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Hosting.Abstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Logging.Abstractions",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.ObjectPool",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Options",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Moq",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MSTest.TestAdapter",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MSTest.TestFramework",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "MudBlazor",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Newtonsoft.Json",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Npgsql.EntityFrameworkCore.PostgreSQL",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NUnit",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NUnit3TestAdapter",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Exporter.Console",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Exporter.OpenTelemetryProtocol",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Extensions.Hosting",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Instrumentation.AspNetCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Instrumentation.EntityFrameworkCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Instrumentation.Http",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "OpenTelemetry.Instrumentation.StackExchangeRedis",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "PPioli.FluentValidation.Blazor",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Reshiru.Blazor.IndexedDB.Framework",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Scalar.AspNetCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Scrutor",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Sentry",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Sentry.Extensions.Logging",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.AspNetCore",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Enrichers.Span",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Extensions.Logging",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.Async",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.BrowserHttp",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.Console",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Serilog.Sinks.Seq",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "SimdLinq",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "StackExchange.Redis",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.IdentityModel.Tokens.Jwt",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.Net.Http.Json",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Testcontainers.PostgreSql",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TG.Blazor.IndexedDB",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Toolbelt.Blazor.ViewTransition",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "TypeSupport",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "UnitsNet",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 103,
        "direct_count": 0,
        "indirect_count": 103
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 362,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 12
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "kaizendevsio",
          "commits": 279,
          "avatar_url": "https://avatars.githubusercontent.com/u/45159086?v=4"
        },
        {
          "type": "User",
          "login": "yeljoven",
          "commits": 10,
          "avatar_url": "https://avatars.githubusercontent.com/u/71422778?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.965
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "publish.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 9,
            "reason": "binaries present in source code",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "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": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "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": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "669775fe7fdb1000203d61e47c8785624dff0087",
        "ran_at": "2026-07-29T05:27:52Z",
        "aggregate_score": 3.6,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-24T18:00:53Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-07-29T05:17:31Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/kaizendevsio/XFramework",
    "host": "github.com",
    "name": "XFramework",
    "owner": "kaizendevsio"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 47,
      "inputs": {
        "security": 36,
        "vitality": 64,
        "community": 26,
        "governance": 40,
        "engineering": 66
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 64,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "commits_last_year": 78,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 3
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "3/52 weeks with commits",
                "points": 2.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 3
                    }
                  }
                ],
                "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": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 78,
            "inputs": {
              "releases_count": 2,
              "latest_release_tag": "v1.0.1",
              "releases_from_tags": true,
              "days_since_latest_release": 125,
              "mean_days_between_releases": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "2 version tags (no GitHub releases)",
                "points": 16.2,
                "status": "partial",
                "details": [
                  {
                    "code": "version_tags_no_releases",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 125 days ago",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 125
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~0 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 0
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 125,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 125 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 125
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 26,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 5,
            "inputs": {
              "forks": 0,
              "stars": 3,
              "watchers": 1,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "3 stars",
                "points": 4.9,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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": "1 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "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": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "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": 40,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.965
            },
            "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 96% of commits",
                "points": 0.8,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 96
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "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": "moderate",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 69,
            "inputs": {
              "merged_prs": 362,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 12
            },
            "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": "362/374 decided PRs merged",
                "points": 37,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 362,
                      "decided": 374
                    }
                  }
                ],
                "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": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "followers": 3,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "kaizendevsio",
              "public_repos": 17,
              "account_age_days": 2809
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "3 followers of kaizendevsio",
                "points": 4.3,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 3,
                      "login": "kaizendevsio"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "17 public repos, account ~7 yr old",
                "points": 21.1,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 17
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 66,
        "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": "good",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "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": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 36,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, CI-Tests, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "ci_tests",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 36,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 15,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 3,
              "scorecard_aggregate": 3.6
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "binaries present in source code",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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 detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "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": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 76,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.94,
              "agent_instruction_files": [
                ".github/copilot-instructions.md",
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 16399
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".github/copilot-instructions.md, CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".github/copilot-instructions.md, CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "94 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 94,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.53,
              "toolchain_manifests": [
                "src/Infrastructure/XFramework.Integration/XFramework.Integration.csproj",
                "src/Kernel/XFramework.Core/XFramework.Core.csproj",
                "src/Kernel/XFramework.Domain/XFramework.Domain.csproj",
                "src/Libraries/Bolt/Bolt.Client/Bolt.Client.csproj",
                "src/Libraries/Bolt/Bolt.Protocol/Bolt.Protocol.csproj",
                "src/Libraries/Bolt/Bolt.Server/Bolt.Server.csproj",
                "src/Modules/XFramework.Blazor/XFramework.Blazor.csproj",
                "src/Modules/XFramework.Bolt/Bolt.Domain.Shared/Bolt.Domain.Shared.csproj",
                "src/Modules/XFramework.Bolt/Bolt.Hub/Bolt.Hub.csproj",
                "src/Modules/XFramework.Coins/Client/Coins.Web/Coins.Web/Coins.Web.csproj",
                "src/Modules/XFramework.Coins/Server/Coins.Api/Coins.Api.csproj",
                "src/Modules/XFramework.Coins/Server/Coins.Tests/Coins.Tests.csproj",
                "src/Modules/XFramework.Community/Community.Api/Community.Api.csproj",
                "src/Modules/XFramework.Community/Community.Domain.Shared/Community.Domain.Shared.csproj",
                "src/Modules/XFramework.IdentityServer/IdentityServer.Api/IdentityServer.Api.csproj",
                "src/Modules/XFramework.IdentityServer/IdentityServer.Domain.Shared/IdentityServer.Domain.Shared.csproj",
                "src/Modules/XFramework.IdentityServer/IdentityServer.Integration/IdentityServer.Integration.csproj",
                "src/Modules/XFramework.Inventario/Inventario.Api/Inventario.Api.csproj",
                "src/Modules/XFramework.Inventario/Inventario.Domain.Shared/Inventario.Domain.Shared.csproj",
                "src/Modules/XFramework.Messaging/Messaging.Api/Messaging.Api.csproj",
                "src/Modules/XFramework.Messaging/Messaging.Domain.Shared/Messaging.Domain.Shared.csproj",
                "src/Modules/XFramework.Messaging/Messaging.Integration/Messaging.Integration.csproj",
                "src/Modules/XFramework.Messaging/Messaging.Tests/Messaging.Tests.csproj",
                "src/Modules/XFramework.Payments/Payments.Core/Payments.Core.csproj",
                "src/Modules/XFramework.Payments/Payments.Domain.Shared/Payments.Domain.Shared.csproj",
                "src/Modules/XFramework.SmsGateway/SmsGateway.Api/SmsGateway.Api.csproj",
                "src/Modules/XFramework.SmsGateway/SmsGateway.Domain.Shared/SmsGateway.Domain.Shared.csproj",
                "src/Modules/XFramework.SmsGateway/SmsGateway.Integration/SmsGateway.Integration.csproj",
                "src/Modules/XFramework.Wallets/Wallets.Api/Wallets.Api.csproj",
                "src/Modules/XFramework.Wallets/Wallets.Domain.Shared/Wallets.Domain.Shared.csproj",
                "src/Modules/XFramework.Wallets/Wallets.Integration/Wallets.Integration.csproj",
                "src/Presentation/ControlPanel/ControlPanel.csproj",
                "src/Presentation/Fluid/Fluid.csproj",
                "src/Presentation/Gateway/Gateway.csproj",
                "src/Shared/XFramework.Domain.Shared/XFramework.Domain.Shared.csproj",
                "src/SourceGenerators/XFramework.SourceGenerators/XFramework.SourceGenerators.csproj",
                "src/Tests/Bolt.Tests/Bolt.Tests.csproj",
                "src/Tests/IdentityServer.Benchmarks/IdentityServer.Benchmarks.csproj",
                "src/Tests/IdentityServer.IntegrationTests/IdentityServer.IntegrationTests.csproj",
                "src/Tests/SerializerPerfTest/SerializerPerfTest.csproj",
                "src/Tests/Wallets.IntegrationTests/Wallets.IntegrationTests.csproj",
                "src/Tests/XFramework.Core.Tests/XFramework.Core.Tests.csproj",
                "src/Tests/XFramework.TestInfrastructure/XFramework.TestInfrastructure.csproj",
                "src/Tools/XFramework.MigrationRunner/XFramework.MigrationRunner.csproj"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "src/Infrastructure/XFramework.Integration/XFramework.Integration.csproj, src/Kernel/XFramework.Core/XFramework.Core.csproj, src/Kernel/XFramework.Domain/XFramework.Domain.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "src/Infrastructure/XFramework.Integration/XFramework.Integration.csproj, src/Kernel/XFramework.Core/XFramework.Core.csproj, src/Kernel/XFramework.Domain/XFramework.Domain.csproj"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "C# (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "53 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 53,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "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": "C#",
              "largest_source_bytes": 245632,
              "source_files_sampled": 866,
              "oversized_source_files": 5
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C# (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "5/866 source files over 60KB",
                "points": 54.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 866,
                      "oversized": 5
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "moderate",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "example_dirs": [],
              "has_mcp_signal": true,
              "api_schema_files": [
                "src/Tests/Bolt.Tests/Protos/hello.proto",
                "src/Tests/IdentityServer.Benchmarks/Protos/health.proto"
              ]
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": "src/Tests/Bolt.Tests/Protos/hello.proto, src/Tests/IdentityServer.Benchmarks/Protos/health.proto",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "src/Tests/Bolt.Tests/Protos/hello.proto, src/Tests/IdentityServer.Benchmarks/Protos/health.proto"
                    }
                  }
                ],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-29T05:27:58.896606Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/k/kaizendevsio/XFramework.svg",
  "full_name": "kaizendevsio/XFramework",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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