{"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-c70306343dd3aa24", "name": "Possibly dead Python function: send_reconcile", "shortDescription": {"text": "Possibly dead Python function: send_reconcile"}, "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-c546f36efb3ff99e", "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-f4ca1c91b80b6df9", "name": "Possibly dead Python function: handle_starttag", "shortDescription": {"text": "Possibly dead Python function: handle_starttag"}, "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-5ba68dc5f6f4713c", "name": "Possibly dead Python function: handle_endtag", "shortDescription": {"text": "Possibly dead Python function: handle_endtag"}, "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-b245fa04dbff6d74", "name": "Possibly dead Python function: handle_data", "shortDescription": {"text": "Possibly dead Python function: handle_data"}, "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-a815671b08a6ec51", "name": "Possibly dead Python function: retry", "shortDescription": {"text": "Possibly dead Python function: retry"}, "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-2efc178cb2154256", "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-eaff3868d3ebffcf", "name": "Possibly dead Python function: fetch_fas_esr_multi", "shortDescription": {"text": "Possibly dead Python function: fetch_fas_esr_multi"}, "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-0ee054852644eeae", "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-8d2fda50360fbf05", "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-7fe43140515af00f", "name": "Privileged port 21 in use", "shortDescription": {"text": "Privileged port 21 in use"}, "fullDescription": {"text": "Port 21 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca06fe15652f1e6d", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7dc4f8228c65efba", "name": "Privileged port 45 in use", "shortDescription": {"text": "Privileged port 45 in use"}, "fullDescription": {"text": "Port 45 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f73c114ddc31e07f", "name": "Privileged port 15 in use", "shortDescription": {"text": "Privileged port 15 in use"}, "fullDescription": {"text": "Port 15 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-510996a0926f7d9f", "name": "Privileged port 19 in use", "shortDescription": {"text": "Privileged port 19 in use"}, "fullDescription": {"text": "Port 19 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-18fa2093ed63a4df", "name": "Privileged port 18 in use", "shortDescription": {"text": "Privileged port 18 in use"}, "fullDescription": {"text": "Port 18 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dee22569674385b4", "name": "Privileged port 23 in use", "shortDescription": {"text": "Privileged port 23 in use"}, "fullDescription": {"text": "Port 23 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d1f515ca801c02b2", "name": "Privileged port 10 in use", "shortDescription": {"text": "Privileged port 10 in use"}, "fullDescription": {"text": "Port 10 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c516c3b4b06d86c6", "name": "Privileged port 16 in use", "shortDescription": {"text": "Privileged port 16 in use"}, "fullDescription": {"text": "Port 16 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02954c1d97e3446e", "name": "Privileged port 17 in use", "shortDescription": {"text": "Privileged port 17 in use"}, "fullDescription": {"text": "Port 17 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d40e4d6382d05a73", "name": "Privileged port 20 in use", "shortDescription": {"text": "Privileged port 20 in use"}, "fullDescription": {"text": "Port 20 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba1739b0a2e63183", "name": "Privileged port 81 in use", "shortDescription": {"text": "Privileged port 81 in use"}, "fullDescription": {"text": "Port 81 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b0d017482fad35b", "name": "Privileged port 82 in use", "shortDescription": {"text": "Privileged port 82 in use"}, "fullDescription": {"text": "Port 82 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-351e8304c9ee3d33", "name": "Privileged port 11 in use", "shortDescription": {"text": "Privileged port 11 in use"}, "fullDescription": {"text": "Port 11 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b808eeb172a6c128", "name": "Privileged port 12 in use", "shortDescription": {"text": "Privileged port 12 in use"}, "fullDescription": {"text": "Port 12 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ece046bbc36f8b6", "name": "Privileged port 40 in use", "shortDescription": {"text": "Privileged port 40 in use"}, "fullDescription": {"text": "Port 40 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "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-6d7ebe3cb455a05b", "name": "Insecure pattern 'direct_innerhtml_assignment' in web/widget.html:336", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/widget.html:336"}, "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-2b54b71aa6f817c6", "name": "Insecure pattern 'direct_innerhtml_assignment' in web/assets/admin.js:155", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/assets/admin.js:155"}, "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-e3b1b9ede48718d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in web/assets/app.js:74", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/assets/app.js:74"}, "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-244af55fd6b589ab", "name": "Insecure pattern 'insert_adjacent_html' in web/assets/app.js:731", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in web/assets/app.js:731"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e539299379d72620", "name": "Insecure pattern 'debug_true' in src/bedrock/cli/server.py:128", "shortDescription": {"text": "Insecure pattern 'debug_true' in src/bedrock/cli/server.py:128"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "astral-sh/setup-uv@v6 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": "medium", "confidence": 1.0}}, {"id": "scanner-140e09b835808952", "name": "Very large file: tests/unit/bot/test_exit.py (2728 lines)", "shortDescription": {"text": "Very large file: tests/unit/bot/test_exit.py (2728 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-060593c5a72edf56", "name": "Very large file: tests/unit/bot/test_entry.py (2583 lines)", "shortDescription": {"text": "Very large file: tests/unit/bot/test_entry.py (2583 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-7ed0fb654f3bbec0", "name": "Very large file: web/assets/app.js (1480 lines)", "shortDescription": {"text": "Very large file: web/assets/app.js (1480 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-a33a6f1122f65850", "name": "Very large file: src/bedrock/bot/exit.py (1361 lines)", "shortDescription": {"text": "Very large file: src/bedrock/bot/exit.py (1361 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-509822a78dccd908", "name": "Very large file: src/bedrock/bot/entry.py (1719 lines)", "shortDescription": {"text": "Very large file: src/bedrock/bot/entry.py (1719 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-d1b6d692d678f507", "name": "Very large file: src/bedrock/signal_server/endpoints/ui.py (1927 lines)", "shortDescription": {"text": "Very large file: src/bedrock/signal_server/endpoints/ui.py (1927 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-fe05a9ce34ac86a6", "name": "Very large file: src/bedrock/engine/drivers/positioning.py (1624 lines)", "shortDescription": {"text": "Very large file: src/bedrock/engine/drivers/positioning.py (1624 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-4b4f005bf1c428f8", "name": "Very large file: src/bedrock/engine/drivers/macro.py (2692 lines)", "shortDescription": {"text": "Very large file: src/bedrock/engine/drivers/macro.py (2692 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-bbe8689078cbffb0", "name": "Very large file: src/bedrock/engine/drivers/agronomy.py (1953 lines)", "shortDescription": {"text": "Very large file: src/bedrock/engine/drivers/agronomy.py (1953 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 471 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 14 placeholder/mock markers across 13 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-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-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-020b4a9ffbf02418", "name": "Legacy-named symbol `model_copy` in tests/unit/test_engine_smoke.py:112", "shortDescription": {"text": "Legacy-named symbol `model_copy` in tests/unit/test_engine_smoke.py:112"}, "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-e2644e72d7e3dba8", "name": "Legacy-named symbol `append_cot_legacy` in tests/unit/test_store_cot.py:190", "shortDescription": {"text": "Legacy-named symbol `append_cot_legacy` in tests/unit/test_store_cot.py:190"}, "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-a3bef5cce2b40d72", "name": "Legacy-named symbol `n_signals_v1` in tests/unit/test_backtest_compare.py:62", "shortDescription": {"text": "Legacy-named symbol `n_signals_v1` in tests/unit/test_backtest_compare.py:62"}, "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-85f928b39d3383d2", "name": "Legacy-named symbol `cot_legacy` in tests/unit/test_fetch_runner.py:150", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in tests/unit/test_fetch_runner.py:150"}, "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-28e83246a4ae197e", "name": "Legacy-named symbol `model_copy` in tests/unit/test_setups_hysteresis.py:127", "shortDescription": {"text": "Legacy-named symbol `model_copy` in tests/unit/test_setups_hysteresis.py:127"}, "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-5426ce945983f784", "name": "Commented-code block (5 lines) in tests/unit/test_event_distance_driver.py:257", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_event_distance_driver.py:257"}, "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-ac64c5cd2aa4a8cb", "name": "Legacy-named symbol `normalize_old` in tests/unit/test_parallel_compare.py:22", "shortDescription": {"text": "Legacy-named symbol `normalize_old` in tests/unit/test_parallel_compare.py:22"}, "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-5bd65944cd909d4b", "name": "Legacy-named symbol `cot_legacy` in tests/unit/test_fetch_config.py:114", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in tests/unit/test_fetch_config.py:114"}, "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-1d5dca1e387d2be7", "name": "Legacy-named symbol `append_cot_legacy` in tests/unit/test_backtest_store_view_release_at.py:54", "shortDescription": {"text": "Legacy-named symbol `append_cot_legacy` in tests/unit/test_backtest_store_view_release_at.py:54"}, "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-cb65f8fb1f8931c5", "name": "Legacy-named symbol `fetch_cot_legacy` in tests/unit/test_fetch_cot_legacy.py:16", "shortDescription": {"text": "Legacy-named symbol `fetch_cot_legacy` in tests/unit/test_fetch_cot_legacy.py:16"}, "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-ea2b5709c1c0f9a2", "name": "Legacy-named symbol `alpha_copy` in tests/unit/test_backtest_phase_d_script.py:167", "shortDescription": {"text": "Legacy-named symbol `alpha_copy` in tests/unit/test_backtest_phase_d_script.py:167"}, "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-bcb3d7c88a23740b", "name": "Legacy-named symbol `fetched_at_v1` in tests/unit/test_store_econ_events.py:182", "shortDescription": {"text": "Legacy-named symbol `fetched_at_v1` in tests/unit/test_store_econ_events.py:182"}, "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-74eed93b0c1724dc", "name": "Commented-code block (5 lines) in tests/unit/test_backtest_store_view_phase_d.py:207", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/test_backtest_store_view_phase_d.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-0910520f21bbf79b", "name": "Legacy-named symbol `fetch_cot_legacy` in tests/unit/test_cli_backfill_cot_legacy.py:40", "shortDescription": {"text": "Legacy-named symbol `fetch_cot_legacy` in tests/unit/test_cli_backfill_cot_legacy.py:40"}, "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-dfbae6f5e217b62a", "name": "Commented-code block (5 lines) in tests/unit/bot/test_entry.py:1173", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/bot/test_entry.py:1173"}, "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-48ef5b9c413bd9c7", "name": "Commented-code block (9 lines) in tests/web/test_filter.test.mjs:5", "shortDescription": {"text": "Commented-code block (9 lines) in tests/web/test_filter.test.mjs:5"}, "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-114b40a39fc36882", "name": "Commented-code block (7 lines) in scripts/analyze_capital_requirement.py:176", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/analyze_capital_requirement.py:176"}, "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-583e959457f5e73b", "name": "Legacy-named symbol `SELL_old` in scripts/spike_session95a_buy_sell_asymmetry.py:154", "shortDescription": {"text": "Legacy-named symbol `SELL_old` in scripts/spike_session95a_buy_sell_asymmetry.py:154"}, "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-329d4d40de8060c0", "name": "Commented-code block (6 lines) in scripts/analyze_driver_performance.py:46", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/analyze_driver_performance.py:46"}, "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-4cc1d7626f888066", "name": "Legacy-named symbol `cot_legacy` in scripts/compute_instrument_data_starts.py:63", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in scripts/compute_instrument_data_starts.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-66248f12b3c63c5d", "name": "Commented-code block (6 lines) in scripts/compute_instrument_data_starts.py:33", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/compute_instrument_data_starts.py:33"}, "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-c7e9b14c432f258d", "name": "Commented-code block (6 lines) in scripts/ingest_manual_data.py:101", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/ingest_manual_data.py:101"}, "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-37970cf32bdb7bed", "name": "Commented-code block (5 lines) in scripts/sugar_dsr_correlations.py:248", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/sugar_dsr_correlations.py:248"}, "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-aaf65a90fbe9f676", "name": "Commented-code block (5 lines) in scripts/backtest_sugar_full.py:40", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/backtest_sugar_full.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-1c7118ace6c79784", "name": "Commented-code block (5 lines) in scripts/sugar_anp_validation.py:71", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/sugar_anp_validation.py:71"}, "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-99994ad539152ce8", "name": "Legacy-named symbol `fetch_cot_legacy` in scripts/backfill_cftc_name_drift.py:34", "shortDescription": {"text": "Legacy-named symbol `fetch_cot_legacy` in scripts/backfill_cftc_name_drift.py:34"}, "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-d732109f37fa1395", "name": "Legacy-named symbol `cot_legacy` in scripts/report_data_coverage.py:73", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in scripts/report_data_coverage.py:73"}, "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-da4c95f801fd3120", "name": "Commented-code block (7 lines) in web/assets/admin.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in web/assets/admin.js:3"}, "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-a6544339e52789d6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 web/assets/admin.js:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web/assets/admin.js:99"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1ffc392de6d7fe80", "name": "Commented-code block (5 lines) in web/assets/app.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/assets/app.js:1"}, "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-cfcf4fe53c31131d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 web/assets/app.js:680", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web/assets/app.js:680"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ba0c470c12fb6fc0", "name": "Legacy-named symbol `cot_legacy` in web/assets/source_labels.js:41", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in web/assets/source_labels.js:41"}, "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-6df1d339a264b333", "name": "Commented-code block (5 lines) in web/assets/source_labels.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in web/assets/source_labels.js:1"}, "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-66b558b7bfe31ac3", "name": "Commented-code block (6 lines) in src/bedrock/systemd/generator.py:30", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/systemd/generator.py:30"}, "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-d5b30a3aa21c3252", "name": "Legacy-named symbol `only_v1` in src/bedrock/backtest/compare.py:10", "shortDescription": {"text": "Legacy-named symbol `only_v1` in src/bedrock/backtest/compare.py:10"}, "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-2a1d9bf0a8cc00c9", "name": "Legacy-named symbol `only_old` in src/bedrock/parallel/compare.py:20", "shortDescription": {"text": "Legacy-named symbol `only_old` in src/bedrock/parallel/compare.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-2317d73eca524fe6", "name": "Commented-code block (7 lines) in src/bedrock/bot/exit.py:161", "shortDescription": {"text": "Commented-code block (7 lines) in src/bedrock/bot/exit.py:161"}, "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-3fb6344398af8a17", "name": "Legacy-named symbol `skipped_old` in src/bedrock/bot/entry.py:1112", "shortDescription": {"text": "Legacy-named symbol `skipped_old` in src/bedrock/bot/entry.py:1112"}, "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-41f23d582667d451", "name": "Commented-code block (10 lines) in src/bedrock/bot/entry.py:177", "shortDescription": {"text": "Commented-code block (10 lines) in src/bedrock/bot/entry.py:177"}, "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-4e6b6b500f03ccc8", "name": "Network/subprocess call without timeout or try/except \u2014 src/bedrock/bot/comms.py:136", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bedrock/bot/comms.py:136"}, "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-a0cb4f0061bb3cd1", "name": "Commented-code block (5 lines) in src/bedrock/config/fetch.py:65", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/config/fetch.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-49bbdc94e13d90f9", "name": "Legacy-named symbol `cot_legacy` in src/bedrock/config/fetch_runner.py:233", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in src/bedrock/config/fetch_runner.py:233"}, "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-3e139a814020f5d1", "name": "Commented-code block (5 lines) in src/bedrock/config/fetch_runner.py:263", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/config/fetch_runner.py:263"}, "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-ce94b7b3524b2fe4", "name": "Commented-code block (6 lines) in src/bedrock/config/instruments.py:281", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/config/instruments.py:281"}, "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-6e70caa004ad0f2b", "name": "Legacy-named symbol `model_copy` in src/bedrock/setups/levels.py:279", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/bedrock/setups/levels.py:279"}, "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-bc8f47c482cb9e1a", "name": "Legacy-named symbol `model_copy` in src/bedrock/setups/hysteresis.py:206", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/bedrock/setups/hysteresis.py:206"}, "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-c466d22b688b4719", "name": "Stub function `latest_observation_ts` (body is just `pass`/`return`) \u2014 src/bedrock/cli/fetch.py:116", "shortDescription": {"text": "Stub function `latest_observation_ts` (body is just `pass`/`return`) \u2014 src/bedrock/cli/fetch.py:116"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-56b6f74e080f3ffd", "name": "Legacy-named symbol `fetch_cot_legacy` in src/bedrock/cli/backfill.py:41", "shortDescription": {"text": "Legacy-named symbol `fetch_cot_legacy` in src/bedrock/cli/backfill.py:41"}, "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-41cbfa86b42db4c4", "name": "Network/subprocess call without timeout or try/except \u2014 src/bedrock/cli/systemd.py:158", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bedrock/cli/systemd.py:158"}, "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-562d730918232abb", "name": "Legacy-named symbol `label_v1` in src/bedrock/cli/backtest.py:256", "shortDescription": {"text": "Legacy-named symbol `label_v1` in src/bedrock/cli/backtest.py:256"}, "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-5427ca1db407e1b4", "name": "Commented-code block (5 lines) in src/bedrock/cli/signals_all.py:117", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/cli/signals_all.py:117"}, "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-9b157463935a322e", "name": "Commented-code block (9 lines) in src/bedrock/signal_server/bot_adapter.py:41", "shortDescription": {"text": "Commented-code block (9 lines) in src/bedrock/signal_server/bot_adapter.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-4b088859c82eece2", "name": "Commented-code block (5 lines) in src/bedrock/signal_server/config.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/signal_server/config.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-9148075a7a9310bb", "name": "Commented-code block (5 lines) in src/bedrock/signal_server/endpoints/prices.py:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/signal_server/endpoints/prices.py:1"}, "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-9e6853c3869843c8", "name": "Legacy-named symbol `cot_legacy` in src/bedrock/signal_server/endpoints/ui.py:900", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in src/bedrock/signal_server/endpoints/ui.py:900"}, "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-9c0f9e26f77753f0", "name": "Commented-code block (6 lines) in src/bedrock/signal_server/endpoints/ui.py:951", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/signal_server/endpoints/ui.py:951"}, "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-ff8bac9358ba962d", "name": "Legacy-named symbol `model_copy` in src/bedrock/orchestrator/signals.py:362", "shortDescription": {"text": "Legacy-named symbol `model_copy` in src/bedrock/orchestrator/signals.py:362"}, "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-b84d6bbea20baf29", "name": "Commented-code block (7 lines) in src/bedrock/orchestrator/signals.py:160", "shortDescription": {"text": "Commented-code block (7 lines) in src/bedrock/orchestrator/signals.py:160"}, "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-afb1e543e2e4c006", "name": "Commented-code block (7 lines) in src/bedrock/fetch/wasde.py:379", "shortDescription": {"text": "Commented-code block (7 lines) in src/bedrock/fetch/wasde.py:379"}, "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-6035b5479f446176", "name": "Commented-code block (7 lines) in src/bedrock/fetch/base.py:97", "shortDescription": {"text": "Commented-code block (7 lines) in src/bedrock/fetch/base.py:97"}, "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-ce49e71a11453cc7", "name": "Legacy-named symbol `fetch_cot_legacy` in src/bedrock/fetch/cot_cftc.py:191", "shortDescription": {"text": "Legacy-named symbol `fetch_cot_legacy` in src/bedrock/fetch/cot_cftc.py:191"}, "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-8f6eeb0e1d597bf0", "name": "Commented-code block (6 lines) in src/bedrock/fetch/cot_cftc.py:79", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/fetch/cot_cftc.py:79"}, "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-aebb8004e1c3d57e", "name": "Commented-code block (5 lines) in src/bedrock/fetch/nass.py:57", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/fetch/nass.py:57"}, "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-68f698f449b60c60", "name": "Commented-code block (5 lines) in src/bedrock/fetch/cot_ice.py:61", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/fetch/cot_ice.py:61"}, "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-f1223fba264fcd1a", "name": "Commented-code block (6 lines) in src/bedrock/engine/engine.py:496", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/engine/engine.py:496"}, "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-9a7d6d4ca1fa34a4", "name": "Legacy-named symbol `cot_legacy` in src/bedrock/engine/drivers/positioning.py:1179", "shortDescription": {"text": "Legacy-named symbol `cot_legacy` in src/bedrock/engine/drivers/positioning.py:1179"}, "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-e0dcc2b02f9bdfeb", "name": "Commented-code block (5 lines) in src/bedrock/engine/drivers/positioning.py:1498", "shortDescription": {"text": "Commented-code block (5 lines) in src/bedrock/engine/drivers/positioning.py:1498"}, "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-d80a4d764b68a61c", "name": "Commented-code block (6 lines) in src/bedrock/engine/drivers/agri.py:199", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/engine/drivers/agri.py:199"}, "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-c5f84cee1f07446e", "name": "Commented-code block (9 lines) in src/bedrock/engine/drivers/macro_bunke3.py:710", "shortDescription": {"text": "Commented-code block (9 lines) in src/bedrock/engine/drivers/macro_bunke3.py:710"}, "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-c45c5e2b96ca7caf", "name": "Commented-code block (7 lines) in src/bedrock/engine/drivers/macro.py:931", "shortDescription": {"text": "Commented-code block (7 lines) in src/bedrock/engine/drivers/macro.py:931"}, "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-edc0bdfac0f9d18c", "name": "Commented-code block (6 lines) in src/bedrock/engine/drivers/macro_bunke4.py:133", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/engine/drivers/macro_bunke4.py:133"}, "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-5b4962499b85762a", "name": "Commented-code block (6 lines) in src/bedrock/engine/drivers/agronomy.py:1081", "shortDescription": {"text": "Commented-code block (6 lines) in src/bedrock/engine/drivers/agronomy.py:1081"}, "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-2eafc3188c36bb02", "name": "3 env vars used in code but missing from .env.example", "shortDescription": {"text": "3 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BEDROCK_BOT_CONFIG`, `CTRADER_ACCOUNT_ID`, `CTRADER_REFRESH_TOKEN`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/smoke/a3_fas_export_sales.py:fetch, scripts/smoke/a10_cecafe.py:fetch, scripts/smoke/a5_a7_etf_holdings.py:fetch, scripts/smoke/a8_nopa_crush.py:fetch\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}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/analysis/grade_distribution_d1.py:load_baseline, scripts/analysis/grade_distribution_d2.py:load_baseline, scripts/analysis/grade_validation_12_7.py:load_baseline\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}}, {"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:\nscripts/analysis/grade_distribution_d1.py:relative_aplus_change, scripts/analysis/grade_distribution_d2.py:relative_aplus_change\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}}, {"id": "scanner-0027e313ade46c8f", "name": "Near-duplicate function bodies in 7 places", "shortDescription": {"text": "Near-duplicate function bodies in 7 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/backfill/vix_term.py:main, scripts/backfill/agsi.py:main, scripts/backfill/fred_b1.py:main, scripts/backfill/weather_ng.py:main\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}}, {"id": "scanner-805362a4b2e61548", "name": "Near-duplicate function bodies in 28 places", "shortDescription": {"text": "Near-duplicate function bodies in 28 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nsrc/bedrock/config/fetch_runner.py:run_cot_disaggregated, src/bedrock/config/fetch_runner.py:run_cot_legacy, src/bedrock/config/fetch_runner.py:run_cot_tff, src/bedrock/config/fetch_runner.py:run_weather\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}}, {"id": "scanner-7569de4538b5c19a", "name": "Unused endpoint: POST /kill", "shortDescription": {"text": "Unused endpoint: POST /kill"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/kills.py` declares `POST /kill` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5f32d15d7d328fd", "name": "Unused endpoint: POST /clear_kills", "shortDescription": {"text": "Unused endpoint: POST /clear_kills"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/kills.py` declares `POST /clear_kills` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d6fc0a1a6d2c7e9", "name": "Unused endpoint: GET /kills", "shortDescription": {"text": "Unused endpoint: GET /kills"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/kills.py` declares `GET /kills` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6236b283b79811b8", "name": "Unused endpoint: POST /upload", "shortDescription": {"text": "Unused endpoint: POST /upload"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/uploads.py` declares `POST /upload` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4348701abc4487e9", "name": "Unused endpoint: POST /push-alert", "shortDescription": {"text": "Unused endpoint: POST /push-alert"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/alerts.py` declares `POST /push-alert` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd004ef04a691272", "name": "Unused endpoint: POST /push-agri-alert", "shortDescription": {"text": "Unused endpoint: POST /push-agri-alert"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/alerts.py` declares `POST /push-agri-alert` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a5ea9f41041a8a7e", "name": "Unused endpoint: POST /push-prices", "shortDescription": {"text": "Unused endpoint: POST /push-prices"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/prices.py` declares `POST /push-prices` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2631495c43f2a81", "name": "Unused endpoint: GET /prices", "shortDescription": {"text": "Unused endpoint: GET /prices"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/prices.py` declares `GET /prices` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c45b14190c8385b", "name": "Unused endpoint: GET /signals", "shortDescription": {"text": "Unused endpoint: GET /signals"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/bot.py` declares `GET /signals` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-30f4cf65031f8748", "name": "Unused endpoint: GET /agri-signals", "shortDescription": {"text": "Unused endpoint: GET /agri-signals"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/signals.py` declares `GET /agri-signals` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f923fae51d8cc592", "name": "Unused endpoint: POST /invalidate", "shortDescription": {"text": "Unused endpoint: POST /invalidate"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/signals.py` declares `POST /invalidate` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b076deaf2a7d866", "name": "Unused endpoint: GET /admin/rules/<instrument_id>", "shortDescription": {"text": "Unused endpoint: GET /admin/rules/<instrument_id>"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/rules.py` declares `GET /admin/rules/<instrument_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b888791bb338bf2", "name": "Unused endpoint: PUT /admin/rules/<instrument_id>", "shortDescription": {"text": "Unused endpoint: PUT /admin/rules/<instrument_id>"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/rules.py` declares `PUT /admin/rules/<instrument_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fccf05e0c643fb36", "name": "Unused endpoint: GET /admin/logs", "shortDescription": {"text": "Unused endpoint: GET /admin/logs"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/rules.py` declares `GET /admin/logs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5f73bc92e6b775f7", "name": "Unused endpoint: POST /admin/rules/<instrument_id>/dry-run", "shortDescription": {"text": "Unused endpoint: POST /admin/rules/<instrument_id>/dry-run"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/rules.py` declares `POST /admin/rules/<instrument_id>/dry-run` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7dbc43ae2674d237", "name": "Unused endpoint: GET /admin/drivers", "shortDescription": {"text": "Unused endpoint: GET /admin/drivers"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/rules.py` declares `GET /admin/drivers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c05db1f264d62a94", "name": "Unused endpoint: GET /widget", "shortDescription": {"text": "Unused endpoint: GET /widget"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /widget` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-953ec1a0ee6df50d", "name": "Unused endpoint: GET /admin", "shortDescription": {"text": "Unused endpoint: GET /admin"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /admin` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28143bc207f17a50", "name": "Unused endpoint: GET /assets/<path:subpath>", "shortDescription": {"text": "Unused endpoint: GET /assets/<path:subpath>"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /assets/<path:subpath>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-60a2242aa9ca8310", "name": "Unused endpoint: GET /api/ui/widget", "shortDescription": {"text": "Unused endpoint: GET /api/ui/widget"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /api/ui/widget` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e06dbc8594feee66", "name": "Unused endpoint: GET /api/ui/decisions", "shortDescription": {"text": "Unused endpoint: GET /api/ui/decisions"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /api/ui/decisions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-90da854df4ab9d0b", "name": "Unused endpoint: GET /api/ui/events", "shortDescription": {"text": "Unused endpoint: GET /api/ui/events"}, "fullDescription": {"text": "`src/bedrock/signal_server/endpoints/ui.py` declares `GET /api/ui/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19931"}, "properties": {"repository": "Snkpipefish/Bedrock", "repoUrl": "https://github.com/Snkpipefish/Bedrock", "branch": "main"}, "results": [{"ruleId": "scanner-c70306343dd3aa24", "level": "note", "message": {"text": "Possibly dead Python function: send_reconcile"}, "properties": {"repobilityId": "93f538ae7451f587", "scanner": "scanner-primary", "fingerprint": "c70306343dd3aa24", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/bot/ctrader_client.py:475"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c546f36efb3ff99e", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "c546f36efb3ff99e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/config/fetch_runner.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4ca1c91b80b6df9", "level": "note", "message": {"text": "Possibly dead Python function: handle_starttag"}, "properties": {"repobilityId": "3bf216d149959ebf", "scanner": "scanner-primary", "fingerprint": "f4ca1c91b80b6df9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/fetch/cot_euronext.py:122"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5ba68dc5f6f4713c", "level": "note", "message": {"text": "Possibly dead Python function: handle_endtag"}, "properties": {"repobilityId": "7eb6f3decafc1766", "scanner": "scanner-primary", "fingerprint": "5ba68dc5f6f4713c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/fetch/cot_euronext.py:131"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b245fa04dbff6d74", "level": "note", "message": {"text": "Possibly dead Python function: handle_data"}, "properties": {"repobilityId": "3a673a278f4fc1e6", "scanner": "scanner-primary", "fingerprint": "b245fa04dbff6d74", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/fetch/cot_euronext.py:147"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a815671b08a6ec51", "level": "note", "message": {"text": "Possibly dead Python function: retry"}, "properties": {"repobilityId": "2cb354b3606be64c", "scanner": "scanner-primary", "fingerprint": "a815671b08a6ec51", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/fetch/base.py:113"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2efc178cb2154256", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "2efc178cb2154256", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/fetch/base.py:121"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eaff3868d3ebffcf", "level": "note", "message": {"text": "Possibly dead Python function: fetch_fas_esr_multi"}, "properties": {"repobilityId": "b0392260e5df28cf", "scanner": "scanner-primary", "fingerprint": "eaff3868d3ebffcf", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/fetch/fas_esr.py:216"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ee054852644eeae", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "0ee054852644eeae", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/engine/gates.py:85"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d2fda50360fbf05", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "8d2fda50360fbf05", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/engine/drivers/__init__.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7fe43140515af00f", "level": "warning", "message": {"text": "Privileged port 21 in use"}, "properties": {"repobilityId": "d920b7cd1b1a16dc", "scanner": "scanner-primary", "fingerprint": "7fe43140515af00f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".yamllint.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca06fe15652f1e6d", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "ca06fe15652f1e6d", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7dc4f8228c65efba", "level": "warning", "message": {"text": "Privileged port 45 in use"}, "properties": {"repobilityId": "73cf64d92574d41c", "scanner": "scanner-primary", "fingerprint": "7dc4f8228c65efba", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f73c114ddc31e07f", "level": "warning", "message": {"text": "Privileged port 15 in use"}, "properties": {"repobilityId": "3340f9a170f285cd", "scanner": "scanner-primary", "fingerprint": "f73c114ddc31e07f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-510996a0926f7d9f", "level": "warning", "message": {"text": "Privileged port 19 in use"}, "properties": {"repobilityId": "a6b5b06deac36eac", "scanner": "scanner-primary", "fingerprint": "510996a0926f7d9f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-18fa2093ed63a4df", "level": "warning", "message": {"text": "Privileged port 18 in use"}, "properties": {"repobilityId": "2d7b5e7d9c158e43", "scanner": "scanner-primary", "fingerprint": "18fa2093ed63a4df", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dee22569674385b4", "level": "warning", "message": {"text": "Privileged port 23 in use"}, "properties": {"repobilityId": "a1230e3dfc4becfa", "scanner": "scanner-primary", "fingerprint": "dee22569674385b4", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1f515ca801c02b2", "level": "warning", "message": {"text": "Privileged port 10 in use"}, "properties": {"repobilityId": "735372d6b5594915", "scanner": "scanner-primary", "fingerprint": "d1f515ca801c02b2", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c516c3b4b06d86c6", "level": "warning", "message": {"text": "Privileged port 16 in use"}, "properties": {"repobilityId": "d31009168c502ace", "scanner": "scanner-primary", "fingerprint": "c516c3b4b06d86c6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-02954c1d97e3446e", "level": "warning", "message": {"text": "Privileged port 17 in use"}, "properties": {"repobilityId": "0bf38fb8f89ec589", "scanner": "scanner-primary", "fingerprint": "02954c1d97e3446e", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d40e4d6382d05a73", "level": "warning", "message": {"text": "Privileged port 20 in use"}, "properties": {"repobilityId": "a59f3e53d617e0f8", "scanner": "scanner-primary", "fingerprint": "d40e4d6382d05a73", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/fetch.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba1739b0a2e63183", "level": "warning", "message": {"text": "Privileged port 81 in use"}, "properties": {"repobilityId": "663b0bffb7f8fe66", "scanner": "scanner-primary", "fingerprint": "ba1739b0a2e63183", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/instruments/sp500.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b0d017482fad35b", "level": "warning", "message": {"text": "Privileged port 82 in use"}, "properties": {"repobilityId": "053f8e47394cae38", "scanner": "scanner-primary", "fingerprint": "9b0d017482fad35b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/instruments/_disabled_btc.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-351e8304c9ee3d33", "level": "warning", "message": {"text": "Privileged port 11 in use"}, "properties": {"repobilityId": "5b3038c67fabb4c8", "scanner": "scanner-primary", "fingerprint": "351e8304c9ee3d33", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/instruments/_disabled_btc.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b808eeb172a6c128", "level": "warning", "message": {"text": "Privileged port 12 in use"}, "properties": {"repobilityId": "65e7eefa33f2def4", "scanner": "scanner-primary", "fingerprint": "b808eeb172a6c128", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "config/calendars/usda.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ece046bbc36f8b6", "level": "warning", "message": {"text": "Privileged port 40 in use"}, "properties": {"repobilityId": "28c59d470d4929c6", "scanner": "scanner-primary", "fingerprint": "6ece046bbc36f8b6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/monitor_alert.sh"}, "region": {"startLine": 1}}}]}, {"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-6d7ebe3cb455a05b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/widget.html:336"}, "properties": {"repobilityId": "e5cf8b7b41389da5", "scanner": "scanner-primary", "fingerprint": "6d7ebe3cb455a05b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/widget.html"}, "region": {"startLine": 336}}}]}, {"ruleId": "scanner-2b54b71aa6f817c6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/assets/admin.js:155"}, "properties": {"repobilityId": "9d2cd78056b5ee2c", "scanner": "scanner-primary", "fingerprint": "2b54b71aa6f817c6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/assets/admin.js"}, "region": {"startLine": 155}}}]}, {"ruleId": "scanner-e3b1b9ede48718d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in web/assets/app.js:74"}, "properties": {"repobilityId": "112ddfeb74fa2163", "scanner": "scanner-primary", "fingerprint": "e3b1b9ede48718d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/assets/app.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-244af55fd6b589ab", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in web/assets/app.js:731"}, "properties": {"repobilityId": "519d7798f4865247", "scanner": "scanner-primary", "fingerprint": "244af55fd6b589ab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "web/assets/app.js"}, "region": {"startLine": 731}}}]}, {"ruleId": "scanner-e539299379d72620", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in src/bedrock/cli/server.py:128"}, "properties": {"repobilityId": "4643b5406998a306", "scanner": "scanner-primary", "fingerprint": "e539299379d72620", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/bedrock/cli/server.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9847e08b01c7192f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-140e09b835808952", "level": "note", "message": {"text": "Very large file: tests/unit/bot/test_exit.py (2728 lines)"}, "properties": {"repobilityId": "0380e0668a39d40b", "scanner": "scanner-primary", "fingerprint": "140e09b835808952", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-060593c5a72edf56", "level": "note", "message": {"text": "Very large file: tests/unit/bot/test_entry.py (2583 lines)"}, "properties": {"repobilityId": "a9745a030daf0484", "scanner": "scanner-primary", "fingerprint": "060593c5a72edf56", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7ed0fb654f3bbec0", "level": "note", "message": {"text": "Very large file: web/assets/app.js (1480 lines)"}, "properties": {"repobilityId": "67706267eff13891", "scanner": "scanner-primary", "fingerprint": "7ed0fb654f3bbec0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a33a6f1122f65850", "level": "note", "message": {"text": "Very large file: src/bedrock/bot/exit.py (1361 lines)"}, "properties": {"repobilityId": "59fc10c7044915e0", "scanner": "scanner-primary", "fingerprint": "a33a6f1122f65850", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-509822a78dccd908", "level": "note", "message": {"text": "Very large file: src/bedrock/bot/entry.py (1719 lines)"}, "properties": {"repobilityId": "feef27df7d29b970", "scanner": "scanner-primary", "fingerprint": "509822a78dccd908", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1b6d692d678f507", "level": "note", "message": {"text": "Very large file: src/bedrock/signal_server/endpoints/ui.py (1927 lines)"}, "properties": {"repobilityId": "bbe117d22e518615", "scanner": "scanner-primary", "fingerprint": "d1b6d692d678f507", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fe05a9ce34ac86a6", "level": "note", "message": {"text": "Very large file: src/bedrock/engine/drivers/positioning.py (1624 lines)"}, "properties": {"repobilityId": "bab8fe743220634f", "scanner": "scanner-primary", "fingerprint": "fe05a9ce34ac86a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4b4f005bf1c428f8", "level": "note", "message": {"text": "Very large file: src/bedrock/engine/drivers/macro.py (2692 lines)"}, "properties": {"repobilityId": "48ffed4c745e8fc8", "scanner": "scanner-primary", "fingerprint": "4b4f005bf1c428f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bbe8689078cbffb0", "level": "note", "message": {"text": "Very large file: src/bedrock/engine/drivers/agronomy.py (1953 lines)"}, "properties": {"repobilityId": "3907c9e38e389dfb", "scanner": "scanner-primary", "fingerprint": "bbe8689078cbffb0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b09e4b546f8d64b8", "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": "ec3d7f21b7cb71e8", "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": "0ccac31e5d746f29", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "cf17de1d01050a3d", "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": "8bfd672cb48a9032", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-020b4a9ffbf02418", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in tests/unit/test_engine_smoke.py:112"}, "properties": {"repobilityId": "e62fb791144cd7e4", "scanner": "scanner-primary", "fingerprint": "020b4a9ffbf02418", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e2644e72d7e3dba8", "level": "note", "message": {"text": "Legacy-named symbol `append_cot_legacy` in tests/unit/test_store_cot.py:190"}, "properties": {"repobilityId": "1f37c9303291fdd4", "scanner": "scanner-primary", "fingerprint": "e2644e72d7e3dba8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a3bef5cce2b40d72", "level": "note", "message": {"text": "Legacy-named symbol `n_signals_v1` in tests/unit/test_backtest_compare.py:62"}, "properties": {"repobilityId": "c0972a8b721bf0ca", "scanner": "scanner-primary", "fingerprint": "a3bef5cce2b40d72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-85f928b39d3383d2", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in tests/unit/test_fetch_runner.py:150"}, "properties": {"repobilityId": "d2b6039b726bb010", "scanner": "scanner-primary", "fingerprint": "85f928b39d3383d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-28e83246a4ae197e", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in tests/unit/test_setups_hysteresis.py:127"}, "properties": {"repobilityId": "e6ac960ba85ca33d", "scanner": "scanner-primary", "fingerprint": "28e83246a4ae197e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5426ce945983f784", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_event_distance_driver.py:257"}, "properties": {"repobilityId": "7755cfa14ad575f8", "scanner": "scanner-primary", "fingerprint": "5426ce945983f784", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac64c5cd2aa4a8cb", "level": "note", "message": {"text": "Legacy-named symbol `normalize_old` in tests/unit/test_parallel_compare.py:22"}, "properties": {"repobilityId": "ea5f69b253641411", "scanner": "scanner-primary", "fingerprint": "ac64c5cd2aa4a8cb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5bd65944cd909d4b", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in tests/unit/test_fetch_config.py:114"}, "properties": {"repobilityId": "85b31f589d9eeb28", "scanner": "scanner-primary", "fingerprint": "5bd65944cd909d4b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1d5dca1e387d2be7", "level": "note", "message": {"text": "Legacy-named symbol `append_cot_legacy` in tests/unit/test_backtest_store_view_release_at.py:54"}, "properties": {"repobilityId": "453a4681f93a75d8", "scanner": "scanner-primary", "fingerprint": "1d5dca1e387d2be7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cb65f8fb1f8931c5", "level": "note", "message": {"text": "Legacy-named symbol `fetch_cot_legacy` in tests/unit/test_fetch_cot_legacy.py:16"}, "properties": {"repobilityId": "0f2f4ac92d2e1896", "scanner": "scanner-primary", "fingerprint": "cb65f8fb1f8931c5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea2b5709c1c0f9a2", "level": "note", "message": {"text": "Legacy-named symbol `alpha_copy` in tests/unit/test_backtest_phase_d_script.py:167"}, "properties": {"repobilityId": "b6a64faef6899512", "scanner": "scanner-primary", "fingerprint": "ea2b5709c1c0f9a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bcb3d7c88a23740b", "level": "note", "message": {"text": "Legacy-named symbol `fetched_at_v1` in tests/unit/test_store_econ_events.py:182"}, "properties": {"repobilityId": "a98e74508a7afa8b", "scanner": "scanner-primary", "fingerprint": "bcb3d7c88a23740b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-74eed93b0c1724dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/test_backtest_store_view_phase_d.py:207"}, "properties": {"repobilityId": "2036d6532fe1235d", "scanner": "scanner-primary", "fingerprint": "74eed93b0c1724dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0910520f21bbf79b", "level": "note", "message": {"text": "Legacy-named symbol `fetch_cot_legacy` in tests/unit/test_cli_backfill_cot_legacy.py:40"}, "properties": {"repobilityId": "1fc474032be997a6", "scanner": "scanner-primary", "fingerprint": "0910520f21bbf79b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dfbae6f5e217b62a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/bot/test_entry.py:1173"}, "properties": {"repobilityId": "901271af5ae523ab", "scanner": "scanner-primary", "fingerprint": "dfbae6f5e217b62a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48ef5b9c413bd9c7", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/web/test_filter.test.mjs:5"}, "properties": {"repobilityId": "5f3498b90d641fff", "scanner": "scanner-primary", "fingerprint": "48ef5b9c413bd9c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-114b40a39fc36882", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/analyze_capital_requirement.py:176"}, "properties": {"repobilityId": "9da101c97ed8a913", "scanner": "scanner-primary", "fingerprint": "114b40a39fc36882", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-583e959457f5e73b", "level": "note", "message": {"text": "Legacy-named symbol `SELL_old` in scripts/spike_session95a_buy_sell_asymmetry.py:154"}, "properties": {"repobilityId": "c935f68a446f92e3", "scanner": "scanner-primary", "fingerprint": "583e959457f5e73b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-329d4d40de8060c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/analyze_driver_performance.py:46"}, "properties": {"repobilityId": "96789bba51780ed4", "scanner": "scanner-primary", "fingerprint": "329d4d40de8060c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cc1d7626f888066", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in scripts/compute_instrument_data_starts.py:63"}, "properties": {"repobilityId": "9a2cf317902758aa", "scanner": "scanner-primary", "fingerprint": "4cc1d7626f888066", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-66248f12b3c63c5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/compute_instrument_data_starts.py:33"}, "properties": {"repobilityId": "c2f60aacbb5b45aa", "scanner": "scanner-primary", "fingerprint": "66248f12b3c63c5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7e9b14c432f258d", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/ingest_manual_data.py:101"}, "properties": {"repobilityId": "daae8959208afb53", "scanner": "scanner-primary", "fingerprint": "c7e9b14c432f258d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37970cf32bdb7bed", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/sugar_dsr_correlations.py:248"}, "properties": {"repobilityId": "5e5975aede496075", "scanner": "scanner-primary", "fingerprint": "37970cf32bdb7bed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaf65a90fbe9f676", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/backtest_sugar_full.py:40"}, "properties": {"repobilityId": "750adef43128329b", "scanner": "scanner-primary", "fingerprint": "aaf65a90fbe9f676", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c7118ace6c79784", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/sugar_anp_validation.py:71"}, "properties": {"repobilityId": "488fd7ee97c005e4", "scanner": "scanner-primary", "fingerprint": "1c7118ace6c79784", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99994ad539152ce8", "level": "note", "message": {"text": "Legacy-named symbol `fetch_cot_legacy` in scripts/backfill_cftc_name_drift.py:34"}, "properties": {"repobilityId": "0e19aee240435513", "scanner": "scanner-primary", "fingerprint": "99994ad539152ce8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d732109f37fa1395", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in scripts/report_data_coverage.py:73"}, "properties": {"repobilityId": "9f571555c6b24061", "scanner": "scanner-primary", "fingerprint": "d732109f37fa1395", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-da4c95f801fd3120", "level": "none", "message": {"text": "Commented-code block (7 lines) in web/assets/admin.js:3"}, "properties": {"repobilityId": "43962306f7b6db8c", "scanner": "scanner-primary", "fingerprint": "da4c95f801fd3120", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6544339e52789d6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web/assets/admin.js:99"}, "properties": {"repobilityId": "7a65ffdf8e8223be", "scanner": "scanner-primary", "fingerprint": "a6544339e52789d6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1ffc392de6d7fe80", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/assets/app.js:1"}, "properties": {"repobilityId": "6c6e2716da9af396", "scanner": "scanner-primary", "fingerprint": "1ffc392de6d7fe80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfcf4fe53c31131d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 web/assets/app.js:680"}, "properties": {"repobilityId": "a8ad9f88f4ffdd28", "scanner": "scanner-primary", "fingerprint": "cfcf4fe53c31131d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ba0c470c12fb6fc0", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in web/assets/source_labels.js:41"}, "properties": {"repobilityId": "6d0fa32c85404537", "scanner": "scanner-primary", "fingerprint": "ba0c470c12fb6fc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6df1d339a264b333", "level": "none", "message": {"text": "Commented-code block (5 lines) in web/assets/source_labels.js:1"}, "properties": {"repobilityId": "f65ee7d26a8b6933", "scanner": "scanner-primary", "fingerprint": "6df1d339a264b333", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66b558b7bfe31ac3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/systemd/generator.py:30"}, "properties": {"repobilityId": "06e7590d6a8ff492", "scanner": "scanner-primary", "fingerprint": "66b558b7bfe31ac3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5b30a3aa21c3252", "level": "note", "message": {"text": "Legacy-named symbol `only_v1` in src/bedrock/backtest/compare.py:10"}, "properties": {"repobilityId": "a29bf9bff69a5850", "scanner": "scanner-primary", "fingerprint": "d5b30a3aa21c3252", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2a1d9bf0a8cc00c9", "level": "note", "message": {"text": "Legacy-named symbol `only_old` in src/bedrock/parallel/compare.py:20"}, "properties": {"repobilityId": "09c403dd89af916a", "scanner": "scanner-primary", "fingerprint": "2a1d9bf0a8cc00c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2317d73eca524fe6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/bedrock/bot/exit.py:161"}, "properties": {"repobilityId": "9df3c86af5218cc9", "scanner": "scanner-primary", "fingerprint": "2317d73eca524fe6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fb6344398af8a17", "level": "note", "message": {"text": "Legacy-named symbol `skipped_old` in src/bedrock/bot/entry.py:1112"}, "properties": {"repobilityId": "e57cf237bcab31eb", "scanner": "scanner-primary", "fingerprint": "3fb6344398af8a17", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-41f23d582667d451", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/bedrock/bot/entry.py:177"}, "properties": {"repobilityId": "50641a5c13902930", "scanner": "scanner-primary", "fingerprint": "41f23d582667d451", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e6b6b500f03ccc8", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bedrock/bot/comms.py:136"}, "properties": {"repobilityId": "84b856335387c07e", "scanner": "scanner-primary", "fingerprint": "4e6b6b500f03ccc8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a0cb4f0061bb3cd1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/config/fetch.py:65"}, "properties": {"repobilityId": "cd7933183272ea54", "scanner": "scanner-primary", "fingerprint": "a0cb4f0061bb3cd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49bbdc94e13d90f9", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in src/bedrock/config/fetch_runner.py:233"}, "properties": {"repobilityId": "66a60bee98f0317c", "scanner": "scanner-primary", "fingerprint": "49bbdc94e13d90f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3e139a814020f5d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/config/fetch_runner.py:263"}, "properties": {"repobilityId": "513b63f7c9932cc7", "scanner": "scanner-primary", "fingerprint": "3e139a814020f5d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce94b7b3524b2fe4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/config/instruments.py:281"}, "properties": {"repobilityId": "e9684de4d03655fb", "scanner": "scanner-primary", "fingerprint": "ce94b7b3524b2fe4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e70caa004ad0f2b", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/bedrock/setups/levels.py:279"}, "properties": {"repobilityId": "dd5d6fd1e95d8c1b", "scanner": "scanner-primary", "fingerprint": "6e70caa004ad0f2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bc8f47c482cb9e1a", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/bedrock/setups/hysteresis.py:206"}, "properties": {"repobilityId": "de22cf170092ced3", "scanner": "scanner-primary", "fingerprint": "bc8f47c482cb9e1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c466d22b688b4719", "level": "note", "message": {"text": "Stub function `latest_observation_ts` (body is just `pass`/`return`) \u2014 src/bedrock/cli/fetch.py:116"}, "properties": {"repobilityId": "47b8bd7688bf98cc", "scanner": "scanner-primary", "fingerprint": "c466d22b688b4719", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-56b6f74e080f3ffd", "level": "note", "message": {"text": "Legacy-named symbol `fetch_cot_legacy` in src/bedrock/cli/backfill.py:41"}, "properties": {"repobilityId": "c0d13f6422913379", "scanner": "scanner-primary", "fingerprint": "56b6f74e080f3ffd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-41cbfa86b42db4c4", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 src/bedrock/cli/systemd.py:158"}, "properties": {"repobilityId": "c0ceeebe80b92fed", "scanner": "scanner-primary", "fingerprint": "41cbfa86b42db4c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-562d730918232abb", "level": "note", "message": {"text": "Legacy-named symbol `label_v1` in src/bedrock/cli/backtest.py:256"}, "properties": {"repobilityId": "93683a6caa24c94d", "scanner": "scanner-primary", "fingerprint": "562d730918232abb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5427ca1db407e1b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/cli/signals_all.py:117"}, "properties": {"repobilityId": "a7b3b3624e962d2a", "scanner": "scanner-primary", "fingerprint": "5427ca1db407e1b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b157463935a322e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/bedrock/signal_server/bot_adapter.py:41"}, "properties": {"repobilityId": "1fd1f5abd644469d", "scanner": "scanner-primary", "fingerprint": "9b157463935a322e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b088859c82eece2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/signal_server/config.py:20"}, "properties": {"repobilityId": "62322ea0fb8c2637", "scanner": "scanner-primary", "fingerprint": "4b088859c82eece2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9148075a7a9310bb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/signal_server/endpoints/prices.py:1"}, "properties": {"repobilityId": "245ee18211967238", "scanner": "scanner-primary", "fingerprint": "9148075a7a9310bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e6853c3869843c8", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in src/bedrock/signal_server/endpoints/ui.py:900"}, "properties": {"repobilityId": "9582b118c155c419", "scanner": "scanner-primary", "fingerprint": "9e6853c3869843c8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9c0f9e26f77753f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/signal_server/endpoints/ui.py:951"}, "properties": {"repobilityId": "d25589d492c0a795", "scanner": "scanner-primary", "fingerprint": "9c0f9e26f77753f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff8bac9358ba962d", "level": "note", "message": {"text": "Legacy-named symbol `model_copy` in src/bedrock/orchestrator/signals.py:362"}, "properties": {"repobilityId": "e14bc61a2fa0f603", "scanner": "scanner-primary", "fingerprint": "ff8bac9358ba962d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b84d6bbea20baf29", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/bedrock/orchestrator/signals.py:160"}, "properties": {"repobilityId": "326a37635a46f4e5", "scanner": "scanner-primary", "fingerprint": "b84d6bbea20baf29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afb1e543e2e4c006", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/bedrock/fetch/wasde.py:379"}, "properties": {"repobilityId": "6511f943b65398eb", "scanner": "scanner-primary", "fingerprint": "afb1e543e2e4c006", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6035b5479f446176", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/bedrock/fetch/base.py:97"}, "properties": {"repobilityId": "d9dc2a4d35980955", "scanner": "scanner-primary", "fingerprint": "6035b5479f446176", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce49e71a11453cc7", "level": "note", "message": {"text": "Legacy-named symbol `fetch_cot_legacy` in src/bedrock/fetch/cot_cftc.py:191"}, "properties": {"repobilityId": "dff733b3fe3c9389", "scanner": "scanner-primary", "fingerprint": "ce49e71a11453cc7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8f6eeb0e1d597bf0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/fetch/cot_cftc.py:79"}, "properties": {"repobilityId": "3bdcb4224388ced1", "scanner": "scanner-primary", "fingerprint": "8f6eeb0e1d597bf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aebb8004e1c3d57e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/fetch/nass.py:57"}, "properties": {"repobilityId": "1ee5f10985244855", "scanner": "scanner-primary", "fingerprint": "aebb8004e1c3d57e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68f698f449b60c60", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/fetch/cot_ice.py:61"}, "properties": {"repobilityId": "a66de4ee5f8b8b70", "scanner": "scanner-primary", "fingerprint": "68f698f449b60c60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1223fba264fcd1a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/engine/engine.py:496"}, "properties": {"repobilityId": "38c0e499a4846bd8", "scanner": "scanner-primary", "fingerprint": "f1223fba264fcd1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a7d6d4ca1fa34a4", "level": "note", "message": {"text": "Legacy-named symbol `cot_legacy` in src/bedrock/engine/drivers/positioning.py:1179"}, "properties": {"repobilityId": "7ac088f187ffef70", "scanner": "scanner-primary", "fingerprint": "9a7d6d4ca1fa34a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e0dcc2b02f9bdfeb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/bedrock/engine/drivers/positioning.py:1498"}, "properties": {"repobilityId": "816bb430e18d2865", "scanner": "scanner-primary", "fingerprint": "e0dcc2b02f9bdfeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d80a4d764b68a61c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/engine/drivers/agri.py:199"}, "properties": {"repobilityId": "d3e5c3850077c0ad", "scanner": "scanner-primary", "fingerprint": "d80a4d764b68a61c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5f84cee1f07446e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/bedrock/engine/drivers/macro_bunke3.py:710"}, "properties": {"repobilityId": "395678d82efd5245", "scanner": "scanner-primary", "fingerprint": "c5f84cee1f07446e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c45c5e2b96ca7caf", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/bedrock/engine/drivers/macro.py:931"}, "properties": {"repobilityId": "8cfbe4db52704be4", "scanner": "scanner-primary", "fingerprint": "c45c5e2b96ca7caf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edc0bdfac0f9d18c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/engine/drivers/macro_bunke4.py:133"}, "properties": {"repobilityId": "04bbddc3106bc995", "scanner": "scanner-primary", "fingerprint": "edc0bdfac0f9d18c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b4962499b85762a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/bedrock/engine/drivers/agronomy.py:1081"}, "properties": {"repobilityId": "f807ae557841f004", "scanner": "scanner-primary", "fingerprint": "5b4962499b85762a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eafc3188c36bb02", "level": "none", "message": {"text": "3 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "bd934ba112b02ffa", "scanner": "scanner-primary", "fingerprint": "2eafc3188c36bb02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "a26fcc1b566a5d4e", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "bee3dbc9cfe0bd5e", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "534fce40780283c0", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "b054329a6576be08", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "3769cfd47f3d47cc", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "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": "9d451793a37135d1", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-0027e313ade46c8f", "level": "note", "message": {"text": "Near-duplicate function bodies in 7 places"}, "properties": {"repobilityId": "9750a3ef4ac1185e", "scanner": "scanner-primary", "fingerprint": "0027e313ade46c8f", "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": "509aca31bcf3cca3", "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": "eae3fca64b433954", "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": "1c9368977a46e4f5", "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": "0ae1ec73129fc726", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-805362a4b2e61548", "level": "note", "message": {"text": "Near-duplicate function bodies in 28 places"}, "properties": {"repobilityId": "736369b67fd3d3dc", "scanner": "scanner-primary", "fingerprint": "805362a4b2e61548", "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": "d0def58bf63da48e", "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": "00c6678b3085ccd6", "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": "2771e148a6e12479", "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": "70dcc93b7e9afa11", "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": "7835ff46d4ea6706", "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": "43ce091fd59365ce", "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": "e748bde089debe50", "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": "0adf2a47e6c36db3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-7569de4538b5c19a", "level": "note", "message": {"text": "Unused endpoint: POST /kill"}, "properties": {"repobilityId": "d93121d75e2efea5", "scanner": "scanner-primary", "fingerprint": "7569de4538b5c19a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d5f32d15d7d328fd", "level": "note", "message": {"text": "Unused endpoint: POST /clear_kills"}, "properties": {"repobilityId": "3a802016abfc25d5", "scanner": "scanner-primary", "fingerprint": "d5f32d15d7d328fd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d6fc0a1a6d2c7e9", "level": "note", "message": {"text": "Unused endpoint: GET /kills"}, "properties": {"repobilityId": "1b5797d1f8d972b6", "scanner": "scanner-primary", "fingerprint": "6d6fc0a1a6d2c7e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6236b283b79811b8", "level": "note", "message": {"text": "Unused endpoint: POST /upload"}, "properties": {"repobilityId": "c938285f65b4e649", "scanner": "scanner-primary", "fingerprint": "6236b283b79811b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4348701abc4487e9", "level": "note", "message": {"text": "Unused endpoint: POST /push-alert"}, "properties": {"repobilityId": "5aadbe06ccfa1586", "scanner": "scanner-primary", "fingerprint": "4348701abc4487e9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bd004ef04a691272", "level": "note", "message": {"text": "Unused endpoint: POST /push-agri-alert"}, "properties": {"repobilityId": "297185252a53c700", "scanner": "scanner-primary", "fingerprint": "bd004ef04a691272", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a5ea9f41041a8a7e", "level": "note", "message": {"text": "Unused endpoint: POST /push-prices"}, "properties": {"repobilityId": "aa506b0e04669854", "scanner": "scanner-primary", "fingerprint": "a5ea9f41041a8a7e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2631495c43f2a81", "level": "note", "message": {"text": "Unused endpoint: GET /prices"}, "properties": {"repobilityId": "84344777655e8b69", "scanner": "scanner-primary", "fingerprint": "e2631495c43f2a81", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6c45b14190c8385b", "level": "note", "message": {"text": "Unused endpoint: GET /signals"}, "properties": {"repobilityId": "e5f9a4c42af56f60", "scanner": "scanner-primary", "fingerprint": "6c45b14190c8385b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-30f4cf65031f8748", "level": "note", "message": {"text": "Unused endpoint: GET /agri-signals"}, "properties": {"repobilityId": "83b58c094134f5cb", "scanner": "scanner-primary", "fingerprint": "30f4cf65031f8748", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f923fae51d8cc592", "level": "note", "message": {"text": "Unused endpoint: POST /invalidate"}, "properties": {"repobilityId": "99b607e5dccf64df", "scanner": "scanner-primary", "fingerprint": "f923fae51d8cc592", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b076deaf2a7d866", "level": "note", "message": {"text": "Unused endpoint: GET /admin/rules/<instrument_id>"}, "properties": {"repobilityId": "49fa4f4b67dd72b9", "scanner": "scanner-primary", "fingerprint": "6b076deaf2a7d866", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b888791bb338bf2", "level": "note", "message": {"text": "Unused endpoint: PUT /admin/rules/<instrument_id>"}, "properties": {"repobilityId": "87a40214bea70577", "scanner": "scanner-primary", "fingerprint": "6b888791bb338bf2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fccf05e0c643fb36", "level": "note", "message": {"text": "Unused endpoint: GET /admin/logs"}, "properties": {"repobilityId": "9ced63012bd5d5e1", "scanner": "scanner-primary", "fingerprint": "fccf05e0c643fb36", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5f73bc92e6b775f7", "level": "note", "message": {"text": "Unused endpoint: POST /admin/rules/<instrument_id>/dry-run"}, "properties": {"repobilityId": "1c80078634e40f98", "scanner": "scanner-primary", "fingerprint": "5f73bc92e6b775f7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7dbc43ae2674d237", "level": "note", "message": {"text": "Unused endpoint: GET /admin/drivers"}, "properties": {"repobilityId": "c4a9afbbfa54c1fb", "scanner": "scanner-primary", "fingerprint": "7dbc43ae2674d237", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "d13e1ae4f1eea04d", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c05db1f264d62a94", "level": "note", "message": {"text": "Unused endpoint: GET /widget"}, "properties": {"repobilityId": "15296f872a1e0170", "scanner": "scanner-primary", "fingerprint": "c05db1f264d62a94", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-953ec1a0ee6df50d", "level": "note", "message": {"text": "Unused endpoint: GET /admin"}, "properties": {"repobilityId": "9b3775497b316166", "scanner": "scanner-primary", "fingerprint": "953ec1a0ee6df50d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-28143bc207f17a50", "level": "note", "message": {"text": "Unused endpoint: GET /assets/<path:subpath>"}, "properties": {"repobilityId": "c2ba0d7d37e17b9b", "scanner": "scanner-primary", "fingerprint": "28143bc207f17a50", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-60a2242aa9ca8310", "level": "note", "message": {"text": "Unused endpoint: GET /api/ui/widget"}, "properties": {"repobilityId": "37357c7777e3e76a", "scanner": "scanner-primary", "fingerprint": "60a2242aa9ca8310", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e06dbc8594feee66", "level": "note", "message": {"text": "Unused endpoint: GET /api/ui/decisions"}, "properties": {"repobilityId": "4fb2c04564ea4254", "scanner": "scanner-primary", "fingerprint": "e06dbc8594feee66", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-90da854df4ab9d0b", "level": "note", "message": {"text": "Unused endpoint: GET /api/ui/events"}, "properties": {"repobilityId": "20744729fdc87c86", "scanner": "scanner-primary", "fingerprint": "90da854df4ab9d0b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}