RepoTrust

Leaderboard github.com

binoygeorge97/edu_blog

  • View repository ↗
  • Python
  • ★ 0
  • commit 3848d7c3c4fe
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

unreviewed-ai-risk

AI provenance

68%

explicit

Confidence
77%
Coverage
100%

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

Code quality

50/100

weak

Confidence
90%
Coverage
100%

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

Security

72/100

adequate

Confidence
85%
Coverage
100%

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

AI provenance

68% explicit

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

How the score is built

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

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
Claude Code121,8592026-06-212026-06-21

Lines added per month all AI-attributed share

  1. 2026-062,730 · 68% AI

Findings in AI-attributed lines vs the rest

From git blame: 1,706 lines trace to AI-attributed commits, 778 to others. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality4.100.00—
Security0.000.00—

Evidence by analyzer

Explicit AI attributionok13 items
attributed_commit_share
41.4%
attributed_commits
12
attributed_loc
1,859
attributed_loc_share
68.1%
commits
29
effective_loc
2,730
tools_detected
1
AI tool configurationok1 item
artifacts
1
earliest_adoption
2026-06-21
tools_configured
1
workflow_agents
0
Commit velocityok
excluded_import_loc
0
flagged_loc
0
flagged_loc_share
0.0%
flagged_units
0
max_loc_per_hour
736.50
measured_loc
2,730
median_loc_per_hour
72.38
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 styleok
count:assistant_voice
0
count:emoji_in_code
9
count:narrated_steps
0
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
3
files:narrated_steps
0
files:placeholder
0
index
1.81
lines_scanned
2,484
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
3.62
per_kloc:narrated_steps
0
per_kloc:placeholder
0
Findings in AI-written linesok
ai_lines
1,706
blame_failures
0
files_blamed
25
other_lines
778
quality:ai_findings
7
quality:ai_per_kloc
4.10
quality:other_findings
0
quality:other_per_kloc
0
security:ai_findings
0
security:ai_per_kloc
0
security:other_findings
0
security:other_per_kloc
0

Code quality

50 weak

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

How the score is built

  • Complexity78
  • Duplication100
  • Lint and smells49
  • Tests and CI0
  • Documentation40
  • Type safety63
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok2 items
complex_functions
2
function_nloc
1,421
functions
132
long_functions
0
many_param_functions
0
mean_ccn
2.61
p90_ccn
6
risky_nloc_share
8.4%
Duplication (jscpd)ok
compared_lines
1,756
duplicated_lines
0
duplicated_share
0.0%
files
25
Lintok
category:best-practice
5
category:correctness
2
findings
7
scanned_lines
2,484
weighted_findings
7
Tests and CIok
check:ci_present
no
check:ci_runs_lint
no
check:ci_runs_tests
no
check:has_tests
no
check:test_ratio
no
check:tests_cochange
no
ci_files
0
cochange_commits
20
cochange_share
0.0%
source_lines
2,484
test_lines
0
test_ratio
0
Documentationok1 item
  • README.md README.md
check:changelog
no
check:contributing
no
check:license
no
check:readme
yes
readme_lines
83
Type safetyok1 item
  • TypeScript strict type checking: web/tsconfig.json web/tsconfig.json
check:low_escape_density
yes
check:strict_config
no
escapes
1
escapes_per_kloc
0.40

Security

72 adequate

Security posture is adequate: 17 known vulnerabilities in 8 dependencies. Weakest area: posture.

How the score is built

  • Secrets100
  • Static analysis (SAST)100
  • Vulnerable dependencies44
  • CI workflowsnot measured
  • Security posture0
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
23
declared
23
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
0
findings_high
0
findings_low
0
findings_medium
0
parse_errors
0
scanned_lines
2,484
weighted_findings
0
Dependencies (osv-scanner)ok
penalty
49
vulnerabilities
17
vulnerable_packages
8
vulns_critical
0
vulns_high
7
vulns_low
1
vulns_medium
9
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

7 high16 medium1 low

SeverityRuleLocationMessageTool
high osv/GHSA-28wg-ghj8-5hjv web/package-lock.json [email protected] (npm) is affected by GHSA-28wg-ghj8-5hjv Dependencies (osv-scanner)
high osv/GHSA-2v37-7h3g-55p8 web/package-lock.json [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 Dependencies (osv-scanner)
high osv/GHSA-587h-7wmj-h5pm web/package-lock.json [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm Dependencies (osv-scanner)
high osv/GHSA-68fv-2mgg-jv7q web/package-lock.json [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q Dependencies (osv-scanner)
high osv/GHSA-73wf-gq98-2v4g web/package-lock.json [email protected] (npm) is affected by GHSA-73wf-gq98-2v4g Dependencies (osv-scanner)
high osv/GHSA-c83g-rgw3-j3cx web/package-lock.json [email protected] (npm) is affected by GHSA-c83g-rgw3-j3cx Dependencies (osv-scanner)
high osv/GHSA-r28c-9q8g-f849 web/package-lock.json [email protected] (npm) is affected by GHSA-r28c-9q8g-f849 Dependencies (osv-scanner)
medium opengrep/python.lang.correctness.common-mistakes.string-concat-in-list app/agents/critics.py:23 Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list? Lint
medium opengrep/python.lang.correctness.common-mistakes.string-concat-in-list app/agents/critics.py:28 Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list? Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding eval/experiment.py:163 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding eval/experiment.py:50 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding eval/generate.py:122 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding eval/generate.py:47 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium opengrep/python.lang.best-practice.unspecified-open-encoding eval/generate.py:95 Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). Lint
medium osv/GHSA-mf9w-mj56-hr94 requirements-api.txt [email protected] (PyPI) is affected by PYSEC-2026-2270, GHSA-mf9w-mj56-hr94; also in requirements.txt Dependencies (osv-scanner)
medium osv/GHSA-7p48-42j8-8846 requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-2285, GHSA-7p48-42j8-8846 Dependencies (osv-scanner)
medium osv/GHSA-rxff-vr5r-8cj5 requirements.txt [email protected] (PyPI) is affected by PYSEC-2024-153, GHSA-rxff-vr5r-8cj5 Dependencies (osv-scanner)
medium osv/GHSA-vqwp-45wm-r9r5 requirements.txt [email protected] (PyPI) is affected by PYSEC-2026-212, GHSA-vqwp-45wm-r9r5 Dependencies (osv-scanner)
medium osv/GHSA-698v-4r3x-3vcv web/package-lock.json [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv Dependencies (osv-scanner)
medium osv/GHSA-fxqj-rqcc-2cmp web/package-lock.json [email protected] (npm) is affected by GHSA-fxqj-rqcc-2cmp Dependencies (osv-scanner)
medium osv/GHSA-r825-w8mm-5pxw web/package-lock.json [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw Dependencies (osv-scanner)
medium osv/GHSA-rq7h-c2jc-7f22 web/package-lock.json [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 Dependencies (osv-scanner)
medium osv/GHSA-w5vr-8v7q-w6rv web/package-lock.json [email protected] (npm) is affected by GHSA-w5vr-8v7q-w6rv Dependencies (osv-scanner)
low osv/GHSA-9jrq-w75r-8gcw web/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 f1d2b562b4147
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityskipped—0
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.117
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b4140
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-143848d7c3c4feprov-5+qual-2+sec-268%5072
2026-11-143848d7c3c4feprov-4+qual-2+sec-268%5072

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

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) 68 explicit 77% 100%
Code quality 50 weak 90% 100%
Security 72 adequate 85% 100%

AI provenance

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

  • Explicitly attributed share (lower bound): 68.1%
  • Unattributed share in AI-consistent velocity bursts: 0.0%
  • Estimated AI-generated share: 68.1%
AI tool Attributed commits Lines added
Claude Code 12 1,859
  • AI tooling configured in repo: claude-code

Current source lines last changed by AI-attributed commits: 1,706 of 2,484.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 4.103 0.0 n/a
Security 0.0 0.0 n/a
  • Stylometry index: 1.81 per 1,000 lines (narrated steps 0, placeholders 0, assistant phrasing 0, emoji 9). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-06 2,730 68%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (1787ca7a001d)
  • Claude Code: trailer 'Co-Authored-By: Claude' (98772d978e2e)
  • Claude Code: trailer 'Co-Authored-By: Claude' (50be6a5efdcd)
  • Claude Code: trailer 'Co-Authored-By: Claude' (bc5876d4c4ed)
  • Claude Code: trailer 'Co-Authored-By: Claude' (933df9491602)
  • Claude Code: on merged branch (afda99a309) (4a1a4b3c1971)
  • Claude Code: trailer 'Co-Authored-By: Claude' (0bba8c4312c2)
  • Claude Code: trailer 'Co-Authored-By: Claude' (a47ff63e5bf7)
  • Claude Code: trailer 'Co-Authored-By: Claude' (5fcfa6ad2684)
  • Claude Code: trailer 'Co-Authored-By: Claude' (a75ebf2e759c)
  • Claude Code: trailer 'Co-Authored-By: Claude' (f7dcd9f7cdc2)
  • Claude Code: trailer 'Co-Authored-By: Claude' (9f490209d45d)
  • CLAUDE.md (claude-code configuration) (CLAUDE.md)

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

Area Score
Complexity (lizard) 78
Duplication 100
Code smells (Opengrep) 49
Tests and CI 0
Documentation 40
Type safety 63
Process (Scorecard review/maintenance) n/a
  • Functions: 132; mean complexity 2.6, 90th percentile 6; 2 complex and 0 long functions
  • Duplicated lines: 0.0% of 1,756 compared
  • Tests: 0 test lines for 2,484 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
  • Docs missing or thin: license, contributing, changelog

Most complex functions:

Security

Security posture is adequate: 17 known vulnerabilities in 8 dependencies. Weakest area: posture.

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

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

Top findings

Severity Finding Location
high osv/GHSA-73wf-gq98-2v4g: [email protected] (npm) is affected by GHSA-73wf-gq98-2v4g web/package-lock.json
high osv/GHSA-c83g-rgw3-j3cx: [email protected] (npm) is affected by GHSA-c83g-rgw3-j3cx web/package-lock.json
high osv/GHSA-28wg-ghj8-5hjv: [email protected] (npm) is affected by GHSA-28wg-ghj8-5hjv web/package-lock.json
high osv/GHSA-2v37-7h3g-55p8: [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 web/package-lock.json
high osv/GHSA-r28c-9q8g-f849: [email protected] (npm) is affected by GHSA-r28c-9q8g-f849 web/package-lock.json
high osv/GHSA-68fv-2mgg-jv7q: [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q web/package-lock.json
high osv/GHSA-587h-7wmj-h5pm: [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm web/package-lock.json
medium osv/GHSA-mf9w-mj56-hr94: [email protected] (PyPI) is affected by PYSEC-2026-2270, GHSA-mf9w-mj56-hr94; also in requirements.txt requirements-api.txt
medium osv/GHSA-rxff-vr5r-8cj5: [email protected] (PyPI) is affected by PYSEC-2024-153, GHSA-rxff-vr5r-8cj5 requirements.txt
medium osv/GHSA-vqwp-45wm-r9r5: [email protected] (PyPI) is affected by PYSEC-2026-212, GHSA-vqwp-45wm-r9r5 requirements.txt
medium osv/GHSA-7p48-42j8-8846: [email protected] (PyPI) is affected by PYSEC-2026-2285, GHSA-7p48-42j8-8846 requirements.txt
medium osv/GHSA-w5vr-8v7q-w6rv: [email protected] (npm) is affected by GHSA-w5vr-8v7q-w6rv web/package-lock.json
medium osv/GHSA-fxqj-rqcc-2cmp: [email protected] (npm) is affected by GHSA-fxqj-rqcc-2cmp web/package-lock.json
medium osv/GHSA-698v-4r3x-3vcv: [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv web/package-lock.json
medium osv/GHSA-r825-w8mm-5pxw: [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw web/package-lock.json
medium osv/GHSA-rq7h-c2jc-7f22: [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 web/package-lock.json
low osv/GHSA-9jrq-w75r-8gcw: [email protected] (npm) is affected by GHSA-9jrq-w75r-8gcw web/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: 2,484; test lines: 0
Language Lines
Python 1,550
TypeScript 934