RepoTrust

Leaderboard github.com

nateware/claude-todo

Claude code todo app test

  • View repository ↗
  • TypeScript
  • ★ 0
  • commit 75394bfc6836
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

AI provenance

6%

explicit

Confidence
78%
Coverage
100%

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

Code quality

75/100

adequate

Confidence
90%
Coverage
100%

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

Security

58/100

weak

Confidence
85%
Coverage
100%

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

AI provenance

6% explicit

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

How the score is built

  • Explicitly attributed share6%
  • Unattributed share in AI-pace bursts56%
  • Estimated AI-generated share6%
  • AI tool configuration files1
  • Work sessions at AI pace1
  • Releases at AI pacenot measured
  • Coding-style index (1.0+ means possible)1.81

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
Claude Code142442026-09-302026-10-01

Lines added per month all AI-attributed share

  1. 2026-024,109 · 0% AI
  2. 2026-09210 · 99% AI
  3. 2026-1037 · 100% AI

Findings in AI-attributed lines vs the rest

From git blame: 191 lines trace to AI-attributed commits, 1,470 to others. Too few lines in one group for a fair comparison. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality0.001.36—
Security0.002.04—

Evidence by analyzer

Explicit AI attributionok15 items
attributed_commit_share
43.8%
attributed_commits
14
attributed_loc
244
attributed_loc_share
5.6%
commits
32
effective_loc
4,356
tools_detected
1
AI tool configurationok1 item
artifacts
1
earliest_adoption
2026-02-06
tools_configured
1
workflow_agents
0
Commit velocityok1 item
excluded_import_loc
0
flagged_loc
2,455
flagged_loc_share
56.4%
flagged_units
1
max_loc_per_hour
558.73
measured_loc
4,356
median_loc_per_hour
96.50
pr_timed_units
0
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
7
Release velocityskipped
Coding styleok3 items
count:assistant_voice
0
count:emoji_in_code
0
count:narrated_steps
3
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
0
files:narrated_steps
1
files:placeholder
0
index
1.81
lines_scanned
1,661
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
0
per_kloc:narrated_steps
1.81
per_kloc:placeholder
0
Findings in AI-written linesok
ai_lines
191
blame_failures
0
files_blamed
32
other_lines
1,470
quality:ai_findings
0
quality:ai_per_kloc
0
quality:other_findings
2
quality:other_per_kloc
1.36
security:ai_findings
0
security:ai_per_kloc
0
security:other_findings
3
security:other_per_kloc
2.04

Code quality

75 adequate

Code quality is adequate: test-to-source ratio 1.53, no CI test run detected; 0% of function code in complex or long functions; 3% duplicated lines. Weakest area: testing.

How the score is built

  • Complexity100
  • Duplication82
  • Lint and smells74
  • Tests and CI51
  • Documentation65
  • Type safety100
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok
complex_functions
0
function_nloc
866
functions
91
long_functions
0
many_param_functions
0
mean_ccn
1.91
p90_ccn
3
risky_nloc_share
0.0%
Duplication (jscpd)ok2 items
compared_lines
1,150
duplicated_lines
38
duplicated_share
3.3%
files
32
Lintok
category:best-practice
2
findings
2
scanned_lines
1,629
weighted_findings
2
Tests and CIok
check:ci_present
no
check:ci_runs_lint
no
check:ci_runs_tests
no
check:has_tests
yes
check:test_ratio
yes
check:tests_cochange
no
ci_files
0
cochange_commits
20
cochange_share
15.0%
source_lines
1,661
test_lines
2,547
test_ratio
1.53
Documentationok2 items
  • README.md README.md
  • LICENSE LICENSE
check:changelog
no
check:contributing
no
check:license
yes
check:readme
yes
readme_lines
193
Type safetyok1 item
  • TypeScript strict type checking: frontend/tsconfig.json frontend/tsconfig.json
check:low_escape_density
yes
check:strict_config
yes
escapes
0
escapes_per_kloc
0

Security

58 weak

Security posture is weak: 29 known vulnerabilities in 11 dependencies; 1 high-severity SAST findings. Weakest area: posture.

How the score is built

  • Secrets100
  • Static analysis (SAST)58
  • Vulnerable dependencies35
  • CI workflowsnot measured
  • Security posture0
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
33
declared
33
lookup_errors
0
missing
0
recent
0
Secrets (gitleaks)ok
secrets_current
0
secrets_history
0
secrets_low_confidence
0
secrets_nonprod
0
Static analysis (opengrep)ok
findings
4
findings_high
1
findings_low
0
findings_medium
3
parse_errors
1
scanned_lines
1,629
weighted_findings
2.55
Dependencies (osv-scanner)ok
penalty
63
vulnerabilities
29
vulnerable_packages
11
vulns_critical
1
vulns_high
7
vulns_low
6
vulns_medium
15
vulns_unknown
0
CI workflows (zizmor)skipped
Security postureok
check:dependency_updates
no
check:lockfiles
yes
check:security_policy
no
check:signed_commits
no
signed_commit_share
0.0%
unpinned_manifests
0
Release downloadsok
binary_assets
0
signals
0
suspicious
0

Findings

1 critical8 high20 medium6 low

SeverityRuleLocationMessageTool
critical osv/GHSA-pqg4-j6r4-53mv package-lock.json [email protected] (npm) is affected by GHSA-pqg4-j6r4-53mv Dependencies (osv-scanner)
high opengrep/dockerfile.security.missing-user frontend/Dockerfile:22 By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile... Static analysis (opengrep)
high osv/GHSA-27r3-jxmh-p828 frontend/package-lock.json [email protected] (npm) is affected by GHSA-27r3-jxmh-p828 Dependencies (osv-scanner)
high osv/GHSA-2m5v-pch6-74hx frontend/package-lock.json [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx Dependencies (osv-scanner)
high osv/GHSA-4w7w-5xrc-9h26 frontend/package-lock.json [email protected] (npm) is affected by GHSA-4w7w-5xrc-9h26 Dependencies (osv-scanner)
high osv/GHSA-587h-7wmj-h5pm frontend/package-lock.json [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm Dependencies (osv-scanner)
high osv/GHSA-68fv-2mgg-jv7q frontend/package-lock.json [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q Dependencies (osv-scanner)
high osv/GHSA-qrxm-fqhp-jwvm frontend/package-lock.json [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm Dependencies (osv-scanner)
high osv/GHSA-xjj6-f33q-929c frontend/package-lock.json [email protected] (npm) is affected by GHSA-xjj6-f33q-929c Dependencies (osv-scanner)
medium opengrep/typescript.react.best-practice.react-props-spreading frontend/app/components/todos/TodoItem.tsx:34 It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious... Lint
medium opengrep/typescript.react.best-practice.react-props-spreading frontend/app/components/todos/TodoItem.tsx:35 It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious... Lint
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename backend/db/database.js:14 Detected that function argument `dbPath` 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... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename backend/db/database.js:15 Detected that function argument `dbPath` 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... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename backend/db/migrations.js:40 Detected that function argument `migrationPath` 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... Static analysis (opengrep)
medium osv/GHSA-jggr-w7fw-pc2j backend/package-lock.json [email protected] (npm) is affected by GHSA-jggr-w7fw-pc2j Dependencies (osv-scanner)
medium osv/GHSA-w74x-v6f9-j3xg backend/package-lock.json [email protected] (npm) is affected by GHSA-w74x-v6f9-j3xg Dependencies (osv-scanner)
medium osv/GHSA-w74x-v6f9-j3xg backend/package-lock.json [email protected] (npm) is affected by GHSA-w74x-v6f9-j3xg Dependencies (osv-scanner)
medium osv/GHSA-wjr9-j795-jxcr backend/package-lock.json [email protected] (npm) is affected by GHSA-wjr9-j795-jxcr Dependencies (osv-scanner)
medium osv/GHSA-wjr9-j795-jxcr backend/package-lock.json [email protected] (npm) is affected by GHSA-wjr9-j795-jxcr Dependencies (osv-scanner)
medium osv/GHSA-4qv8-2p9j-2685 frontend/package-lock.json [email protected] (npm) is affected by GHSA-4qv8-2p9j-2685 Dependencies (osv-scanner)
medium osv/GHSA-55wc-3pg8-jfw6 frontend/package-lock.json [email protected] (npm) is affected by GHSA-55wc-3pg8-jfw6 Dependencies (osv-scanner)
medium osv/GHSA-698v-4r3x-3vcv frontend/package-lock.json [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv Dependencies (osv-scanner)
medium osv/GHSA-6pq8-jhm2-2vcw frontend/package-lock.json [email protected] (npm) is affected by GHSA-6pq8-jhm2-2vcw Dependencies (osv-scanner)
medium osv/GHSA-9fm3-97px-rjf6 frontend/package-lock.json [email protected] (npm) is affected by GHSA-9fm3-97px-rjf6 Dependencies (osv-scanner)
medium osv/GHSA-f72v-6w45-q472 frontend/package-lock.json [email protected] (npm) is affected by GHSA-f72v-6w45-q472 Dependencies (osv-scanner)
medium osv/GHSA-p458-7748-mcp3 frontend/package-lock.json @vitest/[email protected] (npm) is affected by GHSA-p458-7748-mcp3 Dependencies (osv-scanner)
medium osv/GHSA-r825-w8mm-5pxw frontend/package-lock.json [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw Dependencies (osv-scanner)
medium osv/GHSA-rq7h-c2jc-7f22 frontend/package-lock.json [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 Dependencies (osv-scanner)
medium osv/GHSA-vfpm-58rq-9qcg frontend/package-lock.json [email protected] (npm) is affected by GHSA-vfpm-58rq-9qcg Dependencies (osv-scanner)
low osv/GHSA-333x-w4r6-6crp backend/package-lock.json [email protected] (npm) is affected by GHSA-333x-w4r6-6crp Dependencies (osv-scanner)
low osv/GHSA-333x-w4r6-6crp backend/package-lock.json [email protected] (npm) is affected by GHSA-333x-w4r6-6crp Dependencies (osv-scanner)
low osv/GHSA-389g-gv7q-r4x8 backend/package-lock.json [email protected] (npm) is affected by GHSA-389g-gv7q-r4x8 Dependencies (osv-scanner)
low osv/GHSA-xhq7-xmqj-769h backend/package-lock.json [email protected] (npm) is affected by GHSA-xhq7-xmqj-769h Dependencies (osv-scanner)
low osv/GHSA-xhq7-xmqj-769h backend/package-lock.json [email protected] (npm) is affected by GHSA-xhq7-xmqj-769h Dependencies (osv-scanner)
low osv/GHSA-9jrq-w75r-8gcw frontend/package-lock.json [email protected] (npm) is affected by GHSA-9jrq-w75r-8gcw Dependencies (osv-scanner)

Tools and coverage

Every analyzer that ran on this commit. A failed or skipped tool is a coverage gap: its share of the score is left out and the coverage figure drops.

AnalyzerPillarStatusVersionFindingsNote
AI tool configurationAI provenanceoksignatures-v10
Explicit AI attributionAI provenanceoksignatures-v10
Release velocityAI provenanceskipped—0
Coding styleAI provenanceok—0
Commit velocityAI provenanceokprov-40
Findings in AI-written linesAI provenanceokgit-blame0
Complexity (lizard)Code qualityoklizard 1.25.10
DocumentationCode qualityok—0
Duplication (jscpd)Code qualityokrepotrust-dup-w60
LintCode qualityokopengrep 1.33.1; rules f1d2b562b4142
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityskipped—0
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.129
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b4144
OpenSSF ScorecardSecurityskipped—0no published OpenSSF Scorecard result for this repo
Secrets (gitleaks)Securityokgitleaks 8.30.10

Score history

Scores from different scoring versions aren't directly comparable.

ScoredCommitScoringAI provenanceQualitySecurity
2026-11-1475394bfc6836prov-5+qual-2+sec-26%7558
2026-11-1475394bfc6836prov-4+qual-2+sec-26%7558

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/nateware/claude-todo/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/nateware/claude-todo/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/nateware/claude-todo/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/nateware/claude-todo/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/nateware/claude-todo/security.svg)](https://repotrust.synapticcyber.com/r/github.com/nateware/claude-todo/)
Full text report
  • Repository: https://github.com/nateware/claude-todo
  • Commit: 75394bfc6836139bc6ddfb45e8d748d5fa4c8828
  • Generated: 2026-11-14T14:52:06+00:00
  • Scorer 0.1.0, scoring prov-5+qual-2+sec-2, report schema v2

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 6 explicit 78% 100%
Code quality 75 adequate 90% 100%
Security 58 weak 85% 100%

AI provenance

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

  • Explicitly attributed share (lower bound): 5.6%
  • Unattributed share in AI-consistent velocity bursts: 56.4%
  • Estimated AI-generated share: 5.6%
AI tool Attributed commits Lines added
Claude Code 14 244
  • AI tooling configured in repo: claude-code

Current source lines last changed by AI-attributed commits: 191 of 1,661.

Too few lines in one group to compare finding densities.

  • Stylometry index: 1.81 per 1,000 lines (narrated steps 3, placeholders 0, assistant phrasing 0, emoji 0). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-02 4,109 0%
2026-09 210 99%
2026-10 37 100%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (75394bfc6836)
  • Claude Code: trailer 'Co-Authored-By: Claude' (29897bb9937a)
  • Claude Code: trailer 'Co-Authored-By: Claude' (5dbbedc20404)
  • Claude Code: trailer 'Co-Authored-By: Claude' (3258a0d340b4)
  • Claude Code: trailer 'Co-Authored-By: Claude' (abac64d80c05)
  • Claude Code: trailer 'Co-Authored-By: Claude' (88a85cbf0888)
  • Claude Code: trailer 'Co-Authored-By: Claude' (62a4e2fabbaf)
  • Claude Code: trailer 'Co-Authored-By: Claude' (dea5e29a1b43)
  • Claude Code: trailer 'Co-Authored-By: Claude' (6fe96f5e4d0a)
  • Claude Code: trailer 'Co-Authored-By: Claude' (42e97d448c90)
  • Claude Code: trailer 'Co-Authored-By: Claude' (9208a8d1c510)
  • Claude Code: trailer 'Co-Authored-By: Claude' (2a7b5d948953)
  • Claude Code: trailer 'Co-Authored-By: Claude' (a995cf285b27)
  • Claude Code: trailer 'Co-Authored-By: Claude' (cd199bdc4b80)
  • .claude/settings.local.json (claude-code configuration) (.claude/sett)

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

Area Score
Complexity (lizard) 100
Duplication 82
Code smells (Opengrep) 74
Tests and CI 51
Documentation 65
Type safety 100
Process (Scorecard review/maintenance) n/a
  • Functions: 91; mean complexity 1.9, 90th percentile 3; 0 complex and 0 long functions
  • Duplicated lines: 3.3% of 1,150 compared
  • Tests: 2,547 test lines for 1,661 source lines (ratio 1.53); CI test commands: none detected; 15% of recent source commits also change tests
  • Docs missing or thin: contributing, changelog

Security

Security posture is weak: 29 known vulnerabilities in 11 dependencies; 1 high-severity SAST findings. Weakest area: posture.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 58
Vulnerable dependencies (OSV) 35
CI workflows (zizmor) n/a
Posture (policy, updates, signing, lockfiles) 0
OpenSSF Scorecard n/a
  • Known vulnerabilities: 29 in 11 packages (critical 1, high 7, medium 15, low 6)

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

Top findings

Severity Finding Location
critical osv/GHSA-pqg4-j6r4-53mv: [email protected] (npm) is affected by GHSA-pqg4-j6r4-53mv package-lock.json
high opengrep/dockerfile.security.missing-user: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] frontend/Dockerfile:22
high osv/GHSA-27r3-jxmh-p828: [email protected] (npm) is affected by GHSA-27r3-jxmh-p828 frontend/package-lock.json
high osv/GHSA-68fv-2mgg-jv7q: [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q frontend/package-lock.json
high osv/GHSA-2m5v-pch6-74hx: [email protected] (npm) is affected by GHSA-2m5v-pch6-74hx frontend/package-lock.json
high osv/GHSA-4w7w-5xrc-9h26: [email protected] (npm) is affected by GHSA-4w7w-5xrc-9h26 frontend/package-lock.json
high osv/GHSA-qrxm-fqhp-jwvm: [email protected] (npm) is affected by GHSA-qrxm-fqhp-jwvm frontend/package-lock.json
high osv/GHSA-xjj6-f33q-929c: [email protected] (npm) is affected by GHSA-xjj6-f33q-929c frontend/package-lock.json
high osv/GHSA-587h-7wmj-h5pm: [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm frontend/package-lock.json
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument dbPath 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] backend/db/database.js:14
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument dbPath 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] backend/db/database.js:15
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename: Detected that function argument migrationPath 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] backend/db/migrations.js:40
medium osv/GHSA-jggr-w7fw-pc2j: [email protected] (npm) is affected by GHSA-jggr-w7fw-pc2j backend/package-lock.json
medium osv/GHSA-w74x-v6f9-j3xg: [email protected] (npm) is affected by GHSA-w74x-v6f9-j3xg backend/package-lock.json
medium osv/GHSA-wjr9-j795-jxcr: [email protected] (npm) is affected by GHSA-wjr9-j795-jxcr backend/package-lock.json
medium osv/GHSA-w74x-v6f9-j3xg: [email protected] (npm) is affected by GHSA-w74x-v6f9-j3xg backend/package-lock.json
medium osv/GHSA-wjr9-j795-jxcr: [email protected] (npm) is affected by GHSA-wjr9-j795-jxcr backend/package-lock.json
medium osv/GHSA-p458-7748-mcp3: @vitest/[email protected] (npm) is affected by GHSA-p458-7748-mcp3 frontend/package-lock.json
medium osv/GHSA-6pq8-jhm2-2vcw: [email protected] (npm) is affected by GHSA-6pq8-jhm2-2vcw frontend/package-lock.json
medium osv/GHSA-4qv8-2p9j-2685: [email protected] (npm) is affected by GHSA-4qv8-2p9j-2685 frontend/package-lock.json
medium osv/GHSA-55wc-3pg8-jfw6: [email protected] (npm) is affected by GHSA-55wc-3pg8-jfw6 frontend/package-lock.json
medium osv/GHSA-9fm3-97px-rjf6: [email protected] (npm) is affected by GHSA-9fm3-97px-rjf6 frontend/package-lock.json
medium osv/GHSA-f72v-6w45-q472: [email protected] (npm) is affected by GHSA-f72v-6w45-q472 frontend/package-lock.json
medium osv/GHSA-698v-4r3x-3vcv: [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv frontend/package-lock.json
medium osv/GHSA-r825-w8mm-5pxw: [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw frontend/package-lock.json

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: 1,661; test lines: 2,547
Language Lines
TypeScript 2,470
JavaScript 1,551
Shell 155
SQL 32