RepoTrust

Leaderboard github.com

shinshin86/mesh-avatar-studio

Turn one illustration into an animated 2D mesh avatar with a coding agent and a local editor

  • View repository ↗
  • TypeScript
  • ★ 2,344
  • commit 6d2817aa0869
  • scored 2026-11-14
  • scoring prov-4+qual-2+sec-2

AI provenance

70%

explicit

Confidence
95%
Coverage
100%

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

Code quality

70/100

adequate

Confidence
90%
Coverage
100%

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

Security

55/100

weak

Confidence
85%
Coverage
100%

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

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 70 explicit 95% 100%
Code quality 70 adequate 90% 100%
Security 55 weak 85% 100%

AI provenance

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

  • Explicitly attributed share (lower bound): 69.5%
  • Unattributed share in AI-consistent velocity bursts: 4.4%
  • Estimated AI-generated share: 69.5%
AI tool Attributed commits Lines added
Claude Code 130 31,681
OpenAI Codex 8 329
  • AI tooling configured in repo: claude-code, generic-agent

Current source lines last changed by AI-attributed commits: 23,054 of 32,450.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.781 2.341 0.33x
Security 2.125 0.319 6.66x
  • Stylometry index: 0.03 per 1,000 lines (narrated steps 0, placeholders 0, assistant phrasing 0, emoji 2). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-09 6,147 0%
2026-10 35,096 77%
2026-11 4,826 100%

Evidence

  • Claude Code: on merged branch (c220f4eb0a) (73d6531bca88)
  • Claude Code: trailer 'Co-Authored-By: Claude' (4732e76fdb52)
  • Claude Code: trailer 'Co-Authored-By: Claude' (afb3e6d7dc2f)
  • Claude Code: trailer 'Co-Authored-By: Claude' (571566de024a)
  • Claude Code: trailer 'Co-Authored-By: Claude' (01a34e8a7987)
  • Claude Code: trailer 'Co-Authored-By: Claude' (3a2eed52b46f)
  • OpenAI Codex: on merged branch (fceeced452) (8263722b9874)
  • OpenAI Codex: on merged branch (3af275e0b1) (58f6598d78ad)
  • OpenAI Codex: on merged branch (3af275e0b1) (bcaedfad55fa)
  • OpenAI Codex: on merged branch (3af275e0b1) (2ee6dd29d88e)
  • OpenAI Codex: on merged branch (3af275e0b1) (f7798fd037ec)
  • OpenAI Codex: on merged branch (3af275e0b1) (4c5929fcd67d)
  • Claude Code: trailer 'Co-Authored-By: Claude' (1b90af02aee7)
  • Claude Code: trailer 'Co-Authored-By: Claude' (f9a1542b1ba6)
  • Claude Code: trailer 'Co-Authored-By: Claude' (7566e98426f5)

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 adequate: test-to-source ratio 0.33, CI runs tests; 30% of function code in complex or long functions; 11% duplicated lines. Weakest area: complexity.

Area Score
Complexity (lizard) 41
Duplication 53
Code smells (Opengrep) 86
Tests and CI 92
Documentation 65
Type safety 86
Process (Scorecard review/maintenance) n/a
  • Functions: 2,648; mean complexity 3.3, 90th percentile 7; 85 complex and 28 long functions
  • Duplicated lines: 10.7% of 25,956 compared
  • Tests: 10,731 test lines for 32,450 source lines (ratio 0.33); CI test commands: npm test, go test, cargo test; 75% of recent source commits also change tests
  • Docs missing or thin: contributing, changelog

Most complex functions:

Security

Security posture is weak: 21 known vulnerabilities in 10 dependencies; 2 high-severity SAST findings; 15 high-severity workflow issues. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 85
Vulnerable dependencies (OSV) 34
CI workflows (zizmor) 4
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a
  • Known vulnerabilities: 21 in 10 packages (critical 4, high 4, medium 8, low 1)

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

Top findings

Severity Finding Location
critical osv/RUSTSEC-2026-0369: zip@2.6.1 (crates.io) is affected by RUSTSEC-2026-0369 native/Cargo.lock
critical osv/GHSA-m665-v7pm-7grj: zip@2.6.1 (crates.io) is affected by GHSA-m665-v7pm-7grj native/Cargo.lock
critical osv/GHSA-5gmw-xhrv-c9v3: tinypool@1.1.1 (npm) is affected by GHSA-5gmw-xhrv-c9v3 package-lock.json
critical osv/GHSA-85c8-ppgw-ccpr: tinypool@1.1.1 (npm) is affected by GHSA-85c8-ppgw-ccpr package-lock.json
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: process.platform === 'win32' && command === 'npm'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{sh [confidence low] packages/create-mesh-avatar-studio/index.mjs:82
high opengrep/javascript.lang.security.audit.spawn-shell-true: Found '$SPAWN' with '{shell: process.platform === 'win32'}'. This is dangerous because this call will spawn the command using a shell process. Doing so propagates current shell settings and variables, which makes it much easier for a malicious actor to execute commands. Use '{shell: false}' instead. [confidence low] tools/prepack.mjs:11
high osv/RUSTSEC-2026-0367: zip@2.6.1 (crates.io) is affected by RUSTSEC-2026-0367 native/Cargo.lock
high osv/GHSA-q7v9-x93c-xqv3: zip@2.6.1 (crates.io) is affected by RUSTSEC-2026-0429, GHSA-q7v9-x93c-xqv3 native/Cargo.lock
high osv/GHSA-68fv-2mgg-jv7q: source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q package-lock.json
high osv/GHSA-587h-7wmj-h5pm: vite@7.3.6 (npm) is affected by GHSA-587h-7wmj-h5pm package-lock.json
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:20
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:23
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:65
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:82
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:85
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:98
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:104
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:39
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:42
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:54
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:57
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:63
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:20
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:23
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/release.yml:50

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

  • star-burst: 2344 stars in 41 days (57/day)

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

  • Source lines: 32,450; test lines: 10,731
Language Lines
Rust 16,067
TypeScript 15,567
JavaScript 8,078
Python 2,651
C 798
Shell 20

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