{"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-4e64c79743ec8962", "name": "Possibly dead Python function: wrapped_expand", "shortDescription": {"text": "Possibly dead Python function: wrapped_expand"}, "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-b17c6cdbb0b13076", "name": "Possibly dead Python function: counting_search", "shortDescription": {"text": "Possibly dead Python function: counting_search"}, "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-36027d6d91418996", "name": "Possibly dead Python function: wrapped", "shortDescription": {"text": "Possibly dead Python function: wrapped"}, "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-22474aa6de206b0d", "name": "Possibly dead Python function: forward", "shortDescription": {"text": "Possibly dead Python function: forward"}, "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-7a5e513e5f7321ff", "name": "Possibly dead Python function: total_score", "shortDescription": {"text": "Possibly dead Python function: total_score"}, "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-11e1708d90503ff4", "name": "Possibly dead Python function: wrapped", "shortDescription": {"text": "Possibly dead Python function: wrapped"}, "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-cf96860263e67226", "name": "Possibly dead Python function: center_opponent", "shortDescription": {"text": "Possibly dead Python function: center_opponent"}, "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-339cf91e91812678", "name": "Possibly dead Python function: random_opponent", "shortDescription": {"text": "Possibly dead Python function: random_opponent"}, "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-7172074557ed0d89", "name": "Possibly dead Python function: action_masks", "shortDescription": {"text": "Possibly dead Python function: action_masks"}, "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-9184c5d460fd3765", "name": "Possibly dead Python function: logits_agent", "shortDescription": {"text": "Possibly dead Python function: logits_agent"}, "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-f9db841656968913", "name": "Possibly dead Python function: forward", "shortDescription": {"text": "Possibly dead Python function: forward"}, "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-3adce68bba741551", "name": "Possibly dead Python function: legal_from_obs", "shortDescription": {"text": "Possibly dead Python function: legal_from_obs"}, "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-9879b8e5f589d828", "name": "Possibly dead Python function: sample_masked_action", "shortDescription": {"text": "Possibly dead Python function: sample_masked_action"}, "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-f26b6db3e41f5667", "name": "Possibly dead Python function: forward", "shortDescription": {"text": "Possibly dead Python function: forward"}, "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-bdeefd17440e6291", "name": "Possibly dead Python function: puct_score", "shortDescription": {"text": "Possibly dead Python function: puct_score"}, "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-23e807d582cfca98", "name": "Possibly dead Python function: state_to_board", "shortDescription": {"text": "Possibly dead Python function: state_to_board"}, "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-f2b466e5bafb6297", "name": "Possibly dead Python function: clear_table", "shortDescription": {"text": "Possibly dead Python function: clear_table"}, "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-954052fa10191ec9", "name": "Possibly dead Python function: solve_timed", "shortDescription": {"text": "Possibly dead Python function: solve_timed"}, "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-c27b936f3ec919bc", "name": "Possibly dead Python function: sample_selfplay_positions", "shortDescription": {"text": "Possibly dead Python function: sample_selfplay_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-17653cb48c404905", "name": "Possibly dead Python function: action_masks", "shortDescription": {"text": "Possibly dead Python function: action_masks"}, "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-a7e565d9de6018e3", "name": "Possibly dead Python function: set_state", "shortDescription": {"text": "Possibly dead Python function: set_state"}, "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-e20a59f05cf36192", "name": "Possibly dead Python function: kaggle_observation", "shortDescription": {"text": "Possibly dead Python function: kaggle_observation"}, "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-3543273e47669aff", "name": "Possibly dead Python function: best_checkpoint_from_run", "shortDescription": {"text": "Possibly dead Python function: best_checkpoint_from_run"}, "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-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-08a68ec2c8031382", "name": "Insecure pattern 'eval_used' in submission/submission_q_learning.py:20", "shortDescription": {"text": "Insecure pattern 'eval_used' in submission/submission_q_learning.py:20"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6a54d8ace9177bb4", "name": "Insecure pattern 'exec_used' in connectx/submission/make_submission.py:535", "shortDescription": {"text": "Insecure pattern 'exec_used' in connectx/submission/make_submission.py:535"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "7 tests / 55 src (ratio 0.13)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 53 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, ci. 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-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-543c3cf22b3d772d", "name": "Legacy-named symbol `submission_alphazero_solver_gen8_v2` in scripts/validate_solver_v2.py:2", "shortDescription": {"text": "Legacy-named symbol `submission_alphazero_solver_gen8_v2` in scripts/validate_solver_v2.py:2"}, "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-60c88d2db2fe18ca", "name": "Legacy-named symbol `submission_alphazero_solver_gen8_v2` in connectx/submission/make_solver_submission_v2.py:1", "shortDescription": {"text": "Legacy-named symbol `submission_alphazero_solver_gen8_v2` in connectx/submission/make_solver_submission_v2.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-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/validate_solver_v2.py:passed, scripts/validate_hybrid.py:passed\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/validate_solver_v2.py:load_agent, scripts/validate_hybrid.py:load_agent, scripts/validate_cached.py:load_module\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nconnectx/agents/q_learning.py:agent_fn, connectx/agents/q_learning.py:agent, connectx/agents/dqn.py:agent_fn, connectx/agents/dqn.py:agent\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/19369"}, "properties": {"repository": "shallow777/ConnectX", "repoUrl": "https://github.com/shallow777/ConnectX", "branch": "main"}, "results": [{"ruleId": "scanner-4e64c79743ec8962", "level": "note", "message": {"text": "Possibly dead Python function: wrapped_expand"}, "properties": {"repobilityId": "177dd49334c116b9", "scanner": "scanner-primary", "fingerprint": "4e64c79743ec8962", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/diagnose_solver.py:99"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b17c6cdbb0b13076", "level": "note", "message": {"text": "Possibly dead Python function: counting_search"}, "properties": {"repobilityId": "d75e3cbb059374e3", "scanner": "scanner-primary", "fingerprint": "b17c6cdbb0b13076", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate_cached.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-36027d6d91418996", "level": "note", "message": {"text": "Possibly dead Python function: wrapped"}, "properties": {"repobilityId": "faacdada21d43bd9", "scanner": "scanner-primary", "fingerprint": "36027d6d91418996", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate_submission.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22474aa6de206b0d", "level": "note", "message": {"text": "Possibly dead Python function: forward"}, "properties": {"repobilityId": "ea414cce7f8e5874", "scanner": "scanner-primary", "fingerprint": "22474aa6de206b0d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/validate_submission.py:218"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a5e513e5f7321ff", "level": "note", "message": {"text": "Possibly dead Python function: total_score"}, "properties": {"repobilityId": "b25068c913cb736f", "scanner": "scanner-primary", "fingerprint": "7a5e513e5f7321ff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/evaluation/arena.py:89"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11e1708d90503ff4", "level": "note", "message": {"text": "Possibly dead Python function: wrapped"}, "properties": {"repobilityId": "faacdada21d43bd9", "scanner": "scanner-primary", "fingerprint": "11e1708d90503ff4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/evaluation/kaggle_eval.py:28"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cf96860263e67226", "level": "note", "message": {"text": "Possibly dead Python function: center_opponent"}, "properties": {"repobilityId": "837eddd40bd6a0ea", "scanner": "scanner-primary", "fingerprint": "cf96860263e67226", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/ppo_selfplay.py:26"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-339cf91e91812678", "level": "note", "message": {"text": "Possibly dead Python function: random_opponent"}, "properties": {"repobilityId": "89a07dc2be8da1e8", "scanner": "scanner-primary", "fingerprint": "339cf91e91812678", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/ppo_selfplay.py:31"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7172074557ed0d89", "level": "note", "message": {"text": "Possibly dead Python function: action_masks"}, "properties": {"repobilityId": "46d37999e2017621", "scanner": "scanner-primary", "fingerprint": "7172074557ed0d89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/ppo_selfplay.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9184c5d460fd3765", "level": "note", "message": {"text": "Possibly dead Python function: logits_agent"}, "properties": {"repobilityId": "dfc87fd2d3f1fe53", "scanner": "scanner-primary", "fingerprint": "9184c5d460fd3765", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/ppo_selfplay.py:249"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9db841656968913", "level": "note", "message": {"text": "Possibly dead Python function: forward"}, "properties": {"repobilityId": "ea414cce7f8e5874", "scanner": "scanner-primary", "fingerprint": "f9db841656968913", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/dqn.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3adce68bba741551", "level": "note", "message": {"text": "Possibly dead Python function: legal_from_obs"}, "properties": {"repobilityId": "6e62599fe1446845", "scanner": "scanner-primary", "fingerprint": "3adce68bba741551", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/utils.py:40"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9879b8e5f589d828", "level": "note", "message": {"text": "Possibly dead Python function: sample_masked_action"}, "properties": {"repobilityId": "09edf5e8b6825309", "scanner": "scanner-primary", "fingerprint": "9879b8e5f589d828", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/utils.py:71"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f26b6db3e41f5667", "level": "note", "message": {"text": "Possibly dead Python function: forward"}, "properties": {"repobilityId": "ea414cce7f8e5874", "scanner": "scanner-primary", "fingerprint": "f26b6db3e41f5667", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/alphazero/network.py:76"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bdeefd17440e6291", "level": "note", "message": {"text": "Possibly dead Python function: puct_score"}, "properties": {"repobilityId": "942beafa7d89016d", "scanner": "scanner-primary", "fingerprint": "bdeefd17440e6291", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/agents/alphazero/mcts.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-23e807d582cfca98", "level": "note", "message": {"text": "Possibly dead Python function: state_to_board"}, "properties": {"repobilityId": "3bb7f9657535ffe5", "scanner": "scanner-primary", "fingerprint": "23e807d582cfca98", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/solver/bitboard.py:64"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2b466e5bafb6297", "level": "note", "message": {"text": "Possibly dead Python function: clear_table"}, "properties": {"repobilityId": "56afa6372581b04f", "scanner": "scanner-primary", "fingerprint": "f2b466e5bafb6297", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/solver/bitboard.py:119"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-954052fa10191ec9", "level": "note", "message": {"text": "Possibly dead Python function: solve_timed"}, "properties": {"repobilityId": "3eec0580400c22f3", "scanner": "scanner-primary", "fingerprint": "954052fa10191ec9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/solver/bitboard.py:150"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c27b936f3ec919bc", "level": "note", "message": {"text": "Possibly dead Python function: sample_selfplay_positions"}, "properties": {"repobilityId": "d49bb56330a3adf2", "scanner": "scanner-primary", "fingerprint": "c27b936f3ec919bc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/solver/bitboard.py:288"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-17653cb48c404905", "level": "note", "message": {"text": "Possibly dead Python function: action_masks"}, "properties": {"repobilityId": "46d37999e2017621", "scanner": "scanner-primary", "fingerprint": "17653cb48c404905", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/envs/connectx_env.py:272"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7e565d9de6018e3", "level": "note", "message": {"text": "Possibly dead Python function: set_state"}, "properties": {"repobilityId": "7de708d57934274a", "scanner": "scanner-primary", "fingerprint": "a7e565d9de6018e3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/envs/connectx_env.py:287"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e20a59f05cf36192", "level": "note", "message": {"text": "Possibly dead Python function: kaggle_observation"}, "properties": {"repobilityId": "409cda7de035f40c", "scanner": "scanner-primary", "fingerprint": "e20a59f05cf36192", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/envs/connectx_env.py:297"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3543273e47669aff", "level": "note", "message": {"text": "Possibly dead Python function: best_checkpoint_from_run"}, "properties": {"repobilityId": "8ec20da75ed60c2e", "scanner": "scanner-primary", "fingerprint": "3543273e47669aff", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/training/train_alphazero.py:112"}, "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-08a68ec2c8031382", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in submission/submission_q_learning.py:20"}, "properties": {"repobilityId": "e6f6f5e052e70f2b", "scanner": "scanner-primary", "fingerprint": "08a68ec2c8031382", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "submission/submission_q_learning.py"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-6a54d8ace9177bb4", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in connectx/submission/make_submission.py:535"}, "properties": {"repobilityId": "72d42e36f5bc05ff", "scanner": "scanner-primary", "fingerprint": "6a54d8ace9177bb4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "connectx/submission/make_submission.py"}, "region": {"startLine": 535}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "e8ce04a6cf95727e", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2354dadea45e92c7", "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": "ff3a4094ddedb79a", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "3c3180782f0a08b7", "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": "4ee15d8120f9acc3", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-543c3cf22b3d772d", "level": "note", "message": {"text": "Legacy-named symbol `submission_alphazero_solver_gen8_v2` in scripts/validate_solver_v2.py:2"}, "properties": {"repobilityId": "432c0ec75e67ec90", "scanner": "scanner-primary", "fingerprint": "543c3cf22b3d772d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-60c88d2db2fe18ca", "level": "note", "message": {"text": "Legacy-named symbol `submission_alphazero_solver_gen8_v2` in connectx/submission/make_solver_submission_v2.py:1"}, "properties": {"repobilityId": "577791f87555d2e1", "scanner": "scanner-primary", "fingerprint": "60c88d2db2fe18ca", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "a7233af3a05354cd", "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": "58ce168d476cdec9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "c60790697279045a", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3eedd75edd9d2761", "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": "d8475e16dd43bb30", "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": "16040870af89cf56", "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": "532bfc1eb0d6d4d6", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "48da61ae6d0b5ae3", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "dcff5422e369dd1d", "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": "25009de2a5020f52", "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": "b59c9f6f18d8f040", "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": "fcc9bb5ebadca80a", "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": "20b6e463bc0a989c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "8c4af1e6f0da516b", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "0ebe343f43bd1a55", "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": "d3eb7570b54088c9", "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": "3a8e5eee9a46c26e", "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": "73bea49da48f705e", "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": "aa34d2eb3dd4ed9e", "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": "2ae3af77ffeea636", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}