Public record
Software health reportschema 0.27.0 · metrics 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 stars⑂ 0 forkssince Dec 2025View on GitHub ↗

rajatim/zhtw holds a health index of 62 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (89/100) and lowest on Sustainability & Governance (43/100). It was last updated today. A single contributor accounts for most of its recent work.

62
overall / 100
Moderate

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

62
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

rajatimPersonal account
0 followers9 public repossince Nov 2013

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
PyPIzhtw4.4.2536356 days agoai-toolschineseconverteri18nl10nlocalizationnlpsimplifiedtaiwantext-processingtraditionalvibe-coding

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

81Good · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
11.1/36Commit cadence — 16/52 weeks with commits
18/18Commit volume — 446 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year446
human_commit_share1
days_since_last_push0
active_weeks_last_year16
How it's scored
27/27Ships releases — 38 releases published
36/36Release recency — latest release 6 days ago
27/27Release cadence — a release every ~10.9 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count38
latest_release_tagsdk/go/v4.4.2
releases_from_tagsno
days_since_latest_release6
mean_days_between_releases10.9

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

43At risk · 18% of overall
How it's scored
16.9/60Stars — 12 stars
0/25Forks — 0 forks
0/15Watchers — 0 watchers
Inputs used
forks0
stars12
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
36.4/80Monthly downloads — 536 downloads/month across pypi
0/20Registry dependents — not reported by this ecosystem
Inputs used
packageszhtw
dependents
ecosystemspypi
total_downloads
monthly_downloads536
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

43At risk · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
0/22.5Commit distribution — top contributor authored 100% of commits
1.4/13.5Contributor breadth — 1 contributors
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Inputs used
bus_factor1
contributors_sampled1
top_contributor_share1
How it's scored
35.1/46.8Issue resolution — 75% of issues closed
8.5/38.3PR acceptance — 2/9 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs2
open_issues9
closed_issues27
issue_closed_ratio0.75
closed_unmerged_prs7
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
0/25Owner reach — 0 followers of rajatim
19.3/25Track record — 9 public repos, account ~12 yr old
Inputs used
followers0
owner_typeUser
is_verified
owner_loginrajatim
public_repos9
account_age_days4,631
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 1 package(s) on pypi
35/35Publish recency — latest publish 6 days ago
20/20Version history — 35 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packageszhtw
ecosystemspypi
any_deprecatedno
min_days_since_publish6

Engineering Quality

Are baseline engineering and documentation practices in place?

89Excellent · 20% of overall
How it's scored
24/24CI workflows — 10 workflow(s)
24/24Tests present
16/16Linter config
9.6/9.6Pre-commit hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configyes
has_precommit_configyes
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

85Excellent
How it's scored
30/30README
25/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
10/10Topics — 11 topics
10/10Wiki
Inputs used
topicschinese, cli, i18n, linter, localization, pre-commit, python, simplified-chinese, taiwan, text-processing, traditional-chinese
has_wikiyes
homepage
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

51Moderate · 16% of overall
How it's scored
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 — no data
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.5License — 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
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate3.9
Excluded from scoring (no data or not applicable): ci_tests. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages3
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
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.

AI Readiness

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.

83Good · 0% of overall
How it's scored
45/45Agent instructions — AGENTS.md, CLAUDE.md, GEMINI.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 93 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.93
agent_instruction_filesAGENTS.md, CLAUDE.md, GEMINI.md
agent_instruction_max_bytes5,430
How it's scored
18/18One-command bootstrap — Makefile
22/22Automated tests
11/11Lint / format config
11/11Static type checking — sdk/typescript/tsconfig.json, src/zhtw/py.typed
10/10Reproducible environment — Dockerfile, lockfile
10/10Demonstrated agent practice — 42 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilesCargo.lock, package-lock.json, pnpm-lock.yaml, uv.lock
has_dockerfileyes
typed_languageno
bootstrap_filesMakefile
has_devcontainerno
has_linter_configyes
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
How it's scored
27/45Type-checkable code — Python with type-check config (sdk/typescript/tsconfig.json, src/zhtw/py.typed)
54.7/55Manageable file sizes — 1/182 source files over 60KB
Inputs used
primary_languagePython
largest_source_bytes420,150
source_files_sampled182
oversized_source_files1

Key facts

12GitHub stars
1contributors
446commits, last 12 months
0days since last push
38releases
1bus factor
9open issues
NuGet, PyPIpackage ecosystems

Data collection warnings

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

More detail

OpenSSF Scorecard 3.9 / 10
3.9aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).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
n/aCI-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
Direct dependencies 3
RegistryPackageVersion constraintManifest
PyPIclick>=8.0pyproject.toml
PyPIpyahocorasick>=2.0pyproject.toml
PyPIcharset-normalizer>=3.0pyproject.toml
All dependencies 347

Full resolved dependency set from the GitHub dependency graph: 3 direct and 344 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

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

Installing pypi:zhtw@4.4.2 pulls in 3 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "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"
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsPyPI.