{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:05.590138Z","repo":{"ref":{"host":"github.com","owner":"johnstrand","name":"sqlsrvaudit"},"default_branch":"master","clone_url":"https://github.com/johnstrand/sqlsrvaudit.git","html_url":"https://github.com/johnstrand/sqlsrvaudit","description":"CLI application for auditing SQL Server databases","stars":0,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":534,"primary_language":"C#","license_spdx":"MIT","created_at":"2026-04-04T17:55:27Z","pushed_at":"2026-11-06T17:43:37Z","security_policy_url":null,"distribution":{"owner_created_at":"2015-03-15T07:18:05Z","owner_type":"User","release_assets":[]}},"commit_sha":"f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3","profile":{"lines_by_language":{"C#":16158,"PowerShell":4},"files_by_category":{"source":48,"test":22,"config":7,"other":7,"docs":4},"source_lines":11881,"test_lines":4281},"pillars":{"ai_provenance":{"score":24.2,"confidence":0.9,"coverage":1.0,"label":"explicit","breakdown":{"attributed_share":0.2419,"suspected_share":0.0,"estimated_share":0.2419,"ai_artifacts":1.0,"flagged_work_units":2.0,"flagged_releases":null,"style_index":0.463},"summary":"Explicit AI attribution on 24% of first-party code added; an estimated 24% including velocity signals."},"quality":{"score":89.5,"confidence":0.9,"coverage":1.0,"label":"strong","breakdown":{"complexity":95.6,"duplication":88.0,"lint":100.0,"testing":83.0,"docs":80.0,"type_safety":null,"process":null},"summary":"Code quality is strong: test-to-source ratio 0.36, CI runs tests; 2% of function code in complex or long functions; 2% duplicated lines. Weakest area: docs."},"security":{"score":77.8,"confidence":0.85,"coverage":1.0,"label":"adequate","breakdown":{"secrets":100.0,"sast":100.0,"dependencies":null,"ci_actions":63.1,"posture":0.0,"scorecard":null},"summary":"Security posture is adequate: 2 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":"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":81.0,"attributed_commits":17.0,"attributed_commit_share":0.20987654320987653,"effective_loc":18969.0,"attributed_loc":4588.0,"attributed_loc_share":0.2418683114555327,"tools_detected":1.0},"findings":[],"evidence":[{"kind":"attribution-summary","description":"GitHub Copilot coding agent: 17 attributed commits, 4,588 lines added","ref":null,"url":null,"weight":1.0},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: copilot'","ref":"2b56855e454775d45029a0c431f80f82097dec04","url":"https://github.com/johnstrand/sqlsrvaudit/commit/2b56855e454775d45029a0c431f80f82097dec04","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: copilot'","ref":"9912a885a86490bd48e39420551aeb30339037ec","url":"https://github.com/johnstrand/sqlsrvaudit/commit/9912a885a86490bd48e39420551aeb30339037ec","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: copilot'","ref":"053e3e6ccaf676627a028b11f32718d0ed8f25b9","url":"https://github.com/johnstrand/sqlsrvaudit/commit/053e3e6ccaf676627a028b11f32718d0ed8f25b9","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"bcbebc0070120f790f963429abc4f249fcbded67","url":"https://github.com/johnstrand/sqlsrvaudit/commit/bcbebc0070120f790f963429abc4f249fcbded67","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"177af5cf2380aa6dc25f7a655b14096dde29ed8c","url":"https://github.com/johnstrand/sqlsrvaudit/commit/177af5cf2380aa6dc25f7a655b14096dde29ed8c","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"ba2139aa31453670f704383f946da4c23d50fcaf","url":"https://github.com/johnstrand/sqlsrvaudit/commit/ba2139aa31453670f704383f946da4c23d50fcaf","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"7ffea40baf9ee73798e0ae90bcd9f89327e5f618","url":"https://github.com/johnstrand/sqlsrvaudit/commit/7ffea40baf9ee73798e0ae90bcd9f89327e5f618","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"356d1837cf62adc772a44fd280f1297485bca279","url":"https://github.com/johnstrand/sqlsrvaudit/commit/356d1837cf62adc772a44fd280f1297485bca279","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"dd0b339550f25106abf519138d5a327f5230bf04","url":"https://github.com/johnstrand/sqlsrvaudit/commit/dd0b339550f25106abf519138d5a327f5230bf04","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"c0edce8c19f6684cf08fa324933c696b80b522c0","url":"https://github.com/johnstrand/sqlsrvaudit/commit/c0edce8c19f6684cf08fa324933c696b80b522c0","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"29432bf5adbb467b2b7aff0bea3767a778561581","url":"https://github.com/johnstrand/sqlsrvaudit/commit/29432bf5adbb467b2b7aff0bea3767a778561581","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"85d33ee0f7b35b90c892b6931f25c8c598c640ee","url":"https://github.com/johnstrand/sqlsrvaudit/commit/85d33ee0f7b35b90c892b6931f25c8c598c640ee","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"30d0350f57d0e6a7597225b0277b3d8dba715df6","url":"https://github.com/johnstrand/sqlsrvaudit/commit/30d0350f57d0e6a7597225b0277b3d8dba715df6","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"12aadc7f03239f22adbbeee976751a8ba20cdbcf","url":"https://github.com/johnstrand/sqlsrvaudit/commit/12aadc7f03239f22adbbeee976751a8ba20cdbcf","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"4736a0864be068209bb7f6ad56edd735e12124f7","url":"https://github.com/johnstrand/sqlsrvaudit/commit/4736a0864be068209bb7f6ad56edd735e12124f7","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"aae938daacf6ec629d5931db3af9f0513d74aaca","url":"https://github.com/johnstrand/sqlsrvaudit/commit/aae938daacf6ec629d5931db3af9f0513d74aaca","weight":0.9},{"kind":"attributed-commit","description":"GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'","ref":"6bb3fa008f111aec3ceb57ff20e73a3ce6e6cdf9","url":"https://github.com/johnstrand/sqlsrvaudit/commit/6bb3fa008f111aec3ceb57ff20e73a3ce6e6cdf9","weight":0.9}],"data":{"attributed_loc_by_commit":{"6bb3fa008f111aec3ceb57ff20e73a3ce6e6cdf9":129,"aae938daacf6ec629d5931db3af9f0513d74aaca":9,"4736a0864be068209bb7f6ad56edd735e12124f7":568,"12aadc7f03239f22adbbeee976751a8ba20cdbcf":99,"30d0350f57d0e6a7597225b0277b3d8dba715df6":0,"85d33ee0f7b35b90c892b6931f25c8c598c640ee":0,"29432bf5adbb467b2b7aff0bea3767a778561581":360,"c0edce8c19f6684cf08fa324933c696b80b522c0":1712,"dd0b339550f25106abf519138d5a327f5230bf04":4,"356d1837cf62adc772a44fd280f1297485bca279":1563,"7ffea40baf9ee73798e0ae90bcd9f89327e5f618":25,"ba2139aa31453670f704383f946da4c23d50fcaf":53,"177af5cf2380aa6dc25f7a655b14096dde29ed8c":16,"bcbebc0070120f790f963429abc4f249fcbded67":0,"053e3e6ccaf676627a028b11f32718d0ed8f25b9":43,"9912a885a86490bd48e39420551aeb30339037ec":0,"2b56855e454775d45029a0c431f80f82097dec04":7},"tools":{"github-copilot":{"name":"GitHub Copilot coding agent","commits":17,"loc":4588,"first_seen":1775639437,"last_seen":1782502290}},"monthly":{"2026-04":{"loc":14051,"attributed_loc":4538},"2026-06":{"loc":2112,"attributed_loc":50},"2026-11":{"loc":2806,"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":1775328485.0},"findings":[],"evidence":[{"kind":"ai-artifact","description":"AGENTS.md (generic-agent configuration)","ref":"AGENTS.md","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/AGENTS.md","weight":0.5}],"data":{"artifacts":[{"tool":"generic-agent","path":"AGENTS.md","added_at":1775328485}],"workflows":[],"tools":["generic-agent"]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":37.0,"flagged_units":2.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":13721.0,"flagged_loc":3373.0,"flagged_loc_share":0.24582756358865973,"max_loc_per_hour":967.5176194205168,"median_loc_per_hour":269.0621704286932,"pr_timed_units":24.0,"excluded_import_loc":5248.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"1,716 lines of first-party code in ~1.8h (968 lines/hour, 2 commit session)","ref":"dd0b339550f25106abf519138d5a327f5230bf04","url":"https://github.com/johnstrand/sqlsrvaudit/commit/dd0b339550f25106abf519138d5a327f5230bf04","weight":0.290255285826155},{"kind":"velocity-burst","description":"1,657 lines of first-party code in ~1.9h (860 lines/hour, 4 commit session)","ref":"177af5cf2380aa6dc25f7a655b14096dde29ed8c","url":"https://github.com/johnstrand/sqlsrvaudit/commit/177af5cf2380aa6dc25f7a655b14096dde29ed8c","weight":0.25804758471521266}],"data":{"flagged_loc_by_commit":{"c0edce8c19f6684cf08fa324933c696b80b522c0":1712,"dd0b339550f25106abf519138d5a327f5230bf04":4,"356d1837cf62adc772a44fd280f1297485bca279":1563,"7ffea40baf9ee73798e0ae90bcd9f89327e5f618":25,"ba2139aa31453670f704383f946da4c23d50fcaf":53,"177af5cf2380aa6dc25f7a655b14096dde29ed8c":16},"excluded_import_commits":["0bff55ea23cfaddfa093dd75cdef78f5a3173a1d"]},"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":11881.0,"index":0.463,"count:narrated_steps":3.0,"per_kloc:narrated_steps":0.253,"files:narrated_steps":1.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":5.0,"per_kloc:emoji_in_code":0.421,"files:emoji_in_code":2.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: -- Step 1: Ensure no active transactions are using the log.","ref":"src/SqlAudit.SqlServer/Checks/LogHealthChecks.cs:45","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/Checks/LogHealthChecks.cs#L45","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: -- Step 2: Shrink the log:","ref":"src/SqlAudit.SqlServer/Checks/LogHealthChecks.cs:46","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/Checks/LogHealthChecks.cs#L46","weight":0.0},{"kind":"stylometry:narrated_steps","description":"step-by-step narration comment: -- Step 3: Expand to a single large VLF (use a size that is a multiple of 512 MB for optimal VLF count):","ref":"src/SqlAudit.SqlServer/Checks/LogHealthChecks.cs:48","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/Checks/LogHealthChecks.cs#L48","weight":0.0}],"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":11877.0,"parse_errors":0.0},"findings":[],"evidence":[],"data":{"rulesets":["csharp"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"ok","tool_version":"zizmor 1.32.0","metrics":{"workflows":1.0,"findings":4.0,"findings_high":2.0,"findings_medium":2.0,"findings_low":0.0,"penalty":27.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":20,"fingerprint":"unpinned-uses:.github/workflows/ci.yml:20"},{"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/excessive-permissions","severity":"medium","message":"overly broad permissions [confidence medium]","path":".github/workflows/ci.yml","line":10,"fingerprint":"excessive-permissions:.github/workflows/ci.yml:10"}],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.3086,"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":358.0,"function_nloc":8500.0,"mean_ccn":3.22,"p90_ccn":6.0,"complex_functions":2.0,"long_functions":0.0,"many_param_functions":1.0,"risky_nloc_share":0.0151},"findings":[],"evidence":[{"kind":"complex-function","description":"ProjectConfigurationResolver::Resolve in src/SqlAudit.Cli/CliConfiguration.cs: complexity 42, 53 lines","ref":"src/SqlAudit.Cli/CliConfiguration.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.Cli/CliConfiguration.cs#L876","weight":0.7},{"kind":"complex-function","description":"InteractiveConfigWizard::RunInteractive in src/SqlAudit.Cli/InteractiveConfigWizard.cs: complexity 28, 75 lines","ref":"src/SqlAudit.Cli/InteractiveConfigWizard.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.Cli/InteractiveConfigWizard.cs#L51","weight":0.4666666666666667}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":7678.0,"duplicated_lines":164.0,"duplicated_share":0.0214,"files":48.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.Cli/ScanOutput.cs:122 and src/SqlAudit.Cli/ScanOutput.cs:191","ref":"src/SqlAudit.Cli/ScanOutput.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.Cli/ScanOutput.cs#L122","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.Cli/SuppressionFileLoader.cs:196 and src/SqlAudit.Cli/SuppressionFileLoader.cs:225","ref":"src/SqlAudit.Cli/SuppressionFileLoader.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.Cli/SuppressionFileLoader.cs#L196","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.Core/Models/AuditReport.cs:45 and src/SqlAudit.Core/Models/DatabaseSnapshot.cs:49","ref":"src/SqlAudit.Core/Models/AuditReport.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.Core/Models/AuditReport.cs#L45","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.Core/Models/DatabaseSnapshot.cs:112 and src/SqlAudit.SqlServer/SqlServerSnapshotCollector.cs:567","ref":"src/SqlAudit.Core/Models/DatabaseSnapshot.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.Core/Models/DatabaseSnapshot.cs#L112","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.SqlServer/Checks/DeepHealthChecks.cs:901 and src/SqlAudit.SqlServer/Checks/DeepHealthChecks.cs:924","ref":"src/SqlAudit.SqlServer/Checks/DeepHealthChecks.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/Checks/DeepHealthChecks.cs#L901","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.SqlServer/Checks/TelemetryChecks.cs:70 and src/SqlAudit.SqlServer/Checks/TelemetryChecks.cs:94","ref":"src/SqlAudit.SqlServer/Checks/TelemetryChecks.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/Checks/TelemetryChecks.cs#L70","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.SqlServer/Checks/WaitStatChecks.cs:17 and src/SqlAudit.SqlServer/Checks/WaitStatChecks.cs:114","ref":"src/SqlAudit.SqlServer/Checks/WaitStatChecks.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/Checks/WaitStatChecks.cs#L17","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: src/SqlAudit.SqlServer/SqlServerSnapshotCollector.cs:1376 and src/SqlAudit.SqlServer/SqlServerSnapshotCollector.cs:1488","ref":"src/SqlAudit.SqlServer/SqlServerSnapshotCollector.cs","url":"https://github.com/johnstrand/sqlsrvaudit/blob/f2f41dd60ed3ea9feaa5ef073941bbf5b2e476a3/src/SqlAudit.SqlServer/SqlServerSnapshotCollector.cs#L1376","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":0.0,"weighted_findings":0.0,"scanned_lines":11877.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":1.0,"check:test_ratio":0.7206,"check:ci_present":1.0,"check:ci_runs_tests":1.0,"check:ci_runs_lint":0.0,"check:tests_cochange":1.0,"test_lines":4281.0,"source_lines":11881.0,"test_ratio":0.3603,"ci_files":1.0,"cochange_share":0.5862,"cochange_commits":58.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 runs tests (dotnet test)","ref":null,"url":null,"weight":0.0}],"data":{"test_commands":["dotnet test"],"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":1.0,"check:changelog":0.0,"readme_lines":159.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},{"kind":"docs","description":"CONTRIBUTING.md","ref":"CONTRIBUTING.md","url":null,"weight":0.0}],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"x-blame","pillar":"ai_provenance","status":"ok","tool_version":"git-blame","metrics":{"ai_lines":3499.0,"other_lines":8382.0,"files_blamed":48.0,"blame_failures":0.0,"quality:ai_findings":0.0,"quality:ai_per_kloc":0.0,"quality:other_findings":0.0,"quality:other_per_kloc":0.0,"security:ai_findings":0.0,"security:ai_per_kloc":0.0,"security:other_findings":0.0,"security:other_per_kloc":0.0},"findings":[],"evidence":[],"data":{"sampled":false,"comparable":true},"error":null}],"flags":[]}