RepoTrust

Leaderboard github.com

benedictbrady/prop-amm

  • View repository ↗
  • Rust
  • ★ 30
  • commit 47dd714c50c5
  • scored 2026-11-13
  • scoring prov-4+qual-2+sec-2

unreviewed-ai-risk

AI provenance

100%

explicit

Confidence
70%
Coverage
100%

Estimated share of AI-generated code. Explicit attribution is a lower bound.

Code quality

58/100

weak

Confidence
90%
Coverage
100%

Complexity, duplication, lint density, tests, CI, docs and review process.

Security

62/100

weak

Confidence
85%
Coverage
100%

Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.

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) 100 explicit 70% 100%
Code quality 58 weak 90% 100%
Security 62 weak 85% 100%

AI provenance

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

  • Explicitly attributed share (lower bound): 100.0%
  • Unattributed share in AI-consistent velocity bursts: 0.0%
  • Estimated AI-generated share: 100.0%
AI tool Attributed commits Lines added
Claude Code 1 4,474

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

Too few lines in one group to compare finding densities.

  • Stylometry index: 0.95 per 1,000 lines (narrated steps 4, placeholders 0, assistant phrasing 0, emoji 0). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-01 4,474 100%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (47dd714c50c5)
  • step-by-step narration comment: // Step 1: Initialize pool (client/src/i)
  • step-by-step narration comment: // Step 2: Create/Get vault ATAs (client/src/i)
  • step-by-step narration comment: // Step 3: Set vaults (client/src/i)
  • step-by-step narration comment: // Step 4: Update Oracle with piecewise curves (PRICES ONLY) (client/src/i)

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.07, no CI test run detected; 23% of function code in complex or long functions; 8% duplicated lines. Weakest area: testing.

Area Score
Complexity (lizard) 50
Duplication 63
Code smells (Opengrep) 100
Tests and CI 33
Documentation 40
Type safety 100
Process (Scorecard review/maintenance) n/a
  • Functions: 130; mean complexity 3.4, 90th percentile 9; 4 complex and 3 long functions
  • Duplicated lines: 7.6% of 2,998 compared
  • Tests: 278 test lines for 4,196 source lines (ratio 0.07); CI test commands: none detected; 100% of recent source commits also change tests
  • Docs missing or thin: license, contributing, changelog

Most complex functions:

Security

Security posture is weak: 37 known vulnerabilities in 28 dependencies. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 88
Vulnerable dependencies (OSV) 17
CI workflows (zizmor) n/a
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a
  • Known vulnerabilities: 37 in 28 packages (critical 0, high 5, medium 9, low 6)

  • Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles

Top findings

Severity Finding Location
high osv/GHSA-82j2-j2ch-gfr8: rustls-webpki@0.101.7 (crates.io) is affected by RUSTSEC-2026-0104, GHSA-82j2-j2ch-gfr8 Cargo.lock
high osv/GHSA-3gc7-fjrx-p6mg: bigint-buffer@1.1.5 (npm) is affected by GHSA-3gc7-fjrx-p6mg client/package-lock.json
high osv/GHSA-w5hq-g745-h8pq: uuid@8.3.2 (npm) is affected by GHSA-w5hq-g745-h8pq client/package-lock.json
high osv/GHSA-96hv-2xvq-fx4p: ws@7.5.10 (npm) is affected by GHSA-96hv-2xvq-fx4p client/package-lock.json
high osv/GHSA-96hv-2xvq-fx4p: ws@8.19.0 (npm) is affected by GHSA-96hv-2xvq-fx4p client/package-lock.json
medium osv/GHSA-g98v-hv3f-hcfr: atty@0.2.14 (crates.io) is affected by RUSTSEC-2021-0145, GHSA-g98v-hv3f-hcfr Cargo.lock
medium osv/RUSTSEC-2024-0375: atty@0.2.14 (crates.io) is affected by RUSTSEC-2024-0375 Cargo.lock
medium osv/RUSTSEC-2025-0141: bincode@1.3.3 (crates.io) is affected by RUSTSEC-2025-0141 Cargo.lock
medium osv/GHSA-fjx5-qpf4-xjf2: borsh@0.10.4 (crates.io) is affected by GHSA-fjx5-qpf4-xjf2 Cargo.lock
medium osv/GHSA-434x-w66g-qw3r: bytes@1.11.0 (crates.io) is affected by RUSTSEC-2026-0007, GHSA-434x-w66g-qw3r Cargo.lock
medium osv/RUSTSEC-2024-0388: derivative@2.2.0 (crates.io) is affected by RUSTSEC-2024-0388 Cargo.lock
medium osv/GHSA-w5vr-6qhr-36cc: ed25519-dalek@1.0.1 (crates.io) is affected by RUSTSEC-2022-0093, GHSA-w5vr-6qhr-36cc Cargo.lock
medium osv/RUSTSEC-2026-0258: h2@0.3.27 (crates.io) is affected by RUSTSEC-2026-0258 Cargo.lock
medium osv/RUSTSEC-2025-0161: libsecp256k1@0.6.0 (crates.io) is affected by RUSTSEC-2025-0161 Cargo.lock
medium osv/RUSTSEC-2026-0186: memmap2@0.5.10 (crates.io) is affected by RUSTSEC-2026-0186 Cargo.lock
medium osv/RUSTSEC-2024-0436: paste@1.0.15 (crates.io) is affected by RUSTSEC-2024-0436 Cargo.lock
medium osv/RUSTSEC-2026-0441: pin-utils@0.1.0 (crates.io) is affected by RUSTSEC-2026-0441 Cargo.lock
medium osv/GHSA-cq8v-f236-94qc: rand@0.7.3 (crates.io) is affected by RUSTSEC-2026-0097, GHSA-cq8v-f236-94qc Cargo.lock
medium osv/GHSA-cq8v-f236-94qc: rand@0.8.5 (crates.io) is affected by RUSTSEC-2026-0097, GHSA-cq8v-f236-94qc Cargo.lock
medium osv/GHSA-c8m5-c952-6cm4: rustls@0.21.12 (crates.io) is affected by RUSTSEC-2026-0346, GHSA-c8m5-c952-6cm4 Cargo.lock
medium osv/RUSTSEC-2025-0134: rustls-pemfile@1.0.4 (crates.io) is affected by RUSTSEC-2025-0134 Cargo.lock
medium osv/RUSTSEC-2026-0382: rustls-webpki@0.101.7 (crates.io) is affected by RUSTSEC-2026-0382 Cargo.lock
medium osv/GHSA-7gcf-g7xr-8hxj: serde_with@3.16.1 (crates.io) is affected by GHSA-7gcf-g7xr-8hxj Cargo.lock
medium osv/RUSTSEC-2026-0191: solana_rbpf@0.8.5 (crates.io) is affected by RUSTSEC-2026-0191 Cargo.lock
medium osv/RUSTSEC-2026-0386: tokio@1.49.0 (crates.io) is affected by RUSTSEC-2026-0386 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.

Repository profile

  • Source lines: 4,196; test lines: 278
Language Lines
Rust 3,376
TypeScript 1,098

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/benedictbrady/prop-amm/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/benedictbrady/prop-amm/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/benedictbrady/prop-amm/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/benedictbrady/prop-amm/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/benedictbrady/prop-amm/security.svg)](https://repotrust.synapticcyber.com/r/github.com/benedictbrady/prop-amm/)