RepoTrust

leolaporte/beatcheck

Opinionated TUI RSS reader for Linux and Mac

https://github.com/leolaporte/beatcheck · commit df63006cb02d · scored 2026-11-13 · scoring prov-4+qual-2+sec-2

unreviewed-ai-risk

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

Dispute this score or request a re-score Full report JSON

Scores

Unreviewed AI code risk: a large share of this code is explicitly AI-attributed, and its tests or review process are weak while quality or security scores are low.

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 86 explicit 92% 100%
Code quality 62 weak 90% 100%
Security 60 weak 85% 100%

AI provenance

Explicit AI attribution on 87% of first-party code added; an estimated 87% including velocity signals.

AI tool Attributed commits Lines added
Claude Code 75 5,177

Current source lines last changed by AI-attributed commits: 4,231 of 4,995.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.0 0.0 n/a
Security 0.709 0.0 n/a
Month Lines added Attributed to AI
2026-01 3,974 95%
2026-02 1,494 61%
2026-03 21 0%
2026-04 88 100%
2026-06 405 100%

Evidence

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is weak: test-to-source ratio 0.00, CI runs tests; 14% of function code in complex or long functions; 8% duplicated lines. Weakest area: docs.

Area Score
Complexity (lizard) 65
Duplication 61
Code smells (Opengrep) 100
Tests and CI 45
Documentation 40
Type safety n/a
Process (Scorecard review/maintenance) n/a

Most complex functions:

Security

Security posture is weak: 27 known vulnerabilities in 16 dependencies; 8 high-severity workflow issues. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 95
Vulnerable dependencies (OSV) 38
CI workflows (zizmor) 19
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a

Top findings

Severity Finding Location
high osv/RUSTSEC-2026-0194: [email protected] (crates.io) is affected by RUSTSEC-2026-0194 Cargo.lock
high osv/RUSTSEC-2026-0195: [email protected] (crates.io) is affected by RUSTSEC-2026-0195 Cargo.lock
high osv/GHSA-4w2j-m93h-cj5j: [email protected] (crates.io) is affected by RUSTSEC-2026-0185, GHSA-4w2j-m93h-cj5j Cargo.lock
high osv/RUSTSEC-2026-0340: [email protected] (crates.io) is affected by RUSTSEC-2026-0340 Cargo.lock
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:17
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:20
high zizmor/excessive-permissions: overly broad permissions [confidence high] .github/workflows/release.yml:10
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:36
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:39
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:63
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:75
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:80
medium osv/RUSTSEC-2026-0190: [email protected] (crates.io) is affected by RUSTSEC-2026-0190 Cargo.lock
medium osv/RUSTSEC-2026-0258: [email protected] (crates.io) is affected by RUSTSEC-2026-0258 Cargo.lock
medium osv/RUSTSEC-2026-0459: [email protected] (crates.io) is affected by RUSTSEC-2026-0459 Cargo.lock
medium osv/RUSTSEC-2026-0253: [email protected] (crates.io) is affected by RUSTSEC-2026-0253 Cargo.lock
medium osv/RUSTSEC-2024-0436: [email protected] (crates.io) is affected by RUSTSEC-2024-0436 Cargo.lock
medium osv/RUSTSEC-2026-0441: [email protected] (crates.io) is affected by RUSTSEC-2026-0441 Cargo.lock
medium osv/RUSTSEC-2026-0338: [email protected] (crates.io) is affected by RUSTSEC-2026-0338 Cargo.lock
medium osv/RUSTSEC-2026-0339: [email protected] (crates.io) is affected by RUSTSEC-2026-0339 Cargo.lock
medium osv/RUSTSEC-2026-0342: [email protected] (crates.io) is affected by RUSTSEC-2026-0342 Cargo.lock
medium osv/RUSTSEC-2026-0523: [email protected] (crates.io) is affected by RUSTSEC-2026-0523 Cargo.lock
medium osv/RUSTSEC-2026-0524: [email protected] (crates.io) is affected by RUSTSEC-2026-0524 Cargo.lock
medium osv/RUSTSEC-2026-0538: [email protected] (crates.io) is affected by RUSTSEC-2026-0538 Cargo.lock
medium osv/GHSA-cq8v-f236-94qc: [email protected] (crates.io) is affected by RUSTSEC-2026-0097, GHSA-cq8v-f236-94qc Cargo.lock

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Distribution signals

Signals consistent with a repository that exists to distribute a download. They are heuristics, not a verdict; release files were not downloaded or inspected.

Repository profile

Language Lines
Rust 4,944
Shell 51

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/leolaporte/beatcheck/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/leolaporte/beatcheck/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/leolaporte/beatcheck/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/leolaporte/beatcheck/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/leolaporte/beatcheck/security.svg)](https://repotrust.synapticcyber.com/r/github.com/leolaporte/beatcheck/)