{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:03.877990Z","repo":{"ref":{"host":"github.com","owner":"deepsources","name":"ProCon2Windows"},"default_branch":"main","clone_url":"https://github.com/deepsources/ProCon2Windows.git","html_url":"https://github.com/deepsources/ProCon2Windows","description":"Native Windows driver for Nintendo Switch 2 Pro Controller with DS4 emulation, gyro, and rumble support","stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":167,"primary_language":"C++","license_spdx":"MIT","created_at":"2026-04-17T15:28:58Z","pushed_at":"2026-04-17T15:48:28Z","security_policy_url":null,"distribution":{"owner_created_at":"2025-03-14T20:10:57Z","owner_type":"User","release_assets":[{"name":"ProCon2Windows.exe","size":159744,"download_count":183,"release_tag":"v1.0.0","url":"https://github.com/deepsources/ProCon2Windows/releases/download/v1.0.0/ProCon2Windows.exe"}]}},"commit_sha":"44500bc4db4f72b88072ab2ecbd74edaecb5e131","profile":{"lines_by_language":{"C++":2336,"C":439},"files_by_category":{"source":18,"docs":3,"config":1},"source_lines":2775,"test_lines":0},"pillars":{"ai_provenance":{"score":100.0,"confidence":0.76,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":1.0,"suspected_share":0.0,"estimated_share":1.0,"ai_artifacts":0.0,"flagged_work_units":2.0,"flagged_releases":null,"style_index":0.0},"summary":"Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals."},"quality":{"score":52.2,"confidence":0.9,"coverage":1.0,"label":"weak","breakdown":{"complexity":43.8,"duplication":77.6,"lint":100.0,"testing":10.0,"docs":65.0,"type_safety":null,"process":null},"summary":"Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 28% of function code in complex or long functions; 4% duplicated lines. Weakest area: testing."},"security":{"score":81.8,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":100.0,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: no high-impact findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no registry dependencies declared"},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":22.0,"attributed_commits":19.0,"attributed_commit_share":0.8636363636363636,"effective_loc":6921.0,"attributed_loc":6921.0,"attributed_loc_share":1.0,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 19 attributed commits, 6,921 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"d5f538113fb4248f20b0d462020fbbab6178070f","url":"https://github.com/deepsources/ProCon2Windows/commit/d5f538113fb4248f20b0d462020fbbab6178070f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"8ded8351bc7ddc47716ef250256bcbc4e5875bcd","url":"https://github.com/deepsources/ProCon2Windows/commit/8ded8351bc7ddc47716ef250256bcbc4e5875bcd","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"9a5cf084aedb3b71c7bb5fb0e6a30a65fce3e918","url":"https://github.com/deepsources/ProCon2Windows/commit/9a5cf084aedb3b71c7bb5fb0e6a30a65fce3e918","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"cceb69f46088f8fe01a78e1075b9eef19cf249d2","url":"https://github.com/deepsources/ProCon2Windows/commit/cceb69f46088f8fe01a78e1075b9eef19cf249d2","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6dd535a2d8591a138c9923040d9a62b5a081b9c9","url":"https://github.com/deepsources/ProCon2Windows/commit/6dd535a2d8591a138c9923040d9a62b5a081b9c9","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ea285a96f6bc679a9ed77a41506404c2c1fb661a","url":"https://github.com/deepsources/ProCon2Windows/commit/ea285a96f6bc679a9ed77a41506404c2c1fb661a","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"cfb6ee20fd4fd923a02f72233dab12158699bde5","url":"https://github.com/deepsources/ProCon2Windows/commit/cfb6ee20fd4fd923a02f72233dab12158699bde5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e3cf57fd20c543645b0e3a9c4bff7fcea8e5dc6b","url":"https://github.com/deepsources/ProCon2Windows/commit/e3cf57fd20c543645b0e3a9c4bff7fcea8e5dc6b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"326b591676297c2044df73959551b5dc08d2ab8c","url":"https://github.com/deepsources/ProCon2Windows/commit/326b591676297c2044df73959551b5dc08d2ab8c","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6e905126fcd238d6a32cc551a357c41fab05c72b","url":"https://github.com/deepsources/ProCon2Windows/commit/6e905126fcd238d6a32cc551a357c41fab05c72b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1c738589902b0f6b4b6e9436d956101a5939a922","url":"https://github.com/deepsources/ProCon2Windows/commit/1c738589902b0f6b4b6e9436d956101a5939a922","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"39e75d6c2f2fabbee51d6f569c6ead48db126d98","url":"https://github.com/deepsources/ProCon2Windows/commit/39e75d6c2f2fabbee51d6f569c6ead48db126d98","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f1b6c1745173ff162acec752513956a37cc3d1c3","url":"https://github.com/deepsources/ProCon2Windows/commit/f1b6c1745173ff162acec752513956a37cc3d1c3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e13315a9b8516c71da242d14a4484aed7e09fb04","url":"https://github.com/deepsources/ProCon2Windows/commit/e13315a9b8516c71da242d14a4484aed7e09fb04","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e27a30fbbe46ce9684b042d65f1404c0bc8d1a09","url":"https://github.com/deepsources/ProCon2Windows/commit/e27a30fbbe46ce9684b042d65f1404c0bc8d1a09","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c64a2f0341be695c8eb9efd491b5ef234e3b5505","url":"https://github.com/deepsources/ProCon2Windows/commit/c64a2f0341be695c8eb9efd491b5ef234e3b5505","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ca1b55042179b438a293ebe9e0c1c9ecf1289225","url":"https://github.com/deepsources/ProCon2Windows/commit/ca1b55042179b438a293ebe9e0c1c9ecf1289225","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"08418ce06708eb7338f778583870f9194875c9d5","url":"https://github.com/deepsources/ProCon2Windows/commit/08418ce06708eb7338f778583870f9194875c9d5","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"8566e3cf2729e8f292955afeb1a44c847bb3e2d1","url":"https://github.com/deepsources/ProCon2Windows/commit/8566e3cf2729e8f292955afeb1a44c847bb3e2d1","weight":0.9}],"data":{"attributed_loc_by_commit":{"8566e3cf2729e8f292955afeb1a44c847bb3e2d1":110,"08418ce06708eb7338f778583870f9194875c9d5":141,"ca1b55042179b438a293ebe9e0c1c9ecf1289225":225,"c64a2f0341be695c8eb9efd491b5ef234e3b5505":273,"e27a30fbbe46ce9684b042d65f1404c0bc8d1a09":63,"e13315a9b8516c71da242d14a4484aed7e09fb04":77,"f1b6c1745173ff162acec752513956a37cc3d1c3":162,"39e75d6c2f2fabbee51d6f569c6ead48db126d98":63,"1c738589902b0f6b4b6e9436d956101a5939a922":505,"6e905126fcd238d6a32cc551a357c41fab05c72b":1293,"326b591676297c2044df73959551b5dc08d2ab8c":1956,"e3cf57fd20c543645b0e3a9c4bff7fcea8e5dc6b":742,"cfb6ee20fd4fd923a02f72233dab12158699bde5":300,"ea285a96f6bc679a9ed77a41506404c2c1fb661a":89,"6dd535a2d8591a138c9923040d9a62b5a081b9c9":304,"cceb69f46088f8fe01a78e1075b9eef19cf249d2":615,"9a5cf084aedb3b71c7bb5fb0e6a30a65fce3e918":3,"8ded8351bc7ddc47716ef250256bcbc4e5875bcd":0,"d5f538113fb4248f20b0d462020fbbab6178070f":0},"tools":{"claude-code":{"name":"Claude Code","commits":19,"loc":6921,"first_seen":1775998687,"last_seen":1776440095}},"monthly":{"2026-04":{"loc":6921,"attributed_loc":6921}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":7.0,"flagged_units":2.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":6921.0,"flagged_loc":3991.0,"flagged_loc_share":0.5766507730096807,"max_loc_per_hour":1543.368700265252,"median_loc_per_hour":387.235082610246,"pr_timed_units":0.0,"excluded_import_loc":0.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,293 lines of first-party code in ~0.8h (1,543 lines/hour, 1 commit session)","ref":"6e905126fcd238d6a32cc551a357c41fab05c72b","url":"https://github.com/deepsources/ProCon2Windows/commit/6e905126fcd238d6a32cc551a357c41fab05c72b","weight":0.4630106100795756},{"kind":"velocity-burst","description":"2,698 lines of first-party code in ~1.8h (1,502 lines/hour, 2 commit session)","ref":"e3cf57fd20c543645b0e3a9c4bff7fcea8e5dc6b","url":"https://github.com/deepsources/ProCon2Windows/commit/e3cf57fd20c543645b0e3a9c4bff7fcea8e5dc6b","weight":0.4505009276437847}],"data":{"flagged_loc_by_commit":{"6e905126fcd238d6a32cc551a357c41fab05c72b":1293,"326b591676297c2044df73959551b5dc08d2ab8c":1956,"e3cf57fd20c543645b0e3a9c4bff7fcea8e5dc6b":742},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":2775.0,"index":0.0,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":0.0,"per_kloc:emoji_in_code":0.0,"files:emoji_in_code":0.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"findings_high":0.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.0,"scanned_lines":2775.0,"parse_errors":2.0},"findings":[],"evidence":[],"data":{"rulesets":["c"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":1.0,"binary_assets":1.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v1.0.0 ships ProCon2Windows.exe (183 downloads)","ref":"ProCon2Windows.exe","url":"https://github.com/deepsources/ProCon2Windows/releases/download/v1.0.0/ProCon2Windows.exe","weight":0.0}],"data":{"signals":["binary-release-assets"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":84.0,"function_nloc":1623.0,"mean_ccn":4.65,"p90_ccn":13.0,"complex_functions":6.0,"long_functions":1.0,"many_param_functions":0.0,"risky_nloc_share":0.2754},"findings":[],"evidence":[{"kind":"complex-function","description":"procon2::DSUServer::build_and_send_data in src/dsu_server.cpp: complexity 38, 91 lines","ref":"src/dsu_server.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/dsu_server.cpp#L283","weight":0.6333333333333333},{"kind":"complex-function","description":"procon2::map_buttons in src/input_parser.cpp: complexity 23, 28 lines","ref":"src/input_parser.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/input_parser.cpp#L46","weight":0.38333333333333336},{"kind":"complex-function","description":"GuiApp::WndProc in src/gui_app.cpp: complexity 22, 64 lines","ref":"src/gui_app.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/gui_app.cpp#L214","weight":0.36666666666666664},{"kind":"complex-function","description":"GuiApp::draw_controller_visual in src/gui_app.cpp: complexity 21, 117 lines","ref":"src/gui_app.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/gui_app.cpp#L340","weight":0.35},{"kind":"complex-function","description":"procon2::VirtualDS4::update in src/virtual_ds4.cpp: complexity 21, 54 lines","ref":"src/virtual_ds4.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/virtual_ds4.cpp#L91","weight":0.35},{"kind":"complex-function","description":"procon2::Controller::send_usb_init in src/controller.cpp: complexity 19, 93 lines","ref":"src/controller.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/controller.cpp#L182","weight":0.31666666666666665}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":1990.0,"duplicated_lines":84.0,"duplicated_share":0.0422,"files":18.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: src/controller.cpp:36 and src/controller.cpp:419","ref":"src/controller.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/controller.cpp#L36","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/gui_app.cpp:172 and src/tray_app.cpp:50","ref":"src/gui_app.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/gui_app.cpp#L172","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/gui_app.cpp:420 and src/gui_app.cpp:444","ref":"src/gui_app.cpp","url":"https://github.com/deepsources/ProCon2Windows/blob/44500bc4db4f72b88072ab2ecbd74edaecb5e131/src/gui_app.cpp#L420","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"weighted_findings":0.0,"scanned_lines":2775.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":0.0,"source_lines":2775.0,"test_ratio":0.0,"ci_files":0.0,"cochange_share":0.2778,"cochange_commits":18.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":1.0,"check:license":1.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":73.0},"findings":[],"evidence":[{"kind":"docs","description":"README.md","ref":"README.md","url":null,"weight":0.0},{"kind":"docs","description":"LICENSE","ref":"LICENSE","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":2775.0,"other_lines":0.0,"files_blamed":18.0,"blame_failures":0.0,"quality:ai_findings":0.0,"quality:ai_per_kloc":0.0,"quality:other_findings":0.0,"security:ai_findings":0.0,"security:ai_per_kloc":0.0,"security:other_findings":0.0},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":["unreviewed-ai-risk"]}