RepoTrust

Leaderboard github.com

KnifeLemon/Filee

Free, open-source file converter. Convert 263 formats offline by drag & drop — images, PDF, Word, Excel, PowerPoint, HWP/HWPX, video, audio, e-books and archives. No upload, no Office needed.

  • View repository ↗
  • C#
  • ★ 27,073
  • commit 770e9820518f
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

AI provenance

93%

explicit

Confidence
95%
Coverage
100%

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

Code quality

85/100

strong

Confidence
90%
Coverage
100%

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

Security

73/100

adequate

Confidence
85%
Coverage
100%

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

AI provenance

93% explicit

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

How the score is built

  • Explicitly attributed share93%
  • Unattributed share in AI-pace bursts2%
  • Estimated AI-generated share93%
  • AI tool configuration files0
  • Work sessions at AI pace41
  • Releases at AI pace8
  • Coding-style index (1.0+ means possible)0.06

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
Claude Code1,476330,4712026-09-292026-11-14
OpenAI Codex212,0472026-10-192026-11-11
Cursor agent1162026-10-212026-10-21

Lines added per month all AI-attributed share

  1. 2026-0958,807 · 100% AI
  2. 2026-10183,718 · 94% AI
  3. 2026-11115,229 · 87% AI

Findings in AI-attributed lines vs the rest

From git blame: 169,192 lines trace to AI-attributed commits, 8,078 to others. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality0.400.00—
Security0.070.00—

Evidence by analyzer

Explicit AI attributionok28 items
attributed_commit_share
90.7%
attributed_commits
1,498
attributed_loc
332,534
attributed_loc_share
93.0%
commits
1,652
effective_loc
357,754
tools_detected
3
AI tool configurationok
artifacts
0
tools_configured
0
workflow_agents
0
Commit velocityok15 items
excluded_import_loc
16,477
flagged_loc
195,862
flagged_loc_share
57.4%
flagged_units
41
max_loc_per_hour
7,002.11
measured_loc
341,277
median_loc_per_hour
154.08
pr_timed_units
12
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
500
Release velocityok8 items
flagged_releases
8
max_loc_per_day
36,171.50
releases
31
Coding styleok3 items
count:assistant_voice
0
count:emoji_in_code
15
count:narrated_steps
3
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
3
files:narrated_steps
3
files:placeholder
0
index
0.06
lines_scanned
177,270
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
0.09
per_kloc:narrated_steps
0.02
per_kloc:placeholder
0
Findings in AI-written linesok
ai_lines
169,192
blame_failures
0
files_blamed
691
other_lines
8,078
quality:ai_findings
68
quality:ai_per_kloc
0.40
quality:other_findings
0
quality:other_per_kloc
0
security:ai_findings
12
security:ai_per_kloc
0.07
security:other_findings
0
security:other_per_kloc
0

Code quality

85 strong

Code quality is strong: test-to-source ratio 0.80, CI runs tests; 19% of function code in complex or long functions; 1% duplicated lines. Weakest area: type safety.

How the score is built

  • Complexity57
  • Duplication92
  • Lint and smells97
  • Tests and CI100
  • Documentation100
  • Type safety40
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok10 items
complex_functions
388
function_nloc
140,366
functions
8,426
long_functions
86
many_param_functions
53
mean_ccn
4.52
p90_ccn
10
risky_nloc_share
18.8%
Duplication (jscpd)ok10 items
compared_lines
123,275
duplicated_lines
1,606
duplicated_share
1.3%
files
691
Lintok
category:best-practice
68
findings
68
scanned_lines
177,270
weighted_findings
19.25
Tests and CIok10 items
  • CI config: .github/workflows/ci.yml .github/workflows/ci.yml
  • CI config: .github/workflows/flag-duplicate-issue.yml .github/workflows/flag-duplicate-issue.yml
  • CI config: .github/workflows/label-issue.yml .github/workflows/label-issue.yml
  • CI config: .github/workflows/label-pr.yml .github/workflows/label-pr.yml
  • CI config: .github/workflows/magick-native-macos.yml .github/workflows/magick-native-macos.yml
  • CI config: .github/workflows/portable.yml .github/workflows/portable.yml
  • CI config: .github/workflows/release.yml .github/workflows/release.yml
  • CI config: .github/workflows/windows-arm64-native.yml .github/workflows/windows-arm64-native.yml
  • CI runs tests (dotnet test)
  • CI runs linters (dotnet format)
check:ci_present
yes
check:ci_runs_lint
yes
check:ci_runs_tests
yes
check:has_tests
yes
check:test_ratio
yes
check:tests_cochange
yes
ci_files
8
cochange_commits
194
cochange_share
89.7%
source_lines
177,270
test_lines
141,616
test_ratio
0.80
Documentationok4 items
  • README.md README.md
  • LICENSE LICENSE
  • CONTRIBUTING.md CONTRIBUTING.md
  • CHANGELOG.md CHANGELOG.md
check:changelog
yes
check:contributing
yes
check:license
yes
check:readme
yes
readme_lines
218
Type safetyok
check:low_escape_density
yes
check:strict_config
no
escapes
0
escapes_per_kloc
0

Security

73 adequate

Security posture is adequate: 44 high-severity workflow issues. Weakest area: ci actions.

How the score is built

  • Secrets88
  • Static analysis (SAST)99
  • Vulnerable dependencies100
  • CI workflows0
  • Security posture40
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
3
declared
3
lookup_errors
0
missing
0
recent
0
Secrets (gitleaks)ok
secrets_current
0
secrets_history
0
secrets_low_confidence
2
secrets_nonprod
2
Static analysis (opengrep)ok
findings
10
findings_high
0
findings_low
0
findings_medium
10
parse_errors
2
scanned_lines
177,270
weighted_findings
6
Dependencies (osv-scanner)ok
penalty
0
vulnerabilities
0
vulnerable_packages
0
vulns_critical
0
vulns_high
0
vulns_low
0
vulns_medium
0
vulns_unknown
0
CI workflows (zizmor)ok
findings
59
findings_high
44
findings_low
15
findings_medium
0
penalty
527.60
workflows
8
Security postureok1 item
  • Security policy: SECURITY.md SECURITY.md
check:dependency_updates
no
check:lockfiles
yes
check:security_policy
yes
check:signed_commits
no
signed_commit_share
19.0%
unpinned_manifests
0
Release downloadsok6 items
binary_assets
70
signals
2
suspicious
0

Findings

44 high13 medium79 low5 info

SeverityRuleLocationMessageTool
high zizmor/unpinned-uses .github/workflows/ci.yml:115 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:117 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:140 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:152 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:182 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:190 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:206 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:208 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:246 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:248 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:284 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:308 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:316 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:40 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/dangerous-triggers .github/workflows/label-pr.yml:10 use of fundamentally insecure workflow trigger [confidence medium] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/magick-native-macos.yml:118 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/magick-native-macos.yml:56 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:106 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:130 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:134 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:139 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:144 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:165 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:238 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:249 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:280 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:290 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:315 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:57 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:66 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/portable.yml:85 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:105 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:113 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/template-injection .github/workflows/release.yml:140 code injection via template expansion [confidence high] CI workflows (zizmor)
high zizmor/template-injection .github/workflows/release.yml:153 code injection via template expansion [confidence high] CI workflows (zizmor)
high zizmor/excessive-permissions .github/workflows/release.yml:24 overly broad permissions [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:36 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:38 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/template-injection .github/workflows/release.yml:46 code injection via template expansion [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:54 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/release.yml:83 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/windows-arm64-native.yml:32 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/windows-arm64-native.yml:37 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/windows-arm64-native.yml:84 unpinned action reference [confidence high] CI workflows (zizmor)
medium opengrep/javascript.lang.best-practice.javascript-alert src/Filee.App/Resources/Connect/mobile.js:274 found alert() call; should this be in production code? Lint
medium opengrep/javascript.lang.best-practice.javascript-prompt src/Filee.App/Resources/Connect/mobile.js:298 found prompt() call; should this be in production code? Lint
medium opengrep/javascript.lang.best-practice.javascript-alert src/Filee.App/Resources/Connect/shared-files.js:262 found alert() call; should this be in production code? Lint
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Core/Settings/PortableImport.cs:106 String argument destination is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Core/Settings/PortableImport.cs:33 String argument destination is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Core/Settings/PortableImport.cs:76 String argument source is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Engines/Archives/SevenZip.cs:113 String argument workDirectory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Engines/Archives/SevenZip.cs:74 String argument workDirectory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Engines/Ebooks/ComicBook.cs:173 String argument folder is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Engines/Media/CoverArt.cs:42 String argument workDirectory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Engines/Media/CoverArt.cs:58 String argument workDirectory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Engines/Media/CoverArt.cs:60 String argument workDirectory is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
medium opengrep/csharp.lang.security.filesystem.unsafe-path-combine src/Filee.Setup/Payload/SetupPayload.cs:388 String argument appFolder is used to read or write data from a file via Path.Combine without direct sanitization via Path.GetFileName. If the path is user-supplied data this can lead to path traversal. [confidence medium] Static analysis (opengrep)
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/FileSwap.cs:115 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/FileSwap.cs:82 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:113 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:137 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:148 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:202 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:209 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:228 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:237 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:242 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:251 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:293 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:332 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:385 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:77 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Installer.cs:93 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/PreviousInstall.cs:101 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/PreviousInstall.cs:122 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:131 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:138 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:155 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:160 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:171 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:242 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:267 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:277 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:300 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:66 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Installation/Uninstaller.cs:77 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:115 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:158 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:168 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:174 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:185 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:194 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:219 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:233 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:313 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Platform/SetupSystem.cs:355 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:121 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:174 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:178 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:203 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:223 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:263 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:292 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:339 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:343 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:368 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:372 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:382 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:401 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:406 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:413 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:417 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:431 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:435 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:459 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:503 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:54 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:56 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:58 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:71 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:77 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low opengrep/csharp.lang.best-practice.structured-logging src/Filee.Setup/Program.cs:87 String interpolation in log message obscures the distinction between variables and the log message. Use structured logging instead, where the variables are passed as additional arguments and the interpolation is performed by the logging... Lint
low zizmor/self-repository .github/workflows/ci.yml:106 use GitHub's dedicated self-repository syntax [confidence high] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:115 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:206 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:246 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:40 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/portable.yml:130 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/portable.yml:280 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/portable.yml:57 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/self-repository .github/workflows/release.yml:28 use GitHub's dedicated self-repository syntax [confidence high] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/release.yml:36 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low gitleaks/generic-api-key src/Filee.App/Services/Triggers/GestureDetector.cs:81 Possible generic-api-key secret in the current tree Secrets (gitleaks)
low gitleaks/generic-api-key src/Filee.Engines/Metadata/ExifTool.cs:107 Possible generic-api-key secret in the current tree Secrets (gitleaks)
low gitleaks/generic-api-key tests/Filee.App.Tests/FileeConnectTests.cs:445 Possible generic-api-key secret in the current tree (test/docs/example file) Secrets (gitleaks)
low gitleaks/generic-api-key tests/Filee.App.Tests/UpdateServiceTests.cs:920 Possible generic-api-key secret in the current tree (test/docs/example file) Secrets (gitleaks)
info zizmor/template-injection .github/workflows/ci.yml:272 code injection via template expansion [confidence low] CI workflows (zizmor)
info zizmor/template-injection .github/workflows/ci.yml:278 code injection via template expansion [confidence low] CI workflows (zizmor)
info zizmor/template-injection .github/workflows/release.yml:124 code injection via template expansion [confidence low] CI workflows (zizmor)
info zizmor/template-injection .github/workflows/release.yml:63 code injection via template expansion [confidence low] CI workflows (zizmor)
info zizmor/template-injection .github/workflows/release.yml:94 code injection via template expansion [confidence low] CI workflows (zizmor)

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 provenanceokprov-50
Coding styleAI provenanceok—0
Commit velocityAI provenanceokprov-50
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 f1d2b562b41468
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityokzizmor 1.32.059
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.10
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b41410
OpenSSF ScorecardSecurityskipped—0no published OpenSSF Scorecard result for this repo
Secrets (gitleaks)Securityokgitleaks 8.30.14

Score history

ScoredCommitScoringAI provenanceQualitySecurity
2026-11-14770e9820518fprov-5+qual-2+sec-293%8573

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/KnifeLemon/Filee/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/KnifeLemon/Filee/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/KnifeLemon/Filee/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/KnifeLemon/Filee/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/KnifeLemon/Filee/security.svg)](https://repotrust.synapticcyber.com/r/github.com/KnifeLemon/Filee/)
Full text report
  • Repository: https://github.com/KnifeLemon/Filee
  • Commit: 770e9820518f77c493c1946c9533b82ae2a67595
  • Generated: 2026-11-14T16:02: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) 93 explicit 95% 100%
Code quality 85 strong 90% 100%
Security 73 adequate 85% 100%

AI provenance

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

  • Explicitly attributed share (lower bound): 93.0%
  • Unattributed share in AI-consistent velocity bursts: 1.6%
  • Estimated AI-generated share: 93.0%
AI tool Attributed commits Lines added
Claude Code 1,476 330,471
OpenAI Codex 21 2,047
Cursor agent 1 16

Current source lines last changed by AI-attributed commits: 169,192 of 177,270.

Findings per 1,000 lines AI-attributed Other Ratio
Quality 0.402 0.0 n/a
Security 0.071 0.0 n/a
  • Stylometry index: 0.06 per 1,000 lines (narrated steps 3, placeholders 0, assistant phrasing 0, emoji 15). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-09 58,807 100%
2026-10 183,718 94%
2026-11 115,229 87%

Evidence

  • Claude Code: trailer 'Co-Authored-By: Claude' (07393467090b)
  • Claude Code: trailer 'Co-Authored-By: Claude' (ce3afc57d39e)
  • Claude Code: trailer 'Co-Authored-By: Claude' (7fdb936d000f)
  • Claude Code: trailer 'Co-Authored-By: Claude' (7641889aef6a)
  • Claude Code: trailer 'Co-Authored-By: Claude' (1466964a1e73)
  • Claude Code: trailer 'Co-Authored-By: Claude' (317a903d3f48)
  • Claude Code: trailer 'Co-Authored-By: Claude' (b813ae46bc0a)
  • Claude Code: trailer 'Co-Authored-By: Claude' (791b1e514562)
  • Claude Code: trailer 'Co-Authored-By: Claude' (9a6dff6ba993)
  • Claude Code: trailer 'Co-Authored-By: Claude' (cc31827cee07)
  • Claude Code: trailer 'Co-Authored-By: Claude' (bbbaa946d916)
  • Claude Code: trailer 'Co-Authored-By: Claude' (08704be00b6d)
  • Claude Code: trailer 'Co-Authored-By: Claude' (673bb60d4633)
  • Claude Code: trailer 'Co-Authored-By: Claude' (93c5a4f6da14)
  • Claude Code: on merged branch (8661c08290) (e88ffc2bb713)

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 strong: test-to-source ratio 0.80, CI runs tests; 19% of function code in complex or long functions; 1% duplicated lines. Weakest area: type safety.

Area Score
Complexity (lizard) 57
Duplication 92
Code smells (Opengrep) 97
Tests and CI 100
Documentation 100
Type safety 40
Process (Scorecard review/maintenance) n/a
  • Functions: 8,426; mean complexity 4.5, 90th percentile 10; 388 complex and 86 long functions
  • Duplicated lines: 1.3% of 123,275 compared
  • Tests: 141,616 test lines for 177,270 source lines (ratio 0.80); CI test commands: dotnet test; 90% of recent source commits also change tests
  • Docs missing or thin: none

Most complex functions:

Security

Security posture is adequate: 44 high-severity workflow issues. Weakest area: ci actions.

Area Score
Secrets (gitleaks, tree + history) 88
Static analysis (Opengrep) 99
Vulnerable dependencies (OSV) 100
CI workflows (zizmor) 0
Posture (policy, updates, signing, lockfiles) 40
OpenSSF Scorecard n/a
  • Posture checks passed: security policy, lockfiles; missing: dependency updates, signed commits

Top findings

Severity Finding Location
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:40
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:115
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:117
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:140
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:152
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:182
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:190
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:206
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:208
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:246
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:248
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:284
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:308
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:316
high zizmor/dangerous-triggers: use of fundamentally insecure workflow trigger [confidence medium] .github/workflows/label-pr.yml:10
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/magick-native-macos.yml:56
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/magick-native-macos.yml:118
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:57
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:66
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:85
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:106
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:130
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:134
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:139
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/portable.yml:144

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: 177,270; test lines: 141,616
Language Lines
C# 316,511
JavaScript 986
C 515
Shell 475
Python 399