RepoTrust

shinshin86/mesh-avatar-studio

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

https://github.com/shinshin86/mesh-avatar-studio · commit 6d2817aa0869 · scored 2026-11-14 · scoring prov-4+qual-2+sec-2

RepoTrust ai badge RepoTrust quality badge RepoTrust security badge

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

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.

AI tool Attributed commits Lines added
Claude Code 130 31,681
OpenAI Codex 8 329

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
Month Lines added Attributed to AI
2026-09 6,147 0%
2026-10 35,096 77%
2026-11 4,826 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 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

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

Top findings

Severity Finding Location
critical osv/RUSTSEC-2026-0369: [email protected] (crates.io) is affected by RUSTSEC-2026-0369 native/Cargo.lock
critical osv/GHSA-m665-v7pm-7grj: [email protected] (crates.io) is affected by GHSA-m665-v7pm-7grj native/Cargo.lock
critical osv/GHSA-5gmw-xhrv-c9v3: [email protected] (npm) is affected by GHSA-5gmw-xhrv-c9v3 package-lock.json
critical osv/GHSA-85c8-ppgw-ccpr: [email protected] (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: [email protected] (crates.io) is affected by RUSTSEC-2026-0367 native/Cargo.lock
high osv/GHSA-q7v9-x93c-xqv3: [email protected] (crates.io) is affected by RUSTSEC-2026-0429, GHSA-q7v9-x93c-xqv3 native/Cargo.lock
high osv/GHSA-68fv-2mgg-jv7q: [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q package-lock.json
high osv/GHSA-587h-7wmj-h5pm: [email protected] (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

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 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/)