{"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-78808dd56a007ba4", "name": "Possibly dead Python function: chars_to_tokens", "shortDescription": {"text": "Possibly dead Python function: chars_to_tokens"}, "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-5b9c65172668ce22", "name": "Possibly dead Python function: beta_tool", "shortDescription": {"text": "Possibly dead Python function: beta_tool"}, "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-ca39e337ae6251dc", "name": "Possibly dead Python function: profiled_start_toolset_unified", "shortDescription": {"text": "Possibly dead Python function: profiled_start_toolset_unified"}, "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-5f7b6908ed6685ce", "name": "Possibly dead Python function: generate_test_data", "shortDescription": {"text": "Possibly dead Python function: generate_test_data"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85caf7d8188e21a6", "name": "Possibly dead Python function: visualize_dropout", "shortDescription": {"text": "Possibly dead Python function: visualize_dropout"}, "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-207f1814081cc24b", "name": "Possibly dead Python function: mkdir_p", "shortDescription": {"text": "Possibly dead Python function: mkdir_p"}, "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-c00c32ca9afd494e", "name": "Possibly dead Python function: correct_scanpy", "shortDescription": {"text": "Possibly dead Python function: correct_scanpy"}, "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-04df4772789a8796", "name": "Possibly dead Python function: integrate_scanpy", "shortDescription": {"text": "Possibly dead Python function: integrate_scanpy"}, "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-d7a422c301af2a75", "name": "Possibly dead Python function: assemble_accum", "shortDescription": {"text": "Possibly dead Python function: assemble_accum"}, "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-872e46e435ecc05a", "name": "Possibly dead Python function: visualize_dropout", "shortDescription": {"text": "Possibly dead Python function: visualize_dropout"}, "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-1fa8ac3099eb5739", "name": "Possibly dead Python function: mkdir_p", "shortDescription": {"text": "Possibly dead Python function: mkdir_p"}, "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-5f37ae0bc46c086e", "name": "Possibly dead Python function: correct_scanpy", "shortDescription": {"text": "Possibly dead Python function: correct_scanpy"}, "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-e04ec1d0329c21ed", "name": "Possibly dead Python function: integrate_scanpy", "shortDescription": {"text": "Possibly dead Python function: integrate_scanpy"}, "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-87f9eb679f83e7e1", "name": "Possibly dead Python function: assemble_accum", "shortDescription": {"text": "Possibly dead Python function: assemble_accum"}, "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-ba9491965d64fd4d", "name": "Possibly dead Python function: ridge_regression", "shortDescription": {"text": "Possibly dead Python function: ridge_regression"}, "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-caffdf54a715bbdc", "name": "Possibly dead Python function: extract_cell_connectivity", "shortDescription": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "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-0a691a08ff6f2605", "name": "Possibly dead Python function: ridge_regression", "shortDescription": {"text": "Possibly dead Python function: ridge_regression"}, "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-eb401c87df39f336", "name": "Possibly dead Python function: extract_cell_connectivity", "shortDescription": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "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-df0c1132b136e795", "name": "Possibly dead Python function: ridge_regression", "shortDescription": {"text": "Possibly dead Python function: ridge_regression"}, "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-0af9ba13283a2d70", "name": "Possibly dead Python function: extract_cell_connectivity", "shortDescription": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "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-5dc7769616bf9ad9", "name": "Possibly dead Python function: ridge_regression", "shortDescription": {"text": "Possibly dead Python function: ridge_regression"}, "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-59e70c0a42eae9c5", "name": "Possibly dead Python function: extract_cell_connectivity", "shortDescription": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "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-53fb2a7e35c9efc3", "name": "Possibly dead Python function: ridge_regression", "shortDescription": {"text": "Possibly dead Python function: ridge_regression"}, "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-a526e0cff6037c3a", "name": "Possibly dead Python function: extract_cell_connectivity", "shortDescription": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "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-b22a22e2c264c161", "name": "Possibly dead Python function: pseudobulk", "shortDescription": {"text": "Possibly dead Python function: pseudobulk"}, "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-4f2b7d093d6a6bb4", "name": "Privileged port 127 in use", "shortDescription": {"text": "Privileged port 127 in use"}, "fullDescription": {"text": "Port 127 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-47636e33caef255d", "name": "Dockerfile runs as root: docker/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: docker/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf828b0c570aeddb", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim-bookworm", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim-bookworm"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-43e496167fde2f4c", "name": "Runtime dotenv file present in repo: .env.test", "shortDescription": {"text": "Runtime dotenv file present in repo: .env.test"}, "fullDescription": {"text": "`.env.test` looks like a runtime dotenv file. It contains secret-looking assignments for OPENAI_API_KEY. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-47fe6f82028ee6b2", "name": "Insecure pattern 'python_os_system' in pantheon/__main__.py:33", "shortDescription": {"text": "Insecure pattern 'python_os_system' in pantheon/__main__.py:33"}, "fullDescription": {"text": "Found a known-risky pattern (python_os_system). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cadadacbf0468b8e", "name": "Insecure pattern 'direct_innerhtml_assignment' in pantheon/evolution/visualizer.py:1941", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pantheon/evolution/visualizer.py:1941"}, "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-d26820b9e1a20b74", "name": "Insecure pattern 'tls_verify_false' in pantheon/toolsets/web_urllib.py:266", "shortDescription": {"text": "Insecure pattern 'tls_verify_false' in pantheon/toolsets/web_urllib.py:266"}, "fullDescription": {"text": "Found a known-risky pattern (tls_verify_false). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e219b457ba1e4b9b", "name": "Insecure pattern 'eval_used' in pantheon/toolsets/python/python_interpreter.py:30", "shortDescription": {"text": "Insecure pattern 'eval_used' in pantheon/toolsets/python/python_interpreter.py:30"}, "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-97a477c303eb4192", "name": "Insecure pattern 'exec_used' in pantheon/toolsets/python/python_interpreter.py:34", "shortDescription": {"text": "Insecure pattern 'exec_used' in pantheon/toolsets/python/python_interpreter.py:34"}, "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-f5fb66426b4625dc", "name": "Insecure pattern 'python_os_system' in pantheon/repl/__main__.py:37", "shortDescription": {"text": "Insecure pattern 'python_os_system' in pantheon/repl/__main__.py:37"}, "fullDescription": {"text": "Found a known-risky pattern (python_os_system). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-47c0b066128f0181", "name": "Insecure pattern 'subprocess_shell_true' in pantheon/repl/handlers/builtin/bash.py:24", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in pantheon/repl/handlers/builtin/bash.py:24"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a8481ab4ed5c449", "name": "Insecure pattern 'eval_used' in cmd2func/config.py:43", "shortDescription": {"text": "Insecure pattern 'eval_used' in cmd2func/config.py:43"}, "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-95e0322417277d8c", "name": "Insecure pattern 'eval_used' in funcdesc/parse.py:114", "shortDescription": {"text": "Insecure pattern 'eval_used' in funcdesc/parse.py:114"}, "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-99334a44708ab2aa", "name": "Insecure pattern 'eval_used' in funcdesc/utils/json.py:77", "shortDescription": {"text": "Insecure pattern 'eval_used' in funcdesc/utils/json.py:77"}, "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-7efbda965f283c17", "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-15c526fd9d0f630c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "docker/login-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-723deded602ecf73", "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@v2 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-f54d0d3a389cb4de", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f1fa3dd79d3d1ade", "name": "GitHub Action tracks a moving branch", "shortDescription": {"text": "GitHub Action tracks a moving branch"}, "fullDescription": {"text": "aquasecurity/trivy-action@master 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": "high", "confidence": 1.0}}, {"id": "scanner-4724e05098b6722d", "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-41be518b6a574078", "name": "Very large file: tests/test_scfm.py (2131 lines)", "shortDescription": {"text": "Very large file: tests/test_scfm.py (2131 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f78e4f222475f38", "name": "Very large file: tests/test_token_optimization.py (1725 lines)", "shortDescription": {"text": "Very large file: tests/test_token_optimization.py (1725 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-461e421ad08da6d0", "name": "Very large file: examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py (1415 ", "shortDescription": {"text": "Very large file: examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py (1415 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17d99aef77ed982c", "name": "Very large file: examples/evolution_gene_panel/results_explore_primary/rl_gene_panel_optimized.py (1377 lines)", "shortDescription": {"text": "Very large file: examples/evolution_gene_panel/results_explore_primary/rl_gene_panel_optimized.py (1377 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88a5dff9ada53b5f", "name": "Very large file: pantheon/agent.py (2937 lines)", "shortDescription": {"text": "Very large file: pantheon/agent.py (2937 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-53d7089b04cd21ed", "name": "Very large file: pantheon/evolution/team.py (1335 lines)", "shortDescription": {"text": "Very large file: pantheon/evolution/team.py (1335 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be4029ae25f60771", "name": "Very large file: pantheon/evolution/visualizer.py (4344 lines)", "shortDescription": {"text": "Very large file: pantheon/evolution/visualizer.py (4344 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-59f968c9860f1c36", "name": "Very large file: pantheon/toolsets/evolution/evolution_toolset.py (1633 lines)", "shortDescription": {"text": "Very large file: pantheon/toolsets/evolution/evolution_toolset.py (1633 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5c71ebc4b8da762", "name": "Very large file: pantheon/toolsets/file/file_manager.py (2124 lines)", "shortDescription": {"text": "Very large file: pantheon/toolsets/file/file_manager.py (2124 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ddc672c2ecd2ac4", "name": "Very large file: pantheon/toolsets/notebook/integrated_notebook.py (2092 lines)", "shortDescription": {"text": "Very large file: pantheon/toolsets/notebook/integrated_notebook.py (2092 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-36e6983d24211e94", "name": "Very large file: pantheon/utils/llm.py (1887 lines)", "shortDescription": {"text": "Very large file: pantheon/utils/llm.py (1887 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d9328cd2817ec91", "name": "Very large file: pantheon/utils/token_optimization.py (2421 lines)", "shortDescription": {"text": "Very large file: pantheon/utils/token_optimization.py (2421 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b33267ec9d538985", "name": "Very large file: pantheon/repl/core.py (2525 lines)", "shortDescription": {"text": "Very large file: pantheon/repl/core.py (2525 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c1b3208eb18ffe0", "name": "Very large file: pantheon/repl/prompt_app.py (1549 lines)", "shortDescription": {"text": "Very large file: pantheon/repl/prompt_app.py (1549 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d91b722f76bcacde", "name": "Very large file: pantheon/chatroom/room.py (3934 lines)", "shortDescription": {"text": "Very large file: pantheon/chatroom/room.py (3934 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 702 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b2a6250083a784", "name": "Placeholder or mock-heavy implementation detected", "shortDescription": {"text": "Placeholder or mock-heavy implementation detected"}, "fullDescription": {"text": "Found 105 placeholder/mock markers across 36 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4807a75e03b20775", "name": "Agent authority lacks a verifier contract: pantheon/factory/templates/mcp.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/mcp.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e5ae7736f16f34f", "name": "Agent instruction contains unpinned remote install: pantheon/factory/templates/mcp.json", "shortDescription": {"text": "Agent instruction contains unpinned remote install: pantheon/factory/templates/mcp.json"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1abd76533d2a28ae", "name": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/structural_biology/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/structural_biology/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ea331e499cc694a", "name": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/scfm/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/scfm/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a128080364bf69e", "name": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/upstream_processing/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/upstream_processing/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e9f1c313c3fe7efb", "name": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/database_access/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/database_access/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2016deb437cd3b07", "name": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/gene_panel_selection/SKILL.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/gene_panel_selection/SKILL.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fa5f54274df38dd", "name": "Legacy-named symbol `test_glm_5_deprecated` in tests/test_glm_5_1_support.py:35", "shortDescription": {"text": "Legacy-named symbol `test_glm_5_deprecated` in tests/test_glm_5_1_support.py:35"}, "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-60cf63dc6ef607ed", "name": "Commented-code block (5 lines) in tests/test_file_manager.py:37", "shortDescription": {"text": "Commented-code block (5 lines) in tests/test_file_manager.py:37"}, "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-eedcf320be3fc2df", "name": "Legacy-named symbol `nOld` in tests/test_learning_system/test_extractor.py:81", "shortDescription": {"text": "Legacy-named symbol `nOld` in tests/test_learning_system/test_extractor.py:81"}, "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-eae51d06caf53001", "name": "Legacy-named symbol `all_timestamps_old` in scripts/benchmark_token_optimizations.py:90", "shortDescription": {"text": "Legacy-named symbol `all_timestamps_old` in scripts/benchmark_token_optimizations.py:90"}, "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-96062c20630d769c", "name": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/harmony.py:526", "shortDescription": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/harmony.py:526"}, "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-f89bb81be94efd3f", "name": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_optimized.py:64", "shortDescription": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_optimized.py:646"}, "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-54c29fe3176f8494", "name": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_best_mixing.py:", "shortDescription": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_best_mixing.py:697"}, "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-03b29f6a257e9b30", "name": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_272.py:631", "shortDescription": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_272.py:631"}, "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-0579bc5542ebb001", "name": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony.py:646", "shortDescription": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony.py:646"}, "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-4d4855d4fecfc439", "name": "Legacy-named symbol `X_old` in examples/evolution_batch_correction/evolution_scanorama/scanorama/scanorama.py:349", "shortDescription": {"text": "Legacy-named symbol `X_old` in examples/evolution_batch_correction/evolution_scanorama/scanorama/scanorama.py:349"}, "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-61144978c0ec531d", "name": "Legacy-named symbol `X_old` in examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scano", "shortDescription": {"text": "Legacy-named symbol `X_old` in examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py:352"}, "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-a5d01e0d34edeb2e", "name": "Commented-code block (6 lines) in examples/evolution_batch_correction/evolution_bbknn/results/bbknn_similar_speed/matrix", "shortDescription": {"text": "Commented-code block (6 lines) in examples/evolution_batch_correction/evolution_bbknn/results/bbknn_similar_speed/matrix.py:254"}, "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-c03f3cf3c5ea1098", "name": "Commented-code block (8 lines) in examples/evolution_topact/topact/spatial.py:333", "shortDescription": {"text": "Commented-code block (8 lines) in examples/evolution_topact/topact/spatial.py:333"}, "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-a6e1f5a7105bed9b", "name": "Legacy-named symbol `adata_copy` in examples/evolution_gene_panel/scripts/run_preprocessing.py:42", "shortDescription": {"text": "Legacy-named symbol `adata_copy` in examples/evolution_gene_panel/scripts/run_preprocessing.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-63ba74c143e691bf", "name": "Legacy-named symbol `logp_old` in examples/evolution_gene_panel/results_explore_primary/rl_gene_panel_optimized.py:256", "shortDescription": {"text": "Legacy-named symbol `logp_old` in examples/evolution_gene_panel/results_explore_primary/rl_gene_panel_optimized.py:256"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bed9cbab425f1bbe", "name": "Legacy-named symbol `logp_old` in examples/evolution_gene_panel/results_optimize_primary/rl_gene_panel_optimized.py:248", "shortDescription": {"text": "Legacy-named symbol `logp_old` in examples/evolution_gene_panel/results_optimize_primary/rl_gene_panel_optimized.py:248"}, "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-6622619321e44187", "name": "Commented-code block (7 lines) in examples/code_distillation/distilled_code.py:37", "shortDescription": {"text": "Commented-code block (7 lines) in examples/code_distillation/distilled_code.py:37"}, "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-09120113939fe0b2", "name": "Commented-code block (7 lines) in examples/code_distillation/results/distilled_code_best.py:37", "shortDescription": {"text": "Commented-code block (7 lines) in examples/code_distillation/results/distilled_code_best.py:37"}, "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-66e4dcc1d7441362", "name": "Legacy-named symbol `clear_old` in executor/engine/manager.py:55", "shortDescription": {"text": "Legacy-named symbol `clear_old` in executor/engine/manager.py:55"}, "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-6d55dc2edcb61b22", "name": "Commented-code block (5 lines) in pantheon/settings.py:852", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/settings.py:852"}, "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-47622a1c4945cea7", "name": "Legacy-named symbol `_evict_old` in pantheon/background.py:142", "shortDescription": {"text": "Legacy-named symbol `_evict_old` in pantheon/background.py:142"}, "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-8077e2ccd4d6ef27", "name": "Stub function `cleanup` (body is just `pass`/`return`) \u2014 pantheon/toolset.py:361", "shortDescription": {"text": "Stub function `cleanup` (body is just `pass`/`return`) \u2014 pantheon/toolset.py:361"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-24b24d7c46afc1f1", "name": "Commented-code block (6 lines) in pantheon/agent.py:1512", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/agent.py:1512"}, "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-0123f2c3c73efea4", "name": "Commented-code block (8 lines) in pantheon/evolution/evaluator.py:84", "shortDescription": {"text": "Commented-code block (8 lines) in pantheon/evolution/evaluator.py:84"}, "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-2b8e8d83b0b41224", "name": "Legacy-named symbol `receive_v1` in pantheon/claw/channels/feishu.py:23", "shortDescription": {"text": "Legacy-named symbol `receive_v1` in pantheon/claw/channels/feishu.py:23"}, "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-e5cf2de9324b8ee5", "name": "Commented-code block (5 lines) in pantheon/claw/channels/feishu.py:659", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/claw/channels/feishu.py:659"}, "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-41f52fb4cbe98b58", "name": "Legacy-named symbol `files_upload_v2` in pantheon/claw/channels/slack.py:180", "shortDescription": {"text": "Legacy-named symbol `files_upload_v2` in pantheon/claw/channels/slack.py:180"}, "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-92b140fb6fb221c1", "name": "Blocking `urllib.request.urlopen(...)` inside `async def web_fetch` \u2014 pantheon/toolsets/web_urllib.py:324", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def web_fetch` \u2014 pantheon/toolsets/web_urllib.py:324"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cd177105f04b0f91", "name": "Stub function `insert` (body is just `pass`/`return`) \u2014 pantheon/toolsets/rag/wrap.py:5", "shortDescription": {"text": "Stub function `insert` (body is just `pass`/`return`) \u2014 pantheon/toolsets/rag/wrap.py:5"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-030f04cd18ad4d6a", "name": "Commented-code block (5 lines) in pantheon/toolsets/python/python_interpreter.py:183", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/toolsets/python/python_interpreter.py:183"}, "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-fc292cec6f662c0e", "name": "Legacy-named symbol `needs_copy` in pantheon/toolsets/scfm/adapters/uce.py:388", "shortDescription": {"text": "Legacy-named symbol `needs_copy` in pantheon/toolsets/scfm/adapters/uce.py:388"}, "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-f04b1eb37f3601f8", "name": "Commented-code block (9 lines) in pantheon/toolsets/file/file_manager.py:1124", "shortDescription": {"text": "Commented-code block (9 lines) in pantheon/toolsets/file/file_manager.py:1124"}, "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-60941668be8b08ed", "name": "Commented-code block (6 lines) in pantheon/toolsets/task/task_state.py:151", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/toolsets/task/task_state.py:151"}, "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-9612ee054997d9db", "name": "Commented-code block (6 lines) in pantheon/toolsets/file_transfer/worker.py:265", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/toolsets/file_transfer/worker.py:265"}, "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-2c23157489aa1518", "name": "Commented-code block (7 lines) in pantheon/toolsets/live_view/toolset.py:527", "shortDescription": {"text": "Commented-code block (7 lines) in pantheon/toolsets/live_view/toolset.py:527"}, "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-8666f650d87063be", "name": "Commented-code block (9 lines) in pantheon/toolsets/live_view/data_server.py:61", "shortDescription": {"text": "Commented-code block (9 lines) in pantheon/toolsets/live_view/data_server.py:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04a6b94895a852b7", "name": "Commented-code block (7 lines) in pantheon/toolsets/notebook/integrated_notebook.py:1692", "shortDescription": {"text": "Commented-code block (7 lines) in pantheon/toolsets/notebook/integrated_notebook.py:1692"}, "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-f8a4f3a45bdb308b", "name": "Commented-code block (8 lines) in pantheon/toolsets/notebook/jupyter_kernel.py:325", "shortDescription": {"text": "Commented-code block (8 lines) in pantheon/toolsets/notebook/jupyter_kernel.py:325"}, "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-26d6c87954cd28c4", "name": "Commented-code block (5 lines) in pantheon/toolsets/notebook/notebook_contents.py:356", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/toolsets/notebook/notebook_contents.py:356"}, "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-c9138dcb4ebae10f", "name": "Commented-code block (9 lines) in pantheon/utils/llm_providers.py:135", "shortDescription": {"text": "Commented-code block (9 lines) in pantheon/utils/llm_providers.py:135"}, "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-a15ff1ffdcf04803", "name": "Commented-code block (5 lines) in pantheon/utils/vision_capability.py:20", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/utils/vision_capability.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec594c4b6671fe9c", "name": "Commented-code block (6 lines) in pantheon/utils/llm.py:681", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/utils/llm.py:681"}, "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-c50810858880ec36", "name": "Commented-code block (5 lines) in pantheon/utils/token_optimization.py:47", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/utils/token_optimization.py:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9892c5e3fedb595a", "name": "Commented-code block (5 lines) in pantheon/utils/adapters/anthropic_adapter.py:109", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/utils/adapters/anthropic_adapter.py:109"}, "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-0cc35a70b9052cd8", "name": "Commented-code block (5 lines) in pantheon/utils/adapters/gemini_adapter.py:178", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/utils/adapters/gemini_adapter.py:178"}, "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-69f6a9e7f48edd88", "name": "Commented-code block (5 lines) in pantheon/utils/adapters/gemini_cli_adapter.py:303", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/utils/adapters/gemini_cli_adapter.py:303"}, "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-1bf99311261642fc", "name": "Commented-code block (6 lines) in pantheon/utils/adapters/openai_adapter.py:209", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/utils/adapters/openai_adapter.py:209"}, "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-a1477fd645095def", "name": "Commented-code block (5 lines) in pantheon/utils/oauth/gemini.py:69", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/utils/oauth/gemini.py:69"}, "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-d2a81fae5a6cee59", "name": "Stub function `log_message` (body is just `pass`/`return`) \u2014 pantheon/utils/oauth/gemini.py:716", "shortDescription": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 pantheon/utils/oauth/gemini.py:716"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8b6633ee7fd1c6e", "name": "Commented-code block (5 lines) in pantheon/team/pantheon.py:609", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/team/pantheon.py:609"}, "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-763abc895fd94668", "name": "Stub function `async_setup` (body is just `pass`/`return`) \u2014 pantheon/team/base.py:14", "shortDescription": {"text": "Stub function `async_setup` (body is just `pass`/`return`) \u2014 pantheon/team/base.py:14"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bce0f632a34e8ef9", "name": "Stub function `close` (body is just `pass`/`return`) \u2014 pantheon/remote/backend/nats.py:420", "shortDescription": {"text": "Stub function `close` (body is just `pass`/`return`) \u2014 pantheon/remote/backend/nats.py:420"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9cb03dbacc164671", "name": "Stub function `servers` (body is just `pass`/`return`) \u2014 pantheon/remote/backend/base.py:76", "shortDescription": {"text": "Stub function `servers` (body is just `pass`/`return`) \u2014 pantheon/remote/backend/base.py:76"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e40619938d57583a", "name": "Blocking `time.sleep(...)` inside `async def _process_message` \u2014 pantheon/repl/core.py:1396", "shortDescription": {"text": "Blocking `time.sleep(...)` inside `async def _process_message` \u2014 pantheon/repl/core.py:1396"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `time.sleep(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6e594f866811d2db", "name": "Commented-code block (6 lines) in pantheon/repl/prompt_app.py:813", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/repl/prompt_app.py:813"}, "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-f193b3085898216f", "name": "Commented-code block (7 lines) in pantheon/repl/task_renderers.py:434", "shortDescription": {"text": "Commented-code block (7 lines) in pantheon/repl/task_renderers.py:434"}, "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-701af3986876935c", "name": "Commented-code block (9 lines) in pantheon/repl/viewers/notify_dialog.py:173", "shortDescription": {"text": "Commented-code block (9 lines) in pantheon/repl/viewers/notify_dialog.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-96f969080e810d21", "name": "Legacy-named symbol `msg_copy` in pantheon/internal/memory/memory.py:384", "shortDescription": {"text": "Legacy-named symbol `msg_copy` in pantheon/internal/memory/memory.py:384"}, "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-ba2b3c9c6cc67fa2", "name": "Stub function `save_metadata` (body is just `pass`/`return`) \u2014 pantheon/internal/memory/storage.py:55", "shortDescription": {"text": "Stub function `save_metadata` (body is just `pass`/`return`) \u2014 pantheon/internal/memory/storage.py:55"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a061ac57aac4dcbe", "name": "Stub function `on_run_start` (body is just `pass`/`return`) \u2014 pantheon/internal/learning_system/plugin.py:48", "shortDescription": {"text": "Stub function `on_run_start` (body is just `pass`/`return`) \u2014 pantheon/internal/learning_system/plugin.py:48"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06ad66a6016fa949", "name": "Network/subprocess call without timeout or try/except \u2014 pantheon/store/seed.py:334", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 pantheon/store/seed.py:334"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3cba1fff33e5bb4", "name": "Commented-code block (5 lines) in pantheon/factory/template_manager.py:400", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/factory/template_manager.py:400"}, "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-46995bbeab440394", "name": "Commented-code block (6 lines) in pantheon/factory/templates/skills/live_view/volume3d/adapter.js:276", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/factory/templates/skills/live_view/volume3d/adapter.js:276"}, "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-a7aafb39e1c301fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pantheon/factory/templates/skills/live_view/spatial3d/adapter.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pantheon/factory/templates/skills/live_view/spatial3d/adapter.js:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ff02ffd15a8a71d", "name": "Commented-code block (6 lines) in pantheon/factory/templates/skills/live_view/gosling/adapter.js:84", "shortDescription": {"text": "Commented-code block (6 lines) in pantheon/factory/templates/skills/live_view/gosling/adapter.js:84"}, "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-97f71702e7c71171", "name": "Commented-code block (5 lines) in pantheon/factory/templates/skills/live_view/phylotree/adapter.js:21", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/factory/templates/skills/live_view/phylotree/adapter.js:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1269ad16c390a1a", "name": "Commented-code block (11 lines) in pantheon/chatroom/start.py:263", "shortDescription": {"text": "Commented-code block (11 lines) in pantheon/chatroom/start.py:263"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9dc7257903c6ab0a", "name": "Commented-code block (5 lines) in pantheon/chatroom/room.py:121", "shortDescription": {"text": "Commented-code block (5 lines) in pantheon/chatroom/room.py:121"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/benchmark_multi_provider.py:est_tokens, scripts/benchmark_token_optimizations.py:est_tokens\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:\nexamples/evolution_batch_correction/evolution_harmonypy/run_evolution.py:run_evolution, examples/evolution_batch_correction/evolution_scanorama/run_evolution.py:run_evolution, examples/evolution_batch_correction/evolution_bbknn/run_evolution.py:run_evolution, examples/evolution_topact/run_evolution.py:run_evolution\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-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nexamples/evolution_batch_correction/evolution_harmonypy/harmony.py:Z_corr, examples/evolution_batch_correction/evolution_harmonypy/results/harmony_optimized.py:Z_corr, examples/evolution_batch_correction/evolution_harmonypy/results/harmony_272.py:Z_corr, examples/evolution_batch_correction/evolution_harmonypy/results/harmony.py:Z_corr\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/24299"}, "properties": {"repository": "aristoteleo/PantheonOS", "repoUrl": "https://github.com/aristoteleo/PantheonOS", "branch": "main"}, "results": [{"ruleId": "scanner-78808dd56a007ba4", "level": "note", "message": {"text": "Possibly dead Python function: chars_to_tokens"}, "properties": {"repobilityId": "83c87d12ffa307ab", "scanner": "scanner-primary", "fingerprint": "78808dd56a007ba4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark_token_optimization_live.py:45"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b9c65172668ce22", "level": "note", "message": {"text": "Possibly dead Python function: beta_tool"}, "properties": {"repobilityId": "618488c87787875b", "scanner": "scanner-primary", "fingerprint": "5b9c65172668ce22", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/benchmark_prompt_cache.py:44"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca39e337ae6251dc", "level": "note", "message": {"text": "Possibly dead Python function: profiled_start_toolset_unified"}, "properties": {"repobilityId": "38eae9a3710c2bb7", "scanner": "scanner-primary", "fingerprint": "ca39e337ae6251dc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/profile_builtin_startup.py:178"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f7b6908ed6685ce", "level": "note", "message": {"text": "Possibly dead Python function: generate_test_data"}, "properties": {"repobilityId": "3763b677dd10fd75", "scanner": "scanner-primary", "fingerprint": "5f7b6908ed6685ce", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_harmonypy/evaluator.py:100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-85caf7d8188e21a6", "level": "note", "message": {"text": "Possibly dead Python function: visualize_dropout"}, "properties": {"repobilityId": "b05b8a3a91943794", "scanner": "scanner-primary", "fingerprint": "85caf7d8188e21a6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/scanorama/utils.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-207f1814081cc24b", "level": "note", "message": {"text": "Possibly dead Python function: mkdir_p"}, "properties": {"repobilityId": "818c3e56f34efa28", "scanner": "scanner-primary", "fingerprint": "207f1814081cc24b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/scanorama/utils.py:112"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c00c32ca9afd494e", "level": "note", "message": {"text": "Possibly dead Python function: correct_scanpy"}, "properties": {"repobilityId": "5ddedf4452a4eac2", "scanner": "scanner-primary", "fingerprint": "c00c32ca9afd494e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/scanorama/scanorama.py:195"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-04df4772789a8796", "level": "note", "message": {"text": "Possibly dead Python function: integrate_scanpy"}, "properties": {"repobilityId": "c459836cc20168db", "scanner": "scanner-primary", "fingerprint": "04df4772789a8796", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/scanorama/scanorama.py:262"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d7a422c301af2a75", "level": "note", "message": {"text": "Possibly dead Python function: assemble_accum"}, "properties": {"repobilityId": "218a402ec7af06a9", "scanner": "scanner-primary", "fingerprint": "d7a422c301af2a75", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/scanorama/scanorama.py:1010"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-872e46e435ecc05a", "level": "note", "message": {"text": "Possibly dead Python function: visualize_dropout"}, "properties": {"repobilityId": "b05b8a3a91943794", "scanner": "scanner-primary", "fingerprint": "872e46e435ecc05a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/utils.py:84"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fa8ac3099eb5739", "level": "note", "message": {"text": "Possibly dead Python function: mkdir_p"}, "properties": {"repobilityId": "818c3e56f34efa28", "scanner": "scanner-primary", "fingerprint": "1fa8ac3099eb5739", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/utils.py:112"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5f37ae0bc46c086e", "level": "note", "message": {"text": "Possibly dead Python function: correct_scanpy"}, "properties": {"repobilityId": "5ddedf4452a4eac2", "scanner": "scanner-primary", "fingerprint": "5f37ae0bc46c086e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py:198"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e04ec1d0329c21ed", "level": "note", "message": {"text": "Possibly dead Python function: integrate_scanpy"}, "properties": {"repobilityId": "c459836cc20168db", "scanner": "scanner-primary", "fingerprint": "e04ec1d0329c21ed", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py:265"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87f9eb679f83e7e1", "level": "note", "message": {"text": "Possibly dead Python function: assemble_accum"}, "properties": {"repobilityId": "218a402ec7af06a9", "scanner": "scanner-primary", "fingerprint": "87f9eb679f83e7e1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py:1393"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ba9491965d64fd4d", "level": "note", "message": {"text": "Possibly dead Python function: ridge_regression"}, "properties": {"repobilityId": "ef8c795ff5a86080", "scanner": "scanner-primary", "fingerprint": "ba9491965d64fd4d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_balanced/__init__.py:133"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-caffdf54a715bbdc", "level": "note", "message": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "properties": {"repobilityId": "2f526e9f713daab8", "scanner": "scanner-primary", "fingerprint": "caffdf54a715bbdc", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_balanced/__init__.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a691a08ff6f2605", "level": "note", "message": {"text": "Possibly dead Python function: ridge_regression"}, "properties": {"repobilityId": "ef8c795ff5a86080", "scanner": "scanner-primary", "fingerprint": "0a691a08ff6f2605", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_fast/__init__.py:133"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb401c87df39f336", "level": "note", "message": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "properties": {"repobilityId": "2f526e9f713daab8", "scanner": "scanner-primary", "fingerprint": "eb401c87df39f336", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_fast/__init__.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-df0c1132b136e795", "level": "note", "message": {"text": "Possibly dead Python function: ridge_regression"}, "properties": {"repobilityId": "ef8c795ff5a86080", "scanner": "scanner-primary", "fingerprint": "df0c1132b136e795", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_similar_speed/__init__.py:133"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0af9ba13283a2d70", "level": "note", "message": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "properties": {"repobilityId": "2f526e9f713daab8", "scanner": "scanner-primary", "fingerprint": "0af9ba13283a2d70", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_similar_speed/__init__.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5dc7769616bf9ad9", "level": "note", "message": {"text": "Possibly dead Python function: ridge_regression"}, "properties": {"repobilityId": "ef8c795ff5a86080", "scanner": "scanner-primary", "fingerprint": "5dc7769616bf9ad9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_optimized/__init__.py:133"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-59e70c0a42eae9c5", "level": "note", "message": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "properties": {"repobilityId": "2f526e9f713daab8", "scanner": "scanner-primary", "fingerprint": "59e70c0a42eae9c5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/results/bbknn_optimized/__init__.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53fb2a7e35c9efc3", "level": "note", "message": {"text": "Possibly dead Python function: ridge_regression"}, "properties": {"repobilityId": "ef8c795ff5a86080", "scanner": "scanner-primary", "fingerprint": "53fb2a7e35c9efc3", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/bbknn/__init__.py:133"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a526e0cff6037c3a", "level": "note", "message": {"text": "Possibly dead Python function: extract_cell_connectivity"}, "properties": {"repobilityId": "2f526e9f713daab8", "scanner": "scanner-primary", "fingerprint": "a526e0cff6037c3a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_batch_correction/evolution_bbknn/bbknn/__init__.py:210"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b22a22e2c264c161", "level": "note", "message": {"text": "Possibly dead Python function: pseudobulk"}, "properties": {"repobilityId": "da703113076d653b", "scanner": "scanner-primary", "fingerprint": "b22a22e2c264c161", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/evolution_topact/topact/spatial.py:380"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4f2b7d093d6a6bb4", "level": "warning", "message": {"text": "Privileged port 127 in use"}, "properties": {"repobilityId": "afafb77f13b4bf59", "scanner": "scanner-primary", "fingerprint": "4f2b7d093d6a6bb4", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/toolsets/live_view/data_server.py"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47636e33caef255d", "level": "warning", "message": {"text": "Dockerfile runs as root: docker/Dockerfile"}, "properties": {"repobilityId": "8a345ba4198453bd", "scanner": "scanner-primary", "fingerprint": "47636e33caef255d", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-cf828b0c570aeddb", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim-bookworm"}, "properties": {"repobilityId": "7452bb0245b19b6c", "scanner": "scanner-primary", "fingerprint": "cf828b0c570aeddb", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-cf828b0c570aeddb", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12-slim-bookworm"}, "properties": {"repobilityId": "8fca3867b8e52696", "scanner": "scanner-primary", "fingerprint": "cf828b0c570aeddb", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docker/Dockerfile"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-43e496167fde2f4c", "level": "error", "message": {"text": "Runtime dotenv file present in repo: .env.test"}, "properties": {"repobilityId": "25baea8a4d77c75a", "scanner": "scanner-primary", "fingerprint": "43e496167fde2f4c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env", "env_file_with_secret"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".env.test"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-47fe6f82028ee6b2", "level": "error", "message": {"text": "Insecure pattern 'python_os_system' in pantheon/__main__.py:33"}, "properties": {"repobilityId": "0f0672a5107e7977", "scanner": "scanner-primary", "fingerprint": "47fe6f82028ee6b2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "python_os_system"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/__main__.py"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-cadadacbf0468b8e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pantheon/evolution/visualizer.py:1941"}, "properties": {"repobilityId": "abaf07b828665e88", "scanner": "scanner-primary", "fingerprint": "cadadacbf0468b8e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/evolution/visualizer.py"}, "region": {"startLine": 1941}}}]}, {"ruleId": "scanner-d26820b9e1a20b74", "level": "error", "message": {"text": "Insecure pattern 'tls_verify_false' in pantheon/toolsets/web_urllib.py:266"}, "properties": {"repobilityId": "469edad1a22bb670", "scanner": "scanner-primary", "fingerprint": "d26820b9e1a20b74", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "tls_verify_false"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/toolsets/web_urllib.py"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-e219b457ba1e4b9b", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pantheon/toolsets/python/python_interpreter.py:30"}, "properties": {"repobilityId": "37596c4f6b653301", "scanner": "scanner-primary", "fingerprint": "e219b457ba1e4b9b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/toolsets/python/python_interpreter.py"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-97a477c303eb4192", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in pantheon/toolsets/python/python_interpreter.py:34"}, "properties": {"repobilityId": "e06b5ad380da9e42", "scanner": "scanner-primary", "fingerprint": "97a477c303eb4192", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/toolsets/python/python_interpreter.py"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-f5fb66426b4625dc", "level": "error", "message": {"text": "Insecure pattern 'python_os_system' in pantheon/repl/__main__.py:37"}, "properties": {"repobilityId": "0919140f4c9b3a9a", "scanner": "scanner-primary", "fingerprint": "f5fb66426b4625dc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "python_os_system"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/repl/__main__.py"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-47c0b066128f0181", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in pantheon/repl/handlers/builtin/bash.py:24"}, "properties": {"repobilityId": "7390491607be4496", "scanner": "scanner-primary", "fingerprint": "47c0b066128f0181", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/repl/handlers/builtin/bash.py"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-2a8481ab4ed5c449", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in cmd2func/config.py:43"}, "properties": {"repobilityId": "0e32f8257c19fc7b", "scanner": "scanner-primary", "fingerprint": "2a8481ab4ed5c449", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "cmd2func/config.py"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-95e0322417277d8c", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in funcdesc/parse.py:114"}, "properties": {"repobilityId": "31e87626b1721603", "scanner": "scanner-primary", "fingerprint": "95e0322417277d8c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funcdesc/parse.py"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-99334a44708ab2aa", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in funcdesc/utils/json.py:77"}, "properties": {"repobilityId": "0999ae050e247638", "scanner": "scanner-primary", "fingerprint": "99334a44708ab2aa", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "funcdesc/utils/json.py"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cd843b74d3963b06", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3c5f7937c5980794", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b91cbb4237d86b59", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c7b0656e54a8a817", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-15c526fd9d0f630c", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0ab1b4d0ff7cc7b4", "scanner": "scanner-primary", "fingerprint": "15c526fd9d0f630c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/promote-agent.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-723deded602ecf73", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d77e4c4811adefa8", "scanner": "scanner-primary", "fingerprint": "723deded602ecf73", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish_pypi.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "93666d037cc96330", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5a833536d07e9187", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "524cd7f22306d448", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f992a0f3a9da3b1a", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4bda0db7b1e7a219", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "075f0e1b26becf00", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-f1fa3dd79d3d1ade", "level": "error", "message": {"text": "GitHub Action tracks a moving branch"}, "properties": {"repobilityId": "9e59209641bae326", "scanner": "scanner-primary", "fingerprint": "f1fa3dd79d3d1ade", "layer": "cicd", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2c6663219b74e9a9", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 173}}}]}, {"ruleId": "scanner-f54d0d3a389cb4de", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f158095e5bcb2008", "scanner": "scanner-primary", "fingerprint": "f54d0d3a389cb4de", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 183}}}]}, {"ruleId": "scanner-4724e05098b6722d", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "a669f23915d1d93d", "scanner": "scanner-primary", "fingerprint": "4724e05098b6722d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/docker-build.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-41be518b6a574078", "level": "note", "message": {"text": "Very large file: tests/test_scfm.py (2131 lines)"}, "properties": {"repobilityId": "c8c3a79955ba0e7c", "scanner": "scanner-primary", "fingerprint": "41be518b6a574078", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f78e4f222475f38", "level": "note", "message": {"text": "Very large file: tests/test_token_optimization.py (1725 lines)"}, "properties": {"repobilityId": "383c5a0cddf12d00", "scanner": "scanner-primary", "fingerprint": "2f78e4f222475f38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-461e421ad08da6d0", "level": "note", "message": {"text": "Very large file: examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py (1415 lines)"}, "properties": {"repobilityId": "f700c809b11999b6", "scanner": "scanner-primary", "fingerprint": "461e421ad08da6d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-17d99aef77ed982c", "level": "note", "message": {"text": "Very large file: examples/evolution_gene_panel/results_explore_primary/rl_gene_panel_optimized.py (1377 lines)"}, "properties": {"repobilityId": "a89d00e7a20a70b7", "scanner": "scanner-primary", "fingerprint": "17d99aef77ed982c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-88a5dff9ada53b5f", "level": "note", "message": {"text": "Very large file: pantheon/agent.py (2937 lines)"}, "properties": {"repobilityId": "77a7eb40a1cfad9b", "scanner": "scanner-primary", "fingerprint": "88a5dff9ada53b5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-53d7089b04cd21ed", "level": "note", "message": {"text": "Very large file: pantheon/evolution/team.py (1335 lines)"}, "properties": {"repobilityId": "88b09792b3e48208", "scanner": "scanner-primary", "fingerprint": "53d7089b04cd21ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-be4029ae25f60771", "level": "note", "message": {"text": "Very large file: pantheon/evolution/visualizer.py (4344 lines)"}, "properties": {"repobilityId": "5bb5f9354f374b07", "scanner": "scanner-primary", "fingerprint": "be4029ae25f60771", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-59f968c9860f1c36", "level": "note", "message": {"text": "Very large file: pantheon/toolsets/evolution/evolution_toolset.py (1633 lines)"}, "properties": {"repobilityId": "312e75a549211a74", "scanner": "scanner-primary", "fingerprint": "59f968c9860f1c36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d5c71ebc4b8da762", "level": "note", "message": {"text": "Very large file: pantheon/toolsets/file/file_manager.py (2124 lines)"}, "properties": {"repobilityId": "3c8c6472796be49d", "scanner": "scanner-primary", "fingerprint": "d5c71ebc4b8da762", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2ddc672c2ecd2ac4", "level": "note", "message": {"text": "Very large file: pantheon/toolsets/notebook/integrated_notebook.py (2092 lines)"}, "properties": {"repobilityId": "c039ebdc70200459", "scanner": "scanner-primary", "fingerprint": "2ddc672c2ecd2ac4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-36e6983d24211e94", "level": "note", "message": {"text": "Very large file: pantheon/utils/llm.py (1887 lines)"}, "properties": {"repobilityId": "9d9d533d8b36f427", "scanner": "scanner-primary", "fingerprint": "36e6983d24211e94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6d9328cd2817ec91", "level": "note", "message": {"text": "Very large file: pantheon/utils/token_optimization.py (2421 lines)"}, "properties": {"repobilityId": "f22aa6eae401064f", "scanner": "scanner-primary", "fingerprint": "6d9328cd2817ec91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b33267ec9d538985", "level": "note", "message": {"text": "Very large file: pantheon/repl/core.py (2525 lines)"}, "properties": {"repobilityId": "e28d9f48b42469f3", "scanner": "scanner-primary", "fingerprint": "b33267ec9d538985", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1c1b3208eb18ffe0", "level": "note", "message": {"text": "Very large file: pantheon/repl/prompt_app.py (1549 lines)"}, "properties": {"repobilityId": "acd7ddf288499368", "scanner": "scanner-primary", "fingerprint": "1c1b3208eb18ffe0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d91b722f76bcacde", "level": "note", "message": {"text": "Very large file: pantheon/chatroom/room.py (3934 lines)"}, "properties": {"repobilityId": "d1dadfb65782ece3", "scanner": "scanner-primary", "fingerprint": "d91b722f76bcacde", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b3e1baf8ceeb2905", "scanner": "scanner-primary", "fingerprint": "3ab5d313dda8e5f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["debug", "cleanup", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-72b2a6250083a784", "level": "warning", "message": {"text": "Placeholder or mock-heavy implementation detected"}, "properties": {"repobilityId": "c764a6e6e6e0f2ea", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "042c6d9fae9e936b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-4807a75e03b20775", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/mcp.json"}, "properties": {"repobilityId": "967633f685920b30", "scanner": "scanner-primary", "fingerprint": "4807a75e03b20775", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/mcp.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0e5ae7736f16f34f", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: pantheon/factory/templates/mcp.json"}, "properties": {"repobilityId": "f07643f543bce456", "scanner": "scanner-primary", "fingerprint": "0e5ae7736f16f34f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "mcp_config"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/mcp.json"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-1abd76533d2a28ae", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/structural_biology/SKILL.md"}, "properties": {"repobilityId": "003557fa2bad883f", "scanner": "scanner-primary", "fingerprint": "1abd76533d2a28ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/skills/structural_biology/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4ea331e499cc694a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/scfm/SKILL.md"}, "properties": {"repobilityId": "006a544ac3cc5d8c", "scanner": "scanner-primary", "fingerprint": "4ea331e499cc694a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/skills/omics/scfm/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a128080364bf69e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/upstream_processing/SKILL.md"}, "properties": {"repobilityId": "8fdc27f2c10c667f", "scanner": "scanner-primary", "fingerprint": "7a128080364bf69e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/skills/omics/upstream_processing/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e9f1c313c3fe7efb", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/database_access/SKILL.md"}, "properties": {"repobilityId": "1ed4653a92f0ca5d", "scanner": "scanner-primary", "fingerprint": "e9f1c313c3fe7efb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/skills/omics/database_access/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2016deb437cd3b07", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: pantheon/factory/templates/skills/omics/gene_panel_selection/SKILL.md"}, "properties": {"repobilityId": "8bb2ffde3230430d", "scanner": "scanner-primary", "fingerprint": "2016deb437cd3b07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "skill_file"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/factory/templates/skills/omics/gene_panel_selection/SKILL.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3fa5f54274df38dd", "level": "note", "message": {"text": "Legacy-named symbol `test_glm_5_deprecated` in tests/test_glm_5_1_support.py:35"}, "properties": {"repobilityId": "9bc92778e3f290d0", "scanner": "scanner-primary", "fingerprint": "3fa5f54274df38dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-60cf63dc6ef607ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/test_file_manager.py:37"}, "properties": {"repobilityId": "474875b87020dc27", "scanner": "scanner-primary", "fingerprint": "60cf63dc6ef607ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eedcf320be3fc2df", "level": "note", "message": {"text": "Legacy-named symbol `nOld` in tests/test_learning_system/test_extractor.py:81"}, "properties": {"repobilityId": "9b5a440eda39d684", "scanner": "scanner-primary", "fingerprint": "eedcf320be3fc2df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eae51d06caf53001", "level": "note", "message": {"text": "Legacy-named symbol `all_timestamps_old` in scripts/benchmark_token_optimizations.py:90"}, "properties": {"repobilityId": "050c1996223204af", "scanner": "scanner-primary", "fingerprint": "eae51d06caf53001", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-96062c20630d769c", "level": "note", "message": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/harmony.py:526"}, "properties": {"repobilityId": "636bce6fbdba123d", "scanner": "scanner-primary", "fingerprint": "96062c20630d769c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f89bb81be94efd3f", "level": "note", "message": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_optimized.py:646"}, "properties": {"repobilityId": "4578382f184d9f3a", "scanner": "scanner-primary", "fingerprint": "f89bb81be94efd3f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-54c29fe3176f8494", "level": "note", "message": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_best_mixing.py:697"}, "properties": {"repobilityId": "44af14b485472098", "scanner": "scanner-primary", "fingerprint": "54c29fe3176f8494", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-03b29f6a257e9b30", "level": "note", "message": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony_272.py:631"}, "properties": {"repobilityId": "ea9c12e2e3ce5d40", "scanner": "scanner-primary", "fingerprint": "03b29f6a257e9b30", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0579bc5542ebb001", "level": "note", "message": {"text": "Legacy-named symbol `obj_old` in examples/evolution_batch_correction/evolution_harmonypy/results/harmony.py:646"}, "properties": {"repobilityId": "38206e86616d66a4", "scanner": "scanner-primary", "fingerprint": "0579bc5542ebb001", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4d4855d4fecfc439", "level": "note", "message": {"text": "Legacy-named symbol `X_old` in examples/evolution_batch_correction/evolution_scanorama/scanorama/scanorama.py:349"}, "properties": {"repobilityId": "638ac331d75caf8b", "scanner": "scanner-primary", "fingerprint": "4d4855d4fecfc439", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-61144978c0ec531d", "level": "note", "message": {"text": "Legacy-named symbol `X_old` in examples/evolution_batch_correction/evolution_scanorama/results/scanorama_optimized/scanorama.py:352"}, "properties": {"repobilityId": "574b36f9bbc8f796", "scanner": "scanner-primary", "fingerprint": "61144978c0ec531d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a5d01e0d34edeb2e", "level": "none", "message": {"text": "Commented-code block (6 lines) in examples/evolution_batch_correction/evolution_bbknn/results/bbknn_similar_speed/matrix.py:254"}, "properties": {"repobilityId": "8915a7a12ac696d3", "scanner": "scanner-primary", "fingerprint": "a5d01e0d34edeb2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c03f3cf3c5ea1098", "level": "none", "message": {"text": "Commented-code block (8 lines) in examples/evolution_topact/topact/spatial.py:333"}, "properties": {"repobilityId": "1c629f394dd70a92", "scanner": "scanner-primary", "fingerprint": "c03f3cf3c5ea1098", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6e1f5a7105bed9b", "level": "note", "message": {"text": "Legacy-named symbol `adata_copy` in examples/evolution_gene_panel/scripts/run_preprocessing.py:42"}, "properties": {"repobilityId": "956be4d46993578c", "scanner": "scanner-primary", "fingerprint": "a6e1f5a7105bed9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-63ba74c143e691bf", "level": "note", "message": {"text": "Legacy-named symbol `logp_old` in examples/evolution_gene_panel/results_explore_primary/rl_gene_panel_optimized.py:256"}, "properties": {"repobilityId": "ec8157709bd7f28c", "scanner": "scanner-primary", "fingerprint": "63ba74c143e691bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bed9cbab425f1bbe", "level": "note", "message": {"text": "Legacy-named symbol `logp_old` in examples/evolution_gene_panel/results_optimize_primary/rl_gene_panel_optimized.py:248"}, "properties": {"repobilityId": "fce90f5961c6c603", "scanner": "scanner-primary", "fingerprint": "bed9cbab425f1bbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6622619321e44187", "level": "none", "message": {"text": "Commented-code block (7 lines) in examples/code_distillation/distilled_code.py:37"}, "properties": {"repobilityId": "ce7b912c48201c84", "scanner": "scanner-primary", "fingerprint": "6622619321e44187", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09120113939fe0b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in examples/code_distillation/results/distilled_code_best.py:37"}, "properties": {"repobilityId": "05832ec632ccecb8", "scanner": "scanner-primary", "fingerprint": "09120113939fe0b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66e4dcc1d7441362", "level": "note", "message": {"text": "Legacy-named symbol `clear_old` in executor/engine/manager.py:55"}, "properties": {"repobilityId": "b5f72619c212d7a8", "scanner": "scanner-primary", "fingerprint": "66e4dcc1d7441362", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6d55dc2edcb61b22", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/settings.py:852"}, "properties": {"repobilityId": "8ffb074c00999f4d", "scanner": "scanner-primary", "fingerprint": "6d55dc2edcb61b22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47622a1c4945cea7", "level": "note", "message": {"text": "Legacy-named symbol `_evict_old` in pantheon/background.py:142"}, "properties": {"repobilityId": "1c0d3644d0dddace", "scanner": "scanner-primary", "fingerprint": "47622a1c4945cea7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8077e2ccd4d6ef27", "level": "note", "message": {"text": "Stub function `cleanup` (body is just `pass`/`return`) \u2014 pantheon/toolset.py:361"}, "properties": {"repobilityId": "b2db54ab7103150f", "scanner": "scanner-primary", "fingerprint": "8077e2ccd4d6ef27", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-24b24d7c46afc1f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/agent.py:1512"}, "properties": {"repobilityId": "7c99a1944a7dd1d1", "scanner": "scanner-primary", "fingerprint": "24b24d7c46afc1f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0123f2c3c73efea4", "level": "none", "message": {"text": "Commented-code block (8 lines) in pantheon/evolution/evaluator.py:84"}, "properties": {"repobilityId": "402d314ce35368ef", "scanner": "scanner-primary", "fingerprint": "0123f2c3c73efea4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b8e8d83b0b41224", "level": "note", "message": {"text": "Legacy-named symbol `receive_v1` in pantheon/claw/channels/feishu.py:23"}, "properties": {"repobilityId": "92c0b040b795dd05", "scanner": "scanner-primary", "fingerprint": "2b8e8d83b0b41224", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e5cf2de9324b8ee5", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/claw/channels/feishu.py:659"}, "properties": {"repobilityId": "681a093a54366bb3", "scanner": "scanner-primary", "fingerprint": "e5cf2de9324b8ee5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41f52fb4cbe98b58", "level": "note", "message": {"text": "Legacy-named symbol `files_upload_v2` in pantheon/claw/channels/slack.py:180"}, "properties": {"repobilityId": "476f2ddebccd71ed", "scanner": "scanner-primary", "fingerprint": "41f52fb4cbe98b58", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-92b140fb6fb221c1", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def web_fetch` \u2014 pantheon/toolsets/web_urllib.py:324"}, "properties": {"repobilityId": "0cbeabd540dc9c88", "scanner": "scanner-primary", "fingerprint": "92b140fb6fb221c1", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/toolsets/web_urllib.py"}, "region": {"startLine": 324}}}]}, {"ruleId": "scanner-cd177105f04b0f91", "level": "note", "message": {"text": "Stub function `insert` (body is just `pass`/`return`) \u2014 pantheon/toolsets/rag/wrap.py:5"}, "properties": {"repobilityId": "88fd1cc892d7937b", "scanner": "scanner-primary", "fingerprint": "cd177105f04b0f91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-030f04cd18ad4d6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/toolsets/python/python_interpreter.py:183"}, "properties": {"repobilityId": "ae9fe8dba9bbefa0", "scanner": "scanner-primary", "fingerprint": "030f04cd18ad4d6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc292cec6f662c0e", "level": "note", "message": {"text": "Legacy-named symbol `needs_copy` in pantheon/toolsets/scfm/adapters/uce.py:388"}, "properties": {"repobilityId": "b559ce14e746a2a0", "scanner": "scanner-primary", "fingerprint": "fc292cec6f662c0e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f04b1eb37f3601f8", "level": "none", "message": {"text": "Commented-code block (9 lines) in pantheon/toolsets/file/file_manager.py:1124"}, "properties": {"repobilityId": "c5b5a988ae6a937e", "scanner": "scanner-primary", "fingerprint": "f04b1eb37f3601f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60941668be8b08ed", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/toolsets/task/task_state.py:151"}, "properties": {"repobilityId": "0545de9028b7de4b", "scanner": "scanner-primary", "fingerprint": "60941668be8b08ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9612ee054997d9db", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/toolsets/file_transfer/worker.py:265"}, "properties": {"repobilityId": "9ec2d3413a42c289", "scanner": "scanner-primary", "fingerprint": "9612ee054997d9db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c23157489aa1518", "level": "none", "message": {"text": "Commented-code block (7 lines) in pantheon/toolsets/live_view/toolset.py:527"}, "properties": {"repobilityId": "cab54b46659300d2", "scanner": "scanner-primary", "fingerprint": "2c23157489aa1518", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8666f650d87063be", "level": "none", "message": {"text": "Commented-code block (9 lines) in pantheon/toolsets/live_view/data_server.py:61"}, "properties": {"repobilityId": "2f88e549fb78fec6", "scanner": "scanner-primary", "fingerprint": "8666f650d87063be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04a6b94895a852b7", "level": "none", "message": {"text": "Commented-code block (7 lines) in pantheon/toolsets/notebook/integrated_notebook.py:1692"}, "properties": {"repobilityId": "3c99a45e01b4d6ea", "scanner": "scanner-primary", "fingerprint": "04a6b94895a852b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8a4f3a45bdb308b", "level": "none", "message": {"text": "Commented-code block (8 lines) in pantheon/toolsets/notebook/jupyter_kernel.py:325"}, "properties": {"repobilityId": "e3c8ca6fb3d58209", "scanner": "scanner-primary", "fingerprint": "f8a4f3a45bdb308b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26d6c87954cd28c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/toolsets/notebook/notebook_contents.py:356"}, "properties": {"repobilityId": "66f3162550d29814", "scanner": "scanner-primary", "fingerprint": "26d6c87954cd28c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9138dcb4ebae10f", "level": "none", "message": {"text": "Commented-code block (9 lines) in pantheon/utils/llm_providers.py:135"}, "properties": {"repobilityId": "78f333d0fb0bcee4", "scanner": "scanner-primary", "fingerprint": "c9138dcb4ebae10f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a15ff1ffdcf04803", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/utils/vision_capability.py:20"}, "properties": {"repobilityId": "c253d2a377baac0d", "scanner": "scanner-primary", "fingerprint": "a15ff1ffdcf04803", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec594c4b6671fe9c", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/utils/llm.py:681"}, "properties": {"repobilityId": "eba60737e4353979", "scanner": "scanner-primary", "fingerprint": "ec594c4b6671fe9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c50810858880ec36", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/utils/token_optimization.py:47"}, "properties": {"repobilityId": "8e02200137fe5ab7", "scanner": "scanner-primary", "fingerprint": "c50810858880ec36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9892c5e3fedb595a", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/utils/adapters/anthropic_adapter.py:109"}, "properties": {"repobilityId": "e0e9b3885b56119b", "scanner": "scanner-primary", "fingerprint": "9892c5e3fedb595a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cc35a70b9052cd8", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/utils/adapters/gemini_adapter.py:178"}, "properties": {"repobilityId": "627ba0cfbc1b6af5", "scanner": "scanner-primary", "fingerprint": "0cc35a70b9052cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69f6a9e7f48edd88", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/utils/adapters/gemini_cli_adapter.py:303"}, "properties": {"repobilityId": "8d9ad5363292c877", "scanner": "scanner-primary", "fingerprint": "69f6a9e7f48edd88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bf99311261642fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/utils/adapters/openai_adapter.py:209"}, "properties": {"repobilityId": "1c4d4b2ea8080f3c", "scanner": "scanner-primary", "fingerprint": "1bf99311261642fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1477fd645095def", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/utils/oauth/gemini.py:69"}, "properties": {"repobilityId": "27750c41082f7051", "scanner": "scanner-primary", "fingerprint": "a1477fd645095def", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2a81fae5a6cee59", "level": "note", "message": {"text": "Stub function `log_message` (body is just `pass`/`return`) \u2014 pantheon/utils/oauth/gemini.py:716"}, "properties": {"repobilityId": "30c2a3b6abc39144", "scanner": "scanner-primary", "fingerprint": "d2a81fae5a6cee59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-d8b6633ee7fd1c6e", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/team/pantheon.py:609"}, "properties": {"repobilityId": "62490e1535cd2ec5", "scanner": "scanner-primary", "fingerprint": "d8b6633ee7fd1c6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-763abc895fd94668", "level": "note", "message": {"text": "Stub function `async_setup` (body is just `pass`/`return`) \u2014 pantheon/team/base.py:14"}, "properties": {"repobilityId": "7bcc94d7b0f29518", "scanner": "scanner-primary", "fingerprint": "763abc895fd94668", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-bce0f632a34e8ef9", "level": "note", "message": {"text": "Stub function `close` (body is just `pass`/`return`) \u2014 pantheon/remote/backend/nats.py:420"}, "properties": {"repobilityId": "09624d3b39a4fc14", "scanner": "scanner-primary", "fingerprint": "bce0f632a34e8ef9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-9cb03dbacc164671", "level": "note", "message": {"text": "Stub function `servers` (body is just `pass`/`return`) \u2014 pantheon/remote/backend/base.py:76"}, "properties": {"repobilityId": "59ae07975dec1cc7", "scanner": "scanner-primary", "fingerprint": "9cb03dbacc164671", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-e40619938d57583a", "level": "error", "message": {"text": "Blocking `time.sleep(...)` inside `async def _process_message` \u2014 pantheon/repl/core.py:1396"}, "properties": {"repobilityId": "3e6ebad961919c95", "scanner": "scanner-primary", "fingerprint": "e40619938d57583a", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantheon/repl/core.py"}, "region": {"startLine": 1396}}}]}, {"ruleId": "scanner-6e594f866811d2db", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/repl/prompt_app.py:813"}, "properties": {"repobilityId": "48c5f0384be78f24", "scanner": "scanner-primary", "fingerprint": "6e594f866811d2db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f193b3085898216f", "level": "none", "message": {"text": "Commented-code block (7 lines) in pantheon/repl/task_renderers.py:434"}, "properties": {"repobilityId": "85a1de9d0f0377dd", "scanner": "scanner-primary", "fingerprint": "f193b3085898216f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-701af3986876935c", "level": "none", "message": {"text": "Commented-code block (9 lines) in pantheon/repl/viewers/notify_dialog.py:173"}, "properties": {"repobilityId": "a89c42802a049c44", "scanner": "scanner-primary", "fingerprint": "701af3986876935c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96f969080e810d21", "level": "note", "message": {"text": "Legacy-named symbol `msg_copy` in pantheon/internal/memory/memory.py:384"}, "properties": {"repobilityId": "2cc6c8e5c64eea88", "scanner": "scanner-primary", "fingerprint": "96f969080e810d21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ba2b3c9c6cc67fa2", "level": "note", "message": {"text": "Stub function `save_metadata` (body is just `pass`/`return`) \u2014 pantheon/internal/memory/storage.py:55"}, "properties": {"repobilityId": "ebe1364744e7aedb", "scanner": "scanner-primary", "fingerprint": "ba2b3c9c6cc67fa2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a061ac57aac4dcbe", "level": "note", "message": {"text": "Stub function `on_run_start` (body is just `pass`/`return`) \u2014 pantheon/internal/learning_system/plugin.py:48"}, "properties": {"repobilityId": "97cd2b23217aa4e9", "scanner": "scanner-primary", "fingerprint": "a061ac57aac4dcbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-06ad66a6016fa949", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 pantheon/store/seed.py:334"}, "properties": {"repobilityId": "97413b5523df3a6f", "scanner": "scanner-primary", "fingerprint": "06ad66a6016fa949", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d3cba1fff33e5bb4", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/factory/template_manager.py:400"}, "properties": {"repobilityId": "da682094e636c6d8", "scanner": "scanner-primary", "fingerprint": "d3cba1fff33e5bb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46995bbeab440394", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/factory/templates/skills/live_view/volume3d/adapter.js:276"}, "properties": {"repobilityId": "ed77d56d95dfaacd", "scanner": "scanner-primary", "fingerprint": "46995bbeab440394", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7aafb39e1c301fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pantheon/factory/templates/skills/live_view/spatial3d/adapter.js:43"}, "properties": {"repobilityId": "56a1a1a2f6f8ce58", "scanner": "scanner-primary", "fingerprint": "a7aafb39e1c301fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ff02ffd15a8a71d", "level": "none", "message": {"text": "Commented-code block (6 lines) in pantheon/factory/templates/skills/live_view/gosling/adapter.js:84"}, "properties": {"repobilityId": "e51bd07dd506c88d", "scanner": "scanner-primary", "fingerprint": "6ff02ffd15a8a71d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97f71702e7c71171", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/factory/templates/skills/live_view/phylotree/adapter.js:21"}, "properties": {"repobilityId": "dd67ed8e99628535", "scanner": "scanner-primary", "fingerprint": "97f71702e7c71171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1269ad16c390a1a", "level": "none", "message": {"text": "Commented-code block (11 lines) in pantheon/chatroom/start.py:263"}, "properties": {"repobilityId": "dc4d35f75c651b5f", "scanner": "scanner-primary", "fingerprint": "e1269ad16c390a1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9dc7257903c6ab0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantheon/chatroom/room.py:121"}, "properties": {"repobilityId": "87444682724ae051", "scanner": "scanner-primary", "fingerprint": "9dc7257903c6ab0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "d8c2866a18046f92", "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": "29b2704ea5201f31", "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": "6e245980d4720c63", "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": "8f86de1d8d1a6cf8", "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": "e5078eb35cf65426", "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": "4cc7596938c6d85f", "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": "89633b980a84002c", "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": "731c13b547987a8a", "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": "e73b78025f0e05d8", "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": "68e877b23ee5ba62", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "a07915e2c8553881", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "9de3a454bd796054", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "8f9771c684189674", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "9f164ed326930a67", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "b5824b372b84937d", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "bc32a8473aa700fc", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "0e6f4057ded656ef", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "44ebe831b45d02c4", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "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": "826f71e283b40925", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "c2648f1d03817a38", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}