{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-14T00:00:37.534255Z","repo":{"ref":{"host":"github.com","owner":"Alisa0808","name":"vox-director"},"default_branch":"main","clone_url":"https://github.com/Alisa0808/vox-director.git","html_url":"https://github.com/Alisa0808/vox-director","description":"Turn one topic into a finished Vox-style paper-collage explainer/ad video — automated end to end on Atlas Cloud + ffmpeg. An agent skill.","stars":2818,"forks":385,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":53626,"primary_language":"Python","license_spdx":"MIT","created_at":"2026-07-10T15:32:05Z","pushed_at":"2026-10-05T16:15:11Z","security_policy_url":null,"distribution":{"owner_created_at":"2020-07-15T07:35:32Z","owner_type":"User","release_assets":[]}},"commit_sha":"6a85a7c341610442a6a5b1885e6e0217ab82a11f","profile":{"lines_by_language":{"Python":3309},"files_by_category":{"source":22,"docs":13,"config":7,"binary":6,"oversized":4},"source_lines":3309,"test_lines":0},"pillars":{"ai_provenance":{"score":93.5,"confidence":0.77,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.9351,"suspected_share":0.0,"estimated_share":0.9351,"ai_artifacts":1.0,"flagged_work_units":0.0,"flagged_releases":null},"summary":"Explicit AI attribution on 94% of first-party code added; an estimated 94% including velocity signals."},"quality":{"score":34.5,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":47.6,"duplication":79.9,"lint":7.1,"testing":0.0,"docs":65.0,"type_safety":40.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 25% of function code in complex or long functions; 4% duplicated lines. Weakest area: testing."},"security":{"score":77.3,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":87.6,"dependencies":null,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 1 high-severity SAST 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":30.0,"attributed_commits":29.0,"attributed_commit_share":0.9666666666666667,"effective_loc":3529.0,"attributed_loc":3300.0,"attributed_loc_share":0.9351090960612072,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 29 attributed commits, 3,300 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"6a85a7c341610442a6a5b1885e6e0217ab82a11f","url":"https://github.com/Alisa0808/vox-director/commit/6a85a7c341610442a6a5b1885e6e0217ab82a11f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"668ec3946fe0139bc985313b15c1a300fca42f94","url":"https://github.com/Alisa0808/vox-director/commit/668ec3946fe0139bc985313b15c1a300fca42f94","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"8b034354dc443edcde7fdb2622e0491df5142fd3","url":"https://github.com/Alisa0808/vox-director/commit/8b034354dc443edcde7fdb2622e0491df5142fd3","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"a75167b0ef15bf66d23accb539dcd6681bf59d21","url":"https://github.com/Alisa0808/vox-director/commit/a75167b0ef15bf66d23accb539dcd6681bf59d21","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"922b87f2ad168ab9b64a97a8ae8b8a47da5d7d9f","url":"https://github.com/Alisa0808/vox-director/commit/922b87f2ad168ab9b64a97a8ae8b8a47da5d7d9f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"27822c6ef95936b1999e8d482e19373077a77bc7","url":"https://github.com/Alisa0808/vox-director/commit/27822c6ef95936b1999e8d482e19373077a77bc7","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"3ec747936eb7abf79e98ca37d0e4a80adb498e13","url":"https://github.com/Alisa0808/vox-director/commit/3ec747936eb7abf79e98ca37d0e4a80adb498e13","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"77bc68ff68405333774fe0a24a7041e23b5863dc","url":"https://github.com/Alisa0808/vox-director/commit/77bc68ff68405333774fe0a24a7041e23b5863dc","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: PR description attribution","ref":"0f66dc444fc18ac26f6dddd30ee5505d31b45de6","url":"https://github.com/Alisa0808/vox-director/commit/0f66dc444fc18ac26f6dddd30ee5505d31b45de6","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c22681a6d101f328926422ffcf919aaffef3ca1e","url":"https://github.com/Alisa0808/vox-director/commit/c22681a6d101f328926422ffcf919aaffef3ca1e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-authored-by: Claude'","ref":"186587cb02915a9554f2a8b616294f400937982d","url":"https://github.com/Alisa0808/vox-director/commit/186587cb02915a9554f2a8b616294f400937982d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f4314a464ecfbbc0e04af27c2099cf54eba1867f","url":"https://github.com/Alisa0808/vox-director/commit/f4314a464ecfbbc0e04af27c2099cf54eba1867f","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"4ec7dac870d3c1e7f60cbbb4ede29919cd280fbd","url":"https://github.com/Alisa0808/vox-director/commit/4ec7dac870d3c1e7f60cbbb4ede29919cd280fbd","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ad97ffdd38e53c90382ee011673fc3fdc6d171af","url":"https://github.com/Alisa0808/vox-director/commit/ad97ffdd38e53c90382ee011673fc3fdc6d171af","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"1f42111e3765974eed8eef97fb2acc1f2a5b0fe4","url":"https://github.com/Alisa0808/vox-director/commit/1f42111e3765974eed8eef97fb2acc1f2a5b0fe4","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"95f74509b73006651fc10b99e2ef6c662e29499b","url":"https://github.com/Alisa0808/vox-director/commit/95f74509b73006651fc10b99e2ef6c662e29499b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"cff530e12e537f90cc475a3691081a4d7551fe5d","url":"https://github.com/Alisa0808/vox-director/commit/cff530e12e537f90cc475a3691081a4d7551fe5d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ea16305dd3e42a7626aa8847224b747ba54377bd","url":"https://github.com/Alisa0808/vox-director/commit/ea16305dd3e42a7626aa8847224b747ba54377bd","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"5fdbcc3e59b60d696a97cdcd20f3fcd0956b5966","url":"https://github.com/Alisa0808/vox-director/commit/5fdbcc3e59b60d696a97cdcd20f3fcd0956b5966","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"672b41287e04ef6b468b1a115f554b32fb686963","url":"https://github.com/Alisa0808/vox-director/commit/672b41287e04ef6b468b1a115f554b32fb686963","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"3aeaf3cedbc3b9decc6e149b8bcbe7e1a6864338","url":"https://github.com/Alisa0808/vox-director/commit/3aeaf3cedbc3b9decc6e149b8bcbe7e1a6864338","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f800cf9b31376f9a5f47c746bebeef319fc61fe8","url":"https://github.com/Alisa0808/vox-director/commit/f800cf9b31376f9a5f47c746bebeef319fc61fe8","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"4e43a2e4a2edfa7df0804f4965f65fe7aec96a0c","url":"https://github.com/Alisa0808/vox-director/commit/4e43a2e4a2edfa7df0804f4965f65fe7aec96a0c","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f6e5f77850fc2e16841d2ef876015e05383bf613","url":"https://github.com/Alisa0808/vox-director/commit/f6e5f77850fc2e16841d2ef876015e05383bf613","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"994d8a78d02d23454ce6328294b25d2f94364801","url":"https://github.com/Alisa0808/vox-director/commit/994d8a78d02d23454ce6328294b25d2f94364801","weight":0.9}],"data":{"attributed_loc_by_commit":{"01642cb4066fe9027529de43c30353e4a351c002":1669,"82d26ab9ee7a38d70e9e6d689b578df1b1db4fb1":0,"e5acad5b33fa1d1bd796343e1d5177d7bb13916a":0,"82ed84cb899fe1a3b6492539bab272e85313ef75":0,"994d8a78d02d23454ce6328294b25d2f94364801":0,"f6e5f77850fc2e16841d2ef876015e05383bf613":1,"4e43a2e4a2edfa7df0804f4965f65fe7aec96a0c":4,"f800cf9b31376f9a5f47c746bebeef319fc61fe8":4,"3aeaf3cedbc3b9decc6e149b8bcbe7e1a6864338":193,"672b41287e04ef6b468b1a115f554b32fb686963":0,"5fdbcc3e59b60d696a97cdcd20f3fcd0956b5966":62,"ea16305dd3e42a7626aa8847224b747ba54377bd":5,"cff530e12e537f90cc475a3691081a4d7551fe5d":0,"95f74509b73006651fc10b99e2ef6c662e29499b":0,"1f42111e3765974eed8eef97fb2acc1f2a5b0fe4":30,"ad97ffdd38e53c90382ee011673fc3fdc6d171af":2,"4ec7dac870d3c1e7f60cbbb4ede29919cd280fbd":0,"f4314a464ecfbbc0e04af27c2099cf54eba1867f":0,"186587cb02915a9554f2a8b616294f400937982d":0,"c22681a6d101f328926422ffcf919aaffef3ca1e":58,"0f66dc444fc18ac26f6dddd30ee5505d31b45de6":552,"77bc68ff68405333774fe0a24a7041e23b5863dc":0,"3ec747936eb7abf79e98ca37d0e4a80adb498e13":0,"27822c6ef95936b1999e8d482e19373077a77bc7":0,"922b87f2ad168ab9b64a97a8ae8b8a47da5d7d9f":0,"a75167b0ef15bf66d23accb539dcd6681bf59d21":0,"8b034354dc443edcde7fdb2622e0491df5142fd3":0,"668ec3946fe0139bc985313b15c1a300fca42f94":0,"6a85a7c341610442a6a5b1885e6e0217ab82a11f":720},"tools":{"claude-code":{"name":"Claude Code","commits":29,"loc":3300,"first_seen":1783697505,"last_seen":1791216908}},"monthly":{"2026-07":{"loc":2809,"attributed_loc":2580},"2026-08":{"loc":0,"attributed_loc":0},"2026-10":{"loc":720,"attributed_loc":720}}},"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":1783699670.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/AGENTS.md","weight":0.5}],"data":{"artifacts":[{"tool":"generic-agent","path":"AGENTS.md","added_at":1783699670}],"workflows":[],"tools":["generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":8.0,"flagged_units":0.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":3529.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":417.25,"median_loc_per_hour":129.5267892061009,"pr_timed_units":3.0,"excluded_import_loc":0.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"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":3309.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":3.0,"findings_high":1.0,"findings_medium":2.0,"findings_low":0.0,"weighted_findings":1.25,"scanned_lines":3309.0,"parse_errors":0.0},"findings":[{"rule_id":"opengrep/python.lang.security.audit.dangerous-subprocess-use-audit","severity":"high","message":"Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low]","path":"scripts/host_clips.py","line":37,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:scripts/host_clips.py:37"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/atlas_cloud.py","line":53,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/atlas_cloud.py:53"},{"rule_id":"opengrep/python.lang.security.audit.dynamic-urllib-use-detected","severity":"medium","message":"Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control the URLs, or consider using the 'requests' library instead. [confidence low]","path":"scripts/atlas_cloud.py","line":64,"fingerprint":"python.lang.security.audit.dynamic-urllib-use-detected:scripts/atlas_cloud.py:64"}],"evidence":[],"data":{"rulesets":["python"]},"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":0.0,"signed_commit_share":0.2333,"unpinned_manifests":1.0},"findings":[],"evidence":[{"kind":"posture","description":"package.json has no lockfile alongside it (unpinned dependencies)","ref":"package.json","url":null,"weight":0.3}],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":119.0,"function_nloc":1752.0,"mean_ccn":4.49,"p90_ccn":10.0,"complex_functions":6.0,"long_functions":0.0,"many_param_functions":3.0,"risky_nloc_share":0.2471},"findings":[],"evidence":[{"kind":"complex-function","description":"run in scripts/host_clips.py: complexity 32, 95 lines","ref":"scripts/host_clips.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/host_clips.py#L76","weight":0.5333333333333333},{"kind":"complex-function","description":"run in scripts/assemble.py: complexity 23, 96 lines","ref":"scripts/assemble.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/assemble.py#L45","weight":0.38333333333333336},{"kind":"complex-function","description":"run in scripts/clips.py: complexity 22, 77 lines","ref":"scripts/clips.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/clips.py#L102","weight":0.36666666666666664},{"kind":"complex-function","description":"run in scripts/host_plates.py: complexity 21, 65 lines","ref":"scripts/host_plates.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/host_plates.py#L27","weight":0.35},{"kind":"complex-function","description":"validate in scripts/host.py: complexity 20, 36 lines","ref":"scripts/host.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/host.py#L250","weight":0.3333333333333333},{"kind":"complex-function","description":"run in scripts/aroll_clips.py: complexity 16, 64 lines","ref":"scripts/aroll_clips.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/aroll_clips.py#L96","weight":0.26666666666666666}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":2630.0,"duplicated_lines":98.0,"duplicated_share":0.0373,"files":22.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/aroll_assemble.py:24 and scripts/assemble.py:24","ref":"scripts/aroll_assemble.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/aroll_assemble.py#L24","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/aroll_clips.py:172 and scripts/clips.py:184","ref":"scripts/aroll_clips.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/aroll_clips.py#L172","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/audio.py:118 and scripts/clips.py:186","ref":"scripts/audio.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/audio.py#L118","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/audio.py:119 and scripts/keyframes.py:85","ref":"scripts/audio.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/audio.py#L119","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/clips.py:20 and scripts/croll_keyframes.py:86","ref":"scripts/clips.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/clips.py#L20","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: scripts/croll_keyframes.py:132 and scripts/keyframes.py:74","ref":"scripts/croll_keyframes.py","url":"https://github.com/Alisa0808/vox-director/blob/6a85a7c341610442a6a5b1885e6e0217ab82a11f/scripts/croll_keyframes.py#L132","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":29.0,"weighted_findings":35.0,"scanned_lines":3309.0,"category:best-practice":28.0,"category:correctness":1.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/atlas_cloud.py","line":125,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/atlas_cloud.py:125"},{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"scripts/atlas_cloud.py","line":142,"fingerprint":"python.lang.best-practice.arbitrary-sleep:scripts/atlas_cloud.py:142"},{"rule_id":"opengrep/python.lang.correctness.return-in-init","severity":"high","message":"`return` should never appear inside a class __init__ function. This will cause a runtime error.","path":"scripts/motion.py","line":44,"fingerprint":"python.lang.correctness.return-in-init:scripts/motion.py:44"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/aroll_assemble.py","line":39,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/aroll_assemble.py:39"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/aroll_assemble.py","line":74,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/aroll_assemble.py:74"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/aroll_clips.py","line":98,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/aroll_clips.py:98"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/aroll_clips.py","line":174,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/aroll_clips.py:174"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/asr_beats.py","line":149,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/asr_beats.py:149"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/assemble.py","line":46,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/assemble.py:46"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/assemble.py","line":101,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/assemble.py:101"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/audio.py","line":59,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/audio.py:59"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/audio.py","line":118,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/audio.py:118"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/clips.py","line":104,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/clips.py:104"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/clips.py","line":186,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/clips.py:186"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/croll_keyframes.py","line":96,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/croll_keyframes.py:96"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/croll_keyframes.py","line":142,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/croll_keyframes.py:142"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/extract_elements.py","line":41,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/extract_elements.py:41"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/extract_elements.py","line":68,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/extract_elements.py:68"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/host_clips.py","line":78,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/host_clips.py:78"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/host_clips.py","line":180,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/host_clips.py:180"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/host_plates.py","line":29,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/host_plates.py:29"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/host_plates.py","line":95,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/host_plates.py:95"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/kenburns.py","line":32,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/kenburns.py:32"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/kenburns.py","line":73,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/kenburns.py:73"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/keyframes.py","line":33,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/keyframes.py:33"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/keyframes.py","line":84,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/keyframes.py:84"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/mg_scrapbook.py","line":79,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/mg_scrapbook.py:79"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/motion.py","line":156,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/motion.py:156"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"scripts/style_bakeoff.py","line":33,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:scripts/style_bakeoff.py:33"}],"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":0.0,"test_lines":0.0,"source_lines":3309.0,"test_ratio":0.0,"ci_files":0.0,"cochange_share":0.0,"cochange_commits":13.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":103.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":"ok","tool_version":null,"metrics":{"check:strict_config":0.0,"check:low_escape_density":1.0,"escapes":2.0,"escapes_per_kloc":0.604},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":3093.0,"other_lines":216.0,"files_blamed":22.0,"blame_failures":0.0,"quality:ai_findings":27.0,"quality:ai_per_kloc":8.729,"quality:other_findings":2.0,"quality:other_per_kloc":9.259,"security:ai_findings":3.0,"security:ai_per_kloc":0.97,"security:other_findings":0.0,"security:other_per_kloc":0.0},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":["unreviewed-ai-risk"]}