{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:58:52.556915Z","repo":{"ref":{"host":"github.com","owner":"code-yeongyu","name":"go-claude-code-comment-checker"},"default_branch":"master","clone_url":"https://github.com/code-yeongyu/go-claude-code-comment-checker.git","html_url":"https://github.com/code-yeongyu/go-claude-code-comment-checker","description":"Multi-language comment detection hook for Claude Code. 100% vibe coded by Claude Opus 4.5.","stars":25,"forks":8,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":163,"primary_language":"Go","license_spdx":"MIT","created_at":"2025-11-30T01:06:56Z","pushed_at":"2026-09-30T22:04:05Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-02-23T03:17:05Z","owner_type":"User","release_assets":[{"name":"checksums.txt","size":551,"download_count":12,"release_tag":"v0.8.2","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/checksums.txt"},{"name":"comment-checker_v0.8.2_darwin_amd64.tar.gz","size":5938747,"download_count":10,"release_tag":"v0.8.2","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.8.2_darwin_arm64.tar.gz","size":5782231,"download_count":649,"release_tag":"v0.8.2","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.8.2_linux_amd64.tar.gz","size":5610164,"download_count":10105,"release_tag":"v0.8.2","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_linux_amd64.tar.gz"},{"name":"comment-checker_v0.8.2_linux_arm64.tar.gz","size":5518630,"download_count":929,"release_tag":"v0.8.2","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_linux_arm64.tar.gz"},{"name":"comment-checker_v0.8.2_windows_amd64.zip","size":5541579,"download_count":2445,"release_tag":"v0.8.2","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_windows_amd64.zip"},{"name":"checksums.txt","size":551,"download_count":3,"release_tag":"v0.8.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.1/checksums.txt"},{"name":"comment-checker_v0.8.1_darwin_amd64.tar.gz","size":5938732,"download_count":4,"release_tag":"v0.8.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.1/comment-checker_v0.8.1_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.8.1_darwin_arm64.tar.gz","size":5782240,"download_count":5,"release_tag":"v0.8.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.1/comment-checker_v0.8.1_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.8.1_linux_amd64.tar.gz","size":5610171,"download_count":5,"release_tag":"v0.8.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.1/comment-checker_v0.8.1_linux_amd64.tar.gz"},{"name":"comment-checker_v0.8.1_linux_arm64.tar.gz","size":5518630,"download_count":4,"release_tag":"v0.8.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.1/comment-checker_v0.8.1_linux_arm64.tar.gz"},{"name":"comment-checker_v0.8.1_windows_amd64.zip","size":5541579,"download_count":4,"release_tag":"v0.8.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.1/comment-checker_v0.8.1_windows_amd64.zip"},{"name":"checksums.txt","size":551,"download_count":96,"release_tag":"v0.8.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.0/checksums.txt"},{"name":"comment-checker_v0.8.0_darwin_amd64.tar.gz","size":5522238,"download_count":2724,"release_tag":"v0.8.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.0/comment-checker_v0.8.0_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.8.0_darwin_arm64.tar.gz","size":5786324,"download_count":51881,"release_tag":"v0.8.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.0/comment-checker_v0.8.0_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.8.0_linux_amd64.tar.gz","size":5616349,"download_count":189836,"release_tag":"v0.8.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.0/comment-checker_v0.8.0_linux_amd64.tar.gz"},{"name":"comment-checker_v0.8.0_linux_arm64.tar.gz","size":5523338,"download_count":35486,"release_tag":"v0.8.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.0/comment-checker_v0.8.0_linux_arm64.tar.gz"},{"name":"comment-checker_v0.8.0_windows_amd64.zip","size":5389110,"download_count":841905,"release_tag":"v0.8.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.0/comment-checker_v0.8.0_windows_amd64.zip"},{"name":"checksums.txt","size":551,"download_count":9,"release_tag":"v0.7.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.1/checksums.txt"},{"name":"comment-checker_v0.7.1_darwin_amd64.tar.gz","size":5402214,"download_count":172,"release_tag":"v0.7.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.1/comment-checker_v0.7.1_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.7.1_darwin_arm64.tar.gz","size":5636483,"download_count":4129,"release_tag":"v0.7.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.1/comment-checker_v0.7.1_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.7.1_linux_amd64.tar.gz","size":5933254,"download_count":36215,"release_tag":"v0.7.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.1/comment-checker_v0.7.1_linux_amd64.tar.gz"},{"name":"comment-checker_v0.7.1_linux_arm64.tar.gz","size":5760931,"download_count":1891,"release_tag":"v0.7.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.1/comment-checker_v0.7.1_linux_arm64.tar.gz"},{"name":"comment-checker_v0.7.1_windows_amd64.zip","size":5604866,"download_count":87001,"release_tag":"v0.7.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.1/comment-checker_v0.7.1_windows_amd64.zip"},{"name":"checksums.txt","size":541,"download_count":28,"release_tag":"v0.7.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.0/checksums.txt"},{"name":"comment-checker_v0.7.0_darwin_amd64.tar.gz","size":5402433,"download_count":10657,"release_tag":"v0.7.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.0/comment-checker_v0.7.0_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.7.0_darwin_arm64.tar.gz","size":5633978,"download_count":101880,"release_tag":"v0.7.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.0/comment-checker_v0.7.0_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.7.0_linux_amd64.tar.gz","size":5934749,"download_count":243300,"release_tag":"v0.7.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.0/comment-checker_v0.7.0_linux_amd64.tar.gz"},{"name":"comment-checker_v0.7.0_linux_arm64.tar.gz","size":5766065,"download_count":39588,"release_tag":"v0.7.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.0/comment-checker_v0.7.0_linux_arm64.tar.gz"},{"name":"comment-checker_v0.7.0_windows_amd64.zip","size":5552158,"download_count":886861,"release_tag":"v0.7.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.7.0/comment-checker_v0.7.0_windows_amd64.zip"},{"name":"checksums.txt","size":541,"download_count":12,"release_tag":"v0.6.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.1/checksums.txt"},{"name":"comment-checker_v0.6.1_darwin_amd64.tar.gz","size":5402392,"download_count":16084,"release_tag":"v0.6.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.1/comment-checker_v0.6.1_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.6.1_darwin_arm64.tar.gz","size":5632462,"download_count":144128,"release_tag":"v0.6.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.1/comment-checker_v0.6.1_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.6.1_linux_amd64.tar.gz","size":5934221,"download_count":226702,"release_tag":"v0.6.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.1/comment-checker_v0.6.1_linux_amd64.tar.gz"},{"name":"comment-checker_v0.6.1_linux_arm64.tar.gz","size":5764027,"download_count":47488,"release_tag":"v0.6.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.1/comment-checker_v0.6.1_linux_arm64.tar.gz"},{"name":"comment-checker_v0.6.1_windows_amd64.zip","size":5550627,"download_count":219852,"release_tag":"v0.6.1","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.1/comment-checker_v0.6.1_windows_amd64.zip"},{"name":"checksums.txt","size":541,"download_count":9,"release_tag":"v0.6.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.0/checksums.txt"},{"name":"comment-checker_v0.6.0_darwin_amd64.tar.gz","size":5402380,"download_count":92,"release_tag":"v0.6.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.0/comment-checker_v0.6.0_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.6.0_darwin_arm64.tar.gz","size":5632414,"download_count":2765,"release_tag":"v0.6.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.0/comment-checker_v0.6.0_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.6.0_linux_amd64.tar.gz","size":5931347,"download_count":3799,"release_tag":"v0.6.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.0/comment-checker_v0.6.0_linux_amd64.tar.gz"},{"name":"comment-checker_v0.6.0_linux_arm64.tar.gz","size":5763254,"download_count":251,"release_tag":"v0.6.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.0/comment-checker_v0.6.0_linux_arm64.tar.gz"},{"name":"comment-checker_v0.6.0_windows_amd64.zip","size":5550245,"download_count":1341,"release_tag":"v0.6.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.6.0/comment-checker_v0.6.0_windows_amd64.zip"},{"name":"checksums.txt","size":541,"download_count":10,"release_tag":"v0.5.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.5.0/checksums.txt"},{"name":"comment-checker_v0.5.0_darwin_amd64.tar.gz","size":5397618,"download_count":24,"release_tag":"v0.5.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.5.0/comment-checker_v0.5.0_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.5.0_darwin_arm64.tar.gz","size":5626160,"download_count":275,"release_tag":"v0.5.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.5.0/comment-checker_v0.5.0_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.5.0_linux_amd64.tar.gz","size":5924150,"download_count":1007,"release_tag":"v0.5.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.5.0/comment-checker_v0.5.0_linux_amd64.tar.gz"},{"name":"comment-checker_v0.5.0_linux_arm64.tar.gz","size":5758522,"download_count":70,"release_tag":"v0.5.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.5.0/comment-checker_v0.5.0_linux_arm64.tar.gz"},{"name":"comment-checker_v0.5.0_windows_amd64.zip","size":5541213,"download_count":336,"release_tag":"v0.5.0","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.5.0/comment-checker_v0.5.0_windows_amd64.zip"},{"name":"checksums.txt","size":541,"download_count":9,"release_tag":"v0.4.4","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.4/checksums.txt"},{"name":"comment-checker_v0.4.4_darwin_amd64.tar.gz","size":5397996,"download_count":5,"release_tag":"v0.4.4","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.4/comment-checker_v0.4.4_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.4.4_darwin_arm64.tar.gz","size":5626238,"download_count":9,"release_tag":"v0.4.4","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.4/comment-checker_v0.4.4_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.4.4_linux_amd64.tar.gz","size":5924304,"download_count":181,"release_tag":"v0.4.4","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.4/comment-checker_v0.4.4_linux_amd64.tar.gz"},{"name":"comment-checker_v0.4.4_linux_arm64.tar.gz","size":5754815,"download_count":90,"release_tag":"v0.4.4","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.4/comment-checker_v0.4.4_linux_arm64.tar.gz"},{"name":"comment-checker_v0.4.4_windows_amd64.zip","size":5541497,"download_count":40,"release_tag":"v0.4.4","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.4/comment-checker_v0.4.4_windows_amd64.zip"},{"name":"checksums.txt","size":541,"download_count":10,"release_tag":"v0.4.3","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.3/checksums.txt"},{"name":"comment-checker_v0.4.3_darwin_amd64.tar.gz","size":5397994,"download_count":5,"release_tag":"v0.4.3","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.3/comment-checker_v0.4.3_darwin_amd64.tar.gz"},{"name":"comment-checker_v0.4.3_darwin_arm64.tar.gz","size":5626230,"download_count":5,"release_tag":"v0.4.3","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.3/comment-checker_v0.4.3_darwin_arm64.tar.gz"},{"name":"comment-checker_v0.4.3_linux_amd64.tar.gz","size":5924319,"download_count":6,"release_tag":"v0.4.3","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.3/comment-checker_v0.4.3_linux_amd64.tar.gz"},{"name":"comment-checker_v0.4.3_linux_arm64.tar.gz","size":5754813,"download_count":5,"release_tag":"v0.4.3","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.3/comment-checker_v0.4.3_linux_arm64.tar.gz"},{"name":"comment-checker_v0.4.3_windows_amd64.zip","size":5541498,"download_count":5,"release_tag":"v0.4.3","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.4.3/comment-checker_v0.4.3_windows_amd64.zip"}]}},"commit_sha":"311565fc9380579449ae34a8ab4c2cd386da840c","profile":{"lines_by_language":{"Go":2782,"Rust":2366,"JavaScript":771,"Shell":255},"files_by_category":{"source":33,"test":23,"config":20,"docs":3,"generated":2,"other":1},"source_lines":3059,"test_lines":3115},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.54,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.3495,"estimated_share":0.0,"ai_artifacts":1.0,"flagged_work_units":1.0,"flagged_releases":0.0},"summary":"Weak signals consistent with AI-assisted development."},"quality":{"score":74.5,"confidence":0.9,"coverage":1.0,"label":"adequate","breakdown":{"complexity":48.6,"duplication":67.4,"lint":79.9,"testing":100.0,"docs":65.0,"type_safety":null,"process":null},"summary":"Code quality is adequate: test-to-source ratio 1.02, CI runs tests; 24% of function code in complex or long functions; 7% duplicated lines. Weakest area: complexity."},"security":{"score":62.2,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":100.0,"dependencies":54.9,"ci_actions":0.2,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 27 known vulnerabilities in 12 dependencies; 31 high-severity workflow issues. 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":"ok","tool_version":null,"metrics":{"declared":12.0,"checked":12.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":55.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":6856.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2025-11":{"loc":2259,"attributed_loc":0},"2025-12":{"loc":906,"attributed_loc":0},"2026-05":{"loc":3220,"attributed_loc":0},"2026-09":{"loc":471,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":1.0,"workflow_agents":0.0,"tools_configured":1.0,"earliest_adoption":1790791282.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/AGENTS.md","weight":0.5}],"data":{"artifacts":[{"tool":"generic-agent","path":"AGENTS.md","added_at":1790791282}],"workflows":[],"tools":["generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":17.0,"flagged_units":1.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":6856.0,"flagged_loc":2396.0,"flagged_loc_share":0.34947491248541424,"max_loc_per_hour":597.7961050661861,"median_loc_per_hour":100.26350695567777,"pr_timed_units":5.0,"excluded_import_loc":0.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"2,396 lines of first-party code in ~4.0h (598 lines/hour, 2 commit session)","ref":"b3640433b08b83c03ea9ed8de1845921dc69ea36","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/commit/b3640433b08b83c03ea9ed8de1845921dc69ea36","weight":0.17933883151985583}],"data":{"flagged_loc_by_commit":{"2c1addec3496ad26a6b61ba5316746e8216ea55b":21,"b3640433b08b83c03ea9ed8de1845921dc69ea36":2375},"excluded_import_commits":[]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"releases":20.0,"flagged_releases":0.0,"max_loc_per_day":2616.0},"findings":[],"evidence":[],"data":{"releases":[{"from":"v0.1.0","to":"v0.2.0","loc":81,"days":2.14,"loc_per_day":37.8,"flagged":false},{"from":"v0.2.0","to":"v0.3.0","loc":159,"days":2.91,"loc_per_day":54.6,"flagged":false},{"from":"v0.3.0","to":"v0.3.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.3.1","to":"v0.3.2","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.3.2","to":"v0.3.3","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.3.3","to":"v0.3.4","loc":0,"days":0.07,"loc_per_day":0.0,"flagged":false},{"from":"v0.3.4","to":"v0.3.5","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.3.5","to":"v0.4.0","loc":109,"days":0.04,"loc_per_day":2616.0,"flagged":false},{"from":"v0.4.0","to":"v0.4.1","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.4.1","to":"v0.4.2","loc":0,"days":3.92,"loc_per_day":0.0,"flagged":false},{"from":"v0.4.2","to":"v0.4.3","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.4.3","to":"v0.4.4","loc":0,"days":0.04,"loc_per_day":0.0,"flagged":false},{"from":"v0.4.4","to":"v0.5.0","loc":5,"days":0.2,"loc_per_day":24.4,"flagged":false},{"from":"v0.5.0","to":"v0.6.0","loc":476,"days":6.78,"loc_per_day":70.2,"flagged":false},{"from":"v0.6.0","to":"v0.6.1","loc":2,"days":12.09,"loc_per_day":0.2,"flagged":false},{"from":"v0.6.1","to":"v0.7.0","loc":74,"days":0.05,"loc_per_day":1551.5,"flagged":false},{"from":"v0.7.0","to":"v0.7.1","loc":748,"days":139.21,"loc_per_day":5.4,"flagged":false},{"from":"v0.7.1","to":"v0.8.0","loc":2472,"days":1.93,"loc_per_day":1281.6,"flagged":false},{"from":"v0.8.0","to":"v0.8.1","loc":447,"days":134.02,"loc_per_day":3.3,"flagged":false},{"from":"v0.8.1","to":"v0.8.2","loc":11,"days":0.04,"loc_per_day":264.0,"flagged":false}]},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":3059.0,"index":0.654,"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":4.0,"per_kloc:emoji_in_code":1.308,"files:emoji_in_code":2.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":3059.0,"parse_errors":0.0},"findings":[],"evidence":[],"data":{"rulesets":["rust","go","javascript","bash"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":12.0,"vulnerabilities":27.0,"vulns_critical":0.0,"vulns_high":0.0,"vulns_medium":3.0,"vulns_low":2.0,"vulns_unknown":22.0,"penalty":36.0},"findings":[{"rule_id":"osv/RUSTSEC-2026-0190","severity":"medium","message":"anyhow@1.0.102 (crates.io) is affected by RUSTSEC-2026-0190","path":"Cargo.lock","line":null,"fingerprint":"anyhow@1.0.102 (crates.io):RUSTSEC-2026-0190"},{"rule_id":"osv/GHSA-qwgh-2vcv-g2f7","severity":"medium","message":"block-buffer@0.12.0 (crates.io) is affected by GHSA-qwgh-2vcv-g2f7","path":"Cargo.lock","line":null,"fingerprint":"block-buffer@0.12.0 (crates.io):GHSA-qwgh-2vcv-g2f7"},{"rule_id":"osv/RUSTSEC-2026-0204","severity":"medium","message":"crossbeam-epoch@0.9.18 (crates.io) is affected by RUSTSEC-2026-0204","path":"Cargo.lock","line":null,"fingerprint":"crossbeam-epoch@0.9.18 (crates.io):RUSTSEC-2026-0204"},{"rule_id":"osv/RUSTSEC-2026-0486","severity":"medium","message":"rustix@1.1.4 (crates.io) is affected by RUSTSEC-2026-0486","path":"Cargo.lock","line":null,"fingerprint":"rustix@1.1.4 (crates.io):RUSTSEC-2026-0486"},{"rule_id":"osv/GHSA-2mjx-qc3c-rqvc","severity":"medium","message":"rustls@0.23.40 (crates.io) is affected by RUSTSEC-2026-0285, GHSA-2mjx-qc3c-rqvc","path":"Cargo.lock","line":null,"fingerprint":"rustls@0.23.40 (crates.io):GHSA-2mjx-qc3c-rqvc"},{"rule_id":"osv/GHSA-c8m5-c952-6cm4","severity":"medium","message":"rustls@0.23.40 (crates.io) is affected by RUSTSEC-2026-0346, GHSA-c8m5-c952-6cm4","path":"Cargo.lock","line":null,"fingerprint":"rustls@0.23.40 (crates.io):GHSA-c8m5-c952-6cm4"},{"rule_id":"osv/RUSTSEC-2026-0382","severity":"medium","message":"rustls-webpki@0.103.13 (crates.io) is affected by RUSTSEC-2026-0382","path":"Cargo.lock","line":null,"fingerprint":"rustls-webpki@0.103.13 (crates.io):RUSTSEC-2026-0382"},{"rule_id":"osv/GHSA-3pv8-6f4r-ffg2","severity":"medium","message":"tar@0.4.45 (crates.io) is affected by GHSA-3pv8-6f4r-ffg2","path":"Cargo.lock","line":null,"fingerprint":"tar@0.4.45 (crates.io):GHSA-3pv8-6f4r-ffg2"},{"rule_id":"osv/RUSTSEC-2026-0381","severity":"medium","message":"webpki-roots@1.0.7 (crates.io) is affected by RUSTSEC-2026-0381","path":"Cargo.lock","line":null,"fingerprint":"webpki-roots@1.0.7 (crates.io):RUSTSEC-2026-0381"},{"rule_id":"osv/RUSTSEC-2026-0391","severity":"medium","message":"zstd@0.13.3 (crates.io) is affected by RUSTSEC-2026-0391","path":"Cargo.lock","line":null,"fingerprint":"zstd@0.13.3 (crates.io):RUSTSEC-2026-0391"},{"rule_id":"osv/RUSTSEC-2026-0395","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0395","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0395"},{"rule_id":"osv/RUSTSEC-2026-0396","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0396","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0396"},{"rule_id":"osv/RUSTSEC-2026-0397","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0397","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0397"},{"rule_id":"osv/RUSTSEC-2026-0398","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0398","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0398"},{"rule_id":"osv/RUSTSEC-2026-0399","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0399","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0399"},{"rule_id":"osv/RUSTSEC-2026-0400","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0400","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0400"},{"rule_id":"osv/RUSTSEC-2026-0401","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0401","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0401"},{"rule_id":"osv/RUSTSEC-2026-0402","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0402","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0402"},{"rule_id":"osv/RUSTSEC-2026-0403","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0403","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0403"},{"rule_id":"osv/RUSTSEC-2026-0404","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0404","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0404"},{"rule_id":"osv/RUSTSEC-2026-0405","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0405","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0405"},{"rule_id":"osv/RUSTSEC-2026-0406","severity":"medium","message":"zstd-safe@7.2.4 (crates.io) is affected by RUSTSEC-2026-0406","path":"Cargo.lock","line":null,"fingerprint":"zstd-safe@7.2.4 (crates.io):RUSTSEC-2026-0406"},{"rule_id":"osv/RUSTSEC-2026-0410","severity":"medium","message":"zstd-sys@2.0.16+zstd.1.5.7 (crates.io) is affected by RUSTSEC-2026-0410","path":"Cargo.lock","line":null,"fingerprint":"zstd-sys@2.0.16+zstd.1.5.7 (crates.io):RUSTSEC-2026-0410"},{"rule_id":"osv/GO-2026-5970","severity":"medium","message":"golang.org/x/text@0.31.0 (Go) is affected by GO-2026-5970","path":"go/go.mod","line":null,"fingerprint":"golang.org/x/text@0.31.0 (Go):GO-2026-5970"},{"rule_id":"osv/GO-2026-6629","severity":"medium","message":"golang.org/x/text@0.31.0 (Go) is affected by GO-2026-6629","path":"go/go.mod","line":null,"fingerprint":"golang.org/x/text@0.31.0 (Go):GO-2026-6629"},{"rule_id":"osv/GHSA-h2v8-394m-p7vv","severity":"low","message":"rustls@0.23.40 (crates.io) is affected by RUSTSEC-2026-0348, GHSA-h2v8-394m-p7vv","path":"Cargo.lock","line":null,"fingerprint":"rustls@0.23.40 (crates.io):GHSA-h2v8-394m-p7vv"},{"rule_id":"osv/GHSA-w44r-93j7-qv28","severity":"low","message":"rustls@0.23.40 (crates.io) is affected by RUSTSEC-2026-0349, GHSA-w44r-93j7-qv28","path":"Cargo.lock","line":null,"fingerprint":"rustls@0.23.40 (crates.io):GHSA-w44r-93j7-qv28"}],"evidence":[],"data":{"ecosystems":["Go","crates.io"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":3.0,"findings":51.0,"findings_high":31.0,"findings_medium":13.0,"findings_low":7.0,"penalty":376.6},"findings":[{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":17,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:17"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":25,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:25"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":55,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:55"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":79,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:79"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/ci.yml","line":82,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:82"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/macos-signing-canary.yml","line":23,"fingerprint":"unpinned-uses:.github/workflows/macos-signing-canary.yml:23"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/macos-signing-canary.yml","line":54,"fingerprint":"unpinned-uses:.github/workflows/macos-signing-canary.yml:54"},{"rule_id":"zizmor/excessive-permissions","severity":"high","message":"overly broad permissions [confidence high]","path":".github/workflows/release.yml","line":9,"fingerprint":"excessive-permissions:.github/workflows/release.yml:9"},{"rule_id":"zizmor/excessive-permissions","severity":"high","message":"overly broad permissions [confidence high]","path":".github/workflows/release.yml","line":10,"fingerprint":"excessive-permissions:.github/workflows/release.yml:10"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":132,"fingerprint":"template-injection:.github/workflows/release.yml:132"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":143,"fingerprint":"template-injection:.github/workflows/release.yml:143"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":228,"fingerprint":"template-injection:.github/workflows/release.yml:228"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":229,"fingerprint":"template-injection:.github/workflows/release.yml:229"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":237,"fingerprint":"template-injection:.github/workflows/release.yml:237"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":311,"fingerprint":"template-injection:.github/workflows/release.yml:311"},{"rule_id":"zizmor/template-injection","severity":"high","message":"code injection via template expansion [confidence high]","path":".github/workflows/release.yml","line":316,"fingerprint":"template-injection:.github/workflows/release.yml:316"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":20,"fingerprint":"unpinned-uses:.github/workflows/release.yml:20"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":33,"fingerprint":"unpinned-uses:.github/workflows/release.yml:33"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":104,"fingerprint":"unpinned-uses:.github/workflows/release.yml:104"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":150,"fingerprint":"unpinned-uses:.github/workflows/release.yml:150"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":159,"fingerprint":"unpinned-uses:.github/workflows/release.yml:159"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":162,"fingerprint":"unpinned-uses:.github/workflows/release.yml:162"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":173,"fingerprint":"unpinned-uses:.github/workflows/release.yml:173"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":211,"fingerprint":"unpinned-uses:.github/workflows/release.yml:211"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":214,"fingerprint":"unpinned-uses:.github/workflows/release.yml:214"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":220,"fingerprint":"unpinned-uses:.github/workflows/release.yml:220"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":288,"fingerprint":"unpinned-uses:.github/workflows/release.yml:288"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":291,"fingerprint":"unpinned-uses:.github/workflows/release.yml:291"},{"rule_id":"zizmor/unpinned-uses","severity":"high","message":"unpinned action reference [confidence high]","path":".github/workflows/release.yml","line":303,"fingerprint":"unpinned-uses:.github/workflows/release.yml:303"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":33,"fingerprint":"cache-poisoning:.github/workflows/release.yml:33"},{"rule_id":"zizmor/cache-poisoning","severity":"high","message":"runtime artifacts potentially vulnerable to a cache poisoning attack [confidence low]","path":".github/workflows/release.yml","line":291,"fingerprint":"cache-poisoning:.github/workflows/release.yml:291"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":17,"fingerprint":"artipacked:.github/workflows/ci.yml:17"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":55,"fingerprint":"artipacked:.github/workflows/ci.yml:55"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/ci.yml","line":79,"fingerprint":"artipacked:.github/workflows/ci.yml:79"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":1,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:1"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":14,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:14"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":52,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:52"},{"rule_id":"zizmor/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":68,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:68"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/macos-signing-canary.yml","line":23,"fingerprint":"artipacked:.github/workflows/macos-signing-canary.yml:23"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":20,"fingerprint":"artipacked:.github/workflows/release.yml:20"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":104,"fingerprint":"artipacked:.github/workflows/release.yml:104"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":159,"fingerprint":"artipacked:.github/workflows/release.yml:159"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":211,"fingerprint":"artipacked:.github/workflows/release.yml:211"},{"rule_id":"zizmor/artipacked","severity":"medium","message":"credential persistence through GitHub Actions artifacts [confidence low]","path":".github/workflows/release.yml","line":288,"fingerprint":"artipacked:.github/workflows/release.yml:288"},{"rule_id":"zizmor/adhoc-packages","severity":"low","message":"ad-hoc installation of packages [confidence high]","path":".github/workflows/release.yml","line":297,"fingerprint":"adhoc-packages:.github/workflows/release.yml:297"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":268,"fingerprint":"template-injection:.github/workflows/release.yml:268"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":269,"fingerprint":"template-injection:.github/workflows/release.yml:269"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":316,"fingerprint":"template-injection:.github/workflows/release.yml:316"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":322,"fingerprint":"template-injection:.github/workflows/release.yml:322"},{"rule_id":"zizmor/template-injection","severity":"info","message":"code injection via template expansion [confidence low]","path":".github/workflows/release.yml","line":328,"fingerprint":"template-injection:.github/workflows/release.yml:328"},{"rule_id":"zizmor/superfluous-actions","severity":"info","message":"action functionality is already included by the runner [confidence high]","path":".github/workflows/release.yml","line":173,"fingerprint":"superfluous-actions:.github/workflows/release.yml:173"}],"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":0.0,"signed_commit_share":0.0909,"unpinned_manifests":8.0},"findings":[],"evidence":[{"kind":"posture","description":"bindings/napi/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"bindings/napi/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"bindings/wasm/Cargo.toml has no lockfile alongside it (unpinned dependencies)","ref":"bindings/wasm/Cargo.toml","url":null,"weight":0.3},{"kind":"posture","description":"npm/comment-checker-darwin-arm64/package.json has no lockfile alongside it (unpinned dependencies)","ref":"npm/comment-checker-darwin-arm64/package.json","url":null,"weight":0.3},{"kind":"posture","description":"npm/comment-checker-darwin-x64/package.json has no lockfile alongside it (unpinned dependencies)","ref":"npm/comment-checker-darwin-x64/package.json","url":null,"weight":0.3},{"kind":"posture","description":"npm/comment-checker-linux-arm64/package.json has no lockfile alongside it (unpinned dependencies)","ref":"npm/comment-checker-linux-arm64/package.json","url":null,"weight":0.3},{"kind":"posture","description":"npm/comment-checker-linux-x64/package.json has no lockfile alongside it (unpinned dependencies)","ref":"npm/comment-checker-linux-x64/package.json","url":null,"weight":0.3},{"kind":"posture","description":"npm/comment-checker-win32-x64/package.json has no lockfile alongside it (unpinned dependencies)","ref":"npm/comment-checker-win32-x64/package.json","url":null,"weight":0.3},{"kind":"posture","description":"npm/comment-checker/package.json has no lockfile alongside it (unpinned dependencies)","ref":"npm/comment-checker/package.json","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":2.0,"binary_assets":50.0,"suspicious":0.0},"findings":[],"evidence":[{"kind":"binary-release-asset","description":"release v0.8.2 ships comment-checker_v0.8.2_darwin_amd64.tar.gz (10 downloads)","ref":"comment-checker_v0.8.2_darwin_amd64.tar.gz","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_darwin_amd64.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v0.8.2 ships comment-checker_v0.8.2_darwin_arm64.tar.gz (649 downloads)","ref":"comment-checker_v0.8.2_darwin_arm64.tar.gz","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_darwin_arm64.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v0.8.2 ships comment-checker_v0.8.2_linux_amd64.tar.gz (10105 downloads)","ref":"comment-checker_v0.8.2_linux_amd64.tar.gz","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_linux_amd64.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v0.8.2 ships comment-checker_v0.8.2_linux_arm64.tar.gz (929 downloads)","ref":"comment-checker_v0.8.2_linux_arm64.tar.gz","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_linux_arm64.tar.gz","weight":0.0},{"kind":"binary-release-asset","description":"release v0.8.2 ships comment-checker_v0.8.2_windows_amd64.zip (2445 downloads)","ref":"comment-checker_v0.8.2_windows_amd64.zip","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/releases/download/v0.8.2/comment-checker_v0.8.2_windows_amd64.zip","weight":0.0},{"kind":"readme-download-lure","description":"gives an archive password","ref":"README.md","url":null,"weight":0.0}],"data":{"signals":["binary-release-assets","readme-download-lure"],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":114.0,"function_nloc":1803.0,"mean_ccn":3.84,"p90_ccn":8.0,"complex_functions":5.0,"long_functions":1.0,"many_param_functions":0.0,"risky_nloc_share":0.2407},"findings":[],"evidence":[{"kind":"complex-function","description":"GetLanguage in go/pkg/core/language_registry.go: complexity 32, 68 lines","ref":"go/pkg/core/language_registry.go","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/go/pkg/core/language_registry.go#L99","weight":0.5333333333333333},{"kind":"complex-function","description":"language_name_for_alias in src/language.rs: complexity 32, 37 lines","ref":"src/language.rs","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/src/language.rs#L30","weight":0.5333333333333333},{"kind":"complex-function","description":"is_english_agent_memo in src/filters.rs: complexity 30, 65 lines","ref":"src/filters.rs","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/src/filters.rs#L106","weight":0.5},{"kind":"complex-function","description":"install in npm/comment-checker/postinstall.js: complexity 23, 54 lines","ref":"npm/comment-checker/postinstall.js","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/npm/comment-checker/postinstall.js#L128","weight":0.38333333333333336},{"kind":"complex-function","description":"run in go/cmd/comment-checker/main.go: complexity 16, 91 lines","ref":"go/cmd/comment-checker/main.go","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/go/cmd/comment-checker/main.go#L64","weight":0.26666666666666666},{"kind":"complex-function","description":"format_hook_message in src/output.rs: complexity 10, 119 lines","ref":"src/output.rs","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/src/output.rs#L37","weight":0.16666666666666666}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":2189.0,"duplicated_lines":144.0,"duplicated_share":0.0658,"files":33.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: go/pkg/core/detector.go:65 and go/pkg/core/detector.go:111","ref":"go/pkg/core/detector.go","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/go/pkg/core/detector.go#L65","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: go/pkg/filters/directive.go:11 and src/filters.rs:15","ref":"go/pkg/filters/directive.go","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/go/pkg/filters/directive.go#L11","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/language.rs:129 and src/language.rs:192","ref":"src/language.rs","url":"https://github.com/code-yeongyu/go-claude-code-comment-checker/blob/311565fc9380579449ae34a8ab4c2cd386da840c/src/language.rs#L129","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":8.0,"weighted_findings":2.75,"scanned_lines":3059.0,"category:best-practice":1.0,"category:correctness":7.0},"findings":[{"rule_id":"opengrep/javascript.lang.best-practice.lazy-load-module","severity":"medium","message":"Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The best practice is to `require` modules at the beginning of each file","path":"npm/comment-checker/postinstall.js","line":34,"fingerprint":"javascript.lang.best-practice.lazy-load-module:npm/comment-checker/postinstall.js:34"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-command-substitution-in-command","severity":"low","message":"The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result.","path":".github/scripts/macos-sign-and-notarize.sh","line":130,"fingerprint":"bash.lang.correctness.unquoted-command-substitution-in-command:.github/scripts/macos-sign-and-notarize.sh:130"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":".github/scripts/macos-sign-and-notarize.sh","line":130,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:.github/scripts/macos-sign-and-notarize.sh:130"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"npm/comment-checker/cli.js","line":3,"fingerprint":"javascript.lang.correctness.useless-assignment:npm/comment-checker/cli.js:3"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"npm/comment-checker/index.js","line":1,"fingerprint":"javascript.lang.correctness.useless-assignment:npm/comment-checker/index.js:1"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"npm/comment-checker/postinstall.js","line":13,"fingerprint":"javascript.lang.correctness.useless-assignment:npm/comment-checker/postinstall.js:13"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"npm/comment-checker/postinstall.js","line":14,"fingerprint":"javascript.lang.correctness.useless-assignment:npm/comment-checker/postinstall.js:14"},{"rule_id":"opengrep/javascript.lang.correctness.useless-assignment","severity":"low","message":"`const` is assigned twice; the first assignment is useless","path":"npm/comment-checker/postinstall.js","line":15,"fingerprint":"javascript.lang.correctness.useless-assignment:npm/comment-checker/postinstall.js:15"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":1.0,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":1.0,"check:tests_cochange":1.0,"test_lines":3115.0,"source_lines":3059.0,"test_ratio":1.0183,"ci_files":3.0,"cochange_share":0.5926,"cochange_commits":27.0},"findings":[],"evidence":[{"kind":"ci","description":"CI config: .github/workflows/ci.yml","ref":".github/workflows/ci.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/macos-signing-canary.yml","ref":".github/workflows/macos-signing-canary.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI config: .github/workflows/release.yml","ref":".github/workflows/release.yml","url":null,"weight":0.0},{"kind":"ci","description":"CI runs tests (go test, cargo test)","ref":null,"url":null,"weight":0.0},{"kind":"ci","description":"CI runs linters (clippy, rustfmt, cargo fmt)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["go test","cargo test"],"lint_commands":["clippy","rustfmt","cargo fmt"]},"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":104.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}],"flags":[]}