rayhatfield/mac-media-keys
macOS menu bar app to forward media keys to a specific application
- Repository: https://github.com/rayhatfield/mac-media-keys
- Commit:
3a6d73e2a1ef4049bdcb3e9c0c9f8f4fd955ae9f - Generated: 2026-11-13T23:57:39+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) | 88 | explicit | 83% | 100% |
| Code quality | 65 | adequate | 90% | 100% |
| Security | 81 | adequate | 85% | 100% |
AI provenance
Explicit AI attribution on 88% of first-party code added; an estimated 88% including velocity signals.
- Explicitly attributed share (lower bound): 87.9%
- Unattributed share in AI-consistent velocity bursts: 0.0%
- Estimated AI-generated share: 87.9%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| Claude Code | 26 | 2,624 |
- AI tooling configured in repo: claude-code
Current source lines last changed by AI-attributed commits: 2,325 of 2,649.
Too few lines in one group to compare finding densities.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2026-02 | 1,142 | 100% |
| 2026-05 | 178 | 33% |
| 2026-06 | 526 | 54% |
| 2026-07 | 1,079 | 100% |
| 2026-08 | 38 | 100% |
| 2026-09 | 22 | 100% |
Evidence
- Claude Code: trailer 'Co-Authored-By: Claude' (3a6d73e2a1ef)
- Claude Code: trailer 'Co-Authored-By: Claude' (b0d00ef003f7)
- Claude Code: trailer 'Co-Authored-By: Claude' (be2dc3a830eb)
- Claude Code: trailer 'Co-Authored-By: Claude' (612f32227c97)
- Claude Code: trailer 'Co-Authored-By: Claude' (712eda7351a2)
- Claude Code: trailer 'Co-Authored-By: Claude' (97b94e9886f3)
- Claude Code: trailer 'Co-Authored-By: Claude' (e4eedb2e4272)
- Claude Code: trailer 'Co-Authored-By: Claude' (b8ec74c72c21)
- Claude Code: trailer 'Co-Authored-By: Claude' (c096ad72e00c)
- Claude Code: trailer 'Co-Authored-By: Claude' (ab56a470271c)
- Claude Code: trailer 'Co-Authored-By: Claude' (30b73f87d085)
- Claude Code: trailer 'Co-Authored-By: Claude' (f55e3a1526a4)
- Claude Code: trailer 'Co-Authored-By: Claude' (cf247220fd17)
- Claude Code: trailer 'Co-Authored-By: Claude' (ad73e5db0574)
- Claude Code: trailer 'Co-Authored-By: Claude' (45f2a0a65309)
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 adequate: test-to-source ratio 0.00, no CI test run detected; 7% of function code in complex or long functions; 1% duplicated lines. Weakest area: testing.
| Area | Score |
|---|---|
| Complexity (lizard) | 80 |
| Duplication | 96 |
| Code smells (Opengrep) | 100 |
| Tests and CI | 15 |
| Documentation | 65 |
| Type safety | n/a |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 126; mean complexity 2.7, 90th percentile 5; 2 complex and 0 long functions
- Duplicated lines: 0.7% of 1,893 compared
- Tests: 0 test lines for 2,649 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:
- handleEvent in MacMediaKeys/MediaKeyTap.swift: complexity 20, 62 lines
- sendKeystrokeToApp in MacMediaKeys/MediaController.swift: complexity 17, 58 lines
Security
Security posture is adequate: 1 high-severity workflow issues. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 100 |
| Static analysis (Opengrep) | 100 |
| Vulnerable dependencies (OSV) | n/a |
| CI workflows (zizmor) | 77 |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
- Posture checks passed: lockfiles; missing: security policy, dependency updates, signed commits
Top findings
| Severity | Finding | Location |
|---|---|---|
| high | zizmor/unpinned-uses: unpinned action reference [confidence high] |
.github/workflows/update-homebrew-cask.yml:48 |
| medium | zizmor/artipacked: credential persistence through GitHub Actions artifacts [confidence low] |
.github/workflows/update-homebrew-cask.yml:47 |
| medium | zizmor/excessive-permissions: overly broad permissions [confidence medium] |
.github/workflows/update-homebrew-cask.yml:14 |
| info | zizmor/template-injection: code injection via template expansion [confidence low] |
.github/workflows/update-homebrew-cask.yml:44 |
| info | zizmor/template-injection: code injection via template expansion [confidence low] |
.github/workflows/update-homebrew-cask.yml:57 |
| info | zizmor/template-injection: code injection via template expansion [confidence low] |
.github/workflows/update-homebrew-cask.yml:58 |
| info | zizmor/template-injection: code injection via template expansion [confidence low] |
.github/workflows/update-homebrew-cask.yml:70 |
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
- binary-release-asset: release v1.1.4 ships MacMediaKeys-1.1.4.zip (511 downloads)
- binary-release-asset: release v1.1.3 ships MacMediaKeys-1.1.3.zip (218 downloads)
- binary-release-asset: release v1.1.2 ships MacMediaKeys-1.1.2.zip (25 downloads)
- binary-release-asset: release v1.1.1 ships MacMediaKeys-1.1.1.zip (8 downloads)
- binary-release-asset: release v1.1.0 ships MacMediaKeys-1.1.0.zip (153 downloads)
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: 2,649; test lines: 0
| Language | Lines |
|---|---|
| Swift | 2,493 |
| Shell | 136 |
| JavaScript | 20 |