Leaderboard github.com
maxrave-dev/kotlin-footguns
Battle-tested agent skills mapping the footguns of Kotlin, Compose Multiplatform and the desktop JVM — mined from a production music app, not from documentation.
unreviewed-ai-risk
AI provenance
100%
explicit
- Confidence
- 72%
- Coverage
- 100%
Estimated share of AI-generated code. Explicit attribution is a lower bound.
Code quality
38/100
poor
- Confidence
- 90%
- Coverage
- 100%
Complexity, duplication, lint density, tests, CI, docs and review process.
Security
86/100
strong
- Confidence
- 85%
- Coverage
- 100%
Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.
- Repository: https://github.com/maxrave-dev/kotlin-footguns
- Commit:
2c391bc9c9f873580aa855d7a7b1c3a2ed9e68ae - Generated: 2026-11-14T00:11:19+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
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) | 100 | explicit | 72% | 100% |
| Code quality | 38 | poor | 90% | 100% |
| Security | 86 | strong | 85% | 100% |
AI provenance
Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals.
- Explicitly attributed share (lower bound): 100.0%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 100.0%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| Claude Code | 2 | 757 |
Current source lines last changed by AI-attributed commits: 750 of 750.
Too few lines in one group to compare finding densities.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2026-09 | 757 | 100% |
Evidence
- Claude Code: on merged branch (f5f0b49511) (e88fb5b47247)
- Claude Code: on merged branch (f5f0b49511) (5239ea10c1d1)
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; 38% of function code in complex or long functions; 0% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 32 |
| Duplication | 100 |
| Code smells (Opengrep) | 29 |
| Tests and CI | 0 |
| Documentation | 65 |
| Type safety | 40 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 23; mean complexity 8.7, 90th percentile 14; 2 complex and 0 long functions
- Duplicated lines: 0.0% of 643 compared
- Tests: 0 test lines for 750 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:
- main in scripts/build_index.py: complexity 39, 90 lines
- main in skills/footgun-scan/scripts/scan.py: complexity 30, 55 lines
Security
Security posture is strong: no high-impact findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 100 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 20 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: signed commits, lockfiles; missing: security policy, dependency updates
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
- star-burst: 2298 stars in 86 days (27/day)
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: 750; test lines: 0
| Language | Lines |
|---|---|
| Python | 750 |