{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-4+qual-2+sec-2","generated_at":"2026-11-13T23:58:47.872175Z","repo":{"ref":{"host":"github.com","owner":"devtooligan","name":"jevscan-evm"},"default_branch":"main","clone_url":"https://github.com/devtooligan/jevscan-evm.git","html_url":"https://github.com/devtooligan/jevscan-evm","description":null,"stars":27,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":1981,"primary_language":"Python","license_spdx":"MIT","created_at":"2026-09-19T00:25:35Z","pushed_at":"2026-09-25T21:19:01Z","security_policy_url":null,"distribution":{"owner_created_at":"2020-09-19T19:20:04Z","owner_type":"User","release_assets":[]}},"commit_sha":"2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c","profile":{"lines_by_language":{"Python":2320},"files_by_category":{"config":360,"docs":25,"other":13,"source":10,"test":3},"source_lines":2170,"test_lines":150},"pillars":{"ai_provenance":{"score":100.0,"confidence":0.73,"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":0.0,"flagged_releases":null},"summary":"Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals."},"quality":{"score":47.7,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":44.7,"duplication":100.0,"lint":14.1,"testing":33.5,"docs":65.0,"type_safety":40.0,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.07, no CI test run detected; 27% of function code in complex or long functions; 0% duplicated lines. Weakest area: lint."},"security":{"score":81.3,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":88.6,"dependencies":null,"ci_actions":null,"posture":20.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":14.0,"attributed_commits":14.0,"attributed_commit_share":1.0,"effective_loc":2333.0,"attributed_loc":2333.0,"attributed_loc_share":1.0,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"Claude Code: 14 attributed commits, 2,333 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"49da6ae7fadc444bd6c4d6bf03aed16443f6b70e","url":"https://github.com/devtooligan/jevscan-evm/commit/49da6ae7fadc444bd6c4d6bf03aed16443f6b70e","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"2322693d312a8890e74791b38e71e1caaa077b72","url":"https://github.com/devtooligan/jevscan-evm/commit/2322693d312a8890e74791b38e71e1caaa077b72","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"af639c081993e9bb9a83f4dbedd96a55efb20636","url":"https://github.com/devtooligan/jevscan-evm/commit/af639c081993e9bb9a83f4dbedd96a55efb20636","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"c391febbb8084a23e9b43e9ee35605dcc1e12e6b","url":"https://github.com/devtooligan/jevscan-evm/commit/c391febbb8084a23e9b43e9ee35605dcc1e12e6b","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f848b50d73aa1cd7f1705e6737353bd846afba36","url":"https://github.com/devtooligan/jevscan-evm/commit/f848b50d73aa1cd7f1705e6737353bd846afba36","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"e00b1f70675350c059d674bf516cc68dc8b39e5d","url":"https://github.com/devtooligan/jevscan-evm/commit/e00b1f70675350c059d674bf516cc68dc8b39e5d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0dce0c2192d818be9e6af5eeb1f94f20f8ab3d2d","url":"https://github.com/devtooligan/jevscan-evm/commit/0dce0c2192d818be9e6af5eeb1f94f20f8ab3d2d","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"2fdc3029c263d99dc591ec408b05801723029340","url":"https://github.com/devtooligan/jevscan-evm/commit/2fdc3029c263d99dc591ec408b05801723029340","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"2a16606df7db99a92289062dfbf466045e95fbe0","url":"https://github.com/devtooligan/jevscan-evm/commit/2a16606df7db99a92289062dfbf466045e95fbe0","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"0dadf29c9b74c1d95d360e36c569d68755acbd35","url":"https://github.com/devtooligan/jevscan-evm/commit/0dadf29c9b74c1d95d360e36c569d68755acbd35","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"04785d1753a66fcc9c0f2fab3bb55255661f1023","url":"https://github.com/devtooligan/jevscan-evm/commit/04785d1753a66fcc9c0f2fab3bb55255661f1023","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"f22e234f4bb834ac283ce769e97ed7d3a61d40b0","url":"https://github.com/devtooligan/jevscan-evm/commit/f22e234f4bb834ac283ce769e97ed7d3a61d40b0","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"b98a73855c827ae0842ce5645797c049d9fb25aa","url":"https://github.com/devtooligan/jevscan-evm/commit/b98a73855c827ae0842ce5645797c049d9fb25aa","weight":0.9},{"kind":"attributed-commit","description":"Claude Code: trailer 'Co-Authored-By: Claude'","ref":"ad0d26e0cd1545a577909b779df7da05183ee7ea","url":"https://github.com/devtooligan/jevscan-evm/commit/ad0d26e0cd1545a577909b779df7da05183ee7ea","weight":0.9}],"data":{"attributed_loc_by_commit":{"ad0d26e0cd1545a577909b779df7da05183ee7ea":2324,"b98a73855c827ae0842ce5645797c049d9fb25aa":0,"f22e234f4bb834ac283ce769e97ed7d3a61d40b0":0,"04785d1753a66fcc9c0f2fab3bb55255661f1023":9,"0dadf29c9b74c1d95d360e36c569d68755acbd35":0,"2a16606df7db99a92289062dfbf466045e95fbe0":0,"2fdc3029c263d99dc591ec408b05801723029340":0,"0dce0c2192d818be9e6af5eeb1f94f20f8ab3d2d":0,"e00b1f70675350c059d674bf516cc68dc8b39e5d":0,"f848b50d73aa1cd7f1705e6737353bd846afba36":0,"c391febbb8084a23e9b43e9ee35605dcc1e12e6b":0,"af639c081993e9bb9a83f4dbedd96a55efb20636":0,"2322693d312a8890e74791b38e71e1caaa077b72":0,"49da6ae7fadc444bd6c4d6bf03aed16443f6b70e":0},"tools":{"claude-code":{"name":"Claude Code","commits":14,"loc":2333,"first_seen":1789770662,"last_seen":1789848935}},"monthly":{"2026-09":{"loc":2333,"attributed_loc":2333}}},"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":1.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":9.0,"flagged_loc":0.0,"flagged_loc_share":0.0,"max_loc_per_hour":2.25,"median_loc_per_hour":0.0,"pr_timed_units":0.0,"excluded_import_loc":2324.0},"findings":[],"evidence":[],"data":{"flagged_loc_by_commit":{},"excluded_import_commits":["ad0d26e0cd1545a577909b779df7da05183ee7ea"]},"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":2170.0,"index":1.382,"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":6.0,"per_kloc:emoji_in_code":2.765,"files:emoji_in_code":1.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":1.0,"findings_high":1.0,"findings_medium":0.0,"findings_low":0.0,"weighted_findings":0.75,"scanned_lines":2170.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":"bench/run_bench.py","line":71,"fingerprint":"python.lang.security.audit.dangerous-subprocess-use-audit:bench/run_bench.py:71"}],"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":1.0,"check:lockfiles":1.0,"signed_commit_share":1.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"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":132.0,"function_nloc":1446.0,"mean_ccn":6.19,"p90_ccn":14.0,"complex_functions":12.0,"long_functions":0.0,"many_param_functions":0.0,"risky_nloc_share":0.2683},"findings":[],"evidence":[{"kind":"complex-function","description":"render_report in report.py: complexity 31, 65 lines","ref":"report.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/report.py#L168","weight":0.5166666666666667},{"kind":"complex-function","description":"run in jevscan.py: complexity 27, 69 lines","ref":"jevscan.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/jevscan.py#L236","weight":0.45},{"kind":"complex-function","description":"recall_table in bench/run_bench.py: complexity 23, 26 lines","ref":"bench/run_bench.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/bench/run_bench.py#L107","weight":0.38333333333333336},{"kind":"complex-function","description":"build_heatmap in report.py: complexity 21, 27 lines","ref":"report.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/report.py#L276","weight":0.35},{"kind":"complex-function","description":"sync in sources/sync.py: complexity 21, 32 lines","ref":"sources/sync.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/sources/sync.py#L297","weight":0.35},{"kind":"complex-function","description":"header in heatmap.py: complexity 20, 33 lines","ref":"heatmap.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/heatmap.py#L116","weight":0.3333333333333333},{"kind":"complex-function","description":"line_table in bench/run_bench.py: complexity 18, 27 lines","ref":"bench/run_bench.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/bench/run_bench.py#L292","weight":0.3},{"kind":"complex-function","description":"file_block in heatmap.py: complexity 18, 26 lines","ref":"heatmap.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/heatmap.py#L231","weight":0.3},{"kind":"complex-function","description":"heatmap_table in bench/run_bench.py: complexity 17, 17 lines","ref":"bench/run_bench.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/bench/run_bench.py#L340","weight":0.2833333333333333},{"kind":"complex-function","description":"check in config.py: complexity 17, 20 lines","ref":"config.py","url":"https://github.com/devtooligan/jevscan-evm/blob/2ecbe7cd93a92adb4464821d3ca7b0828c0c1b3c/config.py#L37","weight":0.2833333333333333}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":1719.0,"duplicated_lines":0.0,"duplicated_share":0.0,"files":10.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":17.0,"weighted_findings":17.0,"scanned_lines":2170.0,"category:correctness":17.0},"findings":[{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":108,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:108"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":125,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:125"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":130,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:130"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":187,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:187"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":234,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:234"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":296,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:296"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":329,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:329"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":389,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:389"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":405,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:405"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"bench/run_bench.py","line":413,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:bench/run_bench.py:413"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"heatmap.py","line":122,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:heatmap.py:122"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"heatmap.py","line":171,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:heatmap.py:171"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"heatmap.py","line":192,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:heatmap.py:192"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"heatmap.py","line":225,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:heatmap.py:225"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"report.py","line":175,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:report.py:175"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"report.py","line":202,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:report.py:202"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.string-concat-in-list","severity":"medium","message":"Detected strings that are implicitly concatenated inside a list. Python will implicitly concatenate strings when not explicitly delimited. Was this supposed to be individual elements of the list?","path":"report.py","line":222,"fingerprint":"python.lang.correctness.common-mistakes.string-concat-in-list:report.py:222"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.1382,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":150.0,"source_lines":2170.0,"test_ratio":0.0691,"ci_files":0.0,"cochange_share":1.0,"cochange_commits":2.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":67.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.922},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":2170.0,"other_lines":0.0,"files_blamed":10.0,"blame_failures":0.0,"quality:ai_findings":17.0,"quality:ai_per_kloc":7.834,"quality:other_findings":0.0,"security:ai_findings":1.0,"security:ai_per_kloc":0.461,"security:other_findings":0.0},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":false},"error":null}],"flags":["unreviewed-ai-risk"]}