{"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-93eef210ebfbbc64", "name": "Possibly dead Python function: calc_position_size", "shortDescription": {"text": "Possibly dead Python function: calc_position_size"}, "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-4f7635ab62ef5cac", "name": "Possibly dead Python function: format_havuz", "shortDescription": {"text": "Possibly dead Python function: format_havuz"}, "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-38cfdf2e01492166", "name": "Possibly dead Python function: cmd_list", "shortDescription": {"text": "Possibly dead Python function: cmd_list"}, "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-d098ba340f70c0dc", "name": "Possibly dead Python function: cmd_show", "shortDescription": {"text": "Possibly dead Python function: cmd_show"}, "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-dc7e26fd56a62ad9", "name": "Possibly dead Python function: cmd_add", "shortDescription": {"text": "Possibly dead Python function: cmd_add"}, "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-657306b2bdac4ad9", "name": "Possibly dead Python function: cmd_remove", "shortDescription": {"text": "Possibly dead Python function: cmd_remove"}, "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-815af81d1eccfef1", "name": "Possibly dead Python function: cmd_refresh", "shortDescription": {"text": "Possibly dead Python function: cmd_refresh"}, "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-3c139328af0f7773", "name": "Possibly dead Python function: cmd_cleanup", "shortDescription": {"text": "Possibly dead Python function: cmd_cleanup"}, "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-765e045f6efc32eb", "name": "Possibly dead Python function: cmd_cooldown", "shortDescription": {"text": "Possibly dead Python function: cmd_cooldown"}, "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-d5b394554f9f30a8", "name": "Possibly dead Python function: history_append", "shortDescription": {"text": "Possibly dead Python function: history_append"}, "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-192e74ad0025703a", "name": "Possibly dead Python function: aggressive_strateji", "shortDescription": {"text": "Possibly dead Python function: aggressive_strateji"}, "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-0adc4a1164a1bad4", "name": "Possibly dead Python function: balanced_strateji", "shortDescription": {"text": "Possibly dead Python function: balanced_strateji"}, "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-3eacd1a361db53b4", "name": "Possibly dead Python function: dividend_strateji", "shortDescription": {"text": "Possibly dead Python function: dividend_strateji"}, "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-55389e1036d3e595", "name": "Possibly dead Python function: temettu_ve_kritik_haber_kontrolu", "shortDescription": {"text": "Possibly dead Python function: temettu_ve_kritik_haber_kontrolu"}, "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-fcd682ce1d697179", "name": "Possibly dead Python function: format_memory_context", "shortDescription": {"text": "Possibly dead Python function: format_memory_context"}, "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-a9bb64dc33784df7", "name": "Possibly dead Python function: check_correlation", "shortDescription": {"text": "Possibly dead Python function: check_correlation"}, "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-51b774c418662564", "name": "Possibly dead Python function: detect_tenkan_bounce", "shortDescription": {"text": "Possibly dead Python function: detect_tenkan_bounce"}, "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-6a74bdc47eac6842", "name": "Possibly dead Python function: detect_sma50_bounce", "shortDescription": {"text": "Possibly dead Python function: detect_sma50_bounce"}, "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-be263e96a3eac61f", "name": "Possibly dead Python function: detect_consolidation_breakout", "shortDescription": {"text": "Possibly dead Python function: detect_consolidation_breakout"}, "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-fe2d81bfdb902c2b", "name": "Possibly dead Python function: detect_kijun_bounce_v2", "shortDescription": {"text": "Possibly dead Python function: detect_kijun_bounce_v2"}, "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-5acf03c7d01babbb", "name": "Possibly dead Python function: detect_nr7_setup", "shortDescription": {"text": "Possibly dead Python function: detect_nr7_setup"}, "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-e18148594ca79b04", "name": "Possibly dead Python function: score_balanced", "shortDescription": {"text": "Possibly dead Python function: score_balanced"}, "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-00e65321ab5c6107", "name": "Possibly dead Python function: score_dividend", "shortDescription": {"text": "Possibly dead Python function: score_dividend"}, "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-82223f2b100b5ddb", "name": "Possibly dead Python function: score_aggressive", "shortDescription": {"text": "Possibly dead Python function: score_aggressive"}, "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-7fc6dad890e9a5a4", "name": "Possibly dead Python function: update_lifecycle", "shortDescription": {"text": "Possibly dead Python function: update_lifecycle"}, "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-8ea9332ad956d120", "name": "Possibly dead Python function: archive_theme", "shortDescription": {"text": "Possibly dead Python function: archive_theme"}, "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-ef09f7781f064be8", "name": "Possibly dead Python function: all_catalysts", "shortDescription": {"text": "Possibly dead Python function: all_catalysts"}, "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-53deac7e6302bc30", "name": "Stray `console.log` in TS/JS \u2014 scripts/finzora-bot.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/finzora-bot.js:77"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "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-d8bb3222bedf36e6", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/dashboard.js:422", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/dashboard.js:422"}, "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-b3dd51d4b939f458", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/research/index.html:494", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/research/index.html:494"}, "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-699a64e8bb0db50e", "name": "Insecure pattern 'direct_innerhtml_assignment' in reports/research/DC_CHAIN_2026-04-19.html:1335", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reports/research/DC_CHAIN_2026-04-19.html:1335"}, "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-a6d4ec6abe5ff7ad", "name": "Insecure pattern 'direct_innerhtml_assignment' in reports/research/SPACE_CHAIN_2026-04-27.html:1289", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reports/research/SPACE_CHAIN_2026-04-27.html:1289"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64414febab4b047c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1688bd05b37ed123", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ed2f168de537937", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f0026d4f221ce954", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-266cbaa845689af1", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d5b0f0c4265e560", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34c83f8b739e1e56", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5407a45cc9381b4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb62dc35e97beeaf", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9525fb16650d23f", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa3d3060790b4c0b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ebf914caf3a18c3", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9eb2116452bbc3e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb8438018f10544f", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60279b34e1cf145f", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dfa6e7bb08d150b8", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1773ea27523d5b01", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-888be4984194a7ab", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0971f46d833ae604", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4bd187272ac1e401", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce8cafe1bc5deefd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47916e61cb966aaa", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71c26805ec6e1926", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13f8d1c5b088b006", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28b7704de6eb561a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2cfb47c32d75752", "name": "Very large file: scripts/telegram_bot.py (2943 lines)", "shortDescription": {"text": "Very large file: scripts/telegram_bot.py (2943 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-e4e103b52afc2b9a", "name": "Very large file: agent/position_manager.py (1571 lines)", "shortDescription": {"text": "Very large file: agent/position_manager.py (1571 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-8e4d505eccbe60ba", "name": "Very large file: agent/scanners/thematic.py (1207 lines)", "shortDescription": {"text": "Very large file: agent/scanners/thematic.py (1207 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-4852548d2cbf5968", "name": "Very large file: agent/legacy/orchestrator.py (2756 lines)", "shortDescription": {"text": "Very large file: agent/legacy/orchestrator.py (2756 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 1721 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 12 placeholder/mock markers across 5 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-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-ad77edf5301d1068", "name": "Legacy-named symbol `original_legacy` in tests/conftest.py:37", "shortDescription": {"text": "Legacy-named symbol `original_legacy` in tests/conftest.py:37"}, "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-eccb0e998529fde3", "name": "Commented-code block (6 lines) in tests/test_thm_correction.py:235", "shortDescription": {"text": "Commented-code block (6 lines) in tests/test_thm_correction.py:235"}, "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-5f8deb5792ce91fd", "name": "Legacy-named symbol `market_v1` in tests/test_polymarket_snapshots.py:341", "shortDescription": {"text": "Legacy-named symbol `market_v1` in tests/test_polymarket_snapshots.py:341"}, "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-aee0d29ac42db304", "name": "Commented-code block (5 lines) in tests/test_thm_policy.py:307", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_thm_policy.py:307"}, "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-8b4960ccf04d82cf", "name": "Legacy-named symbol `test_partial_exit_formatted_legacy` in tests/test_thm_integration.py:84", "shortDescription": {"text": "Legacy-named symbol `test_partial_exit_formatted_legacy` in tests/test_thm_integration.py:84"}, "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-e709285f2ca9ab7d", "name": "Legacy-named symbol `test_scan_with_mocked_legacy` in tests/test_scanner_analyst_revisions.py:222", "shortDescription": {"text": "Legacy-named symbol `test_scan_with_mocked_legacy` in tests/test_scanner_analyst_revisions.py:222"}, "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-45258a901fb563c2", "name": "Legacy-named symbol `test_stale_old` in tests/test_polymarket.py:447", "shortDescription": {"text": "Legacy-named symbol `test_stale_old` in tests/test_polymarket.py:447"}, "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-e1a2a02376585705", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/dashboard.js:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/dashboard.js:59"}, "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-772968a9d313eea4", "name": "Commented-code block (6 lines) in scripts/migrate_2026_05_22_faz_c_energy_clean.py:157", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/migrate_2026_05_22_faz_c_energy_clean.py:157"}, "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-e7fd37184020a296", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/_cleanup_secrets.py:134", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_cleanup_secrets.py:134"}, "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-d0883dd864cb794c", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/consistency_check.py:239", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/consistency_check.py:239"}, "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-30fb4b66ebdb04dc", "name": "Commented-code block (5 lines) in scripts/signal_broadcaster.py:181", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/signal_broadcaster.py:181"}, "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-ad695200411077cb", "name": "Commented-code block (10 lines) in scripts/telegram_bot.py:2508", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/telegram_bot.py:2508"}, "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-b378c471c14cb338", "name": "Legacy-named symbol `pos_copy` in scripts/k_rules_common.py:83", "shortDescription": {"text": "Legacy-named symbol `pos_copy` in scripts/k_rules_common.py:83"}, "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-abaaedad805edb60", "name": "Legacy-named symbol `e_old` in scripts/weekly_pre_check.py:302", "shortDescription": {"text": "Legacy-named symbol `e_old` in scripts/weekly_pre_check.py:302"}, "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-8ed26526171d0d22", "name": "Commented-code block (5 lines) in scripts/_archive/swing_full_universe.py:117", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/_archive/swing_full_universe.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-50da4cb7d2ed06e3", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/_archive/daily_update_3portfolio_pre_2026_05_13.py:827", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_archive/daily_update_3portfolio_pre_2026_05_13.py:827"}, "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-7fd45705d63c38b5", "name": "Legacy-named symbol `kijun_bounce_v2` in scripts/legacy/swing_entry_engine.py:274", "shortDescription": {"text": "Legacy-named symbol `kijun_bounce_v2` in scripts/legacy/swing_entry_engine.py:274"}, "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-d15dca081a39c845", "name": "Commented-code block (8 lines) in scripts/legacy/swing_entry_engine.py:809", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/legacy/swing_entry_engine.py:809"}, "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-434951a25d410ad9", "name": "Commented-code block (6 lines) in agent/themes.py:197", "shortDescription": {"text": "Commented-code block (6 lines) in agent/themes.py:197"}, "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-b4af8a5f20a2b7c8", "name": "Commented-code block (9 lines) in agent/watchlist.py:162", "shortDescription": {"text": "Commented-code block (9 lines) in agent/watchlist.py:162"}, "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-36ae3092a2dfedb9", "name": "Commented-code block (5 lines) in agent/position_manager.py:310", "shortDescription": {"text": "Commented-code block (5 lines) in agent/position_manager.py:310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfd3fe5f834a8214", "name": "Commented-code block (5 lines) in agent/tearsheet.py:307", "shortDescription": {"text": "Commented-code block (5 lines) in agent/tearsheet.py:307"}, "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-767970cc461e6612", "name": "Commented-code block (5 lines) in agent/thm/backtest.py:140", "shortDescription": {"text": "Commented-code block (5 lines) in agent/thm/backtest.py:140"}, "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-c67d3a3e095b46b9", "name": "Commented-code block (8 lines) in agent/thm/state.py:171", "shortDescription": {"text": "Commented-code block (8 lines) in agent/thm/state.py:171"}, "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-fe2d6f32e5133ae8", "name": "Commented-code block (5 lines) in agent/scanners/thematic.py:138", "shortDescription": {"text": "Commented-code block (5 lines) in agent/scanners/thematic.py:138"}, "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-b885d57dab81d963", "name": "Commented-code block (7 lines) in agent/scanners/fair_value.py:257", "shortDescription": {"text": "Commented-code block (7 lines) in agent/scanners/fair_value.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-3978b045a814f411", "name": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/rule_updater.py:367", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/rule_updater.py:367"}, "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-a45e5cc3ade747b8", "name": "Commented-code block (5 lines) in agent/legacy/fmp_client.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/fmp_client.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-3e3d91f98b3d1654", "name": "Commented-code block (7 lines) in agent/legacy/closing_enrichment.py:297", "shortDescription": {"text": "Commented-code block (7 lines) in agent/legacy/closing_enrichment.py:297"}, "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-152468de222388c1", "name": "Commented-code block (6 lines) in agent/legacy/_config.py:22", "shortDescription": {"text": "Commented-code block (6 lines) in agent/legacy/_config.py:22"}, "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-2d9e161b72550633", "name": "Commented-code block (5 lines) in agent/legacy/swing_manager.py:66", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/swing_manager.py:66"}, "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-0477ff8d40bfa252", "name": "Commented-code block (6 lines) in agent/legacy/orchestrator.py:166", "shortDescription": {"text": "Commented-code block (6 lines) in agent/legacy/orchestrator.py:166"}, "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-47690c75602b60cd", "name": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/orchestrator.py:1109", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/orchestrator.py:1109"}, "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-6ad719d05377f9a3", "name": "Legacy-named symbol `eps_old` in agent/legacy/conviction_scorer.py:138", "shortDescription": {"text": "Legacy-named symbol `eps_old` in agent/legacy/conviction_scorer.py:138"}, "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-6a223d344f5b2892", "name": "Legacy-named symbol `score_pending_predictions_v2` in agent/legacy/prediction_logger.py:376", "shortDescription": {"text": "Legacy-named symbol `score_pending_predictions_v2` in agent/legacy/prediction_logger.py:376"}, "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-866ea1ec6255d289", "name": "Commented-code block (6 lines) in agent/legacy/prediction_logger.py:341", "shortDescription": {"text": "Commented-code block (6 lines) in agent/legacy/prediction_logger.py:341"}, "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-fe225a31489f0c54", "name": "Commented-code block (5 lines) in agent/legacy/darwin_evolution.py:32", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/darwin_evolution.py:32"}, "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-3d7049cc5c3e073a", "name": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/darwin_evolution.py:666", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/darwin_evolution.py:666"}, "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-1933b8e5a90aba8b", "name": "Commented-code block (5 lines) in agent/legacy/memory_manager.py:115", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/memory_manager.py:115"}, "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-45cb7611fcb8a6c6", "name": "Commented-code block (6 lines) in agent/legacy/observability.py:312", "shortDescription": {"text": "Commented-code block (6 lines) in agent/legacy/observability.py:312"}, "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-cfdf0bbe1e7f8262", "name": "Commented-code block (5 lines) in agent/legacy/thematic_calendar.py:38", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/thematic_calendar.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43d25c4ca7444ea6", "name": "Commented-code block (5 lines) in agent/legacy/analist_takip/config.py:71", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/analist_takip/config.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-e462b5b1b68f1682", "name": "Commented-code block (5 lines) in agent/legacy/analist_takip/signal_analyzer.py:473", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/analist_takip/signal_analyzer.py:473"}, "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-f8fd4d892287bb3a", "name": "Legacy-named symbol `mv_copy` in agent/legacy/valuation/framework.py:88", "shortDescription": {"text": "Legacy-named symbol `mv_copy` in agent/legacy/valuation/framework.py:88"}, "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-e4a6d3b05010ddb9", "name": "Commented-code block (10 lines) in agent/legacy/valuation/tuning.py:15", "shortDescription": {"text": "Commented-code block (10 lines) in agent/legacy/valuation/tuning.py:15"}, "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-bbbd601aec32f161", "name": "Commented-code block (5 lines) in agent/legacy/valuation/classifier.py:292", "shortDescription": {"text": "Commented-code block (5 lines) in agent/legacy/valuation/classifier.py:292"}, "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-29737ac516f66366", "name": "Legacy-named symbol `etf_old` in agent/legacy/valuation/cycle_detector.py:152", "shortDescription": {"text": "Legacy-named symbol `etf_old` in agent/legacy/valuation/cycle_detector.py:152"}, "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-aa7c3a2faf43f0b8", "name": "Stub function `fiyat\u0131` (body is just `pass`/`return`) \u2014 agent/legacy/valuation/methods/registry.py:708", "shortDescription": {"text": "Stub function `fiyat\u0131` (body is just `pass`/`return`) \u2014 agent/legacy/valuation/methods/registry.py:708"}, "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-883e36433cadef88", "name": "Commented-code block (7 lines) in agent/reports/closing.py:543", "shortDescription": {"text": "Commented-code block (7 lines) in agent/reports/closing.py:543"}, "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-c4c23ad0d175315b", "name": "Commented-code block (5 lines) in agent/reports/morning.py:473", "shortDescription": {"text": "Commented-code block (5 lines) in agent/reports/morning.py:473"}, "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-b05c451d660bfd82", "name": "Commented-code block (5 lines) in agent/reports/stats.py:316", "shortDescription": {"text": "Commented-code block (5 lines) in agent/reports/stats.py:316"}, "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-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/migrate_2026_05_20_duplicate_themes.py:main, scripts/migrate_2026_05_20_ai_hardware_pilot.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-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:\nagent/legacy/analist_takip/revision_fetcher.py:fetch_price_target_revisions, agent/legacy/analist_takip/revision_fetcher.py:fetch_grades, agent/legacy/analist_takip/revision_fetcher.py:fetch_grades_latest_news\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-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nagent/legacy/valuation/backtest.py:fmp_get, agent/legacy/valuation/classifier.py:fmp_get, agent/legacy/valuation/cycle_detector.py:fmp_get, agent/legacy/valuation/market_regime.py:fmp_get\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/23623"}, "properties": {"repository": "zeynelgun-afk/portfolio-tracker", "repoUrl": "https://github.com/zeynelgun-afk/portfolio-tracker", "branch": "main"}, "results": [{"ruleId": "scanner-93eef210ebfbbc64", "level": "note", "message": {"text": "Possibly dead Python function: calc_position_size"}, "properties": {"repobilityId": "40b61aa93cc939b0", "scanner": "scanner-primary", "fingerprint": "93eef210ebfbbc64", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/swing_ichimoku.py:452"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f7635ab62ef5cac", "level": "note", "message": {"text": "Possibly dead Python function: format_havuz"}, "properties": {"repobilityId": "0482d1b218ad9ec2", "scanner": "scanner-primary", "fingerprint": "4f7635ab62ef5cac", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/telegram_bot.py:1345"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-38cfdf2e01492166", "level": "note", "message": {"text": "Possibly dead Python function: cmd_list"}, "properties": {"repobilityId": "bd09044da90857da", "scanner": "scanner-primary", "fingerprint": "38cfdf2e01492166", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d098ba340f70c0dc", "level": "note", "message": {"text": "Possibly dead Python function: cmd_show"}, "properties": {"repobilityId": "a65c825fe9b6238d", "scanner": "scanner-primary", "fingerprint": "d098ba340f70c0dc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc7e26fd56a62ad9", "level": "note", "message": {"text": "Possibly dead Python function: cmd_add"}, "properties": {"repobilityId": "3b364c25c0f2804a", "scanner": "scanner-primary", "fingerprint": "dc7e26fd56a62ad9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:120"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-657306b2bdac4ad9", "level": "note", "message": {"text": "Possibly dead Python function: cmd_remove"}, "properties": {"repobilityId": "d39b296d61583f94", "scanner": "scanner-primary", "fingerprint": "657306b2bdac4ad9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:194"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-815af81d1eccfef1", "level": "note", "message": {"text": "Possibly dead Python function: cmd_refresh"}, "properties": {"repobilityId": "31c19b7b4b453346", "scanner": "scanner-primary", "fingerprint": "815af81d1eccfef1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:207"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3c139328af0f7773", "level": "note", "message": {"text": "Possibly dead Python function: cmd_cleanup"}, "properties": {"repobilityId": "d9945c7fa5e5ad21", "scanner": "scanner-primary", "fingerprint": "3c139328af0f7773", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:261"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-765e045f6efc32eb", "level": "note", "message": {"text": "Possibly dead Python function: cmd_cooldown"}, "properties": {"repobilityId": "1401d970e6218972", "scanner": "scanner-primary", "fingerprint": "765e045f6efc32eb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/watchlist_manager.py:325"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d5b394554f9f30a8", "level": "note", "message": {"text": "Possibly dead Python function: history_append"}, "properties": {"repobilityId": "f9ebe64447a23828", "scanner": "scanner-primary", "fingerprint": "d5b394554f9f30a8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/k12_dynamic_limits.py:312"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-192e74ad0025703a", "level": "note", "message": {"text": "Possibly dead Python function: aggressive_strateji"}, "properties": {"repobilityId": "3735769a13388bfc", "scanner": "scanner-primary", "fingerprint": "192e74ad0025703a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_archive/cash_deployment_engine_3portfolio_pre_2026_05_13.py:139"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0adc4a1164a1bad4", "level": "note", "message": {"text": "Possibly dead Python function: balanced_strateji"}, "properties": {"repobilityId": "02b92060ff5573e1", "scanner": "scanner-primary", "fingerprint": "0adc4a1164a1bad4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_archive/cash_deployment_engine_3portfolio_pre_2026_05_13.py:400"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3eacd1a361db53b4", "level": "note", "message": {"text": "Possibly dead Python function: dividend_strateji"}, "properties": {"repobilityId": "16f2a251cddfd145", "scanner": "scanner-primary", "fingerprint": "3eacd1a361db53b4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_archive/cash_deployment_engine_3portfolio_pre_2026_05_13.py:497"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55389e1036d3e595", "level": "note", "message": {"text": "Possibly dead Python function: temettu_ve_kritik_haber_kontrolu"}, "properties": {"repobilityId": "8af2a5a8fbb65332", "scanner": "scanner-primary", "fingerprint": "55389e1036d3e595", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_archive/daily_update_3portfolio_pre_2026_05_13.py:353"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fcd682ce1d697179", "level": "note", "message": {"text": "Possibly dead Python function: format_memory_context"}, "properties": {"repobilityId": "6264e2004b0b8d2f", "scanner": "scanner-primary", "fingerprint": "fcd682ce1d697179", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/_archive/trade_memory.py:357"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a9bb64dc33784df7", "level": "note", "message": {"text": "Possibly dead Python function: check_correlation"}, "properties": {"repobilityId": "be26b068ae223ad1", "scanner": "scanner-primary", "fingerprint": "a9bb64dc33784df7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/portfolio_scan_common.py:948"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-51b774c418662564", "level": "note", "message": {"text": "Possibly dead Python function: detect_tenkan_bounce"}, "properties": {"repobilityId": "60c69dc6418ada88", "scanner": "scanner-primary", "fingerprint": "51b774c418662564", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/swing_entry_engine.py:488"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6a74bdc47eac6842", "level": "note", "message": {"text": "Possibly dead Python function: detect_sma50_bounce"}, "properties": {"repobilityId": "21faad78f86d7b94", "scanner": "scanner-primary", "fingerprint": "6a74bdc47eac6842", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/swing_entry_engine.py:544"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-be263e96a3eac61f", "level": "note", "message": {"text": "Possibly dead Python function: detect_consolidation_breakout"}, "properties": {"repobilityId": "fca0b3f56e6bdfa7", "scanner": "scanner-primary", "fingerprint": "be263e96a3eac61f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/swing_entry_engine.py:601"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fe2d81bfdb902c2b", "level": "note", "message": {"text": "Possibly dead Python function: detect_kijun_bounce_v2"}, "properties": {"repobilityId": "3a5f20b25ca1c902", "scanner": "scanner-primary", "fingerprint": "fe2d81bfdb902c2b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/swing_entry_engine.py:668"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5acf03c7d01babbb", "level": "note", "message": {"text": "Possibly dead Python function: detect_nr7_setup"}, "properties": {"repobilityId": "b9aff3a357daacc2", "scanner": "scanner-primary", "fingerprint": "5acf03c7d01babbb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/swing_entry_engine.py:711"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e18148594ca79b04", "level": "note", "message": {"text": "Possibly dead Python function: score_balanced"}, "properties": {"repobilityId": "f138466afbc26c8b", "scanner": "scanner-primary", "fingerprint": "e18148594ca79b04", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/full_universe_screener.py:290"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-00e65321ab5c6107", "level": "note", "message": {"text": "Possibly dead Python function: score_dividend"}, "properties": {"repobilityId": "e7a00d4ef6f0a9dc", "scanner": "scanner-primary", "fingerprint": "00e65321ab5c6107", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/full_universe_screener.py:327"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-82223f2b100b5ddb", "level": "note", "message": {"text": "Possibly dead Python function: score_aggressive"}, "properties": {"repobilityId": "5115649de07b703a", "scanner": "scanner-primary", "fingerprint": "82223f2b100b5ddb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/legacy/full_universe_screener.py:370"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7fc6dad890e9a5a4", "level": "note", "message": {"text": "Possibly dead Python function: update_lifecycle"}, "properties": {"repobilityId": "00e9694d6d4e14a3", "scanner": "scanner-primary", "fingerprint": "7fc6dad890e9a5a4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/themes.py:283"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ea9332ad956d120", "level": "note", "message": {"text": "Possibly dead Python function: archive_theme"}, "properties": {"repobilityId": "235749a374402cc6", "scanner": "scanner-primary", "fingerprint": "8ea9332ad956d120", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/themes.py:306"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef09f7781f064be8", "level": "note", "message": {"text": "Possibly dead Python function: all_catalysts"}, "properties": {"repobilityId": "d7e067e0e8b30633", "scanner": "scanner-primary", "fingerprint": "ef09f7781f064be8", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "agent/meta_catalysts.py:176"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53deac7e6302bc30", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/finzora-bot.js:77"}, "properties": {"repobilityId": "4ecdaced33ddb9b9", "scanner": "scanner-primary", "fingerprint": "53deac7e6302bc30", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"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-d8bb3222bedf36e6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/dashboard.js:422"}, "properties": {"repobilityId": "26ac90d8c3018fd2", "scanner": "scanner-primary", "fingerprint": "d8bb3222bedf36e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/dashboard.js"}, "region": {"startLine": 422}}}]}, {"ruleId": "scanner-b3dd51d4b939f458", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/research/index.html:494"}, "properties": {"repobilityId": "bc7a691d8e7bdd5d", "scanner": "scanner-primary", "fingerprint": "b3dd51d4b939f458", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/research/index.html"}, "region": {"startLine": 494}}}]}, {"ruleId": "scanner-699a64e8bb0db50e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reports/research/DC_CHAIN_2026-04-19.html:1335"}, "properties": {"repobilityId": "be53149adc5c2b31", "scanner": "scanner-primary", "fingerprint": "699a64e8bb0db50e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "reports/research/DC_CHAIN_2026-04-19.html"}, "region": {"startLine": 1335}}}]}, {"ruleId": "scanner-a6d4ec6abe5ff7ad", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reports/research/SPACE_CHAIN_2026-04-27.html:1289"}, "properties": {"repobilityId": "89e8baf40d74170c", "scanner": "scanner-primary", "fingerprint": "a6d4ec6abe5ff7ad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "reports/research/SPACE_CHAIN_2026-04-27.html"}, "region": {"startLine": 1289}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-64414febab4b047c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fa83d98cfaefef4f", "scanner": "scanner-primary", "fingerprint": "64414febab4b047c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/consistency_check.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-64414febab4b047c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "193cd10555fd9245", "scanner": "scanner-primary", "fingerprint": "64414febab4b047c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/consistency_check.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-1688bd05b37ed123", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "19b5ecb168d66882", "scanner": "scanner-primary", "fingerprint": "1688bd05b37ed123", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/portnews.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0ed2f168de537937", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b4fa62d14c7e01b9", "scanner": "scanner-primary", "fingerprint": "0ed2f168de537937", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/polymarket_refresh.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-0ed2f168de537937", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e8a97e6dae4ff8c1", "scanner": "scanner-primary", "fingerprint": "0ed2f168de537937", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/polymarket_refresh.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-f0026d4f221ce954", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "ea20020aadd20d05", "scanner": "scanner-primary", "fingerprint": "f0026d4f221ce954", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/polymarket_refresh.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-266cbaa845689af1", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "b756ed95eb43a631", "scanner": "scanner-primary", "fingerprint": "266cbaa845689af1", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/marketpulse.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8d5b0f0c4265e560", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "7f2b3cf474cb8db5", "scanner": "scanner-primary", "fingerprint": "8d5b0f0c4265e560", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/agent.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-34c83f8b739e1e56", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ea210abd871643d", "scanner": "scanner-primary", "fingerprint": "34c83f8b739e1e56", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/news_radar.yml"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-34c83f8b739e1e56", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7368abdfef877bd1", "scanner": "scanner-primary", "fingerprint": "34c83f8b739e1e56", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/news_radar.yml"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-5407a45cc9381b4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c1d07db946990cf1", "scanner": "scanner-primary", "fingerprint": "5407a45cc9381b4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/watchlist_health_check.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-5407a45cc9381b4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6ad5efb91f05e193", "scanner": "scanner-primary", "fingerprint": "5407a45cc9381b4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/watchlist_health_check.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-cb62dc35e97beeaf", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "cfb21e4b158eafb6", "scanner": "scanner-primary", "fingerprint": "cb62dc35e97beeaf", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/watchlist_health_check.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b9525fb16650d23f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "909a362e6e741583", "scanner": "scanner-primary", "fingerprint": "b9525fb16650d23f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/telegram_bot.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa3d3060790b4c0b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd498219ce8fda0d", "scanner": "scanner-primary", "fingerprint": "aa3d3060790b4c0b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fill_calibrator_outcomes.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-aa3d3060790b4c0b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7cd7c98b7de8f9f4", "scanner": "scanner-primary", "fingerprint": "aa3d3060790b4c0b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fill_calibrator_outcomes.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-2ebf914caf3a18c3", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "11ff932a9cf002e5", "scanner": "scanner-primary", "fingerprint": "2ebf914caf3a18c3", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/fill_calibrator_outcomes.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d9eb2116452bbc3e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cb6c4d1c118ca3d4", "scanner": "scanner-primary", "fingerprint": "d9eb2116452bbc3e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/research_tracker.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-d9eb2116452bbc3e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ad07d13e5160149", "scanner": "scanner-primary", "fingerprint": "d9eb2116452bbc3e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/research_tracker.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-bb8438018f10544f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "ac0b203c65628fd8", "scanner": "scanner-primary", "fingerprint": "bb8438018f10544f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/research_tracker.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-60279b34e1cf145f", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "2e643392081b2f2a", "scanner": "scanner-primary", "fingerprint": "60279b34e1cf145f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macro_dashboard.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dfa6e7bb08d150b8", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "d2b0437164bbb701", "scanner": "scanner-primary", "fingerprint": "dfa6e7bb08d150b8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/log_rotation.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1773ea27523d5b01", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "2f35ce158dd9ec7c", "scanner": "scanner-primary", "fingerprint": "1773ea27523d5b01", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/signal_tracker.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-888be4984194a7ab", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "484c4959f94844e0", "scanner": "scanner-primary", "fingerprint": "888be4984194a7ab", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/signal_broadcaster.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0971f46d833ae604", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "52246c9467673aa0", "scanner": "scanner-primary", "fingerprint": "0971f46d833ae604", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/thematic_discovery.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4bd187272ac1e401", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7fafaedb83f9d275", "scanner": "scanner-primary", "fingerprint": "4bd187272ac1e401", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/migration_health_check.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-4bd187272ac1e401", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "91dd9306d7a058dc", "scanner": "scanner-primary", "fingerprint": "4bd187272ac1e401", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/migration_health_check.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-ce8cafe1bc5deefd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7791ed9d92ef6ccd", "scanner": "scanner-primary", "fingerprint": "ce8cafe1bc5deefd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update_workflow_status.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-ce8cafe1bc5deefd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3a47bca6a234eed8", "scanner": "scanner-primary", "fingerprint": "ce8cafe1bc5deefd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update_workflow_status.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-47916e61cb966aaa", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "bb34dbaf6178ea9a", "scanner": "scanner-primary", "fingerprint": "47916e61cb966aaa", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/update_workflow_status.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-71c26805ec6e1926", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "418e95a1b126b375", "scanner": "scanner-primary", "fingerprint": "71c26805ec6e1926", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ai_orchestrator.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-13f8d1c5b088b006", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "faca7ead943d5154", "scanner": "scanner-primary", "fingerprint": "13f8d1c5b088b006", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/weekly_fmp_stats.yml"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-28b7704de6eb561a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "235ade5f3d150801", "scanner": "scanner-primary", "fingerprint": "28b7704de6eb561a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macro_calendar.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-28b7704de6eb561a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee14486f313ce6de", "scanner": "scanner-primary", "fingerprint": "28b7704de6eb561a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/macro_calendar.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-b2cfb47c32d75752", "level": "note", "message": {"text": "Very large file: scripts/telegram_bot.py (2943 lines)"}, "properties": {"repobilityId": "45b44630f172da70", "scanner": "scanner-primary", "fingerprint": "b2cfb47c32d75752", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e4e103b52afc2b9a", "level": "note", "message": {"text": "Very large file: agent/position_manager.py (1571 lines)"}, "properties": {"repobilityId": "5f04ba23da51c6c6", "scanner": "scanner-primary", "fingerprint": "e4e103b52afc2b9a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8e4d505eccbe60ba", "level": "note", "message": {"text": "Very large file: agent/scanners/thematic.py (1207 lines)"}, "properties": {"repobilityId": "414b3535df530d11", "scanner": "scanner-primary", "fingerprint": "8e4d505eccbe60ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4852548d2cbf5968", "level": "note", "message": {"text": "Very large file: agent/legacy/orchestrator.py (2756 lines)"}, "properties": {"repobilityId": "ea96f22ab6bdade6", "scanner": "scanner-primary", "fingerprint": "4852548d2cbf5968", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "358d3f8fd3fdb583", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "64b1b51003b3cbe6", "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": "11ea0b2e82304bb8", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "cca49d8cefde980d", "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": "5fb653d045746e7d", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-ad77edf5301d1068", "level": "note", "message": {"text": "Legacy-named symbol `original_legacy` in tests/conftest.py:37"}, "properties": {"repobilityId": "fcd8b2accdcfd56e", "scanner": "scanner-primary", "fingerprint": "ad77edf5301d1068", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eccb0e998529fde3", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/test_thm_correction.py:235"}, "properties": {"repobilityId": "a5031e437b588624", "scanner": "scanner-primary", "fingerprint": "eccb0e998529fde3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f8deb5792ce91fd", "level": "note", "message": {"text": "Legacy-named symbol `market_v1` in tests/test_polymarket_snapshots.py:341"}, "properties": {"repobilityId": "419cb5fe73f78925", "scanner": "scanner-primary", "fingerprint": "5f8deb5792ce91fd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aee0d29ac42db304", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_thm_policy.py:307"}, "properties": {"repobilityId": "d6172745164db69b", "scanner": "scanner-primary", "fingerprint": "aee0d29ac42db304", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b4960ccf04d82cf", "level": "note", "message": {"text": "Legacy-named symbol `test_partial_exit_formatted_legacy` in tests/test_thm_integration.py:84"}, "properties": {"repobilityId": "16049a9572689db8", "scanner": "scanner-primary", "fingerprint": "8b4960ccf04d82cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e709285f2ca9ab7d", "level": "note", "message": {"text": "Legacy-named symbol `test_scan_with_mocked_legacy` in tests/test_scanner_analyst_revisions.py:222"}, "properties": {"repobilityId": "9078f0f0632499af", "scanner": "scanner-primary", "fingerprint": "e709285f2ca9ab7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-45258a901fb563c2", "level": "note", "message": {"text": "Legacy-named symbol `test_stale_old` in tests/test_polymarket.py:447"}, "properties": {"repobilityId": "c57867e42805da76", "scanner": "scanner-primary", "fingerprint": "45258a901fb563c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e1a2a02376585705", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/dashboard.js:59"}, "properties": {"repobilityId": "38f2bb65de489670", "scanner": "scanner-primary", "fingerprint": "e1a2a02376585705", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-772968a9d313eea4", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/migrate_2026_05_22_faz_c_energy_clean.py:157"}, "properties": {"repobilityId": "7bc57be8777e5583", "scanner": "scanner-primary", "fingerprint": "772968a9d313eea4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7fd37184020a296", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_cleanup_secrets.py:134"}, "properties": {"repobilityId": "e83703ac75c0300c", "scanner": "scanner-primary", "fingerprint": "e7fd37184020a296", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0883dd864cb794c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/consistency_check.py:239"}, "properties": {"repobilityId": "bb053ebf169805ce", "scanner": "scanner-primary", "fingerprint": "d0883dd864cb794c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-30fb4b66ebdb04dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/signal_broadcaster.py:181"}, "properties": {"repobilityId": "02d2d80907b3c083", "scanner": "scanner-primary", "fingerprint": "30fb4b66ebdb04dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad695200411077cb", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/telegram_bot.py:2508"}, "properties": {"repobilityId": "e3276443dcba10eb", "scanner": "scanner-primary", "fingerprint": "ad695200411077cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b378c471c14cb338", "level": "note", "message": {"text": "Legacy-named symbol `pos_copy` in scripts/k_rules_common.py:83"}, "properties": {"repobilityId": "e53c6882ce2a1f5e", "scanner": "scanner-primary", "fingerprint": "b378c471c14cb338", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-abaaedad805edb60", "level": "note", "message": {"text": "Legacy-named symbol `e_old` in scripts/weekly_pre_check.py:302"}, "properties": {"repobilityId": "55e188c85959a52b", "scanner": "scanner-primary", "fingerprint": "abaaedad805edb60", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8ed26526171d0d22", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/_archive/swing_full_universe.py:117"}, "properties": {"repobilityId": "654edc5301342327", "scanner": "scanner-primary", "fingerprint": "8ed26526171d0d22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50da4cb7d2ed06e3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/_archive/daily_update_3portfolio_pre_2026_05_13.py:827"}, "properties": {"repobilityId": "b2764e64fff10ef6", "scanner": "scanner-primary", "fingerprint": "50da4cb7d2ed06e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fd45705d63c38b5", "level": "note", "message": {"text": "Legacy-named symbol `kijun_bounce_v2` in scripts/legacy/swing_entry_engine.py:274"}, "properties": {"repobilityId": "7844f4051ead340a", "scanner": "scanner-primary", "fingerprint": "7fd45705d63c38b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d15dca081a39c845", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/legacy/swing_entry_engine.py:809"}, "properties": {"repobilityId": "9eac3a879c33c9ec", "scanner": "scanner-primary", "fingerprint": "d15dca081a39c845", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-434951a25d410ad9", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/themes.py:197"}, "properties": {"repobilityId": "198e011b69c4d497", "scanner": "scanner-primary", "fingerprint": "434951a25d410ad9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4af8a5f20a2b7c8", "level": "none", "message": {"text": "Commented-code block (9 lines) in agent/watchlist.py:162"}, "properties": {"repobilityId": "4e7f069bccff06e0", "scanner": "scanner-primary", "fingerprint": "b4af8a5f20a2b7c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36ae3092a2dfedb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/position_manager.py:310"}, "properties": {"repobilityId": "cf437e7830144439", "scanner": "scanner-primary", "fingerprint": "36ae3092a2dfedb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfd3fe5f834a8214", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/tearsheet.py:307"}, "properties": {"repobilityId": "7c26952bc22876b3", "scanner": "scanner-primary", "fingerprint": "cfd3fe5f834a8214", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-767970cc461e6612", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/thm/backtest.py:140"}, "properties": {"repobilityId": "bd78a4f3b61e3391", "scanner": "scanner-primary", "fingerprint": "767970cc461e6612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c67d3a3e095b46b9", "level": "none", "message": {"text": "Commented-code block (8 lines) in agent/thm/state.py:171"}, "properties": {"repobilityId": "5ce01fc206ffb53e", "scanner": "scanner-primary", "fingerprint": "c67d3a3e095b46b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe2d6f32e5133ae8", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/scanners/thematic.py:138"}, "properties": {"repobilityId": "d8919b91187caa78", "scanner": "scanner-primary", "fingerprint": "fe2d6f32e5133ae8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b885d57dab81d963", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent/scanners/fair_value.py:257"}, "properties": {"repobilityId": "cf56cba91f6dd02c", "scanner": "scanner-primary", "fingerprint": "b885d57dab81d963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3978b045a814f411", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/rule_updater.py:367"}, "properties": {"repobilityId": "e31f7925f0be6237", "scanner": "scanner-primary", "fingerprint": "3978b045a814f411", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a45e5cc3ade747b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/fmp_client.py:41"}, "properties": {"repobilityId": "6f02ef5a6641183e", "scanner": "scanner-primary", "fingerprint": "a45e5cc3ade747b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e3d91f98b3d1654", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent/legacy/closing_enrichment.py:297"}, "properties": {"repobilityId": "db1e4f087e347851", "scanner": "scanner-primary", "fingerprint": "3e3d91f98b3d1654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-152468de222388c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/legacy/_config.py:22"}, "properties": {"repobilityId": "cf330496de5bff16", "scanner": "scanner-primary", "fingerprint": "152468de222388c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d9e161b72550633", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/swing_manager.py:66"}, "properties": {"repobilityId": "6ada183bc1c94e86", "scanner": "scanner-primary", "fingerprint": "2d9e161b72550633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0477ff8d40bfa252", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/legacy/orchestrator.py:166"}, "properties": {"repobilityId": "83cd796e5370d077", "scanner": "scanner-primary", "fingerprint": "0477ff8d40bfa252", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47690c75602b60cd", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/orchestrator.py:1109"}, "properties": {"repobilityId": "c528cb107599dc69", "scanner": "scanner-primary", "fingerprint": "47690c75602b60cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ad719d05377f9a3", "level": "note", "message": {"text": "Legacy-named symbol `eps_old` in agent/legacy/conviction_scorer.py:138"}, "properties": {"repobilityId": "3e3da67306995d69", "scanner": "scanner-primary", "fingerprint": "6ad719d05377f9a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6a223d344f5b2892", "level": "note", "message": {"text": "Legacy-named symbol `score_pending_predictions_v2` in agent/legacy/prediction_logger.py:376"}, "properties": {"repobilityId": "335a8bfb24e49dc8", "scanner": "scanner-primary", "fingerprint": "6a223d344f5b2892", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-866ea1ec6255d289", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/legacy/prediction_logger.py:341"}, "properties": {"repobilityId": "a49570f0050284aa", "scanner": "scanner-primary", "fingerprint": "866ea1ec6255d289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe225a31489f0c54", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/darwin_evolution.py:32"}, "properties": {"repobilityId": "a83a22f4b35400c7", "scanner": "scanner-primary", "fingerprint": "fe225a31489f0c54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d7049cc5c3e073a", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 agent/legacy/darwin_evolution.py:666"}, "properties": {"repobilityId": "005179782cf0c8f8", "scanner": "scanner-primary", "fingerprint": "3d7049cc5c3e073a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1933b8e5a90aba8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/memory_manager.py:115"}, "properties": {"repobilityId": "8ee25dc00b1d4458", "scanner": "scanner-primary", "fingerprint": "1933b8e5a90aba8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45cb7611fcb8a6c6", "level": "none", "message": {"text": "Commented-code block (6 lines) in agent/legacy/observability.py:312"}, "properties": {"repobilityId": "7f3804d7dcb982e9", "scanner": "scanner-primary", "fingerprint": "45cb7611fcb8a6c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfdf0bbe1e7f8262", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/thematic_calendar.py:38"}, "properties": {"repobilityId": "fc29737df7d78c7b", "scanner": "scanner-primary", "fingerprint": "cfdf0bbe1e7f8262", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43d25c4ca7444ea6", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/analist_takip/config.py:71"}, "properties": {"repobilityId": "292c178cae74edac", "scanner": "scanner-primary", "fingerprint": "43d25c4ca7444ea6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e462b5b1b68f1682", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/analist_takip/signal_analyzer.py:473"}, "properties": {"repobilityId": "717b45ed5bc94a38", "scanner": "scanner-primary", "fingerprint": "e462b5b1b68f1682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8fd4d892287bb3a", "level": "note", "message": {"text": "Legacy-named symbol `mv_copy` in agent/legacy/valuation/framework.py:88"}, "properties": {"repobilityId": "22cae1310426657c", "scanner": "scanner-primary", "fingerprint": "f8fd4d892287bb3a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e4a6d3b05010ddb9", "level": "none", "message": {"text": "Commented-code block (10 lines) in agent/legacy/valuation/tuning.py:15"}, "properties": {"repobilityId": "134692f482e8cdcb", "scanner": "scanner-primary", "fingerprint": "e4a6d3b05010ddb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbbd601aec32f161", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/legacy/valuation/classifier.py:292"}, "properties": {"repobilityId": "8d3828874240c7c6", "scanner": "scanner-primary", "fingerprint": "bbbd601aec32f161", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29737ac516f66366", "level": "note", "message": {"text": "Legacy-named symbol `etf_old` in agent/legacy/valuation/cycle_detector.py:152"}, "properties": {"repobilityId": "5aa09b054a948053", "scanner": "scanner-primary", "fingerprint": "29737ac516f66366", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa7c3a2faf43f0b8", "level": "note", "message": {"text": "Stub function `fiyat\u0131` (body is just `pass`/`return`) \u2014 agent/legacy/valuation/methods/registry.py:708"}, "properties": {"repobilityId": "b343bbf2b4c13a35", "scanner": "scanner-primary", "fingerprint": "aa7c3a2faf43f0b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-883e36433cadef88", "level": "none", "message": {"text": "Commented-code block (7 lines) in agent/reports/closing.py:543"}, "properties": {"repobilityId": "b263760082eb109e", "scanner": "scanner-primary", "fingerprint": "883e36433cadef88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4c23ad0d175315b", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/reports/morning.py:473"}, "properties": {"repobilityId": "592bafab55c64bae", "scanner": "scanner-primary", "fingerprint": "c4c23ad0d175315b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b05c451d660bfd82", "level": "none", "message": {"text": "Commented-code block (5 lines) in agent/reports/stats.py:316"}, "properties": {"repobilityId": "be935a0160008f38", "scanner": "scanner-primary", "fingerprint": "b05c451d660bfd82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e3cf8d8f345c4342", "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": "a295c0ee48f8f320", "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": "4fea703a9eccb424", "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": "d71b3cc5b509ba09", "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": "39832b0ad5ac643d", "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": "747ee6889f3c7904", "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": "700655bdca68e655", "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": "c180e3e38ab93d47", "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": "8eadba108ba18e03", "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": "01b0ed38774e7ada", "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": "19c358f46bc04917", "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": "631a404aec177545", "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": "435cefab667f3c99", "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": "45273bac847395e6", "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": "fbe8857567765050", "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": "cced0bfdaff8d3ae", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "69159b5a81734238", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "981a1fb2ab35f123", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}