Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-25 05:18 UTC

rajatim / zhtw

Taiwan Traditional Chinese quality tool for AI-generated content (CLI + 6-language SDK, 31K terms / 100M-char zero-mistranslation validation)

PythonMIT★ 12 Sterne⑂ 0 Forksseit Dez. 2025Auf GitHub ansehen ↗

rajatim/zhtw erreicht einen Gesundheitsindex von 62 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (89/100) ab, am schwächsten bei Sustainability & Governance (43/100). Zuletzt heute aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

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

62
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

rajatimPersönliches Konto
0 Follower9 öffentliche Reposseit Nov. 2013

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öffentlichtTags
PyPIzhtw4.4.253635vor 6 Tagenai-toolschineseconverteri18nl10nlocalizationnlpsimplifiedtaiwantext-processingtraditionalvibe-coding

Metriken nach Kategorie

Vitalität

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

81Gut · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 0 Tagen
11.1/36Commit-Rhythmus — 16/52 Wochen mit Commits
18/18Commit-Volumen — 446 Commits im letzten Jahr
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
Verwendete Eingangsdaten
commits_last_year446
human_commit_share1
days_since_last_push0
active_weeks_last_year16
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 38 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 6 Tagen
27/27Release-Rhythmus — ein Release etwa alle 10,9 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count38
latest_release_tagsdk/go/v4.4.2
releases_from_tagsnein
days_since_latest_release6
mean_days_between_releases10,9

Community & Verbreitung

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

43Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
16.9/60Stars — 12 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars12
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)
18/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingja
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein
Wie die Bewertung erfolgt
36.4/80Downloads pro Monat — 536 Downloads/Monat über pypi
0/20Abhängige in der Registry — von diesem Ökosystem nicht ausgewiesen
Verwendete Eingangsdaten
packageszhtw
dependents
ecosystemspypi
total_downloads
monthly_downloads536
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?

43Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
35.1/46.8Issue-Lösungsquote — 75 % der Issues geschlossen
8.5/38.3PR-Annahme — 2/9 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs2
open_issues9
closed_issues27
issue_closed_ratio0,75
closed_unmerged_prs7
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
0/25Reichweite des Inhabers — 0 Follower von rajatim
19.3/25Kontohistorie — 9 öffentliche Repos, Kontoalter ca. 12 Jahre
Verwendete Eingangsdaten
followers0
owner_typeUser
is_verified
owner_loginrajatim
public_repos9
account_age_days4.631
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 — 1 Paket(e) auf pypi
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 6 Tagen
20/20Versionshistorie — 35 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packageszhtw
ecosystemspypi
any_deprecatednein
min_days_since_publish6

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

89Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 10 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration
9.6/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_configja
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.

Dokumentation

85Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
10/10Repository-Beschreibung
10/10Topics — 11 Topics
10/10Wiki
Verwendete Eingangsdaten
topicschinese, cli, i18n, linter, localization, pre-commit, python, simplified-chinese, taiwan, text-processing, traditional-chinese
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

Sicherheitslage

39Gefährdet
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
2.2/7.5Branch-Protection — branch protection is not maximal on development and all release branches
0/2.5CI-Tests — keine Daten
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5Lizenz — license file detected
7.5/7.5Maintained — 30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — no SAST tool detected
5/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 42 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,9
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
35/35Direkte Abhängigkeiten ohne bekannte Advisories — keine direkte Abhängigkeit trägt ein bekanntes Advisory
25/25Indirekte Abhängigkeiten ohne bekannte Advisories — keine indirekte Abhängigkeit trägt ein bekanntes Advisory
0/40Keine offenen Advisories — kein Advisory trägt ein Veröffentlichungsdatum
Verwendete Eingangsdaten
sourceosv
advisories0
affected_packages0
assessed_packages3
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Keine offenen Advisories. Die verbleibenden Gewichte wurden renormalisiert. Abgeglichen wurde die Laufzeit-Abhängigkeitshülle von pypi:zhtw@4.4.2 — das, was die Installation des veröffentlichten Pakets nach sich zieht — mit 3 Paketen. Erreichbarkeit wird nicht analysiert.

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.

83Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — AGENTS.md, CLAUDE.md, GEMINI.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 93 von 100 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share0,93
agent_instruction_filesAGENTS.md, CLAUDE.md, GEMINI.md
agent_instruction_max_bytes5.430
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — Makefile
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration
11/11Statische Typprüfung — sdk/typescript/tsconfig.json, src/zhtw/py.typed
10/10Reproduzierbare Umgebung — Dockerfile, lockfile
10/10Belegte Agentenpraxis — 42 der letzten 100 Commits von Agenten verfasst oder ihnen zugeschrieben
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml, uv.lock
has_dockerfileja
typed_languagenein
bootstrap_filesMakefile
has_devcontainernein
has_linter_configja
typecheck_configssdk/typescript/tsconfig.json, src/zhtw/py.typed
agent_commit_share0,42
toolchain_manifestsbenchmarks/bench_csharp.csproj, sdk/dotnet/Zhtw.csproj, sdk/dotnet/tests/Zhtw.Tests/Zhtw.Tests.csproj, sdk/go/go.mod, sdk/java/pom.xml, sdk/rust/Cargo.toml, sdk/rust/zhtw-wasm/Cargo.toml, sdk/rust/zhtw/Cargo.toml
dependency_bot_commit_share0
Wie die Bewertung erfolgt
27/45Typprüfbarer Code — Python mit Typprüfungs-Konfiguration (sdk/typescript/tsconfig.json, src/zhtw/py.typed)
54.7/55Handhabbare Dateigrößen — 1/182 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languagePython
largest_source_bytes420.150
source_files_sampled182
oversized_source_files1

Eckdaten

12GitHub-Sterne
1Mitwirkende
446Commits, letzte 12 Monate
0Tage seit letztem Push
38Releases
1Bus-Faktor
9offene Issues
NuGet, PyPIPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token

Weitere Details

OpenSSF Scorecard 3.9 / 10
3.9Gesamtwert

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 05:17 UTC

10Binary-Artifactsno binaries found in the repo
3Branch-Protectionbranch protection is not maximal on development and all release branches
k. A.CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTno SAST tool detected
10Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities42 existing vulnerabilities detected
Direkte Abhängigkeiten 3
RegistryPaketVersionsvorgabeManifest
PyPIclick>=8.0pyproject.toml
PyPIpyahocorasick>=2.0pyproject.toml
PyPIcharset-normalizer>=3.0pyproject.toml
Alle Abhängigkeiten 347

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

RegistryPaketVersionBeziehung
PyPIcharset-normalizer3.4.7direkt
PyPIclick8.3.2direkt
PyPIpyahocorasick2.3.0direkt
crates.ioaho-corasick1.1.4indirekt
crates.ioanes0.1.6indirekt
crates.ioanstyle1.0.14indirekt
crates.ioarrayref0.3.9indirekt
crates.ioarrayvec0.7.6indirekt
crates.ioasync-trait0.1.89indirekt
crates.ioautocfg1.5.0indirekt
crates.ioblake31.5.5indirekt
crates.iobumpalo3.20.2indirekt
crates.iocast0.3.0indirekt
crates.iocc1.2.60indirekt
crates.iocfg-if1.0.4indirekt
crates.iociborium0.2.2indirekt
crates.iociborium-io0.2.2indirekt
crates.iociborium-ll0.2.2indirekt
crates.ioclap4.5.39indirekt
crates.ioclap_builder4.5.39indirekt
crates.ioclap_lex0.7.7indirekt
crates.ioconstant_time_eq0.3.1indirekt
crates.iocriterion0.5.1indirekt
crates.iocriterion-plot0.5.0indirekt
crates.iocrossbeam-deque0.8.6indirekt
crates.iocrossbeam-epoch0.9.18indirekt
crates.iocrossbeam-utils0.8.21indirekt
crates.iocrunchy0.2.4indirekt
crates.iodaachorse1.0.0indirekt
crates.ioeither1.15.0indirekt
crates.iofastrand2.4.1indirekt
crates.iofind-msvc-tools0.1.9indirekt
crates.iofutures-core0.3.32indirekt
crates.iofutures-task0.3.32indirekt
crates.iofutures-util0.3.32indirekt
crates.iohalf2.4.1indirekt
crates.iohermit-abi0.5.2indirekt
crates.iois-terminal0.4.17indirekt
crates.ioitertools0.10.5indirekt
crates.ioitoa1.0.18indirekt
crates.iojs-sys0.3.95indirekt
crates.iolibc0.2.185indirekt
crates.iolibm0.2.16indirekt
crates.iomemchr2.8.0indirekt
crates.iominicov0.3.8indirekt
crates.ionu-ansi-term0.50.3indirekt
crates.ionum-traits0.2.19indirekt
crates.ioonce_cell1.21.4indirekt
crates.iooorandom11.1.5indirekt
crates.iophf0.13.1indirekt
crates.iophf_codegenindirekt
crates.iophf_codegen0.13.1indirekt
crates.iophf_generator0.13.1indirekt
crates.iophf_macros0.13.1indirekt
crates.iophf_shared0.13.1indirekt
crates.iopin-project-lite0.2.17indirekt
crates.ioplotters0.3.7indirekt
crates.ioplotters-backend0.3.7indirekt
crates.ioplotters-svg0.3.7indirekt
crates.ioproc-macro21.0.106indirekt
crates.ioquote1.0.45indirekt
crates.iorayon1.12.0indirekt
crates.iorayon-core1.13.0indirekt
crates.ioregex1.12.3indirekt
crates.ioregex-automata0.4.14indirekt
crates.ioregex-syntax0.8.10indirekt
crates.iorustversion1.0.22indirekt
crates.iosame-file1.0.6indirekt
crates.ioserde1.0.228indirekt
crates.ioserde-wasm-bindgen0.6.5indirekt
crates.ioserde_core1.0.228indirekt
crates.ioserde_derive1.0.228indirekt
crates.ioserde_json1.0.149indirekt
crates.ioshlex1.3.0indirekt
crates.iosiphasher1.0.2indirekt
crates.ioslab0.4.12indirekt
crates.iosyn2.0.117indirekt
crates.iothiserror2.0.18indirekt
crates.iothiserror-impl2.0.18indirekt
crates.iotinytemplate1.2.1indirekt
crates.iounicode-ident1.0.24indirekt
crates.iowalkdir2.5.0indirekt
crates.iowasm-bindgen0.2.118indirekt
crates.iowasm-bindgen-futures0.4.68indirekt
crates.iowasm-bindgen-macro0.2.118indirekt
crates.iowasm-bindgen-macro-support0.2.118indirekt
crates.iowasm-bindgen-shared0.2.118indirekt
crates.iowasm-bindgen-testindirekt
crates.iowasm-bindgen-test0.3.68indirekt
crates.iowasm-bindgen-test-macro0.3.68indirekt
crates.iowasm-bindgen-test-shared0.2.118indirekt
crates.ioweb-sys0.3.95indirekt
crates.iowinapi-util0.1.11indirekt
crates.iowindows-link0.2.1indirekt
crates.iowindows-sys0.61.2indirekt
crates.iozmij1.0.21indirekt
Mavencom.google.code.gson:gson2.11.0indirekt
Mavenorg.ahocorasick:ahocorasick0.6.3indirekt
Mavenorg.apache.maven.plugins:maven-compiler-plugin3.13.0indirekt
Mavenorg.apache.maven.plugins:maven-gpg-plugin3.2.7indirekt
Mavenorg.apache.maven.plugins:maven-javadoc-plugin3.11.2indirekt
Mavenorg.apache.maven.plugins:maven-resources-plugin3.3.1indirekt
Mavenorg.apache.maven.plugins:maven-shade-plugin3.6.0indirekt
Mavenorg.apache.maven.plugins:maven-source-plugin3.3.1indirekt
Mavenorg.apache.maven.plugins:maven-surefire-plugin3.5.2indirekt
Mavenorg.junit.jupiter:junit-jupiter5.11.4indirekt
Mavenorg.openjdk.jmh:jmh-core1.37indirekt
Mavenorg.openjdk.jmh:jmh-generator-annprocess1.37indirekt
Mavenorg.sonatype.central:central-publishing-maven-plugin0.11.0indirekt
npm@emnapi/core1.10.0indirekt
npm@emnapi/runtime1.10.0indirekt
npm@emnapi/wasi-threads1.2.1indirekt
npm@esbuild/aix-ppc640.28.1indirekt
npm@esbuild/android-arm0.28.1indirekt
npm@esbuild/android-arm640.28.1indirekt
npm@esbuild/android-x640.28.1indirekt
npm@esbuild/darwin-arm640.28.1indirekt
npm@esbuild/darwin-x640.28.1indirekt
npm@esbuild/freebsd-arm640.28.1indirekt
npm@esbuild/freebsd-x640.28.1indirekt
npm@esbuild/linux-arm0.28.1indirekt
npm@esbuild/linux-arm640.28.1indirekt
npm@esbuild/linux-ia320.28.1indirekt
npm@esbuild/linux-loong640.28.1indirekt
npm@esbuild/linux-mips64el0.28.1indirekt
npm@esbuild/linux-ppc640.28.1indirekt
npm@esbuild/linux-riscv640.28.1indirekt
npm@esbuild/linux-s390x0.28.1indirekt
npm@esbuild/linux-x640.28.1indirekt
npm@esbuild/netbsd-arm640.28.1indirekt
npm@esbuild/netbsd-x640.28.1indirekt
npm@esbuild/openbsd-arm640.28.1indirekt
npm@esbuild/openbsd-x640.28.1indirekt
npm@esbuild/openharmony-arm640.28.1indirekt
npm@esbuild/sunos-x640.28.1indirekt
npm@esbuild/win32-arm640.28.1indirekt
npm@esbuild/win32-ia320.28.1indirekt
npm@esbuild/win32-x640.28.1indirekt
npm@jridgewell/gen-mapping0.3.13indirekt
npm@jridgewell/resolve-uri3.1.2indirekt
npm@jridgewell/sourcemap-codec1.5.5indirekt
npm@jridgewell/trace-mapping0.3.31indirekt
npm@napi-rs/wasm-runtime1.1.6indirekt
npm@oxc-project/types0.133.0indirekt
npm@rolldown/binding-android-arm641.0.3indirekt
npm@rolldown/binding-darwin-arm641.0.3indirekt
npm@rolldown/binding-darwin-x641.0.3indirekt
npm@rolldown/binding-freebsd-x641.0.3indirekt
npm@rolldown/binding-linux-arm-gnueabihf1.0.3indirekt
npm@rolldown/binding-linux-arm64-gnu1.0.3indirekt
npm@rolldown/binding-linux-arm64-musl1.0.3indirekt
npm@rolldown/binding-linux-ppc64-gnu1.0.3indirekt
npm@rolldown/binding-linux-s390x-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-gnu1.0.3indirekt
npm@rolldown/binding-linux-x64-musl1.0.3indirekt
npm@rolldown/binding-openharmony-arm641.0.3indirekt
npm@rolldown/binding-wasm32-wasi1.0.3indirekt
npm@rolldown/binding-win32-arm64-msvc1.0.3indirekt
npm@rolldown/binding-win32-x64-msvc1.0.3indirekt
npm@rolldown/pluginutils1.0.1indirekt
npm@rollup/rollup-android-arm-eabi4.62.2indirekt
npm@rollup/rollup-android-arm644.62.2indirekt
npm@rollup/rollup-darwin-arm644.62.2indirekt
npm@rollup/rollup-darwin-x644.62.2indirekt
npm@rollup/rollup-freebsd-arm644.62.2indirekt
npm@rollup/rollup-freebsd-x644.62.2indirekt
npm@rollup/rollup-linux-arm-gnueabihf4.62.2indirekt
npm@rollup/rollup-linux-arm-musleabihf4.62.2indirekt
npm@rollup/rollup-linux-arm64-gnu4.62.2indirekt
npm@rollup/rollup-linux-arm64-musl4.62.2indirekt
npm@rollup/rollup-linux-loong64-gnu4.62.2indirekt
npm@rollup/rollup-linux-loong64-musl4.62.2indirekt
npm@rollup/rollup-linux-ppc64-gnu4.62.2indirekt
npm@rollup/rollup-linux-ppc64-musl4.62.2indirekt
npm@rollup/rollup-linux-riscv64-gnu4.62.2indirekt
npm@rollup/rollup-linux-riscv64-musl4.62.2indirekt
npm@rollup/rollup-linux-s390x-gnu4.62.2indirekt
npm@rollup/rollup-linux-x64-gnu4.62.2indirekt
npm@rollup/rollup-linux-x64-musl4.62.2indirekt
npm@rollup/rollup-openbsd-x644.62.2indirekt
npm@rollup/rollup-openharmony-arm644.62.2indirekt
npm@rollup/rollup-win32-arm64-msvc4.62.2indirekt
npm@rollup/rollup-win32-ia32-msvc4.62.2indirekt
npm@rollup/rollup-win32-x64-gnu4.62.2indirekt
npm@rollup/rollup-win32-x64-msvc4.62.2indirekt
npm@standard-schema/spec1.1.0indirekt
npm@tybys/wasm-util0.10.3indirekt
npm@types/chai5.2.3indirekt
npm@types/deep-eql4.0.2indirekt
npm@types/estree1.0.9indirekt
npm@types/node20.19.39indirekt
npm@types/whatwg-mimetype3.0.2indirekt
npm@types/ws8.18.1indirekt
npm@vitest/expect4.1.9indirekt
npm@vitest/mocker4.1.9indirekt
npm@vitest/pretty-format4.1.9indirekt
npm@vitest/runner4.1.9indirekt
npm@vitest/snapshot4.1.9indirekt
npm@vitest/spy4.1.9indirekt
npm@vitest/utils4.1.9indirekt
npmacorn8.17.0indirekt
npmany-promise1.3.0indirekt
npmassertion-error2.0.1indirekt
npmbuffer-image-size0.6.4indirekt
npmbundle-require5.1.0indirekt
npmcac6.7.14indirekt
npmchai6.2.2indirekt
npmchokidar4.0.3indirekt
npmcommander4.1.1indirekt
npmconfbox0.1.8indirekt
npmconsola3.4.2indirekt
npmconvert-source-map2.0.0indirekt
npmdebug4.4.3indirekt
npmdetect-libc2.1.2indirekt
npmentities7.0.1indirekt
npmes-module-lexer2.1.0indirekt
npmesbuild0.28.1indirekt
npmestree-walker3.0.3indirekt
npmexpect-type1.4.0indirekt
npmfdir6.5.0indirekt
npmfix-dts-default-cjs-exports1.0.1indirekt
npmfsevents2.3.3indirekt
npmhappy-dom20.10.6indirekt
npmjoycon3.1.1indirekt
npmlightningcss1.32.0indirekt
npmlightningcss-android-arm641.32.0indirekt
npmlightningcss-darwin-arm641.32.0indirekt
npmlightningcss-darwin-x641.32.0indirekt
npmlightningcss-freebsd-x641.32.0indirekt
npmlightningcss-linux-arm-gnueabihf1.32.0indirekt
npmlightningcss-linux-arm64-gnu1.32.0indirekt
npmlightningcss-linux-arm64-musl1.32.0indirekt
npmlightningcss-linux-x64-gnu1.32.0indirekt
npmlightningcss-linux-x64-musl1.32.0indirekt
npmlightningcss-win32-arm64-msvc1.32.0indirekt
npmlightningcss-win32-x64-msvc1.32.0indirekt
npmlilconfig3.1.3indirekt
npmlines-and-columns1.2.4indirekt
npmload-tsconfig0.2.5indirekt
npmmagic-string0.30.21indirekt
npmmlly1.8.2indirekt
npmms2.1.3indirekt
npmmz2.7.0indirekt
npmnanoid3.3.15indirekt
npmobject-assign4.1.1indirekt
npmobug2.1.3indirekt
npmopencc-js1.4.1indirekt
npmpathe2.0.3indirekt
npmpicocolors1.1.1indirekt
npmpicomatch4.0.4indirekt
npmpirates4.0.7indirekt
npmpkg-types1.3.1indirekt
npmpostcss8.5.15indirekt
npmpostcss-load-config6.0.1indirekt
npmreaddirp4.1.2indirekt
npmresolve-from5.0.0indirekt
npmrolldown1.0.3indirekt
npmrollup4.62.2indirekt
npmsiginfo2.0.0indirekt
npmsource-map0.7.6indirekt
npmsource-map-js1.2.1indirekt
npmstackback0.0.2indirekt
npmstd-env4.1.0indirekt
npmsucrase3.35.1indirekt
npmthenify3.3.1indirekt
npmthenify-all1.6.0indirekt
npmtinybench2.9.0indirekt
npmtinyexec0.3.2indirekt
npmtinyexec1.2.4indirekt
npmtinyglobby0.2.17indirekt
npmtinyrainbow3.1.0indirekt
npmtree-kill1.2.2indirekt
npmts-interface-checker0.1.13indirekt
npmtslib2.8.1indirekt
npmtsup8.5.1indirekt
npmtsx4.22.4indirekt
npmtypescript5.9.3indirekt
npmufo1.6.4indirekt
npmundici-types6.21.0indirekt
npmvite8.0.16indirekt
npmvitest4.1.9indirekt
npmwhatwg-mimetype3.0.0indirekt
npmwhy-is-node-running2.3.0indirekt
npmws8.21.0indirekt
NuGetMicrosoft.NET.Test.Sdk17.11.1indirekt
NuGetSystem.Text.Json8.0.5indirekt
NuGetxunit2.9.2indirekt
NuGetxunit.runner.visualstudio2.8.2indirekt
PyPIannotated-types0.7.0indirekt
PyPIattrs26.1.0indirekt
PyPIcertifi2026.2.25indirekt
PyPIcffi2.0.0indirekt
PyPIcfgv3.5.0indirekt
PyPIcolorama0.4.6indirekt
PyPIcoverage7.13.5indirekt
PyPIcryptography49.0.0indirekt
PyPIdistlib0.4.0indirekt
PyPIexceptiongroup1.3.1indirekt
PyPIfilelock3.25.2indirekt
PyPIgoogle-ai-generativelanguage0.6.15indirekt
PyPIgoogle-api-core2.25.2indirekt
PyPIgoogle-api-core2.30.2indirekt
PyPIgoogle-api-python-client2.194.0indirekt
PyPIgoogle-auth2.49.1indirekt
PyPIgoogle-auth-httplib20.3.1indirekt
PyPIgoogle-generativeai0.8.6indirekt
PyPIgoogleapis-common-protos1.74.0indirekt
PyPIgrpcio1.80.0indirekt
PyPIgrpcio-status1.71.2indirekt
PyPIhttplib20.31.2indirekt
PyPIidentify2.6.18indirekt
PyPIidna3.18indirekt
PyPIiniconfig2.3.0indirekt
PyPIjsonschema4.26.0indirekt
PyPIjsonschema-specifications2025.9.1indirekt
PyPInodeenv1.10.0indirekt
PyPIpackaging26.0indirekt
PyPIplatformdirs4.9.6indirekt
PyPIpluggy1.6.0indirekt
PyPIpre-commit4.5.1indirekt
PyPIproto-plus1.27.2indirekt
PyPIprotobuf5.29.6indirekt
PyPIpyasn10.6.3indirekt
PyPIpyasn1-modules0.4.2indirekt
PyPIpycparser3.0indirekt
PyPIpydantic2.12.5indirekt
PyPIpydantic-core2.41.5indirekt
PyPIpygments2.20.0indirekt
PyPIpyparsing3.3.2indirekt
PyPIpypdf5.9.0indirekt
PyPIpytest9.0.3indirekt
PyPIpytest-cov7.1.0indirekt
PyPIpython-discovery1.2.2indirekt
PyPIpyyaml6.0.3indirekt
PyPIreferencing0.37.0indirekt
PyPIrequests2.33.1indirekt
PyPIrpds-py0.30.0indirekt
PyPIrpds-py2026.6.3indirekt
PyPIruff0.15.9indirekt
PyPItomli2.4.1indirekt
PyPItqdm4.67.3indirekt
PyPItyping-extensions4.15.0indirekt
PyPItyping-inspection0.4.2indirekt
PyPIuritemplate4.2.0indirekt
PyPIurllib32.7.0indirekt
PyPIvirtualenv21.2.0indirekt
PyPIzhtw4.4.2indirekt
Abhängigkeits-Advisories 0

Die Installation von pypi:zhtw@4.4.2 zieht 3 Pakete nach sich, direkt und transitiv: 0 tragen bekannte Advisories, davon 0 direkte Abhängigkeiten.

Keine bekannten Advisories betreffen die bewerteten Abhängigkeiten.

Ein Advisory bedeutet, dass die im Abhängigkeitsgraphen erfasste Version in den betroffenen Bereich eines Advisories fällt. Erreichbarkeit wird nicht analysiert, und der Graph enthält Entwicklungs- und Test-Pins — ein Fund kann das Werkzeug betreffen und nicht die ausgelieferte Software.

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "chinese",
        "cli",
        "i18n",
        "linter",
        "localization",
        "pre-commit",
        "python",
        "simplified-chinese",
        "taiwan",
        "text-processing",
        "traditional-chinese"
      ],
      "is_fork": false,
      "size_kb": 10285,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "C#": 44033,
        "Go": 50996,
        "Java": 64339,
        "Rust": 64583,
        "Shell": 23472,
        "Python": 1552490,
        "Makefile": 56802,
        "Dockerfile": 903,
        "JavaScript": 2827,
        "TypeScript": 54271
      },
      "pushed_at": "2026-07-25T02:11:59Z",
      "created_at": "2025-12-25T23:49:33Z",
      "owner_type": "User",
      "updated_at": "2026-07-25T02:12:03Z",
      "description": "Taiwan Traditional Chinese quality tool for AI-generated content (CLI + 6-language SDK, 31K terms / 100M-char zero-mistranslation validation)",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Python",
      "significant_languages": [
        "Python"
      ]
    },
    "owner": {
      "blog": "https://rajatim.blog",
      "name": "rajatim",
      "type": "User",
      "login": "rajatim",
      "company": null,
      "location": "Taipei, Taiwan",
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/5975535?v=4",
      "created_at": "2013-11-19T02:34:10Z",
      "is_verified": null,
      "public_repos": 9,
      "account_age_days": 4631
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "sdk/go/v4.4.2",
          "kind": "other",
          "published_at": "2026-07-18T22:40:23Z"
        },
        {
          "tag": "v4.4.2",
          "kind": "patch",
          "published_at": "2026-07-18T22:37:20Z"
        },
        {
          "tag": "sdk/go/v4.4.1",
          "kind": "other",
          "published_at": "2026-06-30T03:51:50Z"
        },
        {
          "tag": "v4.4.1",
          "kind": "patch",
          "published_at": "2026-06-30T03:48:40Z"
        },
        {
          "tag": "sdk/go/v4.4.0",
          "kind": "other",
          "published_at": "2026-06-11T00:37:03Z"
        },
        {
          "tag": "v4.4.0",
          "kind": "minor",
          "published_at": "2026-06-11T00:33:37Z"
        },
        {
          "tag": "sdk/go/v4.3.0",
          "kind": "other",
          "published_at": "2026-04-11T16:52:51Z"
        },
        {
          "tag": "v4.3.0",
          "kind": "minor",
          "published_at": "2026-04-11T15:55:11Z"
        },
        {
          "tag": "v4.2.1",
          "kind": "patch",
          "published_at": "2026-04-11T14:03:14Z"
        },
        {
          "tag": "sdk/go/v4.2.1",
          "kind": "other",
          "published_at": "2026-04-11T14:02:49Z"
        },
        {
          "tag": "v4.2.0",
          "kind": "minor",
          "published_at": "2026-04-11T10:41:00Z"
        },
        {
          "tag": "v4.1.0",
          "kind": "minor",
          "published_at": "2026-04-11T06:03:23Z"
        },
        {
          "tag": "v4.0.1",
          "kind": "patch",
          "published_at": "2026-04-09T23:32:26Z"
        },
        {
          "tag": "v4.0.0",
          "kind": "major",
          "published_at": "2026-04-09T11:59:02Z"
        },
        {
          "tag": "v3.4.0",
          "kind": "minor",
          "published_at": "2026-04-09T07:34:43Z"
        },
        {
          "tag": "v3.3.0",
          "kind": "minor",
          "published_at": "2026-04-08T08:34:58Z"
        },
        {
          "tag": "v3.2.1",
          "kind": "patch",
          "published_at": "2026-03-22T14:58:07Z"
        },
        {
          "tag": "v3.2.0",
          "kind": "minor",
          "published_at": "2026-03-22T14:49:46Z"
        },
        {
          "tag": "v3.1.0",
          "kind": "minor",
          "published_at": "2026-03-22T13:00:02Z"
        },
        {
          "tag": "v3.0.0",
          "kind": "major",
          "published_at": "2026-03-22T12:14:39Z"
        },
        {
          "tag": "v2.8.7",
          "kind": "patch",
          "published_at": "2026-01-18T06:16:23Z"
        },
        {
          "tag": "v2.8.6",
          "kind": "patch",
          "published_at": "2026-01-13T04:23:12Z"
        },
        {
          "tag": "v2.8.5",
          "kind": "patch",
          "published_at": "2026-01-04T22:19:21Z"
        },
        {
          "tag": "v2.8.4",
          "kind": "patch",
          "published_at": "2026-01-04T14:39:42Z"
        },
        {
          "tag": "v2.8.1",
          "kind": "patch",
          "published_at": "2026-01-04T12:15:04Z"
        },
        {
          "tag": "v2.8.0",
          "kind": "minor",
          "published_at": "2026-01-04T06:20:49Z"
        },
        {
          "tag": "v2.7.0",
          "kind": "minor",
          "published_at": "2026-01-03T02:21:03Z"
        },
        {
          "tag": "v2.6.0",
          "kind": "minor",
          "published_at": "2026-01-02T19:19:05Z"
        },
        {
          "tag": "v2.5.0",
          "kind": "minor",
          "published_at": "2025-12-29T15:57:14Z"
        },
        {
          "tag": "v2.4.3",
          "kind": "patch",
          "published_at": "2025-12-27T04:46:41Z"
        },
        {
          "tag": "v2.4.2",
          "kind": "patch",
          "published_at": "2025-12-27T02:23:10Z"
        },
        {
          "tag": "v2.4.1",
          "kind": "patch",
          "published_at": "2025-12-27T02:17:35Z"
        },
        {
          "tag": "v2.4.0",
          "kind": "minor",
          "published_at": "2025-12-26T05:05:30Z"
        },
        {
          "tag": "v2.3.0",
          "kind": "minor",
          "published_at": "2025-12-26T04:41:22Z"
        },
        {
          "tag": "v2.2.0",
          "kind": "minor",
          "published_at": "2025-12-26T03:30:43Z"
        },
        {
          "tag": "v2.1.0",
          "kind": "minor",
          "published_at": "2025-12-26T03:08:21Z"
        },
        {
          "tag": "v2.0.0",
          "kind": "major",
          "published_at": "2025-12-26T02:25:09Z"
        },
        {
          "tag": "v1.5.0",
          "kind": "minor",
          "published_at": "2025-12-26T00:34:10Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "b4989f5cfd29725d9d806a01dadae3a8cb14ba1a",
          "body": null,
          "is_bot": false,
          "headline": "feat: 核准 CISA 個人安全語料批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-25T02:11:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4cf667259ce3857337c0e0eb7ad6ab624a37057",
          "body": null,
          "is_bot": false,
          "headline": "docs: 釐清 CISA 語料抽取品質",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T15:06:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a0b52e52acd5b9d48a494fba8efb15a84ff8840",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 CISA 個人安全語料批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T12:51:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea957ba7fd8c51b32648c56c36a9db916dc15d92",
          "body": null,
          "is_bot": false,
          "headline": "feat: approve CISA cyber hygiene batch",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T06:37:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2100c9741a706c4d7a558c6df335e4c294f3bcc",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 CISA 資安語料批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T03:12:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22384b6cfed55db856ffc3427955676384da5136",
          "body": null,
          "is_bot": false,
          "headline": "feat: 核准正式文本實體護衛批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T02:14:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7adb2c5281cd7380eb9ddd5729acc8c7e7867a52",
          "body": null,
          "is_bot": false,
          "headline": "fix: 保守修正批次十五分類",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T01:42:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6849e4e3c26687fb73596fd82036fb7506891359",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立正式文本實體護衛批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T01:37:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4f83117ece03bbc41bbceb68fe54fc86be9284cc",
          "body": null,
          "is_bot": false,
          "headline": "feat: 核准 AOSP Blind-v2 候選批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-24T01:19:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "674aeea34a2d7a5f85c96780c0ba4fee75426443",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 AOSP Blind-v2 候選批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T19:45:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec9395583aa06e2088caa0967a0ca5ffc73a5371",
          "body": null,
          "is_bot": false,
          "headline": "feat: 核准 Blind-v2 語義保留批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T19:31:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96046a1b04168c454e359efbd3b1ac744d2d6429",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 Blind-v2 語義保留候選批次",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T19:12:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4761ed612bf5aa235f84e810188cbd916ceb125c",
          "body": null,
          "is_bot": false,
          "headline": "docs: 公開 Blind-v2 真實語料徵集入口",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T18:44:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2251f39d8f1087e3f56bd690c694dc8c3186acfb",
          "body": null,
          "is_bot": false,
          "headline": "feat: 擴充 Blind-v2 候選語料至 981 筆",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T18:39:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "db7db447d134f0b5e9ed877aced8e9931eb290ce",
          "body": null,
          "is_bot": false,
          "headline": "feat: 擴充 Blind-v2 OSHA 公有領域語料",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T16:52:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9287a02508c4ab6c06d270c419dbfc8ada6ec5d9",
          "body": null,
          "is_bot": false,
          "headline": "feat: 擴充 Blind-v2 Ready.gov 公有領域語料",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T12:24:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b56f6348493439c14082620fe43f03b2658d570",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 permissioned issue 匯入流程",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T07:55:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fd8a53c500b1fbf36d8e0df335cd5e6b2e73246",
          "body": null,
          "is_bot": false,
          "headline": "feat: 擴充 Blind-v2 候選來源與收集管線",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-23T07:33:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f238db8b793ebe69166ee55f5f3f367ed8bd625f",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 Blind-v2 來源分類首批複核",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T16:29:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19b2d2deea9b0ff73049afc62e0d22066e9e1fa4",
          "body": null,
          "is_bot": false,
          "headline": "feat: 固定 Blind-v2 第一批候選來源",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T16:01:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "956edd7f7cfd7df6becc77b4bf341e31ebf1988b",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立 Blind-v2 評測治理骨架",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T15:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "011ed3f0bf9357758566a5b4552a4af5f65cd095",
          "body": null,
          "is_bot": false,
          "headline": "鎖定 benchmark 競品執行環境",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T15:05:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "026b72fb419b3e7a151bf427d359d9c2e2170e3e",
          "body": null,
          "is_bot": false,
          "headline": "記錄國教院 benchmark 評測結果",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T14:16:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2f5ebba97b218f6f07dc71b030e40ae15f426ca6",
          "body": null,
          "is_bot": false,
          "headline": "建立國教院術語 benchmark",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T14:15:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9fa15fe45b93cc82857d041dea9b73eb3b314f7a",
          "body": null,
          "is_bot": false,
          "headline": "記錄 UD benchmark 評測結果",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T13:37:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6a302f578b2f318c4a7f9597cf871b5812a5b984",
          "body": null,
          "is_bot": false,
          "headline": "建立 UD 外部句級 benchmark",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T13:37:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "390615f6a0f51fc76c170750559afe48a8295ad0",
          "body": null,
          "is_bot": false,
          "headline": "建立 benchmark 統計與治理基礎",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T13:09:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd1d9756cf2389c20d954d3fb9c53c5143704432",
          "body": null,
          "is_bot": false,
          "headline": "修正 benchmark 報告防洩漏機制",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T10:32:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "995f54afe09bcf26be6b6aa69dd111eb89afbc31",
          "body": null,
          "is_bot": false,
          "headline": "docs: 完善 benchmark v2 執行規格",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T10:13:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0644f9d36cb623f2cf9d3fec15e271b98b54e1df",
          "body": null,
          "is_bot": false,
          "headline": "docs: 建立外部 benchmark 與 blind-v2 計畫",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-19T09:57:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "71089fb9ab685073a9ac976cb84b477eb71e9c41",
          "body": null,
          "is_bot": false,
          "headline": "fix: 強化發布流程的失敗關閉閘門",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T23:33:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "03a699e78f8a49645922dfe46564ac6cf7587c0c",
          "body": null,
          "is_bot": false,
          "headline": "test: 公開環境略過私人 holdout 斷言",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T22:47:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "27c5ae8be000fc3b9ae81c2d8130b04b59929b5c",
          "body": null,
          "is_bot": false,
          "headline": "fix: 統一發布驗證的 Python 環境",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T22:42:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "499b4dc1781e194c5556b4a52ed50a038a802acb",
          "body": null,
          "is_bot": false,
          "headline": "fix: 移除 Go 比對器未使用方法",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T22:41:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc884923c63e442e32378ce931f1bee965f15379",
          "body": null,
          "is_bot": false,
          "headline": "fix: 補齊發布驗證的 uv 環境",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T22:39:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e353b88a7224f70d6a4e8a8406bcf58150233b4b",
          "body": null,
          "is_bot": false,
          "headline": "chore: release v4.4.2",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T22:37:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d3740538fd6695ea58fccbbb9f9e8d008e0e457",
          "body": null,
          "is_bot": false,
          "headline": "feat: 提升準確度並強化多語言架構",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-18T22:30:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f67244158ee7b417013123b486089073d02fd099",
          "body": null,
          "is_bot": false,
          "headline": "feat: 建立精準度驗證與回歸流程",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-07-16T06:05:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "96acdc9e01cc55203da552e173f4e4640e26ad77",
          "body": "Sonatype Central API 新增 warnings 欄位,0.7.0 嚴格解析丟\nUnrecognizedPropertyException,讓 Java 發布流程誤報 BUILD FAILURE\n(v4.4.1 artifact 實際已成功發布到 Maven Central)。升級到最新\nstable 修正,並增強對未來 API 變動的容忍度。下次釋出生效。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): 升級 central-publishing-maven-plugin 0.7.0→0.11.0",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-30T20:31:31Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "33ead4a82d7b2ee728cd1b6d5f6b1c6cdf6aaff4",
          "body": null,
          "is_bot": false,
          "headline": "chore: release v4.4.1",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-30T03:48:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "156a6a3ae03553d6002cf699eabc483c10e8741c",
          "body": "docs/plans/ 先前未排除,計畫內的簡→繁範例會被自身 hook 轉換\n(line 13 變成「軟體→軟體」無意義)。改寫該行並排除整個目錄。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: 修正計畫被 hook 轉換的範例並把 docs/plans/ 納入 .zhtwignore",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-28T20:50:52Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "338127ed47c9e2def1290f2b65d42d9b7c6cef55",
          "body": "Phase 0 spike 證明價值在「抽樣→盲標→人工裁決」的人工流程,\n而非自動分桶 harness。據此:\n- 新增 scripts/spike_sample.py(抽 Book 句供盲標)\n- 新增 scripts/spike_eval.py(比對 convert vs 盲標,report-only,不自動分桶)\n- 計畫加 v2 修訂:Task 1–6 重型 harness 標為 SUPERSEDED,改用輕量流程\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: 加入輕量 spike 工具並修訂精準度計畫為 v2",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-28T20:48:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d344352488cf88bb984f6d328be6ce20c1d1dff9",
          "body": "held-out 真實書籍語料盲測(30 句,非 corpus 自我循環)發現並修復:\n- 临时 過度轉換:暫時→臨時(暫時 zànshí ≠ 臨時 línshí;連帶 临时工/演员/服务)\n- 卧 殘留簡體字:補進安全字元層(卧室→臥室),Unihan 未收,加\n  generate_charmap.py MANUAL_ADDITIONS 防 regenerate 遺失\n- 超声波→超音波 漏在地化補詞(醫療術語)\n- .zhtwignore 補 src/zhtw/data/charmap/(key 為簡體,避免被自身 hook 轉換)\n\ngolden battery 247→255 句;validate / 冪等 / 2269 pytest 全綠。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: 修復 Phase 0 spike 發現的 3 個精準度問題",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-28T20:43:48Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "03346d4351aea5149f64951995b0feaf1ed69d76",
          "body": null,
          "is_bot": false,
          "headline": "test: 擴充 corpus baseline 到 500 筆",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T09:31:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d096afbf98769236e95c928a3f609056506441d1",
          "body": null,
          "is_bot": false,
          "headline": "test: 補強精準度語料與報告",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T08:56:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f59c336ff3a8828ab02c64dcafd38f9d37d29b44",
          "body": null,
          "is_bot": false,
          "headline": "fix: 補周到保護下的週期詞轉換",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T08:32:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ea565a2fd6949b1d4d50df70d9d964937a03852",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修復已知精準度落差",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T08:12:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d3029fe2c5244f6c26d12155051d4d9fb7091488",
          "body": null,
          "is_bot": false,
          "headline": "fix: 補高信心精準度回歸",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T07:50:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b371a8b671b76e274dcc85058083c4007d9baf9f",
          "body": null,
          "is_bot": false,
          "headline": "chore: 修補依賴安全漏洞",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T07:16:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fe217cfdee7d8f82eeff34b46c8a2fdd0dc633a6",
          "body": null,
          "is_bot": false,
          "headline": "fix: 補 corpus 暴露的高信心詞條",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-27T06:53:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ab32b589f37384e0b01651ded9b8300db95c875a",
          "body": null,
          "is_bot": false,
          "headline": "docs: 定義精準度標準",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T23:05:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7dfca396a278d769aeab8fad03cd8926dc786432",
          "body": null,
          "is_bot": false,
          "headline": "ci: 執行精選 corpus 語料測試",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T06:44:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3abf4cf9af3656708ff6c91cac1d5dbbd51082c",
          "body": null,
          "is_bot": false,
          "headline": "test: 整合精選 corpus 語料測試",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T05:54:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e6d895cfbbcf8b857f528ec07bb5a80b08c22cdc",
          "body": null,
          "is_bot": false,
          "headline": "fix: 補高信心 OpenCC 詞條覆蓋",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T05:47:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3cfd8ac42be6eae8039b373ef739d7e361dcdad8",
          "body": null,
          "is_bot": false,
          "headline": "test: 加入詞庫 target 冪等性稽核",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T01:34:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d5127106678253ee1b22af7b646053b566584341",
          "body": null,
          "is_bot": false,
          "headline": "fix: 讓 validate 通過並補冪等保護詞",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T01:16:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5e21f50ac48dacdc14db8a246acd6bf210f8917",
          "body": null,
          "is_bot": false,
          "headline": "feat: 補高信心 IT 詞庫與精準度回歸測試",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-26T01:07:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9177a33b68a8dcd54d6dd6eeb94043ef8d296880",
          "body": null,
          "is_bot": false,
          "headline": "chore: release v4.4.0",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-11T00:33:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7cc28b9154017eb2ec8d3e6141842bdef6f77158",
          "body": "重掃時新偵測到的警報(sdk/typescript/pnpm-lock.yaml)。\nvitest 98 項測試通過。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(security): 升級 postcss 8.5.9→8.5.15(Dependabot medium,TS 開發依賴)",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-11T00:29:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c70a6724f61995ad97cad9fdfaee7010eeb7cc59",
          "body": null,
          "is_bot": false,
          "headline": "docs: releasing.md 閘門清單補列 Dependabot 檢查",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-11T00:23:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0aeb83588b4e70b0b8ea1db9a1accf0b10179c75",
          "body": "- uv.lock:urllib3 2.6.3→2.7.0(2 個 high:跨來源 header 轉送、\n  解壓縮炸彈防護繞過)、idna 3.11→3.18(medium:CVE-2024-3651 補丁繞過)\n- scripts/release.sh 新增安全閘門:開放中的 medium+ Dependabot 警報\n  會擋下釋出(ALLOW_VULNS=1 可逃生),列出警報明細\n- RELEASE-CHECKLIST / releasing.md 同步更新閘門清單\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(security): 修復 3 個 Dependabot 弱點並列入釋出閘門",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-11T00:23:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4084652155372ca90c586f7d9083c1bf2ad33907",
          "body": "Review 發現:make release 已存在但有 6 個靠記憶的缺口\n(git add -A 掃髒檔、無 CHANGELOG 閘門、無 Java 本地驗證、\n無分支/同步檢查、RELEASE-CHECKLIST.md 被引用卻不存在、\n發布後驗證與 Homebrew 全手動)。\n\n- scripts/release.sh:7 步閘門式釋出(main/乾淨樹/同步/tag 不存在/\n  CHANGELOG 非空自動升級/pytest+mvn verify/y-N 確認),\n  DRY_RUN 預演模式;notes 取自 CHANGELOG 區塊\n- scripts/release-ver\n[…]\n的核對清單\n  (只剩人工判斷項),AGENTS.md / releasing.md 引用路徑同步修正\n- releasing.md:方法 A 改為 make release(修文件漂移),\n  發布後驗證一鍵化說明\n- CHANGELOG:補記本輪所有變更至 [Unreleased]\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(release): 釋出流程腳本化 — 閘門、雙 tag、發布後驗證一鍵化",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-11T00:06:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "db30088be4ead4c577f650c40438e875c746b8f1",
          "body": "ZhtwConverterTest.convertAmbiguousChar 斷言 头发很干→頭髮很幹,\n這正是 2026-06 詞庫稽核修掉的錯轉(干 為 乾/幹/干 三向歧義字,\n依黃金規則不做無條件預設)。期望值更正為 頭髮很干(发→髮 仍由\n詞庫層轉換,裸 干 保留)。全 SDK 已掃描(含 unicode escape 解碼),\n此為唯一一處固化舊行為的硬寫斷言。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(sdk-java): 更新固化舊錯轉行為的測試斷言",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T23:55:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "39fa67fbb378d4bb39428dcf8b8a03b924da1c95",
          "body": "問題:opencc.json 混有 MediaWiki ZhConversion(GPL-2.0-or-later)\n匯入詞條,與本專案 MIT 授權的相容性存疑,且隨 6 個 SDK 內嵌發佈。\n\n做法(key 級出處比對,上游:STPhrases/TWPhrases/TWVariantsRevPhrases):\n- 28,101 → 26,729 條:剔除 1,372 條「僅存在於 MediaWiki」的詞條;\n  保留者皆可獨立溯源至 OpenCC Apache-2.0 上游\n- 缺口補齊(非複製 GPL 資料):\n  - chars.json +13 字形多變體單字(众→眾、伪→偽、启\n[…]\ncc.py 移除 zhconv 來源(防再生時混回)\n- THIRD_PARTY_NOTICES.md 更新:移除 MediaWiki 列、留歷史註記\n- sdk/data 重產並同步三份內嵌拷貝,Go SDK 測試通過\n\n926 項測試全綠(含 172 句黃金規則 battery)。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(license): 移除 MediaWiki GPL 詞條 — opencc.json 純 Apache-2.0 化",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T23:52:30Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fa4b818e075288b782af0aecf0a95f2000bb2a0c",
          "body": "問題:fix 路徑每次呼叫跑 3 次完整 Aho-Corasick 掃描\n(find_matches_with_lines 回報 + _apply_conversion_layers 內\nget_covered_positions/find_matches 各一次),check 路徑也有\n重複掃描;未覆蓋區段逐字 Python 迴圈處理。\n\n重構:\n- Matcher.scan():單次 automaton.iter 同時產出選定 matches +\n  covered positions;選擇邏輯抽成 _select() 與 find_matches 共用\n- convert_text:一次\n[…]\n→ 6.7ms(2.1x, 0.36→0.76M 字/秒)\n  fix balanced  14.5ms → 7.1ms(2.0x)\n  check strict   8.8ms → 6.5ms(1.4x)\n\n926 項測試全數通過(含 172 句黃金規則 battery),行為等價。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "perf(converter): 單次 automaton 掃描 + str.translate fast path(2.1x)",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T23:44:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "1a1b6cac02567eaa32688f9755a4b4db78d8e6b6",
          "body": "- sdk/data 重產(zhtw export):詞庫根因修復後同步資料檔與\n  golden-test.json 至三份內嵌拷貝(rust/go),Go SDK 測試驗證通過\n- 新增 THIRD_PARTY_NOTICES.md:明確標註 opencc.json 含\n  OpenCC(Apache-2.0)與 MediaWiki ZhConversion(GPL-2.0+)資料\n  及其與 MIT 主授權的關係\n- converter docstring 誠實化:模組與 convert_directory 宣稱的\n  \"parallel processing\" 從未實作,workers 改標示為保留參數\n- AGENTS.md 版本標頭 4.2.1→4.3.0,並把 AGENTS.md 納入\n  make bump 的 sed 清單(根因:不在清單內才會漂移)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: 收尾 — SDK 資料重產、第三方授權聲明、文件誠實化",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T16:35:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "67499b45ec2c1fdd428ba36c47763e7cc0de1a48",
          "body": "雙重根因(docs 反覆被 hook 腐化的元兇,前科 380e5d4):\n1. hook 直接 import 系統安裝的舊版 zhtw,用「已修正的舊詞條」\n   轉換 staged 檔案 — 本次它就用已刪除的 收藏→我的最愛、克→公克\n   腐化了新測試檔的 docstring\n2. hook 對 staged 檔逐一呼叫 convert_file(),完全繞過 .zhtwignore\n   (tests/ 在 ignore 清單裡卻照樣被轉)\n\n修正:PYTHONPATH 指向 repo src/(dogfood 當前版本)+\nload_zhtwignore/is_ignored_by_patterns 過濾 + inject_protect_terms。\n順手把新測試檔的 zhtw:disable 移到第 1 行(docstring 之前)做縱深防禦,\n並還原被腐化的 docstring。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(hooks): pre-commit zhtw 改用 repo 當前程式碼並尊重 .zhtwignore",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T16:26:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "ae7c1d5f68131feb97d6cd8028f0650ba0f5065b",
          "body": "`char_convert and sources and \"cn\" in sources` 在 sources=None\n(預設=全來源)時為 falsy,字元層靜默不生效,與 convert() 的\n`sources is None or \"cn\" in sources` 語義矛盾。CLI 不受影響\n(總是顯式傳 sources),但函式庫呼叫者用預設值會拿到不完整轉換。\n\n同步修正 effective_mode 的同型判斷,並新增兩個回歸測試。\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(converter): process_directory sources=None 時字元層被靜默關閉",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T16:24:21Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5b8dd3b3775baa1dac5caf07ea035f5b6905e9f0",
          "body": "172 句歧義語境稽核發現三類系統性錯轉(寧可少轉,不要錯轉):\n\n1. UI 在地化詞被當全域裸詞(收藏→我的最愛、返回→回傳、保存→儲存、\n   评论→留言、撤销→復原、刷新→重新整理、查看→檢視、战略→策略、\n   渠道→通路、质量→品質、支持→支援、对象→物件、配置→設定、\n   程序→程式、项目→專案、默认→預設、文件→檔案、详情页→商品頁…)\n   → 刪裸詞、補明確語境長詞(保存文件→儲存檔案、技术支持→技術支援、\n     项目经理→專案經理、默认值→預設值 等 80+ 條)\n   實證錯轉例:他收藏古董→他我的最愛古董、軍事戰略→軍事策略、\n   保存文化遺產→儲存文化遺產、\n[…]\n)、配置文件 組態檔→設定檔(現代用法)、\nhk/tech.json 同步刪 支持/程序 裸詞(司法程序同理)\n\n測試:新增 tests/test_golden_rule_battery.py(172 句固化回歸);\n更新 4 個舊測試中固化舊錯誤行為的斷言(恢复→還原 改 恢復 等)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(terms): 黃金規則根因修復 — 裸詞長詞化、歧義字防火牆補洞、匯入資料清洗",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T16:24:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a586604267942ad0f385bac8da78c9b7faf9c2ab",
          "body": "問題:load_directory() 按字母序 merge,opencc.json(28k 條機器匯入)\n字母序排最後,會無聲覆蓋手工詞庫的同 key 條目。今天 36 個重疊 key\n恰好同值,但任何手工修改都可能被吃掉(修 邻里 時實際踩到)。\n\n修正:\n- dictionary.py:新增 BULK_FILES + iter_directory_files(),\n  opencc.json 最先載入,手工檔按字母序後載 → key 碰撞手工必勝\n- cli.py validate:跨檔重複改為值感知 + bulk-aware\n  (手工蓋 bulk = by design 資訊;手工互相衝突 = ⚠️ 問題)\n  原本 96 個警報中 36 個是同值噪音,現歸零,訊號可行動\n- test_dictionary_quality:衝突測試同步 bulk-aware;\n  新增 INTENTIONAL_IDENTITY 白名單機制(識別故意的保護 identity)\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dictionary): 詞庫載入優先序明確化 — bulk 匯入先載、手工策展後載",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-10T16:23:40Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "380e5d41df12acfffa954f84b03b0b605b2f5489",
          "body": "The docs reorg commit (f23557f) re-staged docs that the zhtw pre-commit hook then auto-converted simp->trad — but these docs DOCUMENT conversions and use Simplified text as 'before' examples, so converting them destroyed the examples (e.g. STRATEGIES.md SQL 'CASE WHEN name=\"用户\" THEN \"使用者\"' became a \n[…]\nExtended .zhtwignore to also protect superpowers/specs/ + the audit/dictionary report docs (they contain conversion examples too).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(docs): restore conversion-example docs corrupted by simp->trad hook",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-03T09:17:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f23557f48ffde7a11bd6aa6b2fb7e0ae2879c4e3",
          "body": "docs/ had 6 flat files + 2 non-canonical subdirs (superpowers/, zhtw-db/). Reorganized per file-structure-standard: superpowers/+zhtw-db/ -> docs/features/; audit reports + DICTIONARY-COVERAGE -> docs/reports/; CI-CD-INTEGRATION -> docs/deployment/; CLI-ADVANCED + RELEASE-CHECKLIST -> docs/guides/. \n[…]\nzhtw pre-commit hook converted residual Simplified Chinese in the moved docs to Traditional (repo policy for the tool's own docs).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: organize docs/ into canonical topic taxonomy",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-06-03T07:47:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f4bd4e8b04921a77229d270a7c2f2389ca5db213",
          "body": "Framing line was missed in the original migration (Edit failed after git mv rename). Content unchanged — only inserted the source-of-truth note after the title.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs(agents): add AGENTS.md-first framing line",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-05-30T09:06:11Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6558e123dda5515b6d9f5e40f18623113eddba66",
          "body": "AGENTS.md is source of truth (Codex reads natively, no @import); CLAUDE.md/GEMINI.md are @AGENTS.md wrappers. Made the header tool-agnostic and removed a stray '(以下為完整內容)' marker line. 0 Claude-specific content. Content preserved (0 lines unaccounted). 125 lines — within budget, no slimming needed.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(agents): adopt AGENTS.md-first layout (mixed Codex/Gemini/Claude)",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-05-30T07:52:22Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7b1aa7c191b2bd2c0d3625b3771acf78866fba63",
          "body": "Update README hero (zh + en) to lead with AI output post-processing\nas the primary use case. Add explicit Use Cases section covering AI\ncontent QA, i18n localization, technical docs, and enterprise\ncompliance. Existing technical content (OpenCC comparison, validation\nrigor against 100M-char corpus, 6-language SDK distribution)\npreserved unchanged.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: reposition zhtw as AI-generated content quality tool",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-30T11:43:14Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "45708de1e4ec7cb955884483e971284dbdfac052",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: gitignore .claude/scheduled_tasks.lock (ScheduleWakeup runtime)",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-14T11:34:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "288c790d5fba018a7e3397241e2aecb2046118c9",
          "body": "…移除 atty)\n\n兩個 RUSTSEC alert 都在 sdk/rust/Cargo.lock 的 transitive dep:\n\n- #17 rand: phf_generator 0.11 帶進 rand 0.8.5;phf 0.13 改用 fastrand\n- #16 atty: criterion 0.4 帶進 atty 0.2.14(unmaintained,無 patched 版本);\n  criterion 0.5 換成 is-terminal\n\nbuild.rs 改寫:phf_codegen 0.13 把 entry value 從「copy 值」改成「borrow &\n[…]\nlap 鎖到符合 MSRV (rust-version=1.80) 的版本(避免\n2.5+/4.6+ 強制要 Rust 1.81/1.85),對外不變動 MSRV 契約。\n\n測試:cargo test --all 29 passed;cargo bench --no-run 編譯通過。\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(rust): dependabot — phf 0.11→0.13 (移除 rand) + criterion 0.4→0.5 (…",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-14T11:25:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fe76a3a1545aa22e504ca47012f3190ccc4e8acd",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: add CLAUDE.local.md to .gitignore (batch optimization)",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T17:58:51Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "5605929916d8895d06fa4a6feeb013608a8fffd7",
          "body": "- 新增 docs/RELEASE-CHECKLIST.md — 完整逐項核對清單\n- make bump 新增:binary URL 版本更新、SDK README 版本同步、Cargo.lock 刷新\n- releasing.md / CLAUDE.md 引用核對清單\n- 常見踩坑記錄(Go subdirectory tag、binary URL、Cargo.lock)\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: 版本釋出核對清單 + make bump 自動化補強",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T17:34:56Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "4874a8d1b52f51e52434a0e220b94f21b4e152d1",
          "body": "- 補 4 個 SDK README:Java、Rust、Go、C# (.NET)(TypeScript/WASM 已有)\n- README/README.en 補 npm + crates.io badges\n- Standalone binary 下載連結 v4.2.0 → v4.3.0\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: 補 SDK README + badges + 版本修正",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T17:32:00Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "771531aa24bf0d6b2da0948c3d5838caa26978d7",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: Cargo.lock 升版 4.3.0 + gitignore 補 obj/bin/examples",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T17:23:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "21dffaf9690c547073dec879f71b30fa5462c814",
          "body": "- 新增 6 語言 benchmark(Python/Java/TypeScript/Go/Rust/C#)\n- README 加入效能基準表、C# SDK 安裝段落、NuGet badge\n- 修正 benchmark 檔案以對應各 SDK 實際 API\n- 「五種語言 SDK」→「六種語言 SDK」,C# 從 Planned → Stable\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: 跨 SDK 效能基準 + README 更新 C# SDK 為 Stable",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T16:27:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0a31b252ec907cd911c39d8d9c514b501e82ce3a",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore: bump all SDKs to 4.3.0 — C# SDK + Go CLI binary",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:52:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "47cdc78df1fbdeb55d938606669049ff5f533067",
          "body": "1. 拆 build 為兩步:先 dotnet build Zhtw.csproj(驗證雙 target),\n   再 build test project(--no-dependencies)\n2. dotnet test --no-build 避免重複編譯\n3. release 時 pack + push 到 NuGet.org\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(dotnet): netstandard2.0 build 驗證 + NuGet publish job",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:48:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "8894434d1ac64c531211fc60b017990813c64c47",
          "body": "C# 類別內 member name 優先於 type name,\nAmbiguityMode() 方法遮蔽 AmbiguityMode enum。\n用 global::Zhtw.AmbiguityMode 消歧義,公開 API 不變。\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): AmbiguityMode 方法名與 enum 同名衝突",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:39:05Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d247312d8e7b940aff7f96769d1ca0efab2e3c04",
          "body": "SDK-style projects auto-include all *.cs recursively.\nZhtw.csproj at sdk/dotnet/ was picking up tests/**/*.cs,\ncausing xunit reference errors on the library project.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): exclude tests/ from library compilation",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:37:27Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f1d84d86080c0904f583f705577c4a851fa625d0",
          "body": "multi-target netstandard2.0+net8.0, AC automaton, three-layer converter,\ngolden tests (19 convert + 19 check + 9 lookup), CI workflow\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(dotnet): C# (.NET) SDK — Convert/Check/Lookup API",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:36:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "bd1916c525fddf502e7295499702328966813123",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "ci(dotnet): workflow 自身編輯也觸發 CI",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:36:12Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "58bce39364dd8e446cb316b31d14fb59b7cf86a9",
          "body": "1. CI: dotnet build/test 改指 tests/Zhtw.Tests.csproj(原本指 library\n   目錄,0 測試也會綠燈)\n2. Zhtw.csproj: 加 InternalsVisibleTo(\"Zhtw.Tests\") 讓測試組件存取\n   internal AC 型別\n3. BasicMatch: \"she\"@1-4 在 leftmost-longest greedy 下會擋住\n   \"hers\"@2-6,修正為 Assert.Single\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): CI 指向測試專案 + InternalsVisibleTo + BasicMatch 修正",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:29:17Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "c0e36e42bf239ef98e225a92ade8a6e03ece824a",
          "body": "StringInfo.LengthInTextElements 回傳 grapheme cluster 數,\n含組合字元時會少算 codepoint。改用 CodepointLength() 一致。\n同時修正 ArgumentException paramName 為公開方法參數名。\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): CodepointHelper 用 codepoint 計數取代 grapheme cluster",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:20:03Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "0aa01ff4d9221ae2c3b16d2315057390a858fad2",
          "body": "bin/Release/net8.0 → Zhtw.Tests → tests → dotnet → sdk (6 ..)\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(dotnet): golden test path — 6 levels up from bin/ to sdk/",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:14:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b000a03691bc41e3b1173862fea21c65f5a9b270",
          "body": null,
          "is_bot": false,
          "headline": "test(dotnet): golden tests — convert/check/lookup parity with all SDKs",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:09:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66aab72d0c46889524aa65342869977fd81a8287",
          "body": null,
          "is_bot": false,
          "headline": "ci(dotnet): real build + test workflow",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:09:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "65ec2d97ceb794ac15a218e97b25e73c79e55720",
          "body": "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(dotnet): ConverterBuilder + ZhtwConvert static API",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:08:44Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "e6085995c8534be83a5a28fdfc5f93b7a5b2c5b0",
          "body": "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(dotnet): Converter — three-layer Convert/Check/Lookup",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:07:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7cbde4e1b95420c3f27b9618749c75e0eece3ff4",
          "body": null,
          "is_bot": false,
          "headline": "feat(dotnet): Aho-Corasick automaton + 6 unit tests",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:05:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bf733bccdc349ef77d2b64f95c6d4e1de83c4384",
          "body": "Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(dotnet): CodepointHelper + ZhtwData — embedded JSON loader",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:03:54Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "f32e61ce9ef827dd36f71fc678e2097fdafabce2",
          "body": "….0+net8.0\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(dotnet): project scaffolding + Types — multi-target netstandard2…",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T15:02:43Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "1f52a727e53765296f46771215f4e1f2ba9edb83",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: C# (.NET) SDK 實作計畫 — 7 tasks, TDD, multi-target",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T14:47:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "33f0f7d985b54fe06bdc8faab1d63507b459d88f",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: C# SDK spec 修正簡體範例被 hook 轉繁 + zhtw:disable",
          "author_name": "rajatim",
          "author_login": "rajatim",
          "committed_at": "2026-04-11T14:41:06Z",
          "body_truncated": false,
          "is_coding_agent": true
        }
      ],
      "releases_count": 38,
      "commits_last_year": 446,
      "latest_release_at": "2026-07-18T22:40:23Z",
      "latest_release_tag": "sdk/go/v4.4.2",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 16,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 10.9
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 71,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "zhtw",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "ai-tools",
            "chinese",
            "converter",
            "i18n",
            "l10n",
            "localization",
            "nlp",
            "simplified",
            "taiwan",
            "text-processing",
            "traditional",
            "vibe-coding",
            "Development Status :: 5 - Production/Stable",
            "Environment :: Console",
            "Intended Audience :: Developers",
            "License :: OSI Approved :: MIT License",
            "Natural Language :: Chinese (Simplified)",
            "Natural Language :: Chinese (Traditional)",
            "Operating System :: OS Independent",
            "Programming Language :: Python :: 3",
            "Programming Language :: Python :: 3.10",
            "Programming Language :: Python :: 3.11",
            "Programming Language :: Python :: 3.12",
            "Programming Language :: Python :: 3.13",
            "Topic :: Software Development :: Internationalization",
            "Topic :: Software Development :: Localization",
            "Topic :: Text Processing :: Linguistic"
          ],
          "ecosystem": "pypi",
          "matches_repo": true,
          "registry_url": "https://pypi.org/project/zhtw/",
          "is_deprecated": false,
          "latest_version": "4.4.2",
          "repository_url": "https://github.com/rajatim/zhtw",
          "versions_count": 35,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 536,
          "first_published_at": "2025-12-26T00:47:28.746152Z",
          "latest_published_at": "2026-07-18T22:52:32.751174Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 12,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": null,
      "open_issues_and_prs": 11
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "sdk/typescript/tsconfig.json",
        "src/zhtw/py.typed"
      ],
      "toolchain_manifests": [
        "benchmarks/bench_csharp.csproj",
        "sdk/dotnet/Zhtw.csproj",
        "sdk/dotnet/tests/Zhtw.Tests/Zhtw.Tests.csproj",
        "sdk/go/go.mod",
        "sdk/java/pom.xml",
        "sdk/rust/Cargo.toml",
        "sdk/rust/zhtw-wasm/Cargo.toml",
        "sdk/rust/zhtw/Cargo.toml"
      ],
      "largest_source_bytes": 420150,
      "source_files_sampled": 182,
      "oversized_source_files": 1,
      "agent_instruction_files": [
        "AGENTS.md",
        "CLAUDE.md",
        "GEMINI.md"
      ],
      "agent_instruction_max_bytes": 5430
    },
    "dependencies": {
      "manifests": [
        "benchmarks/bench_csharp.csproj",
        "pyproject.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 3,
        "malicious_count": 0,
        "assessed_package": "pypi:zhtw@4.4.2",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "nuget",
        "pypi"
      ],
      "dependencies": [
        {
          "name": "click",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=8.0"
        },
        {
          "name": "pyahocorasick",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=2.0"
        },
        {
          "name": "charset-normalizer",
          "manifest": "pyproject.toml",
          "ecosystem": "pypi",
          "version_constraint": ">=3.0"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "charset-normalizer",
            "direct": true,
            "version": "3.4.7",
            "ecosystem": "pypi"
          },
          {
            "name": "click",
            "direct": true,
            "version": "8.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyahocorasick",
            "direct": true,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "anes",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle",
            "direct": false,
            "version": "1.0.14",
            "ecosystem": "crates"
          },
          {
            "name": "arrayref",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "arrayvec",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "crates"
          },
          {
            "name": "async-trait",
            "direct": false,
            "version": "0.1.89",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "blake3",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "crates"
          },
          {
            "name": "bumpalo",
            "direct": false,
            "version": "3.20.2",
            "ecosystem": "crates"
          },
          {
            "name": "cast",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.2.60",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium-io",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ciborium-ll",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "clap",
            "direct": false,
            "version": "4.5.39",
            "ecosystem": "crates"
          },
          {
            "name": "clap_builder",
            "direct": false,
            "version": "4.5.39",
            "ecosystem": "crates"
          },
          {
            "name": "clap_lex",
            "direct": false,
            "version": "0.7.7",
            "ecosystem": "crates"
          },
          {
            "name": "constant_time_eq",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "criterion",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "criterion-plot",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-deque",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "ecosystem": "crates"
          },
          {
            "name": "crossbeam-utils",
            "direct": false,
            "version": "0.8.21",
            "ecosystem": "crates"
          },
          {
            "name": "crunchy",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "daachorse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.15.0",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "find-msvc-tools",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "futures-core",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-task",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "futures-util",
            "direct": false,
            "version": "0.3.32",
            "ecosystem": "crates"
          },
          {
            "name": "half",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "hermit-abi",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "is-terminal",
            "direct": false,
            "version": "0.4.17",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": false,
            "version": "0.10.5",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "js-sys",
            "direct": false,
            "version": "0.3.95",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.185",
            "ecosystem": "crates"
          },
          {
            "name": "libm",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "minicov",
            "direct": false,
            "version": "0.3.8",
            "ecosystem": "crates"
          },
          {
            "name": "nu-ansi-term",
            "direct": false,
            "version": "0.50.3",
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": false,
            "version": "0.2.19",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "oorandom",
            "direct": false,
            "version": "11.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "phf",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_codegen",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "phf_codegen",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_generator",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_macros",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "phf_shared",
            "direct": false,
            "version": "0.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "pin-project-lite",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "plotters",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "plotters-backend",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "plotters-svg",
            "direct": false,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.45",
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "1.12.3",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.10",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "same-file",
            "direct": false,
            "version": "1.0.6",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde-wasm-bindgen",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "crates"
          },
          {
            "name": "serde_core",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_derive",
            "direct": false,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "serde_json",
            "direct": false,
            "version": "1.0.149",
            "ecosystem": "crates"
          },
          {
            "name": "shlex",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "siphasher",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "slab",
            "direct": false,
            "version": "0.4.12",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.117",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "tinytemplate",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "walkdir",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-futures",
            "direct": false,
            "version": "0.4.68",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-macro-support",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-shared",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-test",
            "direct": false,
            "version": null,
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-test",
            "direct": false,
            "version": "0.3.68",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-test-macro",
            "direct": false,
            "version": "0.3.68",
            "ecosystem": "crates"
          },
          {
            "name": "wasm-bindgen-test-shared",
            "direct": false,
            "version": "0.2.118",
            "ecosystem": "crates"
          },
          {
            "name": "web-sys",
            "direct": false,
            "version": "0.3.95",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-util",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "com.google.code.gson:gson",
            "direct": false,
            "version": "2.11.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.ahocorasick:ahocorasick",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-compiler-plugin",
            "direct": false,
            "version": "3.13.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-gpg-plugin",
            "direct": false,
            "version": "3.2.7",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-javadoc-plugin",
            "direct": false,
            "version": "3.11.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-resources-plugin",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-shade-plugin",
            "direct": false,
            "version": "3.6.0",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-source-plugin",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "maven"
          },
          {
            "name": "org.apache.maven.plugins:maven-surefire-plugin",
            "direct": false,
            "version": "3.5.2",
            "ecosystem": "maven"
          },
          {
            "name": "org.junit.jupiter:junit-jupiter",
            "direct": false,
            "version": "5.11.4",
            "ecosystem": "maven"
          },
          {
            "name": "org.openjdk.jmh:jmh-core",
            "direct": false,
            "version": "1.37",
            "ecosystem": "maven"
          },
          {
            "name": "org.openjdk.jmh:jmh-generator-annprocess",
            "direct": false,
            "version": "1.37",
            "ecosystem": "maven"
          },
          {
            "name": "org.sonatype.central:central-publishing-maven-plugin",
            "direct": false,
            "version": "0.11.0",
            "ecosystem": "maven"
          },
          {
            "name": "@emnapi/core",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/runtime",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "npm"
          },
          {
            "name": "@emnapi/wasi-threads",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/aix-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/android-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/darwin-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/freebsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-loong64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-mips64el",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-ppc64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-riscv64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-s390x",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/linux-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/netbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openbsd-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/openharmony-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/sunos-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-arm64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-ia32",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@esbuild/win32-x64",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/gen-mapping",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/resolve-uri",
            "direct": false,
            "version": "3.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/sourcemap-codec",
            "direct": false,
            "version": "1.5.5",
            "ecosystem": "npm"
          },
          {
            "name": "@jridgewell/trace-mapping",
            "direct": false,
            "version": "0.3.31",
            "ecosystem": "npm"
          },
          {
            "name": "@napi-rs/wasm-runtime",
            "direct": false,
            "version": "1.1.6",
            "ecosystem": "npm"
          },
          {
            "name": "@oxc-project/types",
            "direct": false,
            "version": "0.133.0",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-android-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-darwin-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-freebsd-x64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-arm64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-ppc64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-s390x-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-gnu",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-linux-x64-musl",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-openharmony-arm64",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-wasm32-wasi",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-arm64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/binding-win32-x64-msvc",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "@rolldown/pluginutils",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm-eabi",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-android-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-darwin-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-freebsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-gnueabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm-musleabihf",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-arm64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-loong64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-ppc64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-riscv64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-s390x-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-linux-x64-musl",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openbsd-x64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-openharmony-arm64",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-arm64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-ia32-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-gnu",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@rollup/rollup-win32-x64-msvc",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "@standard-schema/spec",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "@tybys/wasm-util",
            "direct": false,
            "version": "0.10.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/chai",
            "direct": false,
            "version": "5.2.3",
            "ecosystem": "npm"
          },
          {
            "name": "@types/deep-eql",
            "direct": false,
            "version": "4.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/estree",
            "direct": false,
            "version": "1.0.9",
            "ecosystem": "npm"
          },
          {
            "name": "@types/node",
            "direct": false,
            "version": "20.19.39",
            "ecosystem": "npm"
          },
          {
            "name": "@types/whatwg-mimetype",
            "direct": false,
            "version": "3.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "@types/ws",
            "direct": false,
            "version": "8.18.1",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/expect",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/mocker",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/pretty-format",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/runner",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/snapshot",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/spy",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "@vitest/utils",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "acorn",
            "direct": false,
            "version": "8.17.0",
            "ecosystem": "npm"
          },
          {
            "name": "any-promise",
            "direct": false,
            "version": "1.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "assertion-error",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "buffer-image-size",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "bundle-require",
            "direct": false,
            "version": "5.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "cac",
            "direct": false,
            "version": "6.7.14",
            "ecosystem": "npm"
          },
          {
            "name": "chai",
            "direct": false,
            "version": "6.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "chokidar",
            "direct": false,
            "version": "4.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "commander",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "confbox",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "npm"
          },
          {
            "name": "consola",
            "direct": false,
            "version": "3.4.2",
            "ecosystem": "npm"
          },
          {
            "name": "convert-source-map",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "debug",
            "direct": false,
            "version": "4.4.3",
            "ecosystem": "npm"
          },
          {
            "name": "detect-libc",
            "direct": false,
            "version": "2.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "entities",
            "direct": false,
            "version": "7.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "es-module-lexer",
            "direct": false,
            "version": "2.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "esbuild",
            "direct": false,
            "version": "0.28.1",
            "ecosystem": "npm"
          },
          {
            "name": "estree-walker",
            "direct": false,
            "version": "3.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "expect-type",
            "direct": false,
            "version": "1.4.0",
            "ecosystem": "npm"
          },
          {
            "name": "fdir",
            "direct": false,
            "version": "6.5.0",
            "ecosystem": "npm"
          },
          {
            "name": "fix-dts-default-cjs-exports",
            "direct": false,
            "version": "1.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "fsevents",
            "direct": false,
            "version": "2.3.3",
            "ecosystem": "npm"
          },
          {
            "name": "happy-dom",
            "direct": false,
            "version": "20.10.6",
            "ecosystem": "npm"
          },
          {
            "name": "joycon",
            "direct": false,
            "version": "3.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-android-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-arm64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-darwin-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-freebsd-x64",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm-gnueabihf",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-arm64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-gnu",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-linux-x64-musl",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-arm64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lightningcss-win32-x64-msvc",
            "direct": false,
            "version": "1.32.0",
            "ecosystem": "npm"
          },
          {
            "name": "lilconfig",
            "direct": false,
            "version": "3.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "lines-and-columns",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "load-tsconfig",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "npm"
          },
          {
            "name": "magic-string",
            "direct": false,
            "version": "0.30.21",
            "ecosystem": "npm"
          },
          {
            "name": "mlly",
            "direct": false,
            "version": "1.8.2",
            "ecosystem": "npm"
          },
          {
            "name": "ms",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "mz",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "npm"
          },
          {
            "name": "nanoid",
            "direct": false,
            "version": "3.3.15",
            "ecosystem": "npm"
          },
          {
            "name": "object-assign",
            "direct": false,
            "version": "4.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "obug",
            "direct": false,
            "version": "2.1.3",
            "ecosystem": "npm"
          },
          {
            "name": "opencc-js",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "npm"
          },
          {
            "name": "pathe",
            "direct": false,
            "version": "2.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "picocolors",
            "direct": false,
            "version": "1.1.1",
            "ecosystem": "npm"
          },
          {
            "name": "picomatch",
            "direct": false,
            "version": "4.0.4",
            "ecosystem": "npm"
          },
          {
            "name": "pirates",
            "direct": false,
            "version": "4.0.7",
            "ecosystem": "npm"
          },
          {
            "name": "pkg-types",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "postcss",
            "direct": false,
            "version": "8.5.15",
            "ecosystem": "npm"
          },
          {
            "name": "postcss-load-config",
            "direct": false,
            "version": "6.0.1",
            "ecosystem": "npm"
          },
          {
            "name": "readdirp",
            "direct": false,
            "version": "4.1.2",
            "ecosystem": "npm"
          },
          {
            "name": "resolve-from",
            "direct": false,
            "version": "5.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "rolldown",
            "direct": false,
            "version": "1.0.3",
            "ecosystem": "npm"
          },
          {
            "name": "rollup",
            "direct": false,
            "version": "4.62.2",
            "ecosystem": "npm"
          },
          {
            "name": "siginfo",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "source-map",
            "direct": false,
            "version": "0.7.6",
            "ecosystem": "npm"
          },
          {
            "name": "source-map-js",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "npm"
          },
          {
            "name": "stackback",
            "direct": false,
            "version": "0.0.2",
            "ecosystem": "npm"
          },
          {
            "name": "std-env",
            "direct": false,
            "version": "4.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "sucrase",
            "direct": false,
            "version": "3.35.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify",
            "direct": false,
            "version": "3.3.1",
            "ecosystem": "npm"
          },
          {
            "name": "thenify-all",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinybench",
            "direct": false,
            "version": "2.9.0",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "0.3.2",
            "ecosystem": "npm"
          },
          {
            "name": "tinyexec",
            "direct": false,
            "version": "1.2.4",
            "ecosystem": "npm"
          },
          {
            "name": "tinyglobby",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "npm"
          },
          {
            "name": "tinyrainbow",
            "direct": false,
            "version": "3.1.0",
            "ecosystem": "npm"
          },
          {
            "name": "tree-kill",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "npm"
          },
          {
            "name": "ts-interface-checker",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "npm"
          },
          {
            "name": "tslib",
            "direct": false,
            "version": "2.8.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsup",
            "direct": false,
            "version": "8.5.1",
            "ecosystem": "npm"
          },
          {
            "name": "tsx",
            "direct": false,
            "version": "4.22.4",
            "ecosystem": "npm"
          },
          {
            "name": "typescript",
            "direct": false,
            "version": "5.9.3",
            "ecosystem": "npm"
          },
          {
            "name": "ufo",
            "direct": false,
            "version": "1.6.4",
            "ecosystem": "npm"
          },
          {
            "name": "undici-types",
            "direct": false,
            "version": "6.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "vite",
            "direct": false,
            "version": "8.0.16",
            "ecosystem": "npm"
          },
          {
            "name": "vitest",
            "direct": false,
            "version": "4.1.9",
            "ecosystem": "npm"
          },
          {
            "name": "whatwg-mimetype",
            "direct": false,
            "version": "3.0.0",
            "ecosystem": "npm"
          },
          {
            "name": "why-is-node-running",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "npm"
          },
          {
            "name": "ws",
            "direct": false,
            "version": "8.21.0",
            "ecosystem": "npm"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": "17.11.1",
            "ecosystem": "nuget"
          },
          {
            "name": "System.Text.Json",
            "direct": false,
            "version": "8.0.5",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit",
            "direct": false,
            "version": "2.9.2",
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.visualstudio",
            "direct": false,
            "version": "2.8.2",
            "ecosystem": "nuget"
          },
          {
            "name": "annotated-types",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "attrs",
            "direct": false,
            "version": "26.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "certifi",
            "direct": false,
            "version": "2026.2.25",
            "ecosystem": "pypi"
          },
          {
            "name": "cffi",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "cfgv",
            "direct": false,
            "version": "3.5.0",
            "ecosystem": "pypi"
          },
          {
            "name": "colorama",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "pypi"
          },
          {
            "name": "coverage",
            "direct": false,
            "version": "7.13.5",
            "ecosystem": "pypi"
          },
          {
            "name": "cryptography",
            "direct": false,
            "version": "49.0.0",
            "ecosystem": "pypi"
          },
          {
            "name": "distlib",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "pypi"
          },
          {
            "name": "exceptiongroup",
            "direct": false,
            "version": "1.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "filelock",
            "direct": false,
            "version": "3.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-ai-generativelanguage",
            "direct": false,
            "version": "0.6.15",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-core",
            "direct": false,
            "version": "2.25.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-core",
            "direct": false,
            "version": "2.30.2",
            "ecosystem": "pypi"
          },
          {
            "name": "google-api-python-client",
            "direct": false,
            "version": "2.194.0",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth",
            "direct": false,
            "version": "2.49.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-auth-httplib2",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "pypi"
          },
          {
            "name": "google-generativeai",
            "direct": false,
            "version": "0.8.6",
            "ecosystem": "pypi"
          },
          {
            "name": "googleapis-common-protos",
            "direct": false,
            "version": "1.74.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio",
            "direct": false,
            "version": "1.80.0",
            "ecosystem": "pypi"
          },
          {
            "name": "grpcio-status",
            "direct": false,
            "version": "1.71.2",
            "ecosystem": "pypi"
          },
          {
            "name": "httplib2",
            "direct": false,
            "version": "0.31.2",
            "ecosystem": "pypi"
          },
          {
            "name": "identify",
            "direct": false,
            "version": "2.6.18",
            "ecosystem": "pypi"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "3.18",
            "ecosystem": "pypi"
          },
          {
            "name": "iniconfig",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema",
            "direct": false,
            "version": "4.26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "jsonschema-specifications",
            "direct": false,
            "version": "2025.9.1",
            "ecosystem": "pypi"
          },
          {
            "name": "nodeenv",
            "direct": false,
            "version": "1.10.0",
            "ecosystem": "pypi"
          },
          {
            "name": "packaging",
            "direct": false,
            "version": "26.0",
            "ecosystem": "pypi"
          },
          {
            "name": "platformdirs",
            "direct": false,
            "version": "4.9.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pluggy",
            "direct": false,
            "version": "1.6.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pre-commit",
            "direct": false,
            "version": "4.5.1",
            "ecosystem": "pypi"
          },
          {
            "name": "proto-plus",
            "direct": false,
            "version": "1.27.2",
            "ecosystem": "pypi"
          },
          {
            "name": "protobuf",
            "direct": false,
            "version": "5.29.6",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pyasn1-modules",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pycparser",
            "direct": false,
            "version": "3.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic",
            "direct": false,
            "version": "2.12.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pydantic-core",
            "direct": false,
            "version": "2.41.5",
            "ecosystem": "pypi"
          },
          {
            "name": "pygments",
            "direct": false,
            "version": "2.20.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pyparsing",
            "direct": false,
            "version": "3.3.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pypdf",
            "direct": false,
            "version": "5.9.0",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest",
            "direct": false,
            "version": "9.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "pytest-cov",
            "direct": false,
            "version": "7.1.0",
            "ecosystem": "pypi"
          },
          {
            "name": "python-discovery",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "pypi"
          },
          {
            "name": "pyyaml",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "pypi"
          },
          {
            "name": "referencing",
            "direct": false,
            "version": "0.37.0",
            "ecosystem": "pypi"
          },
          {
            "name": "requests",
            "direct": false,
            "version": "2.33.1",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "0.30.0",
            "ecosystem": "pypi"
          },
          {
            "name": "rpds-py",
            "direct": false,
            "version": "2026.6.3",
            "ecosystem": "pypi"
          },
          {
            "name": "ruff",
            "direct": false,
            "version": "0.15.9",
            "ecosystem": "pypi"
          },
          {
            "name": "tomli",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "pypi"
          },
          {
            "name": "tqdm",
            "direct": false,
            "version": "4.67.3",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-extensions",
            "direct": false,
            "version": "4.15.0",
            "ecosystem": "pypi"
          },
          {
            "name": "typing-inspection",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "pypi"
          },
          {
            "name": "uritemplate",
            "direct": false,
            "version": "4.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "urllib3",
            "direct": false,
            "version": "2.7.0",
            "ecosystem": "pypi"
          },
          {
            "name": "virtualenv",
            "direct": false,
            "version": "21.2.0",
            "ecosystem": "pypi"
          },
          {
            "name": "zhtw",
            "direct": false,
            "version": "4.4.2",
            "ecosystem": "pypi"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 347,
        "direct_count": 3,
        "indirect_count": 344
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 2,
        "merged_prs": 2,
        "open_issues": 9,
        "closed_ratio": 0.75,
        "closed_issues": 27,
        "closed_unmerged_prs": 7
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "rajatim",
          "commits": 447,
          "avatar_url": "https://avatars.githubusercontent.com/u/5975535?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "benchmark-competitors.yml",
        "ci.yml",
        "go-binary.yml",
        "publish.yml",
        "sdk-conformance.yml",
        "sdk-dotnet.yml",
        "sdk-go.yml",
        "sdk-java.yml",
        "sdk-rust.yml",
        "sdk-typescript.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": true
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.lock",
        "package-lock.json",
        "pnpm-lock.yaml",
        "uv.lock"
      ],
      "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": 3,
            "reason": "branch protection is not maximal on development and all release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 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 10 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 10,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "42 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "b4989f5cfd29725d9d806a01dadae3a8cb14ba1a",
        "ran_at": "2026-07-25T05:17:57Z",
        "aggregate_score": 3.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-25T02:12:34Z",
      "oldest_open_prs": [
        {
          "number": 45,
          "created_at": "2026-07-23T10:39:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 46,
          "created_at": "2026-07-23T10:39:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-04-09T23:22:40Z",
      "ci_last_conclusion": "FAILURE",
      "oldest_open_issues": [
        {
          "number": 6,
          "created_at": "2025-12-26T04:10:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 8,
          "created_at": "2025-12-26T04:10:41Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 10,
          "created_at": "2025-12-26T04:48:18Z",
          "last_comment_at": "2025-12-30T21:05:51Z",
          "last_comment_author": "rajatim"
        },
        {
          "number": 11,
          "created_at": "2025-12-26T05:21:34Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 32,
          "created_at": "2026-04-11T04:37:47Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 36,
          "created_at": "2026-07-19T09:57:48Z",
          "last_comment_at": "2026-07-19T15:13:33Z",
          "last_comment_author": "rajatim"
        },
        {
          "number": 43,
          "created_at": "2026-07-19T10:07:07Z",
          "last_comment_at": "2026-07-23T18:40:51Z",
          "last_comment_author": "rajatim"
        },
        {
          "number": 44,
          "created_at": "2026-07-19T10:07:09Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 47,
          "created_at": "2026-07-23T18:40:04Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/rajatim/zhtw",
    "host": "github.com",
    "name": "zhtw",
    "owner": "rajatim"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 62,
      "inputs": {
        "security": 51,
        "vitality": 81,
        "community": 43,
        "governance": 43,
        "engineering": 89
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 81,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 75,
            "inputs": {
              "commits_last_year": 446,
              "human_commit_share": 1,
              "days_since_last_push": 0,
              "active_weeks_last_year": 16
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "16/52 weeks with commits",
                "points": 11.1,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 16
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "446 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 446
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 38,
              "latest_release_tag": "sdk/go/v4.4.2",
              "releases_from_tags": false,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 10.9
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "38 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 38
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~10.9 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 10.9
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 0,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 0 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "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": 17,
            "inputs": {
              "forks": 0,
              "stars": 12,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "12 stars",
                "points": 16.9,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 70,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "at_risk",
            "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": 46,
            "inputs": {
              "packages": [
                "zhtw"
              ],
              "dependents": null,
              "ecosystems": "pypi",
              "total_downloads": null,
              "monthly_downloads": 536
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "536 downloads/month across pypi",
                "points": 36.4,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 536,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Sustainability & Governance",
        "value": 43,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "at_risk",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 44,
            "inputs": {
              "merged_prs": 2,
              "open_issues": 9,
              "closed_issues": 27,
              "issue_closed_ratio": 0.75,
              "closed_unmerged_prs": 7
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "75% of issues closed",
                "points": 35.1,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 75
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "2/9 decided PRs merged",
                "points": 8.5,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 2,
                      "decided": 9
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 37,
            "inputs": {
              "followers": 0,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "rajatim",
              "public_repos": 9,
              "account_age_days": 4631
            },
            "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": "0 followers of rajatim",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "rajatim"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "9 public repos, account ~12 yr old",
                "points": 19.3,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 9
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 12
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "zhtw"
              ],
              "ecosystems": "pypi",
              "any_deprecated": false,
              "min_days_since_publish": 6
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on pypi",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "pypi"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 6 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "35 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 35
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 89,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "excellent",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 92,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "has_precommit_config": true
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "10 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "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": 16,
                "status": "met",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 9.6,
                "status": "met",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "topics": [
                "chinese",
                "cli",
                "i18n",
                "linter",
                "localization",
                "pre-commit",
                "python",
                "simplified-chinese",
                "taiwan",
                "text-processing",
                "traditional-chinese"
              ],
              "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": "11 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "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": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 39,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 3.9
            },
            "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 is not maximal on development and all release branches",
                "points": 2.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "30 commit(s) and 10 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": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "42 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the pypi:zhtw@4.4.2 runtime dependency closure — what installing the published package pulls in — 3 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "pypi:zhtw@4.4.2",
                  "assessed": 3
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 3,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 3,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          },
          {
            "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": 2
            },
            "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": 83,
        "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.93,
              "agent_instruction_files": [
                "AGENTS.md",
                "CLAUDE.md",
                "GEMINI.md"
              ],
              "agent_instruction_max_bytes": 5430
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md, CLAUDE.md, GEMINI.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md, CLAUDE.md, GEMINI.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": "93 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 93,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock",
                "package-lock.json",
                "pnpm-lock.yaml",
                "uv.lock"
              ],
              "has_dockerfile": true,
              "typed_language": false,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [
                "sdk/typescript/tsconfig.json",
                "src/zhtw/py.typed"
              ],
              "agent_commit_share": 0.42,
              "toolchain_manifests": [
                "benchmarks/bench_csharp.csproj",
                "sdk/dotnet/Zhtw.csproj",
                "sdk/dotnet/tests/Zhtw.Tests/Zhtw.Tests.csproj",
                "sdk/go/go.mod",
                "sdk/java/pom.xml",
                "sdk/rust/Cargo.toml",
                "sdk/rust/zhtw-wasm/Cargo.toml",
                "sdk/rust/zhtw/Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": 11,
                "status": "met",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "sdk/typescript/tsconfig.json, src/zhtw/py.typed",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "sdk/typescript/tsconfig.json, src/zhtw/py.typed"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "42 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 42,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "good",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 82,
            "inputs": {
              "primary_language": "Python",
              "largest_source_bytes": 420150,
              "source_files_sampled": 182,
              "oversized_source_files": 1
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Python with type-check config (sdk/typescript/tsconfig.json, src/zhtw/py.typed)",
                "points": 27,
                "status": "partial",
                "details": [
                  {
                    "code": "typecheck_config_language",
                    "params": {
                      "files": "sdk/typescript/tsconfig.json, src/zhtw/py.typed",
                      "language": "Python"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "1/182 source files over 60KB",
                "points": 54.7,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 182,
                      "oversized": 1
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T05:18:04.297402Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rajatim/zhtw.svg",
  "full_name": "rajatim/zhtw",
  "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 StatistikenPyPI.