{"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-1cbedd560ff11d59", "name": "Possibly dead Python function: signal_poll_job", "shortDescription": {"text": "Possibly dead Python function: signal_poll_job"}, "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-2204dfa140700c21", "name": "Possibly dead Python function: handle_buy", "shortDescription": {"text": "Possibly dead Python function: handle_buy"}, "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-9c23bfcdc1c3ac1f", "name": "Possibly dead Python function: handle_skip", "shortDescription": {"text": "Possibly dead Python function: handle_skip"}, "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-d9467eff22f608da", "name": "Possibly dead Python function: handle_exit", "shortDescription": {"text": "Possibly dead Python function: handle_exit"}, "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-fd38597d9c7020da", "name": "Possibly dead Python function: cmd_start", "shortDescription": {"text": "Possibly dead Python function: cmd_start"}, "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-2eac3e9350f44c76", "name": "Possibly dead Python function: cmd_help", "shortDescription": {"text": "Possibly dead Python function: cmd_help"}, "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-ddf316d1b6d5dfba", "name": "Possibly dead Python function: cmd_positions", "shortDescription": {"text": "Possibly dead Python function: cmd_positions"}, "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-a86d39cab5dabd12", "name": "Possibly dead Python function: cmd_stats", "shortDescription": {"text": "Possibly dead Python function: cmd_stats"}, "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-c1215d5d2997745a", "name": "Possibly dead Python function: send_intraday_alert", "shortDescription": {"text": "Possibly dead Python function: send_intraday_alert"}, "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-71cf53c94b2925be", "name": "Possibly dead Python function: send_eod_close_alert", "shortDescription": {"text": "Possibly dead Python function: send_eod_close_alert"}, "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-8efa2ce47c036420", "name": "Possibly dead Python function: score_direction", "shortDescription": {"text": "Possibly dead Python function: score_direction"}, "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-2966c60f9891a250", "name": "Possibly dead Python function: score_confidence", "shortDescription": {"text": "Possibly dead Python function: score_confidence"}, "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-b4ea6a246f6eda1d", "name": "Possibly dead Python function: fn", "shortDescription": {"text": "Possibly dead Python function: fn"}, "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-2d102698bb74d195", "name": "Possibly dead Python function: regime_default", "shortDescription": {"text": "Possibly dead Python function: regime_default"}, "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-930bb8e50eb9bb2a", "name": "Possibly dead Python function: regime_tight_vix", "shortDescription": {"text": "Possibly dead Python function: regime_tight_vix"}, "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-815685b6f0e8f0fe", "name": "Possibly dead Python function: fn", "shortDescription": {"text": "Possibly dead Python function: fn"}, "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-d511c491fc82c7b9", "name": "Possibly dead Python function: extract_from_documents", "shortDescription": {"text": "Possibly dead Python function: extract_from_documents"}, "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-5d5e55b510ee5c47", "name": "Possibly dead Python function: empty_day_row", "shortDescription": {"text": "Possibly dead Python function: empty_day_row"}, "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-023613155feab06f", "name": "Possibly dead Python function: rebalance_friday", "shortDescription": {"text": "Possibly dead Python function: rebalance_friday"}, "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-8fb51ef395c16d21", "name": "Possibly dead Python function: append_and_save", "shortDescription": {"text": "Possibly dead Python function: append_and_save"}, "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-9f91d7e62dd76b3d", "name": "Possibly dead Python function: compute_cross_section", "shortDescription": {"text": "Possibly dead Python function: compute_cross_section"}, "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-d622d4f0aa8d2f62", "name": "Possibly dead Python function: compute_vwap", "shortDescription": {"text": "Possibly dead Python function: compute_vwap"}, "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-52aebe7d4d8380d3", "name": "Privileged port 13 in use", "shortDescription": {"text": "Privileged port 13 in use"}, "fullDescription": {"text": "Port 13 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f00f36bd2858e3d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-16.html:109", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-16.html:109"}, "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-1371af4e6ba17257", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-16.html:140", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-16.html:140"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4aa8c5783b3fd88a", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-12.html:643", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-12.html:643"}, "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-5e8b3dbc6636281c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-25.html:357", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-25.html:357"}, "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-a35c006b1caa9fcd", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-25.html:604", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-25.html:604"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3220eb7d164ca24", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-28.html:371", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-28.html:371"}, "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-534dd8a409eab6f6", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-28.html:635", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-28.html:635"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6e7aac3773411c2c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-29.html:371", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-29.html:371"}, "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-89953eb725d88543", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-29.html:635", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-29.html:635"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edbe1e1bb3bd973c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-31.html:548", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-31.html:548"}, "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-5384fb75a70a9ab8", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-31.html:921", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-31.html:921"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-084e840265a0b5d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-01.html:548", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-01.html:548"}, "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-7ed588bd03bce0d2", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-01.html:921", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-01.html:921"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2145e1218470bc74", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-15.html:129", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-15.html:129"}, "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-a1a39c3232deb49f", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-15.html:160", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-15.html:160"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ece9cebf1d370dc0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-20.html:301", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-20.html:301"}, "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-8d8f3fa9d4450404", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-20.html:451", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-20.html:451"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff7269208d44f7a0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-26.html:357", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-26.html:357"}, "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-72546df21f0ec347", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-26.html:604", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-26.html:604"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b84c4128f5d0c08", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-22.html:347", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-22.html:347"}, "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-9d230f559d2dbf34", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-22.html:569", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-22.html:569"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-67fae61a2d2bb95f", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-19.html:200", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-19.html:200"}, "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-d797ae6fc78da0bf", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-19.html:285", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-19.html:285"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fadc1ec780d05af", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-05.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-05.html:557"}, "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-139742cd6872a15b", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-05.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-05.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7bdb72d613bdb8d7", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-10.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-10.html:557"}, "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-4a6fd80dd2b3b94e", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-10.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-10.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d379aa9b8b875f5f", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-15.html:669", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-15.html:669"}, "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-60f5541b602a8159", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-30.html:547", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-30.html:547"}, "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-d6839613fb8eda9e", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-30.html:900", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-30.html:900"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94c7f825298c7d6e", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-08.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-08.html:557"}, "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-22dbe24b5ac322d7", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-08.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-08.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8fb5d97e21b8aea", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-02.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-02.html:557"}, "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-a2280309d20b0b1e", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-02.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-02.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d16e929e8c65eec0", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-27.html:371", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-27.html:371"}, "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-bd8e1d525788d3f0", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-27.html:635", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-27.html:635"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-494503b5607c41c7", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-11.html:554", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-11.html:554"}, "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-ebc7eacb267be927", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-11.html:940", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-11.html:940"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7d7997a8fe84880c", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-04.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-04.html:557"}, "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-d91e82b5fb8fcdbd", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-04.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-04.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f885e0f12b9f4a2e", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-03.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-03.html:557"}, "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-24fa2d84f18067ec", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-03.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-03.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-71ad6a0aa803c9da", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-21.html:328", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-21.html:328"}, "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-da8ab9ed048afcb4", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-21.html:518", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-21.html:518"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-da3a6b7fe74b7aad", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-09.html:557", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-09.html:557"}, "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-10fea0086371e652", "name": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-09.html:943", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-09.html:943"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ee3a9f45864ba9c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@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-7fc405803d421551", "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-cec3f6f904b36494", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@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-adf0b074babcd627", "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-d213c39d7992bd21", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@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-562e609385bc6bb0", "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-abd38e75c1dd6db7", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-python@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-0f5902a844c6d410", "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-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-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "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 699 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, operator-readme. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0f8baf4c1fd0f27", "name": "Legacy-named symbol `conviction_v1` in config.py:52", "shortDescription": {"text": "Legacy-named symbol `conviction_v1` in config.py:52"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf8b4ba2a8a996f9", "name": "Commented-code block (7 lines) in config.py:36", "shortDescription": {"text": "Commented-code block (7 lines) in config.py:36"}, "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-70384726b1d66f9d", "name": "Legacy-named symbol `train_lgbm_v2` in models/inference_v3.py:45", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in models/inference_v3.py:45"}, "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-f205c0a5aa93bf58", "name": "Commented-code block (5 lines) in models/inference_v3.py:298", "shortDescription": {"text": "Commented-code block (5 lines) in models/inference_v3.py:298"}, "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-08174e5e0b216ce6", "name": "Legacy-named symbol `lgbm_phase3_v2` in models/train_lgbm_v2.py:7", "shortDescription": {"text": "Legacy-named symbol `lgbm_phase3_v2` in models/train_lgbm_v2.py:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-03a0f9ef24bfd727", "name": "Commented-code block (6 lines) in models/train_lgbm_v2.py:31", "shortDescription": {"text": "Commented-code block (6 lines) in models/train_lgbm_v2.py:31"}, "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-8363b2420f9d30a5", "name": "Legacy-named symbol `conviction_v1` in signals/conviction.py:22", "shortDescription": {"text": "Legacy-named symbol `conviction_v1` in signals/conviction.py:22"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-98160a750caf0c19", "name": "Commented-code block (6 lines) in signals/conviction.py:204", "shortDescription": {"text": "Commented-code block (6 lines) in signals/conviction.py:204"}, "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-66bd7232c7401f4a", "name": "Commented-code block (5 lines) in signals/trend_core.py:50", "shortDescription": {"text": "Commented-code block (5 lines) in signals/trend_core.py:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-435cb626c4316790", "name": "Legacy-named symbol `w_old` in scripts/research_open_execution.py:98", "shortDescription": {"text": "Legacy-named symbol `w_old` in scripts/research_open_execution.py:98"}, "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-617b8095640b5e41", "name": "Legacy-named symbol `train_lgbm_v2` in scripts/retrain_v6_bagging.py:30", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/retrain_v6_bagging.py:30"}, "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-08228b25a693c379", "name": "Legacy-named symbol `train_lgbm_v2` in scripts/retrain_v5_with_regime_features.py:32", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/retrain_v5_with_regime_features.py:32"}, "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-219b2581ab48abcb", "name": "Legacy-named symbol `train_lgbm_v2` in scripts/nightly_retrain.py:53", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/nightly_retrain.py:53"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5708ceeca3206af9", "name": "Commented-code block (7 lines) in scripts/nightly_retrain.py:82", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/nightly_retrain.py:82"}, "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-9df0c097b114c05b", "name": "Legacy-named symbol `proba_v2` in scripts/final_topk_comparison.py:60", "shortDescription": {"text": "Legacy-named symbol `proba_v2` in scripts/final_topk_comparison.py:60"}, "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-d5aec06de49534f4", "name": "Legacy-named symbol `regime_v2` in scripts/experiment_v4_layered.py:172", "shortDescription": {"text": "Legacy-named symbol `regime_v2` in scripts/experiment_v4_layered.py:172"}, "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-df16da69aa23c619", "name": "Legacy-named symbol `train_lgbm_v2` in scripts/integrated_backtest_v3.py:22", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/integrated_backtest_v3.py:22"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d526445d6753e885", "name": "Legacy-named symbol `yr_v1` in scripts/yearly_wr_dailyret.py:22", "shortDescription": {"text": "Legacy-named symbol `yr_v1` in scripts/yearly_wr_dailyret.py:22"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-312da534806d3e7e", "name": "Legacy-named symbol `train_lgbm_v2` in scripts/run_phase3_v2.py:17", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/run_phase3_v2.py:17"}, "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-347814e9e6fafb51", "name": "Legacy-named symbol `conviction_v2` in scripts/experiment_options_regime.py:1", "shortDescription": {"text": "Legacy-named symbol `conviction_v2` in scripts/experiment_options_regime.py:1"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e41b1d47f2257a5", "name": "Legacy-named symbol `conviction_v1` in scripts/run_daily.py:271", "shortDescription": {"text": "Legacy-named symbol `conviction_v1` in scripts/run_daily.py:271"}, "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-f47e36a83ccb5d89", "name": "Commented-code block (5 lines) in scripts/run_daily.py:173", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/run_daily.py:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea579ffae6f31195", "name": "Legacy-named symbol `run_phase3_v2` in scripts/enhanced_backtest_v2.py:26", "shortDescription": {"text": "Legacy-named symbol `run_phase3_v2` in scripts/enhanced_backtest_v2.py:26"}, "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-da81c62048f8326c", "name": "Legacy-named symbol `research_short_v2` in scripts/research_short_v2_production.py:3", "shortDescription": {"text": "Legacy-named symbol `research_short_v2` in scripts/research_short_v2_production.py:3"}, "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-51789942c2bc9ba6", "name": "Legacy-named symbol `conviction_v1` in scripts/experiment_round4.py:1", "shortDescription": {"text": "Legacy-named symbol `conviction_v1` in scripts/experiment_round4.py:1"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a140c08675d83dc7", "name": "Legacy-named symbol `train_lgbm_v2` in scripts/experiment_weighted_v3.py:28", "shortDescription": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/experiment_weighted_v3.py:28"}, "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-a2d8d19beb11c1f9", "name": "Legacy-named symbol `research_short_v2` in scripts/research_short_v2.py:42", "shortDescription": {"text": "Legacy-named symbol `research_short_v2` in scripts/research_short_v2.py:42"}, "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-ecd18fa8d35d4937", "name": "Legacy-named symbol `conviction_v2` in scripts/experiment_non_vix_regime.py:3", "shortDescription": {"text": "Legacy-named symbol `conviction_v2` in scripts/experiment_non_vix_regime.py:3"}, "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-d31f93e278a8424c", "name": "Legacy-named symbol `s_v2` in scripts/push_wr_higher.py:38", "shortDescription": {"text": "Legacy-named symbol `s_v2` in scripts/push_wr_higher.py:38"}, "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-0d45dd9526c6128b", "name": "Commented-code block (5 lines) in sentiment/aggregator.py:34", "shortDescription": {"text": "Commented-code block (5 lines) in sentiment/aggregator.py:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c74cf6cf79e9c3d", "name": "Commented-code block (5 lines) in paper/portfolio_tracker.py:42", "shortDescription": {"text": "Commented-code block (5 lines) in paper/portfolio_tracker.py:42"}, "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-d0b17c8c07a7421d", "name": "8 env vars used in code but missing from .env.example", "shortDescription": {"text": "8 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `FRED_API_KEY`, `STRATEGY_MODE`, `TOSS_API_BASE`, `TOSS_APP_KEY`, `TOSS_APP_SECRET`, `TOSS_BALANCE_PATH`, `TOSS_POSITIONS_PATH`, `TOSS_TOKEN_PATH`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/experiment_final_strategy.py:realized, scripts/experiment_v4_layered.py:realized, scripts/experiment_universe_filter.py:realized, scripts/experiment_regime_filters.py:realized\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/simulate_trend_tilt.py:simulate, scripts/backtest_trend_tilt.py:run\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/22530"}, "properties": {"repository": "wansoo88/recostock", "repoUrl": "https://github.com/wansoo88/recostock", "branch": "main"}, "results": [{"ruleId": "scanner-1cbedd560ff11d59", "level": "note", "message": {"text": "Possibly dead Python function: signal_poll_job"}, "properties": {"repobilityId": "bf96cd43e9e1e86e", "scanner": "scanner-primary", "fingerprint": "1cbedd560ff11d59", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:125"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2204dfa140700c21", "level": "note", "message": {"text": "Possibly dead Python function: handle_buy"}, "properties": {"repobilityId": "63e964fc76035479", "scanner": "scanner-primary", "fingerprint": "2204dfa140700c21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:206"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9c23bfcdc1c3ac1f", "level": "note", "message": {"text": "Possibly dead Python function: handle_skip"}, "properties": {"repobilityId": "c8e900ccbe0966f4", "scanner": "scanner-primary", "fingerprint": "9c23bfcdc1c3ac1f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:261"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d9467eff22f608da", "level": "note", "message": {"text": "Possibly dead Python function: handle_exit"}, "properties": {"repobilityId": "7fc454fe67256129", "scanner": "scanner-primary", "fingerprint": "d9467eff22f608da", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:269"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fd38597d9c7020da", "level": "note", "message": {"text": "Possibly dead Python function: cmd_start"}, "properties": {"repobilityId": "fc872c8259f0135a", "scanner": "scanner-primary", "fingerprint": "fd38597d9c7020da", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:319"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2eac3e9350f44c76", "level": "note", "message": {"text": "Possibly dead Python function: cmd_help"}, "properties": {"repobilityId": "f64b2a7d3ce745d2", "scanner": "scanner-primary", "fingerprint": "2eac3e9350f44c76", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:328"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ddf316d1b6d5dfba", "level": "note", "message": {"text": "Possibly dead Python function: cmd_positions"}, "properties": {"repobilityId": "833a98cf668d6718", "scanner": "scanner-primary", "fingerprint": "ddf316d1b6d5dfba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:339"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a86d39cab5dabd12", "level": "note", "message": {"text": "Possibly dead Python function: cmd_stats"}, "properties": {"repobilityId": "192d1822cd670340", "scanner": "scanner-primary", "fingerprint": "a86d39cab5dabd12", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/intraday_bot.py:378"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c1215d5d2997745a", "level": "note", "message": {"text": "Possibly dead Python function: send_intraday_alert"}, "properties": {"repobilityId": "f0e3de05723f5534", "scanner": "scanner-primary", "fingerprint": "c1215d5d2997745a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/notifier.py:143"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-71cf53c94b2925be", "level": "note", "message": {"text": "Possibly dead Python function: send_eod_close_alert"}, "properties": {"repobilityId": "a9436f07367d69ac", "scanner": "scanner-primary", "fingerprint": "71cf53c94b2925be", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "bot/notifier.py:190"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8efa2ce47c036420", "level": "note", "message": {"text": "Possibly dead Python function: score_direction"}, "properties": {"repobilityId": "2e18520f137477fa", "scanner": "scanner-primary", "fingerprint": "8efa2ce47c036420", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "models/inference.py:194"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2966c60f9891a250", "level": "note", "message": {"text": "Possibly dead Python function: score_confidence"}, "properties": {"repobilityId": "dd04ead04930d84e", "scanner": "scanner-primary", "fingerprint": "2966c60f9891a250", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "models/inference.py:199"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b4ea6a246f6eda1d", "level": "note", "message": {"text": "Possibly dead Python function: fn"}, "properties": {"repobilityId": "4c8478d06c1d90af", "scanner": "scanner-primary", "fingerprint": "b4ea6a246f6eda1d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/experiment_options_regime.py:124"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2d102698bb74d195", "level": "note", "message": {"text": "Possibly dead Python function: regime_default"}, "properties": {"repobilityId": "517714fb3004ce68", "scanner": "scanner-primary", "fingerprint": "2d102698bb74d195", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/experiment_round4.py:183"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-930bb8e50eb9bb2a", "level": "note", "message": {"text": "Possibly dead Python function: regime_tight_vix"}, "properties": {"repobilityId": "c1df7859f6d68453", "scanner": "scanner-primary", "fingerprint": "930bb8e50eb9bb2a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/experiment_round4.py:186"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-815685b6f0e8f0fe", "level": "note", "message": {"text": "Possibly dead Python function: fn"}, "properties": {"repobilityId": "4c8478d06c1d90af", "scanner": "scanner-primary", "fingerprint": "815685b6f0e8f0fe", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/experiment_non_vix_regime.py:146"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d511c491fc82c7b9", "level": "note", "message": {"text": "Possibly dead Python function: extract_from_documents"}, "properties": {"repobilityId": "8c93c0d0e7d89f80", "scanner": "scanner-primary", "fingerprint": "d511c491fc82c7b9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sentiment/ticker_extract.py:86"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d5e55b510ee5c47", "level": "note", "message": {"text": "Possibly dead Python function: empty_day_row"}, "properties": {"repobilityId": "b54b637ef51fa14b", "scanner": "scanner-primary", "fingerprint": "5d5e55b510ee5c47", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "sentiment/aggregator.py:140"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-023613155feab06f", "level": "note", "message": {"text": "Possibly dead Python function: rebalance_friday"}, "properties": {"repobilityId": "8f9f99dfc668737b", "scanner": "scanner-primary", "fingerprint": "023613155feab06f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paper/tracker.py:194"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8fb51ef395c16d21", "level": "note", "message": {"text": "Possibly dead Python function: append_and_save"}, "properties": {"repobilityId": "c95a3330949bbaed", "scanner": "scanner-primary", "fingerprint": "8fb51ef395c16d21", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "paper/tracker.py:234"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9f91d7e62dd76b3d", "level": "note", "message": {"text": "Possibly dead Python function: compute_cross_section"}, "properties": {"repobilityId": "3cb6f9ea0fe42866", "scanner": "scanner-primary", "fingerprint": "9f91d7e62dd76b3d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "features/factors.py:43"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d622d4f0aa8d2f62", "level": "note", "message": {"text": "Possibly dead Python function: compute_vwap"}, "properties": {"repobilityId": "e8f0bd8d14cb6b05", "scanner": "scanner-primary", "fingerprint": "d622d4f0aa8d2f62", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "features/intraday_factors.py:21"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-52aebe7d4d8380d3", "level": "warning", "message": {"text": "Privileged port 13 in use"}, "properties": {"repobilityId": "79d721e4d6f64798", "scanner": "scanner-primary", "fingerprint": "52aebe7d4d8380d3", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/trigger_daily_signal.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-f00f36bd2858e3d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-16.html:109"}, "properties": {"repobilityId": "ab55b8cdc790803a", "scanner": "scanner-primary", "fingerprint": "f00f36bd2858e3d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-16.html"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-1371af4e6ba17257", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-16.html:140"}, "properties": {"repobilityId": "7b15a386046c4254", "scanner": "scanner-primary", "fingerprint": "1371af4e6ba17257", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-16.html"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-4aa8c5783b3fd88a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-12.html:643"}, "properties": {"repobilityId": "6845d7ed71eb5b56", "scanner": "scanner-primary", "fingerprint": "4aa8c5783b3fd88a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-12.html"}, "region": {"startLine": 643}}}]}, {"ruleId": "scanner-5e8b3dbc6636281c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-25.html:357"}, "properties": {"repobilityId": "af987fec89f32ca8", "scanner": "scanner-primary", "fingerprint": "5e8b3dbc6636281c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-25.html"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-a35c006b1caa9fcd", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-25.html:604"}, "properties": {"repobilityId": "5eda17e79c6b1a0d", "scanner": "scanner-primary", "fingerprint": "a35c006b1caa9fcd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-25.html"}, "region": {"startLine": 604}}}]}, {"ruleId": "scanner-c3220eb7d164ca24", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-28.html:371"}, "properties": {"repobilityId": "449749c4f372f2b9", "scanner": "scanner-primary", "fingerprint": "c3220eb7d164ca24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-28.html"}, "region": {"startLine": 371}}}]}, {"ruleId": "scanner-534dd8a409eab6f6", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-28.html:635"}, "properties": {"repobilityId": "9fb98c1861c53ad2", "scanner": "scanner-primary", "fingerprint": "534dd8a409eab6f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-28.html"}, "region": {"startLine": 635}}}]}, {"ruleId": "scanner-6e7aac3773411c2c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-29.html:371"}, "properties": {"repobilityId": "adda65ad5be8444b", "scanner": "scanner-primary", "fingerprint": "6e7aac3773411c2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-29.html"}, "region": {"startLine": 371}}}]}, {"ruleId": "scanner-89953eb725d88543", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-29.html:635"}, "properties": {"repobilityId": "7cc5a6b34f753219", "scanner": "scanner-primary", "fingerprint": "89953eb725d88543", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-29.html"}, "region": {"startLine": 635}}}]}, {"ruleId": "scanner-edbe1e1bb3bd973c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-31.html:548"}, "properties": {"repobilityId": "75ffad4c7f639a62", "scanner": "scanner-primary", "fingerprint": "edbe1e1bb3bd973c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-31.html"}, "region": {"startLine": 548}}}]}, {"ruleId": "scanner-5384fb75a70a9ab8", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-31.html:921"}, "properties": {"repobilityId": "5b174fa91dab98fa", "scanner": "scanner-primary", "fingerprint": "5384fb75a70a9ab8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-31.html"}, "region": {"startLine": 921}}}]}, {"ruleId": "scanner-084e840265a0b5d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-01.html:548"}, "properties": {"repobilityId": "4437055400e6add6", "scanner": "scanner-primary", "fingerprint": "084e840265a0b5d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-01.html"}, "region": {"startLine": 548}}}]}, {"ruleId": "scanner-7ed588bd03bce0d2", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-01.html:921"}, "properties": {"repobilityId": "1d3c7e28e64c8728", "scanner": "scanner-primary", "fingerprint": "7ed588bd03bce0d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-01.html"}, "region": {"startLine": 921}}}]}, {"ruleId": "scanner-2145e1218470bc74", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-15.html:129"}, "properties": {"repobilityId": "11c46b5d247b0307", "scanner": "scanner-primary", "fingerprint": "2145e1218470bc74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-15.html"}, "region": {"startLine": 129}}}]}, {"ruleId": "scanner-a1a39c3232deb49f", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-15.html:160"}, "properties": {"repobilityId": "12039b5d5422f4ae", "scanner": "scanner-primary", "fingerprint": "a1a39c3232deb49f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-15.html"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-ece9cebf1d370dc0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-20.html:301"}, "properties": {"repobilityId": "77c27e65093bd21c", "scanner": "scanner-primary", "fingerprint": "ece9cebf1d370dc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-20.html"}, "region": {"startLine": 301}}}]}, {"ruleId": "scanner-8d8f3fa9d4450404", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-20.html:451"}, "properties": {"repobilityId": "1676d11f60c45d53", "scanner": "scanner-primary", "fingerprint": "8d8f3fa9d4450404", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-20.html"}, "region": {"startLine": 451}}}]}, {"ruleId": "scanner-ff7269208d44f7a0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-26.html:357"}, "properties": {"repobilityId": "07655ea8c6b01c03", "scanner": "scanner-primary", "fingerprint": "ff7269208d44f7a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-26.html"}, "region": {"startLine": 357}}}]}, {"ruleId": "scanner-72546df21f0ec347", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-26.html:604"}, "properties": {"repobilityId": "d5ee46a4b9a29b80", "scanner": "scanner-primary", "fingerprint": "72546df21f0ec347", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-26.html"}, "region": {"startLine": 604}}}]}, {"ruleId": "scanner-2b84c4128f5d0c08", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-22.html:347"}, "properties": {"repobilityId": "88c9395a9f749af6", "scanner": "scanner-primary", "fingerprint": "2b84c4128f5d0c08", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-22.html"}, "region": {"startLine": 347}}}]}, {"ruleId": "scanner-9d230f559d2dbf34", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-22.html:569"}, "properties": {"repobilityId": "f290b8720bc8c286", "scanner": "scanner-primary", "fingerprint": "9d230f559d2dbf34", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-22.html"}, "region": {"startLine": 569}}}]}, {"ruleId": "scanner-67fae61a2d2bb95f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-19.html:200"}, "properties": {"repobilityId": "c2a6aad1bd5583b9", "scanner": "scanner-primary", "fingerprint": "67fae61a2d2bb95f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-19.html"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-d797ae6fc78da0bf", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-19.html:285"}, "properties": {"repobilityId": "a14580c9f7817eee", "scanner": "scanner-primary", "fingerprint": "d797ae6fc78da0bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-19.html"}, "region": {"startLine": 285}}}]}, {"ruleId": "scanner-1fadc1ec780d05af", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-05.html:557"}, "properties": {"repobilityId": "e69180c8c535e629", "scanner": "scanner-primary", "fingerprint": "1fadc1ec780d05af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-05.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-139742cd6872a15b", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-05.html:943"}, "properties": {"repobilityId": "b4efde7eceecbf85", "scanner": "scanner-primary", "fingerprint": "139742cd6872a15b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-05.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-7bdb72d613bdb8d7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-10.html:557"}, "properties": {"repobilityId": "817f5c335d16aba9", "scanner": "scanner-primary", "fingerprint": "7bdb72d613bdb8d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-10.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-4a6fd80dd2b3b94e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-10.html:943"}, "properties": {"repobilityId": "c76816f0f21ce1b6", "scanner": "scanner-primary", "fingerprint": "4a6fd80dd2b3b94e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-10.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-d379aa9b8b875f5f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-15.html:669"}, "properties": {"repobilityId": "c62c29e47505537b", "scanner": "scanner-primary", "fingerprint": "d379aa9b8b875f5f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-15.html"}, "region": {"startLine": 669}}}]}, {"ruleId": "scanner-60f5541b602a8159", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-30.html:547"}, "properties": {"repobilityId": "ca04eeed63aa6ae7", "scanner": "scanner-primary", "fingerprint": "60f5541b602a8159", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-30.html"}, "region": {"startLine": 547}}}]}, {"ruleId": "scanner-d6839613fb8eda9e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-30.html:900"}, "properties": {"repobilityId": "bd62eb71bc9b1836", "scanner": "scanner-primary", "fingerprint": "d6839613fb8eda9e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-30.html"}, "region": {"startLine": 900}}}]}, {"ruleId": "scanner-94c7f825298c7d6e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-08.html:557"}, "properties": {"repobilityId": "f4c87f257d7bb918", "scanner": "scanner-primary", "fingerprint": "94c7f825298c7d6e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-08.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-22dbe24b5ac322d7", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-08.html:943"}, "properties": {"repobilityId": "379e90c2b39f4b36", "scanner": "scanner-primary", "fingerprint": "22dbe24b5ac322d7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-08.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-f8fb5d97e21b8aea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-02.html:557"}, "properties": {"repobilityId": "aaf14b8c550e83ca", "scanner": "scanner-primary", "fingerprint": "f8fb5d97e21b8aea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-02.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-a2280309d20b0b1e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-02.html:943"}, "properties": {"repobilityId": "3d5e4ed9b2944d13", "scanner": "scanner-primary", "fingerprint": "a2280309d20b0b1e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-02.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-d16e929e8c65eec0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-27.html:371"}, "properties": {"repobilityId": "f27baa21e0203851", "scanner": "scanner-primary", "fingerprint": "d16e929e8c65eec0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-27.html"}, "region": {"startLine": 371}}}]}, {"ruleId": "scanner-bd8e1d525788d3f0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-27.html:635"}, "properties": {"repobilityId": "02b633638deb781d", "scanner": "scanner-primary", "fingerprint": "bd8e1d525788d3f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-27.html"}, "region": {"startLine": 635}}}]}, {"ruleId": "scanner-494503b5607c41c7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-11.html:554"}, "properties": {"repobilityId": "76fa02854c199325", "scanner": "scanner-primary", "fingerprint": "494503b5607c41c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-11.html"}, "region": {"startLine": 554}}}]}, {"ruleId": "scanner-ebc7eacb267be927", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-11.html:940"}, "properties": {"repobilityId": "9ea686ee510231cf", "scanner": "scanner-primary", "fingerprint": "ebc7eacb267be927", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-11.html"}, "region": {"startLine": 940}}}]}, {"ruleId": "scanner-7d7997a8fe84880c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-04.html:557"}, "properties": {"repobilityId": "1d427563dbfca921", "scanner": "scanner-primary", "fingerprint": "7d7997a8fe84880c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-04.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-d91e82b5fb8fcdbd", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-04.html:943"}, "properties": {"repobilityId": "823fbdeda58fcc38", "scanner": "scanner-primary", "fingerprint": "d91e82b5fb8fcdbd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-04.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-f885e0f12b9f4a2e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-03.html:557"}, "properties": {"repobilityId": "7375d17f5bb09b3b", "scanner": "scanner-primary", "fingerprint": "f885e0f12b9f4a2e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-03.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-24fa2d84f18067ec", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-03.html:943"}, "properties": {"repobilityId": "6d54db88412697a1", "scanner": "scanner-primary", "fingerprint": "24fa2d84f18067ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-03.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-71ad6a0aa803c9da", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-05-21.html:328"}, "properties": {"repobilityId": "3a235454fb3e5fca", "scanner": "scanner-primary", "fingerprint": "71ad6a0aa803c9da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-21.html"}, "region": {"startLine": 328}}}]}, {"ruleId": "scanner-da8ab9ed048afcb4", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-05-21.html:518"}, "properties": {"repobilityId": "4c20ca3dd55c4026", "scanner": "scanner-primary", "fingerprint": "da8ab9ed048afcb4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-05-21.html"}, "region": {"startLine": 518}}}]}, {"ruleId": "scanner-da3a6b7fe74b7aad", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/2026-06-09.html:557"}, "properties": {"repobilityId": "a77c58f5792ca513", "scanner": "scanner-primary", "fingerprint": "da3a6b7fe74b7aad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-09.html"}, "region": {"startLine": 557}}}]}, {"ruleId": "scanner-10fea0086371e652", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/2026-06-09.html:943"}, "properties": {"repobilityId": "caf4a55d9e3f4384", "scanner": "scanner-primary", "fingerprint": "10fea0086371e652", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/2026-06-09.html"}, "region": {"startLine": 943}}}]}, {"ruleId": "scanner-0ee3a9f45864ba9c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3c468463d61ccadd", "scanner": "scanner-primary", "fingerprint": "0ee3a9f45864ba9c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/blend_goal_sweep.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-0ee3a9f45864ba9c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bf566a32aa145191", "scanner": "scanner-primary", "fingerprint": "0ee3a9f45864ba9c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/blend_goal_sweep.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-7fc405803d421551", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "222ccc24c1f3cba2", "scanner": "scanner-primary", "fingerprint": "7fc405803d421551", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/blend_goal_sweep.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cec3f6f904b36494", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0753fca95fdb791f", "scanner": "scanner-primary", "fingerprint": "cec3f6f904b36494", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/retrain.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-adf0b074babcd627", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "05227d8a32866742", "scanner": "scanner-primary", "fingerprint": "adf0b074babcd627", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/retrain.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d213c39d7992bd21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bf245c8319a2b5c3", "scanner": "scanner-primary", "fingerprint": "d213c39d7992bd21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/sentiment.yml"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-d213c39d7992bd21", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "19e1e996419d1ec1", "scanner": "scanner-primary", "fingerprint": "d213c39d7992bd21", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/sentiment.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-562e609385bc6bb0", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "a6b1fe324698619e", "scanner": "scanner-primary", "fingerprint": "562e609385bc6bb0", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/sentiment.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-abd38e75c1dd6db7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "021f7ed98adb3db3", "scanner": "scanner-primary", "fingerprint": "abd38e75c1dd6db7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily_signal.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-0f5902a844c6d410", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "98d55a46ca56bb01", "scanner": "scanner-primary", "fingerprint": "0f5902a844c6d410", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/daily_signal.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "143bd473ac8c3120", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "e86545d4dae58e74", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "95a93a2148551259", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "10a0fa1778b137cb", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "d98e2102af04f707", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "5a8bf9aaeb388cda", "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": "52b43a75e6cdb23b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e0f8baf4c1fd0f27", "level": "note", "message": {"text": "Legacy-named symbol `conviction_v1` in config.py:52"}, "properties": {"repobilityId": "a9058555ddf9d8fa", "scanner": "scanner-primary", "fingerprint": "e0f8baf4c1fd0f27", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf8b4ba2a8a996f9", "level": "none", "message": {"text": "Commented-code block (7 lines) in config.py:36"}, "properties": {"repobilityId": "b28442de7d7b9909", "scanner": "scanner-primary", "fingerprint": "bf8b4ba2a8a996f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70384726b1d66f9d", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in models/inference_v3.py:45"}, "properties": {"repobilityId": "75bd66faf9b15e1a", "scanner": "scanner-primary", "fingerprint": "70384726b1d66f9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f205c0a5aa93bf58", "level": "none", "message": {"text": "Commented-code block (5 lines) in models/inference_v3.py:298"}, "properties": {"repobilityId": "0d87d02cbd3169fe", "scanner": "scanner-primary", "fingerprint": "f205c0a5aa93bf58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08174e5e0b216ce6", "level": "note", "message": {"text": "Legacy-named symbol `lgbm_phase3_v2` in models/train_lgbm_v2.py:7"}, "properties": {"repobilityId": "f3c59bc4130147fe", "scanner": "scanner-primary", "fingerprint": "08174e5e0b216ce6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-03a0f9ef24bfd727", "level": "none", "message": {"text": "Commented-code block (6 lines) in models/train_lgbm_v2.py:31"}, "properties": {"repobilityId": "2b49e36d4fb84adf", "scanner": "scanner-primary", "fingerprint": "03a0f9ef24bfd727", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8363b2420f9d30a5", "level": "note", "message": {"text": "Legacy-named symbol `conviction_v1` in signals/conviction.py:22"}, "properties": {"repobilityId": "e60ef88104f57cb7", "scanner": "scanner-primary", "fingerprint": "8363b2420f9d30a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-98160a750caf0c19", "level": "none", "message": {"text": "Commented-code block (6 lines) in signals/conviction.py:204"}, "properties": {"repobilityId": "a18bc102913bac55", "scanner": "scanner-primary", "fingerprint": "98160a750caf0c19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66bd7232c7401f4a", "level": "none", "message": {"text": "Commented-code block (5 lines) in signals/trend_core.py:50"}, "properties": {"repobilityId": "59a9bd44b0cf27d1", "scanner": "scanner-primary", "fingerprint": "66bd7232c7401f4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-435cb626c4316790", "level": "note", "message": {"text": "Legacy-named symbol `w_old` in scripts/research_open_execution.py:98"}, "properties": {"repobilityId": "bf0841ddffb8a6f9", "scanner": "scanner-primary", "fingerprint": "435cb626c4316790", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-617b8095640b5e41", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/retrain_v6_bagging.py:30"}, "properties": {"repobilityId": "e0e010e9d099ea59", "scanner": "scanner-primary", "fingerprint": "617b8095640b5e41", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-08228b25a693c379", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/retrain_v5_with_regime_features.py:32"}, "properties": {"repobilityId": "1670224037099143", "scanner": "scanner-primary", "fingerprint": "08228b25a693c379", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-219b2581ab48abcb", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/nightly_retrain.py:53"}, "properties": {"repobilityId": "a7c9f90b15a6b658", "scanner": "scanner-primary", "fingerprint": "219b2581ab48abcb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5708ceeca3206af9", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/nightly_retrain.py:82"}, "properties": {"repobilityId": "198fd3e37e5df6dc", "scanner": "scanner-primary", "fingerprint": "5708ceeca3206af9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9df0c097b114c05b", "level": "note", "message": {"text": "Legacy-named symbol `proba_v2` in scripts/final_topk_comparison.py:60"}, "properties": {"repobilityId": "0fcaab02676ecf86", "scanner": "scanner-primary", "fingerprint": "9df0c097b114c05b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d5aec06de49534f4", "level": "note", "message": {"text": "Legacy-named symbol `regime_v2` in scripts/experiment_v4_layered.py:172"}, "properties": {"repobilityId": "a627ed272e69e6ac", "scanner": "scanner-primary", "fingerprint": "d5aec06de49534f4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-df16da69aa23c619", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/integrated_backtest_v3.py:22"}, "properties": {"repobilityId": "0a6cc704a93b97f4", "scanner": "scanner-primary", "fingerprint": "df16da69aa23c619", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d526445d6753e885", "level": "note", "message": {"text": "Legacy-named symbol `yr_v1` in scripts/yearly_wr_dailyret.py:22"}, "properties": {"repobilityId": "7ea6531d580f10c6", "scanner": "scanner-primary", "fingerprint": "d526445d6753e885", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-312da534806d3e7e", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/run_phase3_v2.py:17"}, "properties": {"repobilityId": "f3ea8eb21e2600eb", "scanner": "scanner-primary", "fingerprint": "312da534806d3e7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-347814e9e6fafb51", "level": "note", "message": {"text": "Legacy-named symbol `conviction_v2` in scripts/experiment_options_regime.py:1"}, "properties": {"repobilityId": "3ec383a91070495e", "scanner": "scanner-primary", "fingerprint": "347814e9e6fafb51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9e41b1d47f2257a5", "level": "note", "message": {"text": "Legacy-named symbol `conviction_v1` in scripts/run_daily.py:271"}, "properties": {"repobilityId": "a7b60b33c1439ca3", "scanner": "scanner-primary", "fingerprint": "9e41b1d47f2257a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f47e36a83ccb5d89", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/run_daily.py:173"}, "properties": {"repobilityId": "ba8a0638ba40feb7", "scanner": "scanner-primary", "fingerprint": "f47e36a83ccb5d89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea579ffae6f31195", "level": "note", "message": {"text": "Legacy-named symbol `run_phase3_v2` in scripts/enhanced_backtest_v2.py:26"}, "properties": {"repobilityId": "15dbd73082d7124e", "scanner": "scanner-primary", "fingerprint": "ea579ffae6f31195", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-da81c62048f8326c", "level": "note", "message": {"text": "Legacy-named symbol `research_short_v2` in scripts/research_short_v2_production.py:3"}, "properties": {"repobilityId": "43214052c44e76b1", "scanner": "scanner-primary", "fingerprint": "da81c62048f8326c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-51789942c2bc9ba6", "level": "note", "message": {"text": "Legacy-named symbol `conviction_v1` in scripts/experiment_round4.py:1"}, "properties": {"repobilityId": "19224c6084c3c8a2", "scanner": "scanner-primary", "fingerprint": "51789942c2bc9ba6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a140c08675d83dc7", "level": "note", "message": {"text": "Legacy-named symbol `train_lgbm_v2` in scripts/experiment_weighted_v3.py:28"}, "properties": {"repobilityId": "b89a2cacd40419bf", "scanner": "scanner-primary", "fingerprint": "a140c08675d83dc7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a2d8d19beb11c1f9", "level": "note", "message": {"text": "Legacy-named symbol `research_short_v2` in scripts/research_short_v2.py:42"}, "properties": {"repobilityId": "53adf76cfc2fa448", "scanner": "scanner-primary", "fingerprint": "a2d8d19beb11c1f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ecd18fa8d35d4937", "level": "note", "message": {"text": "Legacy-named symbol `conviction_v2` in scripts/experiment_non_vix_regime.py:3"}, "properties": {"repobilityId": "83f0c6787bd04c77", "scanner": "scanner-primary", "fingerprint": "ecd18fa8d35d4937", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d31f93e278a8424c", "level": "note", "message": {"text": "Legacy-named symbol `s_v2` in scripts/push_wr_higher.py:38"}, "properties": {"repobilityId": "935c3d1a1a1ca419", "scanner": "scanner-primary", "fingerprint": "d31f93e278a8424c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0d45dd9526c6128b", "level": "none", "message": {"text": "Commented-code block (5 lines) in sentiment/aggregator.py:34"}, "properties": {"repobilityId": "9cccbbcd1d02f9c0", "scanner": "scanner-primary", "fingerprint": "0d45dd9526c6128b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c74cf6cf79e9c3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in paper/portfolio_tracker.py:42"}, "properties": {"repobilityId": "df2db0c80f649d81", "scanner": "scanner-primary", "fingerprint": "3c74cf6cf79e9c3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0b17c8c07a7421d", "level": "note", "message": {"text": "8 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "17fe720e8247f9df", "scanner": "scanner-primary", "fingerprint": "d0b17c8c07a7421d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "62d96d9c5a7a0a41", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "0048df4a2cd8cdfb", "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": "7ac177f3248a63de", "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": "303d677de15059c8", "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": "48e406fb596d0d72", "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": "c61240759d1e16af", "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": "6310d22515f54ce0", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}