公开记录
软件健康报告模式 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年12月在 GitHub 上查看 ↗

rajatim/zhtw 的健康指数为 100 分中的 62 分,处于「中等」区间。 其得分最高的类别是Engineering Quality(89/100),最低的是Sustainability & Governance(43/100)。 最近一次更新在今天。 近期的大部分工作由 1 位贡献者完成。

62
总分 / 100
中等

软件健康指数

指标归入加权类别,统一采用 1–100 量表。总体分先取类别加权平均;当公开证据触发高风险司法辖区政策时,评级会按政策调整,并设置 49(有风险)的上限。AI 就绪度不计入总体分。

62
优秀85-100堪称典范;基本满足所有检验标准
良好70-84健康;仅有轻微不足
中等50-69可接受,但存在明显不足;建议进行审查
存在风险30-49存在重大薄弱环节;采用时应保持审慎
危急1-29问题严重(项目被弃置、仅有单一维护者、缺乏基本工程规范)
活力社区与采用可持续性与治理工程质量安全AI 就绪度

评分画像

每条轴代表一个类别。形状比平均值更重要——健康的对象会填满整个图形,而“一峰一谷”式画像意味着某一维度的优势正掩盖另一维度的风险。

所有权

rajatim个人账户
0 关注者9 个公开仓库始于 2013年11月

该仓库由个人账户拥有。相较于组织支持的项目,单一所有者项目的延续性风险更高。

软件包生态系统

注册表软件包版本月下载量版本数最近发布标签
PyPIzhtw4.4.2536356 天前ai-toolschineseconverteri18nl10nlocalizationnlpsimplifiedtaiwantext-processingtraditionalvibe-coding

按类别列示的指标

活力

项目是否仍有生命——是否仍在编写代码,是否仍在发布版本?

81良好 · 占总体的 22%
评分方式
36/36推送新近度 — 最近一次推送于 0 天前
11.1/36提交节奏 — 52 周中有 16 周有提交
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

发布纪律

90优秀
评分方式
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

社区健康

70良好
评分方式
22.5/22.5README
22.5/22.5许可证 — 可识别的许可证(MIT)
18/18CONTRIBUTING 指南
0/13.5行为准则
0/7.2议题模板
0/6.3PR 模板
所用输入
has_readme
has_license
has_contributing
has_issue_template
has_code_of_conduct
has_pull_request_template
评分方式
36.4/80月度下载量 — pypi 合计每月 536 次下载
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议题解决 — 75% 的议题已关闭
8.5/38.3PR 接受 — 已裁定的 PR 中 2/9 已合并
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
评分方式
10/30所有权背书 — 个人(用户)账户
0/20已验证域名 — 不适用于个人账户
0/25所有者影响力 — rajatim 有 0 位关注者
19.3/25既往记录 — 9 个公开仓库,账户约 12 年
所用输入
followers0
owner_typeUser
is_verified
owner_loginrajatim
public_repos9
account_age_days4,631
已排除计分(无数据或不适用):已验证域名。 其余权重已重新归一化。
评分方式
25/25已发布且可解析 — pypi 上有 1 个软件包
35/35发布时效 — 最近一次发布于 6 天前
20/20版本历史 — 35 个已发布版本
20/20未被弃用 — 活跃,未被弃用或撤回
所用输入
packageszhtw
ecosystemspypi
any_deprecated
min_days_since_publish6

工程质量

基础的工程与文档实践是否到位?

89优秀 · 占总体的 20%

工程实践

92优秀
评分方式
24/24CI 工作流 — 10 个工作流
24/24存在测试
16/16Linter 配置
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
已排除计分(无数据或不适用):没有长期未处理的公告。 其余权重已重新归一化。 比对的是 pypi:zhtw@4.4.2 的运行时依赖闭包——安装已发布的软件包时真正被拉取进来的内容——共 3 个软件包。 未对可达性进行分析。

AI 就绪度

该仓库在多大程度上具备与 AI 编码代理协同开发与维护的条件?这是一枚独立的实验性徽章——权重为 0.0,因此单独呈现,不影响总体健康评分。

83良好 · 占总体的 0%
评分方式
45/45代理指令 — AGENTS.md, CLAUDE.md, GEMINI.md
0/15机器可读文档(llms.txt)
40/40可读的提交历史 — 100 次人类提交中有 93 次说明了意图(结构化标题或解释性正文)
所用输入
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/11Lint / 格式化配置
11/11静态类型检查 — sdk/typescript/tsconfig.json, src/zhtw/py.typed
10/10可复现环境 — Dockerfile, lockfile
10/10已体现的代理实践 — 最近 100 次提交中有 42 次由代理编写或署名代理
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可控的文件大小 — 采样的 182 个源文件中有 1 个超过 60KB
所用输入
primary_languagePython
largest_source_bytes420,150
source_files_sampled182
oversized_source_files1

关键数据

12GitHub 星标
1贡献者
446最近 12 个月提交数
0距最近推送天数
38发布版本数
1巴士系数(bus factor)
9开放议题
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 个间接(传递)软件包。仓库提交锁文件时,传递闭包才是完整的。

注册表软件包版本关系
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.