RepoTrust

Leaderboard github.com

nathaishik/time-table-formaliser

Vibe Coded App 🥀 Needed to make something for creating schedules.

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

AI provenance

0%

none-detected

Confidence
43%
Coverage
100%

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

Code quality

43/100

poor

Confidence
90%
Coverage
100%

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

Security

76/100

adequate

Confidence
85%
Coverage
100%

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

AI provenance

0% none-detected

No AI attribution or AI-consistent velocity signals detected.

How the score is built

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

Lines added per month all AI-attributed share

  1. 2026-073,847 · 0% AI

Evidence by analyzer

Explicit AI attributionok
attributed_commit_share
0.0%
attributed_commits
0
attributed_loc
0
attributed_loc_share
0.0%
commits
11
effective_loc
3,847
tools_detected
0
AI tool configurationok
artifacts
0
tools_configured
0
workflow_agents
0
Commit velocityok
excluded_import_loc
2,915
flagged_loc
0
flagged_loc_share
0.0%
flagged_units
0
max_loc_per_hour
155.72
measured_loc
932
median_loc_per_hour
92.84
pr_timed_units
0
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
6
Release velocityskipped
Coding styleok
count:assistant_voice
0
count:emoji_in_code
0
count:narrated_steps
0
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
0
files:narrated_steps
0
files:placeholder
0
index
0
lines_scanned
2,863
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
0
per_kloc:narrated_steps
0
per_kloc:placeholder
0

Code quality

43 poor

Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 18% of function code in complex or long functions; 3% duplicated lines. Weakest area: type safety.

How the score is built

  • Complexity58
  • Duplication81
  • Lint and smells32
  • Tests and CI15
  • Documentation65
  • Type safety0
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok4 items
complex_functions
4
function_nloc
2,196
functions
172
long_functions
1
many_param_functions
0
mean_ccn
3.48
p90_ccn
8
risky_nloc_share
18.1%
Duplication (jscpd)ok2 items
compared_lines
2,087
duplicated_lines
72
duplicated_share
3.5%
files
30
Lintok
category:best-practice
4
category:correctness
10
findings
14
scanned_lines
2,863
weighted_findings
13
Tests and CIok1 item
  • CI config: .github/workflows/deploy.yml .github/workflows/deploy.yml
check:ci_present
yes
check:ci_runs_lint
no
check:ci_runs_tests
no
check:has_tests
no
check:test_ratio
no
check:tests_cochange
no
ci_files
1
cochange_commits
8
cochange_share
0.0%
source_lines
2,863
test_lines
0
test_ratio
0
Documentationok2 items
  • README.md README.md
  • LICENSE LICENSE
check:changelog
no
check:contributing
no
check:license
yes
check:readme
yes
readme_lines
28
Type safetyok
check:low_escape_density
no
check:strict_config
no
escapes
32
escapes_per_kloc
11.26

Security

76 adequate

Security posture is adequate: 15 known vulnerabilities in 7 dependencies. Weakest area: posture.

How the score is built

  • Secrets100
  • Static analysis (SAST)100
  • Vulnerable dependencies43
  • CI workflows98
  • Security posture0
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
22
declared
22
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,863
weighted_findings
0
Dependencies (osv-scanner)ok
penalty
51
vulnerabilities
15
vulnerable_packages
7
vulns_critical
0
vulns_high
9
vulns_low
1
vulns_medium
5
vulns_unknown
0
CI workflows (zizmor)ok
findings
1
findings_high
0
findings_low
0
findings_medium
1
penalty
1.20
workflows
1
Security postureok
check:dependency_updates
no
check:lockfiles
yes
check:security_policy
no
check:signed_commits
no
signed_commit_share
18.2%
unpinned_manifests
0
Release downloadsok
binary_assets
0
signals
0
suspicious
0

Findings

10 high15 medium5 low

SeverityRuleLocationMessageTool
high opengrep/typescript.lang.correctness.useless-ternary src/components/ui/GlassCard.tsx:11 It looks like no matter how elevated is evaluated, this expression returns 'card'. This is probably a copy-paste error. Lint
high osv/GHSA-2v37-7h3g-55p8 package-lock.json [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 Dependencies (osv-scanner)
high osv/GHSA-587h-7wmj-h5pm package-lock.json [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm Dependencies (osv-scanner)
high osv/GHSA-68fv-2mgg-jv7q package-lock.json [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q Dependencies (osv-scanner)
high osv/GHSA-6j4f-fj2g-mc7p package-lock.json [email protected] (npm) is affected by GHSA-6j4f-fj2g-mc7p Dependencies (osv-scanner)
high osv/GHSA-mrhx-c7xc-m3w5 package-lock.json [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 Dependencies (osv-scanner)
high osv/GHSA-qhr7-859c-m2p7 package-lock.json [email protected] (npm) is affected by GHSA-qhr7-859c-m2p7 Dependencies (osv-scanner)
high osv/GHSA-rgj7-g3m4-5g8c package-lock.json [email protected] (npm) is affected by GHSA-rgj7-g3m4-5g8c Dependencies (osv-scanner)
high osv/GHSA-rgw5-rvv9-x895 package-lock.json [email protected] (npm) is affected by GHSA-rgw5-rvv9-x895 Dependencies (osv-scanner)
high osv/GHSA-wq5f-xc86-pv6w package-lock.json [email protected] (npm) is affected by GHSA-wq5f-xc86-pv6w Dependencies (osv-scanner)
medium opengrep/typescript.react.best-practice.react-props-in-state src/components/DuplicatesReview.tsx:18 Copying a prop into state in React -- this is bad practice as all updates to it are ignored. Instead, read props directly in your component and avoid copying props into state. Lint
medium opengrep/typescript.react.best-practice.react-props-spreading src/components/ui/Button.tsx:17 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 src/components/ui/Button.tsx:61 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 src/components/ui/Button.tsx:86 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.correctness.no-stringify-keys src/hooks/useLLM.ts:109 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys src/hooks/useLLM.ts:129 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys src/hooks/useLLM.ts:228 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys src/hooks/useLLM.ts:336 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys src/hooks/useLLM.ts:97 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium zizmor/artipacked .github/workflows/deploy.yml:31 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
medium osv/GHSA-698v-4r3x-3vcv package-lock.json [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv Dependencies (osv-scanner)
medium osv/GHSA-g3hv-75wg-m249 package-lock.json [email protected] (npm) is affected by GHSA-g3hv-75wg-m249 Dependencies (osv-scanner)
medium osv/GHSA-q2hr-2g5m-vwhr package-lock.json [email protected] (npm) is affected by GHSA-q2hr-2g5m-vwhr Dependencies (osv-scanner)
medium osv/GHSA-r825-w8mm-5pxw package-lock.json [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw Dependencies (osv-scanner)
medium osv/GHSA-rq7h-c2jc-7f22 package-lock.json [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 Dependencies (osv-scanner)
low opengrep/javascript.lang.correctness.missing-template-string-indicator src/hooks/useLLM.ts:164 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator src/hooks/useLLM.ts:164 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator src/hooks/useLLM.ts:308 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator src/hooks/useLLM.ts:308 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low osv/GHSA-9jrq-w75r-8gcw 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
Complexity (lizard)Code qualityoklizard 1.25.10
DocumentationCode qualityok—0
Duplication (jscpd)Code qualityokrepotrust-dup-w60
LintCode qualityokopengrep 1.33.1; rules f1d2b562b41414
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityokzizmor 1.32.01
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.115
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-14c54b7edaeae4prov-5+qual-2+sec-20%4376
2026-11-14c54b7edaeae4prov-4+qual-2+sec-20%4376

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

Scores

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 0 none-detected 43% 100%
Code quality 43 poor 90% 100%
Security 76 adequate 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
2026-07 3,847 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 poor: test-to-source ratio 0.00, no CI test run detected; 18% of function code in complex or long functions; 3% duplicated lines. Weakest area: type safety.

Area Score
Complexity (lizard) 58
Duplication 81
Code smells (Opengrep) 32
Tests and CI 15
Documentation 65
Type safety 0
Process (Scorecard review/maintenance) n/a
  • Functions: 172; mean complexity 3.5, 90th percentile 8; 4 complex and 1 long functions
  • Duplicated lines: 3.5% of 2,087 compared
  • Tests: 0 test lines for 2,863 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
  • Docs missing or thin: contributing, changelog

Most complex functions:

Security

Security posture is adequate: 15 known vulnerabilities in 7 dependencies. Weakest area: posture.

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

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

Top findings

Severity Finding Location
high osv/GHSA-6j4f-fj2g-mc7p: [email protected] (npm) is affected by GHSA-6j4f-fj2g-mc7p package-lock.json
high osv/GHSA-qhr7-859c-m2p7: [email protected] (npm) is affected by GHSA-qhr7-859c-m2p7 package-lock.json
high osv/GHSA-rgw5-rvv9-x895: [email protected] (npm) is affected by GHSA-rgw5-rvv9-x895 package-lock.json
high osv/GHSA-2v37-7h3g-55p8: [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 package-lock.json
high osv/GHSA-rgj7-g3m4-5g8c: [email protected] (npm) is affected by GHSA-rgj7-g3m4-5g8c package-lock.json
high osv/GHSA-wq5f-xc86-pv6w: [email protected] (npm) is affected by GHSA-wq5f-xc86-pv6w package-lock.json
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 osv/GHSA-mrhx-c7xc-m3w5: [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 package-lock.json
medium osv/GHSA-q2hr-2g5m-vwhr: [email protected] (npm) is affected by GHSA-q2hr-2g5m-vwhr package-lock.json
medium osv/GHSA-g3hv-75wg-m249: [email protected] (npm) is affected by GHSA-g3hv-75wg-m249 package-lock.json
medium osv/GHSA-698v-4r3x-3vcv: [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv package-lock.json
medium osv/GHSA-r825-w8mm-5pxw: [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw package-lock.json
medium osv/GHSA-rq7h-c2jc-7f22: [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 package-lock.json
medium zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] .github/workflows/deploy.yml:31
low osv/GHSA-9jrq-w75r-8gcw: [email protected] (npm) is affected by GHSA-9jrq-w75r-8gcw 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,863; test lines: 0
Language Lines
TypeScript 2,841
JavaScript 22