Публічний реєстр
Звіт про здоров'я програмного забезпеченнясхема 0.27.0 · метрики 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 зірок⑂ 0 форківз груд. 2025 р.Переглянути на GitHub ↗

rajatim/zhtw має індекс здоров’я 62 зі 100, що відповідає смузі «Помірний». Найвищий показник — Engineering Quality (89/100), найнижчий — Sustainability & Governance (43/100). Останнє оновлення — сьогодні. Більшість нещодавньої роботи виконує один учасник.

62
загалом / 100
Помірний

Індекс здоров'я програмного забезпечення

Метрики згруповано у зважені категорії на шкалі 1–100. Загальна оцінка починається як їхнє середнє; коли публічні дані активують Політику юрисдикцій високого ризику, рейтинг коригується й отримує верхню межу 49 («Під ризиком»). Готовність до ШІ не входить до індексу.

62
Відмінний85-100Зразковий; відповідає практично всім перевіреним критеріям
Добрий70-84Здоровий; незначні прогалини
Помірний50-69Прийнятний, але з помітними прогалинами; рекомендовано перевірку
У зоні ризику30-49Суттєві слабкі місця; впровадження потребує обережності
Критичний1-29Серйозні проблеми (покинутий, єдиний мейнтейнер, без базової гігієни)
ЖиттєздатністьСпільнота тавпровадженняСталість таврядуванняІнженернаякістьБезпекаГотовність доШІ

Профіль оцінок

Кожна вісь — окрема категорія. Форма важить більше, ніж середнє: здоровий об'єкт заповнює всю фігуру, тоді як профіль із піками та провалами означає, що сила в одному вимірі маскує ризик в іншому.

Власність

rajatimОсобистий обліковий запис
0 підписників9 публічних репозиторіївз лист. 2013 р.

Цей репозиторій належить особистому обліковому запису. Проєкт з єдиним власником несе більший ризик безперервності, ніж підтримуваний організацією.

Пакетні екосистеми

РеєстрПакетВерсіяЗавантажень / місВерсіїОстання публікаціяТеги
PyPIzhtw4.4.2536356 днів томуai-toolschineseconverteri18nl10nlocalizationnlpsimplifiedtaiwantext-processingtraditionalvibe-coding

Метрики за категоріями

Життєздатність

Чи живий проєкт — чи пишеться код і чи виходять релізи?

81Добрий · 22% загального індексу
Як обчислюється оцінка
36/36Свіжість push — останній push 0 дн. тому
11.1/36Ритм комітів — 16/52 тижнів із комітами
18/18Обсяг комітів — 446 комітів за останній рік
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
Використані вхідні дані
commits_last_year446
human_commit_share1
days_since_last_push0
active_weeks_last_year16
Як обчислюється оцінка
27/27Випускає релізи — опубліковано 38 релізів
36/36Свіжість релізів — останній реліз 6 дн. тому
27/27Ритм релізів — реліз кожні ~10,9 дн.
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Використані вхідні дані
releases_count38
latest_release_tagsdk/go/v4.4.2
releases_from_tagsні
days_since_latest_release6
mean_days_between_releases10,9

Спільнота та впровадження

Чи має проєкт користувачів, завантаження, увагу та влаштовані умови для контриб’юторів?

43У зоні ризику · 18% загального індексу
Як обчислюється оцінка
16.9/60Зірки — 12 зірок
0/25Форки — 0 форків
0/15Спостерігачі — 0 спостерігачів
Використані вхідні дані
forks0
stars12
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Як обчислюється оцінка
22.5/22.5README
22.5/22.5Ліцензія — визнана ліцензія (MIT)
18/18Настанови CONTRIBUTING
0/13.5Кодекс поведінки
0/7.2Шаблон issue
0/6.3Шаблон PR
Використані вхідні дані
has_readmeтак
has_licenseтак
has_contributingтак
has_issue_templateні
has_code_of_conductні
has_pull_request_templateні
Як обчислюється оцінка
36.4/80Щомісячні завантаження — 536 завантажень/місяць у pypi
0/20Залежні пакети в реєстрі — ця екосистема цього не повідомляє
Використані вхідні дані
packageszhtw
dependents
ecosystemspypi
total_downloads
monthly_downloads536
Виключено з оцінювання (немає даних або не застосовно): Залежні пакети в реєстрі. Залишкові ваги перенормовано.

Сталість та врядування

Чи переживе проєкт своїх людей — бас-фактор, реактивність, хто за ним стоїть і як супроводжуються пакети?

43У зоні ризику · 24% загального індексу
Як обчислюється оцінка
9/54Бас-фактор — на 1 контриб’ютор(ів) припадає половина всіх комітів
0/22.5Розподіл комітів — головний контриб’ютор — автор 100% комітів
1.4/13.5Широта контриб’юторів — 1 контриб’юторів
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Використані вхідні дані
bus_factor1
contributors_sampled1
top_contributor_share1
Як обчислюється оцінка
35.1/46.8Вирішення issue — закрито 75% issue
8.5/38.3Прийняття PR — злито 2/9 вирішених PR
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Використані вхідні дані
merged_prs2
open_issues9
closed_issues27
issue_closed_ratio0,75
closed_unmerged_prs7

Власність та опіка

37У зоні ризику
Як обчислюється оцінка
10/30Підтримка власника — особистий (користувацький) обліковий запис
0/20Верифікований домен — не застосовно до користувацьких облікових записів
0/25Охоплення власника — 0 підписників у rajatim
19.3/25Послужний список — 9 публічних репозиторіїв, вік облікового запису ~12 р.
Використані вхідні дані
followers0
owner_typeUser
is_verified
owner_loginrajatim
public_repos9
account_age_days4 631
Виключено з оцінювання (немає даних або не застосовно): Верифікований домен. Залишкові ваги перенормовано.

Супровід пакетів

100Відмінний
Як обчислюється оцінка
25/25Опубліковано й доступно — 1 пакет(ів) у pypi
35/35Свіжість публікацій — остання публікація 6 дн. тому
20/20Історія версій — 35 опублікованих версій
20/20Не застарілий — активний, не deprecated і не yanked
Використані вхідні дані
packageszhtw
ecosystemspypi
any_deprecatedні
min_days_since_publish6

Інженерна якість

Чи наявні базові інженерні практики та документація?

89Відмінний · 20% загального індексу
Як обчислюється оцінка
24/24Процеси CI — 10 процес(ів) CI
24/24Наявні тести
16/16Конфігурація лінтера
9.6/9.6Pre-commit-хуки
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — немає даних
Використані вхідні дані
has_ciтак
has_testsтак
has_editorconfigні
has_linter_configтак
has_precommit_configтак
Виключено з оцінювання (немає даних або не застосовно): OpenSSF Scorecard: CI-Tests. Залишкові ваги перенормовано.

Документація

85Відмінний
Як обчислюється оцінка
30/30README
25/25Каталог документації
0/15Сайт документації / домашня сторінка
10/10Опис репозиторію
10/10Теми — 11 тем
10/10Wiki
Використані вхідні дані
topicschinese, cli, i18n, linter, localization, pre-commit, python, simplified-chinese, taiwan, text-processing, traditional-chinese
has_wikiтак
homepage
has_readmeтак
has_docs_dirтак
has_descriptionтак

Безпека

Чи міцні видимі практики безпеки й ланцюга постачання, без непослабленої пов’язаності з юрисдикціями високого ризику?

51Помірний · 16% загального індексу

Стан безпеки

39У зоні ризику
Як обчислюється оцінка
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 — немає даних
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.5Ліцензія — 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
Використані вхідні дані
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3,9
Виключено з оцінювання (немає даних або не застосовно): ci_tests. Залишкові ваги перенормовано.
Як обчислюється оцінка
35/35Прямі залежності без відомих сповіщень — жодна пряма залежність не має відомих сповіщень
25/25Непрямі залежності без відомих сповіщень — жодна непряма залежність не має відомих сповіщень
0/40Немає задавнених сповіщень — жодне сповіщення не має дати публікації
Використані вхідні дані
sourceosv
advisories0
affected_packages0
assessed_packages3
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Виключено з оцінювання (немає даних або не застосовно): Немає задавнених сповіщень. Залишкові ваги перенормовано. Звірено з runtime-замиканням залежностей pypi:zhtw@4.4.2 — тим, що тягне за собою встановлення опублікованого пакета, — 3 пакетів. Досяжність не аналізується.

Готовність до ШІ

Наскільки репозиторій оснащений для розробки та супроводу за участі ШІ-агентів? Незалежний, експериментальний бейдж — вага 0.0, тож він подається окремо і не впливає на загальний індекс здоров'я.

83Добрий · 0% загального індексу
Як обчислюється оцінка
45/45Інструкції для агентів — AGENTS.md, CLAUDE.md, GEMINI.md
0/15Машиночитана документація (llms.txt)
40/40Читабельна історія комітів — намір зазначено у 93 з 100 людських комітів (структурований заголовок або пояснювальний текст)
Використані вхідні дані
has_llms_txtні
legible_history_share0,93
agent_instruction_filesAGENTS.md, CLAUDE.md, GEMINI.md
agent_instruction_max_bytes5 430
Як обчислюється оцінка
18/18Розгортання однією командою — Makefile
22/22Автоматизовані тести
11/11Конфігурація лінтера / форматера
11/11Статична перевірка типів — sdk/typescript/tsconfig.json, src/zhtw/py.typed
10/10Відтворюване середовище — Dockerfile, lockfile
10/10Підтверджена практика роботи з агентами — 42 з останніх 100 комітів створено агентом або з його зазначенням
0/8Автоматизоване супроводження — автоматичних оновлень залежностей не виявлено
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Використані вхідні дані
has_nixні
has_testsтак
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml, uv.lock
has_dockerfileтак
typed_languageні
bootstrap_filesMakefile
has_devcontainerні
has_linter_configтак
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
Як обчислюється оцінка
27/45Типізований код — Python з конфігурацією перевірки типів (sdk/typescript/tsconfig.json, src/zhtw/py.typed)
54.7/55Керовані розміри файлів — 1/182 файлів вихідного коду понад 60 КБ
Використані вхідні дані
primary_languagePython
largest_source_bytes420 150
source_files_sampled182
oversized_source_files1

Ключові факти

12зірок GitHub
1контриб'юторів
446комітів за останні 12 місяців
0днів від останнього пушу
38релізів
1бас-фактор
9відкритих issue
NuGet, PyPIпакетних екосистем

Попередження щодо збору даних

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

Докладніше

OpenSSF Scorecard 3.9 / 10
3.9сукупно

Незалежна, не прив'язана до інструментів оцінка безпеки від відкритого проєкту OpenSSF Scorecard. Кожна перевірка винагороджує практику безпеки, а не інструмент конкретного постачальника. Перевірки, які Scorecard не зміг визначити, позначено н/д і виключено з оцінки безпеки (вони ніколи не зараховуються як нуль).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
н/д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
Прямі залежності 3
РеєстрПакетОбмеження версіїМаніфест
PyPIclick>=8.0pyproject.toml
PyPIpyahocorasick>=2.0pyproject.toml
PyPIcharset-normalizer>=3.0pyproject.toml
Усі залежності 347

Повний розв'язаний набір залежностей із графа залежностей GitHub: 3 прямих і 344 непрямих (транзитивних) пакетів. Транзитивне замикання є повним, коли в репозиторії закомічено lockfile.

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

Встановлення pypi:zhtw@4.4.2 тягне 3 пакетів, прямих і транзитивних: 0 мають відомі сповіщення, з них 0 — прямі залежності.

Жодне відоме сповіщення не стосується оцінених залежностей.

Сповіщення означає, що версія, записана в графі залежностей, потрапляє в уражений діапазон. Досяжність не аналізується, а граф містить піниї розробки й тестування — знахідка може стосуватися інструментів, а не поставленого коду.

Звіт у форматі JSON машиночитний
{
  "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"
}

Оцінки — це сигнали, а не гарантії. Вони відображають публічно видимі практики на GitHub — це не аудит коду й не гарантія безпеки.

Відсутні дані виключаються, а ваги перенормовуються — нуль за відсутність ніколи не ставиться. Методологія версіонована й відкрита: метрики v1.13.0, схема v0.27.0 — повна методологія · вікі метрик.

Як окремий результат виглядає на тлі всього реєстру: сукупна статистикаPyPI.