Leaderboard github.com
danielangelo1/semaninha-lastfm
Site que gera uma colagem com os albuns mais ouvidos em determinado periodo de tempo no LAST FM
AI provenance
13%
explicit
- Confidence
- 95%
- Coverage
- 100%
Estimated share of AI-generated code. Explicit attribution is a lower bound.
Code quality
82/100
strong
- Confidence
- 90%
- Coverage
- 100%
Complexity, duplication, lint density, tests, CI, docs and review process.
Security
70/100
weak
- Confidence
- 85%
- Coverage
- 100%
Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.
- Repository: https://github.com/danielangelo1/semaninha-lastfm
- Commit:
e54e4aaa8ab001ef80ae33624665a73b960a66ff - Generated: 2026-11-14T00:04:57+00:00
- Scorer 0.1.0, scoring prov-4+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 13 | explicit | 95% | 100% |
| Code quality | 82 | strong | 90% | 100% |
| Security | 70 | weak | 85% | 100% |
AI provenance
Explicit AI attribution on 13% of first-party code added; an estimated 13% including velocity signals.
- Explicitly attributed share (lower bound): 13.1%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 13.1%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| Claude Code | 29 | 2,212 |
| GitHub Copilot coding agent | 2 | 1 |
- AI tooling configured in repo: github-copilot
Current source lines last changed by AI-attributed commits: 1,512 of 3,437.
| Findings per 1,000 lines | AI-attributed | Other | Ratio |
|---|---|---|---|
| Quality | 0.0 | 3.117 | 0.0x |
| Security | 7.937 | 0.519 | 15.29x |
- Stylometry index: 0.29 per 1,000 lines (narrated steps 0, placeholders 0, assistant phrasing 0, emoji 2). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2024-04 | 9 | 0% |
| 2024-10 | 1,447 | 0% |
| 2025-03 | 60 | 0% |
| 2025-08 | 1,187 | 0% |
| 2025-09 | 6 | 0% |
| 2025-11 | 1,444 | 0% |
| 2026-01 | 50 | 0% |
| 2026-02 | 89 | 0% |
| 2026-06 | 519 | 0% |
| 2026-09 | 107 | 0% |
| 2026-10 | 527 | 42% |
| 2026-11 | 1,991 | 100% |
Evidence
- Claude Code: trailer 'Co-Authored-By: Claude' (7ebef046cad0)
- Claude Code: trailer 'Co-Authored-By: Claude' (a5de0f31edd0)
- Claude Code: trailer 'Co-Authored-By: Claude' (1473c96d37ae)
- Claude Code: trailer 'Co-Authored-By: Claude' (d80aa6bb3bd1)
- Claude Code: trailer 'Co-Authored-By: Claude' (54c509d1e668)
- Claude Code: trailer 'Co-Authored-By: Claude' (f92d499af34d)
- Claude Code: trailer 'Co-Authored-By: Claude' (e5a79f406518)
- Claude Code: trailer 'Co-Authored-By: Claude' (7c25ae6004bb)
- Claude Code: trailer 'Co-Authored-By: Claude' (abdf2c3f476b)
- Claude Code: trailer 'Co-Authored-By: Claude' (8b4966730176)
- Claude Code: trailer 'Co-Authored-By: Claude' (fdd94676a47f)
- Claude Code: trailer 'Co-Authored-By: Claude' (882bf96f2a1f)
- Claude Code: trailer 'Co-Authored-By: Claude' (337484c573e9)
- Claude Code: trailer 'Co-Authored-By: Claude' (14dbad00ab12)
- Claude Code: trailer 'Co-Authored-By: Claude' (f8c2fc19e937)
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.36, CI runs tests; 0% of function code in complex or long functions; 3% duplicated lines. Weakest area: docs.
| Area | Score |
|---|---|
| Complexity (lizard) | 100 |
| Duplication | 86 |
| Code smells (Opengrep) | 65 |
| Tests and CI | 88 |
| Documentation | 40 |
| Type safety | 100 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 222; mean complexity 1.8, 90th percentile 4; 0 complex and 0 long functions
- Duplicated lines: 2.6% of 2,369 compared
- Tests: 1,251 test lines for 3,437 source lines (ratio 0.36); CI test commands: npm run test; 12% of recent source commits also change tests
- Docs missing or thin: license, contributing, changelog
Security
Security posture is weak: 2 known vulnerabilities in 1 dependencies; 11 high-severity workflow issues. Weakest area: ci actions.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 94 |
| Static analysis (Opengrep) | 76 |
| Vulnerable dependencies (OSV) | 95 |
| CI workflows (zizmor) | 10 |
| Posture (policy, updates, signing, lockfiles) | 40 |
| OpenSSF Scorecard | n/a |
-
Known vulnerabilities: 2 in 1 packages (critical 0, high 0, medium 2, low 0)
-
Posture checks passed: dependency updates, lockfiles; missing: security policy, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/ci.yml:22 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/ci.yml:25 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/ci.yml:52 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/ci.yml:55 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/ci.yml:67 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/test.yml:22 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/test.yml:25 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/test.yml:49 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/test.yml:52 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/test.yml:82 |
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/test.yml:85 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp: RegExp() called with a attribute function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-contr [confidence low] |
scripts/prerender.js:65 |
| medium | opengrep/javascript.lang.security.audit.detect-non-literal-regexp: RegExp() called with a name function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use hardcoded regexes instead. If your regex is run on user-controlled [confidence low] |
scripts/prerender.js:65 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:65 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:74 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:82 |
| medium | opengrep/javascript.browser.security.raw-html-join: User controlled data in a HTML string may result in XSS [confidence low] |
scripts/prerender.js:86 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:87 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:88 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:90 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:100 |
| medium | opengrep/javascript.lang.security.html-in-template-string: This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS). [confidence low] |
scripts/prerender.js:104 |
| medium | osv/GHSA-337j-9hxr-rhxg: react-router@6.30.6 (npm) is affected by GHSA-337j-9hxr-rhxg |
package-lock.json |
| medium | osv/GHSA-wrjc-x8rr-h8h6: react-router@6.30.6 (npm) is affected by GHSA-wrjc-x8rr-h8h6 |
package-lock.json |
| medium | zizmor/dependabot-cooldown: insufficient cooldown in Dependabot updates [confidence high] |
.github/dependabot.yml:3 |
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: 3,437; test lines: 1,251
| Language | Lines |
|---|---|
| TypeScript | 4,533 |
| JavaScript | 155 |