{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-98196291cf76dd39", "name": "Possibly dead Python function: emit", "shortDescription": {"text": "Possibly dead Python function: emit"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d539ee1ac48a11d2", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f678ccd342ded0c5", "name": "Possibly dead Python function: viz_cmd", "shortDescription": {"text": "Possibly dead Python function: viz_cmd"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-228bbc969420a56b", "name": "Possibly dead Python function: emit", "shortDescription": {"text": "Possibly dead Python function: emit"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1aace10cc6113b2", "name": "Possibly dead Python function: report_cmd", "shortDescription": {"text": "Possibly dead Python function: report_cmd"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8efd786b4c445c0e", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1794a6a4a581ff1", "name": "Possibly dead Python function: update_progress", "shortDescription": {"text": "Possibly dead Python function: update_progress"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fae81f780c7d5f4f", "name": "Possibly dead Python function: drain_loop", "shortDescription": {"text": "Possibly dead Python function: drain_loop"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ecdbad3cb478349", "name": "Possibly dead Python function: table_exists", "shortDescription": {"text": "Possibly dead Python function: table_exists"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8fd02f8612515226", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/sqlcg/viz/assets/force-graph.min.js:5", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/sqlcg/viz/assets/force-graph.min.js:5"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e089e31e98cdbda", "name": "Insecure pattern 'dangerous_innerhtml' in src/sqlcg/viz/assets/force-graph.min.js:5", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/sqlcg/viz/assets/force-graph.min.js:5"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3774f6ebec0414a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/sqlcg/viz/assets/force-graph.min.js:2", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/sqlcg/viz/assets/force-graph.min.js:2"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1838a141491ce38c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6e737343dd91046d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e929a4cc6cfa5063", "name": "Very large file: src/sqlcg/parsers/base.py (2150 lines)", "shortDescription": {"text": "Very large file: src/sqlcg/parsers/base.py (2150 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cba7f7d24daa4d31", "name": "Very large file: src/sqlcg/parsers/snowflake_parser.py (1086 lines)", "shortDescription": {"text": "Very large file: src/sqlcg/parsers/snowflake_parser.py (1086 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f63fd3aeb53a0a21", "name": "Very large file: src/sqlcg/server/tools.py (3035 lines)", "shortDescription": {"text": "Very large file: src/sqlcg/server/tools.py (3035 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ff44ff5ec15c1dc", "name": "Very large file: src/sqlcg/indexer/indexer.py (2243 lines)", "shortDescription": {"text": "Very large file: src/sqlcg/indexer/indexer.py (2243 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 84 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 23 placeholder/mock markers across 8 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-32ad8b2cb81c43cb", "name": "Commented-code block (5 lines) in tests/integration/test_read_via_server.py:114", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_read_via_server.py:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c9695893dc55995", "name": "Legacy-named symbol `analyze_unused` in tests/integration/test_hygiene_config_root_reconciliation.py:20", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/integration/test_hygiene_config_root_reconciliation.py:20"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65de47d6867ba66a", "name": "Commented-code block (16 lines) in tests/integration/test_resolvable_write_col_edges_integration.py:19", "shortDescription": {"text": "Commented-code block (16 lines) in tests/integration/test_resolvable_write_col_edges_integration.py:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-475d57d55acaae28", "name": "Commented-code block (6 lines) in tests/integration/test_user_surface_recall_guard.py:40", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_user_surface_recall_guard.py:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a4518ca802b9374", "name": "Commented-code block (6 lines) in tests/integration/test_nested_cte_no_mispromotion.py:393", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_nested_cte_no_mispromotion.py:393"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ffdb582641fe9975", "name": "Legacy-named symbol `src_emp_backup` in tests/integration/test_temp_collapse_primitive.py:5", "shortDescription": {"text": "Legacy-named symbol `src_emp_backup` in tests/integration/test_temp_collapse_primitive.py:5"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a792a4f52e6f0233", "name": "Legacy-named symbol `is_backup` in tests/integration/test_anchor_tools.py:53", "shortDescription": {"text": "Legacy-named symbol `is_backup` in tests/integration/test_anchor_tools.py:53"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f450210d06d0541c", "name": "Commented-code block (6 lines) in tests/integration/test_identity_counters_integration.py:41", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_identity_counters_integration.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0af7f12b3062eee1", "name": "Legacy-named symbol `payment_fact_backup` in tests/integration/test_star_promote_temp_columns.py:189", "shortDescription": {"text": "Legacy-named symbol `payment_fact_backup` in tests/integration/test_star_promote_temp_columns.py:189"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb5fa270f60981a6", "name": "Legacy-named symbol `test_flag_on_catalog_reapply_still_excludes_backup` in tests/integration/test_index_filter_node_exc", "shortDescription": {"text": "Legacy-named symbol `test_flag_on_catalog_reapply_still_excludes_backup` in tests/integration/test_index_filter_node_exclusion.py:205"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b93f355fe2687613", "name": "Commented-code block (5 lines) in tests/integration/test_union_cte_star_recall_guard.py:269", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_union_cte_star_recall_guard.py:269"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecb28656ec8a6f14", "name": "Commented-code block (5 lines) in tests/integration/test_cte_recall_guard.py:55", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_cte_recall_guard.py:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1db032c9f56c3ab5", "name": "Commented-code block (5 lines) in tests/integration/test_backfill_impact_consistency.py:50", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_backfill_impact_consistency.py:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdc1f096720dd4d7", "name": "Legacy-named symbol `u_sql_v1` in tests/integration/test_resync.py:194", "shortDescription": {"text": "Legacy-named symbol `u_sql_v1` in tests/integration/test_resync.py:194"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1bf0b68c1a30459", "name": "Commented-code block (5 lines) in tests/integration/test_resync.py:477", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_resync.py:477"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-013deeb9f0124630", "name": "Legacy-named symbol `ddl_v1` in tests/integration/test_star_resolution.py:348", "shortDescription": {"text": "Legacy-named symbol `ddl_v1` in tests/integration/test_star_resolution.py:348"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2dc88f79d3a81881", "name": "Legacy-named symbol `analyze_unused` in tests/integration/test_T34_presentation_segregation.py:1", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/integration/test_T34_presentation_segregation.py:1"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf39eee83c9fd904", "name": "Legacy-named symbol `is_backup` in tests/integration/test_v1_14_0_dialect_and_query_config_fixes.py:498", "shortDescription": {"text": "Legacy-named symbol `is_backup` in tests/integration/test_v1_14_0_dialect_and_query_config_fixes.py:498"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-29e142cc3eeb9e39", "name": "Commented-code block (5 lines) in tests/integration/test_temp_table_namespacing.py:526", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_temp_table_namespacing.py:526"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3371f805632d777e", "name": "Legacy-named symbol `test_cte_derived_source_not_in_unused` in tests/integration/test_selects_from_completeness.py:103", "shortDescription": {"text": "Legacy-named symbol `test_cte_derived_source_not_in_unused` in tests/integration/test_selects_from_completeness.py:103"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-448b922f301a9a25", "name": "Commented-code block (5 lines) in tests/integration/test_selects_from_completeness.py:65", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/test_selects_from_completeness.py:65"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d7f2ce945c116da", "name": "Commented-code block (8 lines) in tests/integration/test_column_coverage_patterns.py:570", "shortDescription": {"text": "Commented-code block (8 lines) in tests/integration/test_column_coverage_patterns.py:570"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b02f694e23f0384", "name": "Commented-code block (6 lines) in tests/integration/test_coverage_metrics_integration.py:26", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_coverage_metrics_integration.py:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0e2c1f7e41837d0", "name": "Commented-code block (10 lines) in tests/integration/test_pr_impact_integration.py:406", "shortDescription": {"text": "Commented-code block (10 lines) in tests/integration/test_pr_impact_integration.py:406"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a71b66802fc134c", "name": "Legacy-named symbol `src_emp_backup` in tests/integration/test_lineage_gold_set.py:63", "shortDescription": {"text": "Legacy-named symbol `src_emp_backup` in tests/integration/test_lineage_gold_set.py:63"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b89e14231ac488a", "name": "Legacy-named symbol `analyze_unused` in tests/integration/test_T35_external_consumers.py:569", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/integration/test_T35_external_consumers.py:569"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7053619e50461d85", "name": "Commented-code block (6 lines) in tests/integration/test_incremental_reindex_parity.py:70", "shortDescription": {"text": "Commented-code block (6 lines) in tests/integration/test_incremental_reindex_parity.py:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab401e66688bad57", "name": "Legacy-named symbol `baz_backup` in tests/unit/test_file_ignore_defaults.py:20", "shortDescription": {"text": "Legacy-named symbol `baz_backup` in tests/unit/test_file_ignore_defaults.py:20"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56da02fd2797f9e7", "name": "Commented-code block (5 lines) in tests/unit/test_selfheal_pr1_messages.py:24", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_selfheal_pr1_messages.py:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2879955e455ec96", "name": "Legacy-named symbol `table_backup` in tests/unit/test_noise_filter.py:245", "shortDescription": {"text": "Legacy-named symbol `table_backup` in tests/unit/test_noise_filter.py:245"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-916d121447c2e4f1", "name": "Legacy-named symbol `analyze_unused` in tests/unit/test_F2_skill_render.py:133", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/unit/test_F2_skill_render.py:133"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4172fae5777f94e0", "name": "Commented-code block (5 lines) in tests/unit/test_analyze_case_fold.py:21", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_analyze_case_fold.py:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cba955310fb937a", "name": "Commented-code block (7 lines) in tests/unit/test_resolvable_write_col_edges_unit.py:85", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/test_resolvable_write_col_edges_unit.py:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22a4578adf69de36", "name": "Commented-code block (5 lines) in tests/unit/test_index_flags.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_index_flags.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8594f976d6785e77", "name": "Commented-code block (5 lines) in tests/unit/test_graph_completeness_invariant.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_graph_completeness_invariant.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5297257d002bf607", "name": "Legacy-named symbol `orig_copy` in tests/unit/test_base_parser.py:311", "shortDescription": {"text": "Legacy-named symbol `orig_copy` in tests/unit/test_base_parser.py:311"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-edfa55b13b04a261", "name": "Legacy-named symbol `orders_v2` in tests/unit/test_catalog_csv_parsing.py:139", "shortDescription": {"text": "Legacy-named symbol `orders_v2` in tests/unit/test_catalog_csv_parsing.py:139"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c555d21ab3c084b", "name": "Legacy-named symbol `analyze_unused` in tests/unit/test_mcp_best_practices.py:18", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/unit/test_mcp_best_practices.py:18"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c77171fda1906c4a", "name": "Legacy-named symbol `analyze_unused` in tests/unit/test_F2_install_skill.py:85", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/unit/test_F2_install_skill.py:85"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6e8a9267390f41eb", "name": "Legacy-named symbol `consumer_old` in tests/unit/test_pr_impact_unit.py:217", "shortDescription": {"text": "Legacy-named symbol `consumer_old` in tests/unit/test_pr_impact_unit.py:217"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e434639678d43e8", "name": "Commented-code block (5 lines) in tests/unit/test_clone_positional_insert_blindspot.py:241", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_clone_positional_insert_blindspot.py:241"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8082ea59b793b194", "name": "Legacy-named symbol `sprint_12_v1` in tests/unit/test_freshness_helper.py:6", "shortDescription": {"text": "Legacy-named symbol `sprint_12_v1` in tests/unit/test_freshness_helper.py:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-506768a2ff3fa698", "name": "Commented-code block (8 lines) in tests/unit/test_index_cmd.py:41", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/test_index_cmd.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c50f858d74d8d6a", "name": "Commented-code block (5 lines) in tests/unit/test_e8_temp_chain_key_mismatch.py:288", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_e8_temp_chain_key_mismatch.py:288"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-685d4e32f38ecd83", "name": "Legacy-named symbol `sprint_12_v1` in tests/unit/test_include_working_tree.py:1", "shortDescription": {"text": "Legacy-named symbol `sprint_12_v1` in tests/unit/test_include_working_tree.py:1"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d1bab5bba6d57385", "name": "Commented-code block (5 lines) in tests/unit/test_include_working_tree.py:108", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_include_working_tree.py:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2cd2a1ba88993d50", "name": "Legacy-named symbol `multi_proj_body_copy` in tests/unit/test_perf_scaling_guard.py:52", "shortDescription": {"text": "Legacy-named symbol `multi_proj_body_copy` in tests/unit/test_perf_scaling_guard.py:52"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9296a5ccfed7641c", "name": "Commented-code block (6 lines) in tests/unit/test_perf_scaling_guard.py:53", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/test_perf_scaling_guard.py:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c13ca3a4b6759f7d", "name": "Commented-code block (6 lines) in tests/snowflake/E8/test_e8.py:26", "shortDescription": {"text": "Commented-code block (6 lines) in tests/snowflake/E8/test_e8.py:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bf95f2cfe601c46", "name": "Legacy-named symbol `analyze_unused` in tests/e2e/test_F2_skill_install_e2e.py:31", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in tests/e2e/test_F2_skill_install_e2e.py:31"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb474092cb3571f8", "name": "Commented-code block (6 lines) in tests/e2e/test_golden_lineage.py:44", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2e/test_golden_lineage.py:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e089f3d3882ec659", "name": "Legacy-named symbol `sprint_12_v1` in tests/e2e/test_mcp_lifecycle.py:7", "shortDescription": {"text": "Legacy-named symbol `sprint_12_v1` in tests/e2e/test_mcp_lifecycle.py:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bdd65b5f647b623c", "name": "Commented-code block (5 lines) in tests/e2e/test_selfheal_e2e.py:299", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2e/test_selfheal_e2e.py:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0efa90bc0c6a0f49", "name": "Commented-code block (6 lines) in tests/e2e/test_pr_impact_cli_e2e.py:64", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2e/test_pr_impact_cli_e2e.py:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-758f624e89b4ae8e", "name": "Commented-code block (5 lines) in src/sqlcg/parsers/base.py:479", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/parsers/base.py:479"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d190a4e0dc80ee4", "name": "Commented-code block (5 lines) in src/sqlcg/parsers/ansi_parser.py:28", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/parsers/ansi_parser.py:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6f72720df5b1c1f", "name": "Commented-code block (6 lines) in src/sqlcg/parsers/snowflake_parser.py:39", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/parsers/snowflake_parser.py:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba8b6305a45178a1", "name": "Commented-code block (8 lines) in src/sqlcg/parsers/dynamic_name.py:159", "shortDescription": {"text": "Commented-code block (8 lines) in src/sqlcg/parsers/dynamic_name.py:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58d73de303fa1a20", "name": "Commented-code block (5 lines) in src/sqlcg/cli/coverage.py:310", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/cli/coverage.py:310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d687b907205ee3e2", "name": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/cli/commands/install.py:83", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/cli/commands/install.py:83"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d59b062602743c7", "name": "Commented-code block (6 lines) in src/sqlcg/cli/commands/mcp.py:173", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/cli/commands/mcp.py:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2508ca8c8ed2a161", "name": "Commented-code block (6 lines) in src/sqlcg/cli/commands/reindex.py:39", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/cli/commands/reindex.py:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9c1e346dbd7031a", "name": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/cli/commands/reindex.py:286", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/cli/commands/reindex.py:286"}, "fullDescription": {"text": "`subprocess.Popen(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fbb42d4a8759578b", "name": "Commented-code block (5 lines) in src/sqlcg/cli/commands/catalog.py:158", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/cli/commands/catalog.py:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-702a8689ee797af8", "name": "Commented-code block (5 lines) in src/sqlcg/cli/commands/analyze.py:361", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/cli/commands/analyze.py:361"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a1e7621cbb30bd9", "name": "Commented-code block (10 lines) in src/sqlcg/cli/commands/git.py:27", "shortDescription": {"text": "Commented-code block (10 lines) in src/sqlcg/cli/commands/git.py:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21e293d11c2ac1c1", "name": "Commented-code block (6 lines) in src/sqlcg/cli/commands/index.py:446", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/cli/commands/index.py:446"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89b5bf1943807050", "name": "Commented-code block (8 lines) in src/sqlcg/lineage/aggregator.py:38", "shortDescription": {"text": "Commented-code block (8 lines) in src/sqlcg/lineage/aggregator.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf198f175ed22245", "name": "Commented-code block (9 lines) in src/sqlcg/lineage/temp_collapse.py:123", "shortDescription": {"text": "Commented-code block (9 lines) in src/sqlcg/lineage/temp_collapse.py:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f4bdd8e98c953f8", "name": "Commented-code block (6 lines) in src/sqlcg/server/noise_filter.py:96", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/server/noise_filter.py:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3e4e870e6826516", "name": "Legacy-named symbol `is_backup` in src/sqlcg/server/tools.py:1007", "shortDescription": {"text": "Legacy-named symbol `is_backup` in src/sqlcg/server/tools.py:1007"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17bcaf1ae2623b73", "name": "Commented-code block (8 lines) in src/sqlcg/server/tools.py:377", "shortDescription": {"text": "Commented-code block (8 lines) in src/sqlcg/server/tools.py:377"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5734b9abc5314750", "name": "Commented-code block (6 lines) in src/sqlcg/server/read_client.py:105", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/server/read_client.py:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b9c8bf5e21b1c7d", "name": "Legacy-named symbol `is_backup` in src/sqlcg/server/models.py:239", "shortDescription": {"text": "Legacy-named symbol `is_backup` in src/sqlcg/server/models.py:239"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b635e929d0d7588", "name": "Commented-code block (5 lines) in src/sqlcg/server/server.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/server/server.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61c1e2ff677a4053", "name": "Legacy-named symbol `analyze_unused` in src/sqlcg/server/skill.py:47", "shortDescription": {"text": "Legacy-named symbol `analyze_unused` in src/sqlcg/server/skill.py:47"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50115f54a4d7d407", "name": "Commented-code block (5 lines) in src/sqlcg/core/config.py:304", "shortDescription": {"text": "Commented-code block (5 lines) in src/sqlcg/core/config.py:304"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4bace5f64d84223", "name": "Legacy-named symbol `queued_copy` in src/sqlcg/core/jobs.py:101", "shortDescription": {"text": "Legacy-named symbol `queued_copy` in src/sqlcg/core/jobs.py:101"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f18ee717dfc8bb2a", "name": "Commented-code block (9 lines) in src/sqlcg/core/duckdb_backend.py:476", "shortDescription": {"text": "Commented-code block (9 lines) in src/sqlcg/core/duckdb_backend.py:476"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fb76b9ee316e9b1", "name": "Commented-code block (7 lines) in src/sqlcg/indexer/pool.py:207", "shortDescription": {"text": "Commented-code block (7 lines) in src/sqlcg/indexer/pool.py:207"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f14170414c9e40d", "name": "Commented-code block (6 lines) in src/sqlcg/indexer/indexer.py:137", "shortDescription": {"text": "Commented-code block (6 lines) in src/sqlcg/indexer/indexer.py:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89cc68c0a4615934", "name": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/indexer/watcher.py:177", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/indexer/watcher.py:177"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/sqlcg/parsers/base.py:full_id, src/sqlcg/parsers/base.py:full_id\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22535"}, "properties": {"repository": "Warhorze/sql-code-graph", "repoUrl": "https://github.com/Warhorze/sql-code-graph", "branch": "main"}, "results": [{"ruleId": "scanner-98196291cf76dd39", "level": "note", "message": {"text": "Possibly dead Python function: emit"}, "properties": {"repobilityId": "fecc700ec874b669", "scanner": "scanner-primary", "fingerprint": "98196291cf76dd39", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/collect_parse_errors.py:34"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d539ee1ac48a11d2", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "d539ee1ac48a11d2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/parsers/registry.py:27"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f678ccd342ded0c5", "level": "note", "message": {"text": "Possibly dead Python function: viz_cmd"}, "properties": {"repobilityId": "0e496480ae912abb", "scanner": "scanner-primary", "fingerprint": "f678ccd342ded0c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/cli/commands/viz.py:33"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-228bbc969420a56b", "level": "note", "message": {"text": "Possibly dead Python function: emit"}, "properties": {"repobilityId": "fecc700ec874b669", "scanner": "scanner-primary", "fingerprint": "228bbc969420a56b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/cli/commands/index.py:132"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e1aace10cc6113b2", "level": "note", "message": {"text": "Possibly dead Python function: report_cmd"}, "properties": {"repobilityId": "1e6721f767696d81", "scanner": "scanner-primary", "fingerprint": "e1aace10cc6113b2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/cli/commands/report.py:17"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8efd786b4c445c0e", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "8efd786b4c445c0e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/server/tools.py:577"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f1794a6a4a581ff1", "level": "note", "message": {"text": "Possibly dead Python function: update_progress"}, "properties": {"repobilityId": "00877585aa2a12d8", "scanner": "scanner-primary", "fingerprint": "f1794a6a4a581ff1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/server/writer.py:200"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fae81f780c7d5f4f", "level": "note", "message": {"text": "Possibly dead Python function: drain_loop"}, "properties": {"repobilityId": "8edb6e56ab5212e6", "scanner": "scanner-primary", "fingerprint": "fae81f780c7d5f4f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/server/writer.py:287"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ecdbad3cb478349", "level": "note", "message": {"text": "Possibly dead Python function: table_exists"}, "properties": {"repobilityId": "4329e1e2d0241118", "scanner": "scanner-primary", "fingerprint": "0ecdbad3cb478349", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/metrics/store.py:302"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8fd02f8612515226", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/sqlcg/viz/assets/force-graph.min.js:5"}, "properties": {"repobilityId": "120b8c679700f017", "scanner": "scanner-primary", "fingerprint": "8fd02f8612515226", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-5e089e31e98cdbda", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/sqlcg/viz/assets/force-graph.min.js:5"}, "properties": {"repobilityId": "e4a53bb3459fc3bd", "scanner": "scanner-primary", "fingerprint": "5e089e31e98cdbda", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/viz/assets/force-graph.min.js"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-b3774f6ebec0414a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/sqlcg/viz/assets/force-graph.min.js:2"}, "properties": {"repobilityId": "dc5080ffdb4bdf37", "scanner": "scanner-primary", "fingerprint": "b3774f6ebec0414a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/sqlcg/viz/assets/force-graph.min.js"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-1838a141491ce38c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b8fd4f5048f96576", "scanner": "scanner-primary", "fingerprint": "1838a141491ce38c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6e737343dd91046d", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a8d5886811c0d3b2", "scanner": "scanner-primary", "fingerprint": "6e737343dd91046d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/benchmark.yml"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-e929a4cc6cfa5063", "level": "note", "message": {"text": "Very large file: src/sqlcg/parsers/base.py (2150 lines)"}, "properties": {"repobilityId": "15ceffd2801d602b", "scanner": "scanner-primary", "fingerprint": "e929a4cc6cfa5063", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cba7f7d24daa4d31", "level": "note", "message": {"text": "Very large file: src/sqlcg/parsers/snowflake_parser.py (1086 lines)"}, "properties": {"repobilityId": "bbdab86c85155af4", "scanner": "scanner-primary", "fingerprint": "cba7f7d24daa4d31", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f63fd3aeb53a0a21", "level": "note", "message": {"text": "Very large file: src/sqlcg/server/tools.py (3035 lines)"}, "properties": {"repobilityId": "bf1518b421c233a3", "scanner": "scanner-primary", "fingerprint": "f63fd3aeb53a0a21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9ff44ff5ec15c1dc", "level": "note", "message": {"text": "Very large file: src/sqlcg/indexer/indexer.py (2243 lines)"}, "properties": {"repobilityId": "4c252ec6abd02cdc", "scanner": "scanner-primary", "fingerprint": "9ff44ff5ec15c1dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "61b6265e6121c45f", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "7d316eacc902ec49", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "7092d582f9369e03", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "e42f597e31e29f6e", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "dee86f76c1b29d73", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "7f23550a1276a0f6", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "576f03d8d4ab67f4", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-32ad8b2cb81c43cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_read_via_server.py:114"}, "properties": {"repobilityId": "0427acf6f15720d2", "scanner": "scanner-primary", "fingerprint": "32ad8b2cb81c43cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c9695893dc55995", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/integration/test_hygiene_config_root_reconciliation.py:20"}, "properties": {"repobilityId": "7007c22b21d46c88", "scanner": "scanner-primary", "fingerprint": "7c9695893dc55995", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-65de47d6867ba66a", "level": "none", "message": {"text": "Commented-code block (16 lines) in tests/integration/test_resolvable_write_col_edges_integration.py:19"}, "properties": {"repobilityId": "f0e8b09fc9c0f7a3", "scanner": "scanner-primary", "fingerprint": "65de47d6867ba66a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-475d57d55acaae28", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_user_surface_recall_guard.py:40"}, "properties": {"repobilityId": "b6f0c5b8b23e346f", "scanner": "scanner-primary", "fingerprint": "475d57d55acaae28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a4518ca802b9374", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_nested_cte_no_mispromotion.py:393"}, "properties": {"repobilityId": "e1a952ff4f610609", "scanner": "scanner-primary", "fingerprint": "3a4518ca802b9374", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ffdb582641fe9975", "level": "note", "message": {"text": "Legacy-named symbol `src_emp_backup` in tests/integration/test_temp_collapse_primitive.py:5"}, "properties": {"repobilityId": "491216dd9a507c82", "scanner": "scanner-primary", "fingerprint": "ffdb582641fe9975", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a792a4f52e6f0233", "level": "note", "message": {"text": "Legacy-named symbol `is_backup` in tests/integration/test_anchor_tools.py:53"}, "properties": {"repobilityId": "cd66193ac8534692", "scanner": "scanner-primary", "fingerprint": "a792a4f52e6f0233", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f450210d06d0541c", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_identity_counters_integration.py:41"}, "properties": {"repobilityId": "2f770901f6952f7e", "scanner": "scanner-primary", "fingerprint": "f450210d06d0541c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0af7f12b3062eee1", "level": "note", "message": {"text": "Legacy-named symbol `payment_fact_backup` in tests/integration/test_star_promote_temp_columns.py:189"}, "properties": {"repobilityId": "a9bbfa00986ac7b4", "scanner": "scanner-primary", "fingerprint": "0af7f12b3062eee1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eb5fa270f60981a6", "level": "note", "message": {"text": "Legacy-named symbol `test_flag_on_catalog_reapply_still_excludes_backup` in tests/integration/test_index_filter_node_exclusion.py:205"}, "properties": {"repobilityId": "0832eeeec51eca00", "scanner": "scanner-primary", "fingerprint": "eb5fa270f60981a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b93f355fe2687613", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_union_cte_star_recall_guard.py:269"}, "properties": {"repobilityId": "1a21c3a12e702548", "scanner": "scanner-primary", "fingerprint": "b93f355fe2687613", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ecb28656ec8a6f14", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_cte_recall_guard.py:55"}, "properties": {"repobilityId": "2747491e5a7e2021", "scanner": "scanner-primary", "fingerprint": "ecb28656ec8a6f14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1db032c9f56c3ab5", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_backfill_impact_consistency.py:50"}, "properties": {"repobilityId": "f64b48a6a4a07f6d", "scanner": "scanner-primary", "fingerprint": "1db032c9f56c3ab5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdc1f096720dd4d7", "level": "note", "message": {"text": "Legacy-named symbol `u_sql_v1` in tests/integration/test_resync.py:194"}, "properties": {"repobilityId": "2481b63afcbc875b", "scanner": "scanner-primary", "fingerprint": "cdc1f096720dd4d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e1bf0b68c1a30459", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_resync.py:477"}, "properties": {"repobilityId": "2cbfe3e8171b234e", "scanner": "scanner-primary", "fingerprint": "e1bf0b68c1a30459", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-013deeb9f0124630", "level": "note", "message": {"text": "Legacy-named symbol `ddl_v1` in tests/integration/test_star_resolution.py:348"}, "properties": {"repobilityId": "72c7bce8248fdc8e", "scanner": "scanner-primary", "fingerprint": "013deeb9f0124630", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2dc88f79d3a81881", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/integration/test_T34_presentation_segregation.py:1"}, "properties": {"repobilityId": "771eea1ff2b46d04", "scanner": "scanner-primary", "fingerprint": "2dc88f79d3a81881", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf39eee83c9fd904", "level": "note", "message": {"text": "Legacy-named symbol `is_backup` in tests/integration/test_v1_14_0_dialect_and_query_config_fixes.py:498"}, "properties": {"repobilityId": "ca141563ced104c0", "scanner": "scanner-primary", "fingerprint": "bf39eee83c9fd904", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-29e142cc3eeb9e39", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_temp_table_namespacing.py:526"}, "properties": {"repobilityId": "ea59a1464d452263", "scanner": "scanner-primary", "fingerprint": "29e142cc3eeb9e39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3371f805632d777e", "level": "note", "message": {"text": "Legacy-named symbol `test_cte_derived_source_not_in_unused` in tests/integration/test_selects_from_completeness.py:103"}, "properties": {"repobilityId": "7e529b49ed0b8e50", "scanner": "scanner-primary", "fingerprint": "3371f805632d777e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-448b922f301a9a25", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/test_selects_from_completeness.py:65"}, "properties": {"repobilityId": "3aa333400a14dd09", "scanner": "scanner-primary", "fingerprint": "448b922f301a9a25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d7f2ce945c116da", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/integration/test_column_coverage_patterns.py:570"}, "properties": {"repobilityId": "24e1590c044abc1b", "scanner": "scanner-primary", "fingerprint": "7d7f2ce945c116da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b02f694e23f0384", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_coverage_metrics_integration.py:26"}, "properties": {"repobilityId": "91e796bcf06ec1ff", "scanner": "scanner-primary", "fingerprint": "9b02f694e23f0384", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0e2c1f7e41837d0", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/integration/test_pr_impact_integration.py:406"}, "properties": {"repobilityId": "0dee708ec9e41820", "scanner": "scanner-primary", "fingerprint": "a0e2c1f7e41837d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a71b66802fc134c", "level": "note", "message": {"text": "Legacy-named symbol `src_emp_backup` in tests/integration/test_lineage_gold_set.py:63"}, "properties": {"repobilityId": "3d7fda02e0cdff62", "scanner": "scanner-primary", "fingerprint": "7a71b66802fc134c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6b89e14231ac488a", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/integration/test_T35_external_consumers.py:569"}, "properties": {"repobilityId": "664b01b4406c5296", "scanner": "scanner-primary", "fingerprint": "6b89e14231ac488a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7053619e50461d85", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/integration/test_incremental_reindex_parity.py:70"}, "properties": {"repobilityId": "15aabc2c539a3107", "scanner": "scanner-primary", "fingerprint": "7053619e50461d85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab401e66688bad57", "level": "note", "message": {"text": "Legacy-named symbol `baz_backup` in tests/unit/test_file_ignore_defaults.py:20"}, "properties": {"repobilityId": "399ab63f8ed6029c", "scanner": "scanner-primary", "fingerprint": "ab401e66688bad57", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-56da02fd2797f9e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_selfheal_pr1_messages.py:24"}, "properties": {"repobilityId": "05a1ba0e29198755", "scanner": "scanner-primary", "fingerprint": "56da02fd2797f9e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2879955e455ec96", "level": "note", "message": {"text": "Legacy-named symbol `table_backup` in tests/unit/test_noise_filter.py:245"}, "properties": {"repobilityId": "abefa5e6a3316ddf", "scanner": "scanner-primary", "fingerprint": "b2879955e455ec96", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-916d121447c2e4f1", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/unit/test_F2_skill_render.py:133"}, "properties": {"repobilityId": "d629afb0b9fc47be", "scanner": "scanner-primary", "fingerprint": "916d121447c2e4f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4172fae5777f94e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_analyze_case_fold.py:21"}, "properties": {"repobilityId": "a2014af671f93b7d", "scanner": "scanner-primary", "fingerprint": "4172fae5777f94e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cba955310fb937a", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/test_resolvable_write_col_edges_unit.py:85"}, "properties": {"repobilityId": "b437439b6bf71087", "scanner": "scanner-primary", "fingerprint": "1cba955310fb937a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22a4578adf69de36", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_index_flags.py:47"}, "properties": {"repobilityId": "cb3d03d452b76dd5", "scanner": "scanner-primary", "fingerprint": "22a4578adf69de36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8594f976d6785e77", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_graph_completeness_invariant.py:34"}, "properties": {"repobilityId": "c9869efa7a209495", "scanner": "scanner-primary", "fingerprint": "8594f976d6785e77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5297257d002bf607", "level": "note", "message": {"text": "Legacy-named symbol `orig_copy` in tests/unit/test_base_parser.py:311"}, "properties": {"repobilityId": "8cd6bbd3e1e7b4f5", "scanner": "scanner-primary", "fingerprint": "5297257d002bf607", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-edfa55b13b04a261", "level": "note", "message": {"text": "Legacy-named symbol `orders_v2` in tests/unit/test_catalog_csv_parsing.py:139"}, "properties": {"repobilityId": "9324e50d04818bea", "scanner": "scanner-primary", "fingerprint": "edfa55b13b04a261", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6c555d21ab3c084b", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/unit/test_mcp_best_practices.py:18"}, "properties": {"repobilityId": "c59c1686c9c96a09", "scanner": "scanner-primary", "fingerprint": "6c555d21ab3c084b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c77171fda1906c4a", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/unit/test_F2_install_skill.py:85"}, "properties": {"repobilityId": "8ecd1c62f8be61c1", "scanner": "scanner-primary", "fingerprint": "c77171fda1906c4a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6e8a9267390f41eb", "level": "note", "message": {"text": "Legacy-named symbol `consumer_old` in tests/unit/test_pr_impact_unit.py:217"}, "properties": {"repobilityId": "f0b1a4e1e6350004", "scanner": "scanner-primary", "fingerprint": "6e8a9267390f41eb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8e434639678d43e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_clone_positional_insert_blindspot.py:241"}, "properties": {"repobilityId": "32a9cb43fb5d7802", "scanner": "scanner-primary", "fingerprint": "8e434639678d43e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8082ea59b793b194", "level": "note", "message": {"text": "Legacy-named symbol `sprint_12_v1` in tests/unit/test_freshness_helper.py:6"}, "properties": {"repobilityId": "160401117036357e", "scanner": "scanner-primary", "fingerprint": "8082ea59b793b194", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-506768a2ff3fa698", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/test_index_cmd.py:41"}, "properties": {"repobilityId": "b1c60a17feaeaedf", "scanner": "scanner-primary", "fingerprint": "506768a2ff3fa698", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c50f858d74d8d6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_e8_temp_chain_key_mismatch.py:288"}, "properties": {"repobilityId": "6cc4790b96cc49d8", "scanner": "scanner-primary", "fingerprint": "9c50f858d74d8d6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-685d4e32f38ecd83", "level": "note", "message": {"text": "Legacy-named symbol `sprint_12_v1` in tests/unit/test_include_working_tree.py:1"}, "properties": {"repobilityId": "df0af9e7dc4e79ad", "scanner": "scanner-primary", "fingerprint": "685d4e32f38ecd83", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d1bab5bba6d57385", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_include_working_tree.py:108"}, "properties": {"repobilityId": "7dd9e5698e33299e", "scanner": "scanner-primary", "fingerprint": "d1bab5bba6d57385", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cd2a1ba88993d50", "level": "note", "message": {"text": "Legacy-named symbol `multi_proj_body_copy` in tests/unit/test_perf_scaling_guard.py:52"}, "properties": {"repobilityId": "9534a55c27d0d1b5", "scanner": "scanner-primary", "fingerprint": "2cd2a1ba88993d50", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9296a5ccfed7641c", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/test_perf_scaling_guard.py:53"}, "properties": {"repobilityId": "9165d83c3183e350", "scanner": "scanner-primary", "fingerprint": "9296a5ccfed7641c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c13ca3a4b6759f7d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/snowflake/E8/test_e8.py:26"}, "properties": {"repobilityId": "46d1852e72ac5ee0", "scanner": "scanner-primary", "fingerprint": "c13ca3a4b6759f7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bf95f2cfe601c46", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in tests/e2e/test_F2_skill_install_e2e.py:31"}, "properties": {"repobilityId": "2ead5dfb89d1484a", "scanner": "scanner-primary", "fingerprint": "4bf95f2cfe601c46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fb474092cb3571f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2e/test_golden_lineage.py:44"}, "properties": {"repobilityId": "5d093d8038950fbd", "scanner": "scanner-primary", "fingerprint": "fb474092cb3571f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e089f3d3882ec659", "level": "note", "message": {"text": "Legacy-named symbol `sprint_12_v1` in tests/e2e/test_mcp_lifecycle.py:7"}, "properties": {"repobilityId": "70795b45dcfc074d", "scanner": "scanner-primary", "fingerprint": "e089f3d3882ec659", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bdd65b5f647b623c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2e/test_selfheal_e2e.py:299"}, "properties": {"repobilityId": "ccccd55a2ad7791b", "scanner": "scanner-primary", "fingerprint": "bdd65b5f647b623c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0efa90bc0c6a0f49", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2e/test_pr_impact_cli_e2e.py:64"}, "properties": {"repobilityId": "936c06d9f2393f4a", "scanner": "scanner-primary", "fingerprint": "0efa90bc0c6a0f49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-758f624e89b4ae8e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/parsers/base.py:479"}, "properties": {"repobilityId": "aee140459979c8c7", "scanner": "scanner-primary", "fingerprint": "758f624e89b4ae8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d190a4e0dc80ee4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/parsers/ansi_parser.py:28"}, "properties": {"repobilityId": "6327089a06b7e6c3", "scanner": "scanner-primary", "fingerprint": "7d190a4e0dc80ee4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6f72720df5b1c1f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/parsers/snowflake_parser.py:39"}, "properties": {"repobilityId": "7786d673d840c0a5", "scanner": "scanner-primary", "fingerprint": "a6f72720df5b1c1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba8b6305a45178a1", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/sqlcg/parsers/dynamic_name.py:159"}, "properties": {"repobilityId": "beae2982aeecddcb", "scanner": "scanner-primary", "fingerprint": "ba8b6305a45178a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58d73de303fa1a20", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/cli/coverage.py:310"}, "properties": {"repobilityId": "197a3eb74ed97617", "scanner": "scanner-primary", "fingerprint": "58d73de303fa1a20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d687b907205ee3e2", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/cli/commands/install.py:83"}, "properties": {"repobilityId": "a5d4e7960f631dfa", "scanner": "scanner-primary", "fingerprint": "d687b907205ee3e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d59b062602743c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/cli/commands/mcp.py:173"}, "properties": {"repobilityId": "6c0d8dbf1c92df95", "scanner": "scanner-primary", "fingerprint": "3d59b062602743c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2508ca8c8ed2a161", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/cli/commands/reindex.py:39"}, "properties": {"repobilityId": "fca3ba16f6bb16d6", "scanner": "scanner-primary", "fingerprint": "2508ca8c8ed2a161", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9c1e346dbd7031a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/cli/commands/reindex.py:286"}, "properties": {"repobilityId": "361ea064f00df509", "scanner": "scanner-primary", "fingerprint": "e9c1e346dbd7031a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbb42d4a8759578b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/cli/commands/catalog.py:158"}, "properties": {"repobilityId": "71fcfde1f3d7095d", "scanner": "scanner-primary", "fingerprint": "fbb42d4a8759578b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-702a8689ee797af8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/cli/commands/analyze.py:361"}, "properties": {"repobilityId": "f815e6531606b4fc", "scanner": "scanner-primary", "fingerprint": "702a8689ee797af8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a1e7621cbb30bd9", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/sqlcg/cli/commands/git.py:27"}, "properties": {"repobilityId": "a2787c4e4b3c7f7d", "scanner": "scanner-primary", "fingerprint": "3a1e7621cbb30bd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e293d11c2ac1c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/cli/commands/index.py:446"}, "properties": {"repobilityId": "c34ae6fd6c689551", "scanner": "scanner-primary", "fingerprint": "21e293d11c2ac1c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89b5bf1943807050", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/sqlcg/lineage/aggregator.py:38"}, "properties": {"repobilityId": "39b4e9d86d2da4c5", "scanner": "scanner-primary", "fingerprint": "89b5bf1943807050", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf198f175ed22245", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/sqlcg/lineage/temp_collapse.py:123"}, "properties": {"repobilityId": "75ca12612cadf580", "scanner": "scanner-primary", "fingerprint": "bf198f175ed22245", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f4bdd8e98c953f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/server/noise_filter.py:96"}, "properties": {"repobilityId": "878d6df8367035d3", "scanner": "scanner-primary", "fingerprint": "7f4bdd8e98c953f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3e4e870e6826516", "level": "note", "message": {"text": "Legacy-named symbol `is_backup` in src/sqlcg/server/tools.py:1007"}, "properties": {"repobilityId": "cc091483cd584abf", "scanner": "scanner-primary", "fingerprint": "a3e4e870e6826516", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-17bcaf1ae2623b73", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/sqlcg/server/tools.py:377"}, "properties": {"repobilityId": "e06ee90f2e4f7861", "scanner": "scanner-primary", "fingerprint": "17bcaf1ae2623b73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5734b9abc5314750", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/server/read_client.py:105"}, "properties": {"repobilityId": "ac934b0724938702", "scanner": "scanner-primary", "fingerprint": "5734b9abc5314750", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b9c8bf5e21b1c7d", "level": "note", "message": {"text": "Legacy-named symbol `is_backup` in src/sqlcg/server/models.py:239"}, "properties": {"repobilityId": "a89a14dc0e6786f0", "scanner": "scanner-primary", "fingerprint": "8b9c8bf5e21b1c7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8b635e929d0d7588", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/server/server.py:20"}, "properties": {"repobilityId": "2b7c70939bd28490", "scanner": "scanner-primary", "fingerprint": "8b635e929d0d7588", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61c1e2ff677a4053", "level": "note", "message": {"text": "Legacy-named symbol `analyze_unused` in src/sqlcg/server/skill.py:47"}, "properties": {"repobilityId": "e12d2de2793f9326", "scanner": "scanner-primary", "fingerprint": "61c1e2ff677a4053", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-50115f54a4d7d407", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/sqlcg/core/config.py:304"}, "properties": {"repobilityId": "59746d6f6ecc6524", "scanner": "scanner-primary", "fingerprint": "50115f54a4d7d407", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4bace5f64d84223", "level": "note", "message": {"text": "Legacy-named symbol `queued_copy` in src/sqlcg/core/jobs.py:101"}, "properties": {"repobilityId": "320c1281fec36dee", "scanner": "scanner-primary", "fingerprint": "b4bace5f64d84223", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f18ee717dfc8bb2a", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/sqlcg/core/duckdb_backend.py:476"}, "properties": {"repobilityId": "19ad46a9569707b2", "scanner": "scanner-primary", "fingerprint": "f18ee717dfc8bb2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fb76b9ee316e9b1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/sqlcg/indexer/pool.py:207"}, "properties": {"repobilityId": "011f74f72c1647c5", "scanner": "scanner-primary", "fingerprint": "6fb76b9ee316e9b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f14170414c9e40d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/sqlcg/indexer/indexer.py:137"}, "properties": {"repobilityId": "1c859ed8d9b90fd0", "scanner": "scanner-primary", "fingerprint": "9f14170414c9e40d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89cc68c0a4615934", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/sqlcg/indexer/watcher.py:177"}, "properties": {"repobilityId": "ad039796fb5fcb04", "scanner": "scanner-primary", "fingerprint": "89cc68c0a4615934", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "25fc3fe1d41939e4", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "f20a7d04f03bc312", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "acd5d72c59ce55f7", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "27d2b3d6f44b4f42", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}