Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-25 10:03 UTC

kibertoad / modular-react

Modular React primitives

TypeScriptMIT★ 6 Sterne⑂ 2 Forksseit Apr. 2026Auf GitHub ansehen ↗

kibertoad/modular-react erreicht einen Gesundheitsindex von 56 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei AI Readiness (72/100) ab, am schwächsten bei Community & Adoption (43/100). Zuletzt vor 4 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

56
gesamt / 100
Mittel

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.

56
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

Igor SavinPersönliches Konto
391 Follower202 öffentliche Reposseit Juni 2012Lokalise

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.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
npm@modular-react/core2.7.15.39023vor 5 Tagen
npm@modular-react/react2.3.07.88212vor 5 Tagen
npm@modular-angular/angular0.1.01591vor 6 Tagen
npm@modular-react/catalog1.2.02.7744vor 4 Tagen
npm@modular-react/cli-core1.1.02414vor 4 Tagen
npm@modular-react/journeys1.10.05.53116vor 4 Tagen
npm@modular-frontend/core0.6.02.0416vor 4 Tagen

Metriken nach Kategorie

Vitalität

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

45Gefährdet · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 4 Tagen
9.7/36Commit-Rhythmus — 14/52 Wochen mit Commits
18/18Commit-Volumen — 144 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year144
human_commit_share0,76
days_since_last_push4
active_weeks_last_year14
Wie die Bewertung erfolgt
0/27Liefert Releases aus — keine Releases veröffentlicht
0/36Release-Aktualität — keine Releases
0/27Release-Rhythmus — keine Releases
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count0
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?

43Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
11.3/60Stars — 6 Stars
0/25Forks — 2 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks2
stars6
watchers0
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
6.3/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templateja
Wie die Bewertung erfolgt
58.4/80Downloads pro Monat — 24.018 Downloads/Monat über npm
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packages@modular-react/core, @modular-react/react, @modular-angular/angular, @modular-react/catalog, @modular-react/cli-core, @modular-react/journeys, @modular-frontend/core
dependents
ecosystemsnpm
total_downloads
monthly_downloads24.018
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Abhängige in der Registry. Die verbleibenden Gewichte wurden renormalisiert.

Nachhaltigkeit & Governance

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

65Mittel · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
1.2/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 94 % der Commits
2.7/13.5Breite der Beitragenden — 2 Beitragende
10/10OpenSSF Scorecard: Contributors — project has 3 contributing companies or organizations -- score normalized to 10
Verwendete Eingangsdaten
bus_factor1
contributors_sampled2
top_contributor_share0,945
Wie die Bewertung erfolgt
46.8/46.8Issue-Lösungsquote — 100 % der Issues geschlossen
37.4/38.3PR-Annahme — 93/95 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 2/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs93
open_issues0
closed_issues1
issue_closed_ratio1
closed_unmerged_prs2
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
18.6/25Reichweite des Inhabers — 391 Follower von kibertoad
25/25Kontohistorie — 202 öffentliche Repos, Kontoalter ca. 14 Jahre
Verwendete Eingangsdaten
followers391
owner_typeUser
is_verified
owner_loginkibertoad
public_repos202
account_age_days5.154
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 7 Paket(e) auf npm
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 4 Tagen
20/20Versionshistorie — 23 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packages@modular-react/core, @modular-react/react, @modular-angular/angular, @modular-react/catalog, @modular-react/cli-core, @modular-react/journeys, @modular-frontend/core
ecosystemsnpm
any_deprecatednein
min_days_since_publish4

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

71Gut · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 5 Workflow(s)
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 19 out of 19 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein
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?

51Mittel · 16 % des Gesamtindex
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 19 out of 19 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 2/30 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 3 contributing companies or organizations -- score normalized to 10
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
5/5Pinned-Dependencies — all dependencies are pinned
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
7.5/7.5Token-Permissions — GitHub workflow tokens follow principle of least privilege
0/7.5Vulnerabilities — 46 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate5,1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): 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.

72Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — CLAUDE.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 67 von 76 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,882
agent_instruction_filesCLAUDE.md
agent_instruction_max_bytes2.087
Wie die Bewertung erfolgt
0/18Bootstrap mit einem Befehl
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — examples/catalog/tsconfig.json, examples/react-router/active-project-manifest/app-shared/tsconfig.json, examples/react-router/active-project-manifest/modules/integrations/tsconfig.json, examples/react-router/active-project-manifest/shell/tsconfig.json, examples/react-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/react-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/react-router/customer-onboarding-journey/shell/tsconfig.json, examples/react-router/editor-composition/app-shared/tsconfig.json, examples/react-router/editor-composition/compositions/editor/tsconfig.json, examples/react-router/editor-composition/modules/contentful/tsconfig.json, examples/react-router/editor-composition/modules/editor/tsconfig.json, examples/react-router/editor-composition/modules/strapi/tsconfig.json, examples/react-router/editor-composition/shell/tsconfig.json, examples/react-router/inspector-panels/app-shared/tsconfig.json, examples/react-router/inspector-panels/modules/acme-extras/tsconfig.json, examples/react-router/inspector-panels/modules/inspector-core/tsconfig.json, examples/react-router/inspector-panels/shell/tsconfig.json, examples/react-router/integration-manager/app-shared/tsconfig.json, examples/react-router/integration-manager/modules/contentful/tsconfig.json, examples/react-router/integration-manager/modules/github/tsconfig.json, examples/react-router/integration-manager/modules/strapi/tsconfig.json, examples/react-router/integration-manager/shell/tsconfig.json, examples/react-router/integration-setup-journey/app-shared/tsconfig.json, examples/react-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/react-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/react-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/react-router/integration-setup-journey/modules/github/tsconfig.json, examples/react-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/react-router/integration-setup-journey/modules/notion/tsconfig.json, examples/react-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/react-router/integration-setup-journey/shell/tsconfig.json, examples/react-router/journey-invoke/app-shared/tsconfig.json, examples/react-router/journey-invoke/journeys/checkout/tsconfig.json, examples/react-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/react-router/journey-invoke/modules/age-verify/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/react-router/journey-invoke/shell/tsconfig.json, examples/react-router/overlay-result-windows/app-shared/tsconfig.json, examples/react-router/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/react-router/overlay-result-windows/modules/run-core/tsconfig.json, examples/react-router/overlay-result-windows/shell/tsconfig.json, examples/react-router/remote-capabilities/app-shared/tsconfig.json, examples/react-router/remote-capabilities/modules/integrations/tsconfig.json, examples/react-router/remote-capabilities/shell/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/shell/tsconfig.json, examples/tanstack-router/editor-composition/app-shared/tsconfig.json, examples/tanstack-router/editor-composition/compositions/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/contentful/tsconfig.json, examples/tanstack-router/editor-composition/modules/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/strapi/tsconfig.json, examples/tanstack-router/editor-composition/shell/tsconfig.json, examples/tanstack-router/integration-manager/app-shared/tsconfig.json, examples/tanstack-router/integration-manager/modules/contentful/tsconfig.json, examples/tanstack-router/integration-manager/modules/github/tsconfig.json, examples/tanstack-router/integration-manager/modules/strapi/tsconfig.json, examples/tanstack-router/integration-manager/shell/tsconfig.json, examples/tanstack-router/integration-setup-journey/app-shared/tsconfig.json, examples/tanstack-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/github/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/notion/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/tanstack-router/integration-setup-journey/shell/tsconfig.json, examples/tanstack-router/journey-invoke/app-shared/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/checkout/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/tanstack-router/journey-invoke/modules/age-verify/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/tanstack-router/journey-invoke/shell/tsconfig.json, examples/tanstack-router/remote-capabilities/app-shared/tsconfig.json, examples/tanstack-router/remote-capabilities/journeys/integration-setup/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/generic-integration/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/hubspot/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/integration-catalog/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/salesforce/tsconfig.json, examples/tanstack-router/remote-capabilities/shell/tsconfig.json, examples/vue/customer-onboarding-journey/app-shared/tsconfig.json, examples/vue/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/vue/customer-onboarding-journey/modules/billing/tsconfig.json, examples/vue/customer-onboarding-journey/modules/plan/tsconfig.json, examples/vue/customer-onboarding-journey/modules/profile/tsconfig.json, examples/vue/customer-onboarding-journey/shell/tsconfig.json, examples/vue/editor-composition/app-shared/tsconfig.json, examples/vue/editor-composition/compositions/editor/tsconfig.json, examples/vue/editor-composition/modules/contentful/tsconfig.json, examples/vue/editor-composition/modules/editor/tsconfig.json, examples/vue/editor-composition/modules/strapi/tsconfig.json, examples/vue/editor-composition/shell/tsconfig.json, examples/vue/integration-manager/app-shared/tsconfig.json, examples/vue/integration-manager/modules/contentful/tsconfig.json, examples/vue/integration-manager/modules/github/tsconfig.json, examples/vue/integration-manager/modules/strapi/tsconfig.json, examples/vue/integration-manager/shell/tsconfig.json, examples/vue/nuxt-modal-journey/app-shared/tsconfig.json, examples/vue/nuxt-modal-journey/journeys/setup-wizard/tsconfig.json, examples/vue/nuxt-modal-journey/modules/wizard/tsconfig.json, examples/vue/nuxt-modal-journey/shell/tsconfig.json, examples/vue/overlay-result-windows/app-shared/tsconfig.json, examples/vue/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/vue/overlay-result-windows/modules/run-core/tsconfig.json, examples/vue/overlay-result-windows/shell/tsconfig.json, packages/angular-router-core/tsconfig.json, packages/angular/tsconfig.json, packages/catalog/spa-src/tsconfig.json, packages/catalog/tsconfig.json, packages/cli-core/tsconfig.json, packages/compositions-engine/tsconfig.json, packages/compositions/tsconfig.json, packages/core/tsconfig.json, packages/frontend-core/tsconfig.json, packages/frontend-testing/tsconfig.json, packages/journeys-engine/tsconfig.json, packages/journeys/tsconfig.json, packages/react-router-cli/tsconfig.json, packages/react-router-core/tsconfig.json, packages/react-router-runtime/tsconfig.json, packages/react-router-testing/tsconfig.json, packages/react/tsconfig.json, packages/tanstack-router-cli/tsconfig.json, packages/tanstack-router-core/tsconfig.json, packages/tanstack-router-runtime/tsconfig.json, packages/tanstack-router-testing/tsconfig.json, packages/testing/tsconfig.json, packages/vue-cli/tsconfig.json, packages/vue-compositions/tsconfig.json, packages/vue-core/tsconfig.json, packages/vue-journeys/tsconfig.json, packages/vue-nuxt/tsconfig.json, packages/vue-runtime/tsconfig.json, packages/vue-testing/tsconfig.json, packages/vue/tsconfig.json
10/10Reproduzierbare Umgebung — lockfile
10/10Belegte Agentenpraxis — 35 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
10/10OpenSSF Scorecard: Pinned-Dependencies — all dependencies are pinned
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilespackage-lock.json, pnpm-lock.yaml
has_dockerfilenein
typed_languageja
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configsexamples/catalog/tsconfig.json, examples/react-router/active-project-manifest/app-shared/tsconfig.json, examples/react-router/active-project-manifest/modules/integrations/tsconfig.json, examples/react-router/active-project-manifest/shell/tsconfig.json, examples/react-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/react-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/react-router/customer-onboarding-journey/shell/tsconfig.json, examples/react-router/editor-composition/app-shared/tsconfig.json, examples/react-router/editor-composition/compositions/editor/tsconfig.json, examples/react-router/editor-composition/modules/contentful/tsconfig.json, examples/react-router/editor-composition/modules/editor/tsconfig.json, examples/react-router/editor-composition/modules/strapi/tsconfig.json, examples/react-router/editor-composition/shell/tsconfig.json, examples/react-router/inspector-panels/app-shared/tsconfig.json, examples/react-router/inspector-panels/modules/acme-extras/tsconfig.json, examples/react-router/inspector-panels/modules/inspector-core/tsconfig.json, examples/react-router/inspector-panels/shell/tsconfig.json, examples/react-router/integration-manager/app-shared/tsconfig.json, examples/react-router/integration-manager/modules/contentful/tsconfig.json, examples/react-router/integration-manager/modules/github/tsconfig.json, examples/react-router/integration-manager/modules/strapi/tsconfig.json, examples/react-router/integration-manager/shell/tsconfig.json, examples/react-router/integration-setup-journey/app-shared/tsconfig.json, examples/react-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/react-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/react-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/react-router/integration-setup-journey/modules/github/tsconfig.json, examples/react-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/react-router/integration-setup-journey/modules/notion/tsconfig.json, examples/react-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/react-router/integration-setup-journey/shell/tsconfig.json, examples/react-router/journey-invoke/app-shared/tsconfig.json, examples/react-router/journey-invoke/journeys/checkout/tsconfig.json, examples/react-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/react-router/journey-invoke/modules/age-verify/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/react-router/journey-invoke/shell/tsconfig.json, examples/react-router/overlay-result-windows/app-shared/tsconfig.json, examples/react-router/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/react-router/overlay-result-windows/modules/run-core/tsconfig.json, examples/react-router/overlay-result-windows/shell/tsconfig.json, examples/react-router/remote-capabilities/app-shared/tsconfig.json, examples/react-router/remote-capabilities/modules/integrations/tsconfig.json, examples/react-router/remote-capabilities/shell/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/shell/tsconfig.json, examples/tanstack-router/editor-composition/app-shared/tsconfig.json, examples/tanstack-router/editor-composition/compositions/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/contentful/tsconfig.json, examples/tanstack-router/editor-composition/modules/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/strapi/tsconfig.json, examples/tanstack-router/editor-composition/shell/tsconfig.json, examples/tanstack-router/integration-manager/app-shared/tsconfig.json, examples/tanstack-router/integration-manager/modules/contentful/tsconfig.json, examples/tanstack-router/integration-manager/modules/github/tsconfig.json, examples/tanstack-router/integration-manager/modules/strapi/tsconfig.json, examples/tanstack-router/integration-manager/shell/tsconfig.json, examples/tanstack-router/integration-setup-journey/app-shared/tsconfig.json, examples/tanstack-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/github/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/notion/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/tanstack-router/integration-setup-journey/shell/tsconfig.json, examples/tanstack-router/journey-invoke/app-shared/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/checkout/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/tanstack-router/journey-invoke/modules/age-verify/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/tanstack-router/journey-invoke/shell/tsconfig.json, examples/tanstack-router/remote-capabilities/app-shared/tsconfig.json, examples/tanstack-router/remote-capabilities/journeys/integration-setup/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/generic-integration/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/hubspot/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/integration-catalog/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/salesforce/tsconfig.json, examples/tanstack-router/remote-capabilities/shell/tsconfig.json, examples/vue/customer-onboarding-journey/app-shared/tsconfig.json, examples/vue/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/vue/customer-onboarding-journey/modules/billing/tsconfig.json, examples/vue/customer-onboarding-journey/modules/plan/tsconfig.json, examples/vue/customer-onboarding-journey/modules/profile/tsconfig.json, examples/vue/customer-onboarding-journey/shell/tsconfig.json, examples/vue/editor-composition/app-shared/tsconfig.json, examples/vue/editor-composition/compositions/editor/tsconfig.json, examples/vue/editor-composition/modules/contentful/tsconfig.json, examples/vue/editor-composition/modules/editor/tsconfig.json, examples/vue/editor-composition/modules/strapi/tsconfig.json, examples/vue/editor-composition/shell/tsconfig.json, examples/vue/integration-manager/app-shared/tsconfig.json, examples/vue/integration-manager/modules/contentful/tsconfig.json, examples/vue/integration-manager/modules/github/tsconfig.json, examples/vue/integration-manager/modules/strapi/tsconfig.json, examples/vue/integration-manager/shell/tsconfig.json, examples/vue/nuxt-modal-journey/app-shared/tsconfig.json, examples/vue/nuxt-modal-journey/journeys/setup-wizard/tsconfig.json, examples/vue/nuxt-modal-journey/modules/wizard/tsconfig.json, examples/vue/nuxt-modal-journey/shell/tsconfig.json, examples/vue/overlay-result-windows/app-shared/tsconfig.json, examples/vue/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/vue/overlay-result-windows/modules/run-core/tsconfig.json, examples/vue/overlay-result-windows/shell/tsconfig.json, packages/angular-router-core/tsconfig.json, packages/angular/tsconfig.json, packages/catalog/spa-src/tsconfig.json, packages/catalog/tsconfig.json, packages/cli-core/tsconfig.json, packages/compositions-engine/tsconfig.json, packages/compositions/tsconfig.json, packages/core/tsconfig.json, packages/frontend-core/tsconfig.json, packages/frontend-testing/tsconfig.json, packages/journeys-engine/tsconfig.json, packages/journeys/tsconfig.json, packages/react-router-cli/tsconfig.json, packages/react-router-core/tsconfig.json, packages/react-router-runtime/tsconfig.json, packages/react-router-testing/tsconfig.json, packages/react/tsconfig.json, packages/tanstack-router-cli/tsconfig.json, packages/tanstack-router-core/tsconfig.json, packages/tanstack-router-runtime/tsconfig.json, packages/tanstack-router-testing/tsconfig.json, packages/testing/tsconfig.json, packages/vue-cli/tsconfig.json, packages/vue-compositions/tsconfig.json, packages/vue-core/tsconfig.json, packages/vue-journeys/tsconfig.json, packages/vue-nuxt/tsconfig.json, packages/vue-runtime/tsconfig.json, packages/vue-testing/tsconfig.json, packages/vue/tsconfig.json
agent_commit_share0,35
toolchain_manifests
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — TypeScript (statisch typisiert)
54.9/55Handhabbare Dateigrößen — 2/908 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageTypeScript
largest_source_bytes125.845
source_files_sampled908
oversized_source_files2
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

6GitHub-Sterne
2Mitwirkende
144Commits, letzte 12 Monate
4Tage seit letztem Push
0Releases
1Bus-Faktor
0offene Issues
npmPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch npm package '@modular-react/compositions' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

Stern- und Fork-Verlauf 0 ★ / 2 ⇿
0Sterne
2Forks

Wann jeder Stern und Fork hinzugefügt wurde, von GitHub erfasst und nach Tagen gruppiert. Das kumulierte Wachstum steht direkt über den täglichen Zugängen, aus denen es besteht, sodass beide gegeneinander lesbar sind: stetiger organischer Zuwachs sieht ganz anders aus als ein abrupter, kurzlebiger Ausschlag. Wo dieser Unterschied messbar ist, wird er als Wachstumsauthentizität ausgewiesen.

111222212026-042026-052026-05
OpenSSF Scorecard 5.1 / 10
5.1Gesamtwert

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-25 10:03 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests19 out of 19 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 2/30 approved changesets -- score normalized to 0
10Contributorsproject has 3 contributing companies or organizations -- score normalized to 10
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
10Pinned-Dependenciesall dependencies are pinned
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
10Token-PermissionsGitHub workflow tokens follow principle of least privilege
0Vulnerabilities46 existing vulnerabilities detected
Direkte Abhängigkeiten 15
RegistryPaketVersionsvorgabeManifest
npm@clack/prompts^1.3.0packages/catalog/package.json
npm@modular-react/coreworkspace:*packages/catalog/package.json
npmcitty^0.2.2packages/catalog/package.json
npmoxc-parser^0.128.0packages/catalog/package.json
npmpathe^2.0.3packages/catalog/package.json
npmtinyglobby^0.2.10packages/catalog/package.json
npmvite^8.1.3packages/catalog/package.json
npm@clack/prompts^1.3.0packages/cli-core/package.json
npmcitty^0.2.2packages/cli-core/package.json
npmpathe^2.0.3packages/cli-core/package.json
npm@modular-frontend/compositions-engineworkspace:*packages/compositions/package.json
npm@standard-schema/spec^1.0.0packages/frontend-core/package.json
npm@modular-frontend/journeys-engineworkspace:*packages/journeys/package.json
npm@modular-react/cli-coreworkspace:*packages/react-router-cli/package.json
npm@modular-react/cli-coreworkspace:*packages/tanstack-router-cli/package.json
Alle Abhängigkeiten nicht erhoben

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

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 2459,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "CSS": 4542,
        "HTML": 343,
        "JavaScript": 11432,
        "TypeScript": 3307976
      },
      "pushed_at": "2026-07-20T19:32:33Z",
      "created_at": "2026-04-03T14:22:34Z",
      "owner_type": "User",
      "updated_at": "2026-07-20T19:32:47Z",
      "description": "Modular React primitives",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript"
      ]
    },
    "owner": {
      "blog": "www.kibertoad.com",
      "name": "Igor Savin",
      "type": "User",
      "login": "kibertoad",
      "company": "Lokalise",
      "location": "Vilnius",
      "followers": 391,
      "avatar_url": "https://avatars.githubusercontent.com/u/1847934?v=4",
      "created_at": "2012-06-13T20:26:45Z",
      "is_verified": null,
      "public_repos": 202,
      "account_age_days": 5154
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "b7a3b76684e8719d0306b1870a46b534790f351b",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-20T19:32:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e680e93aaa8189e394d36445a5d273d3a14963d0",
          "body": "… (feedback items 3 & 4) (#83)\n\n* feat(journeys,core): fix defineModule + derive step ordering/progress (feedback items 3 & 4)\n\nImplements the next two items from docs/consumer-feedback-production-app.md.\n\nItem 3 — defineModule usable by real apps (all five variants:\n@modular-frontend/core + the fou\n[…]\nect the resolveStepSequence example doc to derive a \"Step X of N\"\ntotal from resolveStepSequenceResult gated on `complete`, not steps.length.\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(journeys,core): fix defineModule + derive step ordering/progress…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-20T14:36:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c7461329cb4d7cc23ae30f1135e4e8b76db84fa9",
          "body": "…ntend/core pin (#97)\n\n@modular-react/journeys@1.9.0 was published between\n@modular-frontend/journeys-engine@1.8.0 and 1.8.1, so its tarball still\ndepends on engine@1.8.0 — the version that carried\n@modular-frontend/core@0.3.0 as a hard, exact-pinned dependency (before\n1.8.1 promoted it to a >=0.1.0\n[…]\n range; journeys was the last package still transitively\ncarrying the old pin.\n\n\nClaude-Session: https://claude.ai/code/session_01L7SRbJ8ZLSejGRieH2DEJU\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(journeys): re-release 1.9.1 to drop the last exact @modular-fro…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-19T15:59:31Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9491014092bcd4e59e83c01b01fc15712cb6fd00",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T15:43:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2921c83716d7074ec3bb4a95f79e81008a3aedc1",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T15:39:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e1b6ca0b698fefcc8135bb6bbec0e0a0c6667de4",
          "body": "* docs: triage the cat-factory slice-5 overlay-host request\n\nAccept the substance (a pick-one, app-state-keyed modal host with\nframework-managed behaviour — focus trap + return, scroll lock, stacked\nEscape, a11y — is a real, framework-shaped gap; even our own\nnuxt-modal-journey example hand-rolls th\n[…]\nomment-only.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01MRyxejS9jdwipTZGZKGnZ3\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: triage the cat-factory slice-5 overlay-host request (#96)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-19T15:37:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "18536a976a1efe3aa589f708597c743f814a732a",
          "body": "…cleanly (#95)\n\nPanels ship in @modular-frontend/core@0.4.0, but much of the ecosystem\nstill constrained the engine to older lines, so installing 0.4.0 for\npanels tripped peer-dependency conflicts. Treat @modular-frontend/core\nas the framework-neutral singleton it is and express that with peers\ninst\n[…]\nup, and\ncheck:publish (publint + attw) all green across 29 published packages.\n\n\nClaude-Session: https://claude.ai/code/session_015p1jncNVgVekk2hFCWuaX4\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Make @modular-frontend/core a shared peer dependency so panels adopt …",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-19T12:34:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fb3c9dd6ad6275227caf8821b7a7fca3580ee418",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T11:29:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "029905caafaf604b4f5c27263c52f42230711a70",
          "body": "* feat(frontend-core,react,vue): subject-keyed panels (render-all, predicate-gated)\n\nImplements the counter-proposal from the cat-factory slice-4 triage (#93):\na render-all, subject-keyed, open-contribution panel surface — the sibling\nof the pick-one component-pairing helpers — landed engine-first w\n[…]\nhe\n  subject\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SDhW7GZMkb4pSCwKVch4tC\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(panels): subject-keyed panels (render-all, predicate-gated) (#94)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-19T11:26:35Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c359af6a02f36063971c509ebae7a7e0e27764ba",
          "body": "Accept the substance (subject-keyed, render-all, module-contributed detail\npanels), redirect the shape: no new @modular-vue/zones package, no third\n'zone' semantic, no new descriptor seam (defineModule zones collides with\nthe shipped ModuleDescriptor.zones field). Counter-proposal: a pure\nsubject re\n[…]\ner-range picture (engine is at 0.3.0; compositions/testing still\npeer ^0.1.0).\n\n\nClaude-Session: https://claude.ai/code/session_012BPCt9jQArsRrVqygKXShC\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: triage the cat-factory slice-4 subject-keyed zones request (#93)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-19T09:20:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6b2822057574b2b3c5eb1d12c69792fd8c294b92",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-19T07:59:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f46db41229dd84eb6f367ef094f3e98e8f3a86e",
          "body": "…time.discard, template-idiomatic host outlet (#91)\n\n* feat(vue,journeys): downstream feedback — plugin-typed manifests, runtime.discard, template-idiomatic host outlet\n\nA second consumer feedback round (Vue + Nuxt), triaged critically: some items\nwere already solved and only needed verification/doc\n[…]\nywhere else.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_017Hy8mBdWa8GpEg5bmV8NZE\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue,journeys): downstream feedback — plugin-typed manifests, run…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-19T00:29:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "57c782cf032122655a8f7b9986c1b094a8962d8f",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T22:49:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd2306625da3b3daf46fb8fac3db34ad459e69ae",
          "body": "* feat(vue-journeys, vue, vue-runtime): Pinia interop + app-level plugin injection for journeys\n\nCloses the Vue-side gaps for hosting journeys outside routes with Pinia-backed\npersistence, and makes the router-owning install path thread plugin context\napp-wide symmetrically with how nav/slots/module\n[…]\nd to prose).\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01J6tUG34HvnZ4FickZkWfJK\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): Pinia interop for journeys + app-level plugin injection (#90)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-18T22:46:51Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0d53738c90518afd3ea651a995e69e46206bb99a",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T17:07:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7c7b44f5cd1f78841d54e085e716a2993ffd05a",
          "body": "…omponent pairing (#89)\n\n* feat(frontend-core, vue-core): remote-manifest × locally-registered-component pairing\n\nFormalizes \"backend data selects a locally-installed view\": a remote manifest\ncarries a string discriminator id, the component ships as code and registers\nthrough the normal module → slo\n[…]\nate-id error.\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_016qJVcnwSu7nPHN1siR1K7M\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(frontend-core, vue-core): remote-manifest × locally-registered-c…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-18T17:05:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6185939532bc6b1f5b56d705a6770021b0ba1488",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T15:20:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9b6219bdfc530c2a649f6e3cfaa0b3bcac9ae62b",
          "body": "* feat(vue): add useReactiveSlots — Vue-reactive slot evaluation\n\nAdds `useReactiveSlots()` to `@modular-vue/vue`: the resolved slot manifest as a\nVue `computed`, re-evaluated automatically when the reactive state its\n`dynamicSlots` factories / `slotFilter` read changes — no `recalculateSlots()`\ncal\n[…]\nred-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Py3ZFw7u2Qnw9N4X9MRsBi\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add useReactiveSlots — Vue-reactive slot evaluation (#88)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-18T15:18:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9078c0b52f36acb80284e01562d68ee38a945795",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-18T14:13:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4529ac6842a6812a5aae357cd9f6f82a50880fe",
          "body": "… (#87)\n\nWiden the `vue-router` peer range on @modular-vue/{core,runtime,nuxt,testing}\nfrom `^4.5.0` to `^4.5.0 || ^5.0.0`. vue-router 5 is API-compatible for the\nroute grafting the runtime uses (addRoute / beforeEach / RouteRecordRaw), and a\nproduction consumer on Nuxt (which now ships vue-router 5\n[…]\nayer), and the `enforce: \"post\"` plugin-ordering that\nmakes consumer registration run before the layer resolves.\n\nSurfaced by the cat-factory production adoption (slice 0 of its modular-vue\nadoption).",
          "is_bot": false,
          "headline": "feat(vue): allow vue-router 5 as a peer; document layer consumer seam…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-18T14:01:21Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9676c413606a8cd448500bf8886ff9b7b31ecab8",
          "body": null,
          "is_bot": false,
          "headline": "rename package",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-18T13:32:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "adf48c8ca6e327f8b1d39aa477f14610b1571f24",
          "body": "* ci: update GitHub Actions to latest versions\n\nBump all pinned actions to their latest releases (SHA-pinned with\nversion comments):\n\n- actions/checkout        v6.0.2  -> v7.0.0\n- actions/setup-node      v6.4.0  -> v7.0.0\n- actions/upload-artifact v4.6.2  -> v7.0.1\n- tj-actions/changed-files v47.0.4\n[…]\new feedback.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01UzzYPSbuZD3s1xqxDos5xQ\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci: update GitHub Actions to latest versions (#86)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-18T12:19:42Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "04e3d6c2d4702413863b5c3a0a4b4832b9c97faa",
          "body": "* feat(vue): add @modular-vue/nuxt Nuxt 3 integration (PR-52)\n\nAdd a Nuxt 3 integration for the @modular-vue family. Nuxt owns the Vue\napp and the vue-router instance, so this is the router-owning path over\n@modular-vue/runtime (registry.resolve()): it grafts every module's\ncreateRoutes() subtree on\n[…]\nvior change.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01SDNhgjLDRjem9pyJsuoeDU\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/nuxt Nuxt 3 integration (PR-52) (#85)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T22:29:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ccebed4e9d91e688b2e768f1013f9729fd8a170e",
          "body": "…I plumbing (PR-05) (#84)\n\n* ci(vue): wire @modular-frontend/* and @modular-vue/* into release + CI plumbing (PR-05)\n\nExtend the publish and CI automation to cover the two scopes the Vue\ninitiative introduced, so they bump, publish, and get validated like the\nReact families.\n\n- publish.yml: add dorn\n[…]\nons instead.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BbP6F82jG5YnvsyFAP8jEk\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(vue): wire @modular-frontend/* and @modular-vue/* into release + C…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T20:43:20Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4458c7bbf67090c37813da41c5e48867a8370b1c",
          "body": "* feat(vue): add @modular-vue/cli scaffolder (PR-50)\n\nAdds `@modular-vue/cli` (binary `modular-vue`), the Vue 3 + vue-router\nscaffolder, as a preset over the shared `cli-core` engine — the Vue\ncounterpart of the React CLIs.\n\nThe preset supplies Vue SFC template bodies (shell layout components,\nmodul\n[…]\n<noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_018YU4kALmunKmR8YxLaqAz8\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>\nCo-authored-by: kibertoad <igor@checkbox.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/cli scaffolder (PR-50) (#82)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T18:34:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1e05a99c961353dc0789d7acbc9bb2d54eff420f",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-07-17T17:54:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5f25aea61434a70aee88dc5c5436a45dd580f87a",
          "body": "* feat(journeys): add JourneyHost + useJourneySync on React and Vue\n\nImplements items 1 and 2 of docs/consumer-feedback-production-app.md — the\ntwo largest pieces of glue a production consumer wrote *around* the library:\na ~300-line bidirectional URL reconciler, and a host wrapper duplicated per\njou\n[…]\nred-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01C6iHCFkm4QaVQ7jCBmUCQZ\n\n---------\n\nCo-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(journeys): add JourneyHost + useJourneySync on React and Vue (#74)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T17:53:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c0b3e824f81d62211ddd12d5c4d240cd6c0942c0",
          "body": "…to presets (PR-04) (#81)\n\n* feat(cli): make cli-core framework-pluggable — move framework bodies to presets (PR-04)\n\nClose the remaining PR-04 gap in the Vue initiative: the framework-specific\nsource bodies still living in `cli-core/src/templates/*` now emit through the\npreset interface, so `cli-co\n[…]\nd interface.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01Fi8FUFFVoeYETduddquwyU\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): make cli-core framework-pluggable — move framework bodies …",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T17:13:02Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c12e1b82468664705030e874aebfaf80e73df092",
          "body": "…-51) (#80)\n\n* feat(vue): catalog Vue support — harvest @modular-vue descriptors (PR-51)\n\nEnable the @modular-react/catalog harvester to load @modular-vue/*\ndescriptors and wire a Vue example into the demo catalog.\n\nThe harvester's descriptor detection (detect.ts), resolver (resolve.ts),\nand transit\n[…]\nler's array.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01TkbxMdkRRXfHKDnvD1UNWw\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): catalog Vue support — harvest @modular-vue descriptors (PR…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T16:24:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5cf209f4f66a1f936c18e071db22dfe42d4627c0",
          "body": "* feat(angular): add @angular-router-modules/core (PR-A20)\n\nNew packages/angular-router-core (@angular-router-modules/core, 0.1.0), the\nfirst package of the angular-router family (Phase A2) and the Angular analog\nof @react-router-modules/core and @modular-vue/core.\n\nPlain TS on the repo's rolldown p\n[…]\n at runtime.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01PTxphStVSC3Ljd65pG2aTT\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(angular): add @angular-router-modules/core (PR-A20) (#78)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T15:00:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "46eb54d1de6c3e60a230853039fed67f6e39b814",
          "body": "…Journey re-export (PR-35, PR-43) (#79)\n\n* feat(vue): close parity follow-ups — journey mount adapter + simulateJourney re-export (PR-35, PR-43)\n\nCloses the two parity-audit follow-up gaps, bringing the @modular-vue/*\nfamily to full parity with the React-router family.\n\nPR-35: @modular-vue/journeys \n[…]\nld entirely.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01MDtUHgYGCsjCayrhBiQx7q\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): close parity follow-ups — journey mount adapter + simulate…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T14:59:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "faad4394682d31d7b14710e0e92ac5a03f37ec5a",
          "body": "…1.0 (PR-41, PR-42) (#77)\n\n* docs(vue): getting-started + shell-patterns + parity audit, promote @modular-vue/* to 1.0 (PR-41, PR-42)\n\nCompletes Phase 4 of the Vue support initiative.\n\nPR-41 (docs):\n- Add docs/getting-started-vue-router.md — a manual-setup walkthrough (the\n  @modular-vue/cli scaffol\n[…]\npackage table\n\nCo-Authored-By: Claude Fable 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01GpH8sitUkcG4ZV7XMCNLEh\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(vue): Vue Router docs + parity audit, promote @modular-vue/* to …",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T14:04:54Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f5adbc5aac5f3b9c0a290e05e744c5ea412902c7",
          "body": "* feat(vue): add examples/vue-router example apps (PR-40)\n\nPhase 4 of the Vue support initiative: three self-contained example\nworkspaces under examples/vue-router/, mirroring the react-router /\ntanstack-router families and authored with SFCs (decision D4).\n\n- integration-manager: sibling modules sh\n[…]\nm-lock.yaml.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01RAKtBrD6TXjoajCPhWLZB4\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add examples/vue-router example apps (PR-40) (#76)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T06:25:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c85da63b2712163d412caddbc31204c25d6bb7d0",
          "body": "* feat(vue): add @modular-vue/compositions CompositionOutlet (PR-34)\n\nVue analog of the React compositions/src/outlet.tsx (~1,070 LOC). Ships\nCompositionOutlet, its not-found/error prop types, and the __resetNoopExitWarned\ntest latch, completing @modular-vue/compositions' parity with the React packa\n[…]\ne invariant.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_014utK9H32G3GBuWfNwmk4gZ\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/compositions CompositionOutlet (PR-34) (#75)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-17T00:09:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "993f8829485c92df104772fe71e26d838a815461",
          "body": "…n (PR-33) (#72)\n\n* feat(vue): add @modular-vue/compositions provider, composables, plugin (PR-33)\n\nNew packages/vue-compositions (@modular-vue/compositions, 0.1.0): the Vue 3\ncompositions binding, part 1 of Phase 3's compositions work. Ports the React\nprovider.tsx, hooks.ts, and plugin.tsx over @mo\n[…]\n convention.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01S5ZzHx6WVWzuoBk8n1UEJv\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/compositions provider, composables, plugi…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T20:42:27Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f1c3f33d1c606321110e31a05c36e271a4cfae9a",
          "body": "Distills friction points observed in a real-world production app built\non the library family: journey/router URL sync, JourneyHost lifecycle,\ndefineModule literal inference, derived step progress, buildInput input\nwidening, journey state helpers, outlet error/loading defaults, testing\nergonomics, nav ordering stability, and registry-derived module maps.\n\nCo-authored-by: Claude Fable 5 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: top 10 improvement proposals from a production consumer (#73)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T18:53:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "80697e2572878b6236bfa35c2465974a875dc715",
          "body": "…R-32) (#71)\n\nWire the real @modular-vue/journeys plugin end-to-end into the vue-router\nruntime and add the renderJourney testing helper — closing the PR-21/PR-22\ndeferrals that named PR-32 as the home of concrete journeys-in-runtime.\n\n- runtime: buildAssembly collects plugin-contributed provider co\n[…]\nrap); shells wrap <router-view> in <JourneyProvider> or use resolveManifest().\n\n\nClaude-Session: https://claude.ai/code/session_016wh6fB8wMiYhxVx8xuzwRR\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): wire journeys into @modular-vue/runtime + renderJourney (P…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T17:01:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0df90aeffd6be1eaf78b12c9972c41817ad5e28e",
          "body": "…-exit (PR-31) (#70)\n\n* feat(vue): add @modular-vue/journeys outlet, module-tab, use-wait-for-exit (PR-31)\n\nVue analogs of journeys/src/outlet.tsx, module-tab.tsx, and\nuse-wait-for-exit.ts, completing the journeys UI layer.\n\n- outlet.ts: JourneyOutlet renders the current step, walks the active\n  cal\n[…]\nte contract.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_016RVRy9TBoQXAA5qqtVRYUZ\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/journeys outlet, module-tab, use-wait-for…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T15:27:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5fea76adb84d0719a86c3a624d71cee759439589",
          "body": "…R-30) (#69)\n\n* feat(vue): add @modular-vue/journeys provider, composables, plugin (PR-30)\n\nStart Phase 3 of the Vue port with the journeys binding layer: a new\n`@modular-vue/journeys` (0.1.0) package over `@modular-frontend/journeys-engine`,\nmirroring `@modular-react/journeys`.\n\n- provider.ts: `Jou\n[…]\n convention.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01P1a2CFQmnRZp25ZXAKAMEQ\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/journeys provider, composables, plugin (P…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T13:45:28Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "b122f14c5fa3e1874cadbea7a4afb8cc72c383f9",
          "body": "* feat(vue): add @modular-vue/testing renderModule (PR-24)\n\nPort react-router-testing/src/render-module.tsx to @modular-vue/testing.\nrenderModule renders a module in isolation across entry-point, route-based\n(createRoutes), and legacy component-only shapes, providing the shared\ndependencies, slots, \n[…]\nxlint clean.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01QoimcQQ6BmtpcYgzGPTbBU\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/testing renderModule (PR-24) (#68)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T10:43:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a473db4297490ecde9fee02f6dd78c764d2a844d",
          "body": "* feat(vue): add @modular-vue/runtime zones and route data (PR-23)\n\nAdd the zones/route-data composables to @modular-vue/runtime, mirroring\nthe React runtime's zones.ts, active-zones.ts, and route-data.ts:\n\n- useZones<TZones>() — merged zone components read off route.matched\n  meta, deepest-wins.\n- \n[…]\ntype errors.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01EGtACmRRdJASHLpCds3EDu\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/runtime zones and route data (PR-23) (#67)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-16T08:57:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a94d4eb68967639dd74302407bfe57e94f560f9a",
          "body": "…10) (#64)\n\n* feat(angular): add @modular-angular/angular store bridge and DI (PR-A10)\n\nFirst package of the Angular support initiative: plain-TS Angular bindings\nfor @modular-frontend/core, the analog of @modular-react/react (PR) and\n@modular-vue/vue (PR-10). No @Component code (AD3) — rolldown pip\n[…]\nnd prototype-member cases\n(46 tests). typecheck, test, and vite build pass.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\n\n---------\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(angular): add @modular-angular/angular store bridge and DI (PR-A…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T15:46:16Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "de7bb6a34309ad79b9abc54b5d943e2192178d3f",
          "body": "…22) (#65)\n\n* feat(vue): add @modular-vue/runtime route building and app shell (PR-22)\n\nSecond half of the vue-router runtime: the router-owning resolve() entry, the\nroute-builder that grafts module routes via router.addRoute(), the provider\nlayer, and the auth guard.\n\n- route-builder.ts: graftModul\n[…]\not basePath, and\nresolve() retryability. Package total 62 tests, typecheck clean.\n\n* style(docs): apply oxfmt to vue-support-tracker.md\n\nFixes the failing Lint CI check (oxfmt emphasis normalization).",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/runtime route building and app shell (PR-…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T15:24:25Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e394b2511f3f8851a53e85ea7987d68aab8f0193",
          "body": "* feat(vue): add @vue-router-modules/runtime registry (PR-21)\n\nPort registry.ts from @react-router-modules/runtime as the first half of the\nvue-router runtime: createRegistry with register/registerLazy/use plugin\nmachinery and an idempotent resolveManifest that assembles navigation, slots,\nmodule de\n[…]\nh\npackage READMEs, packages/vue/README.md, the tracker (D1 decision + package\nmap) and port-analysis, and regenerates the lockfile. Both packages are\nunpublished, so there are no consumers to migrate.",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/runtime registry (PR-21) (#63)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T14:31:59Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c876cc3cffd4a4bcce1e3f21f4f78464de2af774",
          "body": "* feat(vue): add @vue-router-modules/core (PR-20)\n\nKick off Phase 2 of the Vue initiative with the vue-router family core,\nmirroring @react-router-modules/core.\n\n- types.ts: vue-router ModuleDescriptor whose createRoutes() returns\n  RouteRecordRaw | RouteRecordRaw[], plus LazyModuleDescriptor\n  (add\n[…]\n only via pnpm hoisting of a sibling copy. Run under the default\nnode environment instead, matching react-router-core (which has no vitest\nconfig and no happy-dom dependency). All 15 tests still pass.",
          "is_bot": false,
          "headline": "feat(vue): add @vue-router-modules/core (PR-20) (#61)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T13:23:44Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "82f21e685da06f3d84ee2b65946b499c0d2978e1",
          "body": "First PR of the Angular support initiative's Phase A0 (seam\ndocumentation). No behavior change.\n\nExtends the `UiComponent` doc comment in `frontend-core/src/ui-types.ts`\nto spell out the call-arm/construct-arm asymmetry: the call arm keeps\nfunction components props-checked against `ModuleEntryProps`\n[…]\nct is now documented, and records the delivery. Existing\nentry-exit.test-d.ts assertions unchanged; frontend-core test suite green\n(274 tests).\n\nCo-authored-by: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(angular): document UiComponent narrowing contract (PR-A01) (#62)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T13:20:07Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a11954bd2802fb1216ed42769b5d17889d40ea34",
          "body": null,
          "is_bot": false,
          "headline": "Add Angular docs",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T13:01:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "807b4891537b5881c5e225f25b8ff5b784cfa237",
          "body": "* feat(vue): add @modular-vue/testing (PR-12)\n\nPort the testing helpers from @modular-react/testing to a new\npackages/vue-testing (@modular-vue/testing, 0.1.0):\n\n- createMockStore: identical createStore alias over @modular-frontend/core.\n- resolveModule: byte-identical to the React version (pure slo\n[…]\nting\n- point each resolve-module.test.ts at the shared package\n- add @modular-frontend/testing dep/peer + vite external to both\n- typecheck, tests (9 each), and build (JS + dts) pass for both packages",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/testing (PR-12) (#60)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T12:45:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "db21126e77231a7787248a2ca747907f0ae2e1d3",
          "body": "* feat(vue): add @modular-vue/vue rendering pieces (PR-11)\n\nPort the React binding's rendering-layer files to Vue, each the analog of\nthe same-named file in @modular-react/react:\n\n- resolve-entry.ts: resolveEntryComponent / preloadEntry over\n  defineAsyncComponent (analog of React.lazy). Memoized by\n[…]\nmport retry.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01CvssSEBSw6fkyCjvX8iA2B\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/vue rendering pieces (PR-11) (#59)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T11:48:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "4d1fc3c1bafbd5027f368278f16f5915c496ca6b",
          "body": "* chore(build): switch dts generation to rolldown-plugin-dts\n\nReplace vite-plugin-dts with rolldown-plugin-dts across all 15 library\npackages. rolldown-plugin-dts is the rolldown-native declaration bundler\n(used by tsdown) and drops the @microsoft/api-extractor dependency chain.\nIt bundles types wit\n[…]\ny as a guard against a future example\nreintroducing an older vite. Comment reworded to reflect that.\n\nAll four vite 6->8 shells build under vite 8.1.3. Full build (34/34) and\ntypecheck (113/113) pass.",
          "is_bot": false,
          "headline": "chore(build): switch dts generation to rolldown-plugin-dts (#58)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T11:02:20Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1bd0b0c8bec2236fea3c0281761088ba452976d3",
          "body": "* feat(vue): add @modular-vue/vue stores and context (PR-10)\n\nFirst package of Phase 1 of the Vue support initiative: the Vue 3 binding\nlayer for stores and context, the analog of @modular-react/react part 1.\n\nNew packages/vue (@modular-vue/vue, 0.1.0) with the repo's standard package\nskeleton (vite\n[…]\nres its core\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01CaJhMvixUQWfc393Dy4dta\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(vue): add @modular-vue/vue stores and context (PR-10) (#57)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T10:06:34Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c2ffd8de163fd39220b6cbcf70d4d9ad3c37a7a5",
          "body": "…ompositions-engine (#56)\n\nPR-03 of the Vue-support initiative. Splits the framework-neutral guts of\n@modular-react/compositions into a new @modular-frontend/compositions-engine\npackage so a future Vue binding can reuse them, mirroring the journeys-engine\nextraction (#55) and the frontend-core extra\n[…]\nbinding = the pre-split\ntotal of 115. Full workspace typecheck and lint clean.\n\n\nClaude-Session: https://claude.ai/code/session_01Sf7deW3iRQaaSjZuj3akTA\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "refactor(compositions): extract framework-neutral @modular-frontend/c…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-06T07:37:11Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "952475f84baa90793505e98fec5f14290950ea07",
          "body": "…eys-engine (#55)\n\n* refactor(journeys): extract framework-neutral @modular-frontend/journeys-engine\n\nPR-02 of the Vue-support initiative. Split the framework-neutral guts of\n@modular-react/journeys into a new @modular-frontend/journeys-engine package so\na future Vue binding can reuse them, mirrorin\n[…]\nts no longer lives in this package.\n- journeys-engine/testing.ts: extract the repeated record + registration +\n  loading guard shared by fireExit/goBack/goForward into one activeRecordAndReg\n  helper.",
          "is_bot": false,
          "headline": "refactor(journeys): extract framework-neutral @modular-frontend/journ…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-05T21:01:09Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7249c1ec907b54850a511fe773760fcf8be6f481",
          "body": "* refactor(core): extract framework-neutral @modular-frontend/core\n\nFirst step of the Vue-support initiative: split the framework-neutral guts\nof @modular-react/core into a new @modular-frontend/core package so a future\nVue binding can reuse them.\n\n- New packages/frontend-core (@modular-frontend/cor\n[…]\nnt seam lands here.\n\n* docs: add bash language tag to oxfmt fence in CLAUDE.md\n\nmarkdownlint MD040 flags fenced blocks without a language. The oxfmt example\nblock is a shell command, so tag it `bash`.",
          "is_bot": false,
          "headline": "refactor(core): extract framework-neutral @modular-frontend/core (#54)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-05T20:14:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c22050bac2412cc0eb6aedcf24f4eb85d1590264",
          "body": null,
          "is_bot": false,
          "headline": "prepare for Vue version",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-07-05T18:32:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "de89cda3100ce41ff29acea0d1b9262f8275e79d",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-21T12:33:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d81a461f1356f97e01ba47bc5121e6cd27ff53a1",
          "body": "…og bootstrap (#53)\n\n* Revise CLI packages: refresh deps, fix stale template pins, add catalog bootstrap\n\nDependency revision (CLI packages aligned with the rest of the repo):\n- typescript ^6.0.2 -> ^6.0.3, vitest ^4.1.0 -> ^4.1.5 in the router CLIs\n- @clack/prompts ^1.2.0 -> ^1.3.0 in cli-core\n- de\n[…]\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01A8ek5nug7A8AZrHgDj1Yjy\n\n---------\n\nCo-authored-by: Claude <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Revise CLI packages: refresh deps, fix stale template pins, add catal…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-06-21T12:32:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6ff164864a1ddfd4b1955c3b2e90d29be7ae422f",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-06-08T09:10:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0dc45eaf8d5888487f41c680fb2dfc831690a857",
          "body": "… resolves (#52)",
          "is_bot": false,
          "headline": "fix(journeys): discard persisted journeys whose active step no longer…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-06-08T09:08:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ed52fcb1e8ed0c1f91e7d2410d9714fe1a1486a9",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' of https://github.com/kibertoad/modular-react",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-29T09:44:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a091629be4e9c0fc73e9f1852cf6dbea4a289b2c",
          "body": null,
          "is_bot": false,
          "headline": "version bump",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-29T09:44:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ef15edb210505ca4d5ed2d2c1ad7b00ebf913ca8",
          "body": null,
          "is_bot": false,
          "headline": "fix(catalog): silence dep-scan noise from the config loader (#51)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-29T09:43:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "945b2564b80b67539946e0ab68a17a236aa43176",
          "body": null,
          "is_bot": false,
          "headline": "feat(catalog): forward path-alias resolution to the harvester (#50)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-29T09:08:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df836050139eab8b5d0e0a2e97f9dbbf6230d442",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-21T08:51:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "90fbe6d9cb20cb96322e9086b540611bcd95b548",
          "body": null,
          "is_bot": false,
          "headline": "feat(core): optional StepSpec input for buildInput entries (#49)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-21T08:50:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ccca4d846406e75c0fb03cf06c7c81aa7a4412f",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-19T14:01:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7a8a2b5e4422e501ea95e72f54bf70e0ac3b585e",
          "body": null,
          "is_bot": false,
          "headline": "feat(journeys): useWaitForExit + event-driven wait documentation (#48)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-19T14:00:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "91832844d1fd6bee2508064e4a33766a58a85424",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-19T12:48:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9afca568f36538fe1d9fe844a1ca76b224d40c7c",
          "body": null,
          "is_bot": false,
          "headline": "feat(compositions): add @modular-react/compositions package (#45)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-19T12:46:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea1349c5071f36d61f5b91027cd09511e088b613",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-19T12:26:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cfb0c0e42d12283ec42a01d79445f3e6acf396c",
          "body": "…ation (#44)",
          "is_bot": false,
          "headline": "feat(journeys,core): add runtime.rewindTo for breadcrumb wizard navig…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-19T12:24:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49feeb1da01e34fa048e4f0daf452ba7a03b4257",
          "body": "…hared-singleton trap (#42)",
          "is_bot": false,
          "headline": "docs(journeys): document multi-journey persistence patterns and the s…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-18T15:37:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6aa972d499d9ae9379f20dd7be142edb2bcafb77",
          "body": null,
          "is_bot": false,
          "headline": "ci: tighten zizmor (official action, pedantic, fail on findings) (#43)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-17T15:54:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c6838ee47a61714a820773e0ff027161c283eb26",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-15T15:08:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "02be81b375a5689cc21009ce5921621e21b42dcf",
          "body": "…(#41)",
          "is_bot": false,
          "headline": "feat(journeys,core): add runtime.canGoBack / canGoForward predicates …",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-15T15:06:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1e61f5a2fac8985d07e10c2302e3afe0c9df8cc",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-15T10:14:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62060fd95beb1214044bbe058927dd348d0d1b3f",
          "body": "…edo stack (#40)\n\nInverse of `runtime.goBack`. `goBack` was destructive — it popped the\ncurrent step + rollback snapshot off the instance record and threw the\ndata away, so a shell wiring browser Forward to journey navigation had\nno way to redo the rewind. The URL would drift ahead of the runtime\nwith no recovery path beyond re-firing the original exit (which\nrequires the step component's form data + side effects, neither of\nwhich the shell has).",
          "is_bot": false,
          "headline": "feat(journeys,core): add runtime.goForward + JourneyInstance.future r…",
          "author_name": "Diogo Silva",
          "author_login": "diogomiguel",
          "committed_at": "2026-05-15T10:12:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a97bfd7dd507c2f53f1f8a852f75f3e80e89621d",
          "body": null,
          "is_bot": false,
          "headline": "ci: add zizmor static analysis and harden existing workflows (#39)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-13T23:09:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56c9e1692de8cf74e27a6e5c9a44999a25152570",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-12T15:05:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1156d2ffd70ff9bd95aa63232a11650173c3be79",
          "body": "…tep/simulator output (#38)\n\nLands seven public API additions surfaced by client first journey-adoption flow - replaces hand-rolled state contexts, leaf-walking hooks, popstate back-handlers, and per-step previous* input fields with first-class runtime primitives.",
          "is_bot": false,
          "headline": "feat(journeys,core): buildInput, runtime.goBack, state hooks, typed s…",
          "author_name": "Diogo Silva",
          "author_login": "diogomiguel",
          "committed_at": "2026-05-12T15:03:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32c7ec4b67929200814c59a0d5f65b4c141007a9",
          "body": null,
          "is_bot": false,
          "headline": "Fix linting",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-10T21:02:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0a9cf558ea4cf6980913b5c9b1cde99ca4dedd04",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-10T21:01:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52768fa8fbe6f42189de21945ec4fcfa824056bf",
          "body": null,
          "is_bot": false,
          "headline": "Fix release (#37)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-10T20:59:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba2ecf6823216d0b737d7a7176f01f5434c9e772",
          "body": null,
          "is_bot": false,
          "headline": "Trigger release (#36)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-10T20:51:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b044f1f210f8c862e421d87a642f4261289975a4",
          "body": "…(#35)",
          "is_bot": false,
          "headline": "feat(journeys,core): wildcard transitions with shared exit contracts …",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-08T10:36:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1235a2504748cb92a5ad73df693ba11aedadbf1",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-07T16:33:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8bfaa531d228f503b1122e0f73f24fbacbd7f409",
          "body": "Same peer-descriptor correction we did for journeys/react in #33, applied\nto all six router-modules packages. Testing packages also bump their peer\nof `@modular-react/journeys` from `^1.0.0` to `^1.0.1` to match the\nupstream peer correction. No behavior change.",
          "is_bot": false,
          "headline": "fix(router-modules): bump peer @modular-react/* to 2.x range (#34)",
          "author_name": "Diogo Silva",
          "author_login": "diogomiguel",
          "committed_at": "2026-05-07T16:31:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b395c1c240c909d5be320c90a8ada00a1f7d3fbd",
          "body": null,
          "is_bot": false,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "Diogo Silva",
          "author_login": "diogomiguel",
          "committed_at": "2026-05-07T16:24:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4fb1c1df8610a72c4ec91b07ad05a3decc7be072",
          "body": "`@modular-react/react@2.0.0` and `@modular-react/journeys@1.0.0` already\nrequire a 2.x core at runtime — lazy entry-points, the\n`EagerModuleEntryPoint | LazyModuleEntryPoint` union, and\n`resolveEntryComponent` all live in core 2.x — but the peer descriptors\nstill pointed at `^1.2.0`. Consumers insta\n[…]\nnts singletons (registry, defineEntry identity) at runtime.\n\nSame fix on `@modular-react/journeys` peer of `@modular-react/react`\n(`^1.2.0` → `^2.0.0`). Peer-descriptor correction, no behavior change.",
          "is_bot": false,
          "headline": "fix(react,journeys): bump peer @modular-react/core to ^2.0.0 (#33)",
          "author_name": "Diogo Silva",
          "author_login": "diogomiguel",
          "committed_at": "2026-05-07T16:08:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4dd01297781cb080a2cb80476dd1b519fd9f1328",
          "body": "… (#32)",
          "is_bot": false,
          "headline": "feat(testing): preloadEntries helper for synchronous lazy-entry tests…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-07T14:34:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ba105a5b3fccb87e4f52410dcd92dd13805c8be0",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-07T10:53:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2fe84910502a0bd9f79078b093c8d46bf751c337",
          "body": null,
          "is_bot": false,
          "headline": "feat: native lazy entry-points + journey-graph auto-preload (#30)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-07T10:51:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3e14aebbc0c5ce4fa28062af5ef2342a80e8b17e",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-07T07:39:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e096edc6f7bd13b24b201839e16eb0678d73c2bf",
          "body": null,
          "is_bot": false,
          "headline": "fix(core): preserve insertion order when nav items tie on `order` (#29)",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-07T07:38:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0f244d0518d0bca344e873efd76d2d6ae61f08a",
          "body": "…ration (#28)",
          "is_bot": false,
          "headline": "feat(examples): tanstack-router remote-capabilities + journey orchest…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-06T22:13:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "afb978375b68ebd5dd1f7f533780e100e6474a13",
          "body": null,
          "is_bot": true,
          "headline": "chore: bump versions [skip ci]",
          "author_name": "github-actions[bot]",
          "author_login": "github-actions[bot]",
          "committed_at": "2026-05-05T13:28:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a9b392025e052e4f1a192ae417b7880d47ba925",
          "body": "… (#27)",
          "is_bot": false,
          "headline": "feat: zone ownership — runtime warning + TanStack compile-time gating…",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-05T13:26:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aab72b19e4dfd234401e08a1b8f8652511f36a7",
          "body": null,
          "is_bot": false,
          "headline": "Document catalog",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-01T08:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "981afdf5ee6f068e0dbe818fc2f72cc6f7d353b6",
          "body": null,
          "is_bot": false,
          "headline": "@modular-react/catalog 1.0.0",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-01T08:32:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab96f0321154234eaaf5bd8bf8ce48845e13b907",
          "body": null,
          "is_bot": false,
          "headline": "catalog tweaks",
          "author_name": "Igor Savin",
          "author_login": "kibertoad",
          "committed_at": "2026-05-01T08:32:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 144,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 4,
      "active_weeks_last_year": 14,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@modular-react/core",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-react/core",
          "is_deprecated": false,
          "latest_version": "2.7.1",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 23,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 5390,
          "first_published_at": "2026-04-09T09:07:30.261000Z",
          "latest_published_at": "2026-07-19T12:36:47.219000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@modular-react/react",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-react/react",
          "is_deprecated": false,
          "latest_version": "2.3.0",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 12,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 7882,
          "first_published_at": "2026-04-09T09:07:46.230000Z",
          "latest_published_at": "2026-07-19T15:39:55.617000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@modular-angular/angular",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-angular/angular",
          "is_deprecated": false,
          "latest_version": "0.1.0",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 1,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 159,
          "first_published_at": "2026-07-18T11:53:14.820000Z",
          "latest_published_at": "2026-07-18T11:53:15.179000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@modular-react/catalog",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-react/catalog",
          "is_deprecated": false,
          "latest_version": "1.2.0",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 4,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 2774,
          "first_published_at": "2026-05-01T08:34:04.959000Z",
          "latest_published_at": "2026-07-20T19:31:44.550000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        },
        {
          "name": "@modular-react/cli-core",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-react/cli-core",
          "is_deprecated": false,
          "latest_version": "1.1.0",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 4,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 241,
          "first_published_at": "2026-05-10T20:37:23.065000Z",
          "latest_published_at": "2026-07-20T14:38:50.336000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        },
        {
          "name": "@modular-react/journeys",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-react/journeys",
          "is_deprecated": false,
          "latest_version": "1.10.0",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 16,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 2,
          "monthly_downloads": 5531,
          "first_published_at": "2026-04-27T10:17:14.500000Z",
          "latest_published_at": "2026-07-20T14:38:37.901000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        },
        {
          "name": "@modular-frontend/core",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@modular-frontend/core",
          "is_deprecated": false,
          "latest_version": "0.6.0",
          "repository_url": "https://github.com/kibertoad/modular-react",
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 2041,
          "first_published_at": "2026-07-05T20:16:13.097000Z",
          "latest_published_at": "2026-07-20T19:32:10.776000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 4
        }
      ]
    },
    "popularity": {
      "forks": 2,
      "stars": 6,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-04-22",
            "count": 1
          },
          {
            "date": "2026-05-11",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 1
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "examples/catalog/tsconfig.json",
        "examples/react-router/active-project-manifest/app-shared/tsconfig.json",
        "examples/react-router/active-project-manifest/modules/integrations/tsconfig.json",
        "examples/react-router/active-project-manifest/shell/tsconfig.json",
        "examples/react-router/customer-onboarding-journey/app-shared/tsconfig.json",
        "examples/react-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json",
        "examples/react-router/customer-onboarding-journey/modules/billing/tsconfig.json",
        "examples/react-router/customer-onboarding-journey/modules/plan/tsconfig.json",
        "examples/react-router/customer-onboarding-journey/modules/profile/tsconfig.json",
        "examples/react-router/customer-onboarding-journey/shell/tsconfig.json",
        "examples/react-router/editor-composition/app-shared/tsconfig.json",
        "examples/react-router/editor-composition/compositions/editor/tsconfig.json",
        "examples/react-router/editor-composition/modules/contentful/tsconfig.json",
        "examples/react-router/editor-composition/modules/editor/tsconfig.json",
        "examples/react-router/editor-composition/modules/strapi/tsconfig.json",
        "examples/react-router/editor-composition/shell/tsconfig.json",
        "examples/react-router/inspector-panels/app-shared/tsconfig.json",
        "examples/react-router/inspector-panels/modules/acme-extras/tsconfig.json",
        "examples/react-router/inspector-panels/modules/inspector-core/tsconfig.json",
        "examples/react-router/inspector-panels/shell/tsconfig.json",
        "examples/react-router/integration-manager/app-shared/tsconfig.json",
        "examples/react-router/integration-manager/modules/contentful/tsconfig.json",
        "examples/react-router/integration-manager/modules/github/tsconfig.json",
        "examples/react-router/integration-manager/modules/strapi/tsconfig.json",
        "examples/react-router/integration-manager/shell/tsconfig.json",
        "examples/react-router/integration-setup-journey/app-shared/tsconfig.json",
        "examples/react-router/integration-setup-journey/journeys/integration-setup/tsconfig.json",
        "examples/react-router/integration-setup-journey/modules/contentful/tsconfig.json",
        "examples/react-router/integration-setup-journey/modules/generic-integration/tsconfig.json",
        "examples/react-router/integration-setup-journey/modules/github/tsconfig.json",
        "examples/react-router/integration-setup-journey/modules/integration-picker/tsconfig.json",
        "examples/react-router/integration-setup-journey/modules/notion/tsconfig.json",
        "examples/react-router/integration-setup-journey/modules/strapi/tsconfig.json",
        "examples/react-router/integration-setup-journey/shell/tsconfig.json",
        "examples/react-router/journey-invoke/app-shared/tsconfig.json",
        "examples/react-router/journey-invoke/journeys/checkout/tsconfig.json",
        "examples/react-router/journey-invoke/journeys/verify-identity/tsconfig.json",
        "examples/react-router/journey-invoke/modules/age-verify/tsconfig.json",
        "examples/react-router/journey-invoke/modules/checkout-confirm/tsconfig.json",
        "examples/react-router/journey-invoke/modules/checkout-review/tsconfig.json",
        "examples/react-router/journey-invoke/shell/tsconfig.json",
        "examples/react-router/overlay-result-windows/app-shared/tsconfig.json",
        "examples/react-router/overlay-result-windows/modules/acme-extras/tsconfig.json",
        "examples/react-router/overlay-result-windows/modules/run-core/tsconfig.json",
        "examples/react-router/overlay-result-windows/shell/tsconfig.json",
        "examples/react-router/remote-capabilities/app-shared/tsconfig.json",
        "examples/react-router/remote-capabilities/modules/integrations/tsconfig.json",
        "examples/react-router/remote-capabilities/shell/tsconfig.json",
        "examples/tanstack-router/customer-onboarding-journey/app-shared/tsconfig.json",
        "examples/tanstack-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json",
        "examples/tanstack-router/customer-onboarding-journey/modules/billing/tsconfig.json",
        "examples/tanstack-router/customer-onboarding-journey/modules/plan/tsconfig.json",
        "examples/tanstack-router/customer-onboarding-journey/modules/profile/tsconfig.json",
        "examples/tanstack-router/customer-onboarding-journey/shell/tsconfig.json",
        "examples/tanstack-router/editor-composition/app-shared/tsconfig.json",
        "examples/tanstack-router/editor-composition/compositions/editor/tsconfig.json",
        "examples/tanstack-router/editor-composition/modules/contentful/tsconfig.json",
        "examples/tanstack-router/editor-composition/modules/editor/tsconfig.json",
        "examples/tanstack-router/editor-composition/modules/strapi/tsconfig.json",
        "examples/tanstack-router/editor-composition/shell/tsconfig.json",
        "examples/tanstack-router/integration-manager/app-shared/tsconfig.json",
        "examples/tanstack-router/integration-manager/modules/contentful/tsconfig.json",
        "examples/tanstack-router/integration-manager/modules/github/tsconfig.json",
        "examples/tanstack-router/integration-manager/modules/strapi/tsconfig.json",
        "examples/tanstack-router/integration-manager/shell/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/app-shared/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/journeys/integration-setup/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/modules/contentful/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/modules/generic-integration/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/modules/github/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/modules/integration-picker/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/modules/notion/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/modules/strapi/tsconfig.json",
        "examples/tanstack-router/integration-setup-journey/shell/tsconfig.json",
        "examples/tanstack-router/journey-invoke/app-shared/tsconfig.json",
        "examples/tanstack-router/journey-invoke/journeys/checkout/tsconfig.json",
        "examples/tanstack-router/journey-invoke/journeys/verify-identity/tsconfig.json",
        "examples/tanstack-router/journey-invoke/modules/age-verify/tsconfig.json",
        "examples/tanstack-router/journey-invoke/modules/checkout-confirm/tsconfig.json",
        "examples/tanstack-router/journey-invoke/modules/checkout-review/tsconfig.json",
        "examples/tanstack-router/journey-invoke/shell/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/app-shared/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/journeys/integration-setup/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/modules/generic-integration/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/modules/hubspot/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/modules/integration-catalog/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/modules/salesforce/tsconfig.json",
        "examples/tanstack-router/remote-capabilities/shell/tsconfig.json",
        "examples/vue/customer-onboarding-journey/app-shared/tsconfig.json",
        "examples/vue/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json",
        "examples/vue/customer-onboarding-journey/modules/billing/tsconfig.json",
        "examples/vue/customer-onboarding-journey/modules/plan/tsconfig.json",
        "examples/vue/customer-onboarding-journey/modules/profile/tsconfig.json",
        "examples/vue/customer-onboarding-journey/shell/tsconfig.json",
        "examples/vue/editor-composition/app-shared/tsconfig.json",
        "examples/vue/editor-composition/compositions/editor/tsconfig.json",
        "examples/vue/editor-composition/modules/contentful/tsconfig.json",
        "examples/vue/editor-composition/modules/editor/tsconfig.json",
        "examples/vue/editor-composition/modules/strapi/tsconfig.json",
        "examples/vue/editor-composition/shell/tsconfig.json",
        "examples/vue/integration-manager/app-shared/tsconfig.json",
        "examples/vue/integration-manager/modules/contentful/tsconfig.json",
        "examples/vue/integration-manager/modules/github/tsconfig.json",
        "examples/vue/integration-manager/modules/strapi/tsconfig.json",
        "examples/vue/integration-manager/shell/tsconfig.json",
        "examples/vue/nuxt-modal-journey/app-shared/tsconfig.json",
        "examples/vue/nuxt-modal-journey/journeys/setup-wizard/tsconfig.json",
        "examples/vue/nuxt-modal-journey/modules/wizard/tsconfig.json",
        "examples/vue/nuxt-modal-journey/shell/tsconfig.json",
        "examples/vue/overlay-result-windows/app-shared/tsconfig.json",
        "examples/vue/overlay-result-windows/modules/acme-extras/tsconfig.json",
        "examples/vue/overlay-result-windows/modules/run-core/tsconfig.json",
        "examples/vue/overlay-result-windows/shell/tsconfig.json",
        "packages/angular-router-core/tsconfig.json",
        "packages/angular/tsconfig.json",
        "packages/catalog/spa-src/tsconfig.json",
        "packages/catalog/tsconfig.json",
        "packages/cli-core/tsconfig.json",
        "packages/compositions-engine/tsconfig.json",
        "packages/compositions/tsconfig.json",
        "packages/core/tsconfig.json",
        "packages/frontend-core/tsconfig.json",
        "packages/frontend-testing/tsconfig.json",
        "packages/journeys-engine/tsconfig.json",
        "packages/journeys/tsconfig.json",
        "packages/react-router-cli/tsconfig.json",
        "packages/react-router-core/tsconfig.json",
        "packages/react-router-runtime/tsconfig.json",
        "packages/react-router-testing/tsconfig.json",
        "packages/react/tsconfig.json",
        "packages/tanstack-router-cli/tsconfig.json",
        "packages/tanstack-router-core/tsconfig.json",
        "packages/tanstack-router-runtime/tsconfig.json",
        "packages/tanstack-router-testing/tsconfig.json",
        "packages/testing/tsconfig.json",
        "packages/vue-cli/tsconfig.json",
        "packages/vue-compositions/tsconfig.json",
        "packages/vue-core/tsconfig.json",
        "packages/vue-journeys/tsconfig.json",
        "packages/vue-nuxt/tsconfig.json",
        "packages/vue-runtime/tsconfig.json",
        "packages/vue-testing/tsconfig.json",
        "packages/vue/tsconfig.json"
      ],
      "toolchain_manifests": [],
      "largest_source_bytes": 125845,
      "source_files_sampled": 908,
      "oversized_source_files": 2,
      "agent_instruction_files": [
        "CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 2087
    },
    "dependencies": {
      "manifests": [
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "npm"
      ],
      "dependencies": [
        {
          "name": "@clack/prompts",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.0"
        },
        {
          "name": "@modular-react/core",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "citty",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.2"
        },
        {
          "name": "oxc-parser",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.128.0"
        },
        {
          "name": "pathe",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.3"
        },
        {
          "name": "tinyglobby",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.10"
        },
        {
          "name": "vite",
          "manifest": "packages/catalog/package.json",
          "ecosystem": "npm",
          "version_constraint": "^8.1.3"
        },
        {
          "name": "@clack/prompts",
          "manifest": "packages/cli-core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.3.0"
        },
        {
          "name": "citty",
          "manifest": "packages/cli-core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.2.2"
        },
        {
          "name": "pathe",
          "manifest": "packages/cli-core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.0.3"
        },
        {
          "name": "@modular-frontend/compositions-engine",
          "manifest": "packages/compositions/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@standard-schema/spec",
          "manifest": "packages/frontend-core/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.0.0"
        },
        {
          "name": "@modular-frontend/journeys-engine",
          "manifest": "packages/journeys/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@modular-react/cli-core",
          "manifest": "packages/react-router-cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        },
        {
          "name": "@modular-react/cli-core",
          "manifest": "packages/tanstack-router-cli/package.json",
          "ecosystem": "npm",
          "version_constraint": "workspace:*"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 93,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 1,
        "closed_unmerged_prs": 2
      },
      "bus_factor": 1,
      "bot_contributors": 1,
      "top_contributors": [
        {
          "type": "User",
          "login": "kibertoad",
          "commits": 104,
          "avatar_url": "https://avatars.githubusercontent.com/u/1847934?v=4"
        },
        {
          "type": "User",
          "login": "diogomiguel",
          "commits": 6,
          "avatar_url": "https://avatars.githubusercontent.com/u/523146?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.945
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.common.yml",
        "ci.yml",
        "ensure-labels.yml",
        "publish.yml",
        "zizmor.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json",
        "pnpm-lock.yaml"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "19 out of 19 merged PRs checked by a CI test -- score normalized to 10",
            "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 2/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 3 contributing companies or organizations -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 10,
            "reason": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 10,
            "reason": "all dependencies are pinned",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 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": 10,
            "reason": "GitHub workflow tokens follow principle of least privilege",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "46 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "b7a3b76684e8719d0306b1870a46b534790f351b",
        "ran_at": "2026-07-25T10:03:24Z",
        "aggregate_score": 5.1,
        "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-20T19:32:33Z",
      "oldest_open_prs": [
        {
          "number": 66,
          "created_at": "2026-07-06T15:36:43Z",
          "last_comment_at": "2026-07-06T15:36:54Z",
          "last_comment_author": "coderabbitai"
        }
      ],
      "last_merged_pr_at": "2026-07-20T14:36:16Z",
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/kibertoad/modular-react",
    "host": "github.com",
    "name": "modular-react",
    "owner": "kibertoad"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 56,
      "inputs": {
        "security": 51,
        "vitality": 45,
        "community": 43,
        "governance": 65,
        "engineering": 71
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 45,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "commits_last_year": 144,
              "human_commit_share": 0.76,
              "days_since_last_push": 4,
              "active_weeks_last_year": 14
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "14/52 weeks with commits",
                "points": 9.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 14
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "144 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 144
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "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": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 43,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 11,
            "inputs": {
              "forks": 2,
              "stars": 6,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "6 stars",
                "points": 11.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "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": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 73,
            "inputs": {
              "packages": [
                "@modular-react/core",
                "@modular-react/react",
                "@modular-angular/angular",
                "@modular-react/catalog",
                "@modular-react/cli-core",
                "@modular-react/journeys",
                "@modular-frontend/core"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 24018
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "24,018 downloads/month across npm",
                "points": 58.4,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 24018,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 65,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 23,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.945
            },
            "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 94% of commits",
                "points": 1.2,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 94
                    }
                  }
                ],
                "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 3 contributing companies or organizations -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "merged_prs": 93,
              "open_issues": 0,
              "closed_issues": 1,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 2
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "93/95 decided PRs merged",
                "points": 37.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 93,
                      "decided": 95
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 2/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "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": 67,
            "inputs": {
              "followers": 391,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "kibertoad",
              "public_repos": 202,
              "account_age_days": 5154
            },
            "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": "391 followers of kibertoad",
                "points": 18.6,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 391,
                      "login": "kibertoad"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "202 public repos, account ~14 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 202
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 14
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@modular-react/core",
                "@modular-react/react",
                "@modular-angular/angular",
                "@modular-react/catalog",
                "@modular-react/cli-core",
                "@modular-react/journeys",
                "@modular-frontend/core"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 4
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "7 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 7,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 4 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "23 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 23
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 71,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "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": "5 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "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": "19 out of 19 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "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": "moderate",
        "name": "Security",
        "value": 51,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 51,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 5.1
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "19 out of 19 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 2/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 3 contributing companies or organizations -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "all dependencies are pinned",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file 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": "GitHub workflow tokens follow principle of least privilege",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "46 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 4
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 72,
        "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.882,
              "agent_instruction_files": [
                "CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 2087
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "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": "67 of 76 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 67,
                      "sampled": 76
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 63,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json",
                "pnpm-lock.yaml"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "examples/catalog/tsconfig.json",
                "examples/react-router/active-project-manifest/app-shared/tsconfig.json",
                "examples/react-router/active-project-manifest/modules/integrations/tsconfig.json",
                "examples/react-router/active-project-manifest/shell/tsconfig.json",
                "examples/react-router/customer-onboarding-journey/app-shared/tsconfig.json",
                "examples/react-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json",
                "examples/react-router/customer-onboarding-journey/modules/billing/tsconfig.json",
                "examples/react-router/customer-onboarding-journey/modules/plan/tsconfig.json",
                "examples/react-router/customer-onboarding-journey/modules/profile/tsconfig.json",
                "examples/react-router/customer-onboarding-journey/shell/tsconfig.json",
                "examples/react-router/editor-composition/app-shared/tsconfig.json",
                "examples/react-router/editor-composition/compositions/editor/tsconfig.json",
                "examples/react-router/editor-composition/modules/contentful/tsconfig.json",
                "examples/react-router/editor-composition/modules/editor/tsconfig.json",
                "examples/react-router/editor-composition/modules/strapi/tsconfig.json",
                "examples/react-router/editor-composition/shell/tsconfig.json",
                "examples/react-router/inspector-panels/app-shared/tsconfig.json",
                "examples/react-router/inspector-panels/modules/acme-extras/tsconfig.json",
                "examples/react-router/inspector-panels/modules/inspector-core/tsconfig.json",
                "examples/react-router/inspector-panels/shell/tsconfig.json",
                "examples/react-router/integration-manager/app-shared/tsconfig.json",
                "examples/react-router/integration-manager/modules/contentful/tsconfig.json",
                "examples/react-router/integration-manager/modules/github/tsconfig.json",
                "examples/react-router/integration-manager/modules/strapi/tsconfig.json",
                "examples/react-router/integration-manager/shell/tsconfig.json",
                "examples/react-router/integration-setup-journey/app-shared/tsconfig.json",
                "examples/react-router/integration-setup-journey/journeys/integration-setup/tsconfig.json",
                "examples/react-router/integration-setup-journey/modules/contentful/tsconfig.json",
                "examples/react-router/integration-setup-journey/modules/generic-integration/tsconfig.json",
                "examples/react-router/integration-setup-journey/modules/github/tsconfig.json",
                "examples/react-router/integration-setup-journey/modules/integration-picker/tsconfig.json",
                "examples/react-router/integration-setup-journey/modules/notion/tsconfig.json",
                "examples/react-router/integration-setup-journey/modules/strapi/tsconfig.json",
                "examples/react-router/integration-setup-journey/shell/tsconfig.json",
                "examples/react-router/journey-invoke/app-shared/tsconfig.json",
                "examples/react-router/journey-invoke/journeys/checkout/tsconfig.json",
                "examples/react-router/journey-invoke/journeys/verify-identity/tsconfig.json",
                "examples/react-router/journey-invoke/modules/age-verify/tsconfig.json",
                "examples/react-router/journey-invoke/modules/checkout-confirm/tsconfig.json",
                "examples/react-router/journey-invoke/modules/checkout-review/tsconfig.json",
                "examples/react-router/journey-invoke/shell/tsconfig.json",
                "examples/react-router/overlay-result-windows/app-shared/tsconfig.json",
                "examples/react-router/overlay-result-windows/modules/acme-extras/tsconfig.json",
                "examples/react-router/overlay-result-windows/modules/run-core/tsconfig.json",
                "examples/react-router/overlay-result-windows/shell/tsconfig.json",
                "examples/react-router/remote-capabilities/app-shared/tsconfig.json",
                "examples/react-router/remote-capabilities/modules/integrations/tsconfig.json",
                "examples/react-router/remote-capabilities/shell/tsconfig.json",
                "examples/tanstack-router/customer-onboarding-journey/app-shared/tsconfig.json",
                "examples/tanstack-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json",
                "examples/tanstack-router/customer-onboarding-journey/modules/billing/tsconfig.json",
                "examples/tanstack-router/customer-onboarding-journey/modules/plan/tsconfig.json",
                "examples/tanstack-router/customer-onboarding-journey/modules/profile/tsconfig.json",
                "examples/tanstack-router/customer-onboarding-journey/shell/tsconfig.json",
                "examples/tanstack-router/editor-composition/app-shared/tsconfig.json",
                "examples/tanstack-router/editor-composition/compositions/editor/tsconfig.json",
                "examples/tanstack-router/editor-composition/modules/contentful/tsconfig.json",
                "examples/tanstack-router/editor-composition/modules/editor/tsconfig.json",
                "examples/tanstack-router/editor-composition/modules/strapi/tsconfig.json",
                "examples/tanstack-router/editor-composition/shell/tsconfig.json",
                "examples/tanstack-router/integration-manager/app-shared/tsconfig.json",
                "examples/tanstack-router/integration-manager/modules/contentful/tsconfig.json",
                "examples/tanstack-router/integration-manager/modules/github/tsconfig.json",
                "examples/tanstack-router/integration-manager/modules/strapi/tsconfig.json",
                "examples/tanstack-router/integration-manager/shell/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/app-shared/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/journeys/integration-setup/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/modules/contentful/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/modules/generic-integration/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/modules/github/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/modules/integration-picker/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/modules/notion/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/modules/strapi/tsconfig.json",
                "examples/tanstack-router/integration-setup-journey/shell/tsconfig.json",
                "examples/tanstack-router/journey-invoke/app-shared/tsconfig.json",
                "examples/tanstack-router/journey-invoke/journeys/checkout/tsconfig.json",
                "examples/tanstack-router/journey-invoke/journeys/verify-identity/tsconfig.json",
                "examples/tanstack-router/journey-invoke/modules/age-verify/tsconfig.json",
                "examples/tanstack-router/journey-invoke/modules/checkout-confirm/tsconfig.json",
                "examples/tanstack-router/journey-invoke/modules/checkout-review/tsconfig.json",
                "examples/tanstack-router/journey-invoke/shell/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/app-shared/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/journeys/integration-setup/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/modules/generic-integration/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/modules/hubspot/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/modules/integration-catalog/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/modules/salesforce/tsconfig.json",
                "examples/tanstack-router/remote-capabilities/shell/tsconfig.json",
                "examples/vue/customer-onboarding-journey/app-shared/tsconfig.json",
                "examples/vue/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json",
                "examples/vue/customer-onboarding-journey/modules/billing/tsconfig.json",
                "examples/vue/customer-onboarding-journey/modules/plan/tsconfig.json",
                "examples/vue/customer-onboarding-journey/modules/profile/tsconfig.json",
                "examples/vue/customer-onboarding-journey/shell/tsconfig.json",
                "examples/vue/editor-composition/app-shared/tsconfig.json",
                "examples/vue/editor-composition/compositions/editor/tsconfig.json",
                "examples/vue/editor-composition/modules/contentful/tsconfig.json",
                "examples/vue/editor-composition/modules/editor/tsconfig.json",
                "examples/vue/editor-composition/modules/strapi/tsconfig.json",
                "examples/vue/editor-composition/shell/tsconfig.json",
                "examples/vue/integration-manager/app-shared/tsconfig.json",
                "examples/vue/integration-manager/modules/contentful/tsconfig.json",
                "examples/vue/integration-manager/modules/github/tsconfig.json",
                "examples/vue/integration-manager/modules/strapi/tsconfig.json",
                "examples/vue/integration-manager/shell/tsconfig.json",
                "examples/vue/nuxt-modal-journey/app-shared/tsconfig.json",
                "examples/vue/nuxt-modal-journey/journeys/setup-wizard/tsconfig.json",
                "examples/vue/nuxt-modal-journey/modules/wizard/tsconfig.json",
                "examples/vue/nuxt-modal-journey/shell/tsconfig.json",
                "examples/vue/overlay-result-windows/app-shared/tsconfig.json",
                "examples/vue/overlay-result-windows/modules/acme-extras/tsconfig.json",
                "examples/vue/overlay-result-windows/modules/run-core/tsconfig.json",
                "examples/vue/overlay-result-windows/shell/tsconfig.json",
                "packages/angular-router-core/tsconfig.json",
                "packages/angular/tsconfig.json",
                "packages/catalog/spa-src/tsconfig.json",
                "packages/catalog/tsconfig.json",
                "packages/cli-core/tsconfig.json",
                "packages/compositions-engine/tsconfig.json",
                "packages/compositions/tsconfig.json",
                "packages/core/tsconfig.json",
                "packages/frontend-core/tsconfig.json",
                "packages/frontend-testing/tsconfig.json",
                "packages/journeys-engine/tsconfig.json",
                "packages/journeys/tsconfig.json",
                "packages/react-router-cli/tsconfig.json",
                "packages/react-router-core/tsconfig.json",
                "packages/react-router-runtime/tsconfig.json",
                "packages/react-router-testing/tsconfig.json",
                "packages/react/tsconfig.json",
                "packages/tanstack-router-cli/tsconfig.json",
                "packages/tanstack-router-core/tsconfig.json",
                "packages/tanstack-router-runtime/tsconfig.json",
                "packages/tanstack-router-testing/tsconfig.json",
                "packages/testing/tsconfig.json",
                "packages/vue-cli/tsconfig.json",
                "packages/vue-compositions/tsconfig.json",
                "packages/vue-core/tsconfig.json",
                "packages/vue-journeys/tsconfig.json",
                "packages/vue-nuxt/tsconfig.json",
                "packages/vue-runtime/tsconfig.json",
                "packages/vue-testing/tsconfig.json",
                "packages/vue/tsconfig.json"
              ],
              "agent_commit_share": 0.35,
              "toolchain_manifests": [],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "examples/catalog/tsconfig.json, examples/react-router/active-project-manifest/app-shared/tsconfig.json, examples/react-router/active-project-manifest/modules/integrations/tsconfig.json, examples/react-router/active-project-manifest/shell/tsconfig.json, examples/react-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/react-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/react-router/customer-onboarding-journey/shell/tsconfig.json, examples/react-router/editor-composition/app-shared/tsconfig.json, examples/react-router/editor-composition/compositions/editor/tsconfig.json, examples/react-router/editor-composition/modules/contentful/tsconfig.json, examples/react-router/editor-composition/modules/editor/tsconfig.json, examples/react-router/editor-composition/modules/strapi/tsconfig.json, examples/react-router/editor-composition/shell/tsconfig.json, examples/react-router/inspector-panels/app-shared/tsconfig.json, examples/react-router/inspector-panels/modules/acme-extras/tsconfig.json, examples/react-router/inspector-panels/modules/inspector-core/tsconfig.json, examples/react-router/inspector-panels/shell/tsconfig.json, examples/react-router/integration-manager/app-shared/tsconfig.json, examples/react-router/integration-manager/modules/contentful/tsconfig.json, examples/react-router/integration-manager/modules/github/tsconfig.json, examples/react-router/integration-manager/modules/strapi/tsconfig.json, examples/react-router/integration-manager/shell/tsconfig.json, examples/react-router/integration-setup-journey/app-shared/tsconfig.json, examples/react-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/react-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/react-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/react-router/integration-setup-journey/modules/github/tsconfig.json, examples/react-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/react-router/integration-setup-journey/modules/notion/tsconfig.json, examples/react-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/react-router/integration-setup-journey/shell/tsconfig.json, examples/react-router/journey-invoke/app-shared/tsconfig.json, examples/react-router/journey-invoke/journeys/checkout/tsconfig.json, examples/react-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/react-router/journey-invoke/modules/age-verify/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/react-router/journey-invoke/shell/tsconfig.json, examples/react-router/overlay-result-windows/app-shared/tsconfig.json, examples/react-router/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/react-router/overlay-result-windows/modules/run-core/tsconfig.json, examples/react-router/overlay-result-windows/shell/tsconfig.json, examples/react-router/remote-capabilities/app-shared/tsconfig.json, examples/react-router/remote-capabilities/modules/integrations/tsconfig.json, examples/react-router/remote-capabilities/shell/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/shell/tsconfig.json, examples/tanstack-router/editor-composition/app-shared/tsconfig.json, examples/tanstack-router/editor-composition/compositions/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/contentful/tsconfig.json, examples/tanstack-router/editor-composition/modules/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/strapi/tsconfig.json, examples/tanstack-router/editor-composition/shell/tsconfig.json, examples/tanstack-router/integration-manager/app-shared/tsconfig.json, examples/tanstack-router/integration-manager/modules/contentful/tsconfig.json, examples/tanstack-router/integration-manager/modules/github/tsconfig.json, examples/tanstack-router/integration-manager/modules/strapi/tsconfig.json, examples/tanstack-router/integration-manager/shell/tsconfig.json, examples/tanstack-router/integration-setup-journey/app-shared/tsconfig.json, examples/tanstack-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/github/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/notion/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/tanstack-router/integration-setup-journey/shell/tsconfig.json, examples/tanstack-router/journey-invoke/app-shared/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/checkout/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/tanstack-router/journey-invoke/modules/age-verify/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/tanstack-router/journey-invoke/shell/tsconfig.json, examples/tanstack-router/remote-capabilities/app-shared/tsconfig.json, examples/tanstack-router/remote-capabilities/journeys/integration-setup/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/generic-integration/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/hubspot/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/integration-catalog/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/salesforce/tsconfig.json, examples/tanstack-router/remote-capabilities/shell/tsconfig.json, examples/vue/customer-onboarding-journey/app-shared/tsconfig.json, examples/vue/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/vue/customer-onboarding-journey/modules/billing/tsconfig.json, examples/vue/customer-onboarding-journey/modules/plan/tsconfig.json, examples/vue/customer-onboarding-journey/modules/profile/tsconfig.json, examples/vue/customer-onboarding-journey/shell/tsconfig.json, examples/vue/editor-composition/app-shared/tsconfig.json, examples/vue/editor-composition/compositions/editor/tsconfig.json, examples/vue/editor-composition/modules/contentful/tsconfig.json, examples/vue/editor-composition/modules/editor/tsconfig.json, examples/vue/editor-composition/modules/strapi/tsconfig.json, examples/vue/editor-composition/shell/tsconfig.json, examples/vue/integration-manager/app-shared/tsconfig.json, examples/vue/integration-manager/modules/contentful/tsconfig.json, examples/vue/integration-manager/modules/github/tsconfig.json, examples/vue/integration-manager/modules/strapi/tsconfig.json, examples/vue/integration-manager/shell/tsconfig.json, examples/vue/nuxt-modal-journey/app-shared/tsconfig.json, examples/vue/nuxt-modal-journey/journeys/setup-wizard/tsconfig.json, examples/vue/nuxt-modal-journey/modules/wizard/tsconfig.json, examples/vue/nuxt-modal-journey/shell/tsconfig.json, examples/vue/overlay-result-windows/app-shared/tsconfig.json, examples/vue/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/vue/overlay-result-windows/modules/run-core/tsconfig.json, examples/vue/overlay-result-windows/shell/tsconfig.json, packages/angular-router-core/tsconfig.json, packages/angular/tsconfig.json, packages/catalog/spa-src/tsconfig.json, packages/catalog/tsconfig.json, packages/cli-core/tsconfig.json, packages/compositions-engine/tsconfig.json, packages/compositions/tsconfig.json, packages/core/tsconfig.json, packages/frontend-core/tsconfig.json, packages/frontend-testing/tsconfig.json, packages/journeys-engine/tsconfig.json, packages/journeys/tsconfig.json, packages/react-router-cli/tsconfig.json, packages/react-router-core/tsconfig.json, packages/react-router-runtime/tsconfig.json, packages/react-router-testing/tsconfig.json, packages/react/tsconfig.json, packages/tanstack-router-cli/tsconfig.json, packages/tanstack-router-core/tsconfig.json, packages/tanstack-router-runtime/tsconfig.json, packages/tanstack-router-testing/tsconfig.json, packages/testing/tsconfig.json, packages/vue-cli/tsconfig.json, packages/vue-compositions/tsconfig.json, packages/vue-core/tsconfig.json, packages/vue-journeys/tsconfig.json, packages/vue-nuxt/tsconfig.json, packages/vue-runtime/tsconfig.json, packages/vue-testing/tsconfig.json, packages/vue/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples/catalog/tsconfig.json, examples/react-router/active-project-manifest/app-shared/tsconfig.json, examples/react-router/active-project-manifest/modules/integrations/tsconfig.json, examples/react-router/active-project-manifest/shell/tsconfig.json, examples/react-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/react-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/react-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/react-router/customer-onboarding-journey/shell/tsconfig.json, examples/react-router/editor-composition/app-shared/tsconfig.json, examples/react-router/editor-composition/compositions/editor/tsconfig.json, examples/react-router/editor-composition/modules/contentful/tsconfig.json, examples/react-router/editor-composition/modules/editor/tsconfig.json, examples/react-router/editor-composition/modules/strapi/tsconfig.json, examples/react-router/editor-composition/shell/tsconfig.json, examples/react-router/inspector-panels/app-shared/tsconfig.json, examples/react-router/inspector-panels/modules/acme-extras/tsconfig.json, examples/react-router/inspector-panels/modules/inspector-core/tsconfig.json, examples/react-router/inspector-panels/shell/tsconfig.json, examples/react-router/integration-manager/app-shared/tsconfig.json, examples/react-router/integration-manager/modules/contentful/tsconfig.json, examples/react-router/integration-manager/modules/github/tsconfig.json, examples/react-router/integration-manager/modules/strapi/tsconfig.json, examples/react-router/integration-manager/shell/tsconfig.json, examples/react-router/integration-setup-journey/app-shared/tsconfig.json, examples/react-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/react-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/react-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/react-router/integration-setup-journey/modules/github/tsconfig.json, examples/react-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/react-router/integration-setup-journey/modules/notion/tsconfig.json, examples/react-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/react-router/integration-setup-journey/shell/tsconfig.json, examples/react-router/journey-invoke/app-shared/tsconfig.json, examples/react-router/journey-invoke/journeys/checkout/tsconfig.json, examples/react-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/react-router/journey-invoke/modules/age-verify/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/react-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/react-router/journey-invoke/shell/tsconfig.json, examples/react-router/overlay-result-windows/app-shared/tsconfig.json, examples/react-router/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/react-router/overlay-result-windows/modules/run-core/tsconfig.json, examples/react-router/overlay-result-windows/shell/tsconfig.json, examples/react-router/remote-capabilities/app-shared/tsconfig.json, examples/react-router/remote-capabilities/modules/integrations/tsconfig.json, examples/react-router/remote-capabilities/shell/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/app-shared/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/billing/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/plan/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/modules/profile/tsconfig.json, examples/tanstack-router/customer-onboarding-journey/shell/tsconfig.json, examples/tanstack-router/editor-composition/app-shared/tsconfig.json, examples/tanstack-router/editor-composition/compositions/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/contentful/tsconfig.json, examples/tanstack-router/editor-composition/modules/editor/tsconfig.json, examples/tanstack-router/editor-composition/modules/strapi/tsconfig.json, examples/tanstack-router/editor-composition/shell/tsconfig.json, examples/tanstack-router/integration-manager/app-shared/tsconfig.json, examples/tanstack-router/integration-manager/modules/contentful/tsconfig.json, examples/tanstack-router/integration-manager/modules/github/tsconfig.json, examples/tanstack-router/integration-manager/modules/strapi/tsconfig.json, examples/tanstack-router/integration-manager/shell/tsconfig.json, examples/tanstack-router/integration-setup-journey/app-shared/tsconfig.json, examples/tanstack-router/integration-setup-journey/journeys/integration-setup/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/contentful/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/generic-integration/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/github/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/integration-picker/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/notion/tsconfig.json, examples/tanstack-router/integration-setup-journey/modules/strapi/tsconfig.json, examples/tanstack-router/integration-setup-journey/shell/tsconfig.json, examples/tanstack-router/journey-invoke/app-shared/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/checkout/tsconfig.json, examples/tanstack-router/journey-invoke/journeys/verify-identity/tsconfig.json, examples/tanstack-router/journey-invoke/modules/age-verify/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-confirm/tsconfig.json, examples/tanstack-router/journey-invoke/modules/checkout-review/tsconfig.json, examples/tanstack-router/journey-invoke/shell/tsconfig.json, examples/tanstack-router/remote-capabilities/app-shared/tsconfig.json, examples/tanstack-router/remote-capabilities/journeys/integration-setup/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/generic-integration/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/hubspot/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/integration-catalog/tsconfig.json, examples/tanstack-router/remote-capabilities/modules/salesforce/tsconfig.json, examples/tanstack-router/remote-capabilities/shell/tsconfig.json, examples/vue/customer-onboarding-journey/app-shared/tsconfig.json, examples/vue/customer-onboarding-journey/journeys/customer-onboarding/tsconfig.json, examples/vue/customer-onboarding-journey/modules/billing/tsconfig.json, examples/vue/customer-onboarding-journey/modules/plan/tsconfig.json, examples/vue/customer-onboarding-journey/modules/profile/tsconfig.json, examples/vue/customer-onboarding-journey/shell/tsconfig.json, examples/vue/editor-composition/app-shared/tsconfig.json, examples/vue/editor-composition/compositions/editor/tsconfig.json, examples/vue/editor-composition/modules/contentful/tsconfig.json, examples/vue/editor-composition/modules/editor/tsconfig.json, examples/vue/editor-composition/modules/strapi/tsconfig.json, examples/vue/editor-composition/shell/tsconfig.json, examples/vue/integration-manager/app-shared/tsconfig.json, examples/vue/integration-manager/modules/contentful/tsconfig.json, examples/vue/integration-manager/modules/github/tsconfig.json, examples/vue/integration-manager/modules/strapi/tsconfig.json, examples/vue/integration-manager/shell/tsconfig.json, examples/vue/nuxt-modal-journey/app-shared/tsconfig.json, examples/vue/nuxt-modal-journey/journeys/setup-wizard/tsconfig.json, examples/vue/nuxt-modal-journey/modules/wizard/tsconfig.json, examples/vue/nuxt-modal-journey/shell/tsconfig.json, examples/vue/overlay-result-windows/app-shared/tsconfig.json, examples/vue/overlay-result-windows/modules/acme-extras/tsconfig.json, examples/vue/overlay-result-windows/modules/run-core/tsconfig.json, examples/vue/overlay-result-windows/shell/tsconfig.json, packages/angular-router-core/tsconfig.json, packages/angular/tsconfig.json, packages/catalog/spa-src/tsconfig.json, packages/catalog/tsconfig.json, packages/cli-core/tsconfig.json, packages/compositions-engine/tsconfig.json, packages/compositions/tsconfig.json, packages/core/tsconfig.json, packages/frontend-core/tsconfig.json, packages/frontend-testing/tsconfig.json, packages/journeys-engine/tsconfig.json, packages/journeys/tsconfig.json, packages/react-router-cli/tsconfig.json, packages/react-router-core/tsconfig.json, packages/react-router-runtime/tsconfig.json, packages/react-router-testing/tsconfig.json, packages/react/tsconfig.json, packages/tanstack-router-cli/tsconfig.json, packages/tanstack-router-core/tsconfig.json, packages/tanstack-router-runtime/tsconfig.json, packages/tanstack-router-testing/tsconfig.json, packages/testing/tsconfig.json, packages/vue-cli/tsconfig.json, packages/vue-compositions/tsconfig.json, packages/vue-core/tsconfig.json, packages/vue-journeys/tsconfig.json, packages/vue-nuxt/tsconfig.json, packages/vue-runtime/tsconfig.json, packages/vue-testing/tsconfig.json, packages/vue/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "35 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 35,
                      "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": "all dependencies are pinned",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 125845,
              "source_files_sampled": 908,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/908 source files over 60KB",
                "points": 54.9,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 908,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "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",
    "Could not fetch npm package '@modular-react/compositions' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T10:03:38.482060Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/k/kibertoad/modular-react.svg",
  "full_name": "kibertoad/modular-react",
  "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 Statistikennpm.