RepoTrust

Leaderboard github.com

rhysd/NyaoVim

Web-enhanced Extensible Neovim Frontend

  • View repository ↗
  • TypeScript
  • ★ 2,234
  • commit 99db8fa62125
  • scored 2026-11-13
  • scoring prov-4+qual-2+sec-2

AI provenance

0%

none-detected

Confidence
65%
Coverage
100%

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

Code quality

53/100

weak

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.

  • Repository: https://github.com/rhysd/NyaoVim
  • Commit: 99db8fa62125106d7182d7c8e09aca5b04f7f76e
  • Generated: 2026-11-13T23:38:19+00:00
  • Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 0 none-detected 65% 100%
Code quality 53 weak 90% 100%
Security 55 weak 85% 100%

AI provenance

No AI attribution or AI-consistent velocity signals detected.

  • Explicitly attributed share (lower bound): 0.0%
  • Unattributed share in AI-consistent velocity bursts: 0.0%
  • Estimated AI-generated share: 0.0%
Month Lines added Attributed to AI
2016-02 225 0%
2016-07 148 0%
2016-08 426 0%
2016-09 14 0%
2016-10 61 0%
2016-11 62 0%
2016-12 50 0%
2017-05 22 0%
2017-08 32 0%
2017-11 301 0%
2018-02 4 0%
2018-04 47 0%

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

Area Score
Complexity (lizard) 51
Duplication 100
Code smells (Opengrep) 61
Tests and CI 43
Documentation 80
Type safety 0
Process (Scorecard review/maintenance) 0
  • Functions: 81; mean complexity 1.9, 90th percentile 3; 0 complex and 1 long functions
  • Duplicated lines: 0.0% of 624 compared
  • Tests: 142 test lines for 984 source lines (ratio 0.14); CI test commands: none detected; 2% of recent source commits also change tests
  • Docs missing or thin: changelog

Most complex functions:

Security

Security posture is weak: no high-impact findings. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 46
Vulnerable dependencies (OSV) n/a
CI workflows (zizmor) n/a
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard 17
  • Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
  • OpenSSF Scorecard aggregate: 1.6/10 (published 2026-11-02)

Top findings

Severity Finding Location
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] main/browser-config.ts:26
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument config_dir has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] main/browser-config.ts:27
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument path has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] main/main.ts:47
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] renderer/nyaovim-app.ts:26
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument dir has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled variables in file paths are validated. [confidence low] renderer/nyaovim-app.ts:28
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] renderer/nyaovim-app.ts:30
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal: Detected possible user input going into a path.join or path.resolve function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to sanitize or validate user input first. [confidence low] renderer/nyaovim-app.ts:30
medium opengrep/javascript.lang.security.audit.detect-non-literal-require: Detected the use of require(variable). Calling require with a non-literal argument might allow an attacker to load and run arbitrary code, or access arbitrary files. [confidence low] renderer/nyaovim-app.ts:92
medium opengrep/javascript.browser.security.eval-detected: Detected the use of eval(). eval() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by external sources. [confidence low] renderer/nyaovim-app.ts:111

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

  • Source lines: 984; test lines: 142
Language Lines
TypeScript 1,011
Shell 84
JavaScript 31

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