Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-27 09:22 UTC

wwood / CoverM

Read alignment statistics for metagenomics

RustGPL-3.0★ 402 stars⑂ 37 forkssince Dec 2017View on GitHub ↗

wwood/CoverM holds a health index of 58 out of 100, placing it in the Moderate band. It scores highest on AI Readiness (75/100) and lowest on Security (48/100). It was last updated 17 days ago. A single contributor accounts for most of its recent work.

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

58
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

Ben J WoodcroftPersonal account
363 followers243 public repossince Jun 2008Queensland University of Technology

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 publish
crates.iocoverm0.8.0401119 days ago

Metrics by category

Vitality

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

67Moderate · 22% of overall
How it's scored
28.8/36Push recency — last push 17 days ago
6.9/36Commit cadence — 10/52 weeks with commits
15.7/18Commit volume — 55 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year55
human_commit_share0.94
days_since_last_push17
active_weeks_last_year10
How it's scored
27/27Ships releases — 13 releases published
36/36Release recency — latest release 19 days ago
12.6/27Release cadence — a release every ~288.7 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count13
latest_release_tagv0.8.0
releases_from_tagsno
days_since_latest_release19
mean_days_between_releases288.7

Community & Adoption

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

48At risk · 18% of overall
How it's scored
42.2/60Stars — 402 stars
13/25Forks — 37 forks
5/15Watchers — 9 watchers
Inputs used
forks37
stars402
watchers9
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (GPL-3.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
21.5/80Monthly downloads — 40 downloads/month across crates
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagescoverm
dependents
ecosystemscrates
total_downloads16,928
monthly_downloads40
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?

58Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
2.5/22.5Commit distribution — top contributor authored 89% of commits
8.1/13.5Contributor breadth — 6 contributors
10/10OpenSSF Scorecard: Contributors — project has 5 contributing companies or organizations
Inputs used
bus_factor1
contributors_sampled6
top_contributor_share0.887
How it's scored
33/46.8Issue resolution — 71% of issues closed
17.3/38.3PR acceptance — 37/82 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 1/16 approved changesets -- score normalized to 0
Inputs used
merged_prs37
open_issues59
closed_issues142
issue_closed_ratio0.706
closed_unmerged_prs45
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
18.4/25Owner reach — 363 followers of wwood
25/25Track record — 243 public repos, account ~18 yr old
Inputs used
followers363
owner_typeUser
is_verified
owner_loginwwood
public_repos243
account_age_days6,603
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 1 package(s) on crates
35/35Publish recency — latest publish 19 days ago
20/20Version history — 11 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagescoverm
ecosystemscrates
any_deprecatedno
min_days_since_publish19

Engineering Quality

Are baseline engineering and documentation practices in place?

64Moderate · 20% of overall
How it's scored
24/24CI workflows — 2 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
16/20OpenSSF Scorecard: CI-Tests — 5 out of 6 merged PRs checked by a CI test -- score normalized to 8
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentation

65Moderate
How it's scored
30/30README
25/25Documentation directory
0/15Documentation / homepage site
10/10Repository description
0/10Topics
0/10Wiki
Inputs used
topics
has_wikino
homepage
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

48At risk · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2/2.5CI-Tests — 5 out of 6 merged PRs checked by a CI test -- score normalized to 8
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 1/16 approved changesets -- score normalized to 0
2.5/2.5Contributors — project has 5 contributing companies or organizations
10/10Dangerous-Workflow — no dangerous workflow patterns detected
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
0/5Packaging — no data
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 13 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated17
scorecard_versionv5.5.0
checks_inconclusive1
scorecard_aggregate4
Excluded from scoring (no data or not applicable): packaging. Remaining weights renormalized.
How it's scored
24.7/35Direct dependencies free of known advisories — 2 affected: ansi_term 0.12.1 (unknown), tempdir 0.3.7 (unknown)
0/25Indirect dependencies free of known advisories — transitive set not separable from development and test dependencies in this scope
34.8/40No advisories left outstanding — 2 advisory-carrying package(s) unaddressed past 90 days; oldest published 3,085 days ago
Inputs used
sourceosv
advisories18
affected_packages13
assessed_packages255
unassessed_packages0
affected_by_severitycritical 2, low 1, unknown 10
direct_affected_packages2
Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 255 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. 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.

75Good · 0% of overall
How it's scored
45/45Agent instructions — AGENTS.md
0/15Machine-readable docs (llms.txt)
28.4/40Legible commit history — 50 of 94 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.532
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes289
How it's scored
12.6/18One-command bootstrap — Cargo.toml (toolchain convention, no task runner)
22/22Automated tests
0/11Lint / format config
11/11Static type checking — Rust (statically typed)
10/10Reproducible environment — lockfile
10/10Demonstrated agent practice — 9 of the last 100 commits agent-authored or agent-credited
5/8Automated maintenance — dependency automation configured, none observed in the sampled commits
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilesCargo.lock
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0.09
toolchain_manifestsCargo.toml
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — Rust (statically typed)
44.5/55Manageable file sizes — 4/21 source files over 60KB
Inputs used
primary_languageRust
largest_source_bytes157,623
source_files_sampled21
oversized_source_files4

Key facts

402GitHub stars
6contributors
55commits, last 12 months
17days since last push
13releases
1bus factor
59open issues
crates.iopackage ecosystems

Data collection warnings

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

More detail

Star and fork history 0 ★ / 37 ⇿
0Stars
37Forks
5Releases

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

01325383722019-122023-022026-04
Major 0Minor 4Patch 1

Each point covers 6 days.

OpenSSF Scorecard 4.0 / 10
4.0aggregate

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-27 09:22 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
8CI-Tests5 out of 6 merged PRs checked by a CI test -- score normalized to 8
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 1/16 approved changesets -- score normalized to 0
10Contributorsproject has 5 contributing companies or organizations
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10
n/aPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities13 existing vulnerabilities detected
Direct dependencies 20
RegistryPackageVersion constraintManifest
crates.iobio2.0.*Cargo.toml
crates.iorust-htslib0.46.*Cargo.toml
crates.ioclap4.*Cargo.toml
crates.ioclap_complete4.*Cargo.toml
crates.iolog0.4.*Cargo.toml
crates.ioenv_logger0.11.*Cargo.toml
crates.ionix0.29.*Cargo.toml
crates.iotempdir0.3.*Cargo.toml
crates.iotempfile3.*Cargo.toml
crates.ioansi_term0.12Cargo.toml
crates.iolazy_static1.4.0Cargo.toml
crates.iorand0.8.*Cargo.toml
crates.ioserde1.0Cargo.toml
crates.ioversion-compare0.2.0Cargo.toml
crates.iobird_tool_utils>=0.5.2, <0.6.0Cargo.toml
crates.iogalahCargo.toml
crates.iobird_tool_utils-man0.4.0Cargo.toml
crates.ioroff0.2.*Cargo.toml
crates.ioneedletail0.7.*Cargo.toml
crates.iocsv1.*Cargo.toml
All dependencies 255

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

RegistryPackageVersionRelation
crates.ioansi_term0.12.1direct
crates.iobio2.0.3direct
crates.iobird_tool_utils0.5.2direct
crates.iobird_tool_utils-man0.4.0direct
crates.ioclap4.6.1direct
crates.ioclap_complete4.6.6direct
crates.iocsv1.4.0direct
crates.ioenv_logger0.10.2direct
crates.ioenv_logger0.11.11direct
crates.iogalah0.5.2direct
crates.iolazy_static1.5.0direct
crates.iolog0.4.33direct
crates.ioneedletail0.7.3direct
crates.ionix0.29.0direct
crates.iorand0.4.6direct
crates.iorand0.8.6direct
crates.ioroff0.1.0direct
crates.ioroff0.2.2direct
crates.iorust-htslib0.46.0direct
crates.ioserde1.0.228direct
crates.iotempdir0.3.7direct
crates.iotempfile3.27.0direct
crates.ioversion-compare0.2.1direct
crates.ioaddr2line0.25.1indirect
crates.ioadler22.0.1indirect
crates.ioaho-corasick1.1.4indirect
crates.ioanstream1.0.0indirect
crates.ioanstyle1.0.14indirect
crates.ioanstyle-parse1.0.0indirect
crates.ioanstyle-query1.1.5indirect
crates.ioanstyle-wincon3.0.11indirect
crates.ioanyhow1.0.103indirect
crates.ioapprox0.5.1indirect
crates.ioassert_cli0.6.3indirect
crates.ioautocfg1.5.1indirect
crates.iobacktrace0.3.76indirect
crates.iobincode1.3.3indirect
crates.iobio-types1.0.4indirect
crates.iobit-set0.8.0indirect
crates.iobit-vec0.8.0indirect
crates.iobitflags1.3.2indirect
crates.iobitflags2.13.0indirect
crates.iobuffer-redux1.1.0indirect
crates.iobv0.11.1indirect
crates.iobytecount0.6.9indirect
crates.iobytemuck1.25.0indirect
crates.iobyteorder1.5.0indirect
crates.iobzip20.6.1indirect
crates.iocapnp0.14.11indirect
crates.iocargo-husky1.5.0indirect
crates.iocc1.2.65indirect
crates.iocfg-if1.0.4indirect
crates.iocfg_aliases0.2.1indirect
crates.iocheckm0.3.0indirect
crates.ioclap_builder4.6.0indirect
crates.ioclap_lex1.1.0indirect
crates.iocmake0.1.58indirect
crates.iocolorchoice1.0.5indirect
crates.iocolored1.9.4indirect
crates.ioconcurrent-queue2.5.0indirect
crates.iocrc32fast1.5.0indirect
crates.iocrossbeam-deque0.8.6indirect
crates.iocrossbeam-epoch0.9.18indirect
crates.iocrossbeam-utils0.8.21indirect
crates.iocsv-core0.1.13indirect
crates.iocustom_derive0.1.7indirect
crates.iodefmt1.1.0indirect
crates.iodefmt-macros1.1.0indirect
crates.iodefmt-parser1.0.0indirect
crates.ioderive-new0.5.9indirect
crates.ioderive-new0.6.0indirect
crates.iodifference2.0.0indirect
crates.iodisjoint0.8.0indirect
crates.iodisplaydoc0.2.6indirect
crates.ioeditdistancek1.0.2indirect
crates.ioeither1.16.0indirect
crates.ioenum-map2.7.3indirect
crates.ioenum-map-derive0.17.0indirect
crates.ioenv_filter2.0.0indirect
crates.ioenvironment0.1.1indirect
crates.ioequivalent1.0.2indirect
crates.ioerrno0.3.14indirect
crates.iofailure0.1.8indirect
crates.iofailure_derive0.1.8indirect
crates.iofastrand2.4.1indirect
crates.iofeature-probe0.1.1indirect
crates.iofinch0.6.3indirect
crates.iofind-msvc-tools0.1.9indirect
crates.iofixedbitset0.4.2indirect
crates.ioflate21.1.9indirect
crates.ioform_urlencoded1.2.2indirect
crates.iofs-utils1.1.4indirect
crates.iofuchsia-cprng0.1.1indirect
crates.iofxhash0.2.1indirect
crates.iogetrandom0.2.17indirect
crates.iogetrandom0.3.4indirect
crates.iogetrandom0.4.3indirect
crates.iogimli0.32.3indirect
crates.ioglob0.3.3indirect
crates.iohashbrown0.17.1indirect
crates.ioheck0.5.0indirect
crates.iohermit-abi0.5.2indirect
crates.iohome0.5.12indirect
crates.iohts-sys2.2.0indirect
crates.iohumantime2.3.0indirect
crates.ioicu_collections2.2.0indirect
crates.ioicu_locale_core2.2.0indirect
crates.ioicu_normalizer2.2.0indirect
crates.ioicu_normalizer_data2.2.0indirect
crates.ioicu_properties2.2.0indirect
crates.ioicu_properties_data2.2.0indirect
crates.ioicu_provider2.2.0indirect
crates.ioidna1.1.0indirect
crates.ioidna_adapter1.2.2indirect
crates.ioieee7540.2.6indirect
crates.ioindexmap2.14.0indirect
crates.iois-terminal0.4.17indirect
crates.iois_terminal_polyfill1.70.2indirect
crates.ioitertools0.13.0indirect
crates.ioitertools-num0.1.3indirect
crates.ioitoa1.0.18indirect
crates.iojiff0.2.31indirect
crates.iojiff-static0.2.31indirect
crates.iojobserver0.1.34indirect
crates.iolibbz2-rs-sys0.2.5indirect
crates.iolibc0.2.186indirect
crates.ioliblzma0.3.6indirect
crates.ioliblzma-sys0.3.13indirect
crates.iolibm0.2.16indirect
crates.iolibz-sys1.1.29indirect
crates.iolinear-map1.2.0indirect
crates.iolinux-raw-sys0.12.1indirect
crates.iolinux-raw-sys0.4.15indirect
crates.iolitemap0.8.2indirect
crates.iomatrixmultiply0.3.10indirect
crates.iomemchr2.8.2indirect
crates.iomemmap0.7.0indirect
crates.iominiz_oxide0.8.9indirect
crates.iomultimap0.10.1indirect
crates.iomurmurhash30.0.5indirect
crates.ionalgebra0.32.6indirect
crates.ionalgebra-macros0.2.2indirect
crates.iondarray0.16.1indirect
crates.ionewtype_derive0.1.6indirect
crates.ionum-complex0.4.6indirect
crates.ionum-integer0.1.46indirect
crates.ionum-rational0.4.2indirect
crates.ionum-traits0.2.19indirect
crates.ioobject0.37.3indirect
crates.ioonce_cell1.21.4indirect
crates.ioonce_cell_polyfill1.70.2indirect
crates.ioordered-float4.6.0indirect
crates.iopaste1.0.15indirect
crates.iopercent-encoding2.3.2indirect
crates.iopetgraph0.6.5indirect
crates.iopkg-config0.3.33indirect
crates.ioportable-atomic1.13.1indirect
crates.ioportable-atomic-util0.2.7indirect
crates.iopotential_utf0.1.5indirect
crates.ioppv-lite860.2.21indirect
crates.ioproc-macro-error-attr22.0.0indirect
crates.ioproc-macro-error22.0.1indirect
crates.ioproc-macro21.0.106indirect
crates.ioquick-error1.2.3indirect
crates.ioquote1.0.46indirect
crates.ior-efi5.3.0indirect
crates.ior-efi6.0.0indirect
crates.iorand_chacha0.3.1indirect
crates.iorand_core0.3.1indirect
crates.iorand_core0.4.2indirect
crates.iorand_core0.6.4indirect
crates.iorand_distr0.4.3indirect
crates.iorawpointer0.2.1indirect
crates.iorayon1.12.0indirect
crates.iorayon-core1.13.0indirect
crates.iordrand0.4.0indirect
crates.ioregex1.12.4indirect
crates.ioregex-automata0.4.14indirect
crates.ioregex-syntax0.8.11indirect
crates.ioremove_dir_all0.5.3indirect
crates.iorustc-demangle0.1.27indirect
crates.iorustc_version0.1.7indirect
crates.iorustix0.38.44indirect
crates.iorustix1.1.4indirect
crates.iorustversion1.0.22indirect
crates.ioryu1.0.23indirect
crates.iosafe_arch0.7.4indirect
crates.iosemver0.1.20indirect
crates.ioserde_core1.0.228indirect
crates.ioserde_derive1.0.228indirect
crates.ioserde_json1.0.150indirect
crates.ioshlex2.0.1indirect
crates.iosimba0.8.1indirect
crates.iosimd-adler320.3.9indirect
crates.iosmallvec1.15.2indirect
crates.iostable_deref_trait1.2.1indirect
crates.iostatrs0.17.1indirect
crates.iostrsim0.11.1indirect
crates.iostrum0.26.3indirect
crates.iostrum_macros0.26.4indirect
crates.iosyn1.0.109indirect
crates.iosyn2.0.118indirect
crates.iosynstructure0.12.6indirect
crates.iosynstructure0.13.2indirect
crates.iotermcolor1.4.1indirect
crates.iothiserror1.0.69indirect
crates.iothiserror2.0.18indirect
crates.iothiserror-impl1.0.69indirect
crates.iothiserror-impl2.0.18indirect
crates.iotinystr0.8.3indirect
crates.iotriple_accel0.4.0indirect
crates.iotypenum1.20.1indirect
crates.iounicode-ident1.0.24indirect
crates.iounicode-xid0.2.6indirect
crates.iourl2.5.8indirect
crates.ioutf8_iter1.0.4indirect
crates.ioutf8parse0.2.2indirect
crates.iovcpkg0.2.15indirect
crates.iovec_map0.8.2indirect
crates.iowasi0.11.1+wasi-snapshot-preview1indirect
crates.iowasip21.0.4+wasi-0.2.12indirect
crates.iowhich6.0.3indirect
crates.iowide0.7.33indirect
crates.iowinapi0.3.9indirect
crates.iowinapi-i686-pc-windows-gnu0.4.0indirect
crates.iowinapi-util0.1.11indirect
crates.iowinapi-x86_64-pc-windows-gnu0.4.0indirect
crates.iowindows-link0.2.1indirect
crates.iowindows-sys0.59.0indirect
crates.iowindows-sys0.61.2indirect
crates.iowindows-targets0.52.6indirect
crates.iowindows_aarch64_gnullvm0.52.6indirect
crates.iowindows_aarch64_msvc0.52.6indirect
crates.iowindows_i686_gnu0.52.6indirect
crates.iowindows_i686_gnullvm0.52.6indirect
crates.iowindows_i686_msvc0.52.6indirect
crates.iowindows_x86_64_gnu0.52.6indirect
crates.iowindows_x86_64_gnullvm0.52.6indirect
crates.iowindows_x86_64_msvc0.52.6indirect
crates.iowinsafe0.0.19indirect
crates.iowit-bindgen0.57.1indirect
crates.iowriteable0.6.3indirect
crates.ioyoke0.8.3indirect
crates.ioyoke-derive0.8.2indirect
crates.iozerocopy0.8.52indirect
crates.iozerocopy-derive0.8.52indirect
crates.iozerofrom0.1.8indirect
crates.iozerofrom-derive0.1.7indirect
crates.iozerotrie0.2.4indirect
crates.iozerovec0.11.6indirect
crates.iozerovec-derive0.11.3indirect
crates.iozmij1.0.21indirect
crates.iozstd0.13.3indirect
crates.iozstd-safe7.2.4indirect
crates.iozstd-sys2.0.16+zstd.1.5.7indirect
Dependency advisories 13

This repository publishes no package the index resolves, so its own dependency graph was assessed — 255 packages, which also include development and test pins that never ship: 13 carry known advisories, of which 2 are direct.

PackageVersionRelationSeverityAdvisoriesFixed in
capnp0.14.11indirectcritical20.24.0
failure0.1.8indirectcritical4
remove_dir_all0.5.3indirectlow20.8.0
ansi_term0.12.1directunknown1
tempdir0.3.7directunknown1
bincode1.3.3indirectunknown1
crossbeam-epoch0.9.18indirectunknown10.9.20
custom_derive0.1.7indirectunknown1
difference2.0.0indirectunknown1
fxhash0.2.1indirectunknown1
memmap0.7.0indirectunknown10.7.1-0
paste1.0.15indirectunknown1
proc-macro-error22.0.1indirectunknown1

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": [],
      "is_fork": false,
      "size_kb": 72341,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "R": 1561,
        "Rust": 772338,
        "Shell": 1485,
        "Python": 1547
      },
      "pushed_at": "2026-07-10T08:21:53Z",
      "created_at": "2017-12-23T11:43:13Z",
      "owner_type": "User",
      "updated_at": "2026-07-24T10:25:47Z",
      "description": "Read alignment statistics for metagenomics",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "GPL-3.0",
      "default_branch": "main",
      "license_spdx_raw": "GPL-3.0",
      "primary_language": "Rust",
      "significant_languages": [
        "Rust"
      ]
    },
    "owner": {
      "blog": "https://research.qut.edu.au/cmr/team/ben-woodcroft",
      "name": "Ben J Woodcroft",
      "type": "User",
      "login": "wwood",
      "company": "Queensland University of Technology",
      "location": "Brisbane, Australia",
      "followers": 363,
      "avatar_url": "https://avatars.githubusercontent.com/u/15348?v=4",
      "created_at": "2008-06-28T03:57:02Z",
      "is_verified": null,
      "public_repos": 243,
      "account_age_days": 6603
    },
    "license": {
      "state": "standard",
      "spdx_id": "GPL-3.0",
      "raw_spdx": "GPL-3.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.8.0",
          "kind": "minor",
          "published_at": "2026-07-08T03:37:16Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2024-01-19T03:42:31Z"
        },
        {
          "tag": "v0.6.1",
          "kind": "patch",
          "published_at": "2021-02-24T21:27:38Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2020-12-10T21:48:20Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2020-08-31T23:33:46Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2020-02-20T22:26:43Z"
        },
        {
          "tag": "v0.3.2",
          "kind": "patch",
          "published_at": "2019-12-14T06:13:30Z"
        },
        {
          "tag": "v0.3.1",
          "kind": "patch",
          "published_at": "2019-11-15T00:50:59Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2019-10-11T01:26:09Z"
        },
        {
          "tag": "v0.2.0-alpha7",
          "kind": "prerelease",
          "published_at": "2019-05-28T02:31:31Z"
        },
        {
          "tag": "v0.2.0-alpha6",
          "kind": "prerelease",
          "published_at": "2019-03-24T01:25:12Z"
        },
        {
          "tag": "v0.2.0-alpha4",
          "kind": "prerelease",
          "published_at": "2019-02-09T13:33:05Z"
        },
        {
          "tag": "v0.2.0-alpha3",
          "kind": "prerelease",
          "published_at": "2019-01-06T23:11:39Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "5501168b14381040e069957fc6d919ce7fd773a7",
          "body": "fix strobealign log error",
          "is_bot": false,
          "headline": "Merge pull request #302 from wwood/strobealign-fix",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-10T08:21:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e2701c1150471bcc1b53b17927c986d2dfe1884",
          "body": null,
          "is_bot": false,
          "headline": "fix strobealign log error",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-10T02:23:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2e5e6c780ec49a1b84f51d870f320ce819a76738",
          "body": "…32gv\n\nUpdate finch to 0.6.3 and needletail to 0.7",
          "is_bot": false,
          "headline": "Merge pull request #301 from wwood/claude/finch-needletail-updates-r6…",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-09T02:09:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5edb965c64d907e3f091809d95eea5d0e4aab98d",
          "body": "finch 0.6.3 requires needletail ^0.7, and needletail carries a\n`links = \"lzma\"` native library, so only one needletail major version\ncan exist in the dependency tree. Move coverm's direct needletail\ndependency from 0.5.* to 0.7.* to match.\n\ngalah is the other consumer of finch/needletail in the tree\n[…]\nnd finch 0.6.*) until a galah release with needletail\n0.7 is published.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01RgeCVEEvbQV5aZR6yST5FU",
          "is_bot": false,
          "headline": "Update finch to 0.6.3 and needletail to 0.7",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-09T01:35:01Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2714a8e01b57ae735c112e8dbda0b4e0bdc989e8",
          "body": null,
          "is_bot": false,
          "headline": "improve changelog",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T04:10:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3caffdd476992753f53e504e68dce3993e538521",
          "body": null,
          "is_bot": false,
          "headline": "remove windows platform",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T03:22:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "528a7bbe9458988129950f3d18d38282beb8cd50",
          "body": null,
          "is_bot": false,
          "headline": "Release v0.8.0",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T03:08:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08a3590151e0da49ec83c18cad3f4e381a287568",
          "body": null,
          "is_bot": false,
          "headline": "add demo to exclude",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T03:07:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6d5a893038dea306e291854005759af3549cfbcb",
          "body": null,
          "is_bot": false,
          "headline": "add Cargo.lock",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T02:56:41Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6821736b0e26d1bb4418840f5cdb51bb68f4adaf",
          "body": null,
          "is_bot": false,
          "headline": "change lto to true in profile.dist",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T02:41:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc7a26b7f40c6790e41c22c808922dc1df97836b",
          "body": null,
          "is_bot": false,
          "headline": "setup dist and add changelog",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-08T02:31:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30b3acdc935ee8e9c8969763df519a4ca0c82e89",
          "body": "…th minimap2.",
          "is_bot": false,
          "headline": "makedb: Improve suggested usage in print, standardise rammap usage wi…",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-07T08:04:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "349930937c3f3a68705e1681f52141016ecb2e9a",
          "body": "galah: Adjust for 0.5.2",
          "is_bot": false,
          "headline": "Merge pull request #299 from wwood/galah_adjust",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-07T04:57:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8e624608adef31ad09ae8d1b93ab4e5538d9e326",
          "body": "… source",
          "is_bot": true,
          "headline": "Fix manually_check_args_at_runtime to accept --run-checkm2 as quality…",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-07T04:47:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9ef832d10c4ec55e8a8afc481b33a155c0a75fc",
          "body": "- Remove harmful `.value_delimiter(' ')` on --dereplication-reference-genomes\n  which would incorrectly split single space-containing paths.\n- Actually wire --dereplication-reference-genomes / -list through to\n  generate_galah_clusterer instead of always passing None, mirroring\n  galah's own referen\n[…]\ning CheckM\n  report is supplied, so makedb --run-checkm2 actually runs.\n\nCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01RLvd19g5t8McWNE8nyTS5x",
          "is_bot": false,
          "headline": "galah: Address PR review comments on 0.5.2 adjustment",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-07T03:51:25Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "51d222523fc60dc5f1517a92f84397324b080ac7",
          "body": null,
          "is_bot": false,
          "headline": "galah: Adjust for 0.5.2",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-07T02:29:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2c488a391c4a610b905eeed60ac206840e94b2b7",
          "body": null,
          "is_bot": false,
          "headline": "makedb: Add further flags. Fix various docs and bugs.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-07T00:14:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d1caaf974de98588b76631f6901a38acc318508e",
          "body": null,
          "is_bot": false,
          "headline": "ARCHITECTURE.md: New file.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-06T03:32:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad0f131024c862ba930bcbdc76250b86d3a44b05",
          "body": "…-ebc0a1\n\nAdd makedb mode to pre-generate mapping databases, and gff",
          "is_bot": false,
          "headline": "Merge pull request #293 from wwood/claude/per-gene-coverage-reporting…",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-06T03:16:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "899a5cc35e932d1f32b2da73d576d927f4103c7f",
          "body": null,
          "is_bot": true,
          "headline": "Merge main into makedb branch",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-06T02:14:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cff2fe3488430a33704d14a73d78b1e5abf1766c",
          "body": "Add minibwa as a mapper",
          "is_bot": false,
          "headline": "Merge pull request #295 from wwood/minibwa",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-07-06T02:08:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bd614ea7ad476c33510beb6c43cea8310c9d947",
          "body": null,
          "is_bot": true,
          "headline": "Use visible alias for rammap params option",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-06T01:58:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "edc2b1f40f4dee5b4ec628b9d2ebe1ce77c2c81f",
          "body": null,
          "is_bot": true,
          "headline": "Clarify rammap single-end test comment",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-06T01:56:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bf83ab192676c7cf5740a79d3b2302a595d9815",
          "body": null,
          "is_bot": true,
          "headline": "Apply rustfmt to merged mapper branches",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-06T01:53:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2ad557312120d0ca8a683207db46f100fb389aff",
          "body": null,
          "is_bot": true,
          "headline": "Merge origin/main and resolve mapper conflicts",
          "author_name": "copilot-swe-agent[bot]",
          "author_login": "Copilot",
          "committed_at": "2026-07-06T01:53:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5222aba4ab101387e8029195896a4bf4a5011cd4",
          "body": "Commit the rammap linux-64 conda package (1.1.1, build hfa8f182_0) into\nthe frozen lockfile so `pixi run --frozen` installs it in the locked CI\njob, matching how strobealign and bwa-mem2 are pinned. Package hash and\nmetadata taken from the bioconda repodata and verified against the\ndownloaded artifa\n[…]\nndency, libgcc >=14, is already satisfied by libgcc 15.1.0 in the lock.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01D4S2TfmfT9BsYgJF5VDz81",
          "is_bot": false,
          "headline": "Add rammap to pixi.lock",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-06T01:46:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ab03e9ba3bd270951cbf975439d44128da155696",
          "body": "rammap's `sr` preset enables fragment mode, which pulls read pairs from a\nsingle input file (this is how rammap maps interleaved reads). For\ngenuinely single-end input (`--single`) that would incorrectly consume\nthe file as interleaved pairs and drop an odd trailing read. Pass\n`--frag no` for ReadFo\n[…]\nmode behaviour.\n\nAdd a single-end rammap smoke test covering this path.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01D4S2TfmfT9BsYgJF5VDz81",
          "is_bot": false,
          "headline": "Map single-end reads correctly with rammap",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-06T01:46:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8af37a01ea58576dac69b226c802317ac8be6646",
          "body": "rammap, like bwa-mem2 and strobealign, is only installed on linux-64 (it\nis not available for osx via bioconda). The macOS CI jobs already skip\nthe bwa_mem2 and strobealign tests for this reason; add rammap to that\nskip list so test_make_rammap does not fail for a missing executable.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01D4S2TfmfT9BsYgJF5VDz81",
          "is_bot": false,
          "headline": "Skip rammap tests on macOS CI",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-06T01:46:10Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "97d41cb421dc517ce82f487b8d6ce143031efab9",
          "body": "rammap (https://github.com/jwanglab/rammap) is a pure-Rust,\nminimap2-compatible read mapper available on Bioconda. Wire it in as a\nnew `--mapper rammap` choice alongside the existing mappers.\n\n- Add MappingProgram::RAMMAP and handle it in every mapping-program match\n  (command construction, index ma\n[…]\n dependency\n  list, and pixi test environment; add a `make` smoke test.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01D4S2TfmfT9BsYgJF5VDz81",
          "is_bot": false,
          "headline": "Add rammap as a mapping option",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-07-06T01:46:10Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a344ba8fd47ea2a187ea5e5109e52a8d8dc85107",
          "body": null,
          "is_bot": false,
          "headline": "remove minibwa-index arg - not needed",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-01T01:49:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "060e0569f82a310ad60282747507e2d4d533ca94",
          "body": null,
          "is_bot": false,
          "headline": "add minibwa-use-index arg",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-01T01:26:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22e8edb2d299a7a8c10b702b80b8f08040679d64",
          "body": null,
          "is_bot": false,
          "headline": "fix macos tests",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-01T00:56:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cc8d8a3c8e8f1b7795005530bd01de14990d241b",
          "body": null,
          "is_bot": false,
          "headline": "remove dashing again",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2026-07-01T00:56:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d21de1771c6fe7e58f2af9106bf07aa5a551d28",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into minibwa",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2026-07-01T00:49:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "feec618cdf0fb8b8fab73c236c5429d2debf6ba8",
          "body": "Update strobealign index to format version 5 for strobealign 0.17.0",
          "is_bot": false,
          "headline": "Merge pull request #296 from wwood/claude/update-strobealign-db-7hos5n",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2026-07-01T00:47:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fab6c51d598a393b54def3c6e9e0ffa3295ee11a",
          "body": "Instead of storing a version-specific strobealign index in git (which\nbreaks whenever strobealign is upgraded to a format that's incompatible\nwith the stored file), generate the index at runtime before the test\nruns. This way the index always matches the currently-installed\nstrobealign version.\n\nAls\n[…]\npendency conflict with\ndashing 0.4.0 over zlib version requirements).\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BUkWFEp9YRYAVwvVDFudGU",
          "is_bot": false,
          "headline": "Fix strobealign pregenerated index test to be version-agnostic",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-26T03:25:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5da16a4d5f0b0abcbcc9e63cfe0b5b7797ac99fc",
          "body": "Regenerated tests/data/7seqs.fna.r100.sti using strobealign 0.17.0, which\nwrites index format version 5. The old index was version 3, incompatible\nwith strobealign >=0.17.0, causing test_strobealign_pregenerated_index to fail.\n\nAlso bumped the minimum strobealign version in pixi.toml to >=0.17.0 to\nmatch the index format.\n\nCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01BUkWFEp9YRYAVwvVDFudGU",
          "is_bot": false,
          "headline": "Update strobealign index to format version 5 for strobealign 0.17.0",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-26T03:05:55Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b6b6d29b33e0e3739ae277e7ac9c11f21bcf13bf",
          "body": "Integrate minibwa (https://github.com/lh3/minibwa) as a `-p minibwa`\nmapping option, modelled on the existing BWA integration since minibwa is\nBWT-based and requires a pre-built index.\n\n- Index: `minibwa index [-t N] <ref.fa> <out.prefix>` (prefix is a\n  positional argument, not `-p`), producing `.l\n[…]\n was only an optional\ngalah precluster method (skani is the default).\n\nAdd assert_cli tests for coupled-read mapping and interleaved rejection.\n\nCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "Add minibwa as a mapper",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-06-20T05:18:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "0b5233a56ddd22083e989cdee924d3167fbffb42",
          "body": "When using --gff with --genome-fasta-files, CoverM concatenates the\nreferences and renames contigs to genome<separator>contig, but the\nGenomesAndContigs map is built from the original (un-prefixed) contig\nIDs. Consulting that map first dropped every feature as unassigned.\n\nResolve the genome using t\n[…]\narator ('~') is set, so genes now\nresolve via the prefixed contig name as documented.\n\nAdd a regression test mapping to --genome-fasta-directory with a GFF that\nuses the generated genome~contig names.",
          "is_bot": false,
          "headline": "genes: Fix genome resolution for generated concatenated references",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-11T23:17:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ead1bd1deb5372eeef663fa8c7b0677b4f4e81cb",
          "body": "When --gff is given, report the contig each feature lies on as an extra\noutput column, and in genome mode also report the genome. The genome is\nresolved from the genome definition supplied on the command line (genome\nFASTAs, --genome-definition or --separator), and features on contigs not\nassigned t\n[…]\ngenome] entry columns.\n- Pad the synthesised relative_abundance \"unmapped\" row to keep columns\n  aligned when entries carry the extra leading columns.\n- Update help text, README and tests accordingly.",
          "is_bot": false,
          "headline": "genes: Report contig (and genome in genome mode) columns",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-11T12:31:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "95435c143d164436f6c537d8cb65964bad3e548f",
          "body": "Extend the per-gene coverage feature to `coverm genome`. When `--gff` is\nsupplied, coverage is reported once per gene/feature (using the chosen\nmethod(s)) rather than once per genome, reusing the same gene_coverage\nimplementation as `coverm contig`.\n\n- Add --gff/--gff-feature-type to the genome subc\n[…]\n gene_coverage when --gff is set, and label the\n  output column \"Gene\".\n- Document the feature (including the genome~contig renaming caveat) in the\n  full help and README, and add an integration test.",
          "is_bot": false,
          "headline": "genome: Support per-gene coverage via --gff",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-11T12:11:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5eb83f23049679e96eae37ef989854d2e2bea624",
          "body": "Add a new `--gff` option to `coverm contig` that reports coverage once per\ngene/feature (using the chosen coverage method(s)) rather than once per\ncontig. The user supplies a GFF (or GTF) file defining the features.\n\nPer-gene coverage is computed by slicing the per-contig pileup for each\nfeature's c\n[…]\n_base, anir) a read is assigned to a feature when its leftmost\nmapped position falls within the feature's coordinates. An optional\n`--gff-feature-type` restricts reporting to features of a given type.",
          "is_bot": false,
          "headline": "contig: Add --gff option to report coverage per gene",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-10T21:02:51Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "4d5a1360caae9986c54b6d2363e8991e564f83c9",
          "body": "Address two review comments on PR #290:\n\n- makedb no longer calls check_reference_existence, which for BWA inspects\n  pre-existing index files beside the input reference. That made it impossible\n  to build, say, a bwa-mem database from a FASTA that already had a bwa-mem2\n  index next to it (the part\n[…]\nhe selected thread count to 'strobealign --create-index' via -t, so\n  'coverm makedb -p strobealign -t N' actually indexes with N threads, matching\n  the minimap2 path and the --threads documentation.",
          "is_bot": false,
          "headline": "makedb: validate FASTA directly and honor --threads for strobealign",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-10T10:28:48Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "33dee59d56491b3d2f1076be9e65d96b0b9d32df",
          "body": "Replace the is_none()/unwrap() pattern for max_score with a match, which\nclippy's unnecessary_unwrap lint flagged. Behaviour is unchanged: a strictly\nlower score is a loser, an equal score is a tie (pushed), and otherwise (no\nprevious winner, or a strictly higher score) it becomes the new sole winner.\n\nAlso apply rustfmt to the makedb code added in earlier commits. Together this\nlets the cargo-husky pre-commit hook (clippy -D warnings and rustfmt --check)\npass without --no-verify.",
          "is_bot": false,
          "headline": "Fix clippy unnecessary_unwrap in shard_bam_reader; apply rustfmt",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-10T08:53:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5b42c87d8f1c13b241b5a9d36bcbad473f1e9499",
          "body": "Previously 'coverm makedb' rejected strobealign because its index is\nread-length specific and must reside alongside the reference FASTA. Both\nconstraints can be satisfied:\n\n- The read length can be set with --strobealign-params '-r <length>', or\n  estimated by passing an example reads file (strobeal\n[…]\n coverm\ncontig, and document the strobealign workflow.\n\n(--no-verify: the pre-commit clippy hook fails on a pre-existing unrelated\nwarning in src/shard_bam_reader.rs under the current clippy version.)",
          "is_bot": false,
          "headline": "makedb: support strobealign databases via --strobealign-params",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-10T08:45:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7d25dade6cb56c4fad5e279e7175cb9df1d5b3c2",
          "body": "Add a new 'coverm makedb' subcommand that builds persistent mapping\nindexes (databases) from reference genome or contig FASTA files, so they\ncan be reused across multiple 'coverm contig'/'coverm genome' runs\nwithout re-indexing.\n\nThe kind of database is selected with --mapper, and multiple --mapper\n\n[…]\nEADME and release.sh\n  doc generation.\n\nNote: --no-verify used because the pre-commit clippy hook fails on a\npre-existing unrelated warning in src/shard_bam_reader.rs under the\ncurrent clippy version.",
          "is_bot": false,
          "headline": "Add makedb mode to pre-generate mapping databases",
          "author_name": "Claude",
          "author_login": "claude",
          "committed_at": "2026-06-10T07:57:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "789b2f064655129cf321fbda31a57edd4be2afbb",
          "body": null,
          "is_bot": false,
          "headline": "Fixed broken bioconda link",
          "author_name": "Jack Hagen",
          "author_login": "ThisIsNotANamepng",
          "committed_at": "2026-04-08T23:41:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b75eb6c90b00af4e8fdd6c691efdcc299e8c887c",
          "body": null,
          "is_bot": false,
          "headline": "README: Update run dev command to use release mode",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-01-16T22:05:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "55f5b15011dba4b8f54cde1fb58c01c10aa0a2f7",
          "body": null,
          "is_bot": false,
          "headline": "pixi: Make coverm a project so it can be a source package.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-01-13T22:22:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "64a42cc1b46bdd089e062e0215aea62730966820",
          "body": "Suggested by: Steven Robbins.",
          "is_bot": false,
          "headline": "coverm: Add -p minimap2-lr-hq option.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-01-09T03:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f835439452a3c12fd1732b9a7b8347c7c0e71ee4",
          "body": null,
          "is_bot": false,
          "headline": "AGENTS.md: Initial effort.",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2026-01-09T03:20:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c91a9b923da819cee8515ba249b413adc8289edb",
          "body": "…ory (#266)\n\n* Refactor BAM cache path helper\n\n* Revert generated docs\n\n* Rename BAM cache flags\n\n* test: cover cache directory legacy flag in genome",
          "is_bot": false,
          "headline": "Add option to name cached BAM outputs, rename --bam-file-cache-direct…",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-08-23T00:45:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "426a917845cce11cdd0b2f7418b245013fe254e1",
          "body": null,
          "is_bot": false,
          "headline": "fmt: Apply it.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-07-29T00:52:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7399404cdc6ee9861fb46635035c112c211919df",
          "body": null,
          "is_bot": false,
          "headline": "clippy: Apply it.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-07-29T00:52:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2d64a05aa242d7adba35f0ed3afbb6733890e246",
          "body": "Reported by: @sarehaghababaee\nhttps://github.com/wwood/CoverM/discussions/263",
          "is_bot": false,
          "headline": "genome: Do not require checkm-tab-table when min-completeness.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-07-29T00:51:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "249e882e441ecb773cda9a2f300ea91e5ba361c8",
          "body": null,
          "is_bot": false,
          "headline": "test: filter: Towards large header BAM inputs.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-07-23T01:26:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2bc226b258d72f564c74292d6cee22bfcce8c419",
          "body": null,
          "is_bot": false,
          "headline": "add tolerance to no zeros tests",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T06:58:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "86ce10df5be3380de7db33d4a0b9c596afaae27b",
          "body": null,
          "is_bot": false,
          "headline": "update galah to include contig clustering",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7eb2a26890507e8a67721936ff98d89c297c6612",
          "body": null,
          "is_bot": false,
          "headline": "update pixi.lock",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "06ad7633c9a59107355c37eb80cb74d5694b04b3",
          "body": null,
          "is_bot": false,
          "headline": "restrict minimap to below v2.29",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8d9e547f7c28810ce1f26d3986cdfcf34d5b73c1",
          "body": null,
          "is_bot": false,
          "headline": "add osx-arm64 to supported platforms",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "252d4fa8238004458b0c482ae90d8b82ecafec49",
          "body": null,
          "is_bot": false,
          "headline": "switch to proper pixi platform defined dependencies",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee2c1330aa6926efac48f0ea6a2c8df4506a7e42",
          "body": null,
          "is_bot": false,
          "headline": "fix test envs",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f7b670d79460d1b4937d8dd2ed4ec19717c54093",
          "body": null,
          "is_bot": false,
          "headline": "switch to pixi",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a40ff65d1419a75f8862828d831b204ff61cc406",
          "body": null,
          "is_bot": false,
          "headline": "fix clippy",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-07-22T04:07:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9f9118aac39eb1a7ecf22220acc330d9e856a70e",
          "body": "* Fix ANIr example and add test\n\n* Fix ANIr calculation\n\n* fix unused assignment warning",
          "is_bot": false,
          "headline": "Add ANIr coverage method (#258)",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-07-17T05:59:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e062091b0263172648332e7c591a5603def049a6",
          "body": null,
          "is_bot": false,
          "headline": "README: Clarify rpkm/tpm is for contigs/genomes, not genes. Fixed #248.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-05-01T02:53:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e67a92f621c02c71bcd0a781f226f8836fbddcde",
          "body": null,
          "is_bot": false,
          "headline": "update citation to match github docs (#251)",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2025-04-29T23:44:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a425fb280b85cdaf1a100f8f933172360226578",
          "body": "* update citation\n\n* update citation with more info",
          "is_bot": false,
          "headline": "update citation (#250)",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2025-04-28T23:29:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9214faa29a96d35a8fe09d309c594a94819993c0",
          "body": null,
          "is_bot": false,
          "headline": "tests: Harden.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-03-28T04:08:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8a9a89fa1a631bda345ca98d209c9f28231ceb6a",
          "body": null,
          "is_bot": false,
          "headline": "test: Add one for #295.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-03-28T03:23:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74e217600edb199562e5e8d8f6f50850dbc04255",
          "body": "Update demo",
          "is_bot": false,
          "headline": "Merge pull request #240 from wwood/add-demo",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-03-25T06:43:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9325ef517baa603f1a4e3064bcecc51de0511bc5",
          "body": null,
          "is_bot": false,
          "headline": "add markdown tables for outputs",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-03-24T01:21:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ccc2eed4b7aaa2548099a0d09107e920198a3f1f",
          "body": null,
          "is_bot": false,
          "headline": "rewording",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-03-23T23:51:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81be1c595fa1f09f96b78f2fb88040aa71fe3a2a",
          "body": null,
          "is_bot": false,
          "headline": "remove coverage from \"coverage metrics\"",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-03-23T23:49:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ecc745a942bf20779b47c2b07df6b44e26f6ae5",
          "body": null,
          "is_bot": false,
          "headline": "put user into demo folder",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-03-23T23:49:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d42696d7334c2018090db4f9af0772118ad63fe7",
          "body": null,
          "is_bot": false,
          "headline": "move demo before calculation methods",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-03-23T23:47:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d8a21393b2e8a61c67499f812ad3a8b16ce8b07b",
          "body": null,
          "is_bot": false,
          "headline": "add more details to the demo",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-02-28T01:58:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25ea3ca74c4f675a61dc7c37ce61ad34a3945799",
          "body": "Add demo",
          "is_bot": false,
          "headline": "Merge pull request #239 from wwood/add-demo",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2025-02-27T02:56:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93a2549c033ea82b8bc33d528887ae85f46bd94e",
          "body": null,
          "is_bot": false,
          "headline": "demo: add more details",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-02-27T02:55:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8964a2aa1326e369d2d2513718ab44d9253ae6b0",
          "body": null,
          "is_bot": false,
          "headline": "add demo content and walkthrough",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2025-02-26T04:32:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e8cd947a9aa17b47f7cca7cb2b19f53e87e64a94",
          "body": null,
          "is_bot": false,
          "headline": "README.md: Add citation.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-01-28T00:54:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "eb27cfb31a7bb7ce2375f6bc3cb22b1d65ab3afb",
          "body": "Add arxiv doi",
          "is_bot": false,
          "headline": "Merge pull request #237 from wwood/AroneyS-patch-2",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-01-28T00:34:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38bee0f2ef6e4bb83d671d4af937d55246b21819",
          "body": "add strobealign to dependencies",
          "is_bot": false,
          "headline": "Merge pull request #235 from wwood/update-readme",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-01-28T00:33:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "04ff45c963227637a0048b786cc5568aa0706e60",
          "body": null,
          "is_bot": false,
          "headline": "Add arxiv doi",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2025-01-27T22:25:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5e3c9cf5aeb8e10f973c21997e5365046b693fcd",
          "body": "Fixes #108\nReported by: @LvbBo",
          "is_bot": false,
          "headline": "genomes_and_contigs: Improve error message for non-unique contig names.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-01-25T21:42:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "946ff4b17af520521d4133359a471cf9921e7112",
          "body": "Update title",
          "is_bot": false,
          "headline": "Merge pull request #236 from wwood/AroneyS-patch-1",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2025-01-14T00:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f60206fe31653fff5c8ea5bf017b5fd9be828e93",
          "body": null,
          "is_bot": false,
          "headline": "Update CITATION.cff",
          "author_name": "Samuel Aroney",
          "author_login": "AroneyS",
          "committed_at": "2025-01-14T00:34:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e782c997bfe5538497391066df43661fcc52206b",
          "body": null,
          "is_bot": false,
          "headline": "add \"one of\"",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2024-12-18T23:25:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "83588d7366a09609a19eb2062072e5c194d64d01",
          "body": null,
          "is_bot": false,
          "headline": "add strobealign to dependencies",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2024-12-18T05:05:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e9938d35847b97e3ece5c1721b50c8a07e500e81",
          "body": "fix dereplication docs",
          "is_bot": false,
          "headline": "Merge pull request #231 from wwood/fix-docs",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-12-05T03:50:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "446e4250f6645c1119ec812a8b21a63154151660",
          "body": null,
          "is_bot": false,
          "headline": "fix skani case",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2024-12-05T02:51:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38618c543b1cf88741c5bdebd33ca067940395d6",
          "body": null,
          "is_bot": false,
          "headline": "fix dereplication docs",
          "author_name": "AroneyS",
          "author_login": "AroneyS",
          "committed_at": "2024-12-05T01:10:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cb7b4583e9ae0e05b547ee5ad34afcbec63aad2d",
          "body": "Strobealign aemb",
          "is_bot": false,
          "headline": "Merge pull request #225 from wwood/strobealign-aemb",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-22T23:27:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31e28b4eac3d9dba7fc7f546fe00518da60ff36b",
          "body": null,
          "is_bot": false,
          "headline": "test: Fix syntax.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-22T23:23:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74f99d118de897c0d626cf478dac3bd9ba48c753",
          "body": null,
          "is_bot": false,
          "headline": "Cargo.toml: Downgrade htslib to 0.46.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-22T23:09:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5ea22030179e4730406666d6a5946e4443eb9eb",
          "body": null,
          "is_bot": false,
          "headline": "Merge branch 'main' into strobealign-aemb",
          "author_name": "Ben J Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-22T22:58:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f3855fd17699848bc496a20f8c0a17a22f68af9b",
          "body": "Reported by: Hongyu Duan.",
          "is_bot": false,
          "headline": "lib: Accept u32 NM tags.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-22T22:37:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0829d962a0c9008fc63eb67a1dde384e341ab706",
          "body": null,
          "is_bot": false,
          "headline": "strobealign: Adjust for v4 databases.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-06T21:54:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f93e739395373420f3f089180cb3ad8b4e8ff14e",
          "body": "Fixes #219.\n\nSuggested by: @SDmetagenomics.",
          "is_bot": false,
          "headline": "mapq filtering: Implement it.",
          "author_name": "Ben Woodcroft",
          "author_login": "wwood",
          "committed_at": "2024-10-06T21:54:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 13,
      "commits_last_year": 55,
      "latest_release_at": "2026-07-08T03:37:16Z",
      "latest_release_tag": "v0.8.0",
      "releases_from_tags": false,
      "days_since_last_push": 17,
      "active_weeks_last_year": 10,
      "days_since_latest_release": 19,
      "mean_days_between_releases": 288.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "coverm",
          "exists": true,
          "license": "GPL-3.0",
          "keywords": [],
          "ecosystem": "crates",
          "matches_repo": true,
          "registry_url": "https://crates.io/crates/coverm",
          "is_deprecated": false,
          "latest_version": "0.8.0",
          "repository_url": "https://github.com/wwood/CoverM",
          "versions_count": 11,
          "total_downloads": 16928,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": 40,
          "first_published_at": "2019-03-24T01:51:41.729243Z",
          "latest_published_at": "2026-07-08T03:08:36.708976Z",
          "latest_version_yanked": false,
          "days_since_latest_publish": 19
        }
      ]
    },
    "popularity": {
      "forks": 37,
      "stars": 402,
      "watchers": 9,
      "fork_history": {
        "days": [
          {
            "date": "2019-12-29",
            "count": 1
          },
          {
            "date": "2020-02-23",
            "count": 1
          },
          {
            "date": "2020-04-03",
            "count": 1
          },
          {
            "date": "2020-04-11",
            "count": 1
          },
          {
            "date": "2020-05-21",
            "count": 1
          },
          {
            "date": "2020-05-23",
            "count": 1
          },
          {
            "date": "2021-01-14",
            "count": 1
          },
          {
            "date": "2021-09-23",
            "count": 1
          },
          {
            "date": "2021-10-13",
            "count": 1
          },
          {
            "date": "2021-11-11",
            "count": 1
          },
          {
            "date": "2021-12-16",
            "count": 1
          },
          {
            "date": "2022-01-19",
            "count": 1
          },
          {
            "date": "2022-02-26",
            "count": 1
          },
          {
            "date": "2022-04-06",
            "count": 1
          },
          {
            "date": "2022-04-10",
            "count": 1
          },
          {
            "date": "2022-06-27",
            "count": 1
          },
          {
            "date": "2022-10-27",
            "count": 1
          },
          {
            "date": "2022-10-29",
            "count": 1
          },
          {
            "date": "2023-02-22",
            "count": 1
          },
          {
            "date": "2023-04-22",
            "count": 1
          },
          {
            "date": "2023-04-26",
            "count": 1
          },
          {
            "date": "2023-08-31",
            "count": 1
          },
          {
            "date": "2024-01-16",
            "count": 1
          },
          {
            "date": "2024-01-23",
            "count": 1
          },
          {
            "date": "2024-01-24",
            "count": 1
          },
          {
            "date": "2024-08-26",
            "count": 1
          },
          {
            "date": "2024-09-23",
            "count": 1
          },
          {
            "date": "2024-10-25",
            "count": 1
          },
          {
            "date": "2025-01-25",
            "count": 1
          },
          {
            "date": "2025-02-03",
            "count": 1
          },
          {
            "date": "2025-03-04",
            "count": 1
          },
          {
            "date": "2025-04-10",
            "count": 1
          },
          {
            "date": "2025-06-26",
            "count": 1
          },
          {
            "date": "2025-12-10",
            "count": 1
          },
          {
            "date": "2026-01-19",
            "count": 1
          },
          {
            "date": "2026-04-08",
            "count": 1
          },
          {
            "date": "2026-04-17",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 37,
        "total_forks": 37
      },
      "star_history": null,
      "open_issues_and_prs": 68
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "Cargo.toml"
      ],
      "largest_source_bytes": 157623,
      "source_files_sampled": 21,
      "oversized_source_files": 4,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 289
    },
    "dependencies": {
      "manifests": [
        "Cargo.toml"
      ],
      "advisories": {
        "error": null,
        "scope": "repository_graph",
        "source": "osv",
        "findings": [
          {
            "name": "capnp",
            "direct": false,
            "version": "0.14.11",
            "severity": "critical",
            "ecosystem": "crates",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-5w5r-mf82-595p",
              "RUSTSEC-2025-0143"
            ],
            "fixed_version": "0.24.0",
            "advisory_count": 2,
            "oldest_advisory_days": 214
          },
          {
            "name": "failure",
            "direct": false,
            "version": "0.1.8",
            "severity": "critical",
            "ecosystem": "crates",
            "cvss_score": 9.8,
            "advisory_ids": [
              "GHSA-jq66-xh47-j9f3",
              "GHSA-r98r-j25q-rmpr",
              "RUSTSEC-2019-0036",
              "RUSTSEC-2020-0036"
            ],
            "fixed_version": null,
            "advisory_count": 4,
            "oldest_advisory_days": 2447
          },
          {
            "name": "remove_dir_all",
            "direct": false,
            "version": "0.5.3",
            "severity": "low",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "GHSA-mc8h-8q98-g5hr",
              "RUSTSEC-2023-0018"
            ],
            "fixed_version": "0.8.0",
            "advisory_count": 2,
            "oldest_advisory_days": 1248
          },
          {
            "name": "ansi_term",
            "direct": true,
            "version": "0.12.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2021-0139"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 1803
          },
          {
            "name": "tempdir",
            "direct": true,
            "version": "0.3.7",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2018-0017"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 3085
          },
          {
            "name": "bincode",
            "direct": false,
            "version": "1.3.3",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2025-0141"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 222
          },
          {
            "name": "crossbeam-epoch",
            "direct": false,
            "version": "0.9.18",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0204"
            ],
            "fixed_version": "0.9.20",
            "advisory_count": 1,
            "oldest_advisory_days": 20
          },
          {
            "name": "custom_derive",
            "direct": false,
            "version": "0.1.7",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2025-0058"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 322
          },
          {
            "name": "difference",
            "direct": false,
            "version": "2.0.0",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2020-0095"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 2044
          },
          {
            "name": "fxhash",
            "direct": false,
            "version": "0.2.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2025-0057"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 324
          },
          {
            "name": "memmap",
            "direct": false,
            "version": "0.7.0",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2020-0077"
            ],
            "fixed_version": "0.7.1-0",
            "advisory_count": 1,
            "oldest_advisory_days": 2062
          },
          {
            "name": "paste",
            "direct": false,
            "version": "1.0.15",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2024-0436"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 657
          },
          {
            "name": "proc-macro-error2",
            "direct": false,
            "version": "2.0.1",
            "severity": "unknown",
            "ecosystem": "crates",
            "cvss_score": null,
            "advisory_ids": [
              "RUSTSEC-2026-0173"
            ],
            "fixed_version": null,
            "advisory_count": 1,
            "oldest_advisory_days": 49
          }
        ],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {
          "low": 1,
          "unknown": 10,
          "critical": 2
        },
        "advisory_count": 18,
        "affected_count": 13,
        "assessed_count": 255,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 2
      },
      "ecosystems": [
        "crates"
      ],
      "dependencies": [
        {
          "name": "bio",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "2.0.*"
        },
        {
          "name": "rust-htslib",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.46.*"
        },
        {
          "name": "clap",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "4.*"
        },
        {
          "name": "clap_complete",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "4.*"
        },
        {
          "name": "log",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4.*"
        },
        {
          "name": "env_logger",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.11.*"
        },
        {
          "name": "nix",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.29.*"
        },
        {
          "name": "tempdir",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.3.*"
        },
        {
          "name": "tempfile",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "3.*"
        },
        {
          "name": "ansi_term",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.12"
        },
        {
          "name": "lazy_static",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.4.0"
        },
        {
          "name": "rand",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.8.*"
        },
        {
          "name": "serde",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.0"
        },
        {
          "name": "version-compare",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.0"
        },
        {
          "name": "bird_tool_utils",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": ">=0.5.2, <0.6.0"
        },
        {
          "name": "galah",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": null
        },
        {
          "name": "bird_tool_utils-man",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.4.0"
        },
        {
          "name": "roff",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.2.*"
        },
        {
          "name": "needletail",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "0.7.*"
        },
        {
          "name": "csv",
          "manifest": "Cargo.toml",
          "ecosystem": "crates",
          "version_constraint": "1.*"
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "ansi_term",
            "direct": true,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "bio",
            "direct": true,
            "version": "2.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "bird_tool_utils",
            "direct": true,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "bird_tool_utils-man",
            "direct": true,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "clap",
            "direct": true,
            "version": "4.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "clap_complete",
            "direct": true,
            "version": "4.6.6",
            "ecosystem": "crates"
          },
          {
            "name": "csv",
            "direct": true,
            "version": "1.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "env_logger",
            "direct": true,
            "version": "0.10.2",
            "ecosystem": "crates"
          },
          {
            "name": "env_logger",
            "direct": true,
            "version": "0.11.11",
            "ecosystem": "crates"
          },
          {
            "name": "galah",
            "direct": true,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "lazy_static",
            "direct": true,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "log",
            "direct": true,
            "version": "0.4.33",
            "ecosystem": "crates"
          },
          {
            "name": "needletail",
            "direct": true,
            "version": "0.7.3",
            "ecosystem": "crates"
          },
          {
            "name": "nix",
            "direct": true,
            "version": "0.29.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": true,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "rand",
            "direct": true,
            "version": "0.8.6",
            "ecosystem": "crates"
          },
          {
            "name": "roff",
            "direct": true,
            "version": "0.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "roff",
            "direct": true,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "rust-htslib",
            "direct": true,
            "version": "0.46.0",
            "ecosystem": "crates"
          },
          {
            "name": "serde",
            "direct": true,
            "version": "1.0.228",
            "ecosystem": "crates"
          },
          {
            "name": "tempdir",
            "direct": true,
            "version": "0.3.7",
            "ecosystem": "crates"
          },
          {
            "name": "tempfile",
            "direct": true,
            "version": "3.27.0",
            "ecosystem": "crates"
          },
          {
            "name": "version-compare",
            "direct": true,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "addr2line",
            "direct": false,
            "version": "0.25.1",
            "ecosystem": "crates"
          },
          {
            "name": "adler2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "aho-corasick",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "anstream",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle",
            "direct": false,
            "version": "1.0.14",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-parse",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-query",
            "direct": false,
            "version": "1.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "anstyle-wincon",
            "direct": false,
            "version": "3.0.11",
            "ecosystem": "crates"
          },
          {
            "name": "anyhow",
            "direct": false,
            "version": "1.0.103",
            "ecosystem": "crates"
          },
          {
            "name": "approx",
            "direct": false,
            "version": "0.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "assert_cli",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "autocfg",
            "direct": false,
            "version": "1.5.1",
            "ecosystem": "crates"
          },
          {
            "name": "backtrace",
            "direct": false,
            "version": "0.3.76",
            "ecosystem": "crates"
          },
          {
            "name": "bincode",
            "direct": false,
            "version": "1.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "bio-types",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "bit-set",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bit-vec",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": false,
            "version": "1.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "bitflags",
            "direct": false,
            "version": "2.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "buffer-redux",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "bv",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "bytecount",
            "direct": false,
            "version": "0.6.9",
            "ecosystem": "crates"
          },
          {
            "name": "bytemuck",
            "direct": false,
            "version": "1.25.0",
            "ecosystem": "crates"
          },
          {
            "name": "byteorder",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "bzip2",
            "direct": false,
            "version": "0.6.1",
            "ecosystem": "crates"
          },
          {
            "name": "capnp",
            "direct": false,
            "version": "0.14.11",
            "ecosystem": "crates"
          },
          {
            "name": "cargo-husky",
            "direct": false,
            "version": "1.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "cc",
            "direct": false,
            "version": "1.2.65",
            "ecosystem": "crates"
          },
          {
            "name": "cfg-if",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "cfg_aliases",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "checkm",
            "direct": false,
            "version": "0.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "clap_builder",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "clap_lex",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "cmake",
            "direct": false,
            "version": "0.1.58",
            "ecosystem": "crates"
          },
          {
            "name": "colorchoice",
            "direct": false,
            "version": "1.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "colored",
            "direct": false,
            "version": "1.9.4",
            "ecosystem": "crates"
          },
          {
            "name": "concurrent-queue",
            "direct": false,
            "version": "2.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "crc32fast",
            "direct": false,
            "version": "1.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": "csv-core",
            "direct": false,
            "version": "0.1.13",
            "ecosystem": "crates"
          },
          {
            "name": "custom_derive",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "defmt",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "defmt-macros",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "defmt-parser",
            "direct": false,
            "version": "1.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "derive-new",
            "direct": false,
            "version": "0.5.9",
            "ecosystem": "crates"
          },
          {
            "name": "derive-new",
            "direct": false,
            "version": "0.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "difference",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "disjoint",
            "direct": false,
            "version": "0.8.0",
            "ecosystem": "crates"
          },
          {
            "name": "displaydoc",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "editdistancek",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "either",
            "direct": false,
            "version": "1.16.0",
            "ecosystem": "crates"
          },
          {
            "name": "enum-map",
            "direct": false,
            "version": "2.7.3",
            "ecosystem": "crates"
          },
          {
            "name": "enum-map-derive",
            "direct": false,
            "version": "0.17.0",
            "ecosystem": "crates"
          },
          {
            "name": "env_filter",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "environment",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "equivalent",
            "direct": false,
            "version": "1.0.2",
            "ecosystem": "crates"
          },
          {
            "name": "errno",
            "direct": false,
            "version": "0.3.14",
            "ecosystem": "crates"
          },
          {
            "name": "failure",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "crates"
          },
          {
            "name": "failure_derive",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "crates"
          },
          {
            "name": "fastrand",
            "direct": false,
            "version": "2.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "feature-probe",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "finch",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "find-msvc-tools",
            "direct": false,
            "version": "0.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "fixedbitset",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "flate2",
            "direct": false,
            "version": "1.1.9",
            "ecosystem": "crates"
          },
          {
            "name": "form_urlencoded",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "fs-utils",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "fuchsia-cprng",
            "direct": false,
            "version": "0.1.1",
            "ecosystem": "crates"
          },
          {
            "name": "fxhash",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.2.17",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.3.4",
            "ecosystem": "crates"
          },
          {
            "name": "getrandom",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "gimli",
            "direct": false,
            "version": "0.32.3",
            "ecosystem": "crates"
          },
          {
            "name": "glob",
            "direct": false,
            "version": "0.3.3",
            "ecosystem": "crates"
          },
          {
            "name": "hashbrown",
            "direct": false,
            "version": "0.17.1",
            "ecosystem": "crates"
          },
          {
            "name": "heck",
            "direct": false,
            "version": "0.5.0",
            "ecosystem": "crates"
          },
          {
            "name": "hermit-abi",
            "direct": false,
            "version": "0.5.2",
            "ecosystem": "crates"
          },
          {
            "name": "home",
            "direct": false,
            "version": "0.5.12",
            "ecosystem": "crates"
          },
          {
            "name": "hts-sys",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "humantime",
            "direct": false,
            "version": "2.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_collections",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_locale_core",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_normalizer_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_properties_data",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "icu_provider",
            "direct": false,
            "version": "2.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna",
            "direct": false,
            "version": "1.1.0",
            "ecosystem": "crates"
          },
          {
            "name": "idna_adapter",
            "direct": false,
            "version": "1.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ieee754",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "indexmap",
            "direct": false,
            "version": "2.14.0",
            "ecosystem": "crates"
          },
          {
            "name": "is-terminal",
            "direct": false,
            "version": "0.4.17",
            "ecosystem": "crates"
          },
          {
            "name": "is_terminal_polyfill",
            "direct": false,
            "version": "1.70.2",
            "ecosystem": "crates"
          },
          {
            "name": "itertools",
            "direct": false,
            "version": "0.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "itertools-num",
            "direct": false,
            "version": "0.1.3",
            "ecosystem": "crates"
          },
          {
            "name": "itoa",
            "direct": false,
            "version": "1.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "jiff",
            "direct": false,
            "version": "0.2.31",
            "ecosystem": "crates"
          },
          {
            "name": "jiff-static",
            "direct": false,
            "version": "0.2.31",
            "ecosystem": "crates"
          },
          {
            "name": "jobserver",
            "direct": false,
            "version": "0.1.34",
            "ecosystem": "crates"
          },
          {
            "name": "libbz2-rs-sys",
            "direct": false,
            "version": "0.2.5",
            "ecosystem": "crates"
          },
          {
            "name": "libc",
            "direct": false,
            "version": "0.2.186",
            "ecosystem": "crates"
          },
          {
            "name": "liblzma",
            "direct": false,
            "version": "0.3.6",
            "ecosystem": "crates"
          },
          {
            "name": "liblzma-sys",
            "direct": false,
            "version": "0.3.13",
            "ecosystem": "crates"
          },
          {
            "name": "libm",
            "direct": false,
            "version": "0.2.16",
            "ecosystem": "crates"
          },
          {
            "name": "libz-sys",
            "direct": false,
            "version": "1.1.29",
            "ecosystem": "crates"
          },
          {
            "name": "linear-map",
            "direct": false,
            "version": "1.2.0",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.12.1",
            "ecosystem": "crates"
          },
          {
            "name": "linux-raw-sys",
            "direct": false,
            "version": "0.4.15",
            "ecosystem": "crates"
          },
          {
            "name": "litemap",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "matrixmultiply",
            "direct": false,
            "version": "0.3.10",
            "ecosystem": "crates"
          },
          {
            "name": "memchr",
            "direct": false,
            "version": "2.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "memmap",
            "direct": false,
            "version": "0.7.0",
            "ecosystem": "crates"
          },
          {
            "name": "miniz_oxide",
            "direct": false,
            "version": "0.8.9",
            "ecosystem": "crates"
          },
          {
            "name": "multimap",
            "direct": false,
            "version": "0.10.1",
            "ecosystem": "crates"
          },
          {
            "name": "murmurhash3",
            "direct": false,
            "version": "0.0.5",
            "ecosystem": "crates"
          },
          {
            "name": "nalgebra",
            "direct": false,
            "version": "0.32.6",
            "ecosystem": "crates"
          },
          {
            "name": "nalgebra-macros",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "ndarray",
            "direct": false,
            "version": "0.16.1",
            "ecosystem": "crates"
          },
          {
            "name": "newtype_derive",
            "direct": false,
            "version": "0.1.6",
            "ecosystem": "crates"
          },
          {
            "name": "num-complex",
            "direct": false,
            "version": "0.4.6",
            "ecosystem": "crates"
          },
          {
            "name": "num-integer",
            "direct": false,
            "version": "0.1.46",
            "ecosystem": "crates"
          },
          {
            "name": "num-rational",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "num-traits",
            "direct": false,
            "version": "0.2.19",
            "ecosystem": "crates"
          },
          {
            "name": "object",
            "direct": false,
            "version": "0.37.3",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell",
            "direct": false,
            "version": "1.21.4",
            "ecosystem": "crates"
          },
          {
            "name": "once_cell_polyfill",
            "direct": false,
            "version": "1.70.2",
            "ecosystem": "crates"
          },
          {
            "name": "ordered-float",
            "direct": false,
            "version": "4.6.0",
            "ecosystem": "crates"
          },
          {
            "name": "paste",
            "direct": false,
            "version": "1.0.15",
            "ecosystem": "crates"
          },
          {
            "name": "percent-encoding",
            "direct": false,
            "version": "2.3.2",
            "ecosystem": "crates"
          },
          {
            "name": "petgraph",
            "direct": false,
            "version": "0.6.5",
            "ecosystem": "crates"
          },
          {
            "name": "pkg-config",
            "direct": false,
            "version": "0.3.33",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic",
            "direct": false,
            "version": "1.13.1",
            "ecosystem": "crates"
          },
          {
            "name": "portable-atomic-util",
            "direct": false,
            "version": "0.2.7",
            "ecosystem": "crates"
          },
          {
            "name": "potential_utf",
            "direct": false,
            "version": "0.1.5",
            "ecosystem": "crates"
          },
          {
            "name": "ppv-lite86",
            "direct": false,
            "version": "0.2.21",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-error-attr2",
            "direct": false,
            "version": "2.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro-error2",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "proc-macro2",
            "direct": false,
            "version": "1.0.106",
            "ecosystem": "crates"
          },
          {
            "name": "quick-error",
            "direct": false,
            "version": "1.2.3",
            "ecosystem": "crates"
          },
          {
            "name": "quote",
            "direct": false,
            "version": "1.0.46",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "5.3.0",
            "ecosystem": "crates"
          },
          {
            "name": "r-efi",
            "direct": false,
            "version": "6.0.0",
            "ecosystem": "crates"
          },
          {
            "name": "rand_chacha",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.3.1",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.4.2",
            "ecosystem": "crates"
          },
          {
            "name": "rand_core",
            "direct": false,
            "version": "0.6.4",
            "ecosystem": "crates"
          },
          {
            "name": "rand_distr",
            "direct": false,
            "version": "0.4.3",
            "ecosystem": "crates"
          },
          {
            "name": "rawpointer",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "rayon",
            "direct": false,
            "version": "1.12.0",
            "ecosystem": "crates"
          },
          {
            "name": "rayon-core",
            "direct": false,
            "version": "1.13.0",
            "ecosystem": "crates"
          },
          {
            "name": "rdrand",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "regex",
            "direct": false,
            "version": "1.12.4",
            "ecosystem": "crates"
          },
          {
            "name": "regex-automata",
            "direct": false,
            "version": "0.4.14",
            "ecosystem": "crates"
          },
          {
            "name": "regex-syntax",
            "direct": false,
            "version": "0.8.11",
            "ecosystem": "crates"
          },
          {
            "name": "remove_dir_all",
            "direct": false,
            "version": "0.5.3",
            "ecosystem": "crates"
          },
          {
            "name": "rustc-demangle",
            "direct": false,
            "version": "0.1.27",
            "ecosystem": "crates"
          },
          {
            "name": "rustc_version",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "0.38.44",
            "ecosystem": "crates"
          },
          {
            "name": "rustix",
            "direct": false,
            "version": "1.1.4",
            "ecosystem": "crates"
          },
          {
            "name": "rustversion",
            "direct": false,
            "version": "1.0.22",
            "ecosystem": "crates"
          },
          {
            "name": "ryu",
            "direct": false,
            "version": "1.0.23",
            "ecosystem": "crates"
          },
          {
            "name": "safe_arch",
            "direct": false,
            "version": "0.7.4",
            "ecosystem": "crates"
          },
          {
            "name": "semver",
            "direct": false,
            "version": "0.1.20",
            "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.150",
            "ecosystem": "crates"
          },
          {
            "name": "shlex",
            "direct": false,
            "version": "2.0.1",
            "ecosystem": "crates"
          },
          {
            "name": "simba",
            "direct": false,
            "version": "0.8.1",
            "ecosystem": "crates"
          },
          {
            "name": "simd-adler32",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "smallvec",
            "direct": false,
            "version": "1.15.2",
            "ecosystem": "crates"
          },
          {
            "name": "stable_deref_trait",
            "direct": false,
            "version": "1.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "statrs",
            "direct": false,
            "version": "0.17.1",
            "ecosystem": "crates"
          },
          {
            "name": "strsim",
            "direct": false,
            "version": "0.11.1",
            "ecosystem": "crates"
          },
          {
            "name": "strum",
            "direct": false,
            "version": "0.26.3",
            "ecosystem": "crates"
          },
          {
            "name": "strum_macros",
            "direct": false,
            "version": "0.26.4",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "1.0.109",
            "ecosystem": "crates"
          },
          {
            "name": "syn",
            "direct": false,
            "version": "2.0.118",
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": false,
            "version": "0.12.6",
            "ecosystem": "crates"
          },
          {
            "name": "synstructure",
            "direct": false,
            "version": "0.13.2",
            "ecosystem": "crates"
          },
          {
            "name": "termcolor",
            "direct": false,
            "version": "1.4.1",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "1.0.69",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "1.0.69",
            "ecosystem": "crates"
          },
          {
            "name": "thiserror-impl",
            "direct": false,
            "version": "2.0.18",
            "ecosystem": "crates"
          },
          {
            "name": "tinystr",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "triple_accel",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "typenum",
            "direct": false,
            "version": "1.20.1",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-ident",
            "direct": false,
            "version": "1.0.24",
            "ecosystem": "crates"
          },
          {
            "name": "unicode-xid",
            "direct": false,
            "version": "0.2.6",
            "ecosystem": "crates"
          },
          {
            "name": "url",
            "direct": false,
            "version": "2.5.8",
            "ecosystem": "crates"
          },
          {
            "name": "utf8_iter",
            "direct": false,
            "version": "1.0.4",
            "ecosystem": "crates"
          },
          {
            "name": "utf8parse",
            "direct": false,
            "version": "0.2.2",
            "ecosystem": "crates"
          },
          {
            "name": "vcpkg",
            "direct": false,
            "version": "0.2.15",
            "ecosystem": "crates"
          },
          {
            "name": "vec_map",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "wasi",
            "direct": false,
            "version": "0.11.1+wasi-snapshot-preview1",
            "ecosystem": "crates"
          },
          {
            "name": "wasip2",
            "direct": false,
            "version": "1.0.4+wasi-0.2.12",
            "ecosystem": "crates"
          },
          {
            "name": "which",
            "direct": false,
            "version": "6.0.3",
            "ecosystem": "crates"
          },
          {
            "name": "wide",
            "direct": false,
            "version": "0.7.33",
            "ecosystem": "crates"
          },
          {
            "name": "winapi",
            "direct": false,
            "version": "0.3.9",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-i686-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-util",
            "direct": false,
            "version": "0.1.11",
            "ecosystem": "crates"
          },
          {
            "name": "winapi-x86_64-pc-windows-gnu",
            "direct": false,
            "version": "0.4.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-link",
            "direct": false,
            "version": "0.2.1",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.59.0",
            "ecosystem": "crates"
          },
          {
            "name": "windows-sys",
            "direct": false,
            "version": "0.61.2",
            "ecosystem": "crates"
          },
          {
            "name": "windows-targets",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_aarch64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_i686_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnu",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_gnullvm",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "windows_x86_64_msvc",
            "direct": false,
            "version": "0.52.6",
            "ecosystem": "crates"
          },
          {
            "name": "winsafe",
            "direct": false,
            "version": "0.0.19",
            "ecosystem": "crates"
          },
          {
            "name": "wit-bindgen",
            "direct": false,
            "version": "0.57.1",
            "ecosystem": "crates"
          },
          {
            "name": "writeable",
            "direct": false,
            "version": "0.6.3",
            "ecosystem": "crates"
          },
          {
            "name": "yoke",
            "direct": false,
            "version": "0.8.3",
            "ecosystem": "crates"
          },
          {
            "name": "yoke-derive",
            "direct": false,
            "version": "0.8.2",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy",
            "direct": false,
            "version": "0.8.52",
            "ecosystem": "crates"
          },
          {
            "name": "zerocopy-derive",
            "direct": false,
            "version": "0.8.52",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom",
            "direct": false,
            "version": "0.1.8",
            "ecosystem": "crates"
          },
          {
            "name": "zerofrom-derive",
            "direct": false,
            "version": "0.1.7",
            "ecosystem": "crates"
          },
          {
            "name": "zerotrie",
            "direct": false,
            "version": "0.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec",
            "direct": false,
            "version": "0.11.6",
            "ecosystem": "crates"
          },
          {
            "name": "zerovec-derive",
            "direct": false,
            "version": "0.11.3",
            "ecosystem": "crates"
          },
          {
            "name": "zmij",
            "direct": false,
            "version": "1.0.21",
            "ecosystem": "crates"
          },
          {
            "name": "zstd",
            "direct": false,
            "version": "0.13.3",
            "ecosystem": "crates"
          },
          {
            "name": "zstd-safe",
            "direct": false,
            "version": "7.2.4",
            "ecosystem": "crates"
          },
          {
            "name": "zstd-sys",
            "direct": false,
            "version": "2.0.16+zstd.1.5.7",
            "ecosystem": "crates"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 255,
        "direct_count": 23,
        "indirect_count": 232
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 9,
        "merged_prs": 37,
        "open_issues": 59,
        "closed_ratio": 0.706,
        "closed_issues": 142,
        "closed_unmerged_prs": 45
      },
      "bus_factor": 1,
      "bot_contributors": 3,
      "top_contributors": [
        {
          "type": "User",
          "login": "wwood",
          "commits": 566,
          "avatar_url": "https://avatars.githubusercontent.com/u/15348?v=4"
        },
        {
          "type": "User",
          "login": "AroneyS",
          "commits": 48,
          "avatar_url": "https://avatars.githubusercontent.com/u/41124903?v=4"
        },
        {
          "type": "User",
          "login": "claude",
          "commits": 15,
          "avatar_url": "https://avatars.githubusercontent.com/u/81847?v=4"
        },
        {
          "type": "User",
          "login": "lavafroth",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/107522312?v=4"
        },
        {
          "type": "User",
          "login": "rhysnewell",
          "commits": 4,
          "avatar_url": "https://avatars.githubusercontent.com/u/42852939?v=4"
        },
        {
          "type": "User",
          "login": "ThisIsNotANamepng",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/74005486?v=4"
        }
      ],
      "contributors_sampled": 6,
      "top_contributor_share": 0.887
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "release.yml",
        "test-coverm.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "Cargo.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": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 8,
            "reason": "5 out of 6 merged PRs checked by a CI test -- score normalized to 8",
            "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 1/16 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 10,
            "reason": "project has 5 contributing companies or organizations",
            "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": 10,
            "reason": "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 3 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": null,
            "reason": "packaging workflow not 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": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 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": "13 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "5501168b14381040e069957fc6d919ce7fd773a7",
        "ran_at": "2026-07-27T09:22:15Z",
        "aggregate_score": 4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": true
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-10T08:23:47Z",
      "oldest_open_prs": [
        {
          "number": 267,
          "created_at": "2025-08-23T09:59:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 268,
          "created_at": "2025-08-23T11:59:54Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 272,
          "created_at": "2025-09-02T07:33:28Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 284,
          "created_at": "2026-01-09T03:18:42Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 288,
          "created_at": "2026-03-16T09:34:14Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 291,
          "created_at": "2026-06-10T20:54:33Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 292,
          "created_at": "2026-06-10T20:56:51Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 294,
          "created_at": "2026-06-19T23:03:36Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 298,
          "created_at": "2026-07-02T11:44:19Z",
          "last_comment_at": null,
          "last_comment_author": null
        }
      ],
      "last_merged_pr_at": "2026-07-10T08:21:41Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": [
        {
          "number": 16,
          "created_at": "2019-12-12T03:25:04Z",
          "last_comment_at": "2025-12-08T04:19:58Z",
          "last_comment_author": "diego00012138"
        },
        {
          "number": 20,
          "created_at": "2020-02-07T01:37:48Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 25,
          "created_at": "2020-04-07T12:49:52Z",
          "last_comment_at": "2020-12-17T11:48:26Z",
          "last_comment_author": "apcamargo"
        },
        {
          "number": 52,
          "created_at": "2021-01-06T11:22:34Z",
          "last_comment_at": "2023-03-20T13:00:06Z",
          "last_comment_author": "jakobnissen"
        },
        {
          "number": 66,
          "created_at": "2021-04-29T16:40:53Z",
          "last_comment_at": "2021-05-14T01:04:42Z",
          "last_comment_author": "ZongzhiWu"
        },
        {
          "number": 68,
          "created_at": "2021-05-10T16:24:11Z",
          "last_comment_at": "2021-05-19T03:54:49Z",
          "last_comment_author": "jianshu93"
        },
        {
          "number": 69,
          "created_at": "2021-05-12T14:10:30Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 71,
          "created_at": "2021-05-18T20:36:58Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 75,
          "created_at": "2021-06-26T11:21:17Z",
          "last_comment_at": "2021-06-28T03:44:40Z",
          "last_comment_author": "wwood"
        },
        {
          "number": 76,
          "created_at": "2021-07-02T18:45:18Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 94,
          "created_at": "2021-11-09T17:14:13Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 101,
          "created_at": "2022-01-26T02:00:29Z",
          "last_comment_at": null,
          "last_comment_author": null
        },
        {
          "number": 106,
          "created_at": "2022-02-26T03:35:45Z",
          "last_comment_at": "2022-03-08T02:47:52Z",
          "last_comment_author": "jianshu93"
        },
        {
          "number": 121,
          "created_at": "2022-06-27T21:45:46Z",
          "last_comment_at": "2022-07-19T04:47:25Z",
          "last_comment_author": "rhysnewell"
        },
        {
          "number": 124,
          "created_at": "2022-07-14T19:05:38Z",
          "last_comment_at": "2022-10-11T09:21:29Z",
          "last_comment_author": "wwood"
        },
        {
          "number": 126,
          "created_at": "2022-08-02T07:24:15Z",
          "last_comment_at": "2023-07-11T14:43:42Z",
          "last_comment_author": "Somebodyatthdoor"
        },
        {
          "number": 127,
          "created_at": "2022-08-03T01:29:36Z",
          "last_comment_at": "2023-09-01T15:43:30Z",
          "last_comment_author": "faylward"
        },
        {
          "number": 133,
          "created_at": "2022-09-21T07:26:23Z",
          "last_comment_at": "2022-11-03T15:04:21Z",
          "last_comment_author": "earlylifemicro-lab"
        },
        {
          "number": 138,
          "created_at": "2022-11-01T12:32:06Z",
          "last_comment_at": "2022-11-02T12:52:12Z",
          "last_comment_author": "linlin0026"
        },
        {
          "number": 144,
          "created_at": "2022-12-14T18:22:28Z",
          "last_comment_at": "2022-12-17T11:29:49Z",
          "last_comment_author": "B-1991-ing"
        }
      ]
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/wwood/CoverM",
    "host": "github.com",
    "name": "CoverM",
    "owner": "wwood"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 58,
      "inputs": {
        "security": 48,
        "vitality": 67,
        "community": 48,
        "governance": 58,
        "engineering": 64
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 67,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 61,
            "inputs": {
              "commits_last_year": 55,
              "human_commit_share": 0.94,
              "days_since_last_push": 17,
              "active_weeks_last_year": 10
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 17 days ago",
                "points": 28.8,
                "status": "partial",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 17
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "10/52 weeks with commits",
                "points": 6.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "55 commits in the last year",
                "points": 15.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 55
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "good",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "releases_count": 13,
              "latest_release_tag": "v0.8.0",
              "releases_from_tags": false,
              "days_since_latest_release": 19,
              "mean_days_between_releases": 288.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "13 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 13
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 19 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 19
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~288.7 days",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 288.7
                    }
                  }
                ],
                "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": 17,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 17 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 17
                    }
                  }
                ],
                "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": 48,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "moderate",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 60,
            "inputs": {
              "forks": 37,
              "stars": 402,
              "watchers": 9,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "402 stars",
                "points": 42.2,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 402
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "37 forks",
                "points": 13,
                "status": "partial",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 37
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "9 watchers",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "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 (GPL-3.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "GPL-3.0"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "critical",
            "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": 27,
            "inputs": {
              "packages": [
                "coverm"
              ],
              "dependents": null,
              "ecosystems": "crates",
              "total_downloads": 16928,
              "monthly_downloads": 40
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "40 downloads/month across crates",
                "points": 21.5,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 40,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 58,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "at_risk",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 30,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 6,
              "top_contributor_share": 0.887
            },
            "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 89% of commits",
                "points": 2.5,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 89
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "6 contributors",
                "points": 8.1,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 6
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "moderate",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "merged_prs": 37,
              "open_issues": 59,
              "closed_issues": 142,
              "issue_closed_ratio": 0.706,
              "closed_unmerged_prs": 45
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "71% of issues closed",
                "points": 33,
                "status": "partial",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 71
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "37/82 decided PRs merged",
                "points": 17.3,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 37,
                      "decided": 82
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/16 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 67,
            "inputs": {
              "followers": 363,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "wwood",
              "public_repos": 243,
              "account_age_days": 6603
            },
            "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": "363 followers of wwood",
                "points": 18.4,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 363,
                      "login": "wwood"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "243 public repos, account ~18 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 243
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 18
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "coverm"
              ],
              "ecosystems": "crates",
              "any_deprecated": false,
              "min_days_since_publish": 19
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on crates",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "crates"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 19 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 19
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "11 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 11
                    }
                  }
                ],
                "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": "moderate",
        "name": "Engineering Quality",
        "value": 64,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "5 out of 6 merged PRs checked by a CI test -- score normalized to 8",
                "points": 16,
                "status": "partial",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 48,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 40,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 17,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 1,
              "scorecard_aggregate": 4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "5 out of 6 merged PRs checked by a CI test -- score normalized to 8",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 1/16 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 5 contributing companies or organizations",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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 3 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 not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "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": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "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": "13 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "good",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): Indirect dependencies free of known advisories. Remaining weights renormalized. Matched 255 resolved dependencies against OSV. This repository publishes no package the index resolves, so the repository dependency graph was assessed instead. That graph mixes development and test pins with shipped dependencies, so only the declared runtime dependencies are scored; transitive findings are reported as context and excluded from the score. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "indirect_dependencies_free_of_known_advisories"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_repository",
                "params": {
                  "assessed": 255
                }
              },
              {
                "code": "advisories_repo_graph_caveat",
                "params": {}
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 79,
            "inputs": {
              "source": "osv",
              "advisories": 18,
              "affected_packages": 13,
              "assessed_packages": 255,
              "unassessed_packages": 0,
              "affected_by_severity": "critical 2, low 1, unknown 10",
              "direct_affected_packages": 2
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "2 affected: ansi_term 0.12.1 (unknown), tempdir 0.3.7 (unknown)",
                "points": 24.7,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_affected",
                    "params": {
                      "count": 2,
                      "packages": "ansi_term 0.12.1 (unknown), tempdir 0.3.7 (unknown)"
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "transitive set not separable from development and test dependencies in this scope",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_scope_not_separable",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "2 advisory-carrying package(s) unaddressed past 90 days; oldest published 3085 days ago",
                "points": 34.8,
                "status": "partial",
                "details": [
                  {
                    "code": "advisories_stale",
                    "params": {
                      "days": 90,
                      "count": 2,
                      "oldest": 3085
                    }
                  }
                ],
                "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": 255,
              "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": 3
            },
            "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": 75,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 73,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.532,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 289
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.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": "50 of 94 human commits state their intent (structured subject or explanatory body)",
                "points": 28.4,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 50,
                      "sampled": 94
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "Cargo.lock"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.09,
              "toolchain_manifests": [
                "Cargo.toml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Cargo.toml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "Cargo.toml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Rust (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "9 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 9,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "dependency automation configured, none observed in the sampled commits",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "dependency_bot_config_only",
                    "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": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "primary_language": "Rust",
              "largest_source_bytes": 157623,
              "source_files_sampled": 21,
              "oversized_source_files": 4
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Rust (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Rust"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "4/21 source files over 60KB",
                "points": 44.5,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 21,
                      "oversized": 4
                    }
                  }
                ],
                "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-27T09:22:40.844638Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/w/wwood/CoverM.svg",
  "full_name": "wwood/CoverM",
  "license_state": "standard",
  "license_spdx": "GPL-3.0"
}

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 statisticscrates.io.